付 佳,李?lèi)?ài)萍,段利國(guó),王舒漫,趙菊敏
(太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,太原 030000)
E-mail:tyutli@163.com
隨著新一代信息技術(shù)的發(fā)展,物聯(lián)網(wǎng)成為繼計(jì)算機(jī)、互聯(lián)網(wǎng)之后信息發(fā)展的又一次變革[1],面對(duì)物聯(lián)網(wǎng)設(shè)備及環(huán)境都具有動(dòng)態(tài)變化的特點(diǎn)[2],在將物聯(lián)網(wǎng)設(shè)備根據(jù)其功能封裝為服務(wù)的同時(shí)[3,4],如何實(shí)現(xiàn)物聯(lián)網(wǎng)服務(wù)的動(dòng)態(tài)組合以達(dá)到最優(yōu)配置是目前的主要挑戰(zhàn)之一.
2018物聯(lián)網(wǎng)白皮書(shū)指出,據(jù)IDC數(shù)據(jù)統(tǒng)計(jì),到2022年,將有超過(guò)500億的終端與設(shè)備聯(lián)網(wǎng),形成一個(gè)高密度的物聯(lián)網(wǎng)環(huán)境[5].這將導(dǎo)致服務(wù)組合中候選服務(wù)的數(shù)量規(guī)模宏大.可能存在許多功能相同或相似但非功能屬性QoS(Quality of Service)不同的原子服務(wù),所以物聯(lián)網(wǎng)環(huán)境下QoS的優(yōu)選仍是主要的研究方向之一.
當(dāng)前,大量文獻(xiàn)研究主要基于QoS進(jìn)行物聯(lián)網(wǎng)環(huán)境下的服務(wù)選擇[6],然而,在實(shí)際應(yīng)用中,物聯(lián)網(wǎng)服務(wù)的提供受到周?chē)h(huán)境的影響和相關(guān)的制約因素較多[7],導(dǎo)致物聯(lián)網(wǎng)服務(wù)是高度資源受限服務(wù),隨著服務(wù)類(lèi)別及數(shù)量的增加,選擇服務(wù)時(shí)候選服務(wù)所消耗的能量也使得服務(wù)組合中的總體能耗隨之增長(zhǎng).因此,不同于傳統(tǒng)的web服務(wù)組合只進(jìn)行最大化整體的QoS單元的策略,物聯(lián)網(wǎng)環(huán)境下的服務(wù)組合,旨在能量消耗和QoS之間尋找平衡以延長(zhǎng)網(wǎng)絡(luò)生存周期.
針對(duì)上述挑戰(zhàn),國(guó)內(nèi)外已經(jīng)有許多研究人員對(duì)物聯(lián)網(wǎng)環(huán)境下的服務(wù)組合問(wèn)題進(jìn)行了深入研究.Zhou等人[8,9]提出了一種基于能源效率的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)智能對(duì)象服務(wù)發(fā)現(xiàn)鏈和選擇方法,該方法采用多目標(biāo)遺傳算法優(yōu)化,根據(jù)傳感器設(shè)備的功能和適合度對(duì)傳感器設(shè)備進(jìn)行分類(lèi),選擇最優(yōu)的組合服務(wù).在此基礎(chǔ)上,Sun等人[10]提出利用遺傳算法、蟻群算法、粒子群算法對(duì)服務(wù)類(lèi)鏈進(jìn)行實(shí)例化.以上方法對(duì)網(wǎng)絡(luò)的能耗進(jìn)行了詳細(xì)的考量,但是沒(méi)有考慮到在實(shí)際應(yīng)用中,由于規(guī)模宏大的原子服務(wù)數(shù)量,可能存在很多功能相同或者功能相似的服務(wù),所以物聯(lián)網(wǎng)的服務(wù)組合方法必須同時(shí)考慮組合對(duì)象的QoS屬性值和能源效率.
楊臻等人[11]提出一種基于功能價(jià)值擇優(yōu)的信息服務(wù)組合方法,結(jié)合物聯(lián)網(wǎng)中數(shù)據(jù)信息與地理位置密切相關(guān)、設(shè)備資源受限的特點(diǎn),將剩余能量考慮為QoS的一個(gè)屬性值,建立物聯(lián)網(wǎng)QoS模型,進(jìn)行加權(quán)計(jì)算.但是,該方法沒(méi)有單獨(dú)評(píng)估在動(dòng)態(tài)配置過(guò)程中能量消耗對(duì)海量服務(wù)的影響.
Tong等人[12]將服務(wù)能量引入到無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的工作流管理中,給出了服務(wù)能量的計(jì)算方法,并對(duì)傳統(tǒng)的QoS模型進(jìn)行了擴(kuò)展,采用QoS約束分解的方法,通過(guò)同時(shí)考慮QoS和服務(wù)能量,將工作流的全局質(zhì)量約束分解為原子服務(wù)的一組局部質(zhì)量約束,實(shí)現(xiàn)高效的本地服務(wù)選擇,提出了一種動(dòng)態(tài)工作流適應(yīng)機(jī)制.Alsaryrah等人[13]將物聯(lián)網(wǎng)服務(wù)組合的QoS水平與消耗能量之間的最優(yōu)平衡問(wèn)題簡(jiǎn)化為雙目標(biāo)最短路徑優(yōu)化問(wèn)題,并采用脈沖算法求解.上述研究只簡(jiǎn)單考慮了QoS水平和能源效率問(wèn)題,沒(méi)有針對(duì)物聯(lián)網(wǎng)服務(wù)組合動(dòng)態(tài)配置中不同時(shí)期對(duì)QoS和能源的不同要求進(jìn)行衡量.
綜上所述,針對(duì)物聯(lián)網(wǎng)環(huán)境下原子服務(wù)數(shù)量宏大、設(shè)備資源高度受限、服務(wù)組合過(guò)程動(dòng)態(tài)變化的特點(diǎn),本文提出一種改進(jìn)的自適應(yīng)方法,綜合考慮QoS屬性值和能源效率,解決服務(wù)組合過(guò)程中對(duì)能耗的不同要求,構(gòu)建不同的目標(biāo)函數(shù);結(jié)合物聯(lián)網(wǎng)數(shù)據(jù)信息與地理位置密切相關(guān)的特點(diǎn),利用位置信息進(jìn)行局部?jī)?yōu)選,縮小候選服務(wù)范圍;最后利用多目標(biāo)優(yōu)化算法在可行服務(wù)組合空間中全局尋優(yōu).
定義1.(物聯(lián)網(wǎng)服務(wù)):一個(gè)服務(wù)Service是一個(gè)三元組Service=(name,desc,QoS),其中:
1.name是服務(wù)名稱(chēng);
2.desc是服務(wù)的語(yǔ)義描述;
3.QoS={ QoS1,QoS2…QoSn}是服務(wù)的服務(wù)質(zhì)量屬性值集合.
定義2.(QoS):服務(wù)質(zhì)量QoS是反映服務(wù)性能的指標(biāo),是服務(wù)組合的主要依據(jù),2003年,W3C提出了13種可能通用的QoS指標(biāo)[14],截止到目前為止,已經(jīng)提出的QoS屬性指標(biāo)有30余種[15].結(jié)合物聯(lián)網(wǎng)的特點(diǎn),物聯(lián)網(wǎng)環(huán)境下的服務(wù)需要考慮每個(gè)設(shè)備的動(dòng)態(tài)變化特性以及應(yīng)用環(huán)境,所以本文取用代價(jià)、響應(yīng)時(shí)間、可用性和可靠性四種屬性構(gòu)建QoS模型:QoSij(S)=(Cost,Response Time,Availability,Reli-ability).
1.Cost表示響應(yīng)一次服務(wù),用戶(hù)需支付的成本花銷(xiāo),由服務(wù)提供商給出;
2.Response Time表示用戶(hù)請(qǐng)求服務(wù)和用戶(hù)接收回答的時(shí)間間隔;
3.Availability表示一個(gè)服務(wù)在一定時(shí)間間隔可訪(fǎng)問(wèn)的時(shí)間比;
4.Reliability表示一個(gè)服務(wù)正確和穩(wěn)定的行為能力.
定義3.(服務(wù)請(qǐng)求):服務(wù)請(qǐng)求r是一個(gè)三元組r=(I,O,w),其中:
1.I是用戶(hù)能夠提供的輸入集合;
2.O是用戶(hù)期待得到的輸出集合;
3.0 在本研究中,整個(gè)網(wǎng)絡(luò)生存周期內(nèi)主要考慮的能量消耗包括環(huán)境感知、發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的消耗,本研究中的能量消耗計(jì)算模型采用一階無(wú)線(xiàn)電模型[16],表1表示的是該模型中各參數(shù)的含義. 表1 能量模型參數(shù)含義Table 1 Meaning of the energy model parameters PSense表示的是節(jié)點(diǎn)環(huán)境感知消耗的能量,PTx和PRx表示的是將一個(gè)b比特的數(shù)據(jù)包傳送r的距離的過(guò)程中的傳輸耗能和接收耗能,公式如下所示: PSense=α1b (1) PTx=(β1+β2rn)b (2) PRx=γ1b (3) n為傳播衰減系數(shù),數(shù)值范圍為2-5,n的取值取決于設(shè)備的環(huán)境,假設(shè)在當(dāng)前物聯(lián)網(wǎng)環(huán)境下,設(shè)備在傳輸數(shù)據(jù)包時(shí)是無(wú)障礙物的,將n的值定為2[17].根據(jù)一階無(wú)線(xiàn)電模型,一些典型的參數(shù)值如下公式所示: α1=60*10-9J/bit (4) β1=45*10-9J/bit (5) β2=10*10-12J/bit/m2 (6) γ1=135*10-9J/bit (7) 在基于用戶(hù)需求QoS限制的物聯(lián)網(wǎng)服務(wù)組合應(yīng)主要從局部、全局兩個(gè)階段上考慮.局部上,引入語(yǔ)義網(wǎng)的相關(guān)技術(shù),實(shí)現(xiàn)QoS的語(yǔ)義化;全局上,計(jì)算QoS的屬性值對(duì)服務(wù)進(jìn)行選擇. 物聯(lián)網(wǎng)服務(wù)組合過(guò)程主要包括用戶(hù)需求分析、服務(wù)發(fā)現(xiàn)、服務(wù)匹配、服務(wù)選擇和服務(wù)組合五個(gè)階段,處理流程如圖1所示. 通過(guò)需求分解單元將用戶(hù)需求分解為功能性需求和非功能性需求,根據(jù)功能性需求,利用語(yǔ)義相似度計(jì)算方法,從服務(wù)庫(kù)中選取符合要求的候選服務(wù)集[18,19]. 圖1 用戶(hù)請(qǐng)求處理框圖Fig.1 Processing block diagram of the user′s request 為提高求解效率,利用每個(gè)服務(wù)的位置信息,采用局部?jī)?yōu)選方法,從候選服務(wù)集中,為每個(gè)抽象服務(wù)優(yōu)選出優(yōu)秀候選服務(wù)集. 針對(duì)優(yōu)秀候選服務(wù)集中服務(wù)的選擇,在全局最優(yōu)策略中,不能只考慮當(dāng)前功能環(huán)節(jié)的QoS和能量計(jì)算,需要考慮各個(gè)功能節(jié)點(diǎn)聚合后的QoS和能量評(píng)價(jià)值,使組合方案整體的QoS和能量滿(mǎn)足限制條件.而具體的QoS的聚合計(jì)算和服務(wù)組合的執(zhí)行路徑有著密不可分的關(guān)系,一般存在四種基本結(jié)構(gòu),即并行結(jié)構(gòu)、串行結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)[19],如圖2所示. 圖2 四種基本工作流Fig.2 Four basic workflows 根據(jù)不同QoS屬性的特點(diǎn),給出每個(gè)QoS屬性在四種工作流下的不同計(jì)算方法,如表2所示. 表2 四種工作流下QoS計(jì)算方法Table 2 QoS calculation methods under four kinds of workflows 4.3.1 服務(wù)組合目標(biāo)函數(shù) 1.最小化目標(biāo) f1=Econsumption (8) EConsumption=PSense+PTx+PRx (9) 2.最大化目標(biāo) f2=QoS′i,j(S) (10) (11) 3.目標(biāo)函數(shù) (12) 其中,w1和 w2都是權(quán)重因子,均為大于0的正數(shù),分別表示f1和f2所占比的重要程度,并且w1+ w2=1.在本文中,考慮網(wǎng)絡(luò)負(fù)載均衡的要求,采用如下自適應(yīng)方法自動(dòng)地調(diào)節(jié)權(quán)重因子的值: (13) 其中,Emax為節(jié)點(diǎn)能量的最大值,Eres為節(jié)點(diǎn)能量的剩余值,Eave為節(jié)點(diǎn)能量的平均值,0≤k1,k2≤1為常數(shù). 4.3.2 服務(wù)組合優(yōu)化方法 啟發(fā)式算法可以有效解決大規(guī)模問(wèn)題及NP難問(wèn)題[20],因此在本文研究過(guò)程中引入了遺傳算法和粒子群算法,其步驟如下: 1.遺傳算法 遺傳算法是一種通過(guò)模擬自然進(jìn)化過(guò)程尋找優(yōu)化解的算法,它包括:選擇、交叉、變異.在本文中,基因表示為物聯(lián)網(wǎng)服務(wù),染色體表示為不同的服務(wù)組合,染色體的適應(yīng)度反映了群體個(gè)體的適應(yīng)度. 算法1.遺傳算法 輸入: MAX:最大迭代次數(shù) N:初始種群中染色體的數(shù)量 輸出:一條相對(duì)優(yōu)化的染色體序列 1.while 迭代次數(shù) 2.for i 3.采用輪盤(pán)賭選擇法選擇種群中的染色體,將其加入到下一代種群中,其中具有較大適應(yīng)度函數(shù)值的個(gè)體更容易被選擇 4.采用單點(diǎn)交叉方法進(jìn)化下一代染色體 5.采用變異算子進(jìn)化下一代染色體 6.end for 7.基于適應(yīng)度將子代插入到新種群中 8.end while 算法1是遺傳算法的具體流程,在產(chǎn)生初始種群后,計(jì)算其適應(yīng)度函數(shù)值,采用輪盤(pán)賭選擇法選擇當(dāng)前種群中的染色體,并加入到下一代種群中(第3行).采用單點(diǎn)交叉和變異(第4、5行),對(duì)種群中的染色體進(jìn)化處理.基于適應(yīng)度函數(shù)值將進(jìn)化后的個(gè)體插入到下一代種群中(第7行).不斷重復(fù)上述過(guò)程,直到找到最優(yōu)染色體或達(dá)到最大迭代次數(shù)時(shí)循環(huán)終止. 2.粒子群算法 粒子群算法是受鳥(niǎo)群覓食行為啟發(fā)的一種優(yōu)化算法,粒子代表的是不同的服務(wù)組合.在該算法的每一次迭代中,粒子通過(guò)兩個(gè)極值進(jìn)行更新:1)粒子局部最優(yōu)解pBest;2)目前整個(gè)種群中全局最優(yōu)解gBest.粒子更新d維速度和位置時(shí)遵循如下公式: popv(i,:)=w*popv(i,:)+c1*rand*(pBest(i,:)- (14) popx(i,:)=popx(i,:)+popv(i,:) (15) 其中,w叫慣性權(quán)重,c1、c2為學(xué)習(xí)因子popv(i,:)為粒子的當(dāng)前速度. 算法2.粒子群算法 輸入: MAXGEN:最大迭代次數(shù) M:初始種群中粒子的數(shù)量 輸出:一條相對(duì)優(yōu)化的粒子序列 1.for i 2.計(jì)算每個(gè)粒子的適應(yīng)度,并初始化個(gè)體最優(yōu)解pBest和整體最優(yōu)解gBest 3.end for 4.while 迭代次數(shù) 5.for i 6.利用公式(14)、公式(15)更新個(gè)體的位置和速度 7.計(jì)算目標(biāo)函數(shù)值 8.更新pBest和gBest 9.end for 10.找到最優(yōu)解粒子 11.end while 算法2是粒子群算法的具體流程,在產(chǎn)生初始種群后,計(jì)算每個(gè)粒子的適應(yīng)度,并對(duì)個(gè)體最優(yōu)解和整體最優(yōu)解進(jìn)行初始化(第2行).根據(jù)公式14和公式15更新粒子的速度和位置(第6行),計(jì)算目標(biāo)函數(shù)值并更新pBest和gBest.不斷重復(fù)上述過(guò)程直到達(dá)到最大迭代次數(shù)時(shí)循環(huán)終止. 實(shí)驗(yàn)?zāi)M500m×700m的網(wǎng)絡(luò)區(qū)域中的空氣污染環(huán)境感知,其中部署了PM2.5,PM10,CO,SO2,O3,NO2六個(gè)服務(wù)類(lèi)共1200個(gè)傳感器節(jié)點(diǎn),采用隨機(jī)分布方式,獲取每個(gè)節(jié)點(diǎn)的地理位置值,圖3表示的是PM2.5的節(jié)點(diǎn)部署位置. 假設(shè)每個(gè)節(jié)點(diǎn)上只封裝一個(gè)服務(wù).在本次實(shí)驗(yàn)中,我們?cè)O(shè)置每個(gè)節(jié)點(diǎn)的初始能量為0.01J,為求取某一地點(diǎn)的空氣污染程度,模擬工作流如圖4所示,實(shí)驗(yàn)采用Al-Masri E等人[21]提供的數(shù)據(jù)集,如圖5所示,設(shè)定每個(gè)節(jié)點(diǎn)的服務(wù)質(zhì)量屬性值,通過(guò)Matlab平臺(tái)來(lái)驗(yàn)證本文算法的可行性和有效性. 圖3 PM2.5節(jié)點(diǎn)部署情況Fig.3 PM2.5 node deployment 圖4 模擬工作流Fig.4 Simulation workflow 圖5 數(shù)據(jù)集Fig.5 Data set 1.網(wǎng)絡(luò)生命周期 網(wǎng)絡(luò)生命周期定義為從整個(gè)網(wǎng)絡(luò)開(kāi)始響應(yīng)用戶(hù)請(qǐng)求到任一用戶(hù)請(qǐng)求無(wú)法響應(yīng)為止.根據(jù)節(jié)點(diǎn)的最小剩余能量判斷網(wǎng)絡(luò)的生命周期,網(wǎng)絡(luò)中節(jié)點(diǎn)的最小剩余能量越充足,網(wǎng)絡(luò)生命周期越長(zhǎng). 2.剩余能量方差 根據(jù)整個(gè)網(wǎng)絡(luò)中節(jié)點(diǎn)的剩余能量方差大小,判斷網(wǎng)絡(luò)的負(fù)載均衡情況.方差值越小,說(shuō)明該網(wǎng)絡(luò)中節(jié)點(diǎn)的使用越平均. 首先,將本文提出的自適應(yīng)方法控制目標(biāo)函數(shù)的方法在遺傳算法和粒子群算法下與只考慮能耗的目標(biāo)函數(shù)和只考慮QoS屬性值的目標(biāo)函數(shù)的方法分別執(zhí)行30次后進(jìn)行比較,如圖6、圖7所示. 從圖6、圖7中可以看出,利用遺傳算法和粒子群算法進(jìn)行服務(wù)組合實(shí)例化時(shí),本文提出的方法QoS屬性值變化接近于只考慮QoS性能的目標(biāo)函數(shù)方法下屬性值的變化,能耗變化接近于只考慮能耗的目標(biāo)函數(shù)方法下能耗的變化.這說(shuō)明本文方法在保證低能耗的同時(shí),也能保證QoS屬性值的優(yōu)選. 圖6 本文方法與只考慮能耗的目標(biāo)函數(shù)方法分別執(zhí)行30次能量消耗的變化Fig.6 Energy consumption value for the method of this paper and the objective function method considering onlyenergy consumption when the algorithms are executed in 30 contiguous time slots 圖7 本文方法與只考慮QoS值的目標(biāo)函數(shù)方法分別執(zhí)行30次能量消耗的變化Fig.7 Energy consumption value for the method of this paper and the objective function method considering onlyQoS value when the algorithms are executed in 30 contiguous time slots 其次,將本文提出的自適應(yīng)控制目標(biāo)函數(shù)的方法在遺傳算法和粒子群算法下與固定目標(biāo)函數(shù)的方法進(jìn)行比較,如圖8所示. 圖8 本文方法與固定目標(biāo)函數(shù)的方法在整個(gè)網(wǎng)絡(luò)生命周期中剩余能量方差的變化Fig.8 Variance of the residual energy of the methods proposed in this study and the methods offixed objective functions throughout the network life cycle 從圖8(a)中可以看出,利用遺傳算法進(jìn)行服務(wù)組合實(shí)例化時(shí),在整個(gè)網(wǎng)絡(luò)生命周期中,固定目標(biāo)函數(shù)的方法可以執(zhí)行1352次服務(wù)請(qǐng)求,本文提出的自適應(yīng)控制目標(biāo)函數(shù)的方法可以執(zhí)行1491次服務(wù)請(qǐng)求.從圖8(b)中可以看出,利用粒子群算法進(jìn)行服務(wù)組合實(shí)例化時(shí),在整個(gè)網(wǎng)絡(luò)生命周期中,固定目標(biāo)函數(shù)的方法可以執(zhí)行1212次服務(wù)請(qǐng)求,本文提出的自適應(yīng)控制目標(biāo)函數(shù)的方法可以執(zhí)行1309次服務(wù)請(qǐng)求.在圖8中,本文的方法和固定目標(biāo)函數(shù)的方法方差變化基本一致,并且本文的方法的方差比固定目標(biāo)函數(shù)的方法的方差小.說(shuō)明改進(jìn)的算法能更好維持QoS和能耗的平衡,進(jìn)而延長(zhǎng)網(wǎng)絡(luò)生存周期. 再將本文與參考文獻(xiàn)[11]Yang等人提出的方法和參考文獻(xiàn)[13]Alsaryrah等人提出的方法進(jìn)行對(duì)比,如圖9所示. 圖9 本文方法與參考文獻(xiàn)[11,13]在整個(gè)網(wǎng)絡(luò)生命周期中剩余能量方差的變化Fig.9 Variance of the residual energy of the methodsproposed in this study and the method proposed inreferences[11,13] throughout the network life cycle 從圖9中可以看出,在整個(gè)網(wǎng)絡(luò)生命周期中,本文提出的自適應(yīng)控制目標(biāo)函數(shù)的方法可以執(zhí)行1491次服務(wù)請(qǐng)求,Yang等人的方法可以執(zhí)行1295次服務(wù)請(qǐng)求,Alsaryrah等人的方法可以執(zhí)行1346次服務(wù)請(qǐng)求.三種方法的方差變化基本一致,并且本文方法的方差小于其他兩種方法的方差,隨著服務(wù)請(qǐng)求次數(shù)的增加,本文方法的方差與其他兩種方法的方差差距逐漸明顯,說(shuō)明改進(jìn)的算法能更好的避免某一節(jié)點(diǎn)的過(guò)度使用,進(jìn)而延長(zhǎng)網(wǎng)絡(luò)生命周期. 物聯(lián)網(wǎng)環(huán)境下服務(wù)組合要求兼顧服務(wù)的時(shí)空約束條件、功能約束條件和能量約束條件,以及每個(gè)智能設(shè)備的地理位置、應(yīng)用環(huán)境、網(wǎng)絡(luò)延遲和剩余能量等因素,以確保網(wǎng)絡(luò)中的設(shè)備能量負(fù)載均衡.本文基于網(wǎng)絡(luò)生命周期不同階段對(duì)節(jié)點(diǎn)能耗的不同要求,提出一種自適應(yīng)方法來(lái)動(dòng)態(tài)地構(gòu)建目標(biāo)函數(shù),實(shí)驗(yàn)結(jié)果表明,本文的算法提供了QoS屬性值和能源效率更好的平衡,避免了單個(gè)節(jié)點(diǎn)的過(guò)度消耗,延長(zhǎng)了整個(gè)網(wǎng)絡(luò)生存周期.3.2 能量模型
4 物聯(lián)網(wǎng)服務(wù)組合流程
4.1 服務(wù)匹配
4.2 服務(wù)選擇
4.3 服務(wù)組合實(shí)例化
popx(i,:))+c2*rand*(gBest-popx(i,:))5 實(shí)驗(yàn)及仿真結(jié)果
5.1 實(shí)驗(yàn)仿真
5.2 性能參數(shù)
5.3 實(shí)驗(yàn)結(jié)果
6 總 結(jié)