張 暉
( 福建江夏學(xué)院電子信息科學(xué)學(xué)院 福建福州 350108)
工作流是一種反應(yīng)業(yè)務(wù)流程的計(jì)算機(jī)化模型,它的作用是為了能夠用計(jì)算機(jī)實(shí)現(xiàn)生產(chǎn)經(jīng)營(yíng)過(guò)程的全部自動(dòng)化或部分自動(dòng)化[1]。而工作流管理系統(tǒng)是指在一個(gè)或多個(gè)稱為工作流機(jī)的軟件上,用于定義、實(shí)現(xiàn)和管理工作流運(yùn)行的一套軟件系統(tǒng)。基于Petri 網(wǎng)的工作流引擎都有著非常清晰和嚴(yán)格的定義,這樣就避免了不確定性和矛盾性等[2]。
Σ= (P,T;F,K,W)P 稱為庫(kù)所(place)集,T 稱為變遷集(transition)集,F(xiàn) 稱為流關(guān)系(flow relation),K 稱為容量函數(shù)(capacity function),W 稱為權(quán)函數(shù)(weight function)。
定義1.1:P∪T≠Ф (說(shuō)明:P 或T 至少要有一個(gè)元素)
定義1.2:P∩T=Ф (說(shuō)明:P 或T 是二類不同的元素)
定義1.3:F?P×T∪T×P (說(shuō)明:F 是P 與T 之間的有向弧)
定義1.4:K 是P 容量(P 中能夠容納的Token的數(shù)量)的集合。
定義1.5:W 表示弧上的權(quán)(可以是權(quán)函數(shù),也可以是權(quán)值)。
在圖1 中,用矩形表示t (t∈T),用小圓圈表示p (p∈P),用箭頭表示f (f∈F),用箭頭上的數(shù)字表示w (w∈W),用圓圈中的數(shù)字表示k(k∈K)。
圖1 petri 網(wǎng)簡(jiǎn)單示意圖
規(guī)則1:工作流的業(yè)務(wù)元素表示為t,工作流的邏輯元素表示為p。該規(guī)則的含義是,通過(guò)區(qū)別業(yè)務(wù)元素與邏輯元素,使得各個(gè)流程元素的職責(zé)更加清晰,處理過(guò)程更加簡(jiǎn)潔。
規(guī)則2:對(duì)于任何p∈P,如果·p =Φ,則規(guī)定|·p|=1,稱p 為開始節(jié)點(diǎn)。如果p· =Φ,則規(guī)定|p|=n (n∈1 -N),稱p 為結(jié)束節(jié)點(diǎn),整個(gè)網(wǎng)中可以出現(xiàn)多個(gè)結(jié)束節(jié)點(diǎn)。該規(guī)則的含義是,一個(gè)工作流流程只能有一個(gè)開始結(jié)點(diǎn),但是它可以有任意多個(gè)的結(jié)束結(jié)點(diǎn)(注:1 -N個(gè))。
規(guī)則3:定義1.3 可知,F(xiàn) 只能聯(lián)接P 與T,任意兩個(gè)P 或任意兩個(gè)T 不能直接連接。該規(guī)則的含義是,業(yè)務(wù)元素完成工作后,必須將控制權(quán)交給邏輯元素,由邏輯元素完成工作流的路由控制操作。
規(guī)則4:任何一個(gè)t∈T,都有|·t|=1 且|t·|=1。這個(gè)規(guī)則表示,所有的t,都只能有一個(gè)輸入p 和一個(gè)輸出p。該規(guī)則的含義是,t 只能完成業(yè)務(wù)的操作,而不需要完成邏輯的操作。
規(guī)則5:除了開始結(jié)點(diǎn)與結(jié)束結(jié)點(diǎn)外,任何一個(gè)p∈P,都有|·p|>1 且|p·|>1。這個(gè)規(guī)則表示,除了開始節(jié)點(diǎn)與結(jié)束結(jié)點(diǎn)外的p,都可以有多個(gè)輸入與多個(gè)輸出。該規(guī)則的含義是,工作流的“分發(fā)(split)”與“匯聚(join)”等邏輯控制,由p 來(lái)完成,如圖2 所示。
圖2 分發(fā)(split)與匯聚(join)簡(jiǎn)易示意圖
規(guī)則6:對(duì)于任何p∈P,p的容量K (p) =|·p|*|p·|。特別地,對(duì)于起始節(jié)點(diǎn),其容量等于|p·|;對(duì)于結(jié)束節(jié)點(diǎn),其容量等于|·p|
規(guī)則7:對(duì)于任意f∈F,如果f∈{(t,p)|t∈T∧p∈P},則W (f)= K (p)/|p·|;如果f∈{(p,t)|p∈P∧t∈T},則W (f) =K (p)/|·p|。
其含義是在同一工作流過(guò)程中,一個(gè)活動(dòng)在另一個(gè)活動(dòng)完成后就緒。如圖3 所示。
圖3 順序路由模型
其含義是在工作流過(guò)程中,能夠?qū)崿F(xiàn)多個(gè)任務(wù)同時(shí)或以任意順序執(zhí)行。P1 是一個(gè)AND -Split任務(wù),當(dāng)T1 中有完成時(shí)它就實(shí)施,并且為T2、T3 各產(chǎn)生一個(gè)標(biāo)記。P4 是一個(gè)AND -Join 任務(wù),當(dāng)T4,T5 都完成時(shí)它才開始實(shí)施。如圖4 所示。
圖4 并行路由模型
其含義是在工作流過(guò)程中,從兩個(gè)或多個(gè)活動(dòng)中任意選擇其一完成。P1 是一個(gè)OR -Split 任務(wù),當(dāng)T1 中有完成時(shí)它就實(shí)施,并且選擇T2、T3 其中一個(gè)開始。P4 是一個(gè)OR -Join 任務(wù),當(dāng)T4,T5 中的其中一個(gè)完成時(shí),它才開始實(shí)施,詳見圖5。
圖5 選擇路由模型
根據(jù)規(guī)則5 以及幾種路由模型可知,P 在解決邏輯控制時(shí)主要是解決兩類路由選擇問(wèn)題,一類是匯聚join,另一類是分發(fā)split。由此,筆者針對(duì)這兩種路由選擇問(wèn)題提出各自的解決方案。
前依賴規(guī)則(join)指明當(dāng)前庫(kù)所p的啟動(dòng)條件,啟動(dòng)條件是通過(guò)當(dāng)前庫(kù)所p的直接前趨結(jié)點(diǎn)t以及相應(yīng)的狀態(tài)標(biāo)志來(lái)表示的,前依賴規(guī)則包含順序、與匯聚 (And - Join)、或匯聚 (OR -Join)。只有當(dāng)前庫(kù)所p的所有相關(guān)前趨結(jié)點(diǎn)t 到達(dá)匯聚(join)條件指定的結(jié)束狀態(tài),當(dāng)前庫(kù)所p方可啟動(dòng)。
其解決方案如下:首先取出當(dāng)前庫(kù)所p的前依賴規(guī)則,判斷前依賴規(guī)則的類型。假如是與匯聚(AND -Join)時(shí),從數(shù)據(jù)庫(kù)中取出所有已經(jīng)執(zhí)行過(guò)的f的權(quán)值w,只有當(dāng)所有f的權(quán)值w 條件都滿足(執(zhí)行過(guò))時(shí),返回true,否則返回false;假如是或匯聚(OR -Join)時(shí),只要有一個(gè)已經(jīng)執(zhí)行過(guò)的f的權(quán)值w 滿足條件,就返回true。
具體實(shí)現(xiàn)如下:
當(dāng)前結(jié)點(diǎn)發(fā)出“結(jié)束”請(qǐng)求時(shí),將觸發(fā)工作流引擎進(jìn)行“后分發(fā)控制”,主要是依據(jù)在過(guò)程定義的當(dāng)前活動(dòng)結(jié)點(diǎn)與后繼結(jié)點(diǎn)之間的條件滿足情況啟動(dòng)相應(yīng)的后繼結(jié)點(diǎn)。分發(fā)(split)有“順序分發(fā)” “或分發(fā)”以及“與分發(fā)”三種分發(fā)控制規(guī)則。其中, “順序分發(fā)”與“或分發(fā)”規(guī)則其后繼結(jié)點(diǎn)只有一個(gè);而“與分發(fā)”規(guī)則其后繼結(jié)點(diǎn)有多個(gè)。
其具體實(shí)現(xiàn)如下:
本文通過(guò)工作流引擎核心的數(shù)學(xué)定義以及規(guī)則說(shuō)明,提出了基于petri 網(wǎng)的工作流建模方式,將工作流分離成邏輯與業(yè)務(wù)邏輯的思想。通過(guò)解決工作流模式的實(shí)現(xiàn),提出了由邏輯結(jié)點(diǎn)完成工作流流程的控制,并給出相應(yīng)的解決方案。不足之處在于,對(duì)于權(quán)對(duì)邏輯控制的影響目前還只是停留在權(quán)值上,希望以還能在權(quán)函數(shù)上予以加強(qiáng)。
[1]范玉順. 工作流管理技術(shù)基礎(chǔ)[M]. 北京: 清華大學(xué)出版社,2000. 31.
[2]王學(xué)偉,程耕國(guó). 基于Petri - net的FireFlow 工作流的應(yīng)用與研究[J]. 計(jì)算機(jī)導(dǎo)刊,2011,10 (2) : 38.
[3]吳哲輝. Petri 網(wǎng)導(dǎo)論[M]. 北京: 機(jī)械工業(yè)出版社,2006. 10.
[4]吳冰,冷文浩,張燕. 一種基于Petri 網(wǎng)的動(dòng)態(tài)流程設(shè)計(jì)模型[J]. 微計(jì)算機(jī)信息,2010,27 (34) : 259.
[5]聞立杰,王建民,孫家廣. 用著色Petri 網(wǎng)建模工作流模式[J]. 計(jì)算機(jī)科學(xué),2006,33(6) : 135.
[6]鄒海,儲(chǔ)德新,高順利. 基于Petri 網(wǎng)的工作流建模與分析[J]. 安徽大學(xué)學(xué)報(bào)( 自然科學(xué)版) . 2011,35 (3) : 33.
九江學(xué)院學(xué)報(bào)(自然科學(xué)版)2013年4期