李 山曾
安徽中澳科技職業(yè)學院信息技術(shù)與藝術(shù)傳媒系,安徽合肥,230041
LI Ceng
Information Technology and Media Arts Department,Anhui ZHONG-AO Institute of Technology,Hefei Anhui,230041,China
Web服務(wù)是一種平臺無關(guān)、松散耦合、自包含的Web應(yīng)用程序,適合在互聯(lián)網(wǎng)這種異構(gòu)、分布的環(huán)境中發(fā)布[1]。隨著業(yè)務(wù)復雜性的提高,單一的Web服務(wù)無法滿足業(yè)務(wù)需求,往往需要調(diào)用若干個Web服務(wù)形成一個Web服務(wù)組合完成某項具體的業(yè)務(wù)。Web服務(wù)組合的正確性是有效利用這些服務(wù)的基礎(chǔ),對Web服務(wù)組合的分析和驗證成為當前的一個研究熱點。
Petri網(wǎng)是一種適用于多系統(tǒng)的、基于狀態(tài)的建模方法,它具有直觀的圖形表示、形式化的語義定義和豐富的分析技術(shù)等優(yōu)點[2],在工作流建模分析上已經(jīng)有了比較成熟的應(yīng)用。由于工作流和Web服務(wù)流程存在很多相似之處,可以將工作流技術(shù)作為Web服務(wù)組合的基礎(chǔ),對 Web服務(wù)組合進行建模和分析。
Web服務(wù)組合網(wǎng)借鑒工作流網(wǎng)的定義,在Petri網(wǎng)的基礎(chǔ)上提出?;赑etri網(wǎng)的Web服務(wù)組合可定義如下[3]:
一個Petri網(wǎng)PN=(P,W,F(xiàn))滿足以下兩個條件,則被稱為Web服務(wù)組合網(wǎng),其中P為庫所集合,W為Web服務(wù)集合,F(xiàn)為庫所到Web服務(wù)的弧的集合。
(1)PN有兩個特殊的庫所:起始庫所i和終止庫所o,i的前驅(qū)庫所為空,o的后繼庫所為空,形式化表示為
(2)如果在PN中加入一個新的服務(wù)w,使w連接庫所i與o,則w的前驅(qū)庫所為i,后繼庫所為o,形式化表示為:·w={i},w·={o}。
Web服務(wù)組合模型將單一的Web服務(wù)用庫所和弧連接在一起,其中,Web服務(wù)使用矩形表示,庫所使用圓形表示;每個Web服務(wù)之前有一個前驅(qū)庫所,之后有后繼庫所;Token用黑色圓點表示,存在某個庫所之中,當Token所在庫所為某個Web服務(wù)的前驅(qū)庫所,表明該Web服務(wù)將要執(zhí)行;Web服務(wù)組合模型在執(zhí)行前Token存在起始庫所i中,當模型執(zhí)行完畢后僅終止庫所中存在Token。圖1為一個典型的串行結(jié)構(gòu)的Web服務(wù)組合網(wǎng)模型。
圖1 示例模型
在Web服務(wù)組合模型實施之前,利用基于Petri網(wǎng)的分析技術(shù)對Web服務(wù)組合模型進行驗證,可以有效地避免執(zhí)行時出現(xiàn)異常,從而降低運行風險。
一個Web服務(wù)組合模型合理性規(guī)定有三個:(1)從模型的初始庫所必然可以到達終止庫所;(2)當Token存在于終止庫所時,整個Web服務(wù)模型必然執(zhí)行完畢,其他所有庫所中都不能存在Token;(3)整個模型的所有 Web服務(wù)必然都能夠得到執(zhí)行,不能出現(xiàn)無法執(zhí)行的Web服務(wù)。
根據(jù)上述Web服務(wù)組合模型合理性描述,基于三個合理性規(guī)定得出Web服務(wù)組合模型的合理性定義如下[3]:
當一個Web服務(wù)網(wǎng)PN=(P,W,F(xiàn))滿足下列三個條件時,其建模的過程是合理的,組合模型是正確可實施的。
(1)對于每一個庫所i可達的 Web服務(wù)w,必然存在一個實施序列,可以從服務(wù)w到達終止庫所o,形式化表示為:
(2)庫所o是從庫所i可達的唯一終止庫所,且結(jié)束時終止庫所o存在唯一的Token,形式化表示為:
(3)在PN中不存在無法執(zhí)行的 Web服務(wù),形式化表示為
根據(jù)Web服務(wù)組合模型的合理性定義,采用庫所向量和Web服務(wù)集合來動態(tài)表示模型的執(zhí)行狀態(tài)。其中Web服務(wù)集合中包含所有未被執(zhí)行的Web服務(wù),庫所向量的維數(shù)取決于模型中的庫所個數(shù),Token所在庫所對應(yīng)向量元素為1,空庫所對應(yīng)的向量元素為0。
基于Web服務(wù)的前后庫所確定Token轉(zhuǎn)移前后的向量表示,通過反復引入新Web服務(wù)來改變庫所向量。模型執(zhí)行的初始狀態(tài)為Web服務(wù)集合W={W1,W2,W3,…}和庫所向量P=(1,0,0,…),每引入一個新 Web服務(wù),表明托肯將存在此 Web服務(wù)的后續(xù)庫所,以此改變庫所向量,并從Web服務(wù)集合中刪除此Web服務(wù),如果最終結(jié)果W=且P=(0,0,…,1),表明終止庫所的唯一性和所有Web服務(wù)的活性,該 Web服務(wù)組合模型是正確合理的。
以裝飾公司客戶訂單處理Web應(yīng)用為例,客戶訂單處理流程為:裝飾公司接到客戶訂單,分配給設(shè)計部設(shè)計裝飾方案;將裝飾方案發(fā)送給客戶確認;若客戶認可裝修方案后客戶付裝修定金,否則提出修改要求,再由設(shè)計部門進行設(shè)計;采購部門根據(jù)方案訂購裝飾材料,同時施工部制定施工方案;根據(jù)施工方案組織施工;完工后,客戶檢驗施工效果;若客戶認可施工效果,則付尾款,否則,施工部繼續(xù)完善,再交由客戶檢驗。
根據(jù)以上描述確定客戶訂單處理過程中存在的變遷,并按照圖形化的表示方法建立Web服務(wù)組合模型。其中,W1:接收訂單;W2:方案設(shè)計;W3:客戶確認設(shè)計方案;W4:提出修改要求;W5:客戶預付裝修定金;W6:采購裝飾材料;W7:設(shè)計施工方案;W8:裝飾施工;W9:檢驗施工效果;W10:支付裝飾尾款。Web服務(wù)組合模型的圖形化表示如圖2。
圖2 案例服務(wù)組合模型
根據(jù)Web服務(wù)組合的合理性定義及合理性驗證算法,對Web服務(wù)組合模型進行驗證,其中有10個Web服務(wù),12個庫所,初始狀態(tài) Web服務(wù)集合W={W1,W2,W3,W4,W5,W6,W7,W8,W9,W10},庫所向量 P=(1,0,0,0,0,0,0,0,0,0,0,0)。通過反復引入Web服務(wù),具體驗證步驟如下:
從結(jié)果W和P得出,此Web服務(wù)組合模型滿足合理性定義,是正確的并可以實施。
運用Petri網(wǎng)的圖形化表示方法對Web服務(wù)組合進行建模,根據(jù)合理性的定義設(shè)計模型的驗證方法,并通過一個實例說明了建模和驗證的步驟。在實際應(yīng)用中,通過此建模和分析方法同樣可以處理比文中描述實例復雜的業(yè)務(wù)流程。正確合理的Web服務(wù)組合模型可以借助基于Petri網(wǎng)的模型應(yīng)用引擎來具體實施,如 OpenEbXML、Bigbross Bossa、wfmOpen等。
[1]岳昆,王曉玲,周傲英.Web服務(wù)核心支撐技術(shù)[J].軟件學報,2004,15(3):428-441
[2]郝文,王道平.基于Petri網(wǎng)的工作流建模合理性驗證算法[J].計算機工程與應(yīng)用,2008,44(13):228-230
[3]李山曾.基于Petri網(wǎng)的工作流管理系統(tǒng)的設(shè)計與開發(fā)[J].軟件工程師,2011(6):53-56
[4]Van der Aalst W M P.The application of Petri nets to WorkfloW Management[J].The Journal of Circuits,Systems,and Computers,1998,8(1):22-26
[5]袁崇義.Petri網(wǎng)原理[M].北京:電子工業(yè)出版社,1998
[6]羅海濱,范玉順,吳澄.工作流技術(shù)綜述[J].軟件學報,2000,11(7):899-907
LI Ceng
Information Technology and Media Arts Department,Anhui ZHONG-AO Institute of Technology,Hefei Anhui,230041,China