Moving away from IoT to Cloud Offloading using the Fog
Whats up with IoT?
In the last years, more and more devices of everyday usage are becoming connected to the Internet, even devices that traditionally did not have any network connectivity. The Internet of Things (IoT) promotes the interconnection of such devices, integrating them into a large network capable of offering numerous services to the end user. IoT technology is applied in different areas, from e-health and transportation to smart cities and building operations.
As IoT systems become more popular and complex, clearly, the systems supporting them become increasingly more complex. There are numerous efforts to promote distributed architectures for implementing complex IoT systems, ensuring their scalability. Following recent trends in Edge and Fog computing for IoT, the concept of providing an intermediate computing layer operating closer to the sensors and user devices promotes scalability, availability and performance. Instead of gathering raw data from sensors in centralized processing nodes, e.g. cloud servers, and centrally making all decisions regarding the configuration of an IoT system, there is an alternative approach were intermediate entities aggregate and prefilter data before it is offloaded to the Cloud and at the same time manage to provide cloud-like functionalities closer to the end devices , exploiting the Fog Computing Paradigm.
Fog to the rescue!
Fog Computing provides a decentralized approach to data processing and resource provisioning for the Internet of Things (IoT). Following the Fog Computing Paradigm functionalities, applications, and computational resources that traditionally used to exist on the Cloud descend further down, towards end devices, thereby being termed as Fog. The Fog encapsulates the middleware, the network, and the virtualization capabilities, as well as the web applications and portals which need to be closer to the end devices. According to the OpenFog Consortium, Fog Computing is “a horizontal, system-level architecture that distributes computing, storage, control and networking functions closer to the users along a Cloud-to-Thing continuum”.
The main entities that live in a Fog Computing environment are the Fog Nodes. The Fog Nodes are in essence the main computational resource of the Fog Computing Paradigm. They are responsible for providing the cloud-like capabilities closer to the end-devices, and are responsible for making the complex world of the IoT more manageable. Other entities that belong to the Fog Paradigm include orchestration or control nodes, which are responsible for controlling specific groups of nodes, named the Fog Colonies. Fog Colonies are defined as group containers, parents to Fog Nodes, based on a topology or policies the systems rely on. They may act as dynamic micro data centers composed of distributed resources used for deploying services.
An interesting and active research topic is that of the control of the Fog Colonies. A significant amount of research is currently focused on how to optimally control FogColonies, from their formation, load balancing within the colony, and Fog Node management. This is due to the fact that oftentimes, decisions need to bemade within Fog Colonies. This is usually to maintain the Quality of Service provided by the Fog Colony as a whole, task Scheduling, and for tasks that require cooperation between Fog Nodes as are Task Offloading, and transferring management rights of resources between nodes.
The most prominent system designs currently call for a central control authority, as are Fog Controllers and orchestrators, which dictates the operation of the Fog Colony. In, the concept of a Fog controller is introduced, to manage Fog Colony Node coordination. In, each Fog Colony features exactly one head Fog orchestrator control node to distribute workloads within the Fog Colony, and propagate task requests to the Cloud-Fog control middleware or to other Fog Colonies. In, each Fog Colony uses a Fog orchestration node to place load to the Fog Nodes. An alternative to central control is proposed in, where a flat model of structure is implemented with self organizing compute nodes (SONs).