A comprehensive guide to Fog and Edge applications, architectures, and technologies Recent years have seen the explosive growth of the Internet of Things (IoT): the internet-connected network of devices that includes everything from personal electronics and home appliances to automobiles and industrial machinery. Responding to the ever-increasing bandwidth demands of the IoT, Fog and Edge computing concepts have developed to collect, analyze, and process data more efficiently than traditional cloud architecture. Fog and Edge Computing: Principles and Paradigms provides a comprehensive overview of the state-of-the-art applications and architectures driving this dynamic field of computing while highlighting potential research directions and emerging technologies. Exploring topics such as developing scalable architectures, moving from closed systems to open systems, and ethical issues rising from data sensing, this timely book addresses both the challenges and opportunities that Fog and Edge computing presents. Contributions from leading IoT experts discuss federating Edge resources, middleware design issues, data management and predictive analysis, smart transportation and surveillance applications, and more. A coordinated and integrated presentation of topics helps readers gain thorough knowledge of the foundations, applications, and issues that are central to Fog and Edge computing. This valuable resource: Provides insights on transitioning from current Cloud-centric and 4G/5G wireless environments to Fog Computing Examines methods to optimize virtualized, pooled, and shared resources Identifies potential technical challenges and offers suggestions for possible solutions Discusses major components of Fog and Edge computing architectures such as middleware, interaction protocols, and autonomic management Includes access to a website portal for advanced online resources Fog and Edge Computing: Principles and Paradigms is an essential source of up-to-date information for systems architects, developers, researchers, and advanced undergraduate and graduate students in fields of computer science and engineering.
Internet of Things (IoT) and New Computing Paradigms
Chii Chang Satish Narayana Srirama and Rajkumar Buyya
The Internet of Things (IoT)  represents a comprehensive environment that interconnects a large number of heterogeneous physical objects or things such as appliances, facilities, animals, vehicles, farms, factories etc. to the Internet, in order to enhance the efficiency of the applications such as logistics, manufacturing, agriculture, urban computing, home automation, ambient assisted living, and various real-time ubiquitous computing applications.
Commonly, an IoT system follows the architecture of the Cloud-centric Internet of Things (CIoT) in which the physical objects are represented in the form of Web resources that are managed by the servers in the global Internet . Fundamentally, in order to interconnect the physical entities to the Internet, the system will utilize various front-end devices such as wired or wireless sensors, actuators, and readers to interact with them. Further, the front-end devices have the Internet connectivity via the mediate gateway nodes such as Internet modems, routers, switches, cellular base stations, and so on. In general, the common IoT system involves three major technologies: embedded systems, middleware, and cloud services, where the embedded systems provide intelligence to the front-end devices, middleware interconnects the heterogeneous embedded systems of front-end devices to the cloud and finally, the cloud provides comprehensive storage, processing, and management mechanisms.
Although the CIoT model is a common approach to implement IoT systems, it is facing the growing challenges in IoT. Specifically, CIoT faces challenges in BLURS-bandwidth, latency, uninterrupted, resource-constraint, and security .
- Bandwidth. The increasingly large and high-frequent rate data produced by objects in IoT will exceed the bandwidth availability. For example, a connected car can generate tens of megabytes' data per second for the information of its route, speeds, car-operating condition, driver's condition, surrounding environment, weather etc. Further, a self-driving vehicle can generate gigabytes of data per second due to the need for real-time video streaming. Therefore, fully relying on the distant Cloud to manage the things becomes impractical.
- Latency. Cloud faces the challenges of achieving the requirement of controlling the end-to-end latency within tens of milliseconds. Specifically, industrial smart grids systems, self-driving vehicular networks, virtual and augmented reality applications, real-time financial trading applications, healthcare, and eldercare applications cannot afford the causes derived from the latency of CIoT.
- Uninterrupted. The long distance between cloud and the front-end IoT devices can face issues derived from the unstable and intermittent network connectivity. For example, a CIoT-based connected vehicle will be unable to function properly due to the disconnection occurred at the intermediate node between the vehicle and the distant cloud.
- Resource-constrained. Commonly, many front-end devices are resource-constrained in which they are unable to perform complex computational tasks and hence, CIoT systems usually require front-end devices to continuously stream their data to the cloud. However, such a design is impractical in many devices that operate with battery power because the end-to-end data transmission via the Internet can still consume a lot of energy.
- Security. A large number of constraint front-end devices may not have sufficient resources to protect themselves from the attacks. Specifically, outdoor-based front-end devices, which rely on the distant cloud to keep them updated with the security software, can be attackers' targets, in which the attackers are capable of performing a malicious activity at the edge network where the front-end devices are located and the cloud does not have full control on it. Furthermore, the attacker may also damage or control the front-end device and send false data to the cloud.
The growing challenges of CIoT raised a question-what can be done to overcome the limitation of current cloud-centric architecture?
In the last decade, several approaches have tried to extend the centralized cloud computing to a more geo-distributed manner in which the computational, networking, and storage resources can be distributed to the locations that are much closer to the data sources or end-user applications. For example, the geo-distributed cloud-computing model  tends to partition the portions of processes to the data centers near the edge network. Further, the mobile cloud computing model  introduced the physical proximity-based cloud computing resources provisioned by the local wireless Internet access point providers. Moreover, academic research projects  have experimented with the feasibility of the mobile ad hoc network (MANET)-based cloud using the advanced RISC machine (ARM)-powered devices. Among the various approaches, the industry-led fog computing architecture, which was first introduced by Cisco research , has gained the most attention.
Fog computing architecture  covers a broad range of equipment and networks. In general, it is a conceptual model that address all the possibilities to extend the cloud to the edge network of CIoT, from the geo-distributed data center, intermediate network nodes to the extreme edge where the front-end IoT devices are located. Figure 1.1 illustrates different network computing paradigms supporting IoT-enabled smart systems and applications. To enumerate, the general CIoT paradigm (mark 1) manages the smart systems entirely at the distant central cloud datacenter in which the IoT devices act as simple sensory data collectors or actuators and leave the processes and decision-making to the cloud. The generic edge computing paradigm (mark 2) distributes certain tasks to the IoT devices or the co-located computers within the same subnet of the IoT devices. Such tasks can be data classification, filtering, or signal converting, for example. Fog computing paradigm (marks 3 and 4) utilizes a hierarchical-based distributed computing model that supports horizontal scalability of the computational resources.
Figure 1.1 IoT applications and environments with supporting computing paradigms.
For example, a fog-enabled IoT system can distribute the simple data classification tasks to the IoT devices and assign the more complicated context reasoning tasks at the edge gateway devices. Further, for the analytics tasks that involve terabytes of data, which requires higher processing power, the system can further move the processes to the resources at the core network such as the data centers of wide area network (WAN) service providers or it can utilize the cloud. Certainly, the decision of where the system should assign the tasks among the resources across different tiers depends on efficiency and adaptability. For example, smart systems may need to assign certain decision-making tasks to the edge devices in order to provide timely notification about the situation, such as the patient's condition in the smart healthcare, the security state of the smart home, the traffic condition of the smart city, the water supply condition of smart farming, or the production line operation condition of a smart factory.
The industry has seen fog as the main trend for the practical IoT systems, and the leading OpenFog consortium has established collaboration with major industrial standard parties such as European Telecommunications Standards Institute (ETSI) multi-access edge computing (MEC) and IEEE Standard for fog computing and networking  to hasten the fog. Furthermore, the fog market research report  stated that the market value of fog will grow from $3.7 billion by 2019 up to $18.2 billion by 2022 across different fields, where the top five utilization domains of fog will be energy/utilities, transportation, healthcare, industry, and agriculture.
In this chapter, we discuss foundations of computing paradigms for realizing emerging IoT applications, especially fog and edge computing, their background, characteristics, architectures and open challenges. Section 1.2 presents related technologies to fog and edge computing. Section 1.3 describes how fog and edge can improve CIoT. Section 1.4 explains the hierarchy of fog and edge computing environments. Section 1.5 illustrates the business models of fog and edge computing. Section 1.6 provides the information regarding to the opportunities and challenges in fog and edge computing. Finally, Section 1.7 summarizes the content of the chapter.
1.2 Relevant Technologies
The notion of having computational resources near the data sources may seem not new. Particularly, the term-edge computing appeared in 2004 to illustrate a system that distributes program methods and the corresponding data to the network edge towards enhancing performance and efficiency . Similarly, the notion of having virtualization technology-based computing resources within the Wi-Fi subnet was introduced...