劉聰 楊懷洲
摘 ?要: Web服務動態(tài)組合方式相較于靜態(tài)組合方式擁有更高的靈活性和實用性,動態(tài)組合使服務在異常情況下可以被替換。文章通過對當前Web服務動態(tài)組合主要方法的實現(xiàn)原理與相關關鍵技術進行綜合分析,比較得出各類方法的適用性及優(yōu)缺點,并提出了Web服務動態(tài)組合的研究方向。
關鍵詞: Web服務; 服務組合; 智能規(guī)劃; 工作流技術
中圖分類號:TP301 ? ? ? ? ?文獻標識碼:A ? ?文章編號:1006-8228(2021)08-21-03
Research on key methods of web service dynamic composition
Liu Cong, Yang Huaizhou
(Xi'an Shiyou University, Xi'an, Shaanxi 710065, China)
Abstract: Compared with static composition, dynamic composition of web services has higher flexibility and practicability. Dynamic composition enables services to be replaced in abnormal situations. Through the comprehensive analysis of the implementation principles and related key technologies of the current main methods of web services dynamic composition, the applicability, advantages and disadvantages of these methods are obtained by the comparisons, in this paper, and ?the research direction of Web services dynamic composition is proposed.
Key words: Web service; service composition; AI planning; workflow technology
1 Web服務動態(tài)組合關鍵方法介紹
Web服務是面向服務的體系結構的一種典型實現(xiàn)方法,具有跨平臺、跨標準、跨語言等優(yōu)點。但是,由于當前單個Web服務功能有限,為了完成更加復雜多樣的業(yè)務需求,我們需要組合不同服務以獲得更大粒度的服務[1]。
靜態(tài)組合和動態(tài)組合是Web服務的兩種組合方式[2]。靜態(tài)組合需要定義大量的模板且服務在運行期間不可替換更改,針對上述缺陷,需要對服務動態(tài)組合。
當前關于Web服務動態(tài)組合的研究主要主要分為兩個方向:一個是基于智能規(guī)劃,以斯坦福大學和卡內基-梅隆大學等機構提出的Web服務本體語言(OWL-S)為代表;另一個是基于工作流技術,以IBM、微軟等提出的業(yè)務流程執(zhí)行語言(BPEL4WS)以及惠普公司提出的EFlow技術為代表[3]。
⑴ 基于語義的Web服務動態(tài)組合方法
面向語義的Web服務動態(tài)組合,其基本思想是利用本體來描述Web服務,通過帶有語義信息的Web服務使服務之間能夠自動發(fā)現(xiàn)、組合和執(zhí)行。
目前,主要的語義Web服務描述語言有WSMO(Web service modeling ontology)、SAWSDL(semantic annotations for WSDL and XML schema)和OWL-S(Ontology Web Language for Services,Web服務的本體語言)等。
OWL-S是在語義網(wǎng)的OWL基礎架構下,用來描述語義網(wǎng)服務,在 OWL-S頂層服務本體中有三種本體:Service Profile、Service Model和Service Grounding[4]。
Service Profile描述服務是什么,描述服務的功能、適用范圍以及服務的質量;
Service Model描述服務如何工作,描述調用服務以及服務執(zhí)行期間的相關情況;
Service Grounding描述如何訪問服務,描述訪問一個服務的相關細節(jié)。
實現(xiàn)基于 AI 規(guī)劃的動態(tài)服務組合方法,是一個十分復雜的問題。目前,這一方法還處于理論探索階段,大多數(shù)Web 服務規(guī)范都是基于語法的[5],其表達能力弱,無法支持服務組合過程中的智能推理,適用于事先知道服務功能和效果的系統(tǒng)。
⑵ 基于BPEL的Web服務動態(tài)組合
BPEL是基于工作流方法中的典型代表,目前已經(jīng)成為 Web 服務組合工業(yè)上的事實標準。BPEL(Business Process Execution Language)是目前應用廣泛的一種用于自動化業(yè)務流程的形式規(guī)約語言,BPEL結合并且替換了IBM的WSFL(Web Services Flow Language)和微軟公司的XLANG規(guī)范,它的作用是將一組現(xiàn)有的服務重新組合起來,形成一個新的Web服務,以此來完成一個新的業(yè)務需求[2]。
BPEL是基于XML的流程描述語言,支持相關的Web服務技術:WSDL、SOAP、UDDI。BPEL利用WSDL規(guī)范提供抽象定義與具體實現(xiàn)的分離機制,結合工作流的建模,流程執(zhí)行時在UDDI注冊中心動態(tài)查詢,獲取該抽象定義可能的Web服務實現(xiàn),再根據(jù)QoS選擇最優(yōu)Web服務。
基于工作流技術的服務組合方法圖形建模界面直觀,自動化程度較高,實用性高,得到很多開源產(chǎn)品的支持。同時工作流的理論研究比較成熟,基于BPEL的規(guī)范得到IBM和ORACLE等主流廠家的支持,符合現(xiàn)實商業(yè)需求。
⑶ 通過服務的動態(tài)綁定實現(xiàn)服務動態(tài)組合
通過服務的動態(tài)綁定實現(xiàn)服務動態(tài)組合,通常在服務組合定義過程中不為活動指定固定的服務提供者,將具體的綁定延遲到組合服務執(zhí)行時動態(tài)完成,根據(jù)業(yè)務流程運行時的輸入動態(tài)調用Web服務[2]。即:設計階段使用抽象服務,執(zhí)行階段再進行具體服務的綁定。
靜態(tài)綁定適用于高度定向的系統(tǒng),服務的動態(tài)綁定使服務在異常情況下可以被替換,增強了服務組合能力,使服務在運行期間仍具有高度靈活性和實用性,適用于業(yè)務流程更加復雜的大型系統(tǒng)。
⑷ 基于Petri網(wǎng)的Web服務動態(tài)組合
基于Petri網(wǎng)的Web服務動態(tài)組合是較為常用的一種形式化的Web服務組合方法。由于Web服務的行為基本上是操作的一個偏序集,所以可以直接將Web服務映射到一個Petri網(wǎng)上,Petri網(wǎng)是將具體的服務組合描述語言與形式化模型進行映射,實現(xiàn)流程描述到形式化模型的轉換,然后再進行驗證[6]。
Petri網(wǎng)作為描述動態(tài)Web服務組合的工具,方便直觀,但當服務數(shù)量較多,服務之間交互復雜時,可能會引起狀態(tài)空間爆炸,且這種方法對于流程描述語言會有要求,適用于環(huán)境較為理想的系統(tǒng)。
⑸ 基于知識復用進行服務動態(tài)組合
基于知識復用進行服務動態(tài)組合--Keen(AKnowledge Reuse Based Approach for Dynamic Services Composition) ,方法的核心思想是將領域專家的知識和經(jīng)驗封裝成組合模板,透明地提供給用戶,使用戶可以在業(yè)務層面以一種大粒度的方式描述需求,建立業(yè)務應用。
基于知識復用的服務動態(tài)組合遵循“構建與使用相剝離”的原則,它將面向服務的應用構造分為兩個層面,基礎設施構造和應用構造,領域專家將其知識與經(jīng)驗封裝成組合模板提供給相關業(yè)務用戶,業(yè)務用戶根據(jù)自身需求,在應用層面以一種大粒度方式按需構建應用[7]。這種動態(tài)服務組合方法提高了業(yè)務用戶主動參與的能力,但對用戶計算機知識要求較高。
⑹ 通過增加Cache動態(tài)調用模塊
國防科學技術大學CISR技術國防科技重點實驗室提出了一種SOA架構下的動態(tài)服務組合模型,通過增加一個Cache動態(tài)調用模塊來實現(xiàn)服務的動態(tài)調用。客戶端部署后,服務使用者首次成功調用服務時的信息將被保存在Cache模塊中,如果服務失效,則重新搜索并調用服務,并更新Cache中的內容[8]。這種服務組合的效率和可執(zhí)行程度高。
2 主要動態(tài)服務組合方法的比較
Web服務的應用程序需要應對開放和不斷發(fā)展的環(huán)境,并需要在動態(tài)環(huán)境下運行(例如:用戶需求的變化、資源可用性的變化)[9]。表1對上述幾種動態(tài)組合方法進行了比較及總結。
3 結束語
Web服務動態(tài)組合相較于靜態(tài)組合實用性更高且更加靈活。本文通過對當前Web服務動態(tài)組合主要方法的實現(xiàn)原理與相關關鍵技術進行了綜合分析,進而比較得出各類方法的優(yōu)缺點及適用性。Web服務組合將服務按照一定規(guī)則有序調用,而動態(tài)組合在Web服務組合的基礎上根據(jù)QoS動態(tài)替換獲得質量更高的服務。因此,如何準確發(fā)現(xiàn)和描述Web服務、如何在服務組合的過程中選擇服務有待進一步研究。
參考文獻(References):
[1] 丁志軍,周澤霞.Web服務組合測試綜述[J].軟件學報,2018.29(2):299-319
[2] 任文娜.基于BPEL的Web服務組合可靠性分析研究[D].西安電子科技大學,2018.
[3] 李靜亞,寇志亮.AI規(guī)劃在Web服務組合中的應用[J].信息化建設,2016.4:31
[4] 凌靜,江凌云.物聯(lián)網(wǎng)服務的語義化描述:一種WSDL到OWL-S的轉換方法[J].計算機科學,2019.46(4):89-94
[5] Adel Boukhadra, Karima Benatchba, Amar Balla. Efficient distributed discovery and composition of OWL-S process model in P2P systems,2016.7(2):187-203
[6] 鄧式陽.基于邏輯Petri網(wǎng)的Web服務組合與優(yōu)化方法研究[D].山東科技大學,2019.
[7] 劉穎,胡海濤.一種基于知識復用的動態(tài)服務組合方法[J].計算機科學,2011.38(3):153-158
[8] 皇甫先鵬,陳洪輝,羅雪山.一種SOA架構下的動態(tài)服務組合模型[J].中國電子科學研究院學報,2009.4(5):469-472,479
[9] Martina De Sanctis, Antonio Bucchiarone, Annapaola Marconi.Dynamic adaptation of service-based applications:a design for adaptation approach,2020.11(1):70-73
收稿日期:2021-03-17
基金項目:廣州市哲學社會科學發(fā)展“十三五”規(guī)劃2018年青年項目(2018GZQN43); 廣東省教育廳青年創(chuàng)新人才(人文社科)項目(2016WQNCX095)
作者簡介:錢志華(1982-),男,江西撫州人,碩士,算法工程師,主要研究方向:圖像工程,生物特征識別。