張永亮
摘 要:Petri網(wǎng)具有嚴(yán)格的數(shù)學(xué)表述方式和直觀的圖形表達(dá)方式,在軟件設(shè)計、工作流管理、工作流模式、數(shù)據(jù)分析、并行程序設(shè)計、協(xié)議驗證等方面得到廣泛的應(yīng)用。隨著Petri網(wǎng)的研究和應(yīng)用的發(fā)展,產(chǎn)生了許多擴(kuò)展Petri網(wǎng)的建模表達(dá)方式,包括:著色Petri網(wǎng)、時間Petri網(wǎng)、層次Petri網(wǎng)?,F(xiàn)時的軟件設(shè)計方法以面向?qū)ο駷橹髁?,在需求分析階段要對業(yè)務(wù)流程進(jìn)行建模工作,需要對業(yè)務(wù)過程中的人和事進(jìn)行表述。使用Petri網(wǎng)對業(yè)務(wù)流程進(jìn)行建模,一方面,Petri網(wǎng)可以很好地表現(xiàn)業(yè)務(wù)數(shù)據(jù)的變遷,卻未能表達(dá)出相關(guān)業(yè)務(wù)數(shù)據(jù)變遷所涉及到的實際操作角色。另一方面,使用基于UML和Petri網(wǎng)的混合設(shè)計,要做大量的規(guī)則映射,不便于最終用戶閱讀。文章嘗試討論在經(jīng)典Petri網(wǎng)的基礎(chǔ)上,不改變Petri網(wǎng)的數(shù)學(xué)性質(zhì),為Petri網(wǎng)的變遷增加角色屬性的描述,使之更有效地適應(yīng)具體業(yè)務(wù)流程建模。
關(guān)鍵詞:Petri網(wǎng);工作流;面向?qū)ο?/p>
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-8937(2014)24-0091-02
1 工作流的建模原理
經(jīng)典Petri網(wǎng)是由庫所和變遷、有向弧和托肯元素組成。在Petri網(wǎng)的基礎(chǔ)上,Aalst提了出了工作流的概念。
2 經(jīng)典擴(kuò)展Petri網(wǎng)
隨著Petri網(wǎng)的建模研究發(fā)展,實踐者對Petri網(wǎng)進(jìn)行擴(kuò)充,以適應(yīng)不同的應(yīng)用場景,例如著色Petri網(wǎng)、時間Petri網(wǎng)、層次Petri網(wǎng)等。
2.1 著色Petri網(wǎng)
通過給標(biāo)記賦值,就好比給它們涂上了不同的顏色,通過它對標(biāo)記進(jìn)行區(qū)分。變遷實施所產(chǎn)生的標(biāo)記,取決于實施時被消耗的標(biāo)記的值,生產(chǎn)出的標(biāo)記的值也可以依賴于那些被消耗的標(biāo)記的值。與傳統(tǒng)的Petri網(wǎng)不同,生產(chǎn)的標(biāo)記數(shù)目也是變化的,即生產(chǎn)的標(biāo)記數(shù)目由消耗的標(biāo)記值決定。
2.2 時間Petri網(wǎng)
標(biāo)記將時間戳作為一個值。該時間戳指明標(biāo)記自何時可用,只有在每個要被消耗的標(biāo)記的時間戳早于當(dāng)前時間時,變遷才能就緒。換句話說,變遷的就緒時刻是它的輸入庫所包含足夠的可用標(biāo)記的最早時刻。標(biāo)記的消耗按照先進(jìn)先出規(guī)則。擁有最早時間戳的標(biāo)記首先被消耗。此外,具有最早就緒時刻的變遷首先實現(xiàn)。
2.3 層次Petri網(wǎng)
一個過程能由子過程構(gòu)成,其子過程又能由更深層次的子過程構(gòu)成,從而可以層次化地構(gòu)造一個復(fù)雜的過程。
根據(jù)上面三種Petri網(wǎng)的擴(kuò)展可以看出,三種擴(kuò)展Petri網(wǎng)的擴(kuò)展側(cè)重點不同。如果想通過這三種擴(kuò)展Petri網(wǎng)來描述一個業(yè)務(wù)流程中“什么人做了什么事”具有一定的局限性。
3 經(jīng)典Petri網(wǎng)的角色擴(kuò)展
角色Petri網(wǎng)是在經(jīng)典Petri網(wǎng)的基礎(chǔ)上,對每一個變遷增加角色描述。角色描述是變遷的一個輔助說明屬性,所以不改變Petri網(wǎng)的數(shù)學(xué)定義。
角色Petri網(wǎng)是用來展現(xiàn)業(yè)務(wù)流程中參與者與操作、參與者與參與者之間的協(xié)作關(guān)系的模型。業(yè)務(wù)流程由源庫所開始,以匯結(jié)庫所結(jié)束。以Petri網(wǎng)的可達(dá)路徑表示業(yè)務(wù)流程的執(zhí)行步驟順序。角色表示業(yè)務(wù)流程中業(yè)務(wù)操作的實施者。變遷表示實施者的業(yè)務(wù)操作。一個實施者到另一個實施者的協(xié)作次序使用有向弧和令牌表示。每一個變遷只對應(yīng)一個業(yè)務(wù)操作。如果一個角色要進(jìn)行多個業(yè)務(wù)操作,把每一個業(yè)務(wù)與一個變遷建立對應(yīng)關(guān)系,以保證把角色Petri網(wǎng)向面向?qū)ο窬幊陶Z言轉(zhuǎn)換時,角色的每一個變遷與對象的一個方法進(jìn)行一對一的關(guān)系映射。
4 各種Petri網(wǎng)的建模比較
文章分別運用經(jīng)典Petri網(wǎng)、角色Petri網(wǎng)和UML和Petri網(wǎng)混合建模對業(yè)務(wù)流程進(jìn)行建模。
4.1 經(jīng)典Petri網(wǎng)
經(jīng)典Petri網(wǎng)以圖形化的形式對業(yè)務(wù)流程進(jìn)行表達(dá),對于每個變遷的相關(guān)實施主體,把經(jīng)典Petri網(wǎng)轉(zhuǎn)換成面向?qū)ο翊a時,由于缺少變遷的實施者說明,無法與面向?qū)ο蟮某橄箢愋纬蓪?yīng)關(guān)系。雖然可以把角色與業(yè)務(wù)操作合并成一個變遷,但在轉(zhuǎn)換成面向?qū)ο蟮拇a時候就會變成概念不清晰,一個變遷與一個抽象類、一個抽象方法對應(yīng),形成一對二的關(guān)系。
4.2 角色Petri網(wǎng)
角色Petri網(wǎng)能完整地表達(dá)業(yè)務(wù)流程中什么人做什么事。當(dāng)把角色Petri網(wǎng)向面向?qū)ο缶幋a轉(zhuǎn)換的時候,只要把角色與抽象類,變遷與抽象類的方法建立映射關(guān)系即可。但這種映射關(guān)系只在抽象層,對于具體細(xì)化每一個抽象類和方法沒提供進(jìn)一步的展現(xiàn),要進(jìn)一步的具體化抽象類的方法的實際業(yè)務(wù)邏輯,需要配合層次Petri網(wǎng),再進(jìn)一步細(xì)化具體業(yè)務(wù)邏輯。
4.3 UML和Petri網(wǎng)混合建模
基于UML和Petri網(wǎng)的建模,首先要進(jìn)行規(guī)則的映射轉(zhuǎn)換定義,經(jīng)過轉(zhuǎn)換所得的Petri網(wǎng),與經(jīng)典Petri網(wǎng)相比,庫所和變遷都有所增多,這主要是因為UML與Petri網(wǎng)的映射所造。如果要表達(dá)更復(fù)雜的業(yè)務(wù)流程,經(jīng)UML轉(zhuǎn)換的Petri網(wǎng)會出現(xiàn)更多冗余的庫所和變遷。
4.4 總 結(jié)
經(jīng)典Petri網(wǎng),角色Petri網(wǎng),以及UML與Petri的比較見表1。
綜合上述對比可發(fā)現(xiàn),角色Petri網(wǎng)建模界于經(jīng)典Petri網(wǎng)建模與UML和Petri網(wǎng)混合建模之間。一方面,角色Petri網(wǎng)具有經(jīng)典Petri網(wǎng)的嚴(yán)格數(shù)學(xué)表達(dá)方式,同時增加了面向?qū)ο裨O(shè)計的支持。使用角色Petri網(wǎng)建模,能較為完整地表達(dá)業(yè)務(wù)流程的完整信息。另一方面,使用角色Petri網(wǎng)進(jìn)行業(yè)務(wù)流程建模,方便系統(tǒng)分析員把業(yè)務(wù)流程模型轉(zhuǎn)換為基于開發(fā)級的抽象類和抽象方法。但角色Petri網(wǎng)也有其不足的地方,在細(xì)化面向?qū)ο竦慕V校捎诮巧玃etri網(wǎng)是在抽象類級別進(jìn)行設(shè)計和表達(dá),對于代碼級別的設(shè)計和表達(dá)不夠細(xì)化,而這方面也是正UML的所具備的。角色Petri網(wǎng)可以嘗試與層次Petri網(wǎng)結(jié)合。在業(yè)務(wù)的建模中,使用角色Petri網(wǎng)展現(xiàn)業(yè)務(wù)流程的高級抽象層。而在業(yè)務(wù)流程的具體邏輯表現(xiàn)層上,運用層次Petri網(wǎng)與角色Petri網(wǎng)結(jié)合,形成層次化表達(dá)關(guān)系,達(dá)到更詳細(xì)的業(yè)務(wù)邏輯描述,使模型更容易轉(zhuǎn)換成實際開發(fā)代碼。
5 結(jié) 語
角色Petri網(wǎng)在經(jīng)典Petri網(wǎng)的基礎(chǔ)上增加了對業(yè)務(wù)流程中涉及的對象的表達(dá),對以面向?qū)ο蠓绞竭M(jìn)行業(yè)務(wù)流程建模提供了幫助。后續(xù)工作是要研究角色Petri網(wǎng)與層次Petri網(wǎng)相結(jié)合,使Petri網(wǎng)所建的模型更容易在軟件開發(fā)中直接轉(zhuǎn)換成代碼。
參考文獻(xiàn):
[1] Toshiyuki Miyamoto,Sadatoshi Kummagai:Application of Object-Orie-
nted Petri Nets to Industrial Electronics[M].IECON,Taipei,Taiwan,2007.
[2] 劉寶代,張建,劉冰寒.基于UML活動圖和Petri網(wǎng)電子政務(wù)工作流建模研究[J].計算機應(yīng)用與軟件,2011,(6).