1.2 雾计算的基本组成
雾计算环境中包含大量异构的、广泛分布并且分散的设备。这些设备之间可以进行通信,并相互协作来存储数据、为应用任务提供算力支持,且该过程无须第三方介入。雾计算可提供的服务包括基本网络功能、新型服务或者应用程序。这些服务的载体(又称为服务托管设备)一般是智能化的通信基础设施。除此之外,网络中的个人用户或小型设备商等也可以作为服务载体提供额外的算力。具体方式包括出租部分联网的闲置设备来托管这些服务,从而获得奖励或报酬等[2]。由此,雾计算的主要特征可以概括如下[6]。
• 无处不在。
• 将传统通信网络改进为可托管服务的层次化计算环境。
• 更好地支持设备之间的合作。
在雾计算中,数据、数据处理模块和应用程序不是集中地部署在云中,而是由部署在网络中各个层级的设备来分散托管的。在某种程度上,雾计算是云计算的延伸概念,它的命名源自“雾是更贴近地面的云”这一气象学上的客观描述。也就是说,雾计算并非由性能强大的服务器组成,而是由大量性能较弱、更为分散的各类功能性计算设备组成[6]。这些计算设备可以渗入工厂、汽车、电器、路灯及各类公共设施或家用设备中。因此,雾计算将云扩展到更接近物联网数据产生和作用的边缘实体上。如图1-5所示,雾计算像在终端和云服务中心之间织就的一张弹性的、可提供计算能力的网。这张网连结终端和云服务中心,构成了一个“云-雾-端”一体化的体系结构[7] [8]。雾计算设备可以部署到几乎任何地方,并通过雾计算网络相互连接。这些设备可以分布在如工厂车间、车辆、电线杆顶部、飞行器、铁路轨道或石油钻塔上等各种环境中。同时也可以将具有计算、存储和网络连接能力的设备改造成为雾计算设备,例如,工业控制器、交换机、路由器、嵌入式服务器和视频监控摄像头等。
图1-5 分层算力网络示例:“云-雾-端”一体化的体系结构
1.2.1 雾计算与雾节点
在雾计算架构中,物联网业务的工作负载分散在其层次化的算力网络中。无数的“终端节点”(即各个传感器或连接网络的移动终端)不直接与云应用程序通信,而是将数据传输到部署在各个层次的设备,这些设备包括能够采集、汇总、存储和初步分析数据的网络基础设施、额外部署的计算设备、由用户自愿共享的有限计算/存储资源等[9]。这些基础设施、设备和资源等在雾计算平台中被统一抽象为“雾计算节点”或“边缘节点”。只有对时延不敏感的部分数据处理任务(例如,定期、批量的分析)被转发到集中式云或数据中心以供进一步分析和处理[10]。为便于描述,本书将“雾计算节点”和“边缘节点”统一称为雾节点。本书后续图表中将采用图1-6所示图形来表示雾节点,该图形来自OpenFog参考架构[3]标准。
图1-6 雾节点表示图形
雾节点部署在云(或数据中心)和用户设备之间的网络传输链路上,主要处理在网络边缘而不是云端的任务。在不同系统与环境中,“网络边缘”一词可能有不同的含义。在工业物联网环境中,边缘一般指生产工厂中驻留在终端中的节点,例如作为机器控制器或网络网关的一部分,边缘智能这一概念中的边缘往往也在这个范围内。而在欧洲电信标准协会(European Telecommunications Standards Institute,ETSI)的定义中,网络边缘经常指与核心网相对的边缘网络,如边缘路由器、基站和家庭网关等设备。从互联网服务提供商的角度出发,网络边缘又可以理解为运营商网络的边界节点,例如LTE的基站。本书中提到的网络边缘在没有明确说明的情况下泛指以上各种情形。
需要指出的是,当前一些简单的本地物联网实现方法也被称为雾计算,比如在局域网中部署服务器来收集、处理局域网内传感器产生的数据。由于雾计算定义较为宽泛,这种传统本地计算系统往往被归为雾计算的简单实现,但是它并不体现雾计算的核心价值。雾计算作为通向云计算的门户,它以无缝、网状的算力配置方式在多个边缘和云计算环境之间分配任务,并协调这种混合服务托管环境中的工作负载。雾计算可以被理解为是一种分布式的计算范式,用来为网络终端设备或用户提供类似云的服务。它利用云到网络边缘的IT资源及自己的基础设施来提供服务。也就是说,该技术通过利用终端设备到云服务中心之间的雾节点来实现存储、通信、控制、配置和管理,从而实现物联网的具体业务和应用。
总的来说,雾计算立足于边缘设备与终端节点的近距离通信,同时利用云资源的按需可伸缩性,进而为物联网业务按需提供高质量的服务。雾计算涉及分布式云和边缘设备中运行的数据处理和分析应用程序的组件,有助于数据中心和终端设备之间计算、网络和存储服务的管理和配置。此外,它还支持用户移动性、资源和接口异构性及分布式数据分析,以支持诸多分布式应用并满足其低处理延迟需求。
1.2.2 雾计算系统
雾计算将计算能力定义到局域网的级别(狭义上可以理解为一组相互连接的计算设备),使数据能够由集线器、节点、路由器或网关处理,然后将处理结果传输到适当层次的设备。在包含云、交换机、核心网、边缘基站和客户终端等不同层次设备的网络环境中,从云到客户终端之间的任何地方都可以部署雾计算功能。在某种程度上,雾计算寻求的是实现从云到终端的无缝连续计算服务,而不是将网络边缘视为孤立的计算平台。实际上,由雾节点组成的网络本身就拥有平台系统的性质。它可以用来支持多个行业和应用领域的服务,而不限于传统的电信服务。雾计算架构则需要进一步集合、协调、管理分布在网络环境中的资源和功能,使雾计算平台能灵活地适配多种网络架构。
当前雾计算的相关研究成果已较为丰富,并且逐渐走向商用,相关平台产品也正陆续推出。然而,实现一个雾计算系统不一定非要采用某种类型的体系结构,它更大程度上是代表一种支持将数据分析推向雾(即靠近边缘节点)的概念。因此,雾计算通常使用开放的标准技术。同样,雾计算并不代表所有的分析都需要在最靠近终端节点的设备上完成,而是面向现实业务需求、灵活使用分散在从终端到云之间通信链路上的计算资源,从而优化数据采集与处理的过程[6]。图1-7中简单描绘了一个包含公有云、私有云、网络接入设备、网络交换设备和各类终端的雾计算系统。其中,用虚线框出了该系统中包含的雾计算资源,同时也描绘了雾计算网络的边界。
图1-7 雾计算系统示意
1.2.3 物联网与雾计算设备
物联网功能通常由一组服务和应用程序来实现。而物联网架构决定了其功能的部署和不同功能在具体设备中的分配。物联网架构提出并回答了诸如“谁,在什么时间什么地点做什么?”的问题。物联网架构不仅需要支持当前存在的应用程序,还需要支持一些未来可能的应用。当前在Web应用及移动互联网应用中被广泛使用的应用程序架构是以TCP/IP为标志的互联网架构,从网络到电子邮件、从P2P到视频流等应用均采用此类架构。它包含几个关键性的原则,如寻址、端到端会话控制等。而雾计算和物联网应用之间的关系则类似于互联网架构和Web应用程序之间的关系。
一般而言,部署在网络边缘的雾节点将会作为一个最小的分析中心,来执行很多狭义上的数据处理过程。该雾节点的服务对象包括直接连接到网络边缘的终端设备或一组终端设备的集合;其托管的功能包括毫秒级的数据交换、少量数据的短期存储等。具体来说,雾节点首先存储并处理终端产生的大部分数据,再将经过筛选和处理的数据发送到云端。图1-7中的箭头说明了数据从物联网传感器传递到雾节点再到云服务中心的过程。对于某些特殊应用(比如存在控制回路的业务),处于边缘的雾计算设备也可以在采集、处理数据后直接将决策结果返回给终端。
在终端和云之间,包含各种类别的设备,每种类别设备的能力(例如处理、存储、通信)是不同的。雾计算系统中的大部分设备仅具备较弱的计算能力,设备的价格较低,而云中的大部分设备具有更高的计算能力,需要更高的成本。虽然没有严格的定义,但是在具体的应用中,雾计算设备一般指图1-8中分类5~分类1的设备,包括高端计算设备、低端计算设备、汇聚节点(Sink Node)、传感器网络和传感器节点,它们具有一些数据预处理的功能。而分类6中的设备一般是没有资源限制的,以云数据中心的计算设备为主。值得注意的是,随着时间的推移,分类5~分类1设备的能力也在大幅增加。例如,几年前,像智能手机这样的设备内存往往不足1GB。但是,今天智能手机可以拥有8GB甚至更高的内存容量。由于能耗、体积和形态等物理因素的限制及价格等方面的局限,雾与云设备之间的差异会一直存在。其中形态等因素限制是指可集中到设备中的计算能力总是与设备的大小和形状相关。这些雾计算设备的共同特征是:接近最终用户和目标终端设备,拥有密集的地理分布和本地资源池,支持服务质量(Quality of Services,QoS)、延迟降低、边缘分析及流数据挖掘[11]。
图1-8 基于计算能力由大到小的物联网设备分类