田雨萌,刘志波,张 凯,李忠博+,谢永强
1.军事科学院 系统工程研究院,北京 100141
2.军委装备发展部 装备项目管理中心,北京 100009
近年来,电子支付、元宇宙、云视频会议等智能应用技术快速发展,各类应用对算力和资源的需求愈发迫切,据国际数据公司(International Data Corporation,IDC)的预测估计,到2025 年预计将有416 亿台物联网设备联网,产生79.4 十万亿亿字节(ZB)待处理数据,同时,高德纳公司(Gartner)曾预测,到2025年,大约超过75%的数据将实现边缘侧处理。而目前的计算资源远不能满足社会需求。因此,亟需提升计算基础设施计算能力。
目前,主要通过云计算和边缘计算技术来提升智能应用的服务能力。云计算是一种集中化的计算方式,通过构建大规模数据中心,为各类应用服务提供“无限”的计算能力,是处理大规模数据的最佳选择。但云计算集中化特性使其通常距离数据源及终端用户较远,产生显著的通信延迟。随着物联网、人工智能、虚拟现实/增强现实(virtual reality/augmented reality,VR/AR)等技术的持续发展,相关应用对实时性的要求持续提升,云计算已无法满足新兴延迟敏感应用低时延的需求。基于此,研究人员提出了边缘计算的概念,该技术将计算向网络末端延伸,在数据源近端实现数据的快速处理,以减小时延。边缘计算的提出,满足了用户对低时延的需求。近年来,各国政府和组织机构越来越重视边缘计算的发展。2021 年,欧盟发布《2030 数字指南针:欧洲数字十年之路》[1],计划到2030 年部署1 万个能够实现气候中和且高度安全的边缘节点,另据戴尔公司发布的一份报告显示,2026年3 170亿美元的全球边缘计算支出中,美国的占比最高可能达到40%[2]。此外,以国际雾计算产学研联盟(OpenFog)、开放边缘计算联盟(Open Edge Computing)为代表的多家跨境域组织致力于推动边缘计算技术的标准化和落地。但单个边缘计算基础设施和云中心相比资源受限,难以支撑大数据的计算和人工智能模型训练等工作。在技术特征上,边缘计算与云计算互为补充。因此,为充分利用云计算超大规模的计算能力和边缘计算低时延的特性,研究云计算和边缘计算的整合与协同技术至关重要,通过实现云计算与边缘计算的整合,构建层次化的云边协同服务体系,为用户提供低时延、高可靠的计算服务[3]。欧盟提出了一项推动云边协同在物联网领域应用的专业计划(The European cloud,edge and IoT continuum initiative,EUCloudEdgeIoT.eu),旨在帮助企业、行业协会、科技供应商和开发商等从这种协同技术中获益。2021年,《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》也提出要“协同发展云服务与边缘计算服务”[4]。同年6 月,中国信息通信研究院牵头制定的《云边协同关键技术态势研究报告》指出,未来构建端到端的云边协同架构将是实现全域数据高速互联、应用整合调度分发以及计算资源全覆盖的重要途径[5]。2022年6月28日,为进一步推动边缘计算规模化落地部署,由中国信通院云计算与大数据研究所牵头,联合产学研用数十家单位编制的三项边缘计算行业标准(《互联网边缘云服务信任能力要求》《基于云边协同的边缘节点管理解决方案能力要求》《分布式云全局管理框架》)正式发布和实施,引领产业规范化发展。自此之后,一些企业快速完成商业化初探,推动着整个云边生态的丰富和繁荣。在2022年的云栖大会上(http://www.aliyun.com/yunqi-/2022/index),阿里公布了其基于云边协同架构的五种新型解决方案,这五种方案分别支撑音视频、云游戏、云渲染、边缘组网和云网融合场景。华为、浪潮等企业也陆续开始提供云边协同相关的技术支持服务。在学术研究方面,一些团队在电力物联网[6-7]、工业物联网[8-10]、车联网[11-14]场景下开展云边协同的相关研究工作。未来,云边协同技术的持续优化与发展,将为智慧医疗、智慧交通、军事指挥等更多行业[5,15]发展提供有效支撑。
资源协同是云边协同的基石[15-17],而任务卸载是云边资源协同的关键技术之一。鉴于此,本文详细阐述云边资源协同中任务卸载技术的原理,深入探讨面临的瓶颈,提出未来可深化研究的若干方向。
随着技术的不断更迭以及5G/6G时代的到来,趋于成熟的云计算架构逐渐显露弊端。一方面,网络视频等应用的迅猛发展对数据处理能力提出了更高的要求,通常而言,云服务器100 Mbit/s带宽支持300人同时在线点播400 Kbit/s 码率视频,但随着人们生活品质的提升,高清画质的视频需求日益增加,实现可控成本下的高质量数据处理为主干网带宽与云中心资源带来了挑战;另一方面,大量物联网设备要求低延迟服务,终端数据量激增,云计算模式的响应时间在2 s左右,边缘计算模式的响应时间可达0.5 ms[18],云中心难以为继更无法保证数据隐私安全。面对这一系列问题和挑战,学术界和工业界的研究人员开始研究边缘计算,希望借此解决应用与资源的供需矛盾。
2013 年,美国太平洋西北国家实验室首次提出边缘计算的概念,迅速引起了各国科技人员的广泛关注。2019 年,我国科技企业开始把更多科研力量投入边缘计算研究之中。相比云计算的集中化、规模化,边缘计算的资源部署更加灵活,对具有严格低延迟需求的场景,首要考虑缩短与终端设备的物理距离,部署在基站等处;对隐私保护要求高的场景,其部署则首要考虑合理的覆盖范围。
边缘计算架构包含众多地理位置分散的边缘计算节点,在该架构下,待处理数据不再需要全部上传到云中心,而是通过边缘计算节点快速处理部分数据。相比较云中心,单个边缘计算节点资源有限,难以实现全域通信和调度。云中心距离终端设备过远,欠缺迅速实时的响应能力。因此,云、边计算相辅相成,边缘端靠近执行单元,可以作为数据采集和初步处理单元,也可以作为云派发算法的执行单元;云端具备全局视野,可以将经过大数据技术优化的模型或规则派发给边缘节点,处理数据量大的非延迟敏感任务。
常见的云交付模型为基础设施即服务(infrastructure as a service,IaaS)、平台即服务(platform as a service,PaaS)、软件即服务(software as a service,SaaS)。类似的在边缘计算,有EC-IaaS(edge computinginfrastructure as a service)、EC-PaaS(edge computingplatform as a service)、EC-SaaS(edge computingsoftware as a service)。2018年,边缘计算产业联盟在云边协同1.0 中将云边协同的能力和内涵划分为六个层次:资源协同、数据协同、智能协同、应用管理协同、业务管理协同、服务协同[16]。为了优化各协同之间的层次关系,在云边协同白皮书2.0 中,六大协同整合为三大协同,应用管理协同与业务协同合并到新版本的应用协同中,数据协同和智能协同合并到新版本的服务协同中,资源协同保持不变,如图1所示。
图1 云边协同能力与内涵Fig.1 Capabilities and connotations of cloud-edge collaboration
2020年之后,云边协同应用场景逐渐明晰,一些实际应用案例开始崭露头角[5]。如电网行业中,研究人员利用云边协同框架优化故障检测系统(高阻抗故障检测)。云中心是主要平台,边缘计算是云中心的扩展,云中心从多个分发网络采集故障数据用于训练基本模型,并将其发送到与各分发网络相关联的边缘节点,每个边缘节点基于基本模型,利用其局部数据生成特定模型。云中心负责基本计算并共享结果,云边之间定期通信以更新模型。这种方式避免了重复计算,并且训练数据的数量和类型都得到了扩充,能有效提升系统性能[19-21]。家装行业中,研究人员将终端纳入云边协同框架,利用云-边-端架构设计全屋控制系统[22]。终端层由智能门禁、智能摄像头等设备组成,边缘层由网关、个人计算机等边缘节点组成,云层由多个高性能服务器组成。终端设备收集用户行为信息并生成数据,将其上传到边缘层,边缘层负责计算、存储这些数据以及管理和调度终端设备,同时,边缘节点还会将部分数据上传到云中心。云中心负责接收、分析并存储边缘节点上传的数据以及整个系统的管理和调度。另外,当边缘节点遇到无法处理的任务时,云中心会接管并处理这些任务,以便为用户提供更好的服务。采矿行业中,为提高灾难预警速度,降低煤矿开采事故发生率,研究人员设计了基于云-边-端架构的环境监测系统[23]。云中心负责智能算法的训练以及历史数据的存储,它定期将训练好的模型(例如地质构造分析模型)发送到边缘设备,边缘设备利用这些模型处理和分析终端传感器上传的矿井环境数据,确保及时排除煤矿开采过程中存在的安全隐患。综上,云计算与边缘计算必须紧密合作,实现云边协同,才能更好地满足多样化的场景需求,最大限度发挥云计算、边缘计算的价值优势。
在云边协同能力与内涵变化的过程中,资源协同没有发生变化,这表明,对云边协同系统而言,无论承载的上层应用运行于何种场景,输入何种类型的数据,运行何种模式的处理,资源都是它首要考虑的因素。在探究如何最大限度发挥云边协同优势时,实现资源协同是基本前提。
资源协同提供了全局视角的资源调度能力,旨在根据任务的需求和资源的可用性,合理地分配任务和管理云边资源,提高资源利用率,以实现更高效的计算和降低网络延迟。它要求边缘节点提供计算、存储、网络、虚拟化等基础设施资源,具有本地资源调度管理能力,也接收并执行云端的资源调度管理策略;云端则提供资源调度管理策略,包括边缘节点的设备管理、资源管理以及网络连接管理[17],随着认识的不断深入,云-边-端三层架构(见图2)是目前被普遍认可的一种云边资源协同架构[24-27]。
图2 云边资源协同架构Fig.2 Architecture of cloud-edge resource collaboration
终端层,也可称之为用户层,通常由各种终端设备组成,比如智慧城市监控摄像头[28]、工业物联网设备[29]、智能家居设备[30]等。这些设备用于采集各种待处理数据。
边缘层位于云层和终端层之间,由多种网络和计算设备组成,比如基站、网关、边缘服务器等,研究人员常提到的边缘节点是对边缘层多种产品形态的基础共性能力的逻辑抽象。边缘层主要具备以下几个功能和作用:
(1)数据缓存和处理。边缘层可以缓存终端需要的部分数据,提高数据访问速度,也可以在边缘设备上进行一些数据处理,比如格式转换、数据脱敏等操作,以优化传输到云中心的数据质量,缩短延迟。
(2)数据转发。边缘层可以根据终端应用的处理需求和网络状况,将待处理数据转发到相邻节点,以便更快地完成数据处理并降低网络负载,提高资源利用率。
(3)安全性保障。在边缘层进行数据处理和分析可以减少数据在互联网上的传输,降低数据泄露和被攻击的风险。
云层由云计算基础设施组成,在三层架构中,它具备最强的数据处理能力和存储能力,负责处理全局信息以及一些计算复杂的任务。
云边协同下的资源种类包括硬件资源和软件资源两种。在研究中常提到的计算资源、存储资源、网络资源属于硬件资源,除此之外还有诸如虚拟网络函数、推理模型等软件资源。目前,端-边-云框架已被应用于工业物联网场景。文献[31]解决了通信资源(带宽)分配问题,将所有任务首先上传到边缘节点,边缘节点根据节点负载状态决定任务是否需要转发到云中心,然后根据任务的数据长度和信道瞬时状态为待上传到云中心的任务分配带宽。文献[32]在三级框架下根据任务的算力需求分配计算资源(服务器主频),根据每个任务的延迟需求制定个性化的卸载策略,延迟敏感型任务卸载到边缘服务器处理,有效降低了传输成本。在网络直播场景下,文献[33]提出的三层框架包括一个部署在云中心的服务器、多个部署在移动基站的服务器以及两种类型的终端用户。该研究假设手机端用户通过移动网络连网,电脑端用户通过家庭宽带连网,手机端用户的任务(视频流)发送到移动基站的服务器处理,电脑端用户的任务发送到云中心的服务器处理,针对两种类型用户各自任务的内存、主频等资源需求,为任务分配合适的处理位置。
以上研究重点突出了边缘层数据处理和转发的功能,可以看出,边缘层的引入使部分计算资源距离用户更近,云中心位于“后方”作为总管提供全局保障。因此,相比独立的云计算和边缘计算应用模式,云边资源协同模式提供了更佳的解决方案。
任务卸载是云边资源协同的关键技术之一,它的基本原理是根据任务的性质和要求,制定合理的卸载策略,将计算密集型或延迟敏感的任务分配到边缘节点处理,而将数据密集型或存储密集型的任务分配到云中心处理,充分利用云边资源,减少数据传输和响应时间,提高系统的性能和用户体验。
全部卸载也称为二进制卸载或“0-1”卸载,指将全部任务保留在本地计算或全部卸载调度到云中心、边缘节点执行。仅在本地处理时,响应时间和成本由本地处理器的处理速率、存储容量等条件决定。当被全部卸载到云中心或边缘节点处理时,响应时间包括传输延迟和处理延迟,成本一般考虑传输成本,能耗考虑传输能耗和处理能耗,其中,处理能耗特指在无人机等边缘节点可移动的通信场景下,边缘节点处理任务产生的能耗。因为在这些场景下,边缘节点具备可移动性,无法像云服务器一样直接接通电源供电,所以此时需要考虑在边缘节点处的能耗。
全部卸载基于部分终端设备(比如采样传感器)不具备处理能力的现状,将全部任务卸载到边缘节点或云中心处理。随着技术的发展,很多智能终端也具备一定的算力,能够满足一些任务的需要,因此在任务卸载过程中,这部分任务可以保留在本地执行,其他任务利用云中心、边缘节点处理,这就是部分卸载。部分卸载主要基于智能手机、可穿戴设备等智能设备具备一定处理能力的现状,充分利用终端算力资源。
在智能化应用不断发展的背景下,云边资源的协同调度正逐渐成为各行各业优化系统性能和提高资源利用率的重要手段。
1.4.1 智慧交通
智慧交通系统是最受期待的智能城市服务[34],由于自动驾驶、高速公路无人感知收费等场景数据吞吐很高且对响应时间、网络安全等都有很高的要求,在中心云计算和传统网络架构下无法提供低延时的服务,因此借助云边协同构建一个低延时、安全、稳定的运行环境,可以减少出现流量堵塞的机会。
在自动驾驶场景中,车辆和交通基础设施(交通信号灯、公路摄像头等)需配备支持边缘计算的传感器,采集和处理来自车辆、环境的数据,这些位于系统边缘的交通基础设施之间相互连接,形成小型边缘局域网,当汽车在系统中行驶时,通过5G等通信技术与边缘节点进行交互,获得实时路况分析、时间估测等服务。与此同时,云中心从边缘节点收集经过整理后的数据,利用深度学习等技术向边缘节点反馈恰当的指令以保证自动驾驶的安全稳定。
1.4.2 智慧医疗
随着科技的不断发展和人口老龄化的加剧,智慧医疗正成为医疗行业的发展趋势。智慧医疗不仅仅是简单地将传统医疗服务数字化,而是利用先进的信息技术和人工智能技术来实现医疗流程的数字化和智能化,进一步提高医疗服务的效率和质量。云边资源协同能够有效提高资源利用率,降低成本,实现资源优化配置,为智慧医疗的发展提供有力支撑[35]。
远程医疗是实现智慧医疗的一种重要形式,即通过互联网连接医生和患者,实现远程问诊、远程诊断和远程治疗。基于云边协同的远程医疗体系架构的终端层由各种与医疗保健相关的设备组成,比如智能手表等可穿戴设备或者医疗传感器,这些设备将采集到的数据上传到边缘层。边缘层由大量网络边缘节点组成,这些节点被部署在终端和云中心之间,比如医院、社区保健站等,它们可以更快速地响应终端的请求,也可以有效避免远程传输潜在的数据泄露问题。边缘层定期将整理后的数据发送到云中心进行总结分析和永久存储。
云边资源协同还有助于推动医疗资源共享的发展。医疗机构通过云边资源协同技术共享医疗设备、医疗数据等资源,减少医疗资源的浪费和重复使用。
1.4.3 军事指挥
云计算作为信息化建设的重要技术,为军事领域的发展增加了极大的动力,但随着技术的发展,云计算架构在军事应用上显露出以下不足:(1)通信带宽供不应求。近年来,军事作战装备性能不断提升,其产生的数据体量呈指数增长,如果仍将所有装备的全部数据上传到云数据中心会占用巨大的通信带宽,甚至会出现拥塞,部分数据不能得到及时处理,处理结果也无法及时回传。(2)数据安全难以保证。在大量数据传输过程中,敌方若发动分布式拒绝服务(distributed denial of service,DDOS)攻击,则我方重要情报数据会暴露。(3)集中化体系不可靠。云计算架构最重要的一个特征就是集中化,但随着多方对云计算技术的深入研究,在开展作战时,云中心是首要被攻击的目标。一旦云中心被击溃或与云中心之间的通信线路被切断,则无法快速恢复战斗力。
边缘计算在靠近接入网侧部署计算和存储资源,可以快速响应终端的请求。云边资源协同在军事领域的应用主要有两个方向:目标识别和信息保障。
(1)目标识别
现代战争中,高效精确的战场情报是制胜关键。无人机侦察是获取情报的重要手段之一,采集到的图像数据需要经过判断筛选、识别标注,以形成有用情报。过去的通常做法是人工操作,云计算技术普及后,改为上传到云中心处理,但这种做法难以满足快速作战的时效性要求。云边协同的计算模式可以较好地解决这个问题。通过在无人机上安装计算芯片,可以实现对图像数据的实时处理,只回传具有目标信息的关键帧,当边缘节点算力不足时,回传到云中心处理。这种方式可以减轻通信负担和后方中心处理的压力。
(2)信息保障
在军事信息保障领域,云中心与机动边的协同服务模式有很大的应用前景。机动边缘,是一种与固定集中相对应的场景,主要为战时机动前出作战提供信息服务和保障。通过构建机动边缘与云中心协同服务体系,为构建快速打击环路提供有效支撑,提升我军机动作战指挥能力和作战单元灵活性。机动边的作战环境具备如下特点:(1)资源有限。考虑到机动边的定位是体量轻便,灵活性较好,因此虽具有一定的计算存储等资源,但相对固定云中心,资源整体有限。(2)网络连接动态。机动环境下,受多方面因素影响,网络连接是动态变化的。
在基于云-机动边协同的信息系统建设及保障方面,国外相关机构提出的战场边缘云概念是将每个作战单元视为一个节点,既向云中心提供数据也从云中心获取数据,指挥员通过大数据分析系统做出决策实现跨域指挥调度。在此背景下,某研究机构提出的分布式地面情报系统项目和内容移动边缘网络项目都已经在军队得到了广泛应用。
云边资源协同主要包括两种思路[36]:(1)以服务质量要求为输入。根据用户发布任务对服务质量的要求,综合考虑能耗、时延等代价,将任务卸载到边、云服务器或者本地处理,例如,文献[37]利用遗传算法解决了无人机场景下,以响应时间和能耗为目标的独立任务卸载问题,文献[38]利用第三代非支配排序遗传算法解决了以响应时间和能耗为优化目标的工作流卸载问题。(2)以资源需求为输入。由于边缘资源有限,且用户请求的负载动态变化,根据任务对资源类型和能力等方面的要求,综合考虑云和边缘的资源配置,合理卸载任务,以充分满足用户的服务质量要求,例如,文献[39]提出的基于区块链的自适应资源分配框架,解决了移动边缘计算频谱资源的分配问题和任务卸载决策问题,文献[40]提出的分层求解算法,解决了在非正交多址接入(non-orthogonal multiple access,NOMA)协议下频谱资源和计算资源的分配问题以及任务卸载决策问题。因此,云边资源协同研究的核心是最优化任务卸载模型。在实际研究中,按照其运行模式,区分为独立任务和工作流两类,并分别从全部卸载和部分卸载两个角度开展相关工作。其中,独立任务是指可独立执行并满足用户需求的任务,工作流由多个具备一定依赖关系的子任务构成,如图3[41]所示。
图3 导航应用任务拓扑关系图Fig.3 Task topology diagram of navigation application
目前,以独立任务为研究对象的工作较多。从卸载粒度(全部卸载、部分卸载)和优化目标(响应时间、成本/能耗、多目标)两个维度,对现有研究进行归纳总结。
2.1.1 全部卸载
目前,独立任务全部卸载的主要研究内容包括响应时间优化、成本优化及多目标优化。
(1)响应时间优化
Hao等人[42]以最小化响应时间为目标,针对独立任务的卸载问题展开研究,研究人员分别将任务置于本地、边缘服务器、云服务器处理,并计算任务处理耗时最短的方案。接着,该团队开展了多个相对独立任务的卸载问题的研究,该研究按照任务的重要性设置优先级并赋予其不同的权重,将该场景下的响应时间优化问题定义为最小化末位任务响应时间。该团队提出了一种启发式贪心算法,并结合领域搜索算法制定卸载方案求解响应时间的优化问题。与将所有任务卸载到同一层和不考虑全局将每个任务分别卸载到其最佳计算位置相比,作者提出的方案明显缩短了响应时间,并且体现了全局最优的思想。
上述研究假定仅存在一个边缘节点的场景,并且系统设计简单,对此,Ren 等人[43]针对多边缘节点场景设计了一种云边协同任务卸载模型,该模型主要解决通信资源和计算资源的联合分配问题,仿真结果显示该模型能够显著缩短响应时间。其中,通信资源按照时隙进行分配。在分配计算资源之前,首先制定任务卸载策略,计算某任务在边缘节点处理所需通信资源和边缘节点计算能力的比率,以及在云中心完成所需算力和边缘节点计算能力的比率,得到二者谐波平均值,将该平均值用于任务划分。当边缘计算资源不足时,将更多的任务数据卸载至云中心。相反,如果云计算资源非常稀缺,则在边缘节点处理更多的任务数据。最后使用卡罗需-库恩-塔克(Karush-Kuhn-Tucher,KKT)条件得到最佳计算资源分配策略。此类研究中,通常将云边协同划分为端边协同和边云协同两部分,而目前对边边协同计算的研究还不够深入,因此,还需要对边缘节点间的协同进行统筹,以实现最优化的全局资源调度和管理。针对上述问题,Wu 等人[44]设计的协同框架引入边边协同,结合遗传算法和模拟退火算法,实现了对任务总响应时间的优化。以遗传算法为代表的启发式算法是一种基于经验的算法,它通过一些规则或者启发式函数来指导搜索过程,从而达到快速找到最优解的目的,区别于此,强化学习是一种数据驱动的算法,它通过与环境交互来自适应地学习最优策略,当任务卸载问题的特征不完全已知或者无法通过预定义的规则或策略来完全刻画时,更适合用强化学习来求解问题。Wang等人[45]利用强化学习中的Q 学习(Q-learning)算法,在无人机场景下解决任务卸载的响应时间优化问题。Wang等人[46]建立了利用NOMA 技术的响应时间优化模型,按照强化学习算法基本思想和组成(状态空间、动作空间、状态转移概率、奖励值、折扣因子),定义了一种适用于他们所提出的目标函数的强化学习算法。但强化学习在处理高维度问题的时候仍存在不足,神经网络擅长学习更高层次的特征表示,结合了神经网络和强化学习的深度强化学习可以更好地处理高维状态信息。Qi等人[47]利用深度强化学习算法,对任务卸载模型进行优化,该研究证明了任务卸载响应时间优化问题的目标函数难以在多项式时间内进行数值求解。考虑到求解该类型问题的高复杂性以及边缘资源的局限性,他们提出了基于异步优势动作评价算法的云边协同任务卸载优化(cloud-edge collaboration scheduling algorithm based on asynchronous advantage actor-critic,CECS-A3C)算法。与深度Q 网络(deep Q-network,DQN)算法相比,该研究进一步缩短了任务处理时间。在任务卸载过程中网络条件和服务器负载具有动态特性,而上述研究所提出的算法均是基于静态场景,在动态场景下的应用效果却不理想。Yuan等人[48]考虑到任务卸载过程中可用带宽具有时变性,并且当面对大量待卸载任务的时候可能发生拥塞和饥饿现象,结合在线学习和深度强化学习算法提出了一种在线公平调度任务(online task dispatching and fair scheduling,OTDS)算法,与Qi 等人[47]提出的CECS-A3C 算法相比,两种方法都考虑到了动态特性,但CECS-A3C算法只追求效率忽略了任务卸载的公平性,容易导致因任务等待时间过长,从而在任务截止前无法完成处理的问题。相比而言,OTDS在降低任务处理平均响应时间方面的效果更佳。
(2)成本优化
除了响应时间,成本也是研究人员常关注的优化指标。Chen等人[49]关注到任务的产生过程是高度动态的,如何在保证动态卸载性能和降低成本之间取得折中是一个值得思考的问题。他们将该问题建模为在边缘层卸载队列平均长度约束下的长期平均成本优化问题,利用李雅普诺夫算法将复杂优化问题分解为一系列子问题,并使用并行方式进行求解。Alam 等人[50]从供应商角度,提出了一种基于云边协同的医疗保健服务供应通用物联网框架,设计了基于交替方向乘子法的服务供应机制。与贪心算法相比,这篇文章提到的框架更好地控制住了将任务全部卸载到云中心和边缘节点处理所耗费的成本,但对于医疗领域的应用探索,该研究缺乏对数据安全及隐私维护成本的考量。
(3)多目标优化
Sardellitti 等人[51]提出了多任务边缘计算场景下的任务卸载和资源管理策略,在满足延迟要求的同时最大程度地减少总能耗。在单任务情况下,以封闭形式表示全局最优解。在多任务情况下,提出了一种基于渐进凸逼近的迭代算法,收敛到原始非凸问题的局部最优解。由于多个任务到达云、边服务器的顺序具有随机性,当出现短时间内大量到达的情况时,很容易引发拥塞。Gao等人[52]注意到这个问题,基于排队理论,提出了一种适用于云服务器和边缘服务器的任务缓存队列模型,然后,基于李雅普诺夫稳定性理论,提出了一种基于漂移加惩罚的求解策略,既降低了系统能耗又降低了服务器的拥塞程度。
Du等人[53]开展的联合卸载决策优化和计算通信资源分配的研究,以缩短响应时间和系统能耗为目标。该问题首先被建模为混合整数非线性规划问题,由于该问题属于NP 难(NP-hard)问题,作者退而求其次,将问题分为卸载决策和资源分配两个子问题予以解决。通过变量替换并使用半正定松弛法将卸载决策优化问题转换为标准凸优化问题解决;使用分式规划和拉格朗日对偶分解解决资源分配问题。但类似前述工作所使用的传统框架缺乏与环境交互的能力,对此,Wang等人[54]在框架中引入代理机制,利用其可感知性帮助用户在云边之间进行任务卸载的决策,避免了盲目请求资源造成资源浪费的情况,最终既缩短了响应时间又降低了能耗。该研究与文献[42]存在相同的缺陷,即协同系统过于简单,只包括一个边缘节点。
为此,Mahmud等人[55]在多边缘节点场景下设计了一个多目标优化模型,用于提高卸载任务的利润并降低服务交付延迟。具体而言,该模型是一个带约束条件的整数线性规划模型,为了在多项式时间内解决问题,他们利用最佳拟合方法将任务多次迭代卸载到边缘节点,最终实现约束条件下的利润最大化和延迟最小化。不足之处在于,该研究在实验参数的设置上,边缘节点之间的计算能力没有得到区分,忽略了边缘节点的异构复杂性。
2.1.2 部分卸载
与全部卸载的研究目标不同,关于部分卸载的主要研究内容侧重于响应时间优化、能耗优化及多目标优化三方面。
(1)响应时间优化
Guo 等人[56]研究如何为计算密集型任务制定卸载决策和分配通信带宽以实现平均响应时间最小。他们将联合优化问题分解为多个凸优化子问题,每个子问题都使用二进制搜索和牛顿迭代法求解。但为了简单起见,作者设计的云边资源协同系统只考虑一个边缘节点。Kai等人[57]假设每个任务都可以按照任何比例一分为三,分别在本地、边缘节点和云中心处理,据此以最小化任务处理时间为目标建立了一个凸优化问题,并采用正余弦优化方法求解。为了进一步提高任务的执行效率,传统方法需要优化和更新。利用机器学习或深度学习算法来完成优化响应时间的目标是一项很有意义的工作。
Miao 等人[58]使用长短期记忆网络(long shortterm memory,LSTM)预测每个任务的数据量大小,基于预测值设计卸载策略,优化每个任务的响应时间。此外,为了进一步缩短响应时间,他们开展了优化研究,将已分配节点的任务划分为两个独立子任务,为子任务继续分配节点。通过引入LSTM算法预测数据量得到更细粒度的卸载策略,和本地计算及单边缘节点计算策略相比,该方案提出的算法在响应时间优化方面有明显提升。但该研究没有考虑多任务卸载过程中可能存在的资源请求冲突问题,并且和此前多数研究一样,缺少将算法进行实际落地的环节。因此,在Meng等人[59]的研究中,不仅提出了一种在线感知调度算法(deadline-aware dispatching and scheduling algorithm,Dedas),还有意识地利用树莓派和智能手机组建了一个简易的云边平台,测试算法性能,这对未来相关研究方案的设计与改进具备指导意义。但作者将一个多核服务器视作多个单核服务器,这可能会导致服务器多个内核之间的负载不均衡,导致资源利用率低下。
(2)能耗优化
Pan 等人[60]利用NOMA 进行任务上传和结果下载,使用连续凸逼近算法计算需要卸载的任务量以及时隙分配方案,通过优化功率来降低能耗。Cheng等人[61]研究了数据共享下移动边缘计算系统中的任务卸载问题。为了充分利用系统内的算力资源,需要制定合理的卸载方案确定哪些数据需要卸载到移动边缘计算(mobile edge computing,MEC)系统处理。对于不能再继续分割的原子任务,它的卸载问题无法在多项式时间内求解,作者提出一种基于线性规划的近似求解算法;对于可以继续划分出相对独立任务的可分割任务,需要关注的重点是根据数据分布合理编排子任务,作者首先提出两种复杂度为O(n)的贪心算法,分别以负载均衡和能耗最小为目标分割任务,再使用基于线性规划的近似求解算法制定卸载策略。为了方便计算,作者将本地计算、卸载到边缘节点处理、卸载到云中心处理三种情况下的能耗视作相同,显然这与实际不符,本地计算的能耗明显低于另外两种情况。
上述研究均以优化总能耗为目标,但在一些应用场景,总能耗并非最合适的优化目标。在5G移动计算场景下,网络负载和计算负载可能会随着时间和地理位置的变化而发生较大的波动。例如在高峰时段和高密度网络区域,网络和计算资源的需求可能会显著增加,而在低负荷时段和低密度网络区域,需求则可能较低。因此,优化平均能耗可以帮助系统在不同时间和地点上调整能源使用,以满足不同负荷需求,从而更好地适应动态变化场景。针对该问题,Fan等人[62]对不同处理模式下的能耗做出区分,以降低平均能耗为目标,创新性地考虑边缘服务器可能本来就有部分任务的缓存内容。在他们提出的能耗最小化卸载算法中,以此为首要考虑因素,将这部分任务直接卸载到边缘服务器处理,其他任务可以卸载到云中心或考虑边缘服务器和本地的联合处理。当决定使用边缘服务器和本地联合处理的方式时,利用线性规划计算卸载到边缘层的比例。与不考虑缓存因素的方法相比,这篇文章的方法将平均能耗降低了56%。Xia等人[63]同样以降低平均能耗为目标,研究5G多蜂窝移动边缘云中的任务离线和在线卸载问题。离线卸载即所有任务到达状态已知,为静态任务制定卸载方案。在求解过程中,考虑到整数线性规划方法在处理大规模问题时灵活性差,作者结合滤波和取整思想提出了一种近似求解算法,去除能耗高的计算节点,迭代地将低能耗节点分配给任务。在线卸载即在当前时隙不知哪个任务即将到达,为动态任务制定卸载策略。作者利用强化学习和深度Q学习求解问题,轻量级强化学习算法用来决定当前时隙哪些任务需要卸载,深度Q学习算法用来制定任务在云边之间的卸载决策。作者在本文做出的研究和一些基础算法相比,显著降低了能耗。美中不足的是,这篇文章假设一台设备不能同时处理多个任务。
(3)多目标优化
为了同时降低能耗和延迟,Sun 等人[64]提出了一个混合整数非线性规划问题用于优化端-边-云协作系统中所有任务的总延迟和总能耗。这是一个很难在多项式时间内进行求解的问题,包含两个子问题的求解,一是卸载决策,二是资源分配。卸载决策问题被建模为0-1背包问题,作者提出了一种时间复杂度较低的分层启发式算法求解。资源分配问题的最优解则采用柯西-施瓦滋不等式求解。吴学文等人[65]在考虑时延和能耗的基础上又增加了对成本的优化,他们提出了一个云边协同系统效用最大化问题,并将其分为三个子问题求解:计算资源分配、上行通信资源分配、任务卸载策略。首先利用KKT 条件求得计算资源分配的最优解;接着提出了一种低复杂度的离散算法来快速分配用户的发射功率;最后提出了一种基于博弈论的分布式任务卸载算法。作者提出的综合解决方案在时延、能耗和成本的优化方面都具有良好的效果。上述研究都忽略了网络环境的时变性,Huang 等人[66]考虑到这一点,开展了初步研究。他们在车联网场景下,将卸载决策问题建模为马尔科夫决策过程,利用深度强化学习算法降低了延迟和成本。
2.1.3 小结
综上,国内外很多研究团队对独立任务的卸载问题进行了深入研究,并取得了较大的成果,但总体上还存在以下几方面问题:一是忽略传播时延,响应时间的计算模型比较简单。云计算和边缘计算的端到端传输距离相差悬殊,5G基站的覆盖半径为100~300 m,终端到国内云中心的数据传输距离能达到500 km,且存在多跳转发,因此有必要考虑终端到云中心的传播时延。二是以降低电能消耗为主,鲜少考虑能量转换。从绿色节能的角度来看,能量收集技术能通过环境光、射频等采集能量,尽管捕捉到的能量转换成的电能不多,但对于一些超低能耗的节点完全足够。三是评价指标缺乏创新,现有研究在确定优化目标的时候,大多是对响应时间、能耗和成本进行排列组合,事实上还有别的评价指标需要考虑和优化,比如资源利用率、单位时间完成任务数等。
相比以独立任务为研究对象的工作,研究工作流卸载的工作较少。一个应用程序往往由多个具备依赖关系的任务组成,如图4所示。这种工作流形式的研究对象更符合实际场景。围绕工作流卸载的研究多以响应时间优化、能耗优化及多目标优化作为优化目标。因此,从卸载粒度(全部卸载、部分卸载)和优化目标(响应时间、能耗、多目标)两个维度对现有研究进行归纳总结。
2.2.1 全部卸载
(1)响应时间优化
Du 等人[67]为了优化响应时间,将所有任务分为两组,分别卸载到边缘节点和云中心进行处理,并提出了一种新式加权图的处理方法,与传统加权图相比,在作者提出的加权图中,节点表示任务或数据库,依据在云中心、边缘节点处理的计算延迟被赋予权重,边表示两个任务之间或任务与数据库之间的通信,依据传输延迟给边赋予权重,此时,经典的最小分割算法不适用于作者提出的加权图,作者通过将原始加权图转化为增广图,再使用最小分割法切割图形的方法得到卸载结果。在这篇文章中,作者默认每台边缘服务器包含卸载任务所需的所有服务,但由于边缘服务器存储容量有限,只能缓存有限数量的服务。因此,Zhang等人[68]在云-边-端框架下,规定每台边缘服务器只存储部分任务的所需服务,云服务器存储了所有服务。作为服务请求方,终端上有很多需要借助云边资源协同架构执行的应用程序(比如人脸识别、虚拟现实应用),在卸载这些应用的子任务时,边缘服务器是首选,当任何一台边缘服务器都无法处理该任务时,将任务卸载到云服务器处理。作者设计了一种基于贪心策略的卸载算法,降低了响应时间。
在上述研究的基础上,一些研究人员提出分布式边缘计算的概念,作为边缘计算的扩展和演进,分布式边缘计算通过在多个边缘设备之间共享计算任务,形成一个分布式的计算网络,来实现更高级别的计算协同和资源优化。Lee等人[69]为了优化云边资源协同系统中工作流卸载的完成时间,设计了一种感知任务间依赖关系的低复杂度启发式算法,与传统忽略依赖关系的卸载方案相比,他们提出的算法将完成时间降低了18%。事实上,Lee等人没有对多个边缘节点之间的网络拓扑结构进行明确的设计和管理,多个边缘节点之间的网络拓扑结构并不明确。Haja 等人[70]明确边缘节点之间以及边缘节点和云中心之间的网络拓扑结构是网状的,基于此,研究大数据应用在分布式节点处理过程中性能下降的问题。作者提出一种快速感知分布式系统网络拓扑的优化算法,以降低端到端延迟和提高带宽的有效分配率。
(2)能耗优化
Gu 等人[71]研究在边缘节点计算能力、无线信道状态和响应时间的约束下,如何有效分配计算任务以降低能耗的问题。作者利用一对多的匹配理论进行建模分析,提出了一种启发式交换匹配算法,该算法的性能优于随机分配算法。Liu等人[72]研究在响应时间和任务依赖关系约束下如何降低能耗。为此,作者提出了一种基于半正定松弛和随机映射的节能任务卸载算法。实验表明,云边协同计算能很好地降低物联网传感器的能耗。但以上研究的假定条件都忽略了资源环境的动态性或用户的移动性。
(3)多目标优化
粒子群算法作为一种智能算法,参数少、收敛速度快、算法实现简单,在工作流卸载中得到了广泛的应用。但以粒子群算法为代表的传统启发式算法存在一些共同的问题,比如容易陷入局部最优,难以求得真正的最优解。因此,Xie 等人[73]提出一种定向非局部收敛粒子群优化算法,大大减少了响应时间和成本。为了减少响应时间和能耗,Shao等人[74]提出了一种基于遗传算法和模拟退化算法的任务卸载算法。首先构建云边协作框架,其次建立以最小化响应时间和成本为目标的任务卸载策略求解问题,使用改进的遗传模拟退火算法得到最优策略。与传统云中心处理模式相比,作者提出的方案将响应时间和能耗减少了25%。以上研究同样是适用于静态场景,没有考虑用户的移动性。
2.2.2 部分卸载
(1)响应时间优化
Lakhan 和Li[75]提出了感知工作流内容的任务调度(content-aware task scheduling algorithm,CATSA)框架。首先,根据任务数据量和任务间的依赖关系设置任务执行的截止日期。然后,CATSA 对比现有任务排序方法:截止日期最短优先、进程最小优先、延迟最小优先,选择性能最好结果作为排序方案。最后,使用局部搜索算法并结合优劣解距离(technique for order preference by similarity to an ideal solution,TOPSIS)法和层次分析(analytic hierarchy process,AHP)法制定卸载策略。实验结果表明,作者提出的框架与现有任务卸载算法相比减少了处理工作流的响应时间。但作者是在用户不具备移动性的场景下开展的普适研究,没有考虑到边缘节点之间的异构性。
由于汽车具备移动性,在车联网背景下开展的研究多基于动态用户,且随着车辆网技术不断发展,很多汽车本身配备一些必要的计算、存储资源。为了充分利用这些资源,Sun等人[76]设计了一种基于遗传算法的任务卸载方法,将一些原本在云中心或边缘节点处理的任务卸载到与之相连的车辆以提高平均响应时间。因为车辆具有移动性,他们首先利用超爱尔兰(Hyper-Erlang)分布对每辆车在蜂窝网络覆盖范围内的停留时间建模,接着将任务卸载问题建模为优化问题,对遗传算法进行整数编码并去除不可用子代,使用改进的遗传算法求解问题。在这项工作中,对所有参数,作者将其各自的平均值带入问题求解,这可能导致其结果不是最优的。
(2)能耗优化
Abdullah 等人[77]提出了一种任务卸载策略来降低移动设备和虚拟机的能耗。该策略首先采用最小切割算法[78]将工作流划分为本地执行任务和非本地执行任务,目的是最小化移动设备能耗。接着,为了优化云边系统中的虚拟机能耗,迭代地将任务卸载到功率最小的虚拟机并保证在任务截止前完成处理。但上述研究假定每台虚拟机的功率和无线网络的传输速率都是常数,这与实际情况不符。
(3)多目标优化
De和Kimovski[79]将云边协同环境下的工作流卸载调度问题表述为NP 难的多目标优化问题。该问题将响应时间、成本和可靠性作为目标,研究了优化上述三个目标时的帕累托前沿,提出了一种基于第二代非支配排序遗传算法的多目标工作流卸载优化算法。在开展研究的过程中,作者假设每个任务都有各自的需求而不是考虑工作流的整体需求在每个子任务上的体现,这与实际场景不符。此外,作者也没有考虑可能存在的任务排队时延。
区别于以上所有研究,Liao等人[80]研究从云到边的任务卸载。在云-边-端框架下,将云服务器上需要训练的全局模型分级派发到边缘服务器和终端设备(例如具备处理能力的光伏板和各种储能单元)。首先,终端利用其采集到的数据训练小规模的模型;其次,这些完成训练的小模型被上传到边缘服务器进行聚合,形成局部模型;最后,云服务器将边缘服务器上传的模型聚合成全局模型。作者利用拉格朗日优化求解卸载过程中的能耗和延迟优化问题。
2.2.3 小结
总的来说,以工作流为研究对象的工作较少,目前主要存在以下问题:当工作流内部的任务依赖关系表现为数据依赖时,下行链路的回传时间也是构成响应时间的一部分,但很多研究为了简化计算都忽略了这一点;除此之外,现有研究多以人为生成的有向无环图作为卸载对象。
通过前面对研究现状的归纳和介绍,不难看出云边资源协同是当前一个很热门的研究领域,在过去的五年中,一些研究也取得了突破性进展,但仍存在一些问题,如表1所示。通过对云边资源协同下任务卸载现状的认识,总结出其存在的问题如下:
表1 云边资源协同中的任务卸载技术研究现状总结Table 1 Summary of research status of task offloading technology in cloud-edge resource collaboration
(1)场景设计问题。大量研究在静态场景下开展,这与现实是相悖的,在制定卸载策略的时候都是基于静态分析,在任务开始执行前确定最佳的部分卸载决策,并按照决策将任务指派到云中心或者边缘节点。但在实际应用中,任务的负载可能会动态地变化,例如,由于移动设备的位置变化、网络带宽的波动、用户行为的变化等,导致任务的部分卸载决策需要重新调整。静态分析策略无法及时适应这些变化,可能会导致任务的响应时间延迟或者任务执行效率低下。
(2)卸载模型的建立问题。随着研究的不断深入,人们意识到任务卸载和资源分配的联合优化更具有现实意义。如何围绕工作流卸载和计算、通信、存储资源分配的联合问题开展研究是一个具有挑战的问题。此外,很多研究在优化响应时间、能耗、成本等性能指标的时候忽略了系统安全问题,例如在军事领域,会存在很多对抗事件,没有研究人员建立网络攻击和干扰条件下的卸载模型。
(3)模型的落地实现问题。现有研究大多人为生成任务数据,在集成开发环境实现算法,缺少在工程实践领域的落地以检验模型的完备性和算法的有效性。
结合现存问题,未来可以着重以工作流为研究对象,并在以下五方面展开更深入、更全面的研究。
(1)资源动态调度问题。随着人工智能和机器学习技术的不断发展,云边资源协同模式下的资源调度有望变得更加智能化。通过使用大数据分析、机器学习算法等技术,可以对边缘节点的资源使用情况进行实时监控和预测,从而做出更加智能和精准的资源调度决策,提高资源利用效率。未来,资源调度需要能支持更加灵活的策略,例如根据应用的实时需求和用户位置等动态调整资源分配,实现更加精细化的资源管理。云边协同场景下资源的状态是时变的,强化学习技术强调与环境的交互,深度学习算法越来越先进,将这两种技术融合进云边场景是未来的趋势之一。未来以工作流为研究对象的工作可以考虑结合新型深度强化学习算法(比如,DDQN(double DQN)、D3QN(dueling double DQN)等),增加对动态环境的感知与反馈,辅助做出最优决策。同时,在资源调度的过程中,用户可能离开边缘节点的覆盖范围,未来也需要深入研究用户移动性对资源调度的影响。
(2)突发请求处理问题。当有新的任务请求到达正在执行任务的边缘服务器时,相关研究通过评估任务执行总时间,决定替换现有任务或排队等待执行。当面对突发请求时,需要制定全面的中断请求机制,除了考虑任务执行总时间,还需要考虑任务的重要性,以及任务间的既定顺序以此判断是将原任务调度到云中心或其他边缘节点还是继续在原位置处理。
(3)任务卸载与多种资源分配的联合优化。任务数据应由处理节点接收并缓存在数据队列中等待处理,因此,尽管缓存和排队过程比较复杂,但对于实时任务的处理,这两个过程是很重要的。然而,在大多数现有工作中,响应时间被认为是本地处理时间、传输时间和边-云处理时间的总和,忽略了缓存和排队过程。此外,大多数有关缓存资源调度的研究更侧重于在网络边缘缓存常用内容以避免相同内容的重复传输。目前已经出现一些结合计算资源和通信资源分配的研究,未来的工作应该通过考虑缓存和排队过程来进一步推进计算、通信、存储资源分配的研究。
(4)资源调度的安全性问题。目前,一些研究主要使用区块链技术和环签名加密技术,通过数字签名验证机制确保云边资源协同调度的安全可靠性,但远未取得令人满意的成果。未来的研究需要填补现有研究的不足,排除潜在风险。①需要加强身份认证和访问控制,在云边资源协同模式下,涉及到多个边缘节点的资源调度和协同合作,未来需要加强对用户和设备的身份认证和访问控制,确保只有授权的用户和设备能够访问和操作资源,防止未经授权的访问和潜在的安全风险。②边缘节点安全防护的强化也值得探索。边缘节点通常分布在不同的地理位置,面临更多的安全威胁。未来可以采用更加先进的安全技术,例如边缘防火墙、入侵检测系统、安全监控和反欺诈技术等,以加强边缘节点的安全防护,抵御潜在的攻击和威胁。③随着云边资源协同的复杂性增加,强化安全监测和应急响应也是需要关注的重点,通过实时监测边缘节点的安全状态,发现和应对安全事件和威胁,提高对安全漏洞和威胁的应急响应能力。
(5)落地实践性问题。大多数研究人员都通过仿真平台模拟实验,未来的研究可以设计实现用于性能评估的实际实验平台。同时,近年来很多互联网公司也开发了云边协同计算平台,比如轻量级Kubernetes(K3s)、KubeEdge 等,这些平台内置了一些编排和管理方式供用户使用。未来新研究的算法一方面也可以和平台内置的算法作对比,验证所做工作和这些已经投入实际应用的成型产品相比是否具有优越性;另一方面可以和这些开源平台结合,增强研究工作的落地性。此外,如何利用来自生产实践的真实数据开展研究,将云边资源协同应用于更多领域带动产业发展也是一个需要思考的问题。
21世纪以来,云计算经历了多年发展,相关技术已趋于成熟,但随着该技术的广泛应用其弊端逐渐显现。边缘计算作为云计算的补充,近年来得到越来越多的关注,云边协同模式也逐渐被人们看到和了解。本文首先介绍了云边协同和此架构下资源协同概念的发展过程及概念内涵,阐述了任务卸载技术的含义和云边资源协同在智慧交通、智慧医疗和军事指挥领域的应用;其次,按照现有研究对象和优化目标的差异,分类介绍研究现状;最后,归纳总结存在的问题和未来的研究方向,以期对今后有关云边资源协同和任务卸载技术的研究工作提供参考。随着视频分析等领域对实时响应、隐私保护等要求的提高,未来,围绕云边资源协同开展的研究将更有意义。