Architecture IoT: A New Solution

This article will introduce readers to fully understand and master how to structure the Internet of Things. A few weeks ago we put forward the idea at the Linux conference "OpenAlt" in the Czech Republic: The Internet of Things (IoT) is based on microservices. We intend to cover all implementation levels and put the puzzles together. In other words, using all the data collected from the edge devices, after data integration and analysis, a complete IoT solution is obtained.

Internet of Things Architecture

The following architectural diagram is a high-level overview of our views. Among them, it is easy to find a so-called edge device connected to the IoT gateway.

In general, the gateway translates any hardware and vendor-specific protocols transmitted by the device into consistent, easier-to-integrate things that are easy to integrate for use, like TCP and any top-of-the-line standardized information protocols.

Has there been only one gateway? Does this gateway only use hardware specific protocols? The answer to both is negative. There may be multiple gateways of various types in different locations, and some of them even use the TCP protocol if the edge devices are smart enough. More importantly, the gateway responsible for data aggregation, its logical function may be a simple router and message converter.

Looking at the integration components is also where the core business logic lies. This architecture is similar to the classic classic SOA (Service Oriented Architecture). The SOA principle can/should be used here.

Later, integrated components can communicate with complex systems such as the JBoss Business Process Management System for decision making and advanced data analysis.

So what is the difference between a gateway and an integrated component? We have mentioned this difference in its principle. But is there any difference in the specific implementation?

Surprisingly, there is no difference. Using our approach, through the microservice implementation tools provided by Bulldog, Silverspoon, and SilverWare, the infrastructure modules implemented by both are identical.

To distinguish the meaning of a particular microservice, there are multiple dimensions of abstraction. These include data protocols (low-level hardware protocols, simple messaging, TCP, etc.), the service layer (that is, from the classic classic SOA architecture), and the computing power required for specific services.

This is exactly the case: the purpose of the microservice and its specification are set by the developer when the system is created. It can be said that microservices are like stem cells. Microservices, like stem cells, play a specific role depending on where they are used and how they are used.

concept

Why do we think our solution is "correct"?

First, we want to cover all levels of abstraction. We have components and development tools at all levels of the IoT architecture. It's fun to connect the sensor to the Arduino, but what's the next step? How can I integrate to store big data and perform analysis?

Second, we are open, relying on existing standards, and just assisting in integrating existing solutions. So there's no need to learn something new, and as long as you understand a single structural module, anyone can immediately develop a complex system. At the same time, we try to avoid the vendor's blockade. Everything related to components, systems, devices, etc. can be easily replaced.

Finally, we want to be minimalist and build complex systems with simple, easy-to-understand services. These services can run on small virtual machines in the cloud on ARM-based devices. Starting more service instances can make performance even better, so extensions are simple.

achieve

Our solution consists of three elements.

Use the Bulldog library to control and communicate with edge devices. This library provides a level of abstraction that allows developers to modify edge devices and ARM boards without refactoring code.

To turn the code into a meaningful protocol, we used Silverspoon - this is a set of Apache Camel components. These provide a gateway between device-specific protocols and the outside world. We believe that Apache Camel is ideal for IoT gateways due to its routing capabilities, scalability, integration, and ability to send messages. So we added the Bulldog component to Apache Camel.

To develop gateways, integration and business logic, we created SilverWare, a minimalist microservices platform. Microservices can be created in accordance with Apache Camel routing, CDI components, message queues/topics, Vert.x, and many others (some of which are not yet implemented). So in your company, any of these building blocks may already exist, and can be easily converted or deployed directly in microservices. Also benefiting us are simple Maven project dependencies, some easy-to-understand comments, small executable jar files, and the ability to deploy to create Docker images.

For ease of analysis, we recommend using NoSQL or a time series database (such as InfluxDB) modern analysis tools (such as ElasTIcSearch, Grafana, Kibana) for integration.

In addition, a complete system should certainly contain advanced business logic in the form of business processes and rules. For this reason, integration with the JBoss business process management system is also possible.

The application architecture is as follows:



JBL Speaker Battery

JBL Battery,JBL Charge Battery,JBL Speaker Battery,JBL Charge 3 Battery

Shenzhen Sunwind Energy Tech Co.,Ltd , https://www.sunwindbatterylm.com

Posted on