Edge, Fog and Cloud from a DDS® perspective
When we look at the systems that are being built within the IoT from a bigger picture, they include physical devices, communication gateways and data centres.
In this post, I’ll talk about Edge, Fog and Cloud Computing and where the use of DDS🌀 technology is most beneficial.
Data in IIoT system needs to be efficiently transferred and shared between all parts of the system. This is because we need to carry out
👉 Data/information/knowledge collection,
👉 storage of data/information/knowledge,
👉 data/information/knowledge analysis,
👉 sharing results to users or back to devices.
Devices but also applications are increasingly using machine learning to process often large volumes of data. However, it is expensive to transfer all data to a central service on the Cloud. Sometimes this is not necessary and sometimes it is not even possible. An example would be an autonomous vehicle with all its sensors on board.
So it is more convenient to process this data closer to the devices for efficient processing. Thus, it is not necessary to transfer the data to the Cloud. This also speeds up system responses, which is essential for time-critical tasks.
From this perspective, we distinguish Edge Computing, Fog Computing and Cloud Computing.
1️⃣ Edge Computing – data is processed on devices. Devices often have low computing and storage capacities.
2️⃣ Fog Computing – data is processed on nodes or gateways that are part of a LAN. Data is distributed between nodes and processing is more complex, compared to a centralized Cloud solution.
3️⃣ Cloud Computing – data is processed on a central data server (Google Cloud Platform, Amazon Web Services, Microsoft Azure). It provides almost unlimited computing and storage capacity. It is thus suitable for processing demanding tasks. However, it requires a 24/7/365 Internet connection.
Edge and Fog complement the Cloud to ensure efficient data processing. I.e. those who need performance will be more concerned with processing data closer to the devices.
Thus, communication within the IIoT architecture can be divided into parts. These are communication:
👉 Between devices to each other (Edge), where DDS is particularly suitable as well as Zenoh, followed by MQTT-SN, CoAP,
👉 Between devices and communication gateways (Fog), where MQTT, CoAP, OPC-UA are highly used, DDS is also suitable and Zenoh.
👉 Between devices and Data Centers/Cloud where MQTT is used heavily, Zenoh is very suitable.
👉 Between communication gateways and data centers/Cloud (MQTT, Zenoh, JMS, AMQP)
👉 Between data centers/Clouds where for example JMS, AMQP, Apache Kafka, DDS are suitable as application protocols that runs over TCP or TCP-Like transport protocols.
👉 Communication with users, where mainly RESTful HTTP and Websockets are used).
Conclusion
Connecting the different parts of the IoT architecture requires usually different protocols, due to different requirements. DDS can be used in almost all use cases, but the technology is best suited for communication between devices within a wired LAN. It is possible to use DDS even for Device-to-Cloud or Cloud-to-Cloud communication, but in that case you will need to use some DDS gateway that will interconnect different parts of your system.
An example of such a gateway (in addition to vendor implementations) is the very promising Zenoh technology, which can efficiently connect DDS applications and devices on both the Edge and Fog all the way to the Cloud and back.