Continued from Industrial IoT at Scale: What’s Really Needed (Part II)
Fog and Mist Computing
The attentive reader will have noticed that thus far (in Part I and Part II of this series) we have focused on platforms that virtualize the compute, communication and storage fabric available at the edge of the system. Yet, in many IoT systems, “things” have computational, communication and storage capabilities that should also be exploited and managed uniformly. Thus, the natural question is, where does Fog stop? Below the fog—on the devices—do we have something else?
Mist is closer to the ground than fog, which in turn is closer to the ground than clouds. Mist computing is about bringing elastic compute, storage and communication directly to things. Thus, if we continue with the meteorological analogy, cloud infrastructure is high up in the data center, fog infrastructure is midway between the “things” and the cloud, and mist infrastructure is simply the “things.”
Mist Computing has two essential goals:
Enable resource harvesting by exploiting the computation, storage, and communication capabilities available on the “things.”
Allowing arbitrary computations to be provisioned, deployed, managed and monitored on the “things.”
As you can imagine, “things” in IoT applications are extremely heterogeneous with respect to platforms, resources, and connectivity. Thus, the main challenge for mist infrastructures is to be sufficiently lightweight to be able to establish a fabric that virtualize compute, storage, and communication without consuming too many resources.
Cloud, Fog and Mist Computing Convergence
If we take a step back and look from a distance at a generic IoT/IIoT, we will realize that from an infrastructural perspective we will have to deal with data centers that are in a public or private cloud, edge infrastructure, and the actual things. IoT/IIoT systems will need to exploit resources that span across these three tiers and provision, deploy, monitor, and manage applications and services across the three tiers. However, the landscape reveals complete fragmentation among the technologies used for cloud, fog, and mist computing. This fragmentation makes it hard to establish a unified end-to-end perspective on the system, and it makes it practically impossible to treat the system as a uniform and virtualized compute, storage and communication fabric.
At this point the question is, “What can we do about it?”
The first step toward addressing a problem is recognizing it. To this end, the author of this paper has been raising the awareness around the challenges that this fragmentation may induce for the past year or so. The second step is to establish a vision of how the problem can be solved so that the industry can internalize it and eventually address it.
Let’s focus for a moment on what would make sense for the user of an IoT/IIoT platform as opposed to the technical details of whether cloud, fog, or mist is the right answer.
From a high-level perspective, why should somebody designing an IoT/IIoT application care one iota whether he or she will be using cloud, fog, or mist computing paradigms? The only thing that really matters is that the platform provides a way to provision, manage and monitor applications in such a way that applications can meet their end-to-end functional and non-functional requirements. The functional and non-functional requirements drive the allocation of application on “things,” edge infrastructure, or cloud infrastructure, but anything else is just a detail, isn’t it?
As a result, cloud, fog, and mist computing are now converging into fluid computing. Fluid computing is an architectural principle based on abstracting the topological details of the computational infrastructure. Fluid architectures provide an end-to-end fabric that can be used to seamlessly provision, deploy, manage and monitor applications, regardless of whether the underlying resource is provided by the cloud infrastructure, the fog infrastructure, or by “things.”
Fluid computing unifies under a single abstraction of cloud, fog and mist computing. Cloud, fog and mist computing can be seen as applying fluid computing in a specific bounded context.
The impact of this line of thought can already be seen in the Open Fog Consortium Reference architecture, which now embraces some of the concepts of fluid architectures discussed above.
Making IoT Happen at Scale
Here we have discussed the evolution of IoT architectures to support the expansion of IoT to more challenging and arguably more beneficial application domains, such as smart grids, smart factories, and autonomous vehicles. This is all good, but there is still something missing to really make IoT happen at scale—that is standardization. Today’s reality is that IoT platforms are growing and continuing to fragment the market, interoperability is non-existent or extremely limited, and most IoT applications are silos with respect to connectivity.
To make IoT happen we need standards at a data exchange and data format level to be established. Some vertical applications seem to be standardizing over the DDS standard. Others are standardizing over OPC-UA.DDS tends to be preferred in systems required to operate at massive scale, with high performance and demanding fault-tolerance. OPC-UA, on the other hand, is widely used in the automation industry as a way of providing interactive access to field data. Both standard, along with defining mechanism for data sharing provide mechanism for defining data models. DDS allows augmenting data models with QoS features that capture the non-functional requirements of the data. This is particularly useful for applications that need to control end-to-end QoS in order to ensure proper operations or quality of experience.
Standards exist that are ready to be adopted. End users need to be more aware of the importance of interoperability and governments at a national and international level need to understand that, without interoperability, there won’t be any IoT at scale—only a massive mess of stove-pipes clumsily integrated together.