劉紹華,馬鐵軍,景興建
(1.北京郵電大學(xué)國際開放實驗室 北京100876;2.英國帝國理工學(xué)院計算機(jī)系 英國倫敦;3.香港理工大學(xué)機(jī)械工程系 中國香港)
21世紀(jì)仍然是信息技術(shù)的世紀(jì),互聯(lián)網(wǎng)(Internet)讓人們足不出戶就可以縱覽天下大事,萬維網(wǎng)(WWW)的出現(xiàn)已將世界原有的有形界限全然打破,而電子商務(wù)(e-Business)也潛移默化地改變了我們的生活。今天的我們更進(jìn)一步,已邁入網(wǎng)絡(luò)服務(wù)(web service)的大門,業(yè)界正在經(jīng)歷一場稱為“云計算”的新運動,將業(yè)務(wù)軟件以服務(wù)的形式(software as a service,SaaS)擴(kuò)展到互聯(lián)網(wǎng)上,借助云端網(wǎng)絡(luò)的虛擬化軟件技術(shù)提供全天候、個性化、零距離的優(yōu)質(zhì)服務(wù),并使這些服務(wù)能夠在組織內(nèi)或者組織間動態(tài)地相互協(xié)作[1]。
目前,面向服務(wù)計算(service oriented computing,SOC)和面向服務(wù)體系結(jié)構(gòu) (service oriented architecture,SOA)已被業(yè)界廣泛接受,成為構(gòu)造下一代分布式應(yīng)用的計算范型和體系結(jié)構(gòu)。在基于SOA的分布式應(yīng)用中,服務(wù)是基本構(gòu)造單元,應(yīng)用由服務(wù)和服務(wù)之間的交互構(gòu)成,實現(xiàn)面向服務(wù)復(fù)雜應(yīng)用的關(guān)鍵就是服務(wù)之間的交互協(xié)作。服務(wù)在交互協(xié)作的粘合之下形成復(fù)雜服務(wù)。軟件服務(wù)技術(shù)近年來已從服務(wù)計算最初的基本服務(wù)“描述、發(fā)現(xiàn)、調(diào)用”架構(gòu)以及云計算初期的“軟件即服務(wù)”概念向新的階段——服務(wù)協(xié)作技術(shù)方向發(fā)展。
然而,由于服務(wù)協(xié)作是一項復(fù)雜的任務(wù),往往超出了人工處理的能力。因此,為了達(dá)到業(yè)務(wù)目標(biāo),服務(wù)協(xié)作結(jié)構(gòu)必須是面向需求(共同的目標(biāo)和達(dá)成的約束)動態(tài)且自動地構(gòu)造出來,而不是在設(shè)計時預(yù)制好;并且服務(wù)協(xié)作應(yīng)該能夠隨著需求而變,隨計算環(huán)境而變,并允許動態(tài)重構(gòu)。因此,服務(wù)協(xié)作動態(tài)構(gòu)造技術(shù)一直是近年來的研究熱點。
網(wǎng)絡(luò)技術(shù)的發(fā)展和計算機(jī)應(yīng)用的普及,促使人們從過去的單機(jī)應(yīng)用和簡單數(shù)據(jù)庫應(yīng)用的水平,大規(guī)模地走進(jìn)全新的網(wǎng)絡(luò)應(yīng)用階段。應(yīng)用網(wǎng)絡(luò)化已成為當(dāng)今計算機(jī)應(yīng)用和軟件工程的主流[2]。Internet是當(dāng)前多種類型計算機(jī)網(wǎng)絡(luò)應(yīng)用的互聯(lián)集合,堪稱當(dāng)今最大的分布式系統(tǒng),它使得世界各地的用戶能享受諸如電子郵件收發(fā)、文件傳輸、網(wǎng)絡(luò)瀏覽和服務(wù)訪問等信息時代的最新成果。
20世紀(jì)七八十年代,E-mail(電子郵件)、FTP(file transfer protocol,文件傳輸協(xié)議)和Telnet(遠(yuǎn)程登錄)是 Internet上較早出現(xiàn)的重要工具,特別是電子郵件系統(tǒng),至今仍然是Internet上主要的應(yīng)用形式之一。早期Internet的主要作用是為人與人之間以消息的形式進(jìn)行溝通提供一座橋梁。
時至20世紀(jì)90年代,WWW (world wide web,萬維網(wǎng),也簡稱 Web)迅速風(fēng)行,基于 HTTP(hypertext transfer protocol,超文本傳輸協(xié)議)和HTML(hypertext markup language,超文本標(biāo)注語言)的Web訪問成為人們利用Internet獲取各種信息資源的最主要形式,此時,Internet的角色已經(jīng)從人與人之間的溝通橋梁過渡為人與分布式應(yīng)用之間的交互渠道。
進(jìn)入21世紀(jì)之后,隨著Web Service(網(wǎng)絡(luò)服務(wù),又譯為Web服務(wù))技術(shù)的出現(xiàn)并日趨成熟,分布式、異構(gòu)的網(wǎng)絡(luò)應(yīng)用可以借助綁定在SMTP(simple message transfer protocol,簡單郵件傳輸協(xié)議)或者HTTP等之上的SOAP(simple object access protocol,簡單對象訪問協(xié)議)[3]消息,跨越整個Internet實現(xiàn)互操作。因此,一個大規(guī)模的應(yīng)用系統(tǒng),可以由分布在網(wǎng)絡(luò)上不同地方的軟件協(xié)同工作去完成。隨后,語義網(wǎng)絡(luò)、網(wǎng)格計算和云計算技術(shù)也在此基礎(chǔ)上逐漸發(fā)展、完善起來。不難看出,當(dāng)今的互聯(lián)網(wǎng)正在逐漸演變?yōu)榫W(wǎng)絡(luò)應(yīng)用與網(wǎng)絡(luò)應(yīng)用之間基于服務(wù)實現(xiàn)協(xié)同工作的平臺,隨著當(dāng)前互聯(lián)網(wǎng)向未來物聯(lián)網(wǎng)方向的演進(jìn),服務(wù)協(xié)同也將成為未來物聯(lián)網(wǎng)上支持智能物件之間 (machine to machine,M2M)通信的一種重要手段。
相應(yīng)的,軟件技術(shù)也正在經(jīng)歷著一次轉(zhuǎn)變。傳統(tǒng)上,軟件開發(fā)人員通過組合本地系統(tǒng)運算處理能力的方式開發(fā)應(yīng)用程序,開發(fā)人員有權(quán)使用豐富的系統(tǒng)資源,精確地控制應(yīng)用程序的功能和性能;如今,新一代的軟件開發(fā)人員正致力于構(gòu)建面向服務(wù)體系結(jié)構(gòu),基于SaaS技術(shù)將分布于網(wǎng)絡(luò)各處的眾多應(yīng)用程序資源封裝、虛擬化并相互連接起來,通過這些服務(wù)的協(xié)同工作實現(xiàn)更大范圍、更復(fù)雜的業(yè)務(wù)處理。于是,軟件技術(shù)從研究如何開發(fā)應(yīng)用系統(tǒng)產(chǎn)品向如何在云端提供虛擬化網(wǎng)絡(luò)服務(wù)和動態(tài)構(gòu)造服務(wù)協(xié)作遷移。
目前,服務(wù)協(xié)作這個概念還沒有一個統(tǒng)一的定義。有的將服務(wù)之間的交互和關(guān)聯(lián)稱為服務(wù)聚集(service aggregation)[4],更多的稱為服務(wù)復(fù)合(service composition)。
Web服務(wù)使軟件協(xié)同工作進(jìn)入了新的境界,它可以實現(xiàn)許多過去無法達(dá)到的目標(biāo),例如,任何兩個異構(gòu)的軟件系統(tǒng)都可以只借助輕量級的基礎(chǔ)設(shè)施,在整個互聯(lián)網(wǎng)范圍內(nèi)跨越不同的平臺,安全地通過防火墻,自由選擇同步或者異構(gòu)的通信方式進(jìn)行交互、互操作和協(xié)作。面向服務(wù)的體系結(jié)構(gòu)非常適合于統(tǒng)一協(xié)調(diào)分布式服務(wù),以便構(gòu)建由多個服務(wù)參與的復(fù)雜業(yè)務(wù)流程,因為由基于面向服務(wù)的體系結(jié)構(gòu)構(gòu)建的應(yīng)用軟件可以按需要拆散和重新組裝。
本文將基于服務(wù)的軟件協(xié)同工作簡稱為服務(wù)協(xié)作。服務(wù)協(xié)作是在面向服務(wù)的分布式環(huán)境下,借助云計算平臺,將來自不同提供商的分離的服務(wù)和諧地整合在一起,基于動態(tài)發(fā)現(xiàn)、延遲綁定、即興復(fù)合、虛擬組織等機(jī)制,使得這些服務(wù)能夠相互協(xié)作執(zhí)行某些任務(wù),進(jìn)而實現(xiàn)預(yù)定的業(yè)務(wù)目標(biāo)。
服務(wù)是由一方(提供者)提供給另一方(接收者)的功能系統(tǒng),并以服務(wù)描述的形式構(gòu)成兩者之間的一種契約關(guān)系,其中提供者承諾提供,而接收者同意接收。協(xié)作則被定義為“互相配合,共同完成某項任務(wù)”,是“人或企業(yè)為了共同的通常是經(jīng)濟(jì)上的利益聯(lián)合起來”[5]。
服務(wù)協(xié)作,事實上是為了共同目的而相互合作的若干服務(wù)提供商提供的一些業(yè)務(wù)服務(wù)的組合,如圖1所示。根據(jù)內(nèi)部復(fù)雜度的大小,業(yè)務(wù)服務(wù)大致分為兩類,即基本服務(wù)和復(fù)合服務(wù)。基本服務(wù)提供基本的功能,包含低層次的數(shù)據(jù)轉(zhuǎn)換,幾乎不涉及復(fù)雜的算法和流程。舉例來說,簡單的天氣播報服務(wù)就屬于基本服務(wù)。與之相反,復(fù)合服務(wù)也被稱為業(yè)務(wù)流程,能提供高層次的服務(wù),可以包含多個層次的數(shù)據(jù)訪問和轉(zhuǎn)換。復(fù)合服務(wù)可以通過若干個基本服務(wù)的協(xié)作來實現(xiàn),當(dāng)然,復(fù)合服務(wù)也可以與基本服務(wù)或者其他復(fù)合服務(wù)協(xié)作,并構(gòu)成更高層次的復(fù)合服務(wù)。例如,涉及預(yù)訂系統(tǒng)、配送系統(tǒng)和電子支付系統(tǒng)在內(nèi)的網(wǎng)上購物流程就是一種復(fù)合服務(wù),網(wǎng)上商店、物流中心和電子銀行通過服務(wù)協(xié)作的形式共同賺取商業(yè)利益。
本質(zhì)上,服務(wù)協(xié)作是協(xié)調(diào)若干服務(wù)共同工作,服務(wù)協(xié)作可以從以下幾個層次體現(xiàn)出來:
·單個服務(wù)與服務(wù)之間服務(wù)級別的交互(Interaction),是基本服務(wù)協(xié)作形式,體現(xiàn)了服務(wù)之間多個操作的交互協(xié)議;
·多個服務(wù)通過控制流與數(shù)據(jù)流編排(Orchestration)組成復(fù)雜、多步驟的復(fù)合服務(wù),服務(wù)之間的交互和協(xié)作通過兩種流(Flow)來體現(xiàn);
·基于服務(wù),跨組織域的業(yè)務(wù)流程配合(Choreography)。
每個服務(wù)都在服務(wù)協(xié)作業(yè)務(wù)流程中扮演著特定的角色。作為服務(wù)協(xié)作的一部分所交換的特定消息會觸發(fā)業(yè)務(wù)流程中定義的事件,并推動服務(wù)協(xié)作流程繼續(xù)向后執(zhí)行。因此,業(yè)務(wù)流程與服務(wù)協(xié)作的關(guān)系非常密切,而且業(yè)界往往把業(yè)務(wù)服務(wù)描述和業(yè)務(wù)流程協(xié)作的具體技術(shù)融合在一起,例如 ebXML的 BPSS(business process specification schema)[6]、RosettaNet的 PIP(partner interface process)[7]等。
工業(yè)界和學(xué)術(shù)界已經(jīng)為服務(wù)之間的協(xié)作提供了很多很好的思路。
W3C 提出了 WSCL[8]、WSCI[9]和WS-CDL 的建議,并正致力于OWL-S(從DAML-S的基礎(chǔ)發(fā)展起來,主要基于OWL語言)和服務(wù)協(xié)作語義方面的標(biāo)準(zhǔn)化[10],OASIS給出了業(yè)務(wù)事務(wù)協(xié)議(business transaction protocol,BTP),IBM、微軟和BEA等公司在早期WSFL和XLANG語言的基礎(chǔ)上提出了面向Web服務(wù)的業(yè)務(wù)流程執(zhí)行語言(BPEL4WS)和相關(guān)的Web服務(wù)協(xié)調(diào) (WS-coordination)[11]、Web服務(wù)事務(wù)(WS-transaction)[12]標(biāo)準(zhǔn)之后,進(jìn)一步推出了Web服務(wù)策略框架(WS-policyFramework)[13];Sun公司提出了 Web服務(wù)復(fù)合應(yīng)用框架 WS-CAF(webservicecompositeapplicationframework),綜合考慮了協(xié)調(diào)(Coordination)、事務(wù)(Transaction)與上下文(Context)等問題[14]??偟膩碚f,目前服務(wù)協(xié)作的相關(guān)規(guī)范處于服務(wù)協(xié)議棧的較高層次,如圖2所示。
在學(xué)術(shù)界,Zhang L J等人探索了Web服務(wù)解決方案的生命周期[15],Sheng Q S等人研究了自調(diào)整、自協(xié)調(diào)服務(wù)[16],Henrique P等人則提出了自適應(yīng) Web服務(wù)[17],Michael N H[18]和Mercedes A[19]等人則致力于服務(wù)的主動化和智能體(Agent)化。
然而,目前這種百家爭鳴的局面說明對服務(wù)協(xié)作的研究方興未艾,還沒有一致認(rèn)可的理論方法、標(biāo)準(zhǔn)規(guī)范和工具支持,服務(wù)協(xié)作的許多問題還有待于進(jìn)一步的探討和解決,而如何動態(tài)構(gòu)造服務(wù)協(xié)作正在引起越來越廣泛的關(guān)注。
服務(wù)協(xié)作是一項復(fù)雜的任務(wù),往往超出了人工處理的能力,其中復(fù)雜性根源于如下一些因素:
·近年來Internet上可用的Web服務(wù)急劇增加;
·Web服務(wù)可以由不同組織開發(fā),使用不同模型描述服務(wù);
·Web服務(wù)可能不斷創(chuàng)建和更新,甚至在運行時發(fā)生。
因而,為了達(dá)到業(yè)務(wù)目的,服務(wù)協(xié)作結(jié)構(gòu)必須是面向需求(共同的目標(biāo)和達(dá)成的約束)自動構(gòu)造出來的,而不是在設(shè)計時預(yù)制好的,并且服務(wù)協(xié)作能隨著需求而變,隨計算環(huán)境而變,能夠動態(tài)重新構(gòu)造。
服務(wù)協(xié)作動態(tài)構(gòu)造的意義在于以下3個方面:
·有利于節(jié)約信息資源,因為動態(tài)構(gòu)造服務(wù)協(xié)作將提升分布、異構(gòu)資源的集成度、單機(jī)虛擬映像和互操作性,保護(hù)已有投資,同時加強(qiáng)跨部門、跨組織的業(yè)務(wù)協(xié)同,促進(jìn)信息資源的合理配置,提高資源利用率,減少浪費和重復(fù)建設(shè),并改善應(yīng)用開發(fā)、管理、運行和維護(hù)的效率,節(jié)約成本;
·有利于提高服務(wù)質(zhì)量,因為加強(qiáng)動態(tài)構(gòu)造技術(shù)的研究將提高服務(wù)的靈活性、可用性,由此帶給用戶更滿意的服務(wù)體驗,進(jìn)而增進(jìn)服務(wù)與服務(wù)之間以及組織與組織之間的互相信任,以便減少矛盾、促進(jìn)合作,最終保障共同業(yè)務(wù)目標(biāo)的實現(xiàn);
·有利于可持續(xù)發(fā)展,通過研究服務(wù)協(xié)作的動態(tài)構(gòu)造
技術(shù),可以幫助服務(wù)提供者保持迅速的客戶響應(yīng)能力,增強(qiáng)對動蕩的市場和不穩(wěn)定的底層環(huán)境的適應(yīng)能力,具備更強(qiáng)的競爭力,從而在未來的戰(zhàn)略中占據(jù)
優(yōu)勢,以便能夠滿足敏捷制造和持續(xù)改進(jìn)的要求。因此,服務(wù)協(xié)作動態(tài)構(gòu)造技術(shù)成為近年來的研究熱點。
服務(wù)協(xié)作體現(xiàn)了服務(wù)之間的交互協(xié)作關(guān)系,因此,作為其關(guān)鍵技術(shù)問題之一的服務(wù)協(xié)作關(guān)系構(gòu)造引起了國內(nèi)外學(xué)者的廣泛興趣,并提出了各種各樣的方法。
特別值得一提的是,近幾年來,國內(nèi)學(xué)者圍繞服務(wù)協(xié)作的動態(tài)構(gòu)造進(jìn)行了大量研究,并取得了一系列重要成果。
例如,中科院軟件所馮玉琳教授領(lǐng)導(dǎo)的服務(wù)計算研究組提出了服務(wù)協(xié)作中間件模型,探討了其內(nèi)部機(jī)理與協(xié)作流程元模型的形式化[20~23],還針對B2B環(huán)境下的跨企業(yè)服務(wù)流程協(xié)作進(jìn)行了研究,提出基于數(shù)據(jù)流建立服務(wù)協(xié)調(diào)模型,實現(xiàn)面向B2B的服務(wù)組合與協(xié)作方法[24,25]。
北京航空航天大學(xué)懷進(jìn)鵬教授領(lǐng)導(dǎo)的課題組,在動態(tài)的Web服務(wù)復(fù)合方面已經(jīng)取得了很好的研究成果,他們實現(xiàn)了一個基于Web服務(wù)的工作流引擎平臺WSWF,該平臺的特點在于采用基于棧式的方法執(zhí)行實例活動,并提供運行時的監(jiān)控管理、事務(wù)保障等特性[26]。
中科院計算所韓燕波研究員等人探討了業(yè)務(wù)層面需求描述模型、用戶語境建模及應(yīng)用機(jī)制等問題,提出了VINCA語言,它從業(yè)務(wù)過程、業(yè)務(wù)服務(wù)、用戶上下文和交互方式4個側(cè)面為在業(yè)務(wù)層面構(gòu)造面向服務(wù)的應(yīng)用提供了支持,并構(gòu)造了VINCA支撐平臺,并對其中的核心技術(shù)進(jìn)行了研究,如基于Context的服務(wù)發(fā)現(xiàn)、服務(wù)動態(tài)連接、服務(wù)虛擬化、語義服務(wù)、應(yīng)用的動態(tài)調(diào)整等[27]。
南京大學(xué)呂建教授的研究組提出了一種基于運行時體系結(jié)構(gòu)的動態(tài)協(xié)同架構(gòu),通過為組合服務(wù)引入一個運行時的體系結(jié)構(gòu)對象來解耦與成員網(wǎng)絡(luò)服務(wù)之間的綁定關(guān)系,從而能夠根據(jù)體系結(jié)構(gòu)的當(dāng)前配置解釋組合服務(wù)與其成員之間的交互行為[28]。
中國人民大學(xué)王珊教授的研究組提出了基于領(lǐng)域本體的服務(wù)動態(tài)復(fù)合方法DOSCM,采用本體語言來描述選取模型中的概念及其關(guān)系,通過領(lǐng)域?qū)<叶ㄖ撇煌I(lǐng)域的評價因子,根據(jù)服務(wù)運行過程中產(chǎn)生的知識,利用機(jī)器學(xué)習(xí)算法自動計算評價因子的權(quán)重分布,并結(jié)合領(lǐng)域?qū)<医o出的先驗知識,提出人機(jī)交互的權(quán)重優(yōu)化方法[29]。
電子科技大學(xué)劉錦德教授的課題組提出基于π演算的服務(wù)復(fù)合的描述和驗證,通過π演算與服務(wù)協(xié)議棧的對應(yīng)關(guān)系,建立服務(wù)復(fù)合模型的規(guī)則并建立一個實際的模型[30],驗證服務(wù)復(fù)合的正確性以實現(xiàn)服務(wù)增值。
以上只是舉了幾個例子,國內(nèi)還有更多的相關(guān)研究成果,但限于篇幅就不再展開介紹。
(1)人工型構(gòu)造方法難以適應(yīng)新的需求
迄今為止,國內(nèi)外研究工作者為服務(wù)協(xié)作的動態(tài)構(gòu)造提出了數(shù)十種方法,大致可歸類為人工型和自動型,下面首先介紹幾種具有代表性的人工型方法。
HP實驗室開發(fā)的e-Flow系統(tǒng)提供一個集成平臺以支持服務(wù)協(xié)作的定義、運行與監(jiān)控。服務(wù)協(xié)作通過原子服務(wù)和其他組合服務(wù)組成的流程結(jié)構(gòu)圖進(jìn)行定義。e-Flow通過提供動態(tài)服務(wù)發(fā)現(xiàn)、多服務(wù)節(jié)點、動態(tài)服務(wù)節(jié)點創(chuàng)建和基于流程范式的動態(tài)修改來實現(xiàn)服務(wù)的動態(tài)組合[31,32]。
澳大利亞新南威爾士大學(xué)開發(fā)的Self-Serv系統(tǒng)將服務(wù)協(xié)作建模為活動圖,提供了動態(tài)構(gòu)造服務(wù)協(xié)作的平臺,并支持以非集中的方式、借助協(xié)調(diào)器、基于路由信息表、通過P2P(peer-to-peer,對等)交互方式來執(zhí)行所構(gòu)造的服務(wù)協(xié)作[16,33]。
荷蘭蒂爾堡大學(xué)的Orriens等人給出了基于模型驅(qū)動的服務(wù)組合方法,使用UML進(jìn)行高層次的抽象,能直接映射到其他標(biāo)準(zhǔn),如 BPEL4WS。使用 OCL(object constraint language,對象約束語言)來表達(dá)業(yè)務(wù)規(guī)則和流程,并利用業(yè)務(wù)規(guī)則實現(xiàn)動態(tài)地構(gòu)造服務(wù)組合,進(jìn)行服務(wù)的選擇和綁定[34~36]。
e-Flow和Self-Serv方法是基于工作流定義服務(wù)協(xié)作結(jié)構(gòu)的,Orriens等人基于模型驅(qū)動的方法則是依據(jù)規(guī)則生成服務(wù)協(xié)作結(jié)構(gòu)的。這些方法都能夠?qū)崿F(xiàn)復(fù)雜流程的協(xié)作結(jié)構(gòu),但是它們存在的共同問題是:只考慮了服務(wù)組件的接口模型,沒有考慮單個服務(wù)內(nèi)部的流程邏輯,而且在建立協(xié)作結(jié)構(gòu)方面的動態(tài)性不足,只是研究了服務(wù)組件的動態(tài)選擇與替換。總的來說,人工型方法已經(jīng)難以適應(yīng)當(dāng)前服務(wù)協(xié)作需求的復(fù)雜性和構(gòu)造的動態(tài)性。
(2)自動型構(gòu)造方法日益受到重視
與人工型方法相比,自動構(gòu)造方法被認(rèn)為是具有更好前途的技術(shù)。自動構(gòu)造方法能將發(fā)布的服務(wù)自動組合起來,建立新的業(yè)務(wù)合作關(guān)系,提供新的功能,極大減少了開發(fā)基于Web和面向服務(wù)應(yīng)用的時間和精力,并且,自動構(gòu)造能減少人為設(shè)計行為引起的出錯,增強(qiáng)可信性。
現(xiàn)有很多工作圍繞服務(wù)協(xié)作自動構(gòu)造展開研究[37]。其中一些是在服務(wù)操作功能層次進(jìn)行服務(wù)組合[38,39],而更多的是在流程層次針對服務(wù)之間的交互協(xié)作進(jìn)行自動構(gòu)造方法研究。
朗訊貝爾實驗室的Hull和加州大學(xué)的Su合作的研究組[40]使用異步消息通信的Mealy自動機(jī)刻畫服務(wù)行為,針對預(yù)先確定參與協(xié)作的服務(wù)和線性時序邏輯刻畫的全局目標(biāo)/約束,自動構(gòu)造出刻畫服務(wù)協(xié)作行為的Mealy自動機(jī)。
羅馬大學(xué)的Berardi等人以活動標(biāo)記的自動機(jī)模型來描述面向用戶交互的服務(wù)行為,通過構(gòu)造一個代理自動機(jī)來代表服務(wù)協(xié)作,滿足面向用戶的各種交互需求[41]。這種基于自動機(jī)模型的方法都是面向服務(wù)的交互行為,有助于研究交互行為復(fù)合自動化。
美國南加利福尼亞大學(xué)的Knoblock領(lǐng)導(dǎo)的研究組則另辟蹊徑,應(yīng)用數(shù)據(jù)集成方法來解決服務(wù)動態(tài)組合問題[42]。服務(wù)組合的輸入包括:可用服務(wù)組件建模為數(shù)據(jù)源,客戶需求建模為用戶查詢。通過一個實現(xiàn)用戶查詢的集成規(guī)劃,即一系列的數(shù)據(jù)查詢來自動地實現(xiàn)服務(wù)的組合。
Hull等人的方法適用于從會話的角度分析服務(wù)協(xié)作構(gòu)造,但是他們并沒有給出詳細(xì)的構(gòu)造過程和具體操作步驟;Berardi等人的方法在一定程度上考慮了服務(wù)組件內(nèi)部的處理過程,但卻必須預(yù)先定義期望的業(yè)務(wù)邏輯,以此為指導(dǎo)生成服務(wù)協(xié)作結(jié)構(gòu),而且服務(wù)選擇時沒有考慮在服務(wù)組件失配時如何進(jìn)行適配的協(xié)調(diào)方法。Knoblock等人的數(shù)據(jù)集成方法不論在描述服務(wù)組件還是協(xié)作需求方面,都顯得不夠直觀。
(3)基于智能規(guī)劃的方法成為主流趨勢
學(xué)術(shù)界現(xiàn)在廣泛認(rèn)識到自動構(gòu)造服務(wù)協(xié)作的關(guān)鍵問題之一是語義:精確的服務(wù)能力和服務(wù)流程描述[4,43],而基于語義進(jìn)行自動服務(wù)協(xié)作構(gòu)造的代表性方法是智能規(guī)劃技術(shù)(AI planning)。
基于智能規(guī)劃技術(shù)的服務(wù)協(xié)作自動構(gòu)造方法,關(guān)注以流程為中心的服務(wù)描述,將服務(wù)操作建模為動作,狀態(tài)轉(zhuǎn)換基于動作前條件定義,一個狀態(tài)轉(zhuǎn)換導(dǎo)致狀態(tài)轉(zhuǎn)移,動作效果即是轉(zhuǎn)換狀態(tài)。規(guī)劃技術(shù)就是在給定初始狀態(tài)、目標(biāo)狀態(tài)和一組可能狀態(tài)轉(zhuǎn)換情況下,合成復(fù)雜的狀態(tài)變遷行為。該技術(shù)的本質(zhì)是建立一個規(guī)劃(plan)的語義模型,針對該語義模型的狀態(tài)空間開發(fā)搜索算法。這種根據(jù)業(yè)務(wù)協(xié)作目標(biāo)建立服務(wù)協(xié)作關(guān)系的方法具有很好的靈活性和動態(tài)性。
現(xiàn)有不同的規(guī)劃方法被提出來應(yīng)用于動態(tài)服務(wù)協(xié)作構(gòu)造,例如基于情景演算(situation calculus)和Golog面向OWL-S語言的研究方法[44];美國馬里蘭大學(xué)D.Wu等人的基于HTN(hierarchical task network,層次任務(wù)網(wǎng)絡(luò))進(jìn)行任務(wù)分解的規(guī)劃方法[45];耶魯大學(xué)MCDermott等人擴(kuò)展PDDL形成規(guī)劃表示語言并基于回歸規(guī)劃的研究方法[46];使用基于規(guī)則專家系統(tǒng)自動構(gòu)建Web服務(wù)復(fù)合的研究工作[47];基于語義說明性描述,使用可組合規(guī)則,考慮Web服務(wù)語法和語義性質(zhì),定義規(guī)劃如何自動生成的方法[48];基于程序合成,使用SSP方法進(jìn)行規(guī)劃自動生成的研究方法[49];把規(guī)劃和模型檢查技術(shù)結(jié)合,將規(guī)劃作為模型檢查問題的研究方法[50]等?;谀P蜋z查技術(shù)的規(guī)劃方法,能面對規(guī)劃域中的非確定性信息,構(gòu)造具有復(fù)雜控制結(jié)構(gòu)的規(guī)劃。這種方法適合于Web服務(wù)領(lǐng)域,值得借鑒和利用。
基于智能規(guī)劃的方法可以依據(jù)用戶的需求實現(xiàn)協(xié)作結(jié)構(gòu)的自動建立,在服務(wù)協(xié)作結(jié)構(gòu)的構(gòu)造方面有很高的動態(tài)性。但是美中不足的是:服務(wù)組件只能建模為簡單的操作,而大多只能產(chǎn)生順序的動作序列,不支持服務(wù)協(xié)作結(jié)構(gòu)中復(fù)雜的控制結(jié)構(gòu),如循環(huán)、選擇等,因此對服務(wù)協(xié)作結(jié)構(gòu)的支持度不夠。規(guī)劃方法通常將需求建模為目標(biāo)狀態(tài),而通常的服務(wù)流程描繪的是離散的服務(wù)處理,業(yè)務(wù)目標(biāo)通常體現(xiàn)在過程狀態(tài)而不僅僅是最終狀態(tài)中。
對于前文所述的國內(nèi)外研究進(jìn)展,我們通過對比分析,認(rèn)為人工預(yù)定義流程構(gòu)造服務(wù)協(xié)作結(jié)構(gòu)的方法有較大局限性,如費時費力,而且正確性難以保證;而基于服務(wù)的語義信息,使用智能規(guī)劃方法能自動構(gòu)造出滿足需求的服務(wù)協(xié)作結(jié)構(gòu),能改善人工構(gòu)造方法中的問題。但是這類方法在面對服務(wù)協(xié)作問題時也有局限性,主要是模型復(fù)雜度和規(guī)??蓴U(kuò)展方面的問題,具體包括以下幾個方面:
·傳統(tǒng)規(guī)劃方法面對的是簡單動作,大多只能產(chǎn)生順序的動作序列,然而,服務(wù)協(xié)作結(jié)構(gòu)中需要包含復(fù)雜的控制結(jié)構(gòu),包括循環(huán)、(非確定性)選擇等;
·服務(wù)協(xié)作中交換的“對象”是類型化消息,可包含任意復(fù)雜的結(jié)構(gòu),傳統(tǒng)規(guī)劃方法只能應(yīng)對有限域的“簡單對象”;
·在多方交互的服務(wù)協(xié)作中,規(guī)劃難以在原始動作層次進(jìn)行,如WS-BPEL中的receive和invoke活動映射為規(guī)劃動作,需要引用操作的輸入/輸出消息,甚至BPEL流程的內(nèi)部狀態(tài),顯式地刻畫操作的前、后置條件,而這些信息對多方交互形式的服務(wù)協(xié)作而言是隱藏不見的,傳統(tǒng)規(guī)劃方法不能解決好不可見(Unobservable)信息問題;
·顯式而復(fù)雜的目標(biāo)不易獲得,傳統(tǒng)規(guī)劃技術(shù)都是把可達(dá)的最終狀態(tài)作為規(guī)劃目標(biāo),而服務(wù)流程模型描繪的是離散的服務(wù)處理,真正的業(yè)務(wù)目標(biāo)經(jīng)常隱含在過程狀態(tài)中,而不是表現(xiàn)在最終狀態(tài)。
因此,如何在基于智能規(guī)劃的服務(wù)協(xié)作動態(tài)自動構(gòu)造過程中解決以上這些問題是當(dāng)前值得深入研究的。
為了解決當(dāng)前研究中存在的問題,本文認(rèn)為可以針對服務(wù)協(xié)作的復(fù)雜控制結(jié)構(gòu),選擇能有效解決該類問題的基于模型檢查的智能規(guī)劃技術(shù)作為模型自動構(gòu)造方法,例如可以采用基于知識的數(shù)據(jù)抽象方法來化減規(guī)劃域的狀態(tài)空間;此外可以使用同態(tài)映射方法,完備地將部分可觀察規(guī)劃域模型轉(zhuǎn)化全部可觀察規(guī)劃域模型。這些技術(shù)能使基于模型檢查的規(guī)劃方法滿足服務(wù)協(xié)作結(jié)構(gòu)的自動構(gòu)造需求,可有效地克服已有方法的缺陷。
服務(wù)、網(wǎng)絡(luò)和經(jīng)濟(jì)的相互滲透,促進(jìn)了軟件產(chǎn)業(yè)迅速的發(fā)展,同時也給軟件技術(shù)帶來前所未有的困難。以著名計算機(jī)科學(xué)家Grady Booch為首的100位軟件界權(quán)威人士曾經(jīng)共同預(yù)言:軟件將變得越來越復(fù)雜;新經(jīng)濟(jì)要求軟件能夠持續(xù)更新;軟件會不斷演進(jìn)下去,同時,各種挑戰(zhàn)也將伴隨著不斷出現(xiàn)[51]。
從技術(shù)發(fā)展趨勢上可以看出,在最近十幾年中,業(yè)界都在積極定義和改良分布式計算技術(shù)[52],使得可以實時地查找組件、在運行時發(fā)現(xiàn)組件的接口、在某種特定基礎(chǔ)上由組件組裝應(yīng)用程序[53]。我們正是沿著前人的足跡走向了服務(wù)協(xié)作動態(tài)構(gòu)造,開始嘗試動態(tài)復(fù)合分布在多臺不同主機(jī)上的許多基本的Web服務(wù)來實現(xiàn)復(fù)雜的業(yè)務(wù)流程[54],而不必費盡心思在大型計算機(jī)上預(yù)先建立巨型的應(yīng)用程序[55]。
在應(yīng)用市場需求方面,社會的全球化趨勢使服務(wù)協(xié)作面臨快速變化的市場、新的政策法規(guī)、靈活的業(yè)務(wù)協(xié)作關(guān)系和更大的競爭壓力,這一切都要求服務(wù)協(xié)作能夠快速地響應(yīng)變化以適應(yīng)新的業(yè)務(wù)模式和需求。面對變化的需求,服務(wù)協(xié)作必須以動態(tài)構(gòu)造和靈活重構(gòu)作為應(yīng)對策略。
雖然,服務(wù)協(xié)作所基于的Web服務(wù)技術(shù)為動態(tài)構(gòu)造奠定了體系結(jié)構(gòu)的基礎(chǔ)。服務(wù)是位置透明的,借助UDDI[56]注冊和動態(tài)發(fā)現(xiàn)機(jī)制,用戶可以不知道響應(yīng)自己需求的服務(wù)的位置,這樣有利于針對和適應(yīng)業(yè)務(wù)需求的變化;服務(wù)便于封裝和重用,通過WSDL[57]可以快速將軟件資源封裝為可重用的服務(wù),能夠隱藏底層實現(xiàn)的復(fù)雜性,并屏蔽服務(wù)的自治更新;服務(wù)是協(xié)議獨立的,SOAP通信機(jī)制使得服務(wù)的互操作更加靈活;服務(wù)是松散耦合的,允許動態(tài)發(fā)現(xiàn)和延遲綁定,有利于臨時組裝出復(fù)雜的系統(tǒng),提供更為快速和優(yōu)質(zhì)的需求響應(yīng)。然而,動態(tài)構(gòu)造不應(yīng)僅體現(xiàn)于軟件的體系結(jié)構(gòu)上,還應(yīng)同時體現(xiàn)在服務(wù)協(xié)作的構(gòu)造方法中。
正是因為意識到服務(wù)協(xié)作動態(tài)構(gòu)造的重要性,對相關(guān)技術(shù)方法的探索將繼續(xù)成為今后一段時期內(nèi)云計算的研究焦點。
1 Armbrust M,et al.Above the clouds:a Berkeley view of cloud computing.UCB/EECS,2009
2 馮玉琳,黃濤,金蓓弘.網(wǎng)絡(luò)分布計算和軟件工程.北京:科學(xué)出版社,2003
3 W3C.Simple object access protocol(SOAP),http://www.w3.org/TR/SOAP,2000
4 Rania K,F(xiàn)rank L.On web services aggregation.Berlin Heidelberg: Springer Verlag,2003
5 American Heritage Dictionaries(Editor).The American heritage dictionary of the english language,4 edition.BOSTON:Houghton Mifflin,2000
6 ebXML.Business process specification schema,version 1.01,http://www.ebxml.org/specs/ebBPSS.pdf,2001
7 RosettaNet.Partner interface process(PIP),http://www.rosettanet.org/RosettaNet,2001
8 W3C.Web service conversation language(WSCL)1.0,http://www.w3.org/TR/2002/NOTE-wscl10-20020314,2002
9 W3C.Web service choreography lnterface(WSCI)1.0,W3C Note 08,http://www.w3.org/TR/WSCI,2002
10 DARPA.OWL-S specification,http://www.daml.org/services/owl-s/1.1,2003
11 IBM.Web services coordination(ws-coordination),http://www.ibm.com/developerworks/library/ws-coor,2002
12 IBM.Web services transaction(ws-transaction),http://www.ibm.com/developerworks/library/ws-transpec,2002
13 IBM,BEA,Microsoft,SAP.Web services policy framework,http://www.ibm.com/developerworks/library/ws-polfram,2003
14 Doug B,Martin C,Oisin H,et al.Web services transaction management (WS-TXM)Version 1.0.Arjuna,F(xiàn)ujitsu,IONA,Oracle,and Sun,July 28,2003
15 LiangJiezhang,MarioJ.Thenextbigthing:web service collaboration.Berlin Heidelberg:Springer Verlag,2003
16 Sheng Q S,Benatallah B,Dumas M,et al.SELF-SERV:a platform for rapid composition of web services in a peer-to-peer environment.In: Proceedings of the 28th VLDB Conference,HK China,2002
17 Henrique P,LingLiu,Calton P.Adaptation space:adesign framework for adaptive web services.Berlin Heidelberg:Springer Verlag,2003
18 Michael N H.Software agents:the future of web services.Berlin Heidelberg:Springer Verlag,2003
19 Mercedes A,et al.Putting together web services and compositional software agents.Berlin Heidelberg:Springer Verlag,2003
20 Liu Shaohua,Wei Jun,Xu Wei.Service cooperation middleware and itssupportforprocessintegration.In:Proceedings of International Workshop on Grid and Cooperative Computing(GCC02),Sanya China,2002
21 Liu Shaohua,Wei Jun,Xu Wei.Towards dynamic process with variable structure by reflection.In:Proceedings of the 27th Annual International Computer Software and Applications Conference (COMPSAC2003),IEEE ComputerSociety,Dallas USA,Nov 2003
22 Liu Shaohua,Ye Dan,Wei Jun,et al.POP beyond SODA,reaching the new horizon of service cooperation.In:Proceedings ofthe 28th AnnualInternationalComputerSoftware and ApplicationsConference (COMPSAC2004),IEEE Computer Society,HK China,Sept 2004
23 劉紹華,魏峻,黃濤.基于服務(wù)協(xié)作中間件的動態(tài)流程模型.軟件學(xué)報,2004,15(10):435~444
24 Qiao Xiaoqiang,Wei Jun,Huang Tao.A decentralized approach for inter-enterprise business process collaboration.I-ESA,2006
25 Qiao Xiaoqiang,Wei Jun.A decentralized services choreography approach for business collaboration.SCC,2006
26 杜宗霞,懷進(jìn)鵬,王勇等.組合Web Service支撐系統(tǒng)的研究與實現(xiàn).北京航空航天大學(xué)學(xué)報,2003
27 Han Y,et al.VINCA-A visual and personalized business-level composition language forchaining web-based services.In:Proceedings of the 1st International Conference on Service-Oriented Computing,LNCS 2910,Springer Verlag,2003
28 馬曉星,余萍,陶先平等.一種面向服務(wù)的動態(tài)協(xié)同架構(gòu)及其支撐平臺.計算機(jī)學(xué)報,2005,28(4)
29 李曼,王大治,杜小勇等.基于領(lǐng)域本體的Web服務(wù)動態(tài)組合.計算機(jī)學(xué)報,2005,28(4)
30 廖軍,譚浩,劉錦德.基于Pi-演算的Web服務(wù)組合的描述和驗證.計算機(jī)學(xué)報,2005,28(4)
31 Casati F,Ilnicki S,Jin L J,et al.An open,flexible,and configurable system for service composition.HPL technical report,2000
32 Casati F,Shan M C.Dynamic and adaptive composition of e-services,published by Elsevier Science Ltd. In: 12th InternationalConference on Advanced Information Systems Engineering(CAiSE00),2001
33 Benatallah B,Sheng Q Z,Dumas M.The self-serv environment for web services composition.IEEE Internet Computing,2003 ,7(1):40~48
34 OrriensB,Yang J,Papazoglou M P.Modeldriven service composition,ICSOC,LNCS 2910.Berlin Heidelberg:Springer Verlag,2003
35 Orriens B,Yang J,Papazoglou M P.A framework for business rule driven web service composition,ER 2003 Workshops,LNCS 2814.Berlin Heidelberg:Springer Verlag,2003
36 Orriens B,Yang J,Papazoglou M P.A framework for business rule driven service composition,TES,LNCS 2819. Berlin Heidelberg:Springer Verlag,2003
37 Rao J,Su X.A survey of automated web service composition methods.In:Proceedings of the First International Workshop on Semantic Web Services and Web Process Composition,SWSWPC 2004,San Diego California USA,July 2004
38 Paolucci M,Sycara K,Kawamura T.Delivering semantic web services.In:Proc.WWW’03,2003
39 Constantinescu I,F(xiàn)altings B,Binder W.Typed based service composition.In:Proc.WWW’04,2004
40 Bultan T,F(xiàn)u X,Hull R,et al.Conversation specification:a new approach to design and analysis of e-service composition.In:Proceedings ofthe 12th InternationalWorld Wide Web Conference(WWW 2003),ACM 2003
41 Berardi D,Calvanese D,Giacomo G D,et al.Automatic composition of e-services that export their behavior.In:Proc.1st Int.Conf.on Service Oriented Computing(ICSOC),LNCS 2910,2003
42 Snehal T,José L A,Craig A K.A data integration approach to automatically composing and optimizing web services.In:Proceeding of 2004 ICAPS Workshop on Planning and Scheduling for Web and Grid Services,June 2004
43 Narayanan S,McIlraith S.Simulation,verification and automated composition of web services.In:Proceedings of the Eleventh International World Wide Web Conference,2002
44 McIlraith S,Son T.Adapting gogol for composition of semantic web services.In:Proceedings ofthe Eighth International Conference on Knowledge Representation and Reasoning,Toulouse France,2002
45 Wu D,Sirin E,Hendler J,et al.Automatic web services composition usingSHOP2.In:Twelfth World WideWeb Conference,2003
46 Drew M.Estimated regression planning for interactions with web services.In:AI Planning Systems Conference,2002
47 Shankar R P,Armando F.SWORD:a developer toolkit for web service composition.In:The Eleventh World Wide Web Conference(Web Engineering Track),Honolulu Hawaii,May 2002
48 Brahim M,Athman B,Ahmed K E.Composing web services on the semantic web.The VLDB Journal,2003,12(4)
49 Matskin M,Rao J.Value-added web services composition using automatic program synthesis.In:Web Services,E-Business,and the Semantic Web,CAiSE 2002 International Workshop,WES 2002,Toronto Canada,2002
50 Giunchiglia F,Traverso P.Planning as model checking.In:5th European Conference on Planning,ECP'99,Durham,UK,September 1999,In:Proceedings.Lecture Notes in Computer Science 1809,Springer,2000
51 Paul L,Mike D.Software and the new business economy.The Rational Edge,F(xiàn)ebruary 2001
52 Verissimo P,RodriguesL.Distributed systemsforsystem architects.Kluwer Academic Press,2001
53 Coulouris G,Dollimore J,Kindberg T.Distributed systems:concepts and design,third edition.Addison-Wesley,2001
54 Dayal U,et al.Business process coordination:state of the art,trends,and open issues.In:Proceedings of the 27th VLDB Conference,Roma Italy,2001
55 Chappell D,Jewell T.Java web services.O’Reilly Press,2002
56 W3C.Universal description,discovery and integration(UDDI),http://www.w3.org/TR/uddi,2001
57 W3C.Web services description language(WSDL),http://www.w3.org/TR/wsdl,2001