Every few months we hear of a new technology term, sometimes these marketing ideas disappear as they come, and sometimes they become a successful paradigm that everyone wants to use in their PowerPoint presentations.
These last days I have heard from several customers the term "Fog Computing", and after some internet research, let's summarize this new one in plain English.
What is Fog Computing?
In a line: Just an intermediate layer between the Cloud and the devices of the IoT.
Fog computing is a new term from Cisco for an alternative to the cloud computing model. It adds another layer of intelligence at the edge of a network to process some analytics and take some decisions there, instead to process everything in the cloud.
This new layer of intelligence is added to some access points such as routers: yes, a lot of mystery to sell you new devices. But the fact is, cloud computing is not good for all scenarios, and sometimes it is better to process the data right away near where it is produced, minimizing latency and saving bandwidth. That sounds like a slogan for DDS/RTPS right?
A Fog Computing Example: Smart Grids
Imagine a complex smart grid with power-line communications, smart meters, a lot of phasor measurement units, different power sources, a mix of electrical substations and everything distributed geographically using a hierarchical schema.
It is straight-forward, you cannot use the cloud computing model in this case, you need to add some intelligence to the intermediate nodes in order to make fast decisions, and also to save bandwidth, because the amount of generated data from the different nodes and meters is huge.
More Examples
Virtually any big hierarchical distributed system (smart cities applications) can be modeled that way, and I would say this is really the default design, nothing new.
DDS/RTPS as Fog computing protocols
The main Fog computing goal is minimize latency and save bandwidth, adding some intelligence to the access point to optimize the typical scenarios in the IoT. Examples of fog computing scenarios include low power devices, real-time requirements, and wireless networks.
Taking into account these requirements, a good Fog computing protocol should be lightweight, transport agnostic and customizable. Heavyweight Protocols such as Web Services or REST are discouraged because consume a lot of resources in terms of bandwidth and CPU use. Remember the IoT devices include small sensors, embedded devices and low bandwidth data links.
The Data Distribution Service (DDS) middleware standard is widely known for being used in very exigent real-time distributed systems in Aerospace and defense systems, and its underlying protocol RTPS (Real Time Publish Subscribe Protocol) main features make it very suitable for the goals of fog computing:
- Designed for real-time distributed systems: low latency communications and low bandwidth use.
- Highly customizable: It allows to setup different Quality of Service parameters for different kinds of data or different data links.
- Wireless enabled: It can be deployed over any transport/data link, including specifically disconnected and intermittent data links, such as low bandwidth wireless networks. RTPS supports multicast, a very recommendable feature in this kind of networks, and it can also be deployed over non IP-Based data links.
- Lightweight: It requires very few resources, and it can be implemented in low power devices.
Learn more about RTPS.