In the era of IOT and IIOT (Industrial Internet of Things), there is a growing demand to deploy solutions at the edge and preferably on an edge device—which is a small device cable of running a lite OS and has enough computing power that is required for an edge computing device. There are many vendors which provide different set of edge devices based on the customer need and use cases to be implemented.
Like the edge device(hardware), the equal importance is there for the software stack. Without a proper edge software framework, it is difficult to implement a proper I4.0 or for that matter any IOT use cases. The edge software stack has an important role to play in the IIOT use case implementation.
Sometime back, I was working for such an edge framework development for one of the customers where the need was to deploy nearly 300 edge devices. These devices connect around 2,000 machines on the plant shopfloor for various IIOT use cases implementation like predictive maintenance, real time KPI monitoring, alerts and notifications for critical machine parameters, data visualization etc.
There are many choices to go with—some are opensource and some are COTS solutions. Some of the opensource edge software frameworks are listed below.
There are also COTS edge software available, and based on the requirements we can decide whether or not to use them. For this use case, the opensource frameworks were meeting our requirements and all features required for an edge stack was available in those opensource solutions.
But for our requirement, we wanted to build a custom edge software stack with full control being with us. After going through all those available opensource frameworks, we understood it is not a difficult task to develop one of our own.
The following diagram shows some of the critical components of an edge software stack:
The above diagram shows some of the edge software components found in many frameworks as common. But there will be additional components based on the specific requirements. For example, for an analytics or machine learning use case we may need to have a ML framework, ML Models, Rule Engines, Command and Control modules, etc.
The device connectors are mainly the data publishers (in some cases also the edge apps )— connectors publish data to a certain topic defined for them and edge apps and other consumer apps subscribe to those topics to get the data.
In this way, we achieved a highly decoupled system. I have used Redis as a message broker here as it has lower memory footprint and a very fast in-memory data store. So, this can act as both a temporary data store and an event broker as well. There are other options like Eclipse Mosquitto MQTT broker, but it has certain limitations.
Edge Device Choices: We have many vendors which supply edge devices based on the customer need
Edge OS Options: Mainly a Linux based OS is the first choice for many of the edge devices, this is because the memory footprint of many Linux distros is less, they are easy to manage and maintain, secure, and we get CLI based OS options (without a GUI)—which makes this OS more preferred
Ubuntu Linux OS and Alpine Linux are some of the popular choices for the Edge device.
End Note:
In this article we discussed about some of the core edge software components, which are required to deploy any edge app on a device. It is not always required to develop our own custom edge SW framework as we discussed there are many opensource edge software platforms are available. The intent of this article is to have the know-how of an edge stack.