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