边缘计算利用数据传输路径上的计算、存储与网络资源为用户提供服务,这些资源数量众多且在空间上分散,边缘计算平台将对这些资源进行统一的控制与管理,使开发者可以快速地开发与部署应用,成为边缘计算的基础设施。目前关于边缘计算平台的研究有很多,ParaDrop,Cloudlet,PCloud是其中比较有代表性的3个项目,其中从Cloudlet还演化出了OpenEdgeComputing联盟。
1 ParaDrop
ParaDrop是威斯康星大学麦迪逊分校
WiNGS实验室的研究项目,无线网关可以在ParaDrop的支持下扩展为边缘计算平台,可以像普通服务器一样运行应用。ParaDrop适用于物联网应用,例如智能电网(smartgrid)、车联网(connectedvehicles)、无线传感执行网络
(wirlesssensorand actuatornetwork)等,可以作为物联网的智能网关
平台。在物联网应用中,传感器数据都会汇集到物联网网关中,再传输到云中进行分析。而ParaDrop则在物联网网关中植入单片机使其具备通用计算能力,并通过软件技术使得部署在云端的应用与服务都可以迁移到网关,开发者可以动态定制网关上运行的应用。
ParaDrop的整体结构如图1所示。ParaDrop使用容器技术来隔离不同应用的运行环境,因此1个网关上可以运行多个租户的应用。网关上所有应用的安装、运行与撤销都由云端的后台服务控制,并对外提供1组
API,开发者通过 API来控制资源的利用及监控资源的状态,而用户通过 Web页面与应用进行交互。ParaDrop将
Web的服务与数据分离,Web服务由云端的后台服务提供,而传感器采集的原始数据则都存储在网关上,用户可以对云端访问的数据进行控制,保护了用户的数据隐私。
ParaDrop的优势主要有:1)敏感数据可以在本地处理,不必上传云端,保护了用户隐私;2)WiFi接入点距离数据源只有一跳,具有低且稳定网络延迟,在
WiFi接入点上运行的任务有更短的响应时间;3)减少传输到互联网上的数据量,只有被用户请求的数据才会通过互联网传输到用户设备;4)网关可以通过无线电信号获取一些位置信息,如设备之间的距离、设备的具体位置等,利用这些信息可以提供位置感知的服务;5)遇到特殊情况,无法连接互联网时,应用的部分服务依然可以使用。目前,ParaDrop得到了很好的发展,软件系统已经全部开源,支持ParaDrop的硬件设备也已经准备对外销售。
2 Cloudlet
2009年卡内基梅陇大学提出
Cloudlet[16]的概念,Cloudlet是一个可信且资源丰富的主机或机群,它部署在网络边缘与互联网连接并可以被周围的移动设备所访问,为设备提供服务。Cloudlet将原先移动计算的2层架构“移动设备—云”变为3层架构
“移动设备—Cloudlet—云”。Cloudlet也可以像云一样为用户提供服务,所以它又被称为“小云”(datacenterinabox)。虽然
Cloudlet项目不是以边缘计算的名义提出并运行,但它架构和理念契合边缘计算的理念和思想,可以被用来构建边缘计算平台。
Cloudlet主要用来支持移动计算中的游牧服务(cyberforaging),游牧服务是解决移动设备计算资源不足的重要手段,通过游牧服务移动设备可以将繁重的计算任务卸载到其他资源上。云计算一直是充当这类资源的最佳角色,而
Cloudlet的出现为用户提供了新的选择.Cloudlet的软件栈分为3层:第1层由操作系统和 Cache组成,其中
Cache主要是对云中的数据进行缓存;第2层是虚拟化层,将资源虚拟化,并通过统一的平台
OpenStack++[18]对资源进行管理;第3层是虚拟机实例,移动设备卸载的应用都在虚拟机中运行,这样可以弥补移动设备与
Cloudlet应用运行环境(操作系统、函数库等)的差异。
与云不同,Cloudlet部署在网络边缘,只服务附近的用户,但Cloudlet也支持应用的移动性,设备可以随着移动切换到最近的
Cloudlet。如图2所示,Cloudlet对应用移动性的支持主要依赖3个关键步骤:
1)Cloudlet资源 发 现(cloudletdiscovery)。移动中的移动设备可以快速发现周围可用的
Cloudlet,并选择最合适的作为卸载任务的载体。
2)虚拟机配给(VMprovisioning)。在选定的Cloudlet上启动运行应用的虚拟机,并配置运行环境。
3)资源切换(VM handoff)。将运行应用的虚拟机迁移到另一个 Cloudlet上。
动态虚拟机合成(dynamicVMsynthesis)[16]是Cloudlet支持移动性的关键技术,可以将虚拟机镜像拆分为基底(base)与覆盖层(overlay),基底与覆盖层可以重新组合为新的虚拟机镜像.基底包含虚拟机的操作系统、函数库等基础软件,这一部分在虚拟机镜像之间都是重复的,且占用空间大;而覆盖层是一个很小的二进制增量文件,只包含用户在原始虚拟机上的一些定制信息,占用空间小。在虚拟机配置和资源切换时,使用动态虚拟机合成技术可以只传输轻量的覆盖层,减少了数据传输量,加快了虚拟机配置和资源切换的速度,保证了应用在
Cloudlet中能得到及时的资源供给。
Cloudlet的主要优势有:对应用开发者没有任何约束,现有程序基本不需要修改就能在
Cloudlet中运行;加快了很多复杂移动应用的响应速度。随着研究不断完善,Cloudlet在认知辅助系统(cognitiveassistancesystem)、众包(crowdsourcing)、敌对环境(hostileenvironments)[23]等方面都有很好的应用。为了推动
Cloudlet 的发展,CMU 联合Intel,Huawei等公司建立了
OpenEdgeComputing联盟,为基于Cloudlet的边缘计算平台制定标准化API。目前,该联盟正在将OpenStack扩展到边缘计算平台,使分散的
Cloudlet可以通过标准的OpenStackAPI进行控制和管理。
3 PCloud
PCloud是佐治亚理工学院
Korvo研究组在边缘计算领域的研究成果。PCloud可以将我们周围的计算、存储、输入\输出设备与云计算资源整合,使这些资源可以无缝的为移动设备提供支持。
PCloud的结构图如图3所示。在 PCloud中,本地、边缘以及云上的资源通过网络连接,并由特殊的虚拟化 层
STRATUS将资源虚拟化,构成资源池;系统运行时从资源池中挑选与组合需要的资源。PCloud将资源池化后,由运行时机制负责资源的申请与分配;该机制提供资源描述接口,可以根据应用的要求选择合适的资源并进行组合。资源组合后,PCloud就相当于产生了1个新的实例,该实例可以为外界应用提供服务;虽然该实例的计算资源可能来自多个物理设备,但对于外界应用来说却相当于一体的计算设备。
实际运行过程中,移动应用通过接口向
PCloud描述需要的资源,PCloud会根据该描述与当前可用资源给出最优资源配置,生成实例为应用提供相应的服务。资源评价指标主要包括计算能力和网络延迟等因素,如果是输入/输出设备可能还包括屏幕大小、分辨率等因素。
PCloud将边缘资源与云资源有机的结合,使2者相辅相成,优势互补。云计算丰富的资源弥补了边缘设备计算、存储能力上的不足,而边缘设备因为贴近用户可以提供云计算无法提供的低延迟服务.同时也增强了整个系统的可用性,无论是网络故障还是设备故障都可以选择备用资源。基于PCloud平台,Korvo研究组构建了很多应用(例如:SOUL)获得了广泛的关注。