陳 莉 萍
(渭南師范學(xué)院 網(wǎng)絡(luò)安全與信息化學(xué)院,陜西 渭南 714099)
?
【現(xiàn)代應(yīng)用技術(shù)研究】
Web服務(wù)組合中事務(wù)驅(qū)動的服務(wù)選擇有限自動機
陳 莉 萍
(渭南師范學(xué)院 網(wǎng)絡(luò)安全與信息化學(xué)院,陜西 渭南 714099)
對于Web服務(wù)組合來說,組件服務(wù)的可靠性和一致性是非常重要的要求,然而傳統(tǒng)面向QoS的組合方法中并沒有考慮到組件服務(wù)的事務(wù)約束。文章提出了一種利用Web服務(wù)事務(wù)屬性進行服務(wù)選擇的方法。在該方法中定義了Web服務(wù)的事務(wù)屬性和反映用戶事務(wù)需求的冒險度,建立了事務(wù)驅(qū)動的服務(wù)選擇有限自動機,并用實驗證明該選擇機制是有效的。
Web服務(wù);事務(wù)驅(qū)動;工作流模式;有限自動機
Web服務(wù)是實現(xiàn)SOA的最佳方法之一,它的目標(biāo)就是通過SOAP[1]、WSDL[2]、UDDI[3]等協(xié)議和規(guī)范建立一個松耦合的集成模型,從而實現(xiàn)跨組織的組合服務(wù)。目前很多研究主要集中在對組件服務(wù)求解QoS上,實現(xiàn)了QoS全局或局部最優(yōu)的Web服務(wù)選擇[4-6]。然而它們無法保證組合服務(wù)執(zhí)行時的一致性和可靠性。為了實現(xiàn)Web服務(wù)運行結(jié)果的可靠性和一致性,必須在服務(wù)選擇時引入事務(wù)處理機制[7]。傳統(tǒng)的事務(wù)模型的ACID特性并不能完全應(yīng)用在Web服務(wù)的事務(wù)處理中[8]。在此本文提出了一種利用Web服務(wù)事務(wù)屬性進行服務(wù)選擇的方法,利用該方法使得選擇出的服務(wù)組合運行時是一致的、可靠的。它也可以和QoS服務(wù)選擇相結(jié)合,在保證一致性、可靠性運行前提下,實現(xiàn)QoS最優(yōu)選擇。首先利用Web服務(wù)事務(wù)屬性進行服務(wù)選擇的方法定義了服務(wù)的事務(wù)屬性。由于組件服務(wù)不僅可以由基本服務(wù)充當(dāng),也可以是組合服務(wù),所以分別對兩者的事務(wù)屬性進行定義。其次,提出了冒險度定義,通過它表示用戶事務(wù)需求。最后,根據(jù)這些推出了事務(wù)驅(qū)動的服務(wù)選擇自動機,根據(jù)該自動機指導(dǎo)組件服務(wù)的選擇,通過這些被選擇組件服務(wù)形成的組合服務(wù)能可靠地、成功地被執(zhí)行。
1.1基本W(wǎng)eb服務(wù)(簡稱WS)事務(wù)屬性
Web服務(wù)行為屬性是指一個服務(wù)和其他服務(wù)交互時功能性的實現(xiàn)方式。在一個組合服務(wù)的幾個組件交互時,某個組件服務(wù)執(zhí)行時出現(xiàn)了一些意外行為,這不僅會導(dǎo)致本服務(wù)運行失敗,還會對其他組件運行產(chǎn)生副作用。組合的Web服務(wù)是一個交叉型跨組織的系統(tǒng),所以必須確保它的一致性和可靠性。
定義1不可重入的(pivot,簡稱p): 一個Web服務(wù)是不可重入的是指如果該服務(wù)被成功執(zhí)行,則它的效果和影響是不能被語義地撤銷,否則它不會產(chǎn)生任何影響和作用。一個被執(zhí)行的pivot服務(wù)是不能被回滾的。
定義2可補償?shù)?compensatable,簡稱c):一個Web服務(wù)是可補償?shù)氖侵复嬖诹硪粋€服務(wù)WS1它可以語義地撤銷該服務(wù)的執(zhí)行。
一個基本W(wǎng)eb服務(wù)可以具有多種屬性,所有基本W(wǎng)eb服務(wù)可能具有的行為屬性集合為{p,c,pr,cr}。
1.2組合Web服務(wù)(簡稱CWS)事務(wù)屬性
一個組合服務(wù)是對現(xiàn)有的Web服務(wù)的聚合,它通過這些現(xiàn)有服務(wù)的相互協(xié)調(diào)、相互作用,提供一個新的增值服務(wù),實現(xiàn)一個統(tǒng)一目標(biāo)。
(1)組合服務(wù)的工作流模式。YAWL是一種過程建模語言,在此利用它描述一個組合服務(wù)的組合邏輯。組合服務(wù)使用YAWL中的工作流來表示,一個工作流由許多活動構(gòu)成,每個活動由一個組件服務(wù)執(zhí)行實現(xiàn)。組件服務(wù)業(yè)務(wù)流程的定義是通過指定它們之間的依賴關(guān)系實現(xiàn)的。而組件服務(wù)之間的依賴關(guān)系是通過工作流模式和事務(wù)屬性來定義的。工作流模式一般指定了組件服務(wù)如何被裝配到工作流中,以及某組件服務(wù)行為是如何影響其他組件服務(wù)的。事務(wù)屬性則指定了在失效情況下,服務(wù)行為是否為可補償?shù)摹?/p>
服務(wù)之間的依賴關(guān)系是通過如下幾種工作流模式實現(xiàn)的:順序(sequence)、AND-split(parallel split)、XOR-split (exclusive choice)、 AND-join (synchronization)和 XOR-join (simple merge)。在此組合服務(wù)既可以由基本服務(wù)組合而成,也可以由組合服務(wù)組合而成。
(2)組合Web服務(wù)的行為屬性。把組合服務(wù)作為整體,定義其行為屬性。
定義5可補償?shù)慕M合服務(wù)(簡稱c):一個組合Web服務(wù)是可補償?shù)?,如果所有組件服務(wù)為可補償?shù)摹?/p>
定義6可重試的組合服務(wù)(簡稱r):一個組合Web服務(wù)是可重試的,如果所有組件服務(wù)為可重試的。
定義7事務(wù)的組合服務(wù)(簡稱TCWS):它是一個組合服務(wù),其事務(wù)屬性在集合{a,ar,c,cr}中。
通過基本服務(wù)行為屬性{p,c,pr,cr}和組合服務(wù)行為屬性{a,ar,c,cr}的定義,根據(jù)輸入初始狀態(tài)和用戶提出事務(wù)需求,將決定為工作流裝配每個組件服務(wù)的事務(wù)屬性。同時為服務(wù)提供失效處理和補償機制的依據(jù)。
2.1冒險度的定義
工作流裝配每個組件服務(wù)的事務(wù)屬性是由輸入初始狀態(tài)和用戶提出事務(wù)需求兩者決定的,但是用戶事務(wù)需求不同于QoS需求,而一個服務(wù)被成功執(zhí)行的概率(通過事務(wù)屬性反映的)將直接決定這個服務(wù)是否被用戶選擇和接受。在此給出了一個反映服務(wù)被完成和恢復(fù)的確定性標(biāo)準(zhǔn),即risk(冒險度)。通過risk(冒險度)不同等級反映服務(wù)被完成和恢復(fù)的確定性。
定義8risk 0,如果一個執(zhí)行服務(wù)被完成,它的結(jié)果是可以被補償?shù)模从脩艨梢詧?zhí)行一個服務(wù)語義撤銷的前一個服務(wù)。
risk 1,如果一個執(zhí)行服務(wù)被完成,它的結(jié)果不能保證是被補償?shù)幕蛘Z義上被撤銷的。
2.2事務(wù)驅(qū)動的服務(wù)選擇自動機
從初始狀態(tài)開始,組件服務(wù)在不同工作流模式中使用不同的裝配過程。每裝配一個服務(wù)就可以獲得一個組合服務(wù)的事務(wù)屬性,直到n個服務(wù)被裝配完成則可以獲得最終組合服務(wù)事務(wù)屬性。在順序結(jié)構(gòu)中服務(wù)將被從左到右裝配到活動中。根據(jù)已經(jīng)裝配好的服務(wù)事務(wù)屬性和用戶定義的risk等級,選擇合適的組件服務(wù)裝配到下一個活動中。裝配好的組合服務(wù)應(yīng)該是事務(wù)的。在分支結(jié)構(gòu)中(主要指AND模式)服務(wù)將被從頂?shù)降椎匮b配到活動中。在AND-split結(jié)構(gòu)中組合服務(wù)獲得事務(wù)屬性時從里向外、從基本服務(wù)裝配開始。在獲得組合服務(wù)事務(wù)屬性時,每裝配給工作流中的活動一個服務(wù),就獲得一個新的組合服務(wù),當(dāng)前組合服務(wù)事務(wù)屬性通過以前被裝配的服務(wù)(可能是一個組合服務(wù)也可能是基本服務(wù))事務(wù)屬性和新組裝的服務(wù)事務(wù)屬性獲得。當(dāng)最后一個活動的服務(wù)被組裝完,最終的組合服務(wù)事務(wù)屬性就會被獲得。以前被裝配的服務(wù)和新組裝的服務(wù)的類型可能出現(xiàn)的組合形式為:WS(表示基本服務(wù))和WS、WS和CWS(表示組合服務(wù))、CWS和WS及CWS和CWS,它們在不同工作流模式中形成組合服務(wù)屬性。
在該規(guī)則中,p、pr、c、cr、a、ar表示服務(wù)的事務(wù)屬性,SEQ表示以順序模式組裝,PAR表示以并行模式組裝。工作流的初始狀態(tài)為{c,p,a,cr,pr,ar}6種,以初始狀態(tài)為p或a為例,說明利用該自動機進行服務(wù)選擇過程。當(dāng)初始狀態(tài)為p或a時,如果工作流模式為順序結(jié)構(gòu),則必須選擇事務(wù)屬性為{pr,cr,ar}的組件服務(wù)組裝到下一個活動中,即該服務(wù)必須是可重試的。如果工作流模式為分支結(jié)構(gòu),則必須選擇事務(wù)屬性為cr的組件服務(wù)組裝到分支活動中。另外,當(dāng)初始狀態(tài)為p或a時,無論是哪種工作流模式,組裝多少個服務(wù),最終得到的組合服務(wù)的事務(wù)屬性為a。
2.3事務(wù)驅(qū)動的服務(wù)選擇算法
根據(jù)輸入的工作流,以用戶提出的冒險度為依據(jù),從初始狀態(tài)出發(fā)自左向右、自頂向上,通過服務(wù)選擇自動機指導(dǎo)每個組件服務(wù)選擇,從而達到確保組合服務(wù)能被可靠、成功執(zhí)行的目的。服務(wù)選擇算法如下:
Algorithm Select
Input:冒險度等級(risk 0或risk 1)和由n個活動構(gòu)成的工作流(a1,a2,…,an)
Output:n個被選擇的組件服務(wù)
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)/*該活動只能被裝配事務(wù)屬性為{pr,cr,ar}的服務(wù)*/
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/*在并發(fā)模式中*/
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
為了有效地驗證上面提出的事務(wù)驅(qū)動的服務(wù)選擇機制,選用了配置Core II 1.07 GHz 、內(nèi)存為1.014 MB、WindowsVista、 Java 2 Enterprise Edition V1.5.0的實驗環(huán)境,實現(xiàn)了上面描述的基于自動機的服務(wù)選擇算法。
圖1 輸入工作流
圖2 執(zhí)行價格權(quán)重和score的關(guān)系
實驗中輸入工作流如圖1所示。圖1中每個活動產(chǎn)生15個候選服務(wù),每個候選服務(wù)的事務(wù)屬性在{p,pr,c,cr,a,ar}中, QoS向量取值按照其對應(yīng)的事務(wù)屬性在其區(qū)間中選取。圖2給出了隨著執(zhí)行價格所占權(quán)重增加,不同冒險度等級的組合服務(wù)score變化曲線。在圖2中可以看到,如果價格標(biāo)準(zhǔn)對于用戶來說很重要,即價格所占比重較大的場合,應(yīng)該按照冒險度等級為risk 1,通過有限自動機選擇相應(yīng)事務(wù)屬性服務(wù)。由于冒險度等級為risk 0服務(wù)需要生成事務(wù)的補償機制,它花費的代價肯定比沒有補償機制要大。而價格權(quán)重越大,risk 0的組合服務(wù)的score會越低。所以根據(jù)事務(wù)驅(qū)動的有限自動機選擇的服務(wù),能真實地反映出組合服務(wù)的特征,并為服務(wù)優(yōu)選提供依據(jù)。
由于冒險度圖2執(zhí)行價格權(quán)重和score的關(guān)系等級為risk 1服務(wù)沒有補償機制,不能被語義地撤銷,使得請求被響應(yīng)時間延長。圖3給出了隨著執(zhí)行時間所占權(quán)重增加,不同冒險度等級的組合服務(wù)score變化曲線。在圖3中可以看到,如果時間標(biāo)準(zhǔn)對于用戶來說很重要,即時間所占比重較大的場合,應(yīng)該選擇冒險度等級為risk 0。通過有限自動機選擇事務(wù)屬性為{c,cr}的服務(wù)。
組合的Web服務(wù)是一個交叉型跨組織的系統(tǒng),在一個組合服務(wù)的幾個組件交互時,某個組件服務(wù)執(zhí)行時出現(xiàn)了一些意外行為,這不僅會導(dǎo)致本服務(wù)運行失敗,還會對其他組件運行產(chǎn)生副作用。在組件服務(wù)選擇時,如果注重QoS最優(yōu),沒有考慮其事務(wù)屬性,則可能導(dǎo)致組合服務(wù)運行失敗,或產(chǎn)生副作用。為了保證組合服務(wù)的一致性、可靠性,本文討論了在組件服務(wù)選擇時,先從事務(wù)屬性出發(fā),根據(jù)事務(wù)驅(qū)動服務(wù)選擇有限自動機,選擇組件服務(wù)形成組合服務(wù)也是事務(wù)的,保證了其執(zhí)行時的一致性和可靠性。
[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.
【責(zé)任編輯牛懷崗】
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
陜西省教育廳科研計劃項目:泛在網(wǎng)絡(luò)的U-China戰(zhàn)略中服務(wù)的優(yōu)化和可靠的組合技術(shù)研究(15JK1237)
陳莉萍(1976—),女,甘肅天水人,渭南師范學(xué)院網(wǎng)絡(luò)安全與信息化學(xué)院副教授,工學(xué)碩士,主要從事Web服務(wù)計算研究。