中國人民銀行南昌中心支行 丁 堅
Web服務(wù)組合綜述
中國人民銀行南昌中心支行 丁 堅
近年來,Web服務(wù)技術(shù)作為服務(wù)計算(SOC)和面向服務(wù)架構(gòu)(SOA)的主要實現(xiàn)技術(shù),已經(jīng)得到廣泛應(yīng)用,工業(yè)界和學(xué)術(shù)界分別從不同的角度對Web服務(wù)的相關(guān)技術(shù)展開研究。本文詳細(xì)闡述了服務(wù)組合的概念、框架和分類,分析了幾種常用的Web服務(wù)組合方法,并對這幾種組合方法作了比較,最后,對Web服務(wù)組合方法進(jìn)行了總結(jié)。
Web服務(wù);組合方法;服務(wù)組合;工作流
近年來,電子商務(wù)的迅速發(fā)展,使得基于網(wǎng)絡(luò)的、分布式的、模塊化的Web服務(wù)技術(shù)得到快速發(fā)展和廣泛應(yīng)用,Web服務(wù)遵循一定的技術(shù)規(guī)范,執(zhí)行一定的任務(wù)。隨著Web服務(wù)標(biāo)準(zhǔn)的持續(xù)完善和支持Web服務(wù)的企業(yè)級軟件平臺的不斷成熟,越來越多的企業(yè)和商業(yè)組織參與到軟件服務(wù)化(SaaS)的行列中來,紛紛將其業(yè)務(wù)功能和組件包裝成標(biāo)準(zhǔn)的Web服務(wù)發(fā)布出去,實現(xiàn)快速便捷地尋求合作伙伴,挖掘潛在的客戶和達(dá)到業(yè)務(wù)增值的目的[1]。然而,目前網(wǎng)絡(luò)上發(fā)布的服務(wù)大多數(shù)都存在結(jié)構(gòu)簡單、功能單一的缺陷,無法滿足企業(yè)復(fù)雜應(yīng)用的需求。如何有效地組合分布于網(wǎng)絡(luò)中的各種服務(wù),實現(xiàn)服務(wù)之間的無縫集成,形成功能強大的企業(yè)級服務(wù)流程以完成企業(yè)的商業(yè)目標(biāo),已經(jīng)成為Web服務(wù)發(fā)展過程中的一個重要步驟,也是SOC與SOA能否成功應(yīng)用和實施的關(guān)鍵[2]。
Web服務(wù)組合源于軟件重用.其基本思想是使用現(xiàn)有的Web服務(wù),通過它們一定順序的組合或組合順序的改變,創(chuàng)建出新的或更高質(zhì)量的服務(wù)滿足用戶的需求。
目前對Web服務(wù)組合尚無統(tǒng)一的定義,很多研究者從不同的角度和側(cè)重點對Web服務(wù)組合給出了不同的定義。[3]
對Web服務(wù)組合定義是指由多個小粒度的Web服務(wù)相互之間通信和協(xié)作來實現(xiàn)大粒度的服務(wù)功能;通過有效地聯(lián)合各種不同功能的Web服務(wù),服務(wù)開發(fā)者可以借此解決較為復(fù)雜的問題,實現(xiàn)增值服務(wù)。
IBM對服務(wù)組合定義[4]是滿足業(yè)務(wù)流程邏輯的一組Web服務(wù),通過制定不同Web服務(wù)執(zhí)行順序和交互過程來實現(xiàn)新的業(yè)務(wù)功能。[5]
從兩個不同的研究角度對Web服務(wù)組合進(jìn)行了定義:(1)基于過程模型:從WSC內(nèi)在因素的角度,將其定義為一個依賴于特定控制流和數(shù)據(jù)流結(jié)合起來的、能夠完成一定任務(wù)的Web服務(wù)集合。(2)基于構(gòu)件單元:從構(gòu)件的角度,將WSC定義為一個由自治且能相互協(xié)作的自描述單元所組成的系統(tǒng)。
文獻(xiàn)[1]提出了一個更為通用和完整的Web服務(wù)組合定義:用現(xiàn)有的分散的、小粒度的原子服務(wù),根據(jù)服務(wù)請求者的需求,在某一特定的Web服務(wù)組合框架下,自動地選擇滿足需要的若干服務(wù),并使它們按照一定的組合規(guī)則協(xié)同工作完成服務(wù)請求。
典型的Web服務(wù)組合(WSC)的實現(xiàn)框架包括2種用戶角色(服務(wù)請求者和服務(wù)提供者)和5個部件(翻譯器、組合管理器、執(zhí)行引擎、服務(wù)匹配器和服務(wù)庫),可選部件本體庫為服務(wù)描述提供本體定義和推理支持,如圖1所示。WSC流程如下:
(1)服務(wù)提供者通過服務(wù)注冊將服務(wù)信息發(fā)布到注冊中心的服務(wù)庫。
(2~3)服務(wù)請求者提交的服務(wù)需求經(jīng)翻譯器處理,從自然語言變?yōu)榫哂姓Z義的需求描述傳遞給組合管理器。
(4)組合管理器根據(jù)需求描述和來自服務(wù)庫的服務(wù)描述,生成滿足服務(wù)需求的組合方案,傳遞給執(zhí)行引擎。
(5~7)執(zhí)行引擎將組合方案傳遞給服務(wù)匹配器,服務(wù)匹配器根據(jù)服務(wù)描述選擇最適合的Web服務(wù),將其句柄返回執(zhí)行引擎。
(8)執(zhí)行引擎根據(jù)組合方案和Web服務(wù)句柄調(diào)用并監(jiān)控Web服務(wù)執(zhí)行。
(9)最終將執(zhí)行結(jié)果傳遞給服務(wù)請求者。
當(dāng)前工業(yè)界和學(xué)術(shù)界從不同的角度對Web服務(wù)組合進(jìn)行了大量的研究,提出了多種Web服務(wù)組合方法,總的來說,工業(yè)界方法側(cè)重于提出組合描述語言,開發(fā)相關(guān)編輯工具和執(zhí)行引擎;學(xué)術(shù)界的方法側(cè)重于從語義、智能規(guī)劃等方面研究自動組合,并通過形式化方法驗證組合系統(tǒng)的正確性[1]。目前被普遍使用的Web服務(wù)組合方法有以下幾種[1,6]。
(1)基于BPEIAWS的Web服務(wù)組合
BPEL4WS(Business Process Execution Language for Web Services)簡稱BPEL,它是2002年IBM、微軟和BEA公司提出一個基于工作流的Web服務(wù)組合描述語言[7]。BPEL4WS是基于工作流方法中的典型代表。它集WSFL和XLANG兩者之長,形成了一種較為自然的描述商業(yè)活動的抽象高級語言。它的作用是將一組現(xiàn)有的服務(wù)整合起來.從而定義一個新的Web服務(wù),它能夠?qū)eb服務(wù)調(diào)用、操作數(shù)據(jù)、拋出故障或終止一個流程等不同的活動連接起來,從而創(chuàng)造出復(fù)雜的流程,這些活動町以嵌套到結(jié)構(gòu)化活動中,結(jié)構(gòu)化活動定義了活動的運行方式和控制流程。
(2)基于語義的Web服務(wù)組合方法
面向語義的Web服務(wù)組合通過在Web服務(wù)中添加語義信息,明確表達(dá)Web服務(wù)的數(shù)據(jù)、功能和性能等,使機(jī)器能夠自動理解并進(jìn)行需要的操作,最終生成Web服務(wù)過程。目前面向語義的Web服務(wù)組合的主要成果是OWL-S(Ontology Web Language forServices,Web服務(wù)的本體語言),OWL-S是一個服務(wù)本體,使服務(wù)能夠自動發(fā)現(xiàn)、調(diào)用、組合、互操作和執(zhí)行監(jiān)控。OWL-S建模的服務(wù)本體有三個部分:ServiceProfile、ServiceModel和ServiceGrounding。在OWL-S中,ServiceProfile和ServiceModel是服務(wù)的抽象表達(dá),而ServiceGrounding涉及具體的規(guī)范。

表1 五種Web服務(wù)組合方法的比較

圖1 Web服務(wù)組合架構(gòu)[5]
(3)Web組件方法
Web組件方法將服務(wù)看成組件以支持基本的軟件開發(fā)原則,比如重用、細(xì)化和擴(kuò)展。主要思想是將復(fù)合的邏輯信息封裝在一個定義中,一個類定義表示一個Web組件。Web組件的公共接口可以被發(fā)布,用于服務(wù)的發(fā)現(xiàn)和重用。Web組件方法支持一些基本的組合結(jié)構(gòu):順序的、順序可選的、結(jié)果同步的并行和并行可選的。它們以condition和while-do結(jié)構(gòu)擴(kuò)展。
(4)基于Petri網(wǎng)的Web服務(wù)組合方法
基于Petri網(wǎng)的Web服務(wù)組合是較為常用的一種形式化的Web服務(wù)組合方法。Petri網(wǎng)是一個強連通圖,其節(jié)點分別稱為庫所和變遷,庫所(place)描述系統(tǒng)狀態(tài):變遷(transition)描述系統(tǒng)活動。這些節(jié)點通過有向弧相連。它是將具體的服務(wù)組合描述語言與形式化模型進(jìn)行映射,實現(xiàn)流程描述到形式化模型的轉(zhuǎn)換,然后再進(jìn)行驗證。由于Web服務(wù)的行為基本上是操作的一個偏序集,所以可以直接將Web服務(wù)映射到一個Petri網(wǎng)上。但這種方法都依賴于具體的流程描述語言,所以難以在現(xiàn)實的企業(yè)環(huán)境中被推廣。
(5)基于進(jìn)程代數(shù)的Web服務(wù)組合方法
進(jìn)程代數(shù)是用于描述和分析并發(fā)、異步、非確定和分布式等系統(tǒng)行為的,是對動態(tài)實體進(jìn)行建模的正式語言,具有嚴(yán)密的形式化語義,因此被引入到WSC研究中[5]。其中支持通道名稱傳遞的π演算由于適用于描述結(jié)構(gòu)動態(tài)變化的并發(fā)系統(tǒng),而成為進(jìn)程代數(shù)在WSC研究中應(yīng)用的代表。
基于π演算的Web服務(wù)組合是又一常用的形式化的Web服務(wù)組合方法。π演算是Robin Milner提出的以進(jìn)程間的移動通信為研究重點的并發(fā)理論,它是對CCS(Caiculusof Communication System)的發(fā)展。其基本計算實體為名字和進(jìn)程,進(jìn)程之間的通信是過傳遞名字來完成。由于π演算不但可以傳遞CCS中的變量和值等,還可以傳遞通道名,并且將這幾種實體都統(tǒng)稱為名字,這使得π演算具有了建立新通道的能力,因此π演算可以用來描述結(jié)構(gòu)不斷變化的并發(fā)系統(tǒng)。
本文從連通性、非功能屬性、組合正確性和組合可擴(kuò)展性四個方面來比較上述提到的五種Web服務(wù)組合方法[5]。比較結(jié)果如表1所示。
(1)連通性
上述提到的五種Web服務(wù)組合方法都滿足連通性的屬性,連通性是進(jìn)行Web服務(wù)組合的先決條件,可以說,這是進(jìn)行Web服務(wù)組合應(yīng)該滿足的首要條件。
(2)非功能屬性
非功能屬性常被形容為Qos(Quarlity of Services,服務(wù)質(zhì)量)。很多組合服務(wù)的方法忽略了非功能屬性,致使在Web服務(wù)組合過程中無法衡量服務(wù)組合的安全性、可靠性、穩(wěn)定性、代價和響應(yīng)時間等。只有OWL-S組合方法允許用戶定義一些非功能屬性,但是這些定義還沒有完全得到規(guī)范。
(3)組合正確性
組合的正確性取決于服務(wù)和組合規(guī)范。BPEL4WS和OWL-S沒有提供檢驗正確性的方法。由于BPEl4WS側(cè)重于處理執(zhí)行而非規(guī)范,因此它沒有提供一種形式化方法來驗證組合方法的正確性。Web組件、Petri網(wǎng)、π演算都在不同程度上提供了組合正確性的驗證手段。
(4)組合可擴(kuò)展性
本文中提到的幾種組合方法都可通過端口間的消息傳遞機(jī)制支持Web服務(wù)的連通性。然而,組合兩個服務(wù)與組合十個甚至上百個服務(wù)的處理過程顯然相差很大。而在很多的場合,服務(wù)的組合過程中,需要涉及到數(shù)量很多的服務(wù)進(jìn)行交互。因此,如何衡量組合所包含的服務(wù)的數(shù)量,成為Web服務(wù)組合過程中的一個關(guān)鍵問題。
Web組件方法用類定義實現(xiàn)了良好的可擴(kuò)展性,但是需要額外的時間用于類定義和XML之間的匹配和同步。在BPEL4WS組合方法中,隨著服務(wù)個數(shù)的增多,XML文件就會變得越來越大,多服務(wù)組合顯得有點冗長。OWL-S組合方法也有類似的問題。Petri網(wǎng)方法的可擴(kuò)展性隨著問題的復(fù)雜性而降低,因為Petri網(wǎng)不是一個可擴(kuò)展的建模技術(shù)。π演算方法用功能強大的規(guī)約機(jī)制提供了簡潔的符號表示,方便對復(fù)雜的服務(wù)進(jìn)行規(guī)范。
本文從Web服務(wù)組合概念、實現(xiàn)框架、典型方法這幾方面來對Web服務(wù)組合對研究現(xiàn)狀進(jìn)行了綜述。最后,從服務(wù)連通性、非功能屬性、組合正確性和組合可擴(kuò)展性四方面對Web服務(wù)組合方法進(jìn)行了比較。可以看出,目前Web服務(wù)組合理論和技術(shù)研究還處于起步階段,要真正實現(xiàn)Web服務(wù)的自動、高效的組合,真正將Web服務(wù)組合技術(shù)應(yīng)用到實際中,還有很多關(guān)鍵問題需要解決,有待廣大研究者在理論深度、技術(shù)多樣性上做更為廣泛、深入的研究探討。
[1]苑慶濤,陳彥萍.Web服務(wù)組合方法研究綜述[J].電腦知識與技術(shù),2010.
[2]岳昆,王曉玲,周傲英.Web服務(wù)核心支撐技術(shù):研究綜述[J].軟件學(xué)報,2004.
[3]胡海濤,李剛,韓燕波.一種面向業(yè)務(wù)用戶的大粒度服務(wù)組合方法[J].計算機(jī)學(xué)報,2005,28(4):694-703.
[4]Eleymann D Roller,M T Schmidt.Web Services and Business Process Management IBM System Journal,2002.
[5]倪晚成,劉連臣,吳澄.Web服務(wù)組合方法綜述[J].計算機(jī)工程,2008.
[6]Nikola Milanovic,Miroslaw Malek.Current Solutions for Web Services Composition[J].IEEE Internet Computing,2004:51-59.
[7]Dustdar S,Sehreiner W.A survey on web services composition[J].International Journal of Web and Grid Services,2005,1(1):1-30.
丁堅(1970—),男,江西南豐人,現(xiàn)供職于中國人民銀行南昌中心支行,研究方向:軟件工程。