摘要:利用Petri網對工作流模型進行分析與驗證是目前行之有效的一種方法。該文應用工作流思想研究Web Services的復合問題,利用Petri網技術分析Web Services 的調用過程,并對Web Services網進行形式化分析,給出Web Services復合群到工作流網的映射規則。
關鍵詞:Petri網;復合Web Services;映射算法
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2009)24-6685-02
Construction and Analysis of Composed Web Service Based on Petri Network
CHEN Yong
(Mingda Polytechnic Institute, Yancheng 224300, China)
Abstract: Nowadays, a efficient and effective method in workflow analysis and verification is using Petri nets. After summarized several types of web services composition, a method is proposed to compose web services by Petri. Furthermore this dissertation proposes the compose rules and introduces.
Key words: petri networks; composed web services; mapping algorithm
目前,業務過程建模的方法很多,這些方法各有自身的適應領域和優缺點,對自身方法定義的過程模型合理性也提供支持。然而當經營過程較為復雜,如存在并發、沖突等情形時,利用Petri網進行工作流模型分析有明顯的優勢。因此,在實際應用中可以采用相應的方法進行工作流建模,而在模型分析時,通過一種具有語義不變性的映射方法將有向網絡圖轉換為相同語義結構的Petri網,進而利用豐富Petri網理論進行模型分析[1]。
隨著計算機分布式技術的發展,Web Services 已經成為異構系統互聯的一種重要技術。目前Web Services的協同標準主要有WS-Coordination,WS-Transaction 和 IBM的工作流流語言WSFL、BPEL4WS等。WS-Coordination 規范定義了一個用來定義協調類型的可擴展框架,它提供了協調分布式應用程序的操作的協議[2]。這樣的協調協議用于支持大量應用程序,包括那些需要對分布式事務的輸出結果達成一致的應用程序。WS-Transaction規范提供了原子事務和業務活動等協調類型的定義,并包含了它們各自的協議。這些規范主要從Web Services協同的具體實現角度進行了敘述,沒有形式化的描述和分析。本文采用Petri網技術首先探討對Web Services 的調用過程,然后對Web Services 網進行形式化分析,并給出Web Services復合群到工作流網的映射規則。
1 Web Service運行的Petri示意圖
在Web Service的Petri網模型中,有1個WSR、 m個WSP(可以提供n種WS服務)、一個UDDI中心(其實UDDI也可以是分布式結構的,可有多個結點組成,為了分析方便,此處假設是一個獨立集中處理中心)。
T0:WSP1向UDDI注冊服務;
T1:WSR向UDDI發出服務清求SR;
T2:根據SR1信息進行處理,分發服務請求給WSP1,找到符合要求的WSP,如果 WSP1為重要 WSP,它會定時向 UDDI匯報自己的QoS參數,即 T3變遷;
T3:QoSl把QoS參數返回給UDDI;若WSP1為重要WSP,則其便能條件是QoS參數定時器的觸發;UDDI根據收到T3變遷的結果即最新的QoS參數來重新決定是否滿足WSR1的服務請求;
T4:UDDI把查詢及QoS協商的結果通知WSR1,如協商成功,則通知 WSR1可以和WSP1建立綁定,T5變遷開始執行:如協商不成功,要么放棄,要么等一段時間再發;
T5:WSR1通知WSP1開始服務請求綁定,并把相關參致,傳遞給WSP1:綁定后的服務請求進入眼務請求等待隊列;
T6:表示服務進程S1從服務隊列中調度服務請求,這個變遷的時間取決于服務進程的響應時間;
T7:表示服務功能完畢,WSP1把處理結果響應給WSR1,響應完畢后則撤消綁定。
2 Web Service的Petri網映射
在本節中,用Petri 網給出復合Web Service的形式化描述。使Si=(NameSi,Desci,Loct,URLt,Cs,SNi)。其中NameSi表示新服務的名字;Desci表示新服務的描述;Loci表示新服務的位置;URLi表示新服務的調用地址;Cs = { Si, Sj };SNi=(Pi,Ti,Fi,ii,oi), i=1,2,…n是n個 Web Services。
定義1 順序操作的映射
順序結構表示對于服務S1和S2,先執行S1,然后執行S2。服務S = (NameS, Desc, Loc, URL, CS, SN),其中變量的含義如上所述。SN在這種情況下為SN = ( P, T | F, i, o ),其中:
順序操作的映射關系如圖2所示。
定義2 選擇操作的映射關系
選擇結構表示對于服務執行服務S1和S2,執行服務S1或者服務S2,一旦其中之一執行,另一個服務將被放棄。SN的參數表示為:
選擇操作的映射關系如圖3(a)所示。
定義3 同步操作的映射關系
同步操作表示對于服務執行服務S1和S2,執行服務S1并且服務S2。兩個服務必須同
時操作。SN的參數表示同上。同步操作的映射關系如圖3(b)所示。
定義4 選擇聚合操作的映射關系
選擇聚合操作表示對于服務執行服務S1、S2和S3,服務S3可以執行當且僅當S1服務或者S2服務執行完畢。其中S1服務和S2服務平行執行而且無通信關系。SN的參數表示為:
選擇聚合操作映射關系如圖4所示。
同理可以得出同步聚合操作的映射關系,限于篇幅不再贅述。
定義5 選擇分支操作的映射關系
選擇分支操作表示對于服務執行服務S1、S2和S3,在執行服務S3之后執行S1服務或者S2服務。SN的參數表示為:
選擇分支操作映射關系如圖5所示。
同理可以得出同步分支操作的映射關系。
3 映射的合理性分析
在Web Service中,復合Web服務比較復雜時,如包含數十個甚至數百個Web服務時,僅依靠開發人員的人力判斷,很難保證復合后的服務流程是否完備、是否無二義性、是否無死鎖等等。在一個復雜的應用中,錯誤或有瑕疵的設計會帶來損失。所以在投入運轉之前,分析Web服務的復合是一項重要工作,目的是提供機制正確的Web服務協同工作。
按照本文的復合規則構造的復合服務,也應該滿足正確的終止條件,無死鎖,必須能夠正確達到完成狀態,即合理性。合理性的檢驗可以歸屬于Petri網的活性和有界性,驗證的方式可以采用基于可達樹的驗證方法[3]。
4 總結
作為一項分布式技術,Web Services肩負著很高的期望,Web Services的復合研究也是一個熱點問題,其目的是利用Web服務構造復雜的應用,尋求異構系統的完美協同解決方案。本文應用工作流思想研究Web Services的復合問題。首先給出了Web Services復合構造的常用類型,然后對這些類型進行了形式化描述,并利用上文結論,對復合的Web Services的合理性進行了分析。
參考文獻:
[1] 李建強,范玉順.基于Petri網的工作流模型性能分析方法[J].計算機應用,2001,6.
[2] F.Cabrera,G.Copeland,T. Freund,WS-Coordination 1.0 [EB/OL],2004,10,15.
[3] 羅海濱,范玉順,吳澄.工作流合理性驗證中的事件平衡分析[J].軟件學報,002.13(8):1686-1691.
[4] 趙文,袁崇義,劉剛,等.基于P/T系統化簡方法的工作流過程模型驗證[J].軟件學報,2004,15.
[5] 唐邦志,魏生民,景韶宇.工作流網Soundness驗證[J].計算機工程與用,2004,6:37-39.