What is fog computing
and why without them no internet of things can be built

Fog computing is designed to expand the cloud storage, computing and networking functions. The concept involves data processing on the end devices of the network (computers, mobile devices, sensors, smart nodes, etc.), and not in the cloud, thus solving the main problems that arise when organizing the Internet of things. The term Fog Computing was coined by Cisco Vice President Flavio Bonomi in 2011. He proposed the concept of Fog Computing, by analogy with "cloud computing" (Cloud Computing), as an extension of the "cloud" to the boundaries of the network. Technologically, the concept of Fog Computing is closely related to distributed (cloud) data centers, in which data center servers can be located in many locations, up to the network edge. Data centers can be small (containerized, modular or mobile), being in fact "removals" of large data centers. Thus, the distinguishing feature of Fog Computing is proximity to end users and support for their mobility.

The development of the Internet of things (IoT, Internet of Things) required the support of IoT device mobility for various locations with geolocation and with a small delay in data processing. Therefore, a new platform was proposed to meet such requirements, which was called Fog computing - "fog computing". Its main feature is the processing of data in close proximity to the sources of their receipt, without the need to transfer them to large data centers only to process them there and transfer back the results.

Thus, the origin of the term "fog computing" becomes clear: when a thick cloud descends to the surface of the earth (to the edge of the network), we see fog.

Standardization
In 2015, in order to develop common approaches to the implementation of Fog by ARM, Cisco, Dell, Intel, Microsoft, as well as Princeton University, the OpenFog Consortium was created in the USA. In the future, the OpenFog consortium included many other companies (General Electric, Hitachi, ZTE, etc.), as well as universities, such as ShanghaiTech University. By 2018, OpenFog has over 50 members. The OpenFog Consortium is developing the OpenFog RA[1] (OpenFog Reference Architecture) standard architecture.

Implementation and architecture
Both Cloud and Fog Computing use similar IT resources: computing devices (servers and processors of user computers), network switching nodes and data storage systems. However, expanding the cloud to the edge of the network is not just about scaling that cloud. The technical implementation, as well as the range of Fog applications, may differ significantly from Cloud. Fog is intended primarily for applications and services that do not perform well in the Cloud Computing architecture, or cannot work in it at all. Basically, this is the area of the Internet of things, the growing development of which cannot be fully supported only with the help of Cloud[2] solutions. The development of IoT has faced the need to filter and pre-process data before sending it to the cloud. Basically, these are the following applications:

Applications that require low and predictable network latency, such as gaming applications or video conferencing.
Transportation applications such as self-driving cars, high-speed trains, intelligent transportation systems, etc.
Applications requiring local real-time data processing, such as: intelligent power supply systems (Smart Grid), intelligent transportation systems (ITS), geophysical exploration of subsoil, pipeline management, environmental monitoring sensor networks, etc.
Fog is not an alternative to Cloud. On the contrary, Fog interacts fruitfully with the Cloud, especially in administration and data analytics, and this interaction gives birth to a new class of applications.
The Fog Computing architecture is a kind of "layer" on the border between the cloud and IoT devices with sensors, as well as mobile devices of users.


Fog Computing Network Architecture
The main architectural differences between Fog and Cloud:

Ensuring the quality of services (QoS, Quality of Service), which requires dynamic adaptation of applications to the state of the network.
Location Awareness in order to maintain the stability of the application in terms of terminal mobility.
Tracking contextual information (Context Awareness), i.e. the ability to detect the presence of available resources nearby in order to use them in the application, with the possibility of horizontal interaction.
In the Fog architecture, network nodes (Fog Sites) located closer to cloud data centers have more processing power and more data in storage systems. Network nodes closer to IoT sensors and mobile 

devices, have greater interactivity and faster response. A distinctive feature of Fog is that user devices such as personal computers, home gateways, set-top boxes and mobile devices can act as a network node. In order for a user's device to operate as a Fog network node, the user must give the carrier appropriate permission to use their gadget's processing power in the background, in exchange for various benefits from the operator.

Typical Fog Computing Application

Distributed Computing and Big Data in IoT

Typical Fog Computing Application

Fog Computing Platforms
Some use cases
There can be a lot of use cases for Fog Computing, and the development of related technologies will allow more and more new scenarios. According to Ovum, Fog Computing is the main framework for the Internet of Things[3].


Internet of Things and Fog Computing Trends.
Autonomous transport control systems (ADS, Autonomous Driving System)
ADS uses a variety of multi-mode sensors, computer vision and image analysis technologies, satellite and network positioning on maps, and predictive analytics, based on which ADS helps to control the driver or controls a self-moving vehicle. Such applications require high performance, so the Fog node with elements of artificial intelligence must be placed directly in the vehicle.[4].


Fog Node Components in ADS
Fog systems in eHealth (eHealth)
Fog systems in medicine are used in cases where it is necessary to quickly analyze the data received from sensors worn by the patient and take immediate action in accordance with the treatment plan [5].

For example, Fog technologies are already being used to monitor the condition of diabetic patients and automatically administer injections [6]. A sensor on the patient's body determines the critical value of sugar in the blood, and through the Fog-network gives a signal to perform an injection using a micro-syringe, also located on the patient's body. Thus, the patient gets rid of the need to constantly take measurements and inject himself.

Fog projects of cloud providers
In 2016, the three largest cloud platform providers - Amazon, Google and Microsoft - launched several projects using Fog Computing in their IoT ecosystems, which use the so-called. "serverless architecture" (serverless architecture).

Serverless architecture allows you to execute the source code of thousands and millions of users (in particular, fog devices) inside the computing environment without worrying about scaling resources.

Microsoft

Microsoft announced support for Azure Functions within the SDK (Software Development Kit) development platform. Azure Functions was first introduced into the Serverless Architecture cloud product families developed by Microsoft.

Amazon

Amazon has developed the Greengrass platform with support for the so-called. Lambda functions (serverless architecture) in IoT devices when interacting with the AWS cloud platform. Greengrass is a program module execution container that can be run directly on a Fog device, rather than on a server in a data center. Devices with Greengrass can exchange information with each other regardless of the presence of an external Internet, i.e. horizontally between Fog devices using various IoT radio protocols.

Google

Google has unveiled the Android Things IoT platform, supporting the Intel Edison and Joule 570x microcomputers, NXP Pico i.MX6UL and Argon i.MX6UL microcomputers, and the Raspberry Pi 3. Fog apps are developed on the Android Studio platform for any of these devices. Android Things also provides integration with Google Play and the entire Android ecosystem, which now powers 90% of the world's smartphones. Thus, the Android Things system allows any Android smartphone or tablet to work as a Fog node.

These projects show the trend of “commoditization” of IoT devices, i.e. designing and building them based on the public elements of Fog Computing.

In Russia, IoT and Fog Computing technologies are used, for example, in the “smart quarry” solutions of the Russian company VIST Mining Technology (the word “mining” in the name of the Russian company is used in its original meaning - mining).


Scheme of the "smart quarry" solution of the Russian company VIST Mining Technology
Benefits and Predictions
Fog Computing is a new step in the development of cloud computing, which reduces the delays that occur when transferring data to the central cloud and provides new opportunities for creating smart devices of the Internet of Things[7].

The advantage of fog computing is to reduce the amount of data transmitted to the cloud, which reduces network bandwidth requirements, increases speed 

processing data and reduces delays in decision making. Fog computing solves some of the most common problems, including:

high network latency;
endpoint mobility difficulties;
loss of connection;
high cost of bandwidth;
unexpected network congestion;
large geographical distribution of systems and clients.
The global market for Fog systems is estimated at $18 billion by 2022[8].

Fog computing technologies have the greatest development potential in the following industries: energy, utilities, and transport, agriculture, trade, as well as healthcare and industrial production.

The energy and utilities sector represents the largest market for Fog computing systems, with potential to grow to $3.84 billion by 2022.

The transport sector is the second largest potential market for Fog computing with growth potential to $3.29 billion by 2022

The medical industry represents the third largest Fog computing market, estimated at $2.74 billion by 2022.