Zjzk 2019-12-27
本博客内容来源于施巍松教授2016年发表在IEEE INTERNET OF THINGS JOURNAL上的综述文章,主要是总结论文的主要内容。
一、引言
云计算是近十几年来应用最为广泛的计算服务提供方式,目前科技公司主流的SaaS软件即服务的商业模式都是云计算的广泛应用。随着物联网的发展,越来越多的设备接入网络协同工作,一些物联网应用可能需要非常短的响应时间,一些可能涉及私人数据,一些可能产生大量数据,这可能是网络的沉重负荷。云计算在这种应用场景下仿佛不太适合了。下面就来通过 第二部分 讨论边缘计算的必要性,并给出了边缘计算的定义。第三部分 介绍了一些边缘计算的案例研究。 第四部分 提出可能的挑战和机遇。第五部分 结论,来展望边缘计算的挑战和愿景。
二、边缘计算是什么
1,云计算的限制导致的推动:边缘计算是指允许计算在网络边缘、代表云服务的下游数据和代表物联网服务的上游数据上进行的使能技术。在这里,我们将“edge”定义为数据源和云数据中心之间路径上的任何计算和网络资源。也就是说,从前我们的C/S模式,客户端与服务器之间没有计算,所有的计算都放在云端。这也可以理解,毕竟云端的计算能力远强于边缘端。但是随着更多的设备接入了网络,自动驾驶等新兴技术的发展,有许多设备会快速产生巨大的数据量,比如波音787飞机上的传感器每秒钟会产生5GB的数据,自动驾驶汽车每秒钟也会产生1GB的数据,这么大的数据量以现存的无线网络技术根本不足以支持云端与设备的实时通信。而现在,我们将计算的一部分放在靠近边缘的地方。
2,物联网发展为引:几乎所有的电子设备都将成为物联网的一部分,它们将扮演数据生产者和消费者的角色,比如空气质量传感器、LEDbars、路灯,甚至是联网的微波炉。可以有把握地推断,在这个网络的边缘上,事物的数量将在几年内发展到数十亿以上。因此,它们产生的原始数据将是巨大的,使得传统的云计算不足以处理所有这些数据。这意味着物联网产生的大部分数据将永远不会被传输到云上,相反它们将会在边缘被处理。
3,数据的消费者变为生产者:在传统的云计算模式下,数据的消费者和生产者在许多场景中是分开的,处在网络边缘的终端设备,如智能手机等,往往是作为数据的消费者,如图一。然而,有时终端设备也作为数据的生产者,比如人们向B站上传自己刚拍的Vlog,往朋友圈分享照片等。在这种应用场景下,视频,照片等上传到云端之前,可以先在本地进行压缩处理,以减小网络带宽的压力。
三、边缘计算的案例
1,云卸载:在边缘计算中,边缘具有一定的计算资源,这为从云计算中提取部分工作负载提供了机会。在传统的内容分发网络中,只有边缘服务器上的数据被存储。这是基于一个事实,即供应商提供的数据在互联网上,这是过去几十年。在物联网中,数据是在边缘生产和消费的。因此,在边缘计算范型中,不仅数据,而且应用于数据的操作都应该缓存在边缘上。
2,视频分析:移动电话和网络摄像头的普及使得视频分析成为一项新兴技术。由于长时间的数据传输延迟和隐私问题,云计算不再适合需要视频分析的应用程序。这里我们举一个在城市里寻找一个丢失的孩子的例子。如今,不同种类的相机广泛部署在城市地区和每辆车上。当一个孩子失踪时,这个孩子很有可能会被摄像机捕捉到。然而,由于隐私问题或交通成本,摄像头中的数据通常不会被上传到云端,这使得广域摄像头数据的利用变得极为困难。即使数据可以在云中访问,上传和搜索大量的数据也需要很长时间,这对于搜索失踪儿童来说是不可容忍的。利用边缘计算范式,可以从云中生成孩子的搜索请求,并将其推送到目标区域的所有事物上。例如,智能手机可以执行请求并搜索其本地摄像头数据,只向云报告结果。在这种模式下,可以利用一切事物的数据和计算能力,并比单独的云计算更快地获得结果。
3,智能家居:考虑到数据传输压力和隐私保护,家庭的私有数据应该主要在家里使用。这一特性使得云计算范式不适合智能家居。然而,边缘计算被认为是完美的智能家居形式:与一个边缘网关运行specializededge操作系统(edgeOS)在家里,家里的事情可以很容易连接和管理,可以处理的数据在本地发布互联网带宽的负担,和服务也可以部署在edgeOS会更好
4,智能城市:基于边缘计算的本地产生的数据本地计算和使用的特点,可以大大降低城市大数据对广域网的需求,降低时延,降低对数据中心的需求。
5,边缘合作:可以说,云已经成为学术界和工业界处理大数据的事实上的计算平台。云计算背后的一个重要承诺是,数据应该已经存在或正在传输到云中,并将最终在云中进行处理。然而,在许多情况下,由于隐私问题和数据传输的巨大成本,利益相关者所拥有的数据很少互相共享。因此,多方股东之间的合作机会是有限的。Edge是一个物理上的小型数据中心,它连接云和终端用户,具有数据处理能力,也可以成为逻辑概念的一部分。提出了协作边缘理论,将地理位置不同、网络结构不同的利益相关者的边缘连接起来。这些类似于ad hoc的连接边缘为受益人提供了共享和合作数据的机会。比如合作医疗健康保障等。
四、挑战和机遇
1,可编程性:在云计算环境中,开发者往往将项目部署到云端,开发者决定它是由哪种编程语言编写,使用什么技术,而这对程序使用者或使用的设备来说是完全透明的,我们只需要设定数据接口;但在边缘计算环境中,我们需要把程序部署到边缘的计算节点中,开发者将面临异构的边缘计算平台,不同的运行环境,不同的通信协议,不同的运行时。为了解决这些问题,研究人员提出了计算流的概念,定义为沿数据传播路径应用于数据的一系列函数/计算。即沿着数据的传播路径,只要应用程序定义了应该在何处进行计算,计算就可以发生在路径上的任何地方。在这种情况下,计算流可以帮助用户确定应该执行哪些功能/计算,以及在边缘计算之后如何传播数据。
在这个过程中,也就产生了优化问题。事实上天猫双十一处理并发,统计数据,就是用了流计算的思想。在这个过程中,首先我们要应对的是延迟驱动、能源限制、TCO(即总拥有成本)还有硬件和软件的特定限制等,这就需要研究人员设计合理的计算卸载方式,以最优解将计算卸载到边缘节点中。同时,开发人员还会面临计算同步化问题,数据的迁移和操作的迁移问题,这些都需要统筹多个边缘计算层来协作。
2,命名 Naming:在边缘计算中,一个重要的假设是事物的数量非常大。在边缘节点的顶部,有大量的应用程序在运行,每个应用程序都有自己的服务提供结构。与所有计算机系统相似,边缘计算中的命名方案对于编程、寻址、事物识别和数据通信都是非常重要的。然而,边缘计算范式的有效命名机制尚未建立和标准化。边缘计算的实施者通常需要学习各种通信和网络协议,以便与系统中各种不同的设备进行通信。边缘计算的命名方案需要处理事物的移动性、高度动态的网络拓扑、隐私和安全保护,以及针对大量未信任的设备的可扩展性。
传统的命名方式如DNS的域名/IP映射、URI,很好的解决了互联网的命名问题。但这些方式不适用于边缘计算的移动性,因为有时大多数东西的边缘可能是高度移动和资源有限的。此外,对于网络边缘的一些资源受限的情况,考虑到其复杂性和开销,基于IP的命名方案可能过于繁重而难以支持。NDN和MobileFirst等命名规则可以适用于边缘计算场景中,但它们都有各自的缺点:NDN为以内容/数据为中心的网络提供了一个层次结构的名称,它对服务管理是人性化的,并提供了良好的可扩展性。但是,它需要额外的代理才能加入其他通信协议,如蓝牙或ZigBee等。与NDN相关的另一个问题是安全性,因为很难将硬件信息与服务提供者隔离。MobileFirst可以将名称与网络地址分离,以提供更好的移动性支持,如果将其应用于具有高度移动性的边缘服务,将非常有效。但是,需要使用全局唯一身份认证(GUID)来命名的是MobileFirst,而这在网络边缘的相关固定信息聚合服务(如家庭环境)中是不需要的。MobileFirst对于edge的另一个缺点是服务管理困难,因为GUID对人不友好。
对于如智能家庭环境的小型边缘计算场景,我们可以采取让edgeOS为每个事物分配网络地址的解决方案。在一个系统中,每个东西都有一个独特的人类友好的名字,它描述了以下信息:位置(在哪里),角色(谁),以及数据描述(什么),例如,“厨房。烤箱。温度。”对于用户和服务提供者,这种命名机制使管理变得非常简单。例如,用户将收到来自geos的消息,如“灯泡3(什么)的天花板灯(谁)在客厅(哪里)坏了”,然后用户可以直接替换坏掉的灯泡,而不需要搜索错误代码或重新确定新灯泡的网络地址。此外,这种命名机制为服务提供者提供了更好的可编程性。同时,它阻止服务提供商获取硬件信息,这将更好地保护数据隐私和安全。但在如智慧城市这样的广阔的边缘计算场景中,这种方法并不适用,其命名机制还需要研究人员进行大量的工作。
3,数据抽象:有了物联网,网络中会有大量的数据生成器,这里我们以智能家居环境为例。在智能家居中,几乎所有的东西都会向edgeOS报告数据,更不用说部署了大量的东西。然而,大多数事情在网络的边缘,只有定期报告感知数据的网关。例如,温度计可以每分钟报告一次温度,但是这些数据很可能一天只被真正的用户使用几次。另一个例子可能是家里的一个安全摄像头,它可能会持续记录并将视频发送到网关,但数据只会存储在数据库中一段时间,没有人真正使用它,最终会被最新的视频覆盖掉。基于这一观察,我们设想人类对边缘计算的参与应该最小化,边缘节点应该消费/处理所有的数据,并以一种主动的方式与用户交互。在这种情况下,应该在网关级预先处理数据,如噪声/低质量的去除、事件检测和隐私保护等。进程数据将被发送到上层以提供未来的服务。在这个过程中会有几个挑战。
首先,来自不同事物的数据以不同的格式报告;出于对隐私和安全的考虑,在网关上运行的应用程序应该对原始数据保密。他们应该从整合的数据表中提取他们感兴趣的知识。其次,有时很难确定数据抽象的程度。如果太多的原始数据被过滤掉,一些应用程序或服务就不能学到足够的知识。然而,如果我们想要保留大量的原始数据,数据存储就会面临挑战。数据抽象的另一个问题是对事物的适用操作。收集数据是为了服务于应用程序,应用程序应该有控制(例如,从和写)权限,以完成某些服务用户的愿望。结合数据表示和操作,数据抽象层将作为连接到edgeOS的所有事物的公共接口。此外,由于事物的异构性,数据表示和允许的操作可能会有很大的差异,这也增加了通用数据抽象的障碍。
4,服务管理:在网络边缘的服务管理方面,我们认为应该支持以下四个基本特性来保证可靠的系统,包括differentiation, extensibility, isolation, 和 reliability.翻译过来就是差异性,可扩展性,独立性和可靠性。
差异性:随着物联网部署的快速增长,我们预计多种服务将部署在网络的边缘,如智能家居。这些服务将有不同的优先级。例如,关键服务,如故障诊断和报警,应该比普通服务处理得更早。例如,与娱乐等服务相比,降检测或心力衰竭检测也应该具有更高的优先级。
可扩展性:在网络的边缘,可扩展性可能是一个巨大的挑战,不像移动系统,设备等在物联网可能是非常动态的。当主人购买了一件新东西,它可以很容易地添加到当前的服务没有任何问题吗?或者当一个东西由于磨损而被替换时,以前的服务可以很容易地采用一个新节点替换吗?这些问题的解决需要在edgeOS中采用灵活的、可扩展的服务管理层设计。
独立性:隔离是网络边缘的另一个问题。在移动操作系统中,如果应用程序失败或崩溃,整个系统通常会崩溃并重新启动。或者在分布式系统中,可以使用不同的同步机制(如锁或令牌环)来管理共享资源。然而,在智能edgeOS中,这个问题可能更加复杂。可能有几个应用程序共享相同的数据资源,例如,光的控制。如果一个应用程序失败或没有响应,用户应该仍然能够控制他们的灯,而不会破坏整个系统。
可靠性:最后,可靠性也是网络边缘的一个关键挑战。我们从服务、系统和数据的不同角度来确定可靠性方面的挑战。A.系统应当在有设备损坏时及时提供给卡湖信息,甚至是在设备可能失效前就让用户有预感。B.系统中的每个组件都能够向edgeOS发送状态/诊断信息。有了这个特性,故障检测、事物替换和数据质量检测等服务可以很容易地部署在系统级。C.从数据的角度看,可靠性的挑战主要来自于数据传感和通信部分。正如之前所研究和讨论的,网络边缘的事物可能会因为各种原因而失败,它们也可能在不可靠的情况下报告低保真度的数据。多种新的物联网数据采集通信协议已经被提出,这些协议可以很好地支持大量的传感器节点和动态的网络状态。然而,连接的可靠性不如蓝牙或WiFi。如果传感数据和通信都不可靠,如何利用多个参考数据源和历史数据记录来提供可靠的服务仍然是一个开放的挑战。
5,保密性与安全性:在网络的边缘,使用隐私和数据安全保护是最重要的服务。如果一个家庭使用物联网,就会有很多隐私信息的产生,比如可以从感知到的使用数据中获取信息。例如,通过电或水的使用情况,我们可以很容易地推测房子是否空着。在这种情况下,如何保证隐私数据的安全,就是一个严峻的挑战。
6,优化指标:在边缘计算中,我们有多个具有不同计算能力的层。工作负载分配成为一个大问题。我们需要决定哪个层来处理工作负载,或者在每个部分分配多少任务。有多种分配策略来完成一个工作负载,例如,在每一层均匀分配工作负载,或者在每一层尽可能多地完成工作负载。极端情况是完全在端点上操作或完全在云上操作。为了选择最优分配策略,我们下面讨论几个优化指标,包括延迟、带宽、能源和成本。
延迟:延迟是评估性能的最重要指标之一,特别是在交互应用程序/服务中。云计算中的服务器提供了高计算能力。他们可以在相对较短的时间内处理复杂的工作,如图像处理、语音识别等。然而,延迟不仅由计算时间决定。长时延直接影响实时/交互密集型应用程序的性能。为了减少延迟,工作负载最好是在最近的一层,它有足够的计算能力到网络的边缘。
带宽:从延迟的角度来看,高带宽可以减少传输时间,特别是对于大数据(如视频等)。对于短距离传输,我们可以建立高带宽无线接入,将数据发送到边缘。一方面,如果工作负载可以在边缘处处理,那么与在云中工作相比,延迟可以大大改善。边缘和云之间的带宽也得到了节省。
能量:对于处于网络边缘的事物来说,电池是最宝贵的资源。对于端点层,将工作负载加载到边缘可以看作是一种能量免费的方法。那么,对于给定的工作负载,将整个工作负载(或部分工作负载)加载到edgerather而不是在本地计算,是否更有能量?关键是计算能耗和传输能耗之间的权衡。。一般来说,我们首先需要考虑工作量的功率特性。计算强度大吗?它将使用多少资源来运行本地?此外网络信号强度、数据大小和可用带宽也会影响传输能量开销。当传输开销小于局部计算时,我们倾向于使用边缘计算。然而,如果我们关注整个边缘计算过程而不是只关注端点,那么总能耗应该是每个使用层的能耗成本的累加。与端点层相似,每一层的能量消耗可以估计为局部计算成本加上传输成本。在这种情况下,最优的工作负载分配策略可能会改变。例如,本地数据中心层很忙,因此工作负载不断上传到上层。与端点计算相比,多跳传输可能会显著增加开销,从而导致更多的能量消耗。
成本:从服务提供商的角度,如YouTube、Amazon等,边缘计算为他们提供更少的延迟和能源消耗,潜在的增加吞吐量和改进的用户体验。因此,他们可以赚更多的钱来处理相同单位的工作量。例如,根据大多数居民的兴趣,我们可以把一个流行的视频在建筑层边缘。城市的层边缘可以摆脱这个任务,从而释放算力处理更复杂的工作。总吞吐量可以增加。服务提供商的投资是构建和维护每一层的成本。
工作负载分配不是一项简单的任务。这些度量标准是互相紧密相关的。例如,由于能源限制,工作负载需要在城市层上完成。与构建服务器层相比,能量限制不可避免地影响延迟。应该为不同的工作负载赋予指标优先级(或权重),以便选择合理的分配策略。此外,成本分析需要在运行时进行。还应该考虑并发工作负载的干扰和资源使用。
五、总结
现在,越来越多的服务被从云端推到网络的边缘,因为在边缘处理数据可以确保更短的响应时间和更好的可靠性。此外,如果更多的数据可以在边缘处理而不是上传到云端,带宽也可以节省。物联网的蓬勃发展和移动设备的普及改变了edge在计算范式中的角色,从数据消费者转变为数据生产者/消费者。在网络的边缘处理或修改数据会更有效。传统的云计算模式仍然受到支持,但由于数据的紧密性,它还可以将远程网络连接在一起进行数据共享和协作。最后,提出了在可编程性、命名、数据抽象、服务管理、隐私和安全以及优化指标等方面值得研究的挑战和机遇。边缘计算就在这里,我们希望这篇论文能引起社会的关注。