When we talk of Internet of Things, we talk of Cloud Computing almost in the same breath. This is a bit surprising because not all IoT-enabled devices have to be monitored and controlled by a centralized application deployed on a far-off data center. For example, home automation and consumer durables vendors are starting to offer mobile apps that constitute a part of the Human-to-Machine Interface (HMI) for controlling such home appliances. At the same time it is likely that these consumer durables are also sending data over to the vendor’s data center, periodically, in order to enable proactive maintenance.
Extrapolating this pattern to a wider range of scenarios, IoT applications are beginning to embrace a multi-layer architecture for control and data analysis. Data generated from devices, including sensors and industrial equipment, is being processed in one or more compute nodes located at a logical boundary between the device farm and the Internet, usually referred to as the ‘edge’. And then some of the data is being relayed over from the edge to a remote data center for further analysis and action. The communication between the devices and the edge nodes may be achieved using WiFi, if the devices are WiFi-enabled, or based on specialized protocols like LoRa, or even serial ModBus in an industrial environment. However, the communication between the edge nodes and the Cloud-resident application happens over a Wide-Area TCP-IP network.
As IoT is evolving, the ‘edge’ devices with computing power is being manifested in various forms:
- An Intelligent Gateway: A Gateway node is primarily responsible for intercepting data from devices and transmitting it to a cloud-enabled application over TCP-IP. Many Gateway vendors, like Dell manufacture gateway nodes that can filter, aggregate, and apply rules to the device-generated data before transmitting it over to the cloud.
- Edge Computing Nodes: In an industrial environment, Programmable Automation Controllers (PACs) are employed to run a pre-defined set of control functions on a set of plant equipments. When these plant equipments are IoT-enabled, the PAC nodes may be additionally programmed to run data processing functions on data transmitted by such equipment. This capability is referred to as Edge Computing.
- Fog Nodes: ‘Fog’ refers to a set of computing nodes that perform a large subset of data analytics and control functions that would normally be performed by an application on the cloud, that receives large volumes of data from IoT devices. However, these nodes are located closer to the IoT devices, typically in the same Local Area Network. And unlike gateways and edge nodes, the fog layer consists of both storage and compute capacity.
Typically, for an IoT-enabled device farm, the fog layer complements the cloud-hosted applications. For example, the fog layer may act upon data streams and send out control signals on a frequent basis, while relaying part of the data to the cloud where large volumes of historical data can be stored, analyzed and modeled for running predictive analytics.
Obviously, the fog layer, or ‘Fog Computing’ has found its place in IoT architecture, out of necessity.
In many IoT applications data generated from millions of sensors and other devices is too enormous to be sent over to a cloud-based analytics engine at regular intervals. However, the application still needs to analyze data and send out control signals in real-time, possibly within milliseconds. A smart power-grid is one such application. A fog layer can decentralize and localize data analytics tasks within smaller segments of the power grid, while still relying on a remote data center for modeling power consumption patterns.