??? 摘 要:綜述了Web服務組合的起源、概念和特點,介紹了Web服務組合的目標和方式,提出了服務組合的正確性驗證及Web組合的性能分析、評價及其優化。
??? 關鍵詞:Web服務組合;SOC;服務質量;性能分析
?
??? 20世紀90年代末,隨著分布式對象技術和XML技術的發展,出現了Web服務(Web services)技術,基于Web服務的分布式計算模式正在成為技術發展的趨勢。Web服務技術吸收了分布式計算、Grid計算和XML等各種技術的優點,通過采用WSDL,UDDI和SOAP等基于XML的標準和協議,解決了異構分布式計算以及代碼與數據重用等問題,具有高度的互操作性、跨平臺性和松耦合的特點,引起了世界范圍內學術界和工業界的極大興趣。
??? 然而單個Web服務提供的功能有限,只有通過對已有的單個Web服務進行組合,其潛力才能真正發揮出來。
1 Web服務組合的起源
??? 作為信息領域的核心問題,如何實現靈活地集成企業業務經歷了從EDI到EAI的發展歷程。傳統的EDI(Electronic Data Interchange)試圖通過VAN(Value Added Networks)連接企業和他們的客戶、供應商以及合作伙伴。作為企業業務集成領域的先驅,EDI建立專有系統,實現企業和特定伙伴之間點對點的業務連接。但是,這種傳統的EDI是一種費用高昂、靈活性差和耗時的解決方案。
??? 在20世紀90年代提出了EAI(Enterprise Application Integration)。EAI主要目的是集成企業內部分散的系統[1]。盡管EAI滿足了許多企業的一些內部應用集成需求,但是EDI和EAI都沒有實現對涵蓋整個價值鏈的業務流程支持,其交互方式也各不相同,相關集成技術亦隨著應用的不同而不盡相同。因此,迫切需要一種新的技術以靈活的和標準化的方式實現企業業務集成。
??? 隨著分布式對象技術和XML技術的發展,出現了Web服務技術。Web服務是指那些由URI來標識的應用組件,其接口和綁定信息可以通過XML定義、描述和查找;同時,Web服務通過基于Internet協議的XML消息,可與其他軟件、應用直接交互[2]。換言之,Web服務就是可以通過標準的Internet協議訪問的應用組件,它不依賴于特定的硬件、操作系統和編程環境。
??? 由于Web服務提供了一種一致化編程模型,從而在企業內外都可以利用通用的信息基礎設施以一種通用的方法進行業務集成。
??? 面向服務的計算(SOC)的核心理念是在交互的軟件成分之間,構建松耦合的協同軟件體系。SOC以Web服務作為基本組成成分,并采用了一系列標準化的協議進行交互。面向服務的體系結構解決了如何描述和組織服務的問題,以便服務可以被動態地、自動地發現和使用。而Web服務組合作為以Web服務為基礎的信息基礎設施和企業業務應用集成之間的橋梁,將服務模塊組合起來成為完整的應用。
2? Web服務組合的概念和特點
??? 近年來,隨著Web服務組合研究的展開,不同的研究人員對Web服務組合的概念有著不同的認識。以下幾個具有代表性的定義從不同的角度對Web服務組合進行了描述。
??? IBM公司的定義[3]:Web服務組合是支持業務流程邏輯的一組Web服務,其本身既可以是最終的應用,也可以是新的Web服務,組合是通過確定不同Web服務的執行順序和Web服務之間的復雜交互來實現。
??? 斯坦福大學SWIG小組的定義[4]:Web服務組合就是研究如何通過組合自治的Web服務而獲得新的功能的問題,通過組合有助于減少新應用的開發時間和費用。
??? HPBPM室的定義[5]:Web服務組合實際上是服務提供者將己有的Web服務作為新的服務的構筑模塊重用,并且在總體上實現對各個模塊的增值。這種增值體現在新的服務滿足特定需求的能力,以及可以提供更高的可用性和QoS保障。
??? 佐治亞大學計算機系的定義[6]:Web服務組合主要研究用于服務組合的方法論、建模的服務和功能的抽象方式。
??? 從上述定義可以看出:Web服務的價值在于服務重用,重用的目的是使服務增值。Web服務組合是各個小粒度的Web服務相互之間通信和協作來實現大粒度的服務功能;通過有效地聯合各種不同功能的Web服務,組合服務開發者可以解決更為復雜的問題,達到服務增值的目的。
??? Web服務組合具有以下一些特點:
??? (1)? 層次性和可擴展性
??? Web服務的組合通過重用并組裝已有的Web服務來生成一個更大粒度的服務,使得組合的Web服務具有層次性和可擴展性。
??? (2)? 動態與自適應性
??? Web服務組合是一個動態、自適應的過程,它在標準協議的基礎上,根據客戶的需求,對封裝特定功能的現有服務進行動態地發現、組裝和管理。
??? (3)? 提高了組合與交易過程的自動化程度
??? Web服務組合通過動態的語義分析與服務的自動化匹配,減少了不必要的人工干預,易于實現動態電子商務交易過程的自動化。
??? (4)? 提高軟件生產率
??? 通過重用已有的服務,并自動化地生成新的服務或系統,極大提高了軟件的生產效率。
3? Web服務組合的目標和方式
??? Web服務組合的根本目的是為了提高軟件的生產力。工業界傾向于通過提高軟件的可重用程度以及軟件的自動化生成水平來解決軟件生產率、可靠性以及可維護性等困擾軟件發展的根本性問題。
??? 在軟件重用方式上,也從緊耦合的過程調用發展到對象繼承等方式,并且向著Web服務組合的松耦合方式發展;在開發方式上,也從最初的基于代碼的開發發展到基于組件的開發,并且向著基于軟件工廠的自動化軟件生成方向迅速發展[7] 。
??? Web服務組合的方式一般可抽象地劃分為靜態組合與動態組合兩種,其主要區別在于選擇被組合服務的時機不同,前者是由設計人員在設計時確定,而后者則是在運行時選擇。
??? 根據不同標準和具體需求,人們從不同的角度對Web服務的組合方式進一步分類。參考文獻[8]將服務組合分為: (1)主動式/反應式的服務組合(proactive/ reactive composition) ;(2)強制式/選擇式的服務組合(mandatory/optional composition) 兩大類。其中主動式服務組合是一種離線式或預編譯的穩定的組合方式;而反應式服務組合則是一種在線的、動態的和實時的組合方式,它根據子服務的帶寬、性能以及執行代價等實時參數對所組合的服務進行優化,并將最終結果提供給用戶。強制式服務組合要求所有的子服務必須按照特定的規則正確執行并產生滿意的結果,才能保證組合服務的正確執行;而選擇式服務組合則無須這些規則,且子服務間的依賴性較弱。
??? 參考文獻[9]在這種服務組合分類的基礎上,建立了一種融合上述多種組合方式優點、基于案例庫推理的Web服務組合模型。
??? 參考文獻[10]根據服務組合過程中的執行策略,認為服務組合包括:服務請求描述、服務匹配與兼容性檢測、服務組合描述以及服務執行監測與協調4個核心要素。并將服務組合分為3種類型:(1)探索式組合(exploration composition);(2)半固定式組合(semifixed composition);(3)固定式組合(fixed composition) 。其中,探索式組合是在客戶動態業務需求與協作的組合服務基礎上,利用服務代理來比較預期的服務是否與已發布的服務特征相匹配,并根據組合計劃,選擇滿足相應等級、可訪問性、成本以及性能判據的服務進行動態組合。固定式組合是將固定的或是預定義的服務進行組合,而且組合服務的結構與子服務間的綁定均通過靜態方式來實現,并將向組合服務發送的請求轉化成子請求且映射到子服務來執行。半固定式組合則是介于兩者之間,它在服務組合時根據組合服務規范或計劃來匹配并獲取一些候選的服務,在運行時動態地實現服務的綁定。
??? 無論采用何種分類方式,Web服務組合均可分為計劃、定義以及實施三個階段[11]。其中,計劃階段的主要任務是發現候選的服務,檢測這些候選服務組合的可行性與一致性,并最終提供多個服務組合的候選計劃;定義階段是在候選的服務組合計劃中選擇且生成實際的組合結構,并提供一個服務組合的語義規范;實施階段則是根據服務組合規范來綁定組合的服務,使這些服務能夠協同地工作以及滿足相應的任務或功能。
4? Web服務組合的正確性驗證
??? 組合Web服務的正確性是對其進行性能分析和優化的前提。由于基于SOA 的Web服務體系結構提供了一個與技術無關的服務集成方式,因此,對服務組合的驗證不再是一個純技術的問題。如何保持語義信息,并在服務組合與業務流程配置之前對服務的狀態變遷、行為以及標識進行驗證,以確保服務組合執行結果的正確性,成為服務組合驗證面臨的主要挑戰。現有的研究工作主要集中在兩個層次上:操作層和服務層[12]。
??? 在操作層上,要保證實現交互的Web服務之間的接口以及輸入與輸出消息的匹配;在服務層上,要保證組合服務的執行順序必須有效,即需要提供服務的可達性、活性以及死鎖解除能力的有效性驗證。為此,參考文獻[13]提供了一個模型化的服務組合驗證模式,它的設計規范用UML來建模,采用自行開發的LTSA 模型驗證工具、消息序列圖MSC(message sequence charts)以及有限狀態過程FSP(finitestate process)來標記描述和推理并發的程序,并對一個由BPEL4WS規范描述的服務組合過程進行標記與驗證,從而通過提供早期的設計驗證,可以較容易地理解組合過程中存在的與期望過程的差別、限制以及不希望的執行路徑。參考文獻[14]提出了一個基于Petri 網的服務組合模型,并通過對10 種組合元模型的代數與Petri 網的形式化語義分析,建立起了從代數結構模型向Petri 網的關系映射,從而為服務組合過程中的屬性驗證以及一致性的檢測和優化提供了一種形式化的工具。而參考文獻[15]則提出了一種服務組合圖模型(SCG) ,并將其用于服務自動化組合過程中的高層可視化建模與驗證,同時利用SCG語法與元模型對服務組合進行控制,從而降低了由于組合失配以及結構沖突而造成的系統故障。此外,利用一階邏輯或時序邏輯或代數演算等形式化方式,對服務組合進行模擬和驗證,為服務組合的精確語義描述與驗證提供了基礎。參考文獻[16]指出,已有的規范如BPML、BPEL、WSCI和OWL-S只停留在描述層,沒有提供任何機制或工具支持自身的正確性校驗。指出CPN的屬性在校驗Web服務組合中的特定含義:(1) Reachability(可達性):校驗組合模型是否能達到期望的結果;(2) Boundedness(有界性):控制庫所中托肯數>1,指示服務過程錯誤;消息庫所中托肯的數量可以檢查是否緩沖溢出;(3) Dead Transtions(死變遷):存在死變遷說明有不能實現的活動;(4) Dead Marking(死標識):由狀態空間分析工具報告的死標識數量若超過期望值,說明有設計錯誤;(5) Liveness(活性):可用于矯正前面的錯誤;(6) Home:CPN總是可以返回到的一個標識;(7) Fairness(公平性):單個變遷觸發的頻率,可以用于顯示活動執行次數,發現死活動;(8) Conservation(守恒性):系統中的托肯永遠不會消失。文獻提出采用彩色Petri網校驗Web服務組合的方法,通過轉換規則可以將服務組合規范轉變成CP網,進而利用CP網工具分析其性能,調查例如死鎖或活鎖的行為特性。
??? 除了必須保證操作層和服務層的正確性外,組合Web服務還必須保證在業務邏輯層上的正確性。在業務邏輯層上,要保證組合Web服務的執行符合業務規則的要求,執行結果能夠滿足業務需求。本文從軟件工程的角度出發,通過實例研究了采用仿真模擬和數學分析兩種途徑在業務邏輯層上驗證組合Web服務正確性的一般方法。
5? Web服務組合的性能分析、評價及其優化
??? 除了正確性之外,服務質量也是用戶關心的重要問題,服務質量是組合Web服務性能的體現。服務質量不僅包括與時間相關的性能,如響應時間、等待時間等,還包括與時間無關的性能,如可靠性、成本等。相對Web服務組合,其他方面的研究,例如性能分析、評價以及性能優化的研究則較少。隨著對Web服務組合研究的深入,已有一些性能分析、評價以及性能優化的研究成果。
??? 參考文獻[17]提出可以基于UML進行組合部件性能分析的方法。文獻首先定義了一個簡單的語言用于描述部件的組合,然后提出了將其映射到實時(UML RT-UML)的方法,指出可以通過基于UML的方法和算法完成性能分析,而沒有具體介紹基于UML的性能分析算法。
??? 參考文獻[18]提出一種成本驅動的基于遺傳算法的Web服務組合優化方法,該方法采用UML’s activity diagram描述服務組合,將測試和仿真相結合完成針對時間特性的性能分析。該方法的基本思想是首先在輕負載下根據Web服務和其流程自動生成測試代碼和仿真模型,然后仿真重負載下的情況。該方法的優點是:基于測試結果的仿真有助于提高仿真的精度,即測試記錄下低負載時的Web處理行為(響應時間和吞吐量),根據這些數據設置仿真參數。該方法實現了一個稱為sPAC的性能分析工具。該工具有圖形化描述、自動生成測試代碼和自動生成仿真模型的特點。
??? 在以Internet為代表的分布、異構、多自治域的廣域網環境下,高度動態的網絡環境和多變的用戶需求要求Web服務組合跳出靜態組合模式,能夠及時調整和優化組合Web服務,提供高效率、低成本的動態服務組合。服務質量是組合Web服務的生命。隨著Web服務的發展,各行業和領域內服務功能不斷細分和深化,用戶對服務質量也有更高更多的需求。能夠提供保證服務質量的組合Web服務是Web服務組合走向實用的必要條件。本文以分布、異構、多自治域的廣域網環境為背景,通過對于現有Web服務組合理論和技術研究的綜述,對它在進一步的理論和技術研究方面進行了探討。目前,Web服務組合理論和技術研究還處于起步階段,有待廣大研究者在理論深度、技術多樣性上做更為廣泛、深入的研究探討。
參考文獻
[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.