??? 摘 要:綜述了Web服務(wù)組合的起源,、概念和特點,,介紹了Web服務(wù)組合的目標(biāo)和方式,提出了服務(wù)組合的正確性驗證及Web組合的性能分析,、評價及其優(yōu)化,。
??? 關(guān)鍵詞:Web服務(wù)組合,;SOC;服務(wù)質(zhì)量,;性能分析
?
??? 20世紀(jì)90年代末,,隨著分布式對象技術(shù)和XML技術(shù)的發(fā)展,出現(xiàn)了Web服務(wù)(Web services)技術(shù),,基于Web服務(wù)的分布式計算模式正在成為技術(shù)發(fā)展的趨勢,。Web服務(wù)技術(shù)吸收了分布式計算、Grid計算和XML等各種技術(shù)的優(yōu)點,,通過采用WSDL,,UDDI和SOAP等基于XML的標(biāo)準(zhǔn)和協(xié)議,解決了異構(gòu)分布式計算以及代碼與數(shù)據(jù)重用等問題,,具有高度的互操作性,、跨平臺性和松耦合的特點,,引起了世界范圍內(nèi)學(xué)術(shù)界和工業(yè)界的極大興趣。
??? 然而單個Web服務(wù)提供的功能有限,,只有通過對已有的單個Web服務(wù)進(jìn)行組合,,其潛力才能真正發(fā)揮出來,。
1 Web服務(wù)組合的起源
??? 作為信息領(lǐng)域的核心問題,,如何實現(xiàn)靈活地集成企業(yè)業(yè)務(wù)經(jīng)歷了從EDI到EAI的發(fā)展歷程。傳統(tǒng)的EDI(Electronic Data Interchange)試圖通過VAN(Value Added Networks)連接企業(yè)和他們的客戶,、供應(yīng)商以及合作伙伴,。作為企業(yè)業(yè)務(wù)集成領(lǐng)域的先驅(qū),EDI建立專有系統(tǒng),,實現(xiàn)企業(yè)和特定伙伴之間點對點的業(yè)務(wù)連接,。但是,這種傳統(tǒng)的EDI是一種費用高昂,、靈活性差和耗時的解決方案,。
??? 在20世紀(jì)90年代提出了EAI(Enterprise Application Integration)。EAI主要目的是集成企業(yè)內(nèi)部分散的系統(tǒng)[1],。盡管EAI滿足了許多企業(yè)的一些內(nèi)部應(yīng)用集成需求,,但是EDI和EAI都沒有實現(xiàn)對涵蓋整個價值鏈的業(yè)務(wù)流程支持,其交互方式也各不相同,,相關(guān)集成技術(shù)亦隨著應(yīng)用的不同而不盡相同,。因此,迫切需要一種新的技術(shù)以靈活的和標(biāo)準(zhǔn)化的方式實現(xiàn)企業(yè)業(yè)務(wù)集成,。
??? 隨著分布式對象技術(shù)和XML技術(shù)的發(fā)展,,出現(xiàn)了Web服務(wù)技術(shù)。Web服務(wù)是指那些由URI來標(biāo)識的應(yīng)用組件,,其接口和綁定信息可以通過XML定義,、描述和查找;同時,,Web服務(wù)通過基于Internet協(xié)議的XML消息,,可與其他軟件、應(yīng)用直接交互[2],。換言之,,Web服務(wù)就是可以通過標(biāo)準(zhǔn)的Internet協(xié)議訪問的應(yīng)用組件,它不依賴于特定的硬件,、操作系統(tǒng)和編程環(huán)境,。
??? 由于Web服務(wù)提供了一種一致化編程模型,從而在企業(yè)內(nèi)外都可以利用通用的信息基礎(chǔ)設(shè)施以一種通用的方法進(jìn)行業(yè)務(wù)集成,。
??? 面向服務(wù)的計算(SOC)的核心理念是在交互的軟件成分之間,,構(gòu)建松耦合的協(xié)同軟件體系,。SOC以Web服務(wù)作為基本組成成分,并采用了一系列標(biāo)準(zhǔn)化的協(xié)議進(jìn)行交互,。面向服務(wù)的體系結(jié)構(gòu)解決了如何描述和組織服務(wù)的問題,,以便服務(wù)可以被動態(tài)地、自動地發(fā)現(xiàn)和使用,。而Web服務(wù)組合作為以Web服務(wù)為基礎(chǔ)的信息基礎(chǔ)設(shè)施和企業(yè)業(yè)務(wù)應(yīng)用集成之間的橋梁,,將服務(wù)模塊組合起來成為完整的應(yīng)用。
2? Web服務(wù)組合的概念和特點
??? 近年來,,隨著Web服務(wù)組合研究的展開,,不同的研究人員對Web服務(wù)組合的概念有著不同的認(rèn)識。以下幾個具有代表性的定義從不同的角度對Web服務(wù)組合進(jìn)行了描述,。
??? IBM公司的定義[3]:Web服務(wù)組合是支持業(yè)務(wù)流程邏輯的一組Web服務(wù),,其本身既可以是最終的應(yīng)用,也可以是新的Web服務(wù),,組合是通過確定不同Web服務(wù)的執(zhí)行順序和Web服務(wù)之間的復(fù)雜交互來實現(xiàn),。
??? 斯坦福大學(xué)SWIG小組的定義[4]:Web服務(wù)組合就是研究如何通過組合自治的Web服務(wù)而獲得新的功能的問題,通過組合有助于減少新應(yīng)用的開發(fā)時間和費用,。
??? HPBPM室的定義[5]:Web服務(wù)組合實際上是服務(wù)提供者將己有的Web服務(wù)作為新的服務(wù)的構(gòu)筑模塊重用,,并且在總體上實現(xiàn)對各個模塊的增值。這種增值體現(xiàn)在新的服務(wù)滿足特定需求的能力,,以及可以提供更高的可用性和QoS保障,。
??? 佐治亞大學(xué)計算機(jī)系的定義[6]:Web服務(wù)組合主要研究用于服務(wù)組合的方法論、建模的服務(wù)和功能的抽象方式,。
??? 從上述定義可以看出:Web服務(wù)的價值在于服務(wù)重用,,重用的目的是使服務(wù)增值。Web服務(wù)組合是各個小粒度的Web服務(wù)相互之間通信和協(xié)作來實現(xiàn)大粒度的服務(wù)功能,;通過有效地聯(lián)合各種不同功能的Web服務(wù),,組合服務(wù)開發(fā)者可以解決更為復(fù)雜的問題,達(dá)到服務(wù)增值的目的,。
??? Web服務(wù)組合具有以下一些特點:
??? (1)? 層次性和可擴(kuò)展性
??? Web服務(wù)的組合通過重用并組裝已有的Web服務(wù)來生成一個更大粒度的服務(wù),,使得組合的Web服務(wù)具有層次性和可擴(kuò)展性,。
??? (2)? 動態(tài)與自適應(yīng)性
??? Web服務(wù)組合是一個動態(tài)、自適應(yīng)的過程,,它在標(biāo)準(zhǔn)協(xié)議的基礎(chǔ)上,,根據(jù)客戶的需求,,對封裝特定功能的現(xiàn)有服務(wù)進(jìn)行動態(tài)地發(fā)現(xiàn),、組裝和管理,。
??? (3)? 提高了組合與交易過程的自動化程度
??? Web服務(wù)組合通過動態(tài)的語義分析與服務(wù)的自動化匹配,,減少了不必要的人工干預(yù),,易于實現(xiàn)動態(tài)電子商務(wù)交易過程的自動化,。
??? (4)? 提高軟件生產(chǎn)率
??? 通過重用已有的服務(wù),,并自動化地生成新的服務(wù)或系統(tǒng),,極大提高了軟件的生產(chǎn)效率,。
3? Web服務(wù)組合的目標(biāo)和方式
??? Web服務(wù)組合的根本目的是為了提高軟件的生產(chǎn)力,。工業(yè)界傾向于通過提高軟件的可重用程度以及軟件的自動化生成水平來解決軟件生產(chǎn)率,、可靠性以及可維護(hù)性等困擾軟件發(fā)展的根本性問題,。
??? 在軟件重用方式上,也從緊耦合的過程調(diào)用發(fā)展到對象繼承等方式,,并且向著Web服務(wù)組合的松耦合方式發(fā)展,;在開發(fā)方式上,,也從最初的基于代碼的開發(fā)發(fā)展到基于組件的開發(fā),并且向著基于軟件工廠的自動化軟件生成方向迅速發(fā)展[7] ,。
??? Web服務(wù)組合的方式一般可抽象地劃分為靜態(tài)組合與動態(tài)組合兩種,,其主要區(qū)別在于選擇被組合服務(wù)的時機(jī)不同,,前者是由設(shè)計人員在設(shè)計時確定,,而后者則是在運行時選擇。
??? 根據(jù)不同標(biāo)準(zhǔn)和具體需求,,人們從不同的角度對Web服務(wù)的組合方式進(jìn)一步分類,。參考文獻(xiàn)[8]將服務(wù)組合分為: (1)主動式/反應(yīng)式的服務(wù)組合(proactive/ reactive composition) ,;(2)強(qiáng)制式/選擇式的服務(wù)組合(mandatory/optional composition) 兩大類,。其中主動式服務(wù)組合是一種離線式或預(yù)編譯的穩(wěn)定的組合方式,;而反應(yīng)式服務(wù)組合則是一種在線的、動態(tài)的和實時的組合方式,,它根據(jù)子服務(wù)的帶寬,、性能以及執(zhí)行代價等實時參數(shù)對所組合的服務(wù)進(jìn)行優(yōu)化,并將最終結(jié)果提供給用戶,。強(qiáng)制式服務(wù)組合要求所有的子服務(wù)必須按照特定的規(guī)則正確執(zhí)行并產(chǎn)生滿意的結(jié)果,,才能保證組合服務(wù)的正確執(zhí)行,;而選擇式服務(wù)組合則無須這些規(guī)則,且子服務(wù)間的依賴性較弱,。
??? 參考文獻(xiàn)[9]在這種服務(wù)組合分類的基礎(chǔ)上,,建立了一種融合上述多種組合方式優(yōu)點、基于案例庫推理的Web服務(wù)組合模型,。
??? 參考文獻(xiàn)[10]根據(jù)服務(wù)組合過程中的執(zhí)行策略,,認(rèn)為服務(wù)組合包括:服務(wù)請求描述、服務(wù)匹配與兼容性檢測,、服務(wù)組合描述以及服務(wù)執(zhí)行監(jiān)測與協(xié)調(diào)4個核心要素,。并將服務(wù)組合分為3種類型:(1)探索式組合(exploration composition);(2)半固定式組合(semifixed composition),;(3)固定式組合(fixed composition) ,。其中,,探索式組合是在客戶動態(tài)業(yè)務(wù)需求與協(xié)作的組合服務(wù)基礎(chǔ)上,利用服務(wù)代理來比較預(yù)期的服務(wù)是否與已發(fā)布的服務(wù)特征相匹配,,并根據(jù)組合計劃,,選擇滿足相應(yīng)等級、可訪問性,、成本以及性能判據(jù)的服務(wù)進(jìn)行動態(tài)組合,。固定式組合是將固定的或是預(yù)定義的服務(wù)進(jìn)行組合,,而且組合服務(wù)的結(jié)構(gòu)與子服務(wù)間的綁定均通過靜態(tài)方式來實現(xiàn),,并將向組合服務(wù)發(fā)送的請求轉(zhuǎn)化成子請求且映射到子服務(wù)來執(zhí)行,。半固定式組合則是介于兩者之間,它在服務(wù)組合時根據(jù)組合服務(wù)規(guī)范或計劃來匹配并獲取一些候選的服務(wù),,在運行時動態(tài)地實現(xiàn)服務(wù)的綁定,。
??? 無論采用何種分類方式,,Web服務(wù)組合均可分為計劃、定義以及實施三個階段[11],。其中,,計劃階段的主要任務(wù)是發(fā)現(xiàn)候選的服務(wù),,檢測這些候選服務(wù)組合的可行性與一致性,并最終提供多個服務(wù)組合的候選計劃,;定義階段是在候選的服務(wù)組合計劃中選擇且生成實際的組合結(jié)構(gòu),,并提供一個服務(wù)組合的語義規(guī)范,;實施階段則是根據(jù)服務(wù)組合規(guī)范來綁定組合的服務(wù),,使這些服務(wù)能夠協(xié)同地工作以及滿足相應(yīng)的任務(wù)或功能,。
4? Web服務(wù)組合的正確性驗證
??? 組合Web服務(wù)的正確性是對其進(jìn)行性能分析和優(yōu)化的前提,。由于基于SOA 的Web服務(wù)體系結(jié)構(gòu)提供了一個與技術(shù)無關(guān)的服務(wù)集成方式,因此,,對服務(wù)組合的驗證不再是一個純技術(shù)的問題,。如何保持語義信息,并在服務(wù)組合與業(yè)務(wù)流程配置之前對服務(wù)的狀態(tài)變遷,、行為以及標(biāo)識進(jìn)行驗證,,以確保服務(wù)組合執(zhí)行結(jié)果的正確性,,成為服務(wù)組合驗證面臨的主要挑戰(zhàn)?,F(xiàn)有的研究工作主要集中在兩個層次上:操作層和服務(wù)層[12],。
??? 在操作層上,,要保證實現(xiàn)交互的Web服務(wù)之間的接口以及輸入與輸出消息的匹配;在服務(wù)層上,,要保證組合服務(wù)的執(zhí)行順序必須有效,即需要提供服務(wù)的可達(dá)性,、活性以及死鎖解除能力的有效性驗證,。為此,,參考文獻(xiàn)[13]提供了一個模型化的服務(wù)組合驗證模式,,它的設(shè)計規(guī)范用UML來建模,,采用自行開發(fā)的LTSA 模型驗證工具,、消息序列圖MSC(message sequence charts)以及有限狀態(tài)過程FSP(finitestate process)來標(biāo)記描述和推理并發(fā)的程序,,并對一個由BPEL4WS規(guī)范描述的服務(wù)組合過程進(jìn)行標(biāo)記與驗證,,從而通過提供早期的設(shè)計驗證,,可以較容易地理解組合過程中存在的與期望過程的差別,、限制以及不希望的執(zhí)行路徑。參考文獻(xiàn)[14]提出了一個基于Petri 網(wǎng)的服務(wù)組合模型,,并通過對10 種組合元模型的代數(shù)與Petri 網(wǎng)的形式化語義分析,,建立起了從代數(shù)結(jié)構(gòu)模型向Petri 網(wǎng)的關(guān)系映射,從而為服務(wù)組合過程中的屬性驗證以及一致性的檢測和優(yōu)化提供了一種形式化的工具,。而參考文獻(xiàn)[15]則提出了一種服務(wù)組合圖模型(SCG) ,,并將其用于服務(wù)自動化組合過程中的高層可視化建模與驗證,同時利用SCG語法與元模型對服務(wù)組合進(jìn)行控制,,從而降低了由于組合失配以及結(jié)構(gòu)沖突而造成的系統(tǒng)故障,。此外,利用一階邏輯或時序邏輯或代數(shù)演算等形式化方式,,對服務(wù)組合進(jìn)行模擬和驗證,,為服務(wù)組合的精確語義描述與驗證提供了基礎(chǔ)。參考文獻(xiàn)[16]指出,,已有的規(guī)范如BPML,、BPEL、WSCI和OWL-S只停留在描述層,,沒有提供任何機(jī)制或工具支持自身的正確性校驗,。指出CPN的屬性在校驗Web服務(wù)組合中的特定含義:(1) Reachability(可達(dá)性):校驗組合模型是否能達(dá)到期望的結(jié)果;(2) Boundedness(有界性):控制庫所中托肯數(shù)>1,,指示服務(wù)過程錯誤,;消息庫所中托肯的數(shù)量可以檢查是否緩沖溢出;(3) Dead Transtions(死變遷):存在死變遷說明有不能實現(xiàn)的活動,;(4) Dead Marking(死標(biāo)識):由狀態(tài)空間分析工具報告的死標(biāo)識數(shù)量若超過期望值,,說明有設(shè)計錯誤;(5) Liveness(活性):可用于矯正前面的錯誤,;(6) Home:CPN總是可以返回到的一個標(biāo)識;(7) Fairness(公平性):單個變遷觸發(fā)的頻率,,可以用于顯示活動執(zhí)行次數(shù),,發(fā)現(xiàn)死活動;(8) Conservation(守恒性):系統(tǒng)中的托肯永遠(yuǎn)不會消失,。文獻(xiàn)提出采用彩色Petri網(wǎng)校驗Web服務(wù)組合的方法,,通過轉(zhuǎn)換規(guī)則可以將服務(wù)組合規(guī)范轉(zhuǎn)變成CP網(wǎng),進(jìn)而利用CP網(wǎng)工具分析其性能,調(diào)查例如死鎖或活鎖的行為特性,。
??? 除了必須保證操作層和服務(wù)層的正確性外,,組合Web服務(wù)還必須保證在業(yè)務(wù)邏輯層上的正確性。在業(yè)務(wù)邏輯層上,,要保證組合Web服務(wù)的執(zhí)行符合業(yè)務(wù)規(guī)則的要求,,執(zhí)行結(jié)果能夠滿足業(yè)務(wù)需求。本文從軟件工程的角度出發(fā),,通過實例研究了采用仿真模擬和數(shù)學(xué)分析兩種途徑在業(yè)務(wù)邏輯層上驗證組合Web服務(wù)正確性的一般方法,。
5? Web服務(wù)組合的性能分析、評價及其優(yōu)化
??? 除了正確性之外,,服務(wù)質(zhì)量也是用戶關(guān)心的重要問題,,服務(wù)質(zhì)量是組合Web服務(wù)性能的體現(xiàn)。服務(wù)質(zhì)量不僅包括與時間相關(guān)的性能,,如響應(yīng)時間,、等待時間等,還包括與時間無關(guān)的性能,,如可靠性,、成本等。相對Web服務(wù)組合,,其他方面的研究,,例如性能分析、評價以及性能優(yōu)化的研究則較少,。隨著對Web服務(wù)組合研究的深入,,已有一些性能分析、評價以及性能優(yōu)化的研究成果,。
??? 參考文獻(xiàn)[17]提出可以基于UML進(jìn)行組合部件性能分析的方法,。文獻(xiàn)首先定義了一個簡單的語言用于描述部件的組合,然后提出了將其映射到實時(UML RT-UML)的方法,,指出可以通過基于UML的方法和算法完成性能分析,,而沒有具體介紹基于UML的性能分析算法。
??? 參考文獻(xiàn)[18]提出一種成本驅(qū)動的基于遺傳算法的Web服務(wù)組合優(yōu)化方法,,該方法采用UML’s activity diagram描述服務(wù)組合,,將測試和仿真相結(jié)合完成針對時間特性的性能分析。該方法的基本思想是首先在輕負(fù)載下根據(jù)Web服務(wù)和其流程自動生成測試代碼和仿真模型,,然后仿真重負(fù)載下的情況,。該方法的優(yōu)點是:基于測試結(jié)果的仿真有助于提高仿真的精度,即測試記錄下低負(fù)載時的Web處理行為(響應(yīng)時間和吞吐量),,根據(jù)這些數(shù)據(jù)設(shè)置仿真參數(shù),。該方法實現(xiàn)了一個稱為sPAC的性能分析工具,。該工具有圖形化描述、自動生成測試代碼和自動生成仿真模型的特點,。
??? 在以Internet為代表的分布,、異構(gòu)、多自治域的廣域網(wǎng)環(huán)境下,,高度動態(tài)的網(wǎng)絡(luò)環(huán)境和多變的用戶需求要求Web服務(wù)組合跳出靜態(tài)組合模式,,能夠及時調(diào)整和優(yōu)化組合Web服務(wù),提供高效率,、低成本的動態(tài)服務(wù)組合,。服務(wù)質(zhì)量是組合Web服務(wù)的生命。隨著Web服務(wù)的發(fā)展,,各行業(yè)和領(lǐng)域內(nèi)服務(wù)功能不斷細(xì)分和深化,,用戶對服務(wù)質(zhì)量也有更高更多的需求。能夠提供保證服務(wù)質(zhì)量的組合Web服務(wù)是Web服務(wù)組合走向?qū)嵱玫谋匾獥l件,。本文以分布,、異構(gòu)、多自治域的廣域網(wǎng)環(huán)境為背景,,通過對于現(xiàn)有Web服務(wù)組合理論和技術(shù)研究的綜述,,對它在進(jìn)一步的理論和技術(shù)研究方面進(jìn)行了探討。目前,,Web服務(wù)組合理論和技術(shù)研究還處于起步階段,,有待廣大研究者在理論深度、技術(shù)多樣性上做更為廣泛,、深入的研究探討,。
參考文獻(xiàn)
[1]?Hanson J E, N andi P , umaranK S. Conversation support for business process integration. In : Proc. of the 6th Inte. Enterprise Distributed Object Computing Conf. (EDOC'02), Lausanne, Switzerland, Sept 2002 : 65-74.
[2]?Christensen E,Curbera F, Meredith G,et at. Weerawarana, World Wide Web Consortium, Web Service Description Language (WSDL1.1), Available at http: / Iwww.w3.org/TR / wsdl, March 2001.
[3]?Leymann F, Roller D, Schmidt M T . Web services and business process management. IBM System Journal, Vo1.41, No.2, 2002, 41(2):198-211.
[4]?Ponnekanti S R,? Fox A , SWORD: a developer toolkit for Web service composition. In: Proc. of the 11th Inte. World Wide Web Conf. (WWW2002) [C], Hawaii, USA, May 2002.
[5]?Piccinelli G. Service provision and composition in virtual business communities. Technical Report HPL-1999-84, Hewlett-Packard, http://www.hpl.hp. comltechreports/1999/HPL-1999-84.htm1, 1999.
[6]?Zhang R Y, WANG J. ONTOS: ontology-driven Web service composition Platform.? http://webster.es.uga.edu/~ruoyan/ONTOS.htm.
[7]?Griss M L. Architecting for largescale systematic component reuse [A], In: Proc. of the Inte. Conf. on Soft. Engi.[C], 1999: 615 - 616.
[8]?Dynamic service composition: state of the art and research directions [R], Department of Computer Science and Electrical Engineering, University of Maryland, USA, http://w w w.cs.umbc.edu/~dchakr1/ papers/techreportcomposition.ps, 2001.
[9] Web service composition with case based reasoning [A]. In: proc. of the 14th Aust ralian Databased Conference[C], http://crpit.com/confpapers/ RPITV17Limthanmaphon.pdf, 2003.
[10]?Web component: a substrate for web service reuse and composition [J]. Lecture Notes in Computer Science, 2002, 2348: 21 - 36.
[11]?Web component: a substrate for web service reuse and composition [J]. Lecture Notes in Computer Science, 2002, 2348: 21 - 36.
[12]?Zhihong R, Jiannong C , Chan A T S , et al. Composition and automation of grid services[C]. A PPT2003 Lect ure Notes of Computer Science[C], 2003, 2834: 352 - 362.
[13]?Foster H , Uchitel S, Magee J . Model2based verification of web service composition [A]. In: proc. of the 18th IEEE Inte. Conf. on Automated Software Engineering[C]. 2003:152 - 161.
[14]?Hamadi R , Benatallah B . A Petrinet-based model for web service composition [A]. In: Proc. of the 14th Australasian Database Conf. on Database Technologies [C], 2003: 191 - 200.
[15]?Dynamic service composition: state of the art and research directions [R]. Department of Computer Science and Electrical Engineering, University of Maryland, USA, http://w w w.cs.umbc.edu/~dchakr1/ papers/techreportcomposition.ps, 2001.
[16]?YanPing Yang, QingPing Tan, Yong Xiao. Verifying Web services composition based on hierarchical colored petri nets. ACM IHIS’05 [C]. Bremen, Germany. November 4. 2005.
[17] Grassi V, Mirandola R. Towards automatic compositional performance analysis of component-based systems. ACM WOSP 04,? Redwood City, CA January 14-16, 2004.
[18] Cao L, Li ML, Cao J. Cost-driven web service selection using genetic algorithm. In: Proc. WINE 2005, Hong Kong, China, dec. 2005.