馮亞玲 張 卓 張學武 徐曉龍
(河海大學物聯網工程學院 常州 213022)
水利工程是配置和增強水資源調控能力、加強綠色能源發展的重大工程措施,大壩是水利水電工程建設的核心,其高質高效安全建設與長期高效安全運行關系國計民生[1]。隨著新一代信息技術的高速發展,物聯網、大數據、人工智能、云計算等技術深度融入筑壩領域,為大壩建造智能化提供了新理念、新技術、新裝備,形成了動態精細化可感知、可分析、可控制的智能化大壩建設與運行管理體系,包括信息實時感知模塊、聯通化實時傳輸模塊、智能化實時分析模塊與智能化實時管理決策系統等[2]。
當前廣泛應用的云計算技術[3]具有較強的可靠性和可擴展性,然而如果將大數據全部卸載到云平臺可能會導致網絡卡頓,從而降低各種應用程序總體服務質量(Quality of Service,QoS)。為緩解大數據帶來的網絡擁塞,業界提出引入另一項技術,通過在網絡邊緣部署邊緣節點來提供計算處理和數據存儲的能力,即邊緣計算[4]。云計算和邊緣計算是相輔相成的關系,云邊協同技術[5]將云中心和邊緣節點協同處理數據的服務方式能夠充分結合云中心和邊緣節點的自身優勢,能夠聯合調度不同特征的業務,因此將云邊協同技術引入水庫大壩灌區視頻監控系統具有極高的研究價值和應用意義。
計算卸載技術作為物聯網應用場景中的關鍵技術,在降低用戶執行時延提升QoS方面起著重要作用。現階段計算卸載技術還在圍繞單一的云計算與邊緣計算進行研究,本文通過構建一個云邊協同計算環境來解決它們之間的任務協同調度問題。當前部分水庫大壩灌區所在的環境復雜,因此,不能簡單地將云邊協同的計算卸載技術應用到水庫大壩灌區中的視頻監控系統中。鑒于此,本文的云邊協同計算卸載技術研究還會面臨以下科學問題。
1)水壩灌區地理位置險要[6],地區偏遠,危險點眾多,各監測站點位置分布不均,調度困難,系統會面臨癱瘓風險。
2)各監測站點計算資源分配不均,且視頻監控系統中非結構化數據[7]占到了大壩日常業務數據中的很大比例,處理該類業務,對系統時效性要求比較高[8]。
通過參考云邊協同卸載技術在水電廠和配電物聯網中的研究[6],結合水壩灌區視頻監控系統中存在的科學問題,本文以滿足低時延的應用需求為目標,研究了水壩灌區視頻監控系統中的云邊協同計算卸載技術,主要貢獻如下。
1)針對水壩灌區地理環境問題,提出了云邊協同的計算卸載模型。區域公司作為云中心,監測站點作為邊緣節點,是部署在離生產設備較近的輕量級開放平臺,并在區域公司集控側部署遠程集控平臺來實現基于需求的業務編排,如網絡資源調配、計算資源編排等。
2)針對計算資源分配不均和系統高時效性的問題,提出了基于SAGTSA(Simulated-annealingbased Adaptive Genetic Taboo Search Algorithm)算法的計算卸載方法,使集控側的遠程集控平臺能夠選取最佳的卸載決策。
近年來,業界提出很多有效的云邊協同的計算卸載方法來降低系統時延。如文獻[9]提出一種隨機調度算法和捎帶式數據重部署策略,以實現降低跨域作業的平均時延為優化目標,基于資源異構性計算出系統偏好,并以此偏好調度每個計算任務,但不足之處在于要求數據沒有相關性。文獻[10]提出一種基于集中控制的資源調度算法,在已選擇的節點間采取集中控制的方法來降低端到端的時間延遲,但不足之處是只能選擇少量的節點作為邊緣節點。文獻[11]提出了一種改進的粒子群算法,以實現低時延、低能耗的最優計算卸載方案為目標,但不足之處是基于信譽值的方法有一定的局限性。文獻[12]提出一種人工魚群算法,使得系統總時延降低,但缺點是只能以一定低概率跳出局部最優解。在不同業務場景下,針對移動增強現實應用場景,文獻[13]中,以優化多用戶多任務的應用調度問題為目標,提出一種有效的調度算法,但要求每個應用程序要被建模為一個相互依賴的任務鏈。在移動邊緣計算網絡中,文獻[14]以降低所有終端延遲為目標,研究了協同計算卸載、計算和通信資源分配方案,并提出了基于管道的卸載方案,但不足之處在于要求終端要具備計算能力。文獻[16]提出一種基于海洋多節點協同卸載的遺傳算法,通過優化改進染色體編碼方式和適應度函數,使用戶在滿足能耗約束的同時有效地降低時延,但不足之處在于跳出局部最優解的能力偏低。文獻[6]針對電力物聯網應用場景,以優化系統時延為目標,基于任務的數據量和邊云計算資源分配,選擇優化的云邊任務分割比率,但不足之處在于沒有考慮云中心計算資源不足的情況。
目前,云邊協同的計算卸載研究主要都以減少終端的時延和能耗為目標,對邊緣節點到云中心這部分的計算卸載優化研究很少。本文構建了一種基于云邊協同的水庫大壩視頻監控系統,不同于上述方法,本文主要優化邊緣節點到云計算中心這一部分的系統卸載時延,不需要對數據進行預處理,且是以任務為單位做出分割,對數據相關性沒有要求。與此同時,在文獻[6]的研究基礎上,考慮了邊遠地區云服務器計算力不足的情況,并在區域公司集控側遠程集控平臺來實現業務編排管理,所用算法通過對染色體編碼方式和基于模擬退火算法的更新機制進行改進,并添加了基于TS的存儲機制,來對邊緣節點收到的任務選擇最佳的卸載策略和節點資源分配,以獲得最優的系統時延。
本文構建一個云邊協同架構水庫大壩視頻監控系統基本模型,如圖1所示,主要由區域公司大數據云平臺、區域公司集控側遠程集控平臺與區域站點視頻監控系統三大部分組成。

圖1 基于云邊協同架構的水庫大壩視頻監控系統模型
區域公司大數據云平臺部署了高性能服務器集群和數據庫。在本文的云邊協同架構中,云服務器始終作為整個系統計算和存儲的中心,能夠實時處理區域監測站點上傳的任務。
區域公司集控側部署了遠程集控平臺,能夠實現基于需求的業務編排和網絡資源調配。將SAGTSA算法部署在中央控制器上,對于邊緣節點接收的任務進行業務編排,將一部分任務留在邊緣節點,一部分加載至區域公司云平臺進行處理。
區域監測站點視頻監控系統作為整個云邊協同架構中的邊緣層,是部署在距離監測設備較近且是以數據中心為核心的輕量級分布式開放平臺,能夠為業務間的協同提供支撐。
3.2.1 云邊協同計算卸載場景概述
針對圖1所示的用于水庫大壩視頻監控業務的云邊協同架構模型,本文采用的云邊協同機損卸載模型如圖2所示,其中包含一個云中心和J個邊緣節點的邊緣層。在邊緣層中,每個邊緣節點都配有服務器,且針對不同區域的地形和通信條件都具備不同的計算能力。與此同時,我們假設感知層的終端設備將任務上傳至邊緣節點,依據部署在邊緣節點的卸載決策結果執行任務,使邊緣節點中收到的任務一部分上傳到云管理中心處理,其余部分留在邊緣節點進行處理。

圖2 云邊協同計算卸載模型
假設同一時間內系統有J個邊緣云覆蓋范圍下的能夠參與計算調度的邊緣節點的集合;Dj,i表示邊緣節點j收到的第i個任務的數據量大小。設邊緣節點j同時收到Ij個任務,根據卸載策略,其中一部分留在邊緣節點完成,其余任務加載至云中心進行處理,其中?i∈Ij,Ij={1,2,…,Nj},j∈J。
一般而言,邊緣節點具備獨立的通信模塊和計算模塊,所以邊緣節點可以計算任務,與此同時,通信模塊可以將任務傳輸至云中心進行處理。為了簡化且不失一般性的求解,本文將Bj設置為每個邊緣節點到云中心的帶寬。在視頻監控系統中,任務的計算結果足夠小,因此下行鏈路的傳輸時延可以忽略。此外,本方案主要面向的是大壩實時監控流,實時性要求比較高,其能耗問題忽略不計。
3.2.2 云邊協同計算卸載時延分析
當任務采用邊緣節點計算執行(即Xi=1時),那么任務在邊緣節點產生的計算時延為

其中,Xj,i表示卸載策略,邊緣節點j的任務i的卸載策略,“1”和“0”分別表示任務留在邊緣節點和加載至“云管理中心”處理。αj,i邊緣節點j分配給任務i的計算能力占比,Dj,i表示邊緣節點j上任務i的數據量大小,fjedge表示邊緣節點j服務器的計算能力(CPU cycles/s)。
當任務采用云中心計算執行(即Xj,i=0時),任務在云中心產生的計算時延:

其中,βj,i表示云中心分配給邊緣節點j的任務i的計算能力占比,fcore云管理中心服務器的計算能力(CPU cycles/s)。
關于任務產生的傳輸時延,若直接卸載到云計算中心,則時延為

其中,Bj邊緣節點j到云中心的帶寬。
若經邊緣節點處理后再將結果上傳到云中心,則時延為

其中Zj,i表示邊緣節點j的第i個任務處理后,輸出數據對輸入數據的壓縮率。
那么傳輸時延為

其中,Pj,i=1-Zj,i。
當任務數過多,云中心計算力會有些不足,則相應產生等候時延:

卸載到云中心的時延應為計算時延、傳輸時延與排隊等候時延之和,即為

綜上,完成單個任務所產生的時延為

則整個視頻監控系統的時延優化問題可描述為P1:

其中,目標函數中的λj,i為權重。C1是對邊緣節點j分配給任務i的計算能力占比αj,i的約束,C2是云中心分配給邊緣節點j的任務i的計算能力占比βj,i的約束,C3是對任務時延權重λj,i的約束,C4是對卸載決策Xj,i的約束。為簡化求解,我們假設以下分析中所有的任務的時延權重都是相同的。
為解決水庫大壩云邊協同機制下視頻監控系統業務時延優化問題,本文采用了一種基于SAGTSA(Simulated-annealing-based Adaptive Genetic Taboo Search Algorithm)的云邊協同計算卸載方法。針對傳統遺傳算法過早收斂的問題,本文的SAGTSA算法通過充分結合了模擬退火算法的全局收斂性和適應性,以及禁忌搜索策略所具備的較強的攀爬能力和較高的效率,具有較強的收斂性和適應性。具體地,優化與改進了染色體編碼方式、解的更新機制和自適應交叉概率以及自適應變異概率[15],使得系統尋找到最優計算卸載策略并提升系統時延有效性。
在對優化變量進行編碼時,由于采用邊緣節點與云中心計算節點協同處理數據的計算卸載策略;因此首先需要對每個任務與其所在的邊緣節點與云中心的計算能力分配比例進行編號,之后在每條染色體上用二進制編碼的方式表示出來。若J個邊緣節點共收到N個任務,其中,任務上傳到的邊云計算節點編號用計算卸載決策XN表示,且計算能力分配比例邊云計算資源分配比例αN、βN表示。具體編碼過程如圖3所示,x1~xn,α1~αn,β1~βn分別表示任務計算卸載決策和對應邊緣節點與云中心計算資源分配比例。在本文中,假設種群數量為S,A1,A2,…,Ai表示在當前種群中每個可能存在的解,個體i的適應度為,本文的選擇操作采用fitness(Ai)輪盤賭的選擇方式,個體被選中的概率為如式(10):


圖3 優化變量編碼圖
其中適應度函數如式(11)所示:

傳統遺傳算法的交叉概率和變異概率均為固定值。在演化過程中,很容易陷入局部最優狀態。根據種群的適應度值對交叉概率和突變概率進行自適應調整,有利于算法跳出局部最優值。自適應的交叉概率PJ和變異概率Pm分別為

在進行交叉操作和變異操作后,根據玻爾茲曼機制,接受新染色體的概率如式(14)所示:

tg為第g次迭代中當前溫度。
此外,算法通過設置禁忌表,避免了對局部最優解的重復搜索,并通過設置“大赦免標準”來確保搜索過程的多樣性。
下面將具體介紹應用SAGTSA算法求解水庫大壩時延優化問題的過程。
每條染色體表示一種計算卸載策略Ai包括卸載決策XN邊緣節點與云中心計算能力分配比例αN、βN。此外,計算卸載策略Ai交叉變異前后的適應度可分別用fitness(Ai)與fitnessn(Ai)表示,具體步驟如下:
輸入:邊緣計算節點計算能力fjedge、計算能力fcore、任務數量N、邊緣節點j到云管理中心的帶寬Bj、經邊緣節點j的第i個任務處理后輸出數據對輸入數據的壓縮率Zj,i和任務數據量Dj,i。
輸出:最優計算卸載決策XN、邊云計算資源分配比例αN、βN表示、計算卸載策略對應時延tj,i(Ai)。
步驟1(參數設置):設置染色體數量S、最大迭代次數G、卸載策初始交叉概率PJ0、變異操作的初始概率Pm0,初始溫度tg=t0,冷卻率ε,禁忌表長度L并設置禁忌表為空。每次迭代不同的計算卸載策略數目;
步驟2(種群初始化):根據式(10)得出每種計算卸載策略對應的染色體的適應度。
步驟3(選擇操作):將本次迭代中所有可能的計算卸載策略按照其概率Pi(可根據式(9)計算每種計算卸載策略的選擇概率)大小進行累加排序。如果Pi>Pr(與本次迭代染色體數目相同0-1之間的隨機數Pr,在排序時均勻產生),那么就選擇該計算卸載策略進行后續操作,持續此選擇操作直到能夠選出足夠數量的計算卸載策略,并根據輪盤賭的方法選出最優解。
步驟4(終止條件判斷):判斷是否滿足終止條件,滿足則終止算法,輸出最優計算卸載策略Ai及系統對應時延,否則進行步驟5。
步驟5(交叉操作):每次將兩個卸載策略分為一組,根據概率PJ令這兩種卸載策略進行交叉操作來產生新的計算卸載策略,根據玻爾茲曼機制判斷是否接受新的染色體。
步驟6(變異操作):在每種計算卸載策略的三個點位上以概率Pm來進行變異操作,并根據玻爾茲曼機制判斷是否接受新的染色體。
步驟7(更新禁忌表):將已經選擇的最優解放入禁忌表避免被重復選擇。
步驟8(收斂性判斷):如果滿足收斂條件則執行步驟7,否則降低溫度并返回步驟3。并選擇出適應度值最小的計算卸載策略Ai并終止循環。
步驟9(確定候選解):將當前解作為TS算法的初始解,生成當前解的鄰域,并從該鄰域中確定候選解。
步驟10(判斷是否滿足大赦準則):判斷候選解是否滿足大赦準則,如果滿足,則以候選解作為當前最優解,更新表和當前狀態,返回步驟3,否則執行下一個操作。
步驟11:選擇最優解作為當前解,然后返回到步驟3。
根據水庫大壩云邊協同計算卸載模型,本文采用Matlab2019軟件模擬了在水庫大壩業務應用背景下邊緣節點和云中心協同處理多個計算任務的網絡場景[15]。設邊緣節點數為J=6,每個節點任務數為10。其他仿真參數由表1所示。我們設置迭代次數G=100,這是由于SAGTSA算法經過多次實驗驗證發現其在迭代100次以內均可實現穩定收斂。SAGTSA算法中種群數量S=70,染色體的初始交叉概率為PJ0=0.6,初始變異概率為Pm0=0.07,變異點數目為3。禁忌表長度L=5,冷卻率ε=0.98。

表1 主要仿真參數
本文對系統時延隨邊緣節點任務數的變化做出了仿真實驗與分析,并為突出本文云邊協同方案的優越性,找到三個對比方案,分別為:1)僅邊方案(Only Edge Computation Scheme,OECS):邊緣節點收到的任務不上傳到云中心均在邊緣節點執行,主要為信息獲取業務,簡稱OECS;2)僅云方案(Only Cloud Computation Scheme,OCCS):邊緣節點收到的任務都不經邊緣節點處理都上傳到云中心的服務器執行。主要為決策分析業務和大壩壩體變形監測業務等,簡稱OCCS;3)隨機卸載方案(Random Unloading Scheme,RUS):邊緣節點收到的任務隨機上傳至云中心或留在邊緣節點進行處理,渠道站點視頻監控業務為主。
本文對SAGTSA算法在邊緣節點收到不同任務數的情況下的所得到的迭代收斂效果進行了驗證分析,如圖4所示,以證實在有限的迭代次數內SAGTSA算法能夠實現穩定收斂。圖4中,SAGTSA算法在邊緣節點收到不同任務數的情況下得到的系統執行時延隨著迭代次數的逐漸增大逐漸減小,除了一部分情況在迭代100次以內實現穩定收斂以外,大部分大約在迭代30次時均可實現其對應情況下的實現穩定收斂并得到其對應計算卸載最優解。經過仿真分析,可以看出SAGTSA算法的運算量較低,并且其在邊緣節點收到不同的任務數的情況下都能實現在有限迭代次數內的達到速度較快的穩定收斂的指標。

圖4 SAGTSA算法迭代收斂
如圖5,方案OECS中,仿真發現當實驗中每個邊緣節點收到的任務數增加時,系統時延也隨之增加,這是由于OECS僅依賴于邊緣節點的計算資源,在增加任務數而節點數量不變的情況下,每個任務分配到的計算資源相對減少。

圖5 不同卸載策略對系統時延的影響
方案OCCS中,實驗中當回程通信能力固定時,同理,由于方案OCCS依賴于云中心的計算能力,系統時延隨節點任務數增加(此時單個任務分到的計算資源減少)而增加。但當節點收到的任務數增加時,由于云中心計算能力遠大于單個邊緣節點,方案OCCS相較方案OECS而言影響較小,云中心計算資源遠大于單個邊緣節點計算資源。在方案RUS中,相較于前兩種方案其具有更好的系統時效性。但隨著節點任務數的增多邊云各自需要處理的任務也會較多。此時并行處理的優勢降低,其系統時延趨勢逐漸趨向方案OCCS。而本文提出的云邊協同方案克服了隨機策略的缺陷,其可根據節點任務數和邊云計算資源等參數自適應做出卸載決策,相較前三種方案有更低的系統時延。
此外,為突出本文SAGTSA算法的收斂效果,本文與三個經典傳統算法做出效果對比,分別為:1)GA優化[15](Genetic Algorithm Optimization):將傳統遺傳算法應用到云邊協同計算卸載策略中,簡稱GA;2)AFSA優化(Artificial Fish Swarm Algorithm Optimization):將文獻[12]傳統人工魚群算法應用到云邊協同計算卸載策略中,簡稱AFSA;3)PSO方案(Particle Swarm Optimization):將文獻[16~17]中粒子群優化算法應用到視頻監控系統的云邊協同計算卸載策略中,簡稱PSO。
圖6~圖8是SAGTSA與其他算法之間優化效果對比。圖7進一步驗證了當J=6,任務數為10,Dj,i=500KB時的迭代收斂情況。隨著迭代次數的增加,四種算法的平均適應度值均不同程度地增加,本文的SAGTSA算法對應的適應度值最高。這主要是由于SAGTSA算法結合模擬退火算法和禁忌搜索策略對傳統GA算法進行了改進,使得其能跳出局部最優解的能力增強。其他方案由于參數相對固定,跳出局部最優解的能力有限。圖7驗證了不同算法隨任務數的變化對時延的影響,可以看出隨任務數的增加,各個算法產生的系統時延也隨之增加,而本文的SAGTSA算法明顯優于其他算法。圖8中,驗證了在任務數為5,J=6時,隨節點輸入數據量的變化任務平均時延的變化。可以看出,隨數據量的增加,各個算法得出的任務平均時延均不同程度的增加,本文的SAGTSA算法在尋優方面體現了較強的優越性。

圖6 不同算法間的迭代性能比較

圖7 不同算法隨任務數的變化對時延的影響

圖8 隨節點輸入數據量任務平均時延的變化
本文提出了一種在云邊協同架構下水庫大壩優化系統時延的方法,通過部署在區域公司集控側的SAGTSA算法對邊緣節點收到的任務進行卸載決策,利用邊云協同處理來減小任務的計算時延,將一部分任務留在邊緣節點處理,剩余的任務全部上傳至云中心處理,仿真結果證明此方案使系統具有較高的系統時效性。