FOG Computing: Convergence of IoT & Cloud

Image result for fog computing
IoT/IoE/M2M all point towards a very exciting area of evolving technologies which exhibit potential to change how we live, work, operate, manufacture, consume and deliver things. Basically IoT means a sensor or a device capturing some information and sending it to a server or cloud over the internet back-haul. Later on that information is processed, analyzed and consumed to take action or make meaningful derivations. But an important question is do we need to transmit all data capture at the sensor/device level to the cloud/central server? NO. Do we have time sensitive information and need to make really quick decisions at the edge layer? Yes, in some use cases.
Cisco says that today's CLOUD is not designed for the Volume, Variety, and Velocity of the data that IoT generates. So what do we need a solution that reduce reliance on cloud and also help make the edge of the IoT network more smarter, efficient and scale-able.
Fog computing or fog networking also known as fogging is the answer. It is an architecture that uses one or more collaborative multitude of end user clients or near-user edge devices to carry out a substantial amount of storage, communication, control, configuration, measurement and management.
Fog becomes a complimentary solution to the cloud to support managing vast amount of data generated by IoT devices and offer solution to need of minimizing latency, conserving network bandwidth, reducing cost, protecting sensitive data/information, and operating reliably. Cisco described the edge characteristics (image on the left) very nicely. What I derive is that FOG/Edge computing can support the system to run in case of major link failures or connectivity losses and hence make the system more reliable and robust for mission critical applications.
Let's take simple example of surveillance, where a video or photo captured by a camera is transmitted over the internet and then analyzed for decision making. What if we build small intelligence at the device layer (of course there is a trade off the power requirement) , where in it makes quick decision and filter out not so useful video or images. We need machine learning coupled with artificial intelligence and some business logic encoded in the device and executed on every capture. In the same scenario we sometime also need to make decisions in milliseconds and cannot wait for the round trip to the cloud.