胡忠波,賈芝婷,王素貞
(河北經(jīng)貿(mào)大學(xué) 信息技術(shù)學(xué)院,河北 石家莊 050061)
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,產(chǎn)生了一批新型應(yīng)用,例如虛擬現(xiàn)實、無人駕駛和遠程手術(shù)等,這些新型應(yīng)用大多部署在終端設(shè)備上且對時延和帶寬較敏感,其往往要求低時延、高帶寬和更大的存儲能力。傳統(tǒng)的云計算模式[1]需要將數(shù)據(jù)全部傳輸?shù)皆茢?shù)據(jù)中心進行處理,傳輸過程中傳輸時延、網(wǎng)絡(luò)帶寬、能量損耗、數(shù)據(jù)安全等問題都難以避免。因此,以解決數(shù)據(jù)傳輸延遲、降低網(wǎng)絡(luò)帶寬為目標的邊緣計算迅速發(fā)展。邊緣計算[2-3]是在靠近用戶終端設(shè)備的網(wǎng)絡(luò)邊緣執(zhí)行計算的一種新型計算模式,邊緣計算中的邊緣是指從數(shù)據(jù)產(chǎn)生端到云計算處理中心的路徑之間的任意計算和網(wǎng)絡(luò)資源[4]。在邊緣計算模式中,終端產(chǎn)生的數(shù)據(jù)不再需要全部上傳到云數(shù)據(jù)中心,而是通過部署在網(wǎng)絡(luò)邊緣的邊緣節(jié)點快速處理數(shù)據(jù),從而降低了計算時延和設(shè)備能耗,同時也減輕了云服務(wù)器的能耗[5]。得益于邊緣計算的優(yōu)勢,近年來,越來越多的邊緣計算平臺和應(yīng)用實例被陸續(xù)提出[6]。
本文基于邊緣計算產(chǎn)業(yè)聯(lián)盟提出的邊緣計算參考架構(gòu),參照其他文獻,給出邊緣計算的參考架構(gòu)示意圖,如圖1所示。該架構(gòu)主要包括云計算層、邊緣層和終端層,其中邊緣層是該架構(gòu)的核心組成部分,涵蓋多領(lǐng)域功能模塊,既實現(xiàn)了與云層的數(shù)據(jù)傳輸,又支持終端層的接入。
圖1 邊緣計算架構(gòu)示意圖
邊緣計算關(guān)鍵技術(shù)有計算卸載、資源管理、服務(wù)編排、移動性管理、邊緣緩存等。本文主要介紹與分析終端計算任務(wù)卸載到邊緣服務(wù)器技術(shù)、針對計算任務(wù)的資源配給與管理技術(shù)、邊緣服務(wù)器上的內(nèi)容緩存等。
計算任務(wù)卸載,是指通過終端設(shè)備把要處理的運算任務(wù)卸載給網(wǎng)絡(luò)資源較豐富的邊緣服務(wù)器,使用邊緣服務(wù)器的運算和存儲資源處理計算任務(wù),以減少時延和功耗,提升服務(wù)質(zhì)量。卸載決策是計算卸載技術(shù)中的關(guān)鍵,主要解決了終端設(shè)備如何卸載任務(wù)、卸載什么,以及如何卸載的問題。根據(jù)卸載決策的優(yōu)化目標,可將其分為三類:減少延遲、減少能耗、平衡延遲和能耗。
Liu等人[7]研究允許在移動設(shè)備和MEC服務(wù)器上執(zhí)行并行計算的系統(tǒng)。首先使用馬爾科夫鏈理論分析卸載任務(wù)的平均時延和能耗,然后對時延最小化問題進行數(shù)學(xué)建模,接著提出一種一維搜索算法得到最優(yōu)卸載策略。仿真實驗證明與基準策略相比,所提出的任務(wù)調(diào)度策略具有更短的平均執(zhí)行延遲。Alam等[8]研究了人工智能技術(shù)在任務(wù)卸載中的應(yīng)用,提出了在接近用戶終端網(wǎng)絡(luò)的MEC中的計算卸載方案。為了處理海量移動設(shè)備對計算資源的需求,作者提出了一種基于Q-learning技術(shù)的自主管理框架,可通過馬爾科夫決策過程建模和深度強化學(xué)習(xí)求解問題。仿真結(jié)果表明所提出的自主深度學(xué)習(xí)方法能夠明顯降低能耗。文獻[9]同時考慮了設(shè)備能耗和時延問題,提出了一種基于機器學(xué)習(xí)的隨機任務(wù)遷移算法,結(jié)合改進的Q學(xué)習(xí)和深度學(xué)習(xí)算法生成隨機任務(wù)最優(yōu)卸載策略。其中時延表示為式(1),能耗表示為式(2),仿真結(jié)果表明,該算法能有效降低任務(wù)處理時間和能耗。
(1)
(2)
完成卸載決策之后,就需要考慮資源分配問題,即如何合理的分配服務(wù)器資源。由于移動設(shè)備周圍往往部署著大量的邊緣服務(wù)器,而不同邊緣服務(wù)器上的資源分配不同,有效的資源分配策略能夠降低時延,提高用戶體驗。目前資源分配主要分為單節(jié)點分配和多節(jié)點分配。對于不可分割的任務(wù),卸載到同一邊緣服務(wù)器上,對于可分割且分割后無聯(lián)系的任務(wù),可以卸載到多個邊緣服務(wù)器上。
Zhang等[10]考慮了邊緣服務(wù)器計算資源有限,提出一個基于分層云的車輛邊緣計算框架,引入備份服務(wù)器來彌補服務(wù)器,基于該框架,利用博弈論思想設(shè)計出了最優(yōu)的多級卸載方案,并通過迭代分布式算法在有限的用戶內(nèi)證明了其納什均衡的收斂性。Ning等人[11]將云計算與移動邊緣計算結(jié)合進行研究,首先從單用戶計算卸載問題,其資源不受限制,通過分支限界算法求解。然后將多用戶計算卸載問題公式化為混合整數(shù)線性規(guī)劃問題并設(shè)計了一種迭代啟發(fā)式算法做出卸載決策。仿真結(jié)果表明,所提算法在執(zhí)行延遲和卸載效率方面優(yōu)于現(xiàn)有方案。
計算卸載和資源管理的研究是為了高效使用邊緣計算資源的問題,邊緣緩存則是為了有效使用邊緣服務(wù)器的存儲資源。終端設(shè)備產(chǎn)生的數(shù)據(jù)流量會占用大量網(wǎng)絡(luò)帶寬資源,而終端設(shè)備帶寬資源有限。因此,使用邊緣緩存技術(shù)進行本地內(nèi)容緩存是有效方案。將具有內(nèi)容分析、緩存功能的邊緣平臺部署在人流密集的區(qū)域,利用邊緣計算平臺數(shù)據(jù)分析與處理能力將所需內(nèi)容資源緩存到邊緣服務(wù)器上。當(dāng)用戶請求內(nèi)容時,相當(dāng)于從本地加載,節(jié)省帶寬的同時大大降低了用戶的響應(yīng)時間。傳統(tǒng)的以內(nèi)容為中心的網(wǎng)絡(luò)緩存方案忽略了流量負載、網(wǎng)絡(luò)帶寬等因素[12]。
文獻[13]從強化學(xué)習(xí)角度研究了分布式緩存策略,作者提出了一種編碼緩存框架來解決微基站的最佳聯(lián)合緩存內(nèi)容放置問題。提出的編碼緩存框架可以建模為一個考慮網(wǎng)絡(luò)連通性的線性程序,從而共同設(shè)計緩存策略。文獻[14]考慮了基站緩存內(nèi)容的多樣性和冗余性,提出了一種分布式緩存方案。作者采用自適應(yīng)粒子群優(yōu)化算法得到給定系統(tǒng)配置下的最優(yōu)冗余比來最小化網(wǎng)絡(luò)的總運輸成本。仿真結(jié)果表明,當(dāng)選擇最優(yōu)冗余比時,總成本可降低54%。
邊緣計算是一個快速發(fā)展的領(lǐng)域,由于同時考慮計算資源和網(wǎng)絡(luò)資源,在技術(shù)上更加復(fù)雜。用戶可以通過在設(shè)備上部署邊緣計算平臺來進行任務(wù)處理與數(shù)據(jù)緩存等操作。目前比較知名的邊緣計算平臺有OpenEdge、KubeEdge、Akraino、EdgeCloudSim等。
國內(nèi)互聯(lián)網(wǎng)公司也對邊緣計算平臺的研發(fā)高度重視,國內(nèi)第一個開源邊緣計算平臺OpenEdge即由百度研發(fā)[15],該平臺提供設(shè)備連接、消息路由、函數(shù)運算等多種功能。OpenEdge與智能邊緣云端管理套件搭配應(yīng)用,將云端管理系統(tǒng)生成的配置文件下發(fā)至本地系統(tǒng)以滿足設(shè)備需求。OpenEdge框架由主程序模塊和多個應(yīng)用模塊構(gòu)成,支持Docker容器模型和Native進程模型。如圖2所示。
目前官方提供了多個模塊來滿足常見的應(yīng)用場景,用戶也可以開發(fā)自己的模塊,只要符合模塊加載要求即可。其中主程序模塊是平臺的核心,負責(zé)所有模塊的管理、同步等,由模塊引擎、云代理和API構(gòu)成。API提供端口服務(wù),并獲取系統(tǒng)狀態(tài)與信息。Hub模塊是一個簡易的消息訂閱與發(fā)布中心,提供消息路由服務(wù),使平臺部署設(shè)備之間的數(shù)據(jù)交互成為可能。函數(shù)計算模塊提供基于MQTT機制的,精度高、速度快的計算能力,函數(shù)通過多個具體實例執(zhí)行,每個實例都是一個具體的進程,負責(zé)計算任務(wù)的執(zhí)行和管理。在使用時,用戶首先需要定義自己的個性化服務(wù),然后通過主程序調(diào)用Restful將自己的服務(wù)進行實例化,變成實例。
KubeEdge開源平臺由華為公司基于Kubernetes架構(gòu)設(shè)計研發(fā),負責(zé)為云邊之間的應(yīng)用協(xié)調(diào)和數(shù)據(jù)同步提供基礎(chǔ)架構(gòu)。終端用戶通過KubeEdge平臺既能在云端管理邊緣節(jié)點上的應(yīng)用和設(shè)備,又能實現(xiàn)云邊應(yīng)用設(shè)備數(shù)據(jù)之間的同步[16]。其整體結(jié)構(gòu)框架分為三層,分別為云層、邊緣層和設(shè)備層。如圖3所示。
圖2 OpenEdge框架
圖3 KubeEdge框架
KubeEdge的云端由EdgeController、DeviceController和CloudHub三個模塊組成,即負責(zé)實現(xiàn)與Kubernetes的資源與狀態(tài)同步又負責(zé)將平臺部署的應(yīng)用任務(wù)下放到邊緣層。其中CloudHub是邊緣層與云層的接口模塊,負責(zé)接受邊緣層的設(shè)備狀態(tài)并上報給云層的控制模塊。EdgeCore起著連接用戶和數(shù)據(jù)存儲節(jié)點的功能,是邊緣層部分的核心,由EdgeHub、MetaManager等多個組件所組成。EdgeHub與CloudHub模塊相似,主要功能是及時將平臺部署應(yīng)用狀態(tài)改變上報并更新邊緣層和云層資源。MetaManager是數(shù)據(jù)管理節(jié)點,DeviceTwin是數(shù)據(jù)管理鏡像,Edge是邊緣容器管理程序,各個組件各司其職共同組成邊緣層的強大功能。設(shè)備層通過MQTT Broker直接和邊緣層相連,當(dāng)終端應(yīng)用發(fā)生狀態(tài)變化時通過MQTT Broker上報到邊緣層作出處理,支持MQTT協(xié)議的設(shè)備可直接接入KubeEdge。
Akraino Edge Stack平臺具有高可用性、擴展性好、響應(yīng)速度快等優(yōu)勢,支持有線、Wi-Fi、LTE等多種接入方式,最大限度地提高了效率。它旨在將云服務(wù)擴展到邊緣,以改善企業(yè)邊緣、工業(yè)物聯(lián)網(wǎng)和運營商網(wǎng)絡(luò)的云邊基礎(chǔ)架構(gòu)狀態(tài),并保證系統(tǒng)的可靠性[18]。
Akraino Edge Stack為建立完全集成的邊緣基礎(chǔ)架構(gòu),提出了一種包括基礎(chǔ)設(shè)施、中間件及邊緣計算應(yīng)用的整體方案。如圖4所示。從上至下依次是應(yīng)用層、中間層和基礎(chǔ)設(shè)施層。其中應(yīng)用層負責(zé)邊緣應(yīng)用的部署以及邊緣生態(tài)系統(tǒng)的創(chuàng)建。中間層包括支持邊緣應(yīng)用的中間件,并通過開發(fā)邊緣API的方式實現(xiàn)跨平臺互操作。最下面的基礎(chǔ)設(shè)施層為整個平臺提供了一套開源軟件棧,如Kubernetes、Openstack等,用于對接上層并優(yōu)化基礎(chǔ)設(shè)施,具有極高的商業(yè)價值。
圖4 Akraino Edge Stack框架
圖5 EdgeCloudSim模塊之間的關(guān)系
EdgeCloudSim是一種應(yīng)用于邊緣計算中計算和網(wǎng)絡(luò)的仿真測試平臺,其基于CloudSim開發(fā)[19],但是增加了許多功能[20]。EdgeCloudSim提供了一個模塊化體系結(jié)構(gòu),為各種關(guān)鍵功能提供支持,例如特定于無線局域網(wǎng)(Wireless Local Area Network,WLAN)和廣域網(wǎng)(Wide Area Network,WAN)的網(wǎng)絡(luò)建模、設(shè)備移動性模型、真實且可調(diào)的負載生成器。如圖5所示,目前的EdgeCloudSim版本有5個主要的模塊[20]:核心仿真模塊、網(wǎng)絡(luò)模塊、邊緣協(xié)調(diào)器模塊、移動模塊、負載生成器模塊,為了簡化快速原型化工作,每個模塊都包含一個默認實現(xiàn),可以通過模擬參數(shù)進行調(diào)整。
核心模擬模塊負責(zé)從配置文件加載和運行邊緣計算場景。此外,它還提供了一種日志機制,將模擬結(jié)果保存到文件中。默認情況下,結(jié)果以逗號分隔符(CSV)數(shù)據(jù)格式保存,但可以更改為任何格式。網(wǎng)絡(luò)模塊需要同時考慮上傳和下載數(shù)據(jù)來處理WLAN和WAN中的傳輸延遲。終端設(shè)備可以使用蜂窩網(wǎng)絡(luò)或無線局域網(wǎng)來訪問云服務(wù)。網(wǎng)絡(luò)模塊的默認實現(xiàn)基于單個服務(wù)器隊列模型,在向虛擬機發(fā)送任務(wù)或從虛擬機下載任務(wù)結(jié)果之前,操作的傳輸延遲由網(wǎng)絡(luò)模塊模型計算。邊緣協(xié)調(diào)器模塊是系統(tǒng)的決策者,它使用從其他模塊收集的信息來決定如何以及在哪里處理傳入的移動終端請求。由于CloudSim側(cè)重于傳統(tǒng)的云計算原則,因此框架中不考慮移動性。移動模塊可以更新移動設(shè)備的位置,每個移動設(shè)備設(shè)有橫縱坐標,根據(jù)動態(tài)管理的哈希表進行更新??蚣苣J提供了一個移動模型,但是不同的移動模型可以通過擴展抽象類實現(xiàn)。負載生成器模塊負責(zé)生成給定配置的任務(wù)。移動模塊和負載生成器模塊向其他部件提供輸入,它們在同一(移動客戶端)層處理。默認情況下,任務(wù)根據(jù)泊松分布生成,移動設(shè)備根據(jù)移動模塊移動,如果需要其它任務(wù)生成模式,應(yīng)修改移動設(shè)備管理器模塊。
表1 邊緣計算平臺特性比較
隨著5G和物聯(lián)網(wǎng)技術(shù)的發(fā)展,汽車產(chǎn)業(yè)迎來了巨大變革,車聯(lián)網(wǎng)成為汽車技術(shù)發(fā)展新動力。而在車聯(lián)網(wǎng)方面,人們關(guān)注最多的是自動駕駛技術(shù)。要實現(xiàn)自動駕駛技術(shù),要求終端汽車以最快時間接收到來自數(shù)據(jù)處理節(jié)點的指令,并作出相應(yīng)處理。邊緣計算是網(wǎng)絡(luò)輔助智能交通的關(guān)鍵技術(shù),一旦路面發(fā)生異常情況,需要采取緊急措施,而傳統(tǒng)的通過傳送公共核心網(wǎng)數(shù)據(jù)來發(fā)送緊急指令,延遲非常大。因此,在網(wǎng)絡(luò)邊緣,接入網(wǎng)附近搭載一個相關(guān)的邊緣服務(wù)器,可以及時的發(fā)送緊急指令,采取緊急制動或其它安全措施,如圖6所示。
圖6 基于邊緣計算的自動駕駛架構(gòu) 圖7視頻監(jiān)控架構(gòu)
視頻監(jiān)控是安全防范的重要部分,監(jiān)控的特點是,大部分監(jiān)控畫面趨于平常沒有價值。目前的視頻監(jiān)控處理需要把元數(shù)據(jù)全部上傳到云端,開銷大、效率低。運用邊緣計算技術(shù),可以在接入網(wǎng)中部署一個邊緣服務(wù)器,使其負責(zé)監(jiān)控內(nèi)容的分析和處理,并定期與云端進行交互,將監(jiān)控畫面中有價值的片段進行回傳,而將價值不高的靜止內(nèi)容就近在邊緣服務(wù)器中處理,實現(xiàn)本地分流,大量節(jié)約帶寬、降低成本,視頻監(jiān)控架構(gòu)如圖7所示。文獻[21]將區(qū)塊鏈技術(shù)和邊緣計算技術(shù)引入視頻監(jiān)控,作者提出了一種實現(xiàn)實時監(jiān)控的視頻監(jiān)控系統(tǒng),其中邊緣計算技術(shù)負責(zé)信息采集與數(shù)據(jù)處理。
隨著醫(yī)療行業(yè)引進人工智能技術(shù),醫(yī)療服務(wù)逐漸向智能化發(fā)展,而引入邊緣計算技術(shù)后,智慧醫(yī)療服務(wù)發(fā)生了巨大革新。醫(yī)院使用智能醫(yī)療設(shè)備可以實時獲得患者的信息,如體溫、血壓、心率等,對數(shù)據(jù)進行分析后可以做到及時應(yīng)對。將數(shù)據(jù)上傳到邊緣服務(wù)器進行處理后也可以協(xié)助醫(yī)生做出相應(yīng)處理,如圖8所示。Akmandor等[22]描述了目前較完善的智能醫(yī)療保健系統(tǒng),從邊緣計算角度對時延、能耗、數(shù)據(jù)準確性和安全性等方面給出了解決方案。
圖8 智慧醫(yī)療架構(gòu)
邊緣計算技術(shù)在近幾年有了很大的發(fā)展,但仍有許多領(lǐng)域的問題值得深入研究。未來邊緣計算領(lǐng)域可能的研究方向:(1)由于邊緣服務(wù)器是分布式部署的,所以任務(wù)處理過程中存在諸多安全問題,包括數(shù)據(jù)安全、邊緣節(jié)點的安全、用戶隱私安全、網(wǎng)絡(luò)安全等。(2)目前仍沒有較好的能對完整邊緣計算功能進行模擬的仿真平臺,因此,仍需要對邊緣計算仿真平臺進行優(yōu)化。(3)隨著人工智能技術(shù)的逐漸完善,將人工智能技術(shù)與邊緣計算技術(shù)結(jié)合,以實現(xiàn)更高的效率。(4)目前將區(qū)塊鏈技術(shù)與邊緣計算技術(shù)融合的研究較少,以后可能成為新的研究方向。