王 雷,姜久雷,王曉峰
(北方民族大學 計算機科學與工程學院,寧夏 銀川750021)
Petri 網(Petri net)具有嚴格的數學表達方式和直觀的圖形表達方式,在軟件設計等方面有著非常廣泛的應用[1]。如果系統的規模很大,人工來完成Petri 網的建模和仿真是不可能的,此時需要借助于軟件工具,那么,開發一種Petri 網建模工具就變得非常有意義。
目前,國內外的一些高校和科研機構已經開發出一些Petri 網建模工具,但是這些Petri 網建模工具多數基于Unix或Linux 平臺且是收費的,操作起來比較困難,使用門檻較高[2]。
本文所述的Petri 網建模工具采用了一種改進的三層架構,增強了系統的性能。該工具提供了友好的人機界面,可以方便地對模型進行仿真和分析。
定義1 網是一個三元組N(P,T,F),其中
其中:
1)P 為網N 的有窮庫所(Place)集合;
2)T 為網N 的有窮變遷(Transition)集合;
3)F 為網N 中的一個庫所元素和一個變遷元素組成的有序偶集合;
定義2 六元組N=(P,T,F,K,W,M)稱為一個Petri網模型,其中
1)(P,T,F)是一個網(定義1);
2)K:P→N0(N0是自然數集合)為庫所上的容量函數;
3)W:F→N0-{0}為變遷啟動對庫所標記的影響(弧上的權函數);
4)M:P→N0為網N 的一個標識,滿足條件
?p∈P:M(p)≤K(p).
一個變遷可以發生的條件為每個輸入庫所包含托肯的數量都大于等于對應的連接弧上標明的數字(權重)。當一個變遷發生時,其輸入庫所中托肯的數量就根據此值而相應地減少。輸出庫中所托肯的數量也根據對應值而增加。
分層體系結構風格[4]將軟件結構組織成一個層次結構,一個分層系統是分層次組織,每層對上層服務,同時對下層也是一個服務的對象。典型的分層體系結構包括表示層、業務層和數據層三大部分。表示層把運行結果通過人機界面返回給用戶,并接受用戶的請求。業務層主要負責對數據層的操作,對數據進行業務邏輯處理。數據層主要負責對數據文件的操作,為業務層或表示層提供數據服務。
分層體系結構具有以下優點[5]:
1)由于對層次的鄰接層數目進行了限制,所以,系統易于改進和擴展。
2)每一層的軟件都易于重用,并可為某一層次提供多種可交換的具體實現。
3)分層系統所支持的設計體現了不斷增加的抽象層次,這樣,一個復雜問題的求解被分解為一系列遞增的步驟。
該建模工具需要頻繁地進行讀取和保存模型信息操作,且這些操作不需要任何邏輯處理。而傳統的三層架構對數據的操作必須通過中間層來完成,降低了系統的性能[6]。為解決這個問題,提出了一種新的三層架構——對稱三層架構,如圖1 所示。

圖1 對稱三層架構Fig 1 Symmetrical three-tier architecture
在該架構中,表示層可以直接訪問數據層,也可以直接訪問業務邏輯層。而數據層和業務邏輯層之間不能直接互相訪問。
業務邏輯層和數據層的通信需要通過表示層來完成。當業務邏輯層需要用到數據庫中的數據時,表示層從數據層中取出數據,然后再傳遞給業務邏輯層。
采用對稱三層架構來設計該工具的軟件體系結構,如圖2 所示。

圖2 基于對稱三層架構的Petri 網建模工具Fig 2 Petri net modeling tool based on symmetrical three-tier architecture
1)用戶界面層:該層作為表示層,具有可視化編輯Petri網模型等功能。該層還充當數據層與模型仿真/分析層之間的數據傳遞功能。
2)數據層:該層主要負責用戶界面層和模型仿真/分析層的數據通信以及后臺數據的存儲。
3)模型仿真/分析層:該層主要實現模型仿真/分析算法。
實體類,是從數據庫中的表映射出來的對象類[7]。Petri網模型由庫所、變遷和弧線三種元素組成,這樣就可以抽象出以下四個類:
1)庫所類:


實體類供用戶界面層、數據層和模型仿真/分析層進行數據傳遞。
目前該Petri 網建模工具已經開發完成,如圖3 所示。
該系統由以下四大功能模塊組成:
1)模型編輯區:用于以人機交互的方式編輯Petri 網模型,位于主界面右側。

圖3 系統主界面Fig 3 Main interface of system
2)資源管理器:用于對庫所等資源進行管理,位于主界面的左上側。
3)屬性管理器:用于顯示和設置元素的屬性,位于界面的左下側。
4)模型仿真/分析模塊:對Petri 網模型進行動態仿真和分析。
圖3 所示為一個四季變化系統的Petri 網模型[8],庫所元素p1,p2,p3,p4分別代表溫暖花開、炎熱、溫暖葉落和寒冷。
單擊菜單項“模型分析”→“關聯矩陣”,即可彈出“關聯矩陣”窗口,如圖4 所示。單擊菜單項“模型分析”→“可達樹”,可以得到該Petri 網模型的可達樹,如圖5 所示。

圖4 “關聯矩陣”窗口Fig 4 "Incidence matrix"dialog

圖5 “可達樹”窗口Fig 5 "Reachable tree"dialog
還可以利用該工具對模型的有界性和有無死鎖做判斷,結果為1,即有界,且沒有死鎖。
Petri 網既有嚴格的形式定義,又有直觀的圖形表示[9]。本文從體系結構的角度出發,對一個Petri 網仿真工具的設計和實現進行了介紹,并給出了一個建模實例。該工具采用了一種改進的三層架構,具有良好的性能和可擴展性。
目前,該工具只實現了幾個常用性質,如有界性、可達性的分析算法,今后將研究其他性質的分析算法的實現,并適當增加該工具體系結構的層數,進一步增強系統的性能和可擴展性。
[1] 吳 瓊,邵志清,劉 剛,等.基于著色時間Petri 網的實時系統的形式驗證[J].計算機科學,2008,35(7):257-260.
[2] Kounev S,Buchmann A.SimQPN—A tool and methodology for analyzing queueing Petri net models by means of simulation[J].Performance Evaluation,2006,63:364-394.
[3] Lohmann N,Verbeek E,Dijkman R.Petri net transformations for business processes—A survey[C]∥Transactions on Petri Nets and Other Models of Concurrency II,Berlin Heidelberg:Springer-Verlag,2009:46-63.
[4] 楊春成,何列松,周校東,等.基于分層體系結構的數字出版原圖數據庫管理系統[J].測繪科學技術學報,2008,25(2):83-86.
[5] 王 嫣,張志強.基于B/S 軟件分層體系結構的研究[J].煤炭技術,2012,31(10):210-211.
[6] 余臘生,葉 楠.基于J2EE 三層架構的遠程答疑系統的研究與實現[J].計算機工程與設計,2007,28(13):3216-3219.
[7] 朱 玲,薛 賀.對象關系數據庫系統映射模型及應用[J].計算機工程與科學,2007,29(12):120-122.
[8] 袁崇義.Petri 網原理[M].北京:科學出版社,2013.
[9] 韓耀軍.基于Petri 網和并發調度標識圖的并發任務調度的建模與分析[J].計算機科學,2014,41(7):105-109.