《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于統一建模平臺的BPMN模型業務流程驗證
基于統一建模平臺的BPMN模型業務流程驗證
2016年電子技術應用第6期
王克麗1,武淑紅1,王耀力2
1.太原理工大學 計算機科學與技術學院,山西 太原030024;2.太原理工大學 信息工程學院,山西 太原030024
摘要: 為了解決業務流程設計、形式化分析、驗證的平臺不統一以及可移植性差等問題,提出了一種在統一建模平臺上處理BPMN模型輸出的業務流程形式化驗證方案。首先構建基于Java語言的形式化建模平臺,將BPMN模型輸出作為該平臺的輸入。隨后輸出基于BPMN2.0業務流程形式化驗證的Java程序代碼,該代碼可在構建的建模平臺實現自動檢驗業務流程模型中可能存在的死鎖、活鎖。最后給出復雜信息系統相應實例驗證了方案的有效性。
中圖分類號: TP301.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.06.032
中文引用格式: 王克麗,武淑紅,王耀力. 基于統一建模平臺的BPMN模型業務流程驗證[J].電子技術應用,2016,42(6):117-120.
英文引用格式: Wang Keli,Wu Shuhong,Wang Yaoli. Verification of BPMN processes based on the unified modeling platform[J].Application of Electronic Technique,2016,42(6):117-120.
Verification of BPMN processes based on the unified modeling platform
Wang Keli1,Wu Shuhong1,Wang Yaoli2
1.College of Computer Science and Technology,Taiyuan University of Technology,Taiyuan 030024,China; 2.College of Information Engineering,Taiyuan University of Technology,Taiyuan 030024,China
Abstract: To tackle the problems of non-unified platform and poor portability in business process design, formal analysis and verification phase, this paper introduces a formal verification protocol which is based on our unified modeling platform to process the output processes of Business Process Model Notation(BPMN2.0) model. First of all, the formal modeling platform is built based on Java language and its input is directly from the output of BPMN model. Then, a Java code based verification approach for Business Processes Modeling method is proposed by using the BPMN 2.0 standard. In this way after the modeling phase, the created Java code can be automatically run in order to find out possible deadlocks and livelocks. Finally, complex system corresponding instances are introduced to demonstrate the effectiveness of our method.
Key words : BPMN2.0;process verification;complex system;deadlock;livelock

0 引言

    人工設計或自動構建的系統組合可能存在死鎖活鎖等主要問題,特別是對于復雜信息系統。因此,系統交付前軟件開發人員必須對信息系統進行嚴格的驗證,以及時發現系統組合中存在的問題。

    目前使用的BPMN(Business Process Model Notation)流程驗證方法主要集中在:(1)BPMN—Petri網映射及驗證;(2)BPMN—Business Process Execution Language(BPEL)映射及驗證;(3)BPMN—進程代數映射及驗證等。

    文獻[1,2]中,DIJKMAN R M等人提出的方法是將BPMN映射到Petri網。Petri網能揭示系統的許多并發特性,但是它只有模型而沒有演算[3],對于一個復雜的信息系統,若將BPMN模型映射為其對應的Petri網模型也會相對比較復雜,因此,Petri網對于復雜信息系統的描述有一定的局限性[4]。文獻[5]展現了BPMN模型如何生成一個BPEL流程,但是采用的是人工方式,沒有提供一個通用的自動解決方案。在文獻[6,7]中,利用業務流程建模符號(BPMN)建立的業務流程模型可以直接映射到業務流程執行語言(BPEL4WS),在業務流程執行引擎中直接運行,但并不是每一個BPMN元素和BPEL元素都可以形成一一對應,所以不可避免地存在映射對應問題,降低了效率。還有一些文獻提出了將BPMN映射到進程代數的方法(如π演算)[8],這種方法需要基于MWB(Mobility WorkBench)驗證工具來驗證存在的死鎖、活鎖和平臺不統一[9]

    文中驗證方法直接實現為eclipse的一個插件,可在統一建模平臺上直接處理BPMN模型的輸出,從BPMN2.0開始直接生成java程序,有利于系統移植,減少驗證的復雜度;同時在解決復雜信息系統的信息爆炸方面,本文實現了優化展開算法。

1 研究內容

1.1 業務流程建模

    BPMN2.0體系5種核心元素介紹如下:

    (1)流對象(Connecting Objects)

    活動(Activitics):企業所作的工作,活動的類型包括:任務(Task)、進程(Process)和子進程(Sub-Process)。

    事件(Events):業務流程的運行過程中發生的事情。包括啟動事件、中間事件和結束事件。

    網關(Gateways):用于控制流程的分支和聚合。使用最多的是互斥網關和并行網關。

    (2)連接對象(Connecting Objects)

    順序流(Sequence Flow):用來表示活動執行的順序。

    關聯(Association):把流對象聯系起來。關聯用于展示活動的輸入和輸出。

    數據關聯(Data Association):用于將數據信息與流對象聯系起來。

    消息流(Message Flow):表示兩個實體間消息的傳遞。

    (3)數據(Date)

    數據對象(Data Objects):表示活動所需要或產生的數據。它們通過關聯與活動連接起來。

    數據輸入對象(Data Input Objects):整個流程中可以被活動讀取的外部數據。

    數據輸出對象(Data Output Objects):整個流程的輸出數據量。

    數據存儲(Data Store):整個流程存儲數據的地方,如數據庫或文件。

    (4)泳道(Swimlanes)

    池(Pools):描述流程中的一個參與者。可看做是將一系列活動區別于其他池的一個圖形容器,一般用于B2B建模。

    道(Lanes):是池的細分,代表同一實體的不同部分。

    (5)描述對象(Artifacts)

    組(Group):用于分析文檔,不會影響流程。

    注釋(Annotation):為了便于理解,提供一些附加性的文本信息。

1.2 流程到Java代碼的轉換jsj1-t1.gif

    本文在eclipse平臺集成環境中設計并驗證BP(Business Process)模型,eclipse插件的體系結構如圖1所示。

    對于BPMN2.0模型,使用Xpand引擎給出了Java的形式化語義,Xpand引擎為每個BPMN2.0模型的元素創建了合適的Java代碼。這個引擎專門用于代碼生成,它是基于EMF框架和轉換模板定義的。這就意味著能夠從BPMN2.0流程開始直接生成Java程序代碼。為了表示BPMN2.0元素的每個類型(例如開始、網關、事件等),介紹了適于支持驗證的每種類型的具體方法,它們都遵循BPMN2.0的語義。定義如下方法:

    addPObject():一旦Activity被創建就被加到特定的進程中;

    setNext():設置它的下一個元素,定義BP的流向;

    setMsgToSend():用來表示發送消息的任務;

    sendMsg():是為了指定用setMsgToSend方法定義的Activity發送一個消息。

2 BPMN流程驗證

2.1 優化算法及驗證

    展開算法是一種較好的死鎖檢測的方法。它是一個偏序規約的技術,被廣泛應用到Petri網和進程代數中,以減少驗證活動中發生的狀態爆炸問題。事實上,模型的展開算法是無限的,但如果在算法中設置一個特殊的點,稱之為“結束前綴”或“截止點”,一旦構造了結束前綴, 找到識別活鎖狀態的截止點,就可以減少對路徑的搜索,避免狀態爆炸問題,這樣就實現了展開算法的優化。

2.2 BPMN驗證

2.2.1 活鎖驗證jsj1-t2.gif

    對于活鎖的驗證,利用配置樹找到識別活鎖狀態的截止點。當且僅當在配置樹的一個祖先節點的勘探階段已經觀察到當前節點時,路徑是活鎖,并標記當前這個點為截止點。截止點的標識可以有效防止復雜信息系統的狀態爆炸問題。活鎖的BPMN流程圖如圖2所示。

    圖2 BPMN流程不用轉換成狀態較多的Petri網而生成Main.java。

    public Main(){


        Process Process_1= new Process("Process_1");

        Activity ExclusiveGateway_1 = new Activity

        (Activity.GATEWAY_EXCLUSIVE); 

        Activity Task_2 = new Activity(Activity.TASK);

        Activity Task_1 = new Activity(Activity.TASK);

        Activity StartEvent_1 = new Activity(Activity.EVENT_START);

        Activity EndEvent_1 = new Activity(Activity.EVENT_END);


        Process_1.addActivity(ExclusiveGateway_1);

        Process_1.addActivity(Task_2);

        Process_1.addActivity(Task_1);

        Process_1.addActivity(StartEvent_1);

        Process_1.addActivity(EndEvent_1);


        ExclusiveGateway_1.setData("EG 1");

        ExclusiveGateway_1.setNext(EndEvent_1);

        ExclusiveGateway_1.setNext(Task_1);

        Task_2.setData("T2");

        Task_2.setNext(ExclusiveGateway_1);

        Task_1.setData("T1");

        Task_1.setNext(Task_2);

        StartEvent_1.setData("S1");

        StartEvent_1.setNext(ExclusiveGateway_1);

            EndEvent_1.setData("E1");

    }

    參照上面的代碼段,涉及到圖2 Process1中的元素,把Process1中所創建的S1、EG1、T1、T2、E1分別作為不同類型的Activity:START、GATEWAY_EXCLUSIVE、TASK、TASK、END。對每個元素都用setNext方法設置它的下一個元素;對于發送消息的任務,用setMsgToSend方法;發送消息用sendMsg方法。那么,對象就添加到程序中了。圖2示例驗證結果如圖3所示。

jsj1-t3.gif

2.2.2 死鎖驗證jsj1-t4.gif

    對于死鎖的驗證,遵循BPMN2.0的終止范式。在BPMN2.0中,進程執行期間,結束或終止事件發生時,BP才會終止。從配置中一一刪除結束事件,路徑發生死鎖當且僅當當前配置中有阻塞元素(即任務或事件等待消息并且一個并行網關等待的輸入流將永遠不會到來),就說明路徑有死鎖發生,這種方法也符合展開算法。死鎖的BPMN流程圖如圖4所示。

    圖4 BPMN流程不用轉換成狀態較多的Petri網而生成Main.java(略)。圖4示例驗證結果如圖5所示。

jsj1-t5.gif

2.3 Petri網驗證BPMN流程

    DIJKMAN R M等人提出的用Petri網驗證BPMN流程是將BPMN模型轉換為等價的Petri網模型,BPMN模型在ILOG BPMN Modeler中創建并使用ProM驗證。

    死鎖、活鎖定義:Petri網模型的可達圖G=<V:E>是有向圖,頂點集V是Petri 網的狀態集合{M(P0,P1,…,Pn)};

     jsj1-t5-x1.gif有向弧E記錄可執行變遷及其引起的狀態遷移。當遍歷完Petri網的所有變遷后,庫所能夠到達結束庫所并且其他的庫所都是空的時,這個流程是可達的。當可達樹中,葉子節點的狀態標識存在Pi=1但不是結束庫所的庫所時,流程存在死鎖。當可達圖G的任一條路徑Li=M0→M1…Mn(Mi表示庫所變遷后的狀態)表示從初始狀態到結束狀態,那么若任一路徑中存在Li=Mi→M1→M0→M1…Mj(Mi=Mj),則流程存在活鎖[10]

2.3.1 Petri網的活鎖驗證

    如圖6所示是圖2的BPMN模型轉化為等價的Petri網模型, P1和t1是開始庫所和變遷,P6和t6是結束庫所和變遷。圖6的Petri網手工模擬分析結果如圖7所示。

jsj1-t6.gif

2.3.2 Petri網的死鎖驗證jsj1-t7.gif

    如圖8所示是圖4的BPMN模型轉化為等價的Petri網模型,用圓圈表示Petri網的庫所,用長方形表示Petri網的變遷,P0和t0是開始庫所和變遷,P13和t4是結束庫所和變遷。圖8 的Petri網手工模擬分析結果如圖9所示。

jsj1-t8.gif

jsj1-t9.gif

3 驗證結果分析

    對比BPMN模型和Petri網模型,如表1。

jsj1-b1.gif

    通過以上對兩種驗證死鎖和活鎖方法的比較以及表1,可得出本文的BPMN直接驗證法優點:

    (1)BPMN模型比等價的Petri網模型的圖元總數少。BPMN模型轉換成等價的Petri網模型時,隨著BPMN模型的復雜度提高,生成的Petri網模型復雜性也會增加。

    (2)BPMN模型驗證可在統一建模平臺上直接處理BPMN模型輸出,從BPMN2.0開始直接生成Java程序,并自動檢驗業務流程模型中可能存在的死鎖、活鎖。BPMN模型轉換成等價的Petri網模型時,不可避免地存在映射對應問題,降低了效率。

    (3)對于一個復雜的信息組合系統,用BPMN模型直接驗證,可采用“截止點”防止狀態爆炸問題。但若將BPMN模轉換成等價的Petri網模型,狀態增多,同時Petri網所引起的狀態爆炸問題和資源消耗問題很難避免,對于復雜信息系統的描述有一定的局限性。

4 結束語

    本文研究了對BPMN流程的直接驗證方法,并與Petri網驗證作比較,通過對兩個典型的死鎖、活鎖例子的整個過程的建模、轉換和驗證,結果表明對于復雜系統,所提方法可以驗證死鎖、活鎖并有效地避免狀態爆炸問題和映射問題,且平臺統一,可移植性好。今后的工作準備引入π-演算,在統一平臺上實現π-演算的形式化驗證。

參考文獻

[1] DIJKMAN R M,DUMAS M,OUYANG C.Semantics and anaIysis of business proces models in BPMN[J].Information and Software Technology,2008,50(12):1281-1294.

[2] DIJKMAN R M,DUMAS M,OUYANG C.Formal semantics and anaIysis of BPMN process models using Petri Nets[J].Information and Software Technology,2008,50(12):1281-1294.

[3] 錢軍,馮玉琳.系統動態行為語義模型及其形式描述[J].Journal of Computer Research&Development,1999,36(8):907-914.

[4] 朱明英.基于BPMN的Web服務組合模型的形式化分析[D].天津:南開大學,2009.

[5] WHITE S.Using BPMN to model a BPEL process[J].BP Trends,2005,3(3):1-18.

[6] 秦天保.從BPMN到可執行業務流程建模[J].計算機應用,2006(S1):266-268,284.

[7] 魏明,夏永霖,魏峻.BPMN到BPEL2.0的模型轉換方法[J].計算機應用研究,2008(11):3363-3366.

[8] 云本勝.基于π-演算的信任Web服務組合建模[J].計算機科學,2012(S3):240-244.

[9] 李元,李祥.通信系統演算CCS與自動驗證工具MWB[J].通信技術,2005(S1):178-180.

[10] 懷文佳,劉旭東,孫海龍,等.一種基于時間Petri網的業務流程模型驗證方法[C].2010年全國軟件與應用學術會議(NASAC2010)論文集,2010:76-81.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线播放高清精品| 在线成人免费观看| 亚洲高清久久| 国产一区日韩欧美| 免费不卡在线视频| 夜夜嗨av一区二区三区网站四季av| 亚洲黄色片网站| 欧美日一区二区在线观看 | 欧美日韩在线一二三| 亚洲一区二区三区精品在线| 午夜精品久久久久久久男人的天堂| 国产伦精品一区二区三区免费| 久久精品免视看| 亚洲欧洲免费视频| 亚洲视频一二三| 黄色在线成人| 欧美午夜不卡| 欧美日韩999| 欧美在现视频| 妖精视频成人观看www| 亚洲精品四区| 性欧美长视频| 亚洲日本成人女熟在线观看| 欧美亚州在线观看| 久久久精品国产免费观看同学| 欧美一级在线视频| 亚洲精品综合精品自拍| 亚洲精品社区| 在线中文字幕一区| 亚洲国产欧美一区二区三区久久 | 久久一区二区三区超碰国产精品| 99视频一区二区| 一道本一区二区| 欧美中文字幕视频| 一本久道久久综合狠狠爱| 国产真实精品久久二三区| 欧美日韩在线免费| 国产精品久久久久久av福利软件| 欧美xxx成人| 先锋资源久久| 亚洲精品护士| 欧美一区二区免费| 久久精品国产综合| 中文亚洲欧美| 亚洲欧美综合另类中字| 欧美伊久线香蕉线新在线| 亚洲电影网站| 在线视频一区二区| 欧美一区二区成人6969| 久久久久久九九九九| 午夜欧美理论片| 久久免费少妇高潮久久精品99| 久久综合九色综合网站| 久久国产一区二区| 欧美亚洲一区二区三区| 久久久综合视频| 欧美激情综合色| 欧美成在线观看| 久久在精品线影院精品国产| 欧美成人激情在线| 国产精品久久久久国产精品日日 | 久久精品国产99国产精品| 日韩午夜三级在线| 亚洲国产va精品久久久不卡综合| 亚洲精品孕妇| 欧美一区二区三区在线观看视频| 久久婷婷国产综合国色天香| 欧美日韩午夜在线| 国产在线观看一区| 99亚洲一区二区| 亚洲高清精品中出| 亚洲欧美日韩精品久久奇米色影视 | 最新国产乱人伦偷精品免费网站| 亚洲综合导航| 一本一本大道香蕉久在线精品| 香蕉久久夜色精品国产| 欧美大秀在线观看| 国产欧美精品一区二区三区介绍| 国产精品青草久久| 国产精品v日韩精品| 国语自产精品视频在线看抢先版结局 | 亚洲一区黄色| 亚洲欧美大片| 午夜一区在线| 一区二区三区回区在观看免费视频| 久久久成人网| 国产精品电影观看| 亚洲精品欧美精品| 99国产欧美久久久精品| 亚洲视频一区二区在线观看| 亚洲激情专区| 久久精品视频免费播放| 国产精品v欧美精品v日韩精品| 亚洲级视频在线观看免费1级| 久久激情综合网| 欧美有码在线观看视频| 国产精品久久久久久福利一牛影视 | 国产精品久久久久久久电影| 亚洲精品免费一区二区三区| 亚洲激情不卡| 久久夜色撩人精品| 国产一区二区主播在线| 亚洲宅男天堂在线观看无病毒| 午夜精品久久久久久久99热浪潮 | 亚洲视频在线观看免费| 欧美激情第五页| 欧美视频在线播放| 亚洲高清免费| 99综合视频| 亚洲精品久久久久久久久| 久久人体大胆视频| 国产亚洲福利一区| 亚洲激情在线激情| 亚洲国产三级| 久久婷婷国产综合精品青草| 国产午夜亚洲精品不卡| 亚洲欧美日韩另类| 欧美一区二区精美| 国产女人精品视频| 亚洲自拍偷拍网址| 欧美一区网站| 国产日韩在线视频| 欧美主播一区二区三区美女 久久精品人| 欧美亚洲尤物久久| 国产欧美一级| 欧美中日韩免费视频| 久久久久久久综合日本| 激情久久综合| 99在线精品视频在线观看| 一本到12不卡视频在线dvd| 欧美片在线播放| 99国产精品自拍| 亚洲一区二区三区乱码aⅴ| 国产精品高潮久久| 亚洲欧美视频在线| 久久久精品国产免费观看同学| 国内精品久久久久久久影视蜜臀| 久久精品日韩欧美| 欧美福利小视频| av不卡在线观看| 欧美一区二区三区免费看| 国产亚洲电影| 亚洲日韩视频| 欧美视频免费在线| 亚洲欧美偷拍卡通变态| 久久久视频精品| 亚洲国产一区二区a毛片| 这里只有精品视频| 国产精品美女一区二区在线观看| 亚洲欧美美女| 麻豆精品传媒视频| 99天天综合性| 欧美一区在线直播| 韩国欧美一区| 日韩一区二区福利| 国产伦理一区| 亚洲国产影院| 欧美日韩一卡二卡| 欧美在线观看视频一区二区三区| 美女主播一区| 一区二区三区精品视频在线观看| 久久精品国产v日韩v亚洲 | 亚洲日本成人女熟在线观看| 欧美日韩三级电影在线| 午夜视频久久久久久| 欧美高清在线视频| 亚洲一级二级在线| 久热精品视频在线免费观看| aⅴ色国产欧美| 久久只精品国产| 99国内精品| 久久婷婷久久| 夜夜嗨av一区二区三区| 久久亚洲影音av资源网| 亚洲免费观看在线观看| 亚洲日本成人在线观看| 国产精品igao视频网网址不卡日韩| 午夜精品视频在线观看| 欧美r片在线| 亚洲一区二区毛片| 欧美成人精品一区| 香蕉亚洲视频| 欧美日韩喷水| 亚洲大片在线观看| 久久久欧美精品| 亚洲精品一区二区三区樱花| 欧美中文在线字幕| 日韩视频在线一区二区| 久久免费精品日本久久中文字幕| 亚洲美女免费精品视频在线观看| 久久久久九九九九| 一本久道久久综合婷婷鲸鱼| 美日韩精品视频| 午夜精品久久久久99热蜜桃导演| 欧美日本国产视频| 久久精品女人天堂| 国产精品专区h在线观看| 一本久道综合久久精品| 曰本成人黄色| 久久久久久久久久久一区|