中國(guó)人民銀行南昌中心支行 丁 堅(jiān)
Web服務(wù)組合綜述
中國(guó)人民銀行南昌中心支行 丁 堅(jiān)
近年來,Web服務(wù)技術(shù)作為服務(wù)計(jì)算(SOC)和面向服務(wù)架構(gòu)(SOA)的主要實(shí)現(xiàn)技術(shù),已經(jīng)得到廣泛應(yīng)用,工業(yè)界和學(xué)術(shù)界分別從不同的角度對(duì)Web服務(wù)的相關(guān)技術(shù)展開研究。本文詳細(xì)闡述了服務(wù)組合的概念、框架和分類,分析了幾種常用的Web服務(wù)組合方法,并對(duì)這幾種組合方法作了比較,最后,對(duì)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è)級(jí)軟件平臺(tái)的不斷成熟,越來越多的企業(yè)和商業(yè)組織參與到軟件服務(wù)化(SaaS)的行列中來,紛紛將其業(yè)務(wù)功能和組件包裝成標(biāo)準(zhǔn)的Web服務(wù)發(fā)布出去,實(shí)現(xiàn)快速便捷地尋求合作伙伴,挖掘潛在的客戶和達(dá)到業(yè)務(wù)增值的目的[1]。然而,目前網(wǎng)絡(luò)上發(fā)布的服務(wù)大多數(shù)都存在結(jié)構(gòu)簡(jiǎn)單、功能單一的缺陷,無法滿足企業(yè)復(fù)雜應(yīng)用的需求。如何有效地組合分布于網(wǎng)絡(luò)中的各種服務(wù),實(shí)現(xiàn)服務(wù)之間的無縫集成,形成功能強(qiáng)大的企業(yè)級(jí)服務(wù)流程以完成企業(yè)的商業(yè)目標(biāo),已經(jīng)成為Web服務(wù)發(fā)展過程中的一個(gè)重要步驟,也是SOC與SOA能否成功應(yīng)用和實(shí)施的關(guān)鍵[2]。
Web服務(wù)組合源于軟件重用.其基本思想是使用現(xiàn)有的Web服務(wù),通過它們一定順序的組合或組合順序的改變,創(chuàng)建出新的或更高質(zhì)量的服務(wù)滿足用戶的需求。
目前對(duì)Web服務(wù)組合尚無統(tǒng)一的定義,很多研究者從不同的角度和側(cè)重點(diǎn)對(duì)Web服務(wù)組合給出了不同的定義。[3]
對(duì)Web服務(wù)組合定義是指由多個(gè)小粒度的Web服務(wù)相互之間通信和協(xié)作來實(shí)現(xiàn)大粒度的服務(wù)功能;通過有效地聯(lián)合各種不同功能的Web服務(wù),服務(wù)開發(fā)者可以借此解決較為復(fù)雜的問題,實(shí)現(xiàn)增值服務(wù)。
IBM對(duì)服務(wù)組合定義[4]是滿足業(yè)務(wù)流程邏輯的一組Web服務(wù),通過制定不同Web服務(wù)執(zhí)行順序和交互過程來實(shí)現(xiàn)新的業(yè)務(wù)功能。[5]
從兩個(gè)不同的研究角度對(duì)Web服務(wù)組合進(jìn)行了定義:(1)基于過程模型:從WSC內(nèi)在因素的角度,將其定義為一個(gè)依賴于特定控制流和數(shù)據(jù)流結(jié)合起來的、能夠完成一定任務(wù)的Web服務(wù)集合。(2)基于構(gòu)件單元:從構(gòu)件的角度,將WSC定義為一個(gè)由自治且能相互協(xié)作的自描述單元所組成的系統(tǒng)。
文獻(xiàn)[1]提出了一個(gè)更為通用和完整的Web服務(wù)組合定義:用現(xiàn)有的分散的、小粒度的原子服務(wù),根據(jù)服務(wù)請(qǐng)求者的需求,在某一特定的Web服務(wù)組合框架下,自動(dòng)地選擇滿足需要的若干服務(wù),并使它們按照一定的組合規(guī)則協(xié)同工作完成服務(wù)請(qǐng)求。
典型的Web服務(wù)組合(WSC)的實(shí)現(xiàn)框架包括2種用戶角色(服務(wù)請(qǐng)求者和服務(wù)提供者)和5個(gè)部件(翻譯器、組合管理器、執(zhí)行引擎、服務(wù)匹配器和服務(wù)庫(kù)),可選部件本體庫(kù)為服務(wù)描述提供本體定義和推理支持,如圖1所示。WSC流程如下:
(1)服務(wù)提供者通過服務(wù)注冊(cè)將服務(wù)信息發(fā)布到注冊(cè)中心的服務(wù)庫(kù)。
(2~3)服務(wù)請(qǐng)求者提交的服務(wù)需求經(jīng)翻譯器處理,從自然語言變?yōu)榫哂姓Z義的需求描述傳遞給組合管理器。
(4)組合管理器根據(jù)需求描述和來自服務(wù)庫(kù)的服務(wù)描述,生成滿足服務(wù)需求的組合方案,傳遞給執(zhí)行引擎。
(5~7)執(zhí)行引擎將組合方案?jìng)鬟f給服務(wù)匹配器,服務(wù)匹配器根據(jù)服務(wù)描述選擇最適合的Web服務(wù),將其句柄返回執(zhí)行引擎。
(8)執(zhí)行引擎根據(jù)組合方案和Web服務(wù)句柄調(diào)用并監(jiān)控Web服務(wù)執(zhí)行。
(9)最終將執(zhí)行結(jié)果傳遞給服務(wù)請(qǐng)求者。
當(dāng)前工業(yè)界和學(xué)術(shù)界從不同的角度對(duì)Web服務(wù)組合進(jìn)行了大量的研究,提出了多種Web服務(wù)組合方法,總的來說,工業(yè)界方法側(cè)重于提出組合描述語言,開發(fā)相關(guān)編輯工具和執(zhí)行引擎;學(xué)術(shù)界的方法側(cè)重于從語義、智能規(guī)劃等方面研究自動(dòng)組合,并通過形式化方法驗(yàn)證組合系統(tǒng)的正確性[1]。目前被普遍使用的Web服務(wù)組合方法有以下幾種[1,6]。
(1)基于BPEIAWS的Web服務(wù)組合
BPEL4WS(Business Process Execution Language for Web Services)簡(jiǎn)稱BPEL,它是2002年IBM、微軟和BEA公司提出一個(gè)基于工作流的Web服務(wù)組合描述語言[7]。BPEL4WS是基于工作流方法中的典型代表。它集WSFL和XLANG兩者之長(zhǎng),形成了一種較為自然的描述商業(yè)活動(dòng)的抽象高級(jí)語言。它的作用是將一組現(xiàn)有的服務(wù)整合起來.從而定義一個(gè)新的Web服務(wù),它能夠?qū)eb服務(wù)調(diào)用、操作數(shù)據(jù)、拋出故障或終止一個(gè)流程等不同的活動(dòng)連接起來,從而創(chuàng)造出復(fù)雜的流程,這些活動(dòng)町以嵌套到結(jié)構(gòu)化活動(dòng)中,結(jié)構(gòu)化活動(dòng)定義了活動(dòng)的運(yùn)行方式和控制流程。
(2)基于語義的Web服務(wù)組合方法
面向語義的Web服務(wù)組合通過在Web服務(wù)中添加語義信息,明確表達(dá)Web服務(wù)的數(shù)據(jù)、功能和性能等,使機(jī)器能夠自動(dòng)理解并進(jìn)行需要的操作,最終生成Web服務(wù)過程。目前面向語義的Web服務(wù)組合的主要成果是OWL-S(Ontology Web Language forServices,Web服務(wù)的本體語言),OWL-S是一個(gè)服務(wù)本體,使服務(wù)能夠自動(dòng)發(fā)現(xiàn)、調(diào)用、組合、互操作和執(zhí)行監(jiān)控。OWL-S建模的服務(wù)本體有三個(gè)部分: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ù)合的邏輯信息封裝在一個(gè)定義中,一個(gè)類定義表示一個(gè)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)是一個(gè)強(qiáng)連通圖,其節(jié)點(diǎn)分別稱為庫(kù)所和變遷,庫(kù)所(place)描述系統(tǒng)狀態(tài):變遷(transition)描述系統(tǒng)活動(dòng)。這些節(jié)點(diǎn)通過有向弧相連。它是將具體的服務(wù)組合描述語言與形式化模型進(jìn)行映射,實(shí)現(xiàn)流程描述到形式化模型的轉(zhuǎn)換,然后再進(jìn)行驗(yàn)證。由于Web服務(wù)的行為基本上是操作的一個(gè)偏序集,所以可以直接將Web服務(wù)映射到一個(gè)Petri網(wǎng)上。但這種方法都依賴于具體的流程描述語言,所以難以在現(xiàn)實(shí)的企業(yè)環(huán)境中被推廣。
(5)基于進(jìn)程代數(shù)的Web服務(wù)組合方法
進(jìn)程代數(shù)是用于描述和分析并發(fā)、異步、非確定和分布式等系統(tǒng)行為的,是對(duì)動(dòng)態(tài)實(shí)體進(jìn)行建模的正式語言,具有嚴(yán)密的形式化語義,因此被引入到WSC研究中[5]。其中支持通道名稱傳遞的π演算由于適用于描述結(jié)構(gòu)動(dòng)態(tài)變化的并發(fā)系統(tǒng),而成為進(jìn)程代數(shù)在WSC研究中應(yīng)用的代表。
基于π演算的Web服務(wù)組合是又一常用的形式化的Web服務(wù)組合方法。π演算是Robin Milner提出的以進(jìn)程間的移動(dòng)通信為研究重點(diǎn)的并發(fā)理論,它是對(duì)CCS(Caiculusof Communication System)的發(fā)展。其基本計(jì)算實(shí)體為名字和進(jìn)程,進(jìn)程之間的通信是過傳遞名字來完成。由于π演算不但可以傳遞CCS中的變量和值等,還可以傳遞通道名,并且將這幾種實(shí)體都統(tǒng)稱為名字,這使得π演算具有了建立新通道的能力,因此π演算可以用來描述結(jié)構(gòu)不斷變化的并發(fā)系統(tǒng)。
本文從連通性、非功能屬性、組合正確性和組合可擴(kuò)展性四個(gè)方面來比較上述提到的五種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)定性、代價(jià)和響應(yīng)時(shí)間等。只有OWL-S組合方法允許用戶定義一些非功能屬性,但是這些定義還沒有完全得到規(guī)范。
(3)組合正確性
組合的正確性取決于服務(wù)和組合規(guī)范。BPEL4WS和OWL-S沒有提供檢驗(yàn)正確性的方法。由于BPEl4WS側(cè)重于處理執(zhí)行而非規(guī)范,因此它沒有提供一種形式化方法來驗(yàn)證組合方法的正確性。Web組件、Petri網(wǎng)、π演算都在不同程度上提供了組合正確性的驗(yàn)證手段。
(4)組合可擴(kuò)展性
本文中提到的幾種組合方法都可通過端口間的消息傳遞機(jī)制支持Web服務(wù)的連通性。然而,組合兩個(gè)服務(wù)與組合十個(gè)甚至上百個(gè)服務(wù)的處理過程顯然相差很大。而在很多的場(chǎng)合,服務(wù)的組合過程中,需要涉及到數(shù)量很多的服務(wù)進(jìn)行交互。因此,如何衡量組合所包含的服務(wù)的數(shù)量,成為Web服務(wù)組合過程中的一個(gè)關(guān)鍵問題。
Web組件方法用類定義實(shí)現(xiàn)了良好的可擴(kuò)展性,但是需要額外的時(shí)間用于類定義和XML之間的匹配和同步。在BPEL4WS組合方法中,隨著服務(wù)個(gè)數(shù)的增多,XML文件就會(huì)變得越來越大,多服務(wù)組合顯得有點(diǎn)冗長(zhǎng)。OWL-S組合方法也有類似的問題。Petri網(wǎng)方法的可擴(kuò)展性隨著問題的復(fù)雜性而降低,因?yàn)镻etri網(wǎng)不是一個(gè)可擴(kuò)展的建模技術(shù)。π演算方法用功能強(qiáng)大的規(guī)約機(jī)制提供了簡(jiǎn)潔的符號(hào)表示,方便對(duì)復(fù)雜的服務(wù)進(jìn)行規(guī)范。
本文從Web服務(wù)組合概念、實(shí)現(xiàn)框架、典型方法這幾方面來對(duì)Web服務(wù)組合對(duì)研究現(xiàn)狀進(jìn)行了綜述。最后,從服務(wù)連通性、非功能屬性、組合正確性和組合可擴(kuò)展性四方面對(duì)Web服務(wù)組合方法進(jìn)行了比較??梢钥闯?,目前Web服務(wù)組合理論和技術(shù)研究還處于起步階段,要真正實(shí)現(xiàn)Web服務(wù)的自動(dòng)、高效的組合,真正將Web服務(wù)組合技術(shù)應(yīng)用到實(shí)際中,還有很多關(guān)鍵問題需要解決,有待廣大研究者在理論深度、技術(shù)多樣性上做更為廣泛、深入的研究探討。
[1]苑慶濤,陳彥萍.Web服務(wù)組合方法研究綜述[J].電腦知識(shí)與技術(shù),2010.
[2]岳昆,王曉玲,周傲英.Web服務(wù)核心支撐技術(shù):研究綜述[J].軟件學(xué)報(bào),2004.
[3]胡海濤,李剛,韓燕波.一種面向業(yè)務(wù)用戶的大粒度服務(wù)組合方法[J].計(jì)算機(jī)學(xué)報(bào),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ì)算機(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.
丁堅(jiān)(1970—),男,江西南豐人,現(xiàn)供職于中國(guó)人民銀行南昌中心支行,研究方向:軟件工程。