Internet of Things (IoT) has accelerated the deployment of millions of sensors at the edge of the network, through Smart City infrastructure and lifestyle devices. Cloud computing platforms are often tasked with handling these large volumes and fast streams of data from the edge. Recently, Fog computing has emerged as a concept for low-latency and resource-rich processing of these observation streams, to complement Edge and Cloud computing. In this paper, we review various dimensions of system architecture, application characteristics and platform abstractions that are manifest in this Edge, Fog and Cloud eco-system. We highlight novel capabilities of the Edge and Fog layers, such as physical and application mobility, privacy sensitivity, and a nascent runtime environment. IoT application case studies based on first-hand experiences across diverse domains drive this categorization. We also highlight the gap between the potential and the reality of Fog computing, and identify challenges that need to be overcome for the solution to be sustainable. Together, our article can help platform and application developers bridge the gap that remains in making Fog computing viable.
IntroductionThe prime drivers of Big Data over the past decade have been the WWW, social media, eCommerce, and enterprise information systems, with data and services being consolidated in public and private data centers. However, sensing at the edge of the network is accelerating many-fold. This is enabled through infrastructure like Smart Cities that are being deployed globally, lifestyle devices like wearables and smart appliances, and observations collected ad hoc through crowd-sourcing over smart phones [3,23]. A large class of this data streaming from the edge can be attributed to the Internet of Things (IoT), where the 1 Pre-print: