陳 莉 萍
(渭南師范學院 網絡安全與信息化學院,陜西 渭南 714099)
?
【現代應用技術研究】
Web服務組合中事務驅動的服務選擇有限自動機
陳 莉 萍
(渭南師范學院 網絡安全與信息化學院,陜西 渭南 714099)
對于Web服務組合來說,組件服務的可靠性和一致性是非常重要的要求,然而傳統面向QoS的組合方法中并沒有考慮到組件服務的事務約束。文章提出了一種利用Web服務事務屬性進行服務選擇的方法。在該方法中定義了Web服務的事務屬性和反映用戶事務需求的冒險度,建立了事務驅動的服務選擇有限自動機,并用實驗證明該選擇機制是有效的。
Web服務;事務驅動;工作流模式;有限自動機
Web服務是實現SOA的最佳方法之一,它的目標就是通過SOAP[1]、WSDL[2]、UDDI[3]等協議和規范建立一個松耦合的集成模型,從而實現跨組織的組合服務。目前很多研究主要集中在對組件服務求解QoS上,實現了QoS全局或局部最優的Web服務選擇[4-6]。然而它們無法保證組合服務執行時的一致性和可靠性。為了實現Web服務運行結果的可靠性和一致性,必須在服務選擇時引入事務處理機制[7]。傳統的事務模型的ACID特性并不能完全應用在Web服務的事務處理中[8]。在此本文提出了一種利用Web服務事務屬性進行服務選擇的方法,利用該方法使得選擇出的服務組合運行時是一致的、可靠的。它也可以和QoS服務選擇相結合,在保證一致性、可靠性運行前提下,實現QoS最優選擇。首先利用Web服務事務屬性進行服務選擇的方法定義了服務的事務屬性。由于組件服務不僅可以由基本服務充當,也可以是組合服務,所以分別對兩者的事務屬性進行定義。其次,提出了冒險度定義,通過它表示用戶事務需求。最后,根據這些推出了事務驅動的服務選擇自動機,根據該自動機指導組件服務的選擇,通過這些被選擇組件服務形成的組合服務能可靠地、成功地被執行。
1.1基本Web服務(簡稱WS)事務屬性
Web服務行為屬性是指一個服務和其他服務交互時功能性的實現方式。在一個組合服務的幾個組件交互時,某個組件服務執行時出現了一些意外行為,這不僅會導致本服務運行失敗,還會對其他組件運行產生副作用。組合的Web服務是一個交叉型跨組織的系統,所以必須確保它的一致性和可靠性。
定義1不可重入的(pivot,簡稱p): 一個Web服務是不可重入的是指如果該服務被成功執行,則它的效果和影響是不能被語義地撤銷,否則它不會產生任何影響和作用。一個被執行的pivot服務是不能被回滾的。
定義2可補償的(compensatable,簡稱c):一個Web服務是可補償的是指存在另一個服務WS1它可以語義地撤銷該服務的執行。

一個基本Web服務可以具有多種屬性,所有基本Web服務可能具有的行為屬性集合為{p,c,pr,cr}。
1.2組合Web服務(簡稱CWS)事務屬性
一個組合服務是對現有的Web服務的聚合,它通過這些現有服務的相互協調、相互作用,提供一個新的增值服務,實現一個統一目標。
(1)組合服務的工作流模式。YAWL是一種過程建模語言,在此利用它描述一個組合服務的組合邏輯。組合服務使用YAWL中的工作流來表示,一個工作流由許多活動構成,每個活動由一個組件服務執行實現。組件服務業務流程的定義是通過指定它們之間的依賴關系實現的。而組件服務之間的依賴關系是通過工作流模式和事務屬性來定義的。工作流模式一般指定了組件服務如何被裝配到工作流中,以及某組件服務行為是如何影響其他組件服務的。事務屬性則指定了在失效情況下,服務行為是否為可補償的。
服務之間的依賴關系是通過如下幾種工作流模式實現的:順序(sequence)、AND-split(parallel split)、XOR-split (exclusive choice)、 AND-join (synchronization)和 XOR-join (simple merge)。在此組合服務既可以由基本服務組合而成,也可以由組合服務組合而成。
(2)組合Web服務的行為屬性。把組合服務作為整體,定義其行為屬性。

定義5可補償的組合服務(簡稱c):一個組合Web服務是可補償的,如果所有組件服務為可補償的。
定義6可重試的組合服務(簡稱r):一個組合Web服務是可重試的,如果所有組件服務為可重試的。
定義7事務的組合服務(簡稱TCWS):它是一個組合服務,其事務屬性在集合{a,ar,c,cr}中。
通過基本服務行為屬性{p,c,pr,cr}和組合服務行為屬性{a,ar,c,cr}的定義,根據輸入初始狀態和用戶提出事務需求,將決定為工作流裝配每個組件服務的事務屬性。同時為服務提供失效處理和補償機制的依據。
2.1冒險度的定義
工作流裝配每個組件服務的事務屬性是由輸入初始狀態和用戶提出事務需求兩者決定的,但是用戶事務需求不同于QoS需求,而一個服務被成功執行的概率(通過事務屬性反映的)將直接決定這個服務是否被用戶選擇和接受。在此給出了一個反映服務被完成和恢復的確定性標準,即risk(冒險度)。通過risk(冒險度)不同等級反映服務被完成和恢復的確定性。
定義8risk 0,如果一個執行服務被完成,它的結果是可以被補償的,即用戶可以執行一個服務語義撤銷的前一個服務。
risk 1,如果一個執行服務被完成,它的結果不能保證是被補償的或語義上被撤銷的。
2.2事務驅動的服務選擇自動機
從初始狀態開始,組件服務在不同工作流模式中使用不同的裝配過程。每裝配一個服務就可以獲得一個組合服務的事務屬性,直到n個服務被裝配完成則可以獲得最終組合服務事務屬性。在順序結構中服務將被從左到右裝配到活動中。根據已經裝配好的服務事務屬性和用戶定義的risk等級,選擇合適的組件服務裝配到下一個活動中。裝配好的組合服務應該是事務的。在分支結構中(主要指AND模式)服務將被從頂到底地裝配到活動中。在AND-split結構中組合服務獲得事務屬性時從里向外、從基本服務裝配開始。在獲得組合服務事務屬性時,每裝配給工作流中的活動一個服務,就獲得一個新的組合服務,當前組合服務事務屬性通過以前被裝配的服務(可能是一個組合服務也可能是基本服務)事務屬性和新組裝的服務事務屬性獲得。當最后一個活動的服務被組裝完,最終的組合服務事務屬性就會被獲得。以前被裝配的服務和新組裝的服務的類型可能出現的組合形式為:WS(表示基本服務)和WS、WS和CWS(表示組合服務)、CWS和WS及CWS和CWS,它們在不同工作流模式中形成組合服務屬性。









在該規則中,p、pr、c、cr、a、ar表示服務的事務屬性,SEQ表示以順序模式組裝,PAR表示以并行模式組裝。工作流的初始狀態為{c,p,a,cr,pr,ar}6種,以初始狀態為p或a為例,說明利用該自動機進行服務選擇過程。當初始狀態為p或a時,如果工作流模式為順序結構,則必須選擇事務屬性為{pr,cr,ar}的組件服務組裝到下一個活動中,即該服務必須是可重試的。如果工作流模式為分支結構,則必須選擇事務屬性為cr的組件服務組裝到分支活動中。另外,當初始狀態為p或a時,無論是哪種工作流模式,組裝多少個服務,最終得到的組合服務的事務屬性為a。
2.3事務驅動的服務選擇算法
根據輸入的工作流,以用戶提出的冒險度為依據,從初始狀態出發自左向右、自頂向上,通過服務選擇自動機指導每個組件服務選擇,從而達到確保組合服務能被可靠、成功執行的目的。服務選擇算法如下:
Algorithm Select
Input:冒險度等級(risk 0或risk 1)和由n個活動構成的工作流(a1,a2,…,an)
Output:n個被選擇的組件服務
Begin
If risk 0=true then
For a1to ando
ai=getuebservice(c∪cr)
End for
End if
If risk 1=true then
Fora1toando
If sequential path (ai-1;ai)=true then/*在順序模式中*/
Ifai-1∈{p,pr,a,ar} then
ai=getwebservice(pr∪cr∪ar)/*該活動只能被裝配事務屬性為{pr,cr,ar}的服務*/
End if
Ifai-1∈{c,cr} then
ai=getwebservice(pr∪cr∪ar∪p∪c∪a)
End if
End if
If concurrent path (split-pattern…ai…ajjoin-pattern)=true then/*在并發模式中*/
Ifai-1∈{p,a} then
ai=getwebservice(cr)
End if
Ifai-1∈{pr,ar} then
ai=getwebservice(pr,ar,cr)
End if
Ifai-1∈{c,cr} then
ai=getwebservice(c,cr)
End if
End if
End for
End if
End
為了有效地驗證上面提出的事務驅動的服務選擇機制,選用了配置Core II 1.07 GHz 、內存為1.014 MB、WindowsVista、 Java 2 Enterprise Edition V1.5.0的實驗環境,實現了上面描述的基于自動機的服務選擇算法。

圖1 輸入工作流

圖2 執行價格權重和score的關系
實驗中輸入工作流如圖1所示。圖1中每個活動產生15個候選服務,每個候選服務的事務屬性在{p,pr,c,cr,a,ar}中, QoS向量取值按照其對應的事務屬性在其區間中選取。圖2給出了隨著執行價格所占權重增加,不同冒險度等級的組合服務score變化曲線。在圖2中可以看到,如果價格標準對于用戶來說很重要,即價格所占比重較大的場合,應該按照冒險度等級為risk 1,通過有限自動機選擇相應事務屬性服務。由于冒險度等級為risk 0服務需要生成事務的補償機制,它花費的代價肯定比沒有補償機制要大。而價格權重越大,risk 0的組合服務的score會越低。所以根據事務驅動的有限自動機選擇的服務,能真實地反映出組合服務的特征,并為服務優選提供依據。
由于冒險度圖2執行價格權重和score的關系等級為risk 1服務沒有補償機制,不能被語義地撤銷,使得請求被響應時間延長。圖3給出了隨著執行時間所占權重增加,不同冒險度等級的組合服務score變化曲線。在圖3中可以看到,如果時間標準對于用戶來說很重要,即時間所占比重較大的場合,應該選擇冒險度等級為risk 0。通過有限自動機選擇事務屬性為{c,cr}的服務。
組合的Web服務是一個交叉型跨組織的系統,在一個組合服務的幾個組件交互時,某個組件服務執行時出現了一些意外行為,這不僅會導致本服務運行失敗,還會對其他組件運行產生副作用。在組件服務選擇時,如果注重QoS最優,沒有考慮其事務屬性,則可能導致組合服務運行失敗,或產生副作用。為了保證組合服務的一致性、可靠性,本文討論了在組件服務選擇時,先從事務屬性出發,根據事務驅動服務選擇有限自動機,選擇組件服務形成組合服務也是事務的,保證了其執行時的一致性和可靠性。
[1] Simeonov S. SOAP[J].XML Journal,2000,(4):12-16.
[2] Tr?ger P. Encyclopedia of Social Network Analysis and Mining[M].New York:Springer,2014.2420-2423.
[3] TamilarasiK,RamakrishnanM. Design and Development of an Enhanced UDDI for Efficient Discovery of Web Services[M]//Advances in Communication,Network,and Computing.Berlin Heidelberg:Springer,2012.109-114.
[4] Chen T,Bahsoon R,Theodoropoulos G,et al. Dynamic QoS Optimization Architecture for Cloud-based DDDAS[J].Procedia Computer Science,2013,18:1881-1890.
[5] Yau S S,Ye N,Sarjoughian H,et al.Enterprise Resource Planning:Concepts,Methodologies,Tools,and Applications[M].Pennsylvanaia:Information Resources Management Association,2013.1213-1231.
[6] Cardellini V,Casalicchio E,Grassi V,et al. Qos-driven runtime adaptation of service oriented architectures[M]//Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering. New York:ACM,2009.131-140.
[7] WangH G,Hsu CH,Liang Z J,et al. Multi-user web service selection based on multi-QoS prediction[J].Information Systems Frontiers,2014,16(1):143-152.
[8] Yu Q,RegeMt,BouguettayaA,et al. A two-phase framework for quality-aware Web service selection[J].Service Oriented Computing and Applications,2010,(2):63-79.
【責任編輯牛懷崗】
Transaction-driven Finite Automata of Service Selection for Web Service Composition
CHEN Li-ping
(School of Network Safety and Informationization,Weinan Normal University,Weinan 714099,China)
Reliability and consistency are most important requirements for Web service composition. However,the conventional QoS-aware composition approaches don’t consider the transactional constraints during the composition process. This paper addresses the issue of selecting Web services according to their transactional properties. Transactional attributes and risk are defined for Web service,and a transaction-driven finite automaton of service selection is proposed. Experimental results show that the selection mechanism is effective.
Web service; transactional driver; workflow patterns; finite automata
TP393
A
1009-5128(2016)12-0041-05
2016-04-05
陜西省教育廳科研計劃項目:泛在網絡的U-China戰略中服務的優化和可靠的組合技術研究(15JK1237)
陳莉萍(1976—),女,甘肅天水人,渭南師范學院網絡安全與信息化學院副教授,工學碩士,主要從事Web服務計算研究。