原创翻译:龙腾网 http://www.ltaaa.com 翻译:土拨鼠之日 转载请注明出处



The Internet of Things (IoT) could enable innovations that enhance the quality of life, but it generates unprecedented amounts of data that are difficult for traditional systems, the cloud, and even edge computing to handle. Fog computing is designed to overcome these limitations.




The Internet of Things (IoT) promises to make many items—including consumer electronic devices, home appliances, medical devices, cameras, and all types of sensors—part of the Internet environment. This opens the door to innovations that facilitate new interactions among things and humans, and enables the realization of smart cities, infrastructures, and services that enhance the quality of life.
By 2025, researchers estimate that the IoT could have an economic impact—including, for example, revenue generated and operational savings—of $11 trillion per year, which would represent about 11 percent of the world economy; and that users will deploy 1 trillion IoT devices.


Recent analysis of a healthcare-related IoT application with 30 million users showed data flows up to 25,000 tuples per second. And real-time data flows in smart cities with many more data sources could easily reach millions of tuples per second.


To address these issues, edge computing was proposed to use computing resources near IoT sensors for local storage and preliminary data processing. This would decrease network congestion, as well as accelerate analysis and the resulting decision making. However, edge devices can’t handle multiple IoT applications competing for their limited resources, which results in resource contention and increases processing latency.


Fog computing—which seamlessly integrates edge devices and cloud resources—helps overcome these limitations. It avoids resource contention at the edge by leveraging cloud resources and coordinating the use of geographically distributed edge devices.




Fog computing is a distributed paradigm that provides cloud-like services to the network edge. It leverages cloud and edge resources along with its own infrastructure, as Figure 1 shows. In essence, the technology deals with IoT data locally by utilizing clients or edge devices near users to carry out a substantial amount of storage, communication, control, configuration, and management. The approach benefits from edge devices’ close proximity to sensors, while leveraging the on-demand scalability of cloud resources.


Figure 1. Distributed data processing in a fog-computing environment. Based on the desired functionality of a system, users can deploy Internet of Things (IoT) sensors in different environments including roads, medical centers, and farms. Once the system collects information from the sensors, fog devices—including nearby gateways and private clouds— dynamically conduct data analytics.


Fog computing involves the components of data-processing or analytics applications running in distributed cloud and edge devices. It also facilitates the management and programming of computing, networking, and storage services between datacenters and end devices. In addition, it supports user mobility, resource and interface heterogeneity, and distributed data analytics to address the requirements of widely distributed applications that need low latency.




Figure 2 presents a fog-computing reference architecture. Fog systems generally use the sense-process-actuate and stream-processing programming models. Sensors stream data to IoT networks, applications running on fog devices subscribe to and process the information, and the obtained insights are translated into actions sent to actuators.


Figure 2. Fog-computing architecture. In the bottom layer are end devices— including sensors and actuators—along with applications that enhance their functionality. These elements use the next layer, the network, for communicating with edge devices, such as gateways, and then with cloud services. The resource-management layer runs the entire infrastructure and enables quality-of-service enforcement. Finally, applications leverage fog-computing programming models to deliver intelligent services to users.


There are four prominent software systems for building fog computing environments and applications.


Cisco IOx provides device management and enables M2M services in fog environments. Using device abstractions provided by Cisco IOx APIs, applications running on fog devices can communicate with other IoT devices via M2M protocols.

思科IOx提供设备管理,并在雾计算环境中提供M2M服务。使用思科IOx API提供的设备抽象,在雾设备上运行的应用程序可以通过M2M协议与其他物联网设备进行通信。

Cisco Data in Motion (DMo) enables data management and analysis at the network edge and is built into products that Cisco Systems and its partners provide.

思科的Data in Motion (DMo)支持在网络边缘进行数据管理和分析,它内置在思科系统及其合作伙伴提供的产品中。

LocalGrid’s fog-computing platform is software installed on network devices in smart grids. It provides reliable M2M communication between devices and data-processing services without going through the cloud.


Cisco ParStream’s fog- computing platform enables real-time IoT analytics.


Various applications could benefit from fog computing.


1. Healthcare and activity tracking


Fog computing could be useful in healthcare, in which real-time processing and event response are critical. One proposed system utilizes fog computing to detect, predict, and prevent falls by stroke patients.The fall-detection learning algorithms are dynamically deployed across edge devices and cloud resources. Experiments concluded that this system had a lower response time and consumed less energy than cloud-only approaches.


A proposed fog computing-based smart-healthcare system enables low latency, mobility support, and location and privacy awareness.


2. Smart utility services


However, constructing a real IoT environment as a testbed for uating such techniques is costly and doesn’t provide a controllable environment for conducting repeatable experiments. To overcome this limitation, we developed an open source simulator called iFogSim. iFogSim enables the modeling and simulation of fog-computing environments for the uation of resource-management and scheduling policies across edge and cloud resources under multiple scenarios, based on their impact on latency, energy consumption, network congestion, and operational costs. It measures performance metrics and simulates edge devices, cloud datacenters, sensors, network links, data streams, and stream-processing applications.




Realizing fog computing’s full potential presents several challenges including balancing load distribution between edge and cloud resources, API and service management and sharing, and SDN communications. There are several other important examples.


1. Enabling real-time analytics


In fog environments, resource management systems should be able to dynamically determine which analytics tasks are being pushed to which cloud- or edge-based resource to minimize latency and maximize throughput. These systems also must consider other criteria such as various countries’ data privacy laws involving, for example, medical and financial information.


2. Programming models and architectures


Most stream- and data-processing frameworks don’t provide enough scalability and flexibility for fog and IoT environments because their architecture is based on static configurations. Fog environments require the ability to add and remove resources dynamically because processing nodes are generally mobile devices that frequently join and leave networks.


3. Security, reliability, and fault tolerance




Fog computing enables the seamless integration of edge and cloud resources. It supports the decentralized and intelligent processing of unprecedented data volumes generated by IoT sensors deployed for smooth integration of physical and cyber environments.
This could generate many benefits to society by, for example, enabling smart healthcare applications. The further development of fog computing could thus help the IoT reach its vast potential.