# Fog Computing for Smart Cities' Big Data Management and Analytics: A Review
## 2 Background  
### Edge and Fog Computing  
Gartner defined Edge computing in their glossary as follows: \"Edge computing is part of a distributed computing topology where information processing is located close to the edge, where things and people produce or consume that information\" [5]. Instead of relying on a data center that can be thousands of miles away for storage and processing, edge computing brings data storage and processing closer to the devices that generate and collect the data. Proximity is essential for applications that require real-time data for their operations and very low latency. Additionally, by processing data locally, organizations can save money by reducing the data volume to be transferred and processed in cloud servers [6]. Companies that have adopted cloud-based solutions to implement many business processes may have realized that the required bandwidth results in higher costs than expected. A typical example is a video camera connected to the Internet that sends live photographs from a public square in the city or an app that monitors health equipment in a health facility using several sensors and IoT devices. A single video camera can very quickly transmit the generated data over a network. However, when many video cameras simultaneously transmit live recordings, many problems can arise. Not only does latency affect quality, but bandwidth costs can be huge. Edge computing is proliferating due to the rapid and growing deployment of IoT devices, which generate vast amounts of data during their operations. These devices connect to the Internet directly or through gateways to transmit data to the cloud or receive instructions from the cloud server. According to IDC's forecast for 2019, \"at least 40% of the data generated by IoT devices would be stored, processed, and analyzed at the edge of the network.\" [7]. The inefficiency of cloud-based data processing solutions for latency-sensitive edge applications has led to the design of some solutions deployed at the network's edge. These solutions include micro data centers, cloudlets and fog computing-based solutions [6; 8]. Cisco Systems defined Fog computing as follows: \"Fog Computing is a highly virtualized platform that provides compute, storage, and networking services between end devices and traditional Cloud Computing Data Centers, typically, but not exclusively located at the edge of the network\" [9]. The primary benefit of both edge computing and fog computing paradigms is the ability to store and process data faster, making real-time applications critical to business operations more efficient. Before the advent of edge and fog computing, an application using a surveillance camera had to invoke a cloud-based service to perform facial recognition, which results in high latency. With an edge or fog computing-based solution, an edge server or gateway would run the service locally. Applications such as self-driving cars, virtual and augmented reality, and intelligent transportation systems require rapid processing and response. Figure 1 illustrates the position of fog computing in a fog-cloud smart city environment and examples of application areas that would benefit from it. Figure 1: Smart city fog and cloud infrastructure. The earlier literature on fog computing and edge computing described the two paradigms interchangeably. For both technologies, IoT data processing is done close to the data sources before being transferred to a cloud server. With edge computing, data are typically processed in edge devices and then forwarded to fog nodes or cloud servers using edge gateways, which have more powerful communication capabilities than edge devices. With fog computing, the data are analyzed and processed in a fog node at the local network's edge. The OpenFog Consortium (openfogconsortium.org), which is now part of the Industrial Internet Consortium (IIC), reveals that edge computing is often mistakenly called fog computing.