李萬清,劉 輝,李忠金,袁友偉
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
隨著通信、網(wǎng)絡(luò)和智能產(chǎn)品的發(fā)展,移動(dòng)便攜式的用戶設(shè)備(User Equipment,UE)越來越受歡迎。新型移動(dòng)應(yīng)用如人臉識(shí)別、自然語言處理、增強(qiáng)現(xiàn)實(shí)等不斷涌出,引起了人們的廣泛關(guān)注。這些移動(dòng)應(yīng)用的執(zhí)行需要較高的計(jì)算資源,并消耗較大的電力能源。然而,移動(dòng)設(shè)備由于物理尺寸的限制,通常只具有有限的計(jì)算能力和電量。因此,如何在資源受限的移動(dòng)設(shè)備上高效地運(yùn)行新型移動(dòng)應(yīng)用是當(dāng)前移動(dòng)網(wǎng)絡(luò)環(huán)境下的一個(gè)挑戰(zhàn)[1]。
移動(dòng)邊緣計(jì)算(Mobile Edge Computing, MEC)的出現(xiàn)為該問題的解決提供了新的平臺(tái)和機(jī)遇。移動(dòng)邊緣計(jì)算通過與內(nèi)容提供商和應(yīng)用開發(fā)商深度合作,在靠近移動(dòng)用戶側(cè)就近提供內(nèi)容存儲(chǔ)計(jì)算及分發(fā)服務(wù),使應(yīng)用、服務(wù)和內(nèi)容部署在高度分布的環(huán)境中,以更好地滿足低延時(shí)的需要[2-4]。因此,在MEC環(huán)境中,執(zhí)行計(jì)算和存儲(chǔ)的服務(wù)器均部署在網(wǎng)絡(luò)邊緣,UE可以通過將移動(dòng)應(yīng)用的一部分任務(wù)卸載到邊緣服務(wù)器上執(zhí)行的方式,來提高移動(dòng)應(yīng)用的服務(wù)質(zhì)量并減少UE的能源消耗。然而,不是任何一個(gè)任務(wù)卸載方案都會(huì)提高服務(wù)質(zhì)量,不合理的任務(wù)卸載會(huì)造成大量的數(shù)據(jù)傳輸和更長(zhǎng)的任務(wù)執(zhí)行時(shí)間,這不僅導(dǎo)致應(yīng)用的執(zhí)行延時(shí),還會(huì)增加更多的電池消耗[5-6]。
一個(gè)移動(dòng)應(yīng)用一般包括多個(gè)任務(wù),任務(wù)之間存在先序關(guān)系和數(shù)據(jù)依賴關(guān)系。與并行任務(wù)相比,MEC環(huán)境下的工作流應(yīng)用調(diào)度問題更具有復(fù)雜性和挑戰(zhàn)性,如任務(wù)的執(zhí)行順序以及執(zhí)行位置都會(huì)對(duì)移動(dòng)應(yīng)用的完成時(shí)間和能耗產(chǎn)生影響。因此,如何將移動(dòng)工作流應(yīng)用中的多個(gè)任務(wù)合理地分配到移動(dòng)設(shè)備和邊緣服務(wù)器上執(zhí)行,在滿足工作流應(yīng)用的約束條件限制下減少移動(dòng)設(shè)備的能耗是移動(dòng)邊緣計(jì)算環(huán)境下的一個(gè)重要研究問題[7-8]。
MEC能夠有效減少UE的能耗和應(yīng)用的延時(shí),數(shù)據(jù)安全性也是其重點(diǎn)關(guān)注的問題之一。在MEC環(huán)境中,移動(dòng)應(yīng)用的數(shù)據(jù)往往攜帶隱私信息,由于用戶設(shè)備和邊緣服務(wù)器頻繁進(jìn)行數(shù)據(jù)交互,一些數(shù)據(jù)在交互過程中有可能丟失或者被惡意篡改,會(huì)給用戶造成重大的損失。因此,在MEC環(huán)境中運(yùn)行移動(dòng)應(yīng)用時(shí),需要部署一系列的安全服務(wù)以保證數(shù)據(jù)的安全性[9]。
基于以上分析,本文主要研究移動(dòng)邊緣環(huán)境下的工作流調(diào)度問題,提出了面向安全和能耗感知(Security and Energy Aware, SEA)的調(diào)度算法,該算法能夠?qū)崿F(xiàn)在滿足工作流截止時(shí)間和風(fēng)險(xiǎn)率約束的條件下UE能耗最小化。SEA算法在粒子群優(yōu)化(Particle Swarm Optimization, PSO)的基礎(chǔ)上融合了工作流調(diào)度問題,在編碼過程中考慮了任務(wù)的調(diào)度位置、機(jī)密性服務(wù)和完整性服務(wù)。針對(duì)異構(gòu)服務(wù)器對(duì)安全服務(wù)計(jì)算時(shí)間影響,構(gòu)建了新的安全開銷模型,包括數(shù)據(jù)量與安全開銷的關(guān)系、多核CPU與安全開銷的關(guān)系和計(jì)算頻率與安全開銷的關(guān)系,使得該模型可以根據(jù)MEC的參數(shù),對(duì)任務(wù)的安全開銷進(jìn)行定量描述。
本文的主要貢獻(xiàn)如下:①?gòu)囊苿?dòng)用戶的安全性出發(fā),提出一種面向安全和能耗感知的工作流調(diào)度方法;②對(duì)數(shù)據(jù)量、CPU核數(shù)和計(jì)算頻率與機(jī)密性服務(wù)和完整性服務(wù)之間的關(guān)系進(jìn)行建模,提出了安全開銷的定量描述方法;③提出一種基于PSO的工作流調(diào)度編碼策略,解決了多維多約束優(yōu)化問題。
近年來,移動(dòng)網(wǎng)絡(luò)及應(yīng)用得到了飛速發(fā)展,許多學(xué)者對(duì)應(yīng)用的任務(wù)調(diào)度進(jìn)行了大量研究。Zhu等[10]在遺傳算法的基礎(chǔ)上提出了多目標(biāo)優(yōu)化(Evolutionary Multi-objective Optimization,EMO)算法,對(duì)工作流的執(zhí)行時(shí)間和成本進(jìn)行優(yōu)化,解決了基礎(chǔ)架構(gòu)即服務(wù)(Infrastructure as a Service,IaaS)平臺(tái)上的工作流調(diào)度問題;Jia等[11]研究了移動(dòng)邊緣計(jì)算環(huán)境中多用戶通信和計(jì)算資源分配問題,提出3種不同的卸載策略,即局部壓縮卸載、移動(dòng)云壓縮卸載和部分壓縮卸載,顯著減少了應(yīng)用的延遲;曹斌等[12]提出基于粒子群算法的最優(yōu)化調(diào)度搜索方法,利用關(guān)鍵路徑進(jìn)行粒子初始化和搜索階段的篩選處理,解決了在時(shí)間約束下最小化費(fèi)用問題;周業(yè)茂等[13]考慮了用戶的不斷移動(dòng),提出了基于延時(shí)傳輸機(jī)制的多目標(biāo)工作流調(diào)度算法,解決了網(wǎng)絡(luò)變化情況下工作流調(diào)度問題。
Xie等[14]提出針對(duì)具有期限和安全約束的并行應(yīng)用程序的任務(wù)分配算法,以及針對(duì)并行任務(wù)的安全感知和異構(gòu)感知資源分配的算法,解決了集群中具有安全性約束的實(shí)時(shí)并行作業(yè)資源分配問題;Zeng等[15]指出云環(huán)境的工作流調(diào)度策略不僅要考慮CPU執(zhí)行時(shí)間,還需考慮內(nèi)存、存儲(chǔ)容量等其他資源,提出一種安全和費(fèi)用感知工作流調(diào)度策略(Security-Aware and Budget-Aware,SABA),該策略在市場(chǎng)可用的云服務(wù)提供商之間選擇經(jīng)濟(jì)任務(wù)分配方案,為客戶提供更短的完工時(shí)間以及安全服務(wù);Li等[16]考慮到在科學(xué)工作流中任務(wù)通常是異構(gòu)的,提出一種安全和成本感知調(diào)度(Security and Cost Aware Scheduling,SCAS)算法,使任務(wù)在執(zhí)行過程中,在滿足截止時(shí)間和風(fēng)險(xiǎn)約束的同時(shí),最小化工作流執(zhí)行成本;Chen等[8]提出工作流調(diào)度策略不僅需要滿足中間數(shù)據(jù)的安全性需求,還要考慮加密中間數(shù)據(jù)對(duì)后續(xù)工作流任務(wù)開始的性能影響,提出一種具有選擇性任務(wù)重復(fù)調(diào)度算法,有選擇地重復(fù)執(zhí)行前驅(qū)任務(wù),有效地利用任務(wù)松弛時(shí)間優(yōu)化執(zhí)行時(shí)間、貨幣成本和資源效率。
Liu等[17]通過研究移動(dòng)邊緣環(huán)境下如何最小化執(zhí)行延遲,提出了基于馬爾可夫的一維搜索算法,該算法根據(jù)應(yīng)用程序緩沖區(qū)排隊(duì)狀態(tài)、UE和MEC服務(wù)器上可用的計(jì)算資源以及UE和MEC服務(wù)器之前網(wǎng)絡(luò)特性,找出最優(yōu)的卸載決策策略;Mao等[18]通過研究帶有能源收集裝置的綠色MEC系統(tǒng),提出了基于Lyapunov的動(dòng)態(tài)計(jì)算卸載算法,該算法決定了卸載決策、移動(dòng)設(shè)備執(zhí)行的CPU周期頻率和計(jì)算卸載的傳輸功率,達(dá)到執(zhí)行成本(執(zhí)行時(shí)延和任務(wù)失敗)最優(yōu)。
當(dāng)前在移動(dòng)邊緣環(huán)境下進(jìn)行工作流安全調(diào)度的研究很少,本文在上述研究的基礎(chǔ)上提出的SEA算法,實(shí)現(xiàn)了在滿足安全需求和工作流的截止時(shí)間的情況下,最小化移動(dòng)設(shè)備的能耗。
下面介紹MEC環(huán)境下任務(wù)調(diào)度框架、服務(wù)工作流模型、安全服務(wù)模型、任務(wù)執(zhí)行分析和工作流風(fēng)險(xiǎn)分析,提出具有安全需求的工作流調(diào)度問題。
如圖1所示,MEC系統(tǒng)由用戶設(shè)備、無線網(wǎng)絡(luò)和若干個(gè)部署了邊緣服務(wù)器的基站組成[19]。假設(shè)一個(gè)用戶設(shè)備執(zhí)行某個(gè)應(yīng)用,該應(yīng)用被建模成一個(gè)一般工作流。工作流中的任務(wù)有可能被卸載到演進(jìn)型基站(evolved Node B,eNB)上或在UE上執(zhí)行。通常eNB管理著不同類型的服務(wù)器,每臺(tái)服務(wù)器擁有不同的計(jì)算資源,如CPU內(nèi)核數(shù)量、CPU頻率大小和內(nèi)存大小,因此每臺(tái)服務(wù)器擁有不同的計(jì)算能力。S={s0,s1,s2,…,sm}表示服務(wù)器的集合,其中s0為移動(dòng)設(shè)備本身,m表示邊緣服務(wù)器的總數(shù)。此外,假設(shè)不同eNB信號(hào)不能相互干擾,eNB之間擁有相同的通信帶寬。
本文在經(jīng)典的有向無環(huán)圖(Directed Acyclic Graph, DAG)基礎(chǔ)上進(jìn)行擴(kuò)展,重新定義了具有安全性的工作流W={T,E,θ,Td},如圖1所示。其中:T={t1,t2,…,tn}表示n個(gè)任務(wù)的集合,E為任務(wù)之間的有向弧或邊的集合,表示任務(wù)之間的依賴關(guān)系,例如邊e(i,j)表示任務(wù)ti必須在任務(wù)tj開始前完成執(zhí)行的約束。這種情況下,任務(wù)ti被認(rèn)為是任務(wù)tj的前驅(qū)任務(wù),任務(wù)tj被認(rèn)為是任務(wù)ti的后繼任務(wù),式(1)表示任務(wù)ti的所有前驅(qū)任務(wù):
pred(ti)={tj|(tj,ti)∈D}。
(1)
在工作流中,一個(gè)任務(wù)通常可以有一個(gè)或者多個(gè)輸入,一旦輸入完成,將觸發(fā)任務(wù)執(zhí)行。任務(wù)ti的輸入總量為Ii,Ii等于任務(wù)ti的前驅(qū)任務(wù)傳輸給任務(wù)ti數(shù)據(jù)總量。假設(shè)任務(wù)的輸出已知,當(dāng)任務(wù)ti完成時(shí),輸出Oi。在工作流中沒有前驅(qū)任務(wù)節(jié)點(diǎn)的任務(wù)稱為tentry,表示工作流的開始任務(wù)。此外,沒有后繼任務(wù)節(jié)點(diǎn)的任務(wù)稱為texit,表示工作流的結(jié)束任務(wù)。通常一個(gè)工作流有且僅有一個(gè)tentry和texit。如圖1所示,工作流中t1和t8分別表示工作流的tentry和texit。工作流中θ表示安全約束,它的值是由用戶根據(jù)數(shù)據(jù)的敏感程度指定的,0≤θ≤1.0,安全約束最低為0,最高為1.0。此外,每個(gè)工作流都有一個(gè)截止時(shí)間Td,它被定義為工作流執(zhí)行的時(shí)間約束。
根據(jù)任務(wù)調(diào)度模型考慮單個(gè)UE將任務(wù)卸載到多個(gè)eNB的情況。這些eNB通常是異構(gòu)的,它們支持不同的覆蓋范圍,具備不同的計(jì)算能力。一般而言,eNB中的服務(wù)器也是異構(gòu),即每個(gè)服務(wù)器擁有不同的CPU、計(jì)算性能和存儲(chǔ)資源。
目前,在移動(dòng)邊緣計(jì)算環(huán)境下用戶隱私數(shù)據(jù)面臨安全威脅[20],但是許多現(xiàn)有移動(dòng)邊緣計(jì)算環(huán)境并沒有采用任何安全機(jī)制來對(duì)付安全威脅,因此有必要部署安全服務(wù)來保護(hù)用戶的數(shù)據(jù)安全[21]。欺騙和篡改是移動(dòng)邊緣環(huán)境中兩種常見的攻擊,如惡意用戶利用非法程序獲得MEC服務(wù)器部分控制權(quán)并篡改用戶的數(shù)據(jù)[22]。因此,考慮實(shí)現(xiàn)兩種安全服務(wù)(機(jī)密性服務(wù)和完整性服務(wù))[23]來綜合保障數(shù)據(jù)的安全性。通過對(duì)應(yīng)用程序(可執(zhí)行文件)和數(shù)據(jù)進(jìn)行加密來支持機(jī)密性,從而使信息和資源無法提供或者泄露給未經(jīng)授權(quán)的人員或者應(yīng)用;數(shù)據(jù)的完整性服務(wù)確保數(shù)據(jù)不被授權(quán)篡改或在篡改后能夠被迅速發(fā)現(xiàn)。使用安全服務(wù)保護(hù)用戶隱私數(shù)據(jù)是以性能為代價(jià)的,即安全服務(wù)會(huì)帶來一定的時(shí)間開銷,不同的安全服務(wù)算法(方法)會(huì)產(chǎn)生不同的時(shí)間開銷[14,23]。
文獻(xiàn)[9,14,23]都構(gòu)建了安全開銷模型,可以合理度量安全服務(wù)引起的安全開銷,但是這些文獻(xiàn)只考慮在固定的處理器、固定計(jì)算頻率下數(shù)據(jù)量和安全服務(wù)之間的關(guān)系。在異構(gòu)MEC環(huán)境下,eNB是異構(gòu)的,它們的服務(wù)器也是異構(gòu)的,這些服務(wù)器的處理器擁有不同的CPU核數(shù)和不同計(jì)算頻率。為了精準(zhǔn)衡量安全服務(wù)的時(shí)間開銷,還需要研究多核CPU、不同計(jì)算頻率與安全開銷的關(guān)系。例如Barnes等[24]考慮CPU多核體系研究了加密算法安全開銷,證明多核吞吐量遠(yuǎn)遠(yuǎn)大于單核串行執(zhí)行。機(jī)密性服務(wù)的算法通常包括IDEA(international data encryption algorithm)、DES(data encryption standard)、AES(advanced encryption standard)、Blowfish和RC4(rivest cipher 4),如表1所示;完整性服務(wù)的算法包括TIGER、RipeMD160(integrity primitives evaluation message digest 160)、SHA-1(secure hash algorithm 1)、RipeMD128(integrity primitives evaluation message digest 128)和MD5(message digest 5),如表2所示。數(shù)據(jù)機(jī)密性和完整性算法分別記為CS={cs(1,c,f),cs(2,c,f),…,cs(N(CS),c,f)},IS={is(1,c,f),is(2,c,f),…,ci(N(IS),c,f)},N(j),j∈{CI,IS}表示第j個(gè)安全服務(wù)可選算法數(shù)量。其中:N(CS)表示機(jī)密性加密算法總數(shù),c表示運(yùn)行安全服務(wù)使用的CPU核數(shù),f表示CPU頻率(單位:GHz)。例如,ci(1,4,2.2)表示在4核、頻率為2.2 GHz的MEC服務(wù)器運(yùn)行機(jī)密性服務(wù)第1個(gè)算法。運(yùn)行算法的服務(wù)器為戴爾R530 2.2 GHz,CPU核數(shù)為8核。下面分別研究數(shù)據(jù)量、多核CPU、不同計(jì)算頻率和安全開銷之間的關(guān)系,建立相應(yīng)的數(shù)學(xué)模型。
表1 單核機(jī)密性服務(wù)加密算法
表2 單核完整性服務(wù)哈希算法
2.3.1 安全等級(jí)建模
在對(duì)算法的安全等級(jí)建模時(shí),采用單核對(duì)固定大小數(shù)據(jù)運(yùn)行安全服務(wù)算法,其中服務(wù)器的計(jì)算頻率為2.2 GHz,加密數(shù)據(jù)的大小為100 MB。根據(jù)加密算法的執(zhí)行速度(如表1中執(zhí)行速度)為每個(gè)算法分配一個(gè)安全等級(jí),安全等級(jí)范圍為0.32~1.0。例如,將1.0分配給最強(qiáng)但計(jì)算速度最慢的加密算法IDEA(如表1),其余加密算法的安全等級(jí)的計(jì)算方式同文獻(xiàn)[14,23],具體表示為:
(2)
同理,根據(jù)哈希算法的執(zhí)行速度(如表2中執(zhí)行速度),為每個(gè)算法分配安全等級(jí),安全等級(jí)范圍為0.44~1.0。將1.0分配給最強(qiáng)但是執(zhí)行速度最慢的哈希算法TIGER(如表2),其余哈希算法的安全等級(jí)可以由式(3)計(jì)算得到:
(3)
2.3.2 數(shù)據(jù)量與安全開銷的關(guān)系
在考慮數(shù)據(jù)量與安全開銷的關(guān)系時(shí),采用單核、固定頻率對(duì)不同大小的數(shù)據(jù)運(yùn)行安全服務(wù)算法,其中服務(wù)器的頻率為2.2 GHz,實(shí)驗(yàn)效果如圖2所示。在對(duì)不同大小的數(shù)據(jù)運(yùn)行加密算法時(shí),其安全開銷和數(shù)據(jù)量成正比,具體關(guān)系如式(4)所示:
(4)
式中d為需要執(zhí)行加密數(shù)據(jù)大小,當(dāng)d=100時(shí),co(cs(i,c,f),100)表示對(duì)100 MB數(shù)據(jù)執(zhí)行加密的安全開銷。如圖2a所示為對(duì)不同大小數(shù)據(jù)執(zhí)行機(jī)密性服務(wù),數(shù)據(jù)量和安全開銷的關(guān)系。
同理,在對(duì)不同大小的數(shù)據(jù)運(yùn)行哈希算法時(shí),運(yùn)行哈希算法的安全開銷和數(shù)據(jù)量成正比,具體關(guān)系如式(5)所示:
(5)
當(dāng)d=100時(shí),co(is(i,c,f),100)表示對(duì)100 MB數(shù)據(jù)執(zhí)行完整性服務(wù)的安全開銷。如圖2b所示為對(duì)不同大小數(shù)據(jù)執(zhí)行完整性服務(wù)時(shí),數(shù)據(jù)量和安全開銷的關(guān)系。
2.3.3 多核CPU與安全開銷的關(guān)系
考慮到CPU的核數(shù)與安全開銷的關(guān)系,本文對(duì)固定大小安全數(shù)據(jù)實(shí)現(xiàn)安全服務(wù),在固定計(jì)算頻率,利用不同核數(shù)運(yùn)行安全服務(wù),得到不同核數(shù)的安全開銷。選擇100 MB數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),在計(jì)算頻率為2.2 GHz的服務(wù)器上運(yùn)行安全服務(wù)算法。首先,將原始數(shù)據(jù)D切分成N份數(shù)據(jù)集,其中N對(duì)應(yīng)算法使用的核數(shù);然后利用多進(jìn)程對(duì)N份數(shù)據(jù)集實(shí)現(xiàn)安全服務(wù),實(shí)驗(yàn)效果如圖3所示,隨著CPU核數(shù)的增加,安全開銷呈下降趨勢(shì)。這是由于待加密數(shù)據(jù)被分成了若干份,實(shí)際上每個(gè)核只對(duì)每個(gè)小塊數(shù)據(jù)進(jìn)行加密。
在保護(hù)相同大小數(shù)據(jù)時(shí),多核實(shí)現(xiàn)機(jī)密性服務(wù)的安全開銷和核數(shù)成反比,具體關(guān)系如式(6)所示:
(6)
式中co(is(i,1,f))表示單核運(yùn)行加密算法的安全開銷。如圖3a所示為對(duì)d=100 MB數(shù)據(jù)實(shí)現(xiàn)機(jī)密性服務(wù)時(shí),多核服務(wù)器運(yùn)行加密算法的安全開銷和采用的核數(shù)關(guān)系。
同理,可以得出多核實(shí)現(xiàn)完整性服務(wù)的安全開銷和核數(shù)成反比,如式(7)所示:
(7)
如圖3b所示為對(duì)100 MB數(shù)據(jù)實(shí)現(xiàn)完整性服務(wù)時(shí),多核服務(wù)器運(yùn)行哈希算法的安全開銷和核數(shù)關(guān)系。
2.3.4 計(jì)算頻率與安全開銷的關(guān)系
考慮到CPU的計(jì)算頻率與安全開銷的關(guān)系,采用具有不同計(jì)算頻率單核對(duì)固定大小安全數(shù)據(jù)實(shí)現(xiàn)安全服務(wù)。實(shí)驗(yàn)效果如圖4所示,隨著計(jì)算頻率升高,算法的安全開銷呈下降趨勢(shì)。在保護(hù)相同大小數(shù)據(jù)時(shí),服務(wù)器實(shí)現(xiàn)機(jī)密性服務(wù)的安全開銷和計(jì)算頻率成反比,具體關(guān)系如式(8)所示:
(8)
式中F為CPU的最大計(jì)算頻率。圖4a所示為在對(duì)100 MB數(shù)據(jù)實(shí)現(xiàn)機(jī)密性服務(wù)時(shí),服務(wù)器運(yùn)行加密算法的安全開銷和計(jì)算頻率關(guān)系。同理,得出了完整性服務(wù)的安全開銷和計(jì)算頻率關(guān)系,如式(9)所示:
(9)
如圖4b所示為對(duì)100 MB數(shù)據(jù)實(shí)現(xiàn)完整性服務(wù)時(shí),服務(wù)器運(yùn)行完整性的開銷和安全數(shù)據(jù)的大小關(guān)系。
基于以上分析,可以得到實(shí)現(xiàn)安全服務(wù)的安全開銷和數(shù)據(jù)大小、CPU核數(shù)、計(jì)算頻率的關(guān)系。由于算法的安全等級(jí)是算法的固有屬性,跟CPU的核數(shù)和計(jì)算頻率無關(guān),本文在單核上以最大頻率運(yùn)行算法的執(zhí)行速度作為衡量算法的安全等級(jí)。對(duì)于給定一個(gè)服務(wù)器,已知它的CPU核數(shù)和計(jì)算頻率,通過式(10)和式(11)分別計(jì)算出機(jī)密性服務(wù)和完整性服務(wù)的開銷:
(10)
(11)
其中:D為需要保護(hù)的數(shù)據(jù)量;cs(1,1,2.2)表示單核以2.2 GHz運(yùn)行第i個(gè)加密算法的安全開銷;is(1,1,2.2)表示單核以2.2 GHz運(yùn)行第i個(gè)哈希算法的安全開銷。
假設(shè)執(zhí)行任務(wù)ti的服務(wù)器記為s(ti),則任務(wù)t1分配給服務(wù)器s1執(zhí)行,記為s(t1)=s1。圖1中工作流的部分任務(wù)執(zhí)行過程如圖5所示,任務(wù)t1在UE上執(zhí)行,t1執(zhí)行完成后對(duì)輸出數(shù)據(jù)實(shí)現(xiàn)機(jī)密性服務(wù)(圖5中E)和完整性服務(wù)(圖5中H)。任務(wù)t1將輸出數(shù)據(jù)傳輸給任務(wù)t2,任務(wù)t2接收數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行完整性驗(yàn)證(圖5中IV)和解密(圖5中DE)。由于任務(wù)t2和任務(wù)t5在同一個(gè)服務(wù)器執(zhí)行,它們之間不需要執(zhí)行安全服務(wù),即任務(wù)t5可直接使用任務(wù)t2的輸出數(shù)據(jù)。任務(wù)接收輸入數(shù)據(jù)的時(shí)間可以表示為
(12)
式中B為服務(wù)器之間的一個(gè)帶寬。如果兩個(gè)任務(wù)在同一個(gè)服務(wù)器上執(zhí)行,它們的傳輸時(shí)間為0,因此圖5中t2和t5的傳輸時(shí)間為0。
當(dāng)任務(wù)接收到輸入數(shù)據(jù),首先需要對(duì)數(shù)據(jù)進(jìn)行完整性驗(yàn)證,時(shí)間記為IV(ti),然后通過解密算法對(duì)數(shù)據(jù)解密,解密時(shí)間記為DE(ti)。當(dāng)輸入完成后,任務(wù)ti開始在服務(wù)器s(ti)上執(zhí)行,任務(wù)執(zhí)行時(shí)間
(13)
式中:w(ti)為任務(wù)ti工作量;ps(ti)為服務(wù)器s(ti)計(jì)算能力。此外,由于完整性服務(wù)可以確保無人修改或者篡改數(shù)據(jù)未被發(fā)現(xiàn),因此在執(zhí)行任務(wù)時(shí)被用于處理數(shù)據(jù)更改的威脅。最后,為了避免對(duì)任務(wù)ti的輸出數(shù)據(jù)進(jìn)行非法授權(quán)的攔截,對(duì)輸出數(shù)據(jù)進(jìn)行加密以應(yīng)對(duì)窺探攻擊,確保未經(jīng)授權(quán)的人員無法獲取數(shù)據(jù)。因此,任務(wù)ti在s(ti)處理時(shí)間
PT(ti,s(ti))=TT(ti)+IV(ti)+DE(ti)+
ET(ti,s(ti))+H(ti)+E(ti)。
(14)
在MEC環(huán)境中,工作流應(yīng)用程序執(zhí)行過程并非無風(fēng)險(xiǎn),需要對(duì)安全服務(wù)進(jìn)行定量評(píng)測(cè)得出整個(gè)工作流的風(fēng)險(xiǎn)率。在該風(fēng)險(xiǎn)分析模型中,假設(shè)風(fēng)險(xiǎn)概率是安全等級(jí)的函數(shù),任何固定時(shí)間間隔的風(fēng)險(xiǎn)率分布滿足Poisson概率分布。因此,任意第k個(gè)安全服務(wù)的風(fēng)險(xiǎn)概率可以用指數(shù)分布表示[25-26]為:
(15)
(16)
(17)
本文主要在移動(dòng)邊緣環(huán)境下實(shí)現(xiàn)一種調(diào)度算法,該算法在用戶設(shè)備能耗最小的同時(shí)滿足工作流截止期限和風(fēng)險(xiǎn)概率約束。根據(jù)資源集合、所有任務(wù)的安全級(jí)別、任務(wù)資源映射、用戶設(shè)備的能耗、總執(zhí)行時(shí)間、工作流風(fēng)險(xiǎn)和卸載決策定義調(diào)度算法為schedule=(M,SL,E,TET,P(T),x)。其中:M表示一個(gè)映射,由m(ti,s(ti))=(ti,s(ti),ST(ti),FT(ti))組成,映射元組的解釋如下:任務(wù)ti在s(ti)上執(zhí)行,在ST(ti)時(shí)刻開始執(zhí)行,并在FT(ti)時(shí)刻完成;SL={sli|i=0,1,…,n-1}表示每個(gè)任務(wù)的安全等級(jí);工作流的風(fēng)險(xiǎn)率P(T)通過式(17)計(jì)算得到;x={x0,x1,…,xn}是整個(gè)工作流的卸載決策集合,xi=1表示任務(wù)ti在用戶設(shè)備上執(zhí)行,xi=0表示任務(wù)ti不在用戶設(shè)備上執(zhí)行。移動(dòng)設(shè)備的能耗和工作流的總執(zhí)行時(shí)間計(jì)算如下:
(18)
TET=max(ET(ti)|ti∈T)。
(19)
此外,(FT(ti)-ST(ti))×E0是任務(wù)ti在移動(dòng)設(shè)備執(zhí)行的能耗,E0為移動(dòng)設(shè)備單位時(shí)間的能耗。根據(jù)之前的定義,問題可描述為:找出一個(gè)調(diào)度算法使得E最小,并且TET不超過截止期限,P(W)滿足工作流的風(fēng)險(xiǎn)率約束,具體如下:
minE;
(20)
s.t.
TET≤Td,
(21)
P(W)≤θ。
(22)
工作流調(diào)度問題是一個(gè)NP難問題,因此本文提出一種基于PSO能耗和SEA算法得到問題的最優(yōu)解解集。在粒子群算法中,許多粒子被放置在某個(gè)問題的搜索空間中,以一定速度在搜索空間探索[27]。每個(gè)粒子由3個(gè)D維矢量組成,這3個(gè)矢量分別為當(dāng)前位置xi、歷史最佳位置pi和速度vi。當(dāng)前位置xi表示優(yōu)化問題的候選解,如果當(dāng)前位置好于歷史最佳位置,將現(xiàn)有位置保存在pi向量中。在群體中所有粒子經(jīng)歷過的最好位置的索引號(hào)用向量pg表示,它的適應(yīng)度記為gbest。此外,個(gè)體目前最佳適應(yīng)度的值保存到參數(shù)pbesti中。在粒子群優(yōu)化過程中,算法將繼續(xù)迭代,直到滿足停止條件:通常是達(dá)到最大迭代次數(shù)或者一個(gè)預(yù)定義的適應(yīng)度值。在每次迭代中,粒子的速度和位置基于式(23)和式(24)更新:
vi←w×vi+φ1×rand1(pi-xi)+
φ2×rand2(pg-xi),
(23)
xi←xi+vi。
(24)
其中:加速常數(shù)φ1和φ2表示每個(gè)粒子推向pi和pg位置的統(tǒng)計(jì)加速項(xiàng)的權(quán)重大小,這兩個(gè)加速度常數(shù)被認(rèn)為是一個(gè)單一的加速度常數(shù)φ=φ1+φ2>4,一般情況下φ1和φ2不一定非要相等[28]。rand1和rand2是在[0,1]范圍內(nèi)均勻分布的隨機(jī)數(shù)。慣性權(quán)重w使粒子保持運(yùn)動(dòng)的慣性,使其有擴(kuò)展搜索空間的趨勢(shì),有能力探索新的區(qū)域。此外種群的大小通常在20~50之間,粒子的維度和它們?cè)试S移動(dòng)的范圍,這些值完全取決于問題的性質(zhì)以及它如何模擬以適應(yīng)PSO,粒子的維度和范圍將在3.1節(jié)中描述。SEA算法的偽代碼如算法1所示,下面將詳細(xì)介紹它們的相關(guān)實(shí)現(xiàn)。
算法1基于PSO的SEA算法。
BEGIN
01.N←粒子的大小,D←粒子的維度;
02.gbest←0,pg←0;
03.for i= 0 to N//遍歷所有的粒子
04.初始化xi和vi;
05. Letpi=xi,pbesti=fitness(xi)
06.end for
07.while iterate//最大的迭代次數(shù)
08. for i=1 to N
09.根據(jù)工作流的調(diào)度算法和條件限制計(jì)算每個(gè)粒子的適應(yīng)度;
10.更新pbesti,pi;
11.end for
12.選擇到目前為止所有粒子的最佳適應(yīng)度值的粒子,將其索引賦給變量g;
13. for i=1 to N
14.根據(jù)式(23)式(24)更新vi,xi;
15.保持粒子在搜索空間內(nèi),以防它超出其邊界
16.end for
17.Iterate++//迭代次數(shù)加1
18.end while
END
要定義問題的編碼,需要了解粒子的表示方式和維度。SEA算法的目標(biāo)是在滿足期限和風(fēng)險(xiǎn)率約束的同時(shí)最小化移動(dòng)設(shè)備的能耗,為每個(gè)任務(wù)選擇適當(dāng)?shù)姆?wù)器和安全等級(jí)。為了求解式(20),設(shè)計(jì)了以下編碼策略:
(25)
s.t.
s(ti)∈S,i=0,1,…,m-1;
(26)
(27)
其中Γ(·)的能耗函數(shù)與執(zhí)行任務(wù)的服務(wù)器、任務(wù)安全等級(jí)有關(guān)。此外,SLl,l∈{is,cs}是一組安全服務(wù)的等級(jí),其中包括0,如機(jī)密性服務(wù)包括6個(gè)等級(jí)(如表1),SLl={1.0,0.85,0.53,0.56,0.32,0}。
粒子的個(gè)數(shù)等于函數(shù)Γ(·)中的參數(shù)數(shù)量,即D=3×n。如圖1所示,工作流有8個(gè)任務(wù),每3個(gè)粒子屬于一個(gè)任務(wù),因此粒子個(gè)數(shù)是24。粒子的值可以在相應(yīng)的搜索空間中變化,每個(gè)任務(wù)的第一個(gè)粒子的值表示該任務(wù)運(yùn)行的服務(wù)器;第二個(gè)粒子的值是任務(wù)的機(jī)密性的安全等級(jí);第三個(gè)粒子的值是任務(wù)的完整性的安全等級(jí),如任務(wù)t1編碼為(0,0.36,0.3),表示任務(wù)t1在服務(wù)器s0上執(zhí)行,任務(wù)的機(jī)密性和完整性的安全等級(jí)分別為0.36和0.3。
工作流調(diào)度的偽代碼如算法2所示。初始化服務(wù)器S、安全等級(jí)SL和映射M為空,能耗E、執(zhí)行時(shí)間TET和風(fēng)險(xiǎn)率P(T)為0,然后根據(jù)粒子的位置構(gòu)建調(diào)度。至此,開始遍歷位置中每個(gè)坐標(biāo)并更新S,SL和M,首先確定任務(wù)、服務(wù)器和安全等級(jí)對(duì)應(yīng)的粒子位置和對(duì)應(yīng)值,這是通過使用前面描述的編碼策略得到的,即粒子的索引3i,3i+1,3i+2對(duì)應(yīng)任務(wù)ti,它們的值pos[3i],pos[3i+1],pos[3i+2]分別對(duì)應(yīng)執(zhí)行任務(wù)的服務(wù)器、機(jī)密性安全等級(jí)和完整性安全等級(jí);然后計(jì)算任務(wù)的開始時(shí)間ST(ti)的值。任務(wù)開始時(shí)間ST(ti)主要有兩種場(chǎng)景:①任務(wù)沒有前驅(qū)任務(wù)節(jié)點(diǎn),則立即執(zhí)行;②任務(wù)有一個(gè)或者多個(gè)前驅(qū)任務(wù)節(jié)點(diǎn),等待所有前驅(qū)任務(wù)節(jié)點(diǎn)完成才開始執(zhí)行。
如果服務(wù)器被使用,則FT(ti)的值根據(jù)任務(wù)開始時(shí)間和整個(gè)任務(wù)處理時(shí)間得出。任務(wù)的處理時(shí)間PT(ti,s(ti))由數(shù)據(jù)接收時(shí)間、輸入數(shù)據(jù)解密時(shí)間、執(zhí)行時(shí)間和安全開銷組成。FT(ti)是ST(ti)和PT(ti)總和。
算法2工作流調(diào)度算法。
Begin
01.R=M=SL=?,E=TET=P(W)=0;
02.if T≠?
03.for ti∈T do
04.if pred(ti)=? then
05.ST((ti)=0;
06.else
07.ST(ti)=max{FT((tj)|(tj∈pred((ti)}
08.end if
09.if s(ti)=s(ti-1)// 任務(wù)ti和任務(wù)ti-1在同一臺(tái)服務(wù)器上執(zhí)行
10.Ii-1,i=0// 任務(wù)ti-1傳輸?shù)饺蝿?wù)ti-1數(shù)據(jù)量為0
11.根據(jù)式(14)計(jì)算執(zhí)行時(shí)間PT(ti,s(ti))
12.FT(ti)=ST(ti)+PT(ti,s(ti))
13.if s(ti)=s0
14.xi=1
15.end if
16.根據(jù)式(14)計(jì)算執(zhí)行時(shí)間PT(ti,s(ti))
17.FT(ti)=ST(ti)+PT(ti,s(ti))
18.end if
19.集合M添加m(ti,s(ti),ST(ti),FT(ti)),SL添加sli
20.end for
21.根據(jù)式(17)計(jì)算P(W)
22.根據(jù)式(18)計(jì)算E
23.根據(jù)式(19)計(jì)算TET
24.記錄schedule=(M,SL,E,TET,P(W),x)
END
針對(duì)約束條件,采用文獻(xiàn)[29]中的3種可行解方法優(yōu)先性準(zhǔn)則:①根據(jù)適應(yīng)度函數(shù),在兩個(gè)可行解之間尋找最優(yōu)解;②可行解比不可行解更好;③在兩個(gè)不可行解之間,優(yōu)先考慮違約之和較小的解。本文將約束條件式(21)和(22)轉(zhuǎn)化為約束數(shù)的總和,具體計(jì)算如下:
f(xi)=max(0,TET-TD)+
max(0,P(T)-θ)。
(28)
速度和位置可能導(dǎo)致粒子超出可行區(qū)域的邊界,因此必須修改PSO算法以使粒子在約束內(nèi)搜索最優(yōu)解。這樣做的方式可能會(huì)對(duì)算法的性能產(chǎn)生很大的影響,因?yàn)樗鼤?huì)影響粒子在搜索空間中移動(dòng)的方式,當(dāng)最優(yōu)決策變量值位于或接近邊界時(shí),這一點(diǎn)尤為重要。因此,當(dāng)一個(gè)決策變量超出其邊界時(shí)需要做兩件事:①取其相應(yīng)邊界的值(要么是下邊界,要么是上邊界);②其速度乘以-1,以便在相反的方向上搜索[30]。
SEA算法在每次PSO迭代中通過更新粒子的位置和速度獲得新的適應(yīng)度。種群的數(shù)量N和粒子的大小D決定了更新粒子位置和速度所需的計(jì)算次數(shù),根據(jù)粒子定義可知粒子的大小D=3×n。粒子通過遍歷所有的任務(wù)計(jì)算適應(yīng)度,則適應(yīng)度函數(shù)的時(shí)間復(fù)雜度為Ο(n)?;谝陨戏治?,SEA的每次迭代的總體復(fù)雜度為Ο(3·n2·N)。
首先通過仿真實(shí)驗(yàn)對(duì)SEA算法的性能進(jìn)行評(píng)估,主要從能耗、安全服務(wù)和任務(wù)數(shù)量3個(gè)方面考慮。在仿真實(shí)驗(yàn)中,采用隨機(jī)生成的方式產(chǎn)生工作流,其中任務(wù)的工作量大小在[1,10]隨機(jī)產(chǎn)生;每個(gè)任務(wù)的輸出數(shù)據(jù)大小服從[1,10]均勻分布(單位:MB);隨機(jī)選擇3個(gè)服務(wù)器。用戶設(shè)備的計(jì)算能力、計(jì)算功率、數(shù)據(jù)的發(fā)送功率、數(shù)據(jù)的接收功率和帶寬以及MEC服務(wù)器配置如表3所示。利用面部表情識(shí)別流程作為實(shí)例驗(yàn)證了算法的可用性,實(shí)驗(yàn)使用的移動(dòng)設(shè)備為榮耀8(4核2.3 GHz),服務(wù)器選擇三臺(tái)聯(lián)想服務(wù)器RD450(8核2.1 GHz)。
表3 用戶設(shè)備和MEC服務(wù)器性能參數(shù)
在本節(jié)中仿真下面的算法:
(1)LOCAL:該算法中工作流中任務(wù)都在用戶設(shè)備執(zhí)行。
(2)Max_Level:該算法將每個(gè)任務(wù)的所有安全等級(jí)設(shè)置為1.0,因此工作流的風(fēng)險(xiǎn)率始終為0。
(3)Min_Level:該算法中所有任務(wù)都不實(shí)現(xiàn)安全服務(wù),即工作流的風(fēng)險(xiǎn)率始終為1.0。
(4)SEA:本文所提算法是在滿足截止時(shí)間和風(fēng)險(xiǎn)概率約束的情況下最小化移動(dòng)設(shè)備的能耗。
在這組實(shí)驗(yàn)中,通過改變風(fēng)險(xiǎn)率大小,研究風(fēng)險(xiǎn)系數(shù)對(duì)4種算法性能的影響。風(fēng)險(xiǎn)率從0.1變化到1.0,步長(zhǎng)為0.1。任務(wù)數(shù)量分別取10、50和100;種群數(shù)量和迭代次數(shù)取值50和1 000。4種算法的能耗的仿真結(jié)果如圖6所示??偟膩碚f,LOCAL算法的能耗最高,Min_Level算法的性能最好,SEA算法和Max_Level算法能耗適中,前者優(yōu)于后者。Max_Level和Min_Level算法的曲線表明能耗與風(fēng)險(xiǎn)率無關(guān),因?yàn)閮煞N算法都使用了固定的安全服務(wù)。對(duì)于SEA和LOCAL算法來說,開始時(shí)能耗下降很快,當(dāng)風(fēng)險(xiǎn)率等于或大于0.5時(shí),能耗下降緩慢。這是因?yàn)轱L(fēng)險(xiǎn)概率函數(shù)是指數(shù)函數(shù),當(dāng)工作流的風(fēng)險(xiǎn)率較低時(shí),每個(gè)任務(wù)都要求較低的風(fēng)險(xiǎn)率,這就需要較高的安全服務(wù),從而導(dǎo)致能耗較高。由于LOCAL算法在用戶設(shè)備執(zhí)行,能耗比其他算法要高,SEA算法的能耗在Max_Level算法和Min_Level算法之間變化。因此,用戶可以實(shí)現(xiàn)工作流執(zhí)行的能耗安全權(quán)衡,以保證工作流的執(zhí)行,保護(hù)自己的隱私。
本節(jié)考慮SEA算法的兩個(gè)安全服務(wù)對(duì)安全工作流的性能影響。縮寫integ_only和confi_only分別表示完整性服務(wù)和機(jī)密性服務(wù),integ_only表示應(yīng)用只實(shí)現(xiàn)了任務(wù)的完整性服務(wù);confi_only表示應(yīng)用只實(shí)現(xiàn)了任務(wù)的安全性服務(wù)。如圖7所示為風(fēng)險(xiǎn)率對(duì)這兩種安全服務(wù)的能耗影響。對(duì)于完整性服務(wù)和機(jī)密性服務(wù),它們的安全開銷取決于要保護(hù)的數(shù)據(jù)的大小,因此其能耗隨著風(fēng)險(xiǎn)率的升高而降低。此外,由于機(jī)密性服務(wù)比完整性服務(wù)執(zhí)行慢,在相同的風(fēng)險(xiǎn)率下,confi_only的能耗高于integ_only。
如2.5節(jié)所述,風(fēng)險(xiǎn)率與風(fēng)險(xiǎn)系數(shù)高度相關(guān)。例如,如果第l個(gè)安全6服務(wù)的風(fēng)險(xiǎn)系數(shù)λl=0,則其風(fēng)險(xiǎn)概率為0,因?yàn)樗粫?huì)遭受相應(yīng)的攻擊,所以任務(wù)不需要實(shí)現(xiàn)第l個(gè)安全服務(wù)。本節(jié)將重點(diǎn)討論SEA算法的風(fēng)險(xiǎn)系數(shù)的性能影響,實(shí)驗(yàn)結(jié)果如圖8所示,工作流的風(fēng)險(xiǎn)系數(shù)從0.3~3.0。從圖8可以看出,integ_only較優(yōu)于confi_only,原因已經(jīng)在4.2節(jié)中解釋了,這里不再贅述;從圖8中還可以看出,當(dāng)風(fēng)險(xiǎn)系數(shù)高于2.0時(shí),兩種算法的能耗曲線變得平緩,這是因?yàn)轱L(fēng)險(xiǎn)數(shù)據(jù)在式(15)小范圍內(nèi)變化時(shí),風(fēng)險(xiǎn)率會(huì)發(fā)生顯著變化,能耗亦會(huì)以相同的速度變化??傊?,不同的風(fēng)險(xiǎn)系數(shù)對(duì)能耗產(chǎn)生不同的影響。
本節(jié)考慮MEC服務(wù)器數(shù)量變化對(duì)SEA算法的影響,工作流的數(shù)量分別取10、50和100,3個(gè)工作流記為SEA_10、SEA_50和SEA_100,風(fēng)險(xiǎn)率和風(fēng)險(xiǎn)系數(shù)分別為0.3和1.5,其中MEC服務(wù)器的數(shù)量變化范圍為[0,9]。實(shí)驗(yàn)結(jié)果如圖9所示,服務(wù)器數(shù)量越多,移動(dòng)設(shè)備的能耗越低,當(dāng)服務(wù)器的數(shù)量達(dá)到5時(shí),能耗曲線變得平緩,這是因?yàn)榉?wù)器受工作流的結(jié)構(gòu)限制,當(dāng)服務(wù)器的數(shù)量大于工作流的并發(fā)量時(shí)導(dǎo)致部分服務(wù)器空閑。因此在進(jìn)行調(diào)度算法時(shí),需要選擇適量的服務(wù)器。
本節(jié)采用面部表情識(shí)別流程作為實(shí)例驗(yàn)證所提算法的可用性。算法的能耗是指手機(jī)運(yùn)行面部表情識(shí)別流程消耗的電量,單位:mAh。面部表情服務(wù)流程由8個(gè)任務(wù)組成:輸入視頻、人臉檢測(cè)、臉部特征檢測(cè)、臉部標(biāo)記、臉部特征提取、面部動(dòng)作單元識(shí)別、表情識(shí)別、輸出類別[31]。這8個(gè)任務(wù)可以組織成一個(gè)帶有數(shù)據(jù)依賴的工作流,工作流中每個(gè)任務(wù)可以在本地執(zhí)行或者卸載到服務(wù)器上執(zhí)行。其中任務(wù)1和任務(wù)8分別是工作流開始任務(wù)和結(jié)束任務(wù),這兩個(gè)任務(wù)必須在本地執(zhí)行。實(shí)現(xiàn)了4.1節(jié)的能耗對(duì)比、4.2節(jié)的安全服務(wù)對(duì)比和4.3節(jié)的風(fēng)險(xiǎn)系數(shù)的實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明了SEA算法的可用性,實(shí)驗(yàn)效果如圖10所示。
本文提出一種在MEC環(huán)境中面向安全和能耗感知的工作流調(diào)度算法。該算法在PSO算法的基礎(chǔ)上融合了工作調(diào)度問題,目標(biāo)是在滿足工作流的截止時(shí)間和風(fēng)險(xiǎn)率兩個(gè)約束條件下,最小化移動(dòng)設(shè)備的能耗。此外,還提出一種新的工作流編碼策略,解決了多維約束優(yōu)化問題。通過仿真實(shí)驗(yàn)和實(shí)例對(duì)算法進(jìn)行評(píng)估,驗(yàn)證了算法的有效性和實(shí)用性。
本文還有需要改進(jìn)的地方,如在調(diào)度過程中均假設(shè)任務(wù)的執(zhí)行都是成功情況,沒有考慮任務(wù)失敗的情況。因此,調(diào)度過程中的任務(wù)容錯(cuò)問題將是未來的研究工作之一。
計(jì)算機(jī)集成制造系統(tǒng)2020年7期