## 2 Edge Computing and Related Computing Paradigms
### Edge Computing
#### 2.4.3 Fog Computing  
Another concept of edge computing is fog computing. The fog computing paradigm (shortly often abbreviated as \"fog\" in the literature) was introduced by Cisco in 2012 to enable the processing of applications on billions of connected devices at the edge of the network [38]. Fog computing is defined as decentralizing a computing infrastructure by extending the cloud by locating nodes between the cloud and edge devices [63, 64]. This puts data, computation, storage, and applications closer to the user or IoT device where the data needs processing; therefore, a fog will be created outside the centralized cloud and reduces the necessary data transfer times to process data. As a consequence, computation, storage, networking, decision-making, and data management take place both in the cloud and throughout the IoT-to-cloud route while data travel over to the cloud (preferably in close proximity to IoT devices). For example, in intelligent transportation systems (ITSs), GPS data can be compressed at the edge before transferring to the cloud [65]. According to the definition of the OpenFog Consortium, fog computing is [37]: \"a horizontal system-level architecture that distributes computing, storage, control and networking functions closer to the users along a cloud-to-thing continuum.\" Computing functions in fog computing have been distributed amongst various platforms and industries due to the \"horizontal\" platform [66]. To be able to fulfill the requirements of data-driven operators/users, a flexible platform has been provided in fog computing. IoT can be strongly supported by fog computing. Compared with traditional cloud computing, fog nodes are placed in the vicinity of IoT source nodes, which causes significantly low latency. Node locations are less centralized in fog computing, as opposed to cloud data centers, which are centralized. Fog nodes are widely distributed geographically. In fog computing, security is achieved via the edge or in the fog node locations compared with cloud computing, in which security mechanisms are provided in the location of cloud data centers. Because fog computing is decentralized, devices can be served as either fog computing nodes themselves or as clients of the fog that use fog resources. The main difference between cloud and fog computing is the scale of hardware components related to these computing paradigms. Cloud computing provides highly available computing resources with relatively high-power consumption, while fog computing provides computing resources with medium availability and lower power consumption [67]. Cloud computing usually utilizes large data centers, whereas, in fog computing, there are small servers, routers, switches, gateways, set-top boxes, or access points. Hardware in fog computing occupies much less space compared with the one in cloud computing; therefore, it can be placed closer to users. Fog computing is accessible via connected devices from the edge to the network core, while cloud computing is accessible via the network core. In addition, fog-based services can work without continuous Internet connectivity (with low/no Internet connection), meaning that the services are able to work independently, then necessary updates will be sent to the cloud anytime that there is an Internet connection. However, in cloud computing, devices need to be connected to the Internet while the cloud service is running. In fog, computation, communication, storage, control, and decision-making have been distributed closer to IoT devices, helping devices to measure, monitor, process, analyze, and react [37]. Many industries, such as energy, manufacturing, transportation, healthcare, smart cities, etc., could benefit from fog computing. Compared with MACC, MACC is more suitable for highly decentralized and dynamic networks in which there might be no Internet connection. In MACC, connected devices are mostly not centralized; therefore, devices form a more dynamic network [68].