Article Preview
Top1. Introduction
In recent years, the concept of Internet of Things has influenced various application domains such as smart cities (Zanella, 2014), e-learning (Chang, 2017), health-care applications (Wu, 2017) and agriculture (Brewster, 2017), etc. As per Cisco, the number of devices within IoT that are connected and available via Internet will be between 50 and 100 billion by 2020 (Bonomi, 2012). The IoT devices are typically the sensors embedded in environments, buildings, vehicles, manufacturing processes, and smart health related wearable devices (Gubbi, 2013). The amount of the data generated by IoT devices grows exponentially as these devices operate nonstop, 24/7, creating an avalanche of data. While data processing is typically envisaged to be conducted in clouds, it alone is suffering from growing limitations in meeting demands of numerous applications where the local computation by nearby data sources is required for low-latency response, contextual information integration, or networking load reduction. Meanwhile, moving all the data generated from IoT devices into cloud server for further processing or storage poses overwhelming challenges on the Internet infrastructure and is often prohibitively expensive, technically im-practical, and mostly unnecessary.
Fog computing, proposed by Cisco, plays a bridge between end-user and cloud that provides services with low latency and less traffic congestion (Bonomi, 2012). The computing power of every fog server is very high, same as light-weighted cloud servers. This huge amount of data is processed at the edge of the network and very less amount of workload is transferred to cloud for storage, analytic or process purpose. Fog computing is a model of distributed computing comprising of virtualized, heterogeneous, commodity computing and storage resources for hosting applications, analytics, content and services, that are accessible with low-latency from the edge of wide area networks where clients are present, while also having back-end connectivity to cloud computing resources (Bonomi, 2014). It is a promising approach to processing data before they even attempt to reach cloud, shortening the communication times and cost, as well as reducing the need for huge data storage (Dastjerdi & buyya, 2016). It seamlessly bridges IoT devices and the remote cloud data centers by pushing cloud computing, storage, and networking services down closer to end IoT devices.