VPML-OOPN集成建模研究

時間:2022-10-25 07:56:00

導語:VPML-OOPN集成建模研究一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

VPML-OOPN集成建模研究

摘要:為了支持對企業業務流程進行建模和分析,輔助過程改進,提出了VPML-OOPN集成建模方法。該建模方法是利用可視化過程建模語言VPML建立企業過程模型,然后將該過程模型映射為面向對象Petri網模型。通過Petri網模型的分析和仿真,其結果可用于修正和改進模型設計。

關鍵詞:可視化過程建模語言;面向對象Petri網;可視化過程建模語言—面向對象Petri網集成建模方法;企業過程建模

在激烈的市場競爭中,所有企業都希望及時而高效地開發出高質量、高性能的產品。這一切在很大程度上取決于開發產品的過程和對過程的管理。過程建模是過程管理和并行工程的基礎和核心技術。通過過程建模,進行并行性分析,提高并行度;通過仿真分析,過程改進,縮短研制周期,提高資源利用率。本文針對企業過程分布、并行的特點,提出了集成可視化過程建模語言(VisualProcessModelingLanguage,VPML)和面向對象Petri網(Object-OrientedPetriNets,OOPN)的企業過程建模方法。

1VPML-OOPN集成建模方法的技術基礎

1.1可視化過程建模語言

可視化過程建模語言是北京航空航天大學軟件工程研究所和美國Funsoft公司合作開發的,是針對企業過程的建模語言,用圖形與文本相結合的方式描述企業過程的不同方面的內容,具有高度的可視性和形式化程度。VPML能從活動、后勤、數據、協同以及活動中的行為等五個模型來刻畫一個企業的過程[1],如圖1所示。

VPML定義了四組對象原語:一組連接原語和三組連接符原語。每個對象原語對應于企業模型中的一個概念,每個連接和連接符原語定義對象原語間的一種關系。對象原語包含活動、產品、資源和其他概念,它定義了在VPML中合法的對象集合。

1.2Petri網

Petri網是CarlAdamPetri博士在1962年提出的,它是一種形式化的建模方法。Petri網作為一種圖形工具,可以使用標記(Token)來模擬系統的動態行為和并發活動;作為一種數學工具,它可以建立狀態方程、數學方程以及系統行為的其他數學模型[2]。

其中,P和T分別稱為N的place(庫所)集和transition(變遷)集,F為流關系。若用圓圈表示庫所,用矩形框表示變遷,用有向弧來表示庫所與變遷的有序偶,則構成了Petri網的圖形表示。

對Petri網表示的系統,可以進行活性、可達性、沖突、死鎖等分析。分析方法有可達樹方法、關聯矩陣方法、不變量分析方法等。

1.3面向對象Petri網

本文采用的面向對象Petri網OOPN是對韓國KAIST的YangKyuLee等人提出的OPNets模型的擴展。在OPNets中,如圖2、3所示,用高級網子網描述每個對象的行為以及對象之間的關系,通過用方形框把子網括起來表示封裝與抽象。為了信息隱藏,每個對象清晰地表示為外部結構和內部結構兩部分。外部結構描述對象之間的信息通信,而內部結構描述每個對象的內部控制流。對象的外部接口由消息隊列(messagequeue,mesQueue,用橢圓表示,類似于用圓表示的庫所)、門(gate,用粗線表示,類似于用方形框表示的變遷)以及它們之間的流關系(arc,用弧線表示)給出。每個對象表示為一個子網,庫所中令牌的變化代表了對象的不同狀態(用黑點表示令牌token),故這些庫所特別地稱為state。

對象的內部行為用謂詞網描述。在弧上不加謂詞,在變遷中定義發生條件和發生時要執行的動作。當變遷的所有前驅中都有令牌,并且存在某一令牌的組合使變遷的發生條件為真時,變遷就可以發生。不同對象之間可以用gate把輸入mesQueue與輸出mesQueue連接起來,以此表示相互的消息傳遞關系。

對象有復合對象(圖2中的A)和簡單對象(圖3中的AA和AB)之分。在簡單對象中,不包含并發部分,只表示順序行為;而在復合對象中則允許并發,因為復合對象定義了簡單對象之間的連接關系,其控制分布在這些聚合的簡單對象之間。為了依照系統要求來同步基本對象的順序行為,在復合對象中定義了對象間的消息通信。這種構造可使同步約束從每個對象內部分離出來,更便于對象的重用,也為系統死鎖分析方法奠定了基礎。

1.4VPML與OOPN的共同之處和差異

VPML與OOPN的共同之處是兩者均為面向對象的建模語言,都能夠對現實的過程進行建模,兩者都有相應的形式化定義。

兩者的差異是Petri網的形式化程度更高,能夠對系統的結構和動態行為進行嚴密的數學分析和直觀的計算機仿真,但是相對比較抽象,不易于掌握。而VPML語言的特點是功能豐富、直觀易學、靈活適用,但形式化程度不夠。

綜上所述,VPML對用戶友好,Petri網具有形式化的嚴密性;VPML能夠有效地描述系統,Petri網能夠嚴密分析系統;VPML模型與程序實現緊密相連,Petri網模型則易于進行仿真。根據VPML和Petri網各自的優點,本文提出了VPML-OOPN集成建模方法,實現兩者的優勢互補。

2VPML-OOPN集成建模方法的設計和實現

2.1VPML-OOPN集成建模方法的總體設計思想

VPML-OOPN集成建模方法的總體設計思想如圖4所示。具體分為以下幾個步驟:

(1)首先對要創建的過程模型進行需求分析,然后利用VPML的對象源語、連接和連接符源語對過程模型進行描述和設計。

(2)將建立好的過程模型自動映射成面向對象Petri網模型。

(3)利用面向對象Petri網模型進行模擬、仿真、靜態和動態死鎖檢測等。

(4)模擬和仿真以及定性分析的結果用于修正和改進模型設計,模型設計和模型分析不斷進行,直到滿意為止。

(5)根據改進后的過程模型描述實現模型。

2.2系統總體結構

系統從功能上可分為如下主要部分:系統總控模塊、用戶界面模塊、創建VPML過程模型模塊、過程模型到面向對象Petri網模型的映射模塊、面向對象Petri網的模擬仿真和死鎖檢測模塊。系統總體結構圖如圖5所示。

下面分別對各個模塊的功能作簡要介紹:

(1)用戶界面模塊

該模塊用于生成用戶的界面。用戶界面包括菜單條、工具條、控制面板和圖形編輯區。

(2)創建VPML過程模型模塊

該模塊的功能包括支持定義過程模型的結構,編輯VPML的可視化圖符原語對象,為每類對象設置其相應的屬性。通過設置活動的屬性完成其時間的設置;通過設置資源對象的屬性完成資源的分配。

(3)模型映射模塊

該模塊包括VPML過程模型映射模塊、生成Petri網腳本文件模塊和生成模型系統腳本文件模塊。

VPML過程模型映射模塊包括對象源語映射模塊、邏輯連接符映射模塊和連接關系映射模塊。對象源語映射模塊能夠完成活動、產品、資源和時鐘的映射。其中產品的映射能夠區分源產品和非源產品。如果是源產品還具有區分單一源產品和多源產品的功能。資源映射首先區分人工資源和非人工資源,然后再進行映射。時鐘映射能夠設置時鐘的開始時間、結束時間、重做周期和間隔時間等,以此對活動進行控制。邏輯連接符映射模塊能夠完成輸入邏輯連接符Input_OR和Input_AND以及輸出邏輯連接符Output_OR和Output_AND的映射。連接關系映射模塊能夠完成數據流連接、關聯連接、引用連接和時鐘連接的映射。

本文原文

生成Petri網腳本文件模塊是將映射的結果按照事先定義好的復合類的腳本文件格式寫入擴展名為.OPNC的腳本文件中,生成復合類;生成模型系統的腳本文件是按照模型系統的腳本文件的基本框架寫入腳本文件,作為系統模擬和定性分析的基礎。

(4)模擬仿真和死鎖檢測模塊

該模塊能完成面向對象Petri網的模擬仿真和死鎖檢測。

3系統核心模塊設計及關鍵技術分析

3.1創建VPML過程模型的流程

生成過程模型如圖6所示。

創建一個過程模型分為以下幾個步驟[3]:

(1)分析用戶需求與目標,根據分析的結果建立VPML過程模型。

(2)定義VPML過程模型的活動以及輸入/輸出產品。

(3)定義執行活動所需的資源。

(4)定義每個對象源語的屬性。

(5)通過合成過程,生成VPML過程模型圖。

(6)檢查VPML過程模型是否具有完整性,如果VPML過程模型具有完整性則保存該文件;否則重新定義。

3.2映射部分的設計與實現

(1)弧的映射

在過程模型中VPML節點是通過弧來連接的。在映射時是將每一條弧映射成由起始節點到門、門到終節點兩條弧。(2)對象源語的映射和生成Petri網腳本文件

對象源語的映射是參照文獻[4]中的VPML語義的Petri網描述。圖7為活動和批處理活動的面向對象Petri網的對應子圖。按照面向對象Petri網事先定義的簡單類和復合類的腳本格式,依照腳本定義的順序依次寫入,并保存在擴展名為.OPNC的文件中。

圖7中批處理活動有四種不同的控制:如果同時選擇時鐘和數量控制,在“選擇二”對象中加一個Token;否則在“選擇一”對象中添加一個Token。詳情請參照文獻[4]。

簡單類的腳本文件的基本框架的定義請參照文獻[2],在此不詳述。在簡單類的定義中,最重要的是Transition的定義。單個Transition的基本框架定義如下:

…:

Pos:…

[Color:…]

[NameLoc:…]

[Time:…]

[PreCond:]

…

[#PreCond]

[Action:]

…

[#Action]

“Time:”是時間標志符,為任選項,用來定義Transition發生的持續時間。后跟用逗號隔開的數字和時間單位。時間單位有七種:“MilliSecond”“Second”“Minute”“Hour”“Day”“Month”和“Year”。

“PreCond:”和“#PreCond”是發生條件定義標志符,為任選項,分別表示發生條件定義的開始和結束。這兩個標志符之間可以定義一個合法的返回值為“boolean”的方法體,若不想為Transition定義發生條件,則可以省略此項內容。

“Action:”和“#Action”是動作定義標志符,為任選項,分別表示動作定義的開始和結束。這兩個標志符之間可以定義一個合法的返回值為“void”的方法體,若不想為Transition定義動作,則可以省略此項內容。在活動的屬性中,最重要的是對活動的持續時間的定義,如果活動的持續時間是常量分布,那么則根據活動定義的具體時間和相應的比例計算出Token停留在Transition中的時間,然后把時間寫入腳本文件中;如果活動的持續時間是其他分布,則根據相應的算法計算出時間,寫入腳本文件中。在模擬時Token會自動駐留在Transition中相應的時間,以達到模擬運行的效果。

(3)生成Petri網腳本文件

將對象源語、邏輯連接符和連接弧映射完之后,需要按照面向對象Petri網中的復合類的腳本文件的基本框架寫入腳本文件,生成的文件保存在.OPNC文件中。

(4)生成模型系統的腳本文件

生成模型系統的腳本文件是按照模型系統的腳本文件的基本框架寫入腳本文件,生成的文件保存在.OPNS文件中。在模型系統的定義中,最重要的是實例的定義。實例的基本定義框架如下:

InnerClass的名字.State的名字:

Token:

實例的名字:

Init:

…

#Init

#Token

在實例的定義中,最重要的是State中Token的定義。比如說執行一個活動必須有人這個資源,那么在寫模型系統的腳本文件時則寫入Token。這樣在模擬運行時,Token會自動存于網中,點擊運行按鈕則網可以自動啟動。

3.3模擬仿真和死鎖檢測模塊

模擬仿真是把OOPN類轉換成Java類來進行底層的實現,而Java類中仍然保留網結構,即系統的執行仍然按照網的引發規則來進行,而非將網結構轉換成語言中的控制結構來實現。這樣可以通過Petri網的執行獲知系統的運作,也可以用Petri網的觀點和角度來對系統進行控制[2]。

死鎖檢測過程首先根據對象的內部結構,提取出對其輸入/輸出門發生次序的要求,構造出接口等價網(InterfaceEquivalentNet,IE網),然后將不同對象的IE網合并,構成整個系統的IE網,通過建立IE網的可達樹,分析其中是否存在死鎖。

4結束語

通過分析VPML和面向對象Petri網各自的特點,提出了VPML-OOPN集成建模方法,設計和實現了VPML-OOPN集成開發環境。此環境可以完成過程模型的建立、映射、模擬仿真和死鎖檢測等功能,實現了VPML和面向對象Petri網的優勢互補。

參考文獻:

[1]周伯生,張社英.可視化建模語言[J].軟件學報,1997,8(增刊):535-545.

[2]牛錦中.基于面向對象Petri網的并發軟件集成開發環境的研究與實現[D].北京:北京航空航天大學,1999:20-24.

[3]周伯生,徐紅,張莉.過程工程原理與過程工程環境引論[J].軟件學報,1997,8(增刊):519-534.

[4]任愛華,周伯生.Petri網描述的VPML語義[J].計算機工程與應用,2001(12):11-18.

[5]勾紅梅,黃必清.UML-PNs集成建模方法及其在虛擬企業中的應用[J].計算機集成制造系統,2000(10):23-28.