1.1 Introduction
The Internet of Things (IoT) [1] 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 [2]. 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 [3].
- 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 [4] tends to partition the portions of processes to the data centers near the edge network. Further, the mobile cloud computing model [5] introduced the physical proximityâbased cloud computing resources provisioned by the local wireless Internet access point providers. Moreover, academic research projects [6] 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 [7], has gained the most attention.
Fog computing architecture [8] 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 ne...