Fog computing, also known as fogging, is a distributed computing infrastructure in which some application services are handled at the network edge in a smart device and some application services are handled in a remote data center -- in the cloud. The goal of fogging is to improve efficiency and reduce the amount of data that needs to be transported to the cloud for data processing, analysis and storage. This is often done for efficiency reasons, but it may also be carried out for security and compliance reasons.
In a fog computing environment, much of the processing takes place in a data hub on a smart mobile device or on the edge of the network in a smart router or other gateway device. This distributed approach is growing in popularity because of the Internet of Things (IoT) and the immense amount of data that sensors generate. It is simply inefficient to transmit all the data a bundle of sensors creates to the cloud for processing and analysis; doing so requires a great deal of bandwidth and all the back-and-forth communication between the sensors and the cloud can negatively impact performance. Although latency may simply be annoying when the sensors are part of a gaming application, delays in data transmission can be life-threatening if the sensors are part of a vehicle-to-vehicle communication system or large-scale distributed control system for rail travel.
The term fog computing is often associated with Cisco. "Cisco Fog Computing" is a registered name; “fog computing” is open to the community at large. The choice of the word "fog" is meant to convey the idea that the advantages of cloud computing can -- and should -- be brought closer to the data source. (In meteorology, fog is simply a cloud that is close to the ground.)