張洋

摘 要:云計算環境促進了面向服務的分布式應用的發展和Web服務組合的高效實現。文章分析了云計算環境下Web服務組合模型以及工作過程,研究了Web服務組合優化的相關智能優化算法和基于Web服務順序知識的人工蜂群算法。
關鍵詞:云計算;Web服務組合;算法
1 云計算與Web服務組合
隨著信息時代大數據的崛起,企業信息化水平不斷提高,大型企業的計算能力出現過剩情況,在此基礎上產生了云計算。云計算所提供服務的本質是企業過剩的計算能力,其與各種服務軟件、存儲等構成的了云計算系統,云計算系統提供的大量服務對用戶而言具有隱私和抽象的特性。一般情況下使用云計算平臺將分散在網絡各處的計算節點連接起來進行管理,并根據用戶需求進行調度。從云計算平臺來看,分散的服務提供商提供的有限計算資源均放在云計算資源池中,放入資源池中的所有資源具有共享性,由平臺根據用戶的需求將各種有限的計算資源進行組合。
互聯網中擁有海量具有單一功能的Web服務,且很多Web服務具有相似性,Web服務組合是研究如何將具有單一功能的小粒度Web服務進行組合,從而滿足復雜的功能需求,達到服務增值的目的,減少基礎服務的重復開發,避免資源浪費。Web服務系統由服務提供、服務請求和服務代理3個角色構成,另外對于系統中的每一個具體服務又有注冊服務、綁定服務、調用服務3種行為。Web服務組合分為靜態和動態兩種組合方式,靜態服務組合由開發者根據需求確定組合服務的結構及執行順序,制定確定的Web服務組合方案;動態服務組合主要由準備階段、定義階段、執行階段3部分構成,準備階段將類似Web服務匯總成為備選服務集,定義階段對備選集中的服務進行各種語義化操作,執行階段根據用戶需求確定最符合的組合方案。
2 Web服務組合模型
2.1 Web服務組合模型
Web服務組合模型由4部分構成:服務請求者、服務供應者、服務組合管理器、服務注冊中心[1]。服務的提供者也就是服務的擁有者,提供者在提供一組Web服務的時候還應包含輸入輸出、前置條件、后置條件、服務描述等信息,其需要在服務注冊中心進行注冊,以便能夠更好地在服務資源池中找到該服務;服務請求者也就是Web服務的使用者,其將自己的需求進行一定的描述發送給服務組合管理器;服務組合管理器對用戶的請求進行處理之后將語義描述發送給服務注冊中心;服務注冊中心根據收到的描述在服務資源池中找到對應的Web服務,以服務集合的形式返回給服務組合管理器;服務組合管理器對收到的服務集合進行處理,確定最終的組合方案,向注冊中心發出請求綁定服務,執行以后將結果返回給用戶。服務注冊中心主要起到登記Web服務并為服務使用者提供服務調用的功能(見圖1)。
2.2 服務描述
服務使用者的服務請求在發送給服務組合管理器的時候會進行翻譯,使用專門的基于語義的Web服務描述語言(Web Services Description Language,WSDL)對服務請求描述進行翻譯,以便服務組合管理器生成服務組合方案。WSDL在進行服務描述時也有自己的局限性,服務的元數據和對服務的語義正規描述無法通過WSDL進行描述,于是產生了Web服務本體語言(Web Service Ontology Language,OWLS)、Web服務建模語義和WSDL語義標注精確地進行Web服務的語義描述[2]。為了獲得更加簡便的描述,經常將Web服務以元組的形式進行表示,使用元組的形式忽略了復雜的實現細節,使其更加容易實現。
2.3 服務匹配和合成
在進行Web服務組合之前首先需要進行候選服務的匹配工作,服務匹配主要是對服務元組進行兼容性檢查以及服務之間接口是否匹配。進行服務匹配操作的首要任務是要保證Web服務能夠滿足用戶的任務需求,在整個過程中,服務的檢索也是十分關鍵的。服務接口匹配工作主要是通過檢測輸入輸出、前置條件、后置條件等參數,從而判斷服務是否能夠進行連接組合。
3 智能優化算法
在解決服務組合問題的時候智能優化算法具有很大的優勢,在進行服務組合優選的時候被廣泛應用。
3.1 粒子群算法
根據大型鳥群覓食過程中能夠在改變飛行隊形、方向和速度的同時保持整個鳥群同步性的特性,Kennedy和Eberhart提出了粒子群優化算法(Particle Swarm Optimization,PSO)。該算法把空間中的每一個獨立的解當成一個粒子,每個粒子在空間范圍內進行探索的時候,會借鑒自己和其他粒子曾經發現的最優位置信息。在該算法中存在個體最優解和全體最優解,分別對應單個粒子發現的最優位置和整個群體發現的最優位置,每個粒子不斷根據個體最優解和群體最優解的情況進行當前解集的更新[3],以此產生其下一代群體。
3.2 差分進化算法
差分進化算法(Differential Evolution,DE)和粒子群算法都屬于隨機優化算法,也是通過模仿生物群體中的個體間的競爭與合作實現搜索的優化。但是該算法相比其他算法而言其具有記憶能力,能夠在進行實時跟蹤的同時動態調整搜索的策略,具有一定的自適應性和魯棒性。DE算法的種群是由很多個體構成的,每一個個體都是一個優化問題的可能解,算法利用群體內個體之間的距離信息和方向信息產生新的個體,從而實現種群的進化。該算法使用選擇、變異和交叉這3種進化算子對種群進行進化更新,DE算法的算子具有與其他算法不同的變異機制,其通過隨機選擇若干個體生成若干比例差分矢量,利用這些矢量擾動種群個體來實現變異。
3.3 人工蜂群算法
人工蜂群算法也是一種智能優化算法,其是根據工蜂尋找采集食物的“8”字形搖擺舞提升蜂群整體效率抽象而來的,與前兩種算法相比,該算法所需參數少,實現方便,在處理服務組合優化問題時具有很大的優勢。該算法的主要流程是:(1)使用隨機函數進行解的初始化從而實現種群的初始化。(2)工蜂中的引領蜂按照鄰域搜索公式對解的相鄰區域進行搜索,并計算機出適應度。(3)根據“貪婪法則”選擇出質量較好的蜜源。(4)計算該蜜源被跟隨蜂選中的概率。(5)跟隨蜂同樣按照鄰域搜索公式對相鄰區域進行搜索,并計算其適應度。(6)根據“貪婪法則”選擇出質量較好的蜜源。(7)偵查蜂判斷蜜源是否達到了舍棄條件,若達到則偵查蜂使用新的蜜源替換舍棄掉的蜜源。(8)記錄當前狀態下質量最好的蜜源(最優解)。(9)判斷當前最優解是否能夠滿足問題的要求,是則輸出最優解并結束迭代過程,否則跳轉到第二步繼續執行。endprint
4 基于服務順序知識的人工蜂群算法
在解決Web服務組合優化問題時,需要研究相鄰Web服務之間的關聯信息,進而得出Web服務順序知識模型。根據滿足需求問題的Web服務組合的子任務數及子任務下候選Web服務的數量來得到服務順序知識矩陣的行列規模。假設服務組合有n個子任務,每個子任務具有m個候選Web服務,在僅考慮相鄰子任務間服務順序知識的情況下,每個解(維度n)均具有n-1個服務順序,而記錄每一個服務順序則需要一個m×m的矩陣。在進行Web服務組合優化之前,首先對優化過程中的解進行挖掘得到有用的服務順序知識,使用挖掘出的知識指導求最優解迭代過程中的后續步驟。
基于服務順序的人工蜂群算法是將人工蜂群算法和服務順序知識模型進行有效結合的混合型智能優化算法。服務順序知識模型的引入會極大地提高人工蜂群算法的性能,其簡化過程為:(1)設置引領蜂和跟隨蜂的個數、最大迭代次數以及控制參數limit等關鍵參數。(2)隨機初始化蜂群,針對Web服務請求的問題對解的維度進行矩陣化。(3)應用已經存儲的由較優解構成的知識模型指導引領蜂和跟隨蜂的鄰域搜索,實現最優解的更新。(4)派出偵查蜂,對超出limit次,適應度仍未得到改善的解進行重新初始化。(5)將獲取的較優解的有用知識更新到服務順序知識矩陣中。(6)如果滿足服務需求的要求且達到最大迭代次數,則輸出最優解作為服務組合優選結果,否則回到(3)繼續進行迭代。
5 總結
隨著計算機技術的不斷發展,互聯網上Web服務數量呈爆炸性增長,云計算技術的成熟為Web服務組合效率的提高提供了有利的平臺,更加快速高效地從資源池中優選優質Web服務并加以組合,給用戶更高的服務質量體驗一直以來都是Web服務組合的研究熱點。
[參考文獻]
[1]唐崇.Web服務組合QoS優化問題綜述[J].信息技術與信息化,2015(4):223-225.
[2]王龍,張亮.基于擴展WSDL行為描述的Web服務組合[J].計算機工程,2014(1):88-92.
[3]李金忠,曾小薈,夏潔武,等.基于QoS的Web服務選擇方法研究新進展[J].計算機應用研究,2015(8):2245-2253.
Abstract:The cloud computing environment facilitates the development of service-oriented distributed applications and the efficient implementation of Web services. This paper analyzes the Web service composition model and the working process in the cloud computing environment, and studies the related intelligent optimization algorithm of Web service composition optimization and the artificial bee colony algorithm based on the Web service order knowledge.
Key words:cloud computing; Web service composition; algorithmendprint