胡忠波,贾芝婷,王素贞
(河北经贸大学 信息技术学院,河北 石家庄 050061)
随着物联网技术的快速发展,产生了一批新型应用,例如虚拟现实、无人驾驶和远程手术等,这些新型应用大多部署在终端设备上且对时延和带宽较敏感,其往往要求低时延、高带宽和更大的存储能力。传统的云计算模式[1]需要将数据全部传输到云数据中心进行处理,传输过程中传输时延、网络带宽、能量损耗、数据安全等问题都难以避免。因此,以解决数据传输延迟、降低网络带宽为目标的边缘计算迅速发展。边缘计算[2-3]是在靠近用户终端设备的网络边缘执行计算的一种新型计算模式,边缘计算中的边缘是指从数据产生端到云计算处理中心的路径之间的任意计算和网络资源[4]。在边缘计算模式中,终端产生的数据不再需要全部上传到云数据中心,而是通过部署在网络边缘的边缘节点快速处理数据,从而降低了计算时延和设备能耗,同时也减轻了云服务器的能耗[5]。得益于边缘计算的优势,近年来,越来越多的边缘计算平台和应用实例被陆续提出[6]。
本文基于边缘计算产业联盟提出的边缘计算参考架构,参照其他文献,给出边缘计算的参考架构示意图,如图1所示。该架构主要包括云计算层、边缘层和终端层,其中边缘层是该架构的核心组成部分,涵盖多领域功能模块,既实现了与云层的数据传输,又支持终端层的接入。
图1 边缘计算架构示意图
边缘计算关键技术有计算卸载、资源管理、服务编排、移动性管理、边缘缓存等。本文主要介绍与分析终端计算任务卸载到边缘服务器技术、针对计算任务的资源配给与管理技术、边缘服务器上的内容缓存等。
计算任务卸载,是指通过终端设备把要处理的运算任务卸载给网络资源较丰富的边缘服务器,使用边缘服务器的运算和存储资源处理计算任务,以减少时延和功耗,提升服务质量。卸载决策是计算卸载技术中的关键,主要解决了终端设备如何卸载任务、卸载什么,以及如何卸载的问题。根据卸载决策的优化目标,可将其分为三类:减少延迟、减少能耗、平衡延迟和能耗。
Liu等人[7]研究允许在移动设备和MEC服务器上执行并行计算的系统。首先使用马尔科夫链理论分析卸载任务的平均时延和能耗,然后对时延最小化问题进行数学建模,接着提出一种一维搜索算法得到最优卸载策略。仿真实验证明与基准策略相比,所提出的任务调度策略具有更短的平均执行延迟。Alam等[8]研究了人工智能技术在任务卸载中的应用,提出了在接近用户终端网络的MEC中的计算卸载方案。为了处理海量移动设备对计算资源的需求,作者提出了一种基于Q-learning技术的自主管理框架,可通过马尔科夫决策过程建模和深度强化学习求解问题。仿真结果表明所提出的自主深度学习方法能够明显降低能耗。文献[9]同时考虑了设备能耗和时延问题,提出了一种基于机器学习的随机任务迁移算法,结合改进的Q学习和深度学习算法生成随机任务最优卸载策略。其中时延表示为式(1),能耗表示为式(2),仿真结果表明,该算法能有效降低任务处理时间和能耗。
(1)
(2)
完成卸载决策之后,就需要考虑资源分配问题,即如何合理的分配服务器资源。由于移动设备周围往往部署着大量的边缘服务器,而不同边缘服务器上的资源分配不同,有效的资源分配策略能够降低时延,提高用户体验。目前资源分配主要分为单节点分配和多节点分配。对于不可分割的任务,卸载到同一边缘服务器上,对于可分割且分割后无联系的任务,可以卸载到多个边缘服务器上。
Zhang等[10]考虑了边缘服务器计算资源有限,提出一个基于分层云的车辆边缘计算框架,引入备份服务器来弥补服务器,基于该框架,利用博弈论思想设计出了最优的多级卸载方案,并通过迭代分布式算法在有限的用户内证明了其纳什均衡的收敛性。Ning等人[11]将云计算与移动边缘计算结合进行研究,首先从单用户计算卸载问题,其资源不受限制,通过分支限界算法求解。然后将多用户计算卸载问题公式化为混合整数线性规划问题并设计了一种迭代启发式算法做出卸载决策。仿真结果表明,所提算法在执行延迟和卸载效率方面优于现有方案。
计算卸载和资源管理的研究是为了高效使用边缘计算资源的问题,边缘缓存则是为了有效使用边缘服务器的存储资源。终端设备产生的数据流量会占用大量网络带宽资源,而终端设备带宽资源有限。因此,使用边缘缓存技术进行本地内容缓存是有效方案。将具有内容分析、缓存功能的边缘平台部署在人流密集的区域,利用边缘计算平台数据分析与处理能力将所需内容资源缓存到边缘服务器上。当用户请求内容时,相当于从本地加载,节省带宽的同时大大降低了用户的响应时间。传统的以内容为中心的网络缓存方案忽略了流量负载、网络带宽等因素[12]。
文献[13]从强化学习角度研究了分布式缓存策略,作者提出了一种编码缓存框架来解决微基站的最佳联合缓存内容放置问题。提出的编码缓存框架可以建模为一个考虑网络连通性的线性程序,从而共同设计缓存策略。文献[14]考虑了基站缓存内容的多样性和冗余性,提出了一种分布式缓存方案。作者采用自适应粒子群优化算法得到给定系统配置下的最优冗余比来最小化网络的总运输成本。仿真结果表明,当选择最优冗余比时,总成本可降低54%。
边缘计算是一个快速发展的领域,由于同时考虑计算资源和网络资源,在技术上更加复杂。用户可以通过在设备上部署边缘计算平台来进行任务处理与数据缓存等操作。目前比较知名的边缘计算平台有OpenEdge、KubeEdge、Akraino、EdgeCloudSim等。
国内互联网公司也对边缘计算平台的研发高度重视,国内第一个开源边缘计算平台OpenEdge即由百度研发[15],该平台提供设备连接、消息路由、函数运算等多种功能。OpenEdge与智能边缘云端管理套件搭配应用,将云端管理系统生成的配置文件下发至本地系统以满足设备需求。OpenEdge框架由主程序模块和多个应用模块构成,支持Docker容器模型和Native进程模型。如图2所示。
目前官方提供了多个模块来满足常见的应用场景,用户也可以开发自己的模块,只要符合模块加载要求即可。其中主程序模块是平台的核心,负责所有模块的管理、同步等,由模块引擎、云代理和API构成。API提供端口服务,并获取系统状态与信息。Hub模块是一个简易的消息订阅与发布中心,提供消息路由服务,使平台部署设备之间的数据交互成为可能。函数计算模块提供基于MQTT机制的,精度高、速度快的计算能力,函数通过多个具体实例执行,每个实例都是一个具体的进程,负责计算任务的执行和管理。在使用时,用户首先需要定义自己的个性化服务,然后通过主程序调用Restful将自己的服务进行实例化,变成实例。
KubeEdge开源平台由华为公司基于Kubernetes架构设计研发,负责为云边之间的应用协调和数据同步提供基础架构。终端用户通过KubeEdge平台既能在云端管理边缘节点上的应用和设备,又能实现云边应用设备数据之间的同步[16]。其整体结构框架分为三层,分别为云层、边缘层和设备层。如图3所示。
图2 OpenEdge框架
图3 KubeEdge框架
KubeEdge的云端由EdgeController、DeviceController和CloudHub三个模块组成,即负责实现与Kubernetes的资源与状态同步又负责将平台部署的应用任务下放到边缘层。其中CloudHub是边缘层与云层的接口模块,负责接受边缘层的设备状态并上报给云层的控制模块。EdgeCore起着连接用户和数据存储节点的功能,是边缘层部分的核心,由EdgeHub、MetaManager等多个组件所组成。EdgeHub与CloudHub模块相似,主要功能是及时将平台部署应用状态改变上报并更新边缘层和云层资源。MetaManager是数据管理节点,DeviceTwin是数据管理镜像,Edge是边缘容器管理程序,各个组件各司其职共同组成边缘层的强大功能。设备层通过MQTT Broker直接和边缘层相连,当终端应用发生状态变化时通过MQTT Broker上报到边缘层作出处理,支持MQTT协议的设备可直接接入KubeEdge。
Akraino Edge Stack平台具有高可用性、扩展性好、响应速度快等优势,支持有线、Wi-Fi、LTE等多种接入方式,最大限度地提高了效率。它旨在将云服务扩展到边缘,以改善企业边缘、工业物联网和运营商网络的云边基础架构状态,并保证系统的可靠性[18]。
Akraino Edge Stack为建立完全集成的边缘基础架构,提出了一种包括基础设施、中间件及边缘计算应用的整体方案。如图4所示。从上至下依次是应用层、中间层和基础设施层。其中应用层负责边缘应用的部署以及边缘生态系统的创建。中间层包括支持边缘应用的中间件,并通过开发边缘API的方式实现跨平台互操作。最下面的基础设施层为整个平台提供了一套开源软件栈,如Kubernetes、Openstack等,用于对接上层并优化基础设施,具有极高的商业价值。
图4 Akraino Edge Stack框架
图5 EdgeCloudSim模块之间的关系
EdgeCloudSim是一种应用于边缘计算中计算和网络的仿真测试平台,其基于CloudSim开发[19],但是增加了许多功能[20]。EdgeCloudSim提供了一个模块化体系结构,为各种关键功能提供支持,例如特定于无线局域网(Wireless Local Area Network,WLAN)和广域网(Wide Area Network,WAN)的网络建模、设备移动性模型、真实且可调的负载生成器。如图5所示,目前的EdgeCloudSim版本有5个主要的模块[20]:核心仿真模块、网络模块、边缘协调器模块、移动模块、负载生成器模块,为了简化快速原型化工作,每个模块都包含一个默认实现,可以通过模拟参数进行调整。
核心模拟模块负责从配置文件加载和运行边缘计算场景。此外,它还提供了一种日志机制,将模拟结果保存到文件中。默认情况下,结果以逗号分隔符(CSV)数据格式保存,但可以更改为任何格式。网络模块需要同时考虑上传和下载数据来处理WLAN和WAN中的传输延迟。终端设备可以使用蜂窝网络或无线局域网来访问云服务。网络模块的默认实现基于单个服务器队列模型,在向虚拟机发送任务或从虚拟机下载任务结果之前,操作的传输延迟由网络模块模型计算。边缘协调器模块是系统的决策者,它使用从其他模块收集的信息来决定如何以及在哪里处理传入的移动终端请求。由于CloudSim侧重于传统的云计算原则,因此框架中不考虑移动性。移动模块可以更新移动设备的位置,每个移动设备设有横纵坐标,根据动态管理的哈希表进行更新。框架默认提供了一个移动模型,但是不同的移动模型可以通过扩展抽象类实现。负载生成器模块负责生成给定配置的任务。移动模块和负载生成器模块向其他部件提供输入,它们在同一(移动客户端)层处理。默认情况下,任务根据泊松分布生成,移动设备根据移动模块移动,如果需要其它任务生成模式,应修改移动设备管理器模块。
表1 边缘计算平台特性比较
随着5G和物联网技术的发展,汽车产业迎来了巨大变革,车联网成为汽车技术发展新动力。而在车联网方面,人们关注最多的是自动驾驶技术。要实现自动驾驶技术,要求终端汽车以最快时间接收到来自数据处理节点的指令,并作出相应处理。边缘计算是网络辅助智能交通的关键技术,一旦路面发生异常情况,需要采取紧急措施,而传统的通过传送公共核心网数据来发送紧急指令,延迟非常大。因此,在网络边缘,接入网附近搭载一个相关的边缘服务器,可以及时的发送紧急指令,采取紧急制动或其它安全措施,如图6所示。
图6 基于边缘计算的自动驾驶架构 图7视频监控架构
视频监控是安全防范的重要部分,监控的特点是,大部分监控画面趋于平常没有价值。目前的视频监控处理需要把元数据全部上传到云端,开销大、效率低。运用边缘计算技术,可以在接入网中部署一个边缘服务器,使其负责监控内容的分析和处理,并定期与云端进行交互,将监控画面中有价值的片段进行回传,而将价值不高的静止内容就近在边缘服务器中处理,实现本地分流,大量节约带宽、降低成本,视频监控架构如图7所示。文献[21]将区块链技术和边缘计算技术引入视频监控,作者提出了一种实现实时监控的视频监控系统,其中边缘计算技术负责信息采集与数据处理。
随着医疗行业引进人工智能技术,医疗服务逐渐向智能化发展,而引入边缘计算技术后,智慧医疗服务发生了巨大革新。医院使用智能医疗设备可以实时获得患者的信息,如体温、血压、心率等,对数据进行分析后可以做到及时应对。将数据上传到边缘服务器进行处理后也可以协助医生做出相应处理,如图8所示。Akmandor等[22]描述了目前较完善的智能医疗保健系统,从边缘计算角度对时延、能耗、数据准确性和安全性等方面给出了解决方案。
图8 智慧医疗架构
边缘计算技术在近几年有了很大的发展,但仍有许多领域的问题值得深入研究。未来边缘计算领域可能的研究方向:(1)由于边缘服务器是分布式部署的,所以任务处理过程中存在诸多安全问题,包括数据安全、边缘节点的安全、用户隐私安全、网络安全等。(2)目前仍没有较好的能对完整边缘计算功能进行模拟的仿真平台,因此,仍需要对边缘计算仿真平台进行优化。(3)随着人工智能技术的逐渐完善,将人工智能技术与边缘计算技术结合,以实现更高的效率。(4)目前将区块链技术与边缘计算技术融合的研究较少,以后可能成为新的研究方向。