530 likes | 982 Vues
利用 Petri Net 分析以 BPMN 為基之企業流程模型的有效性 NSC 94-2213-E-011-015 報告人 : 歐陽超 臺灣科技大學工業管理系 中華民國九十五年十一月十一日. 緒論. 研究背景 商業流程執行語言的出現 -BPEL4WS BPEL4WS 在 2002 年時由 IBM 、 Microsoft 和 BEA 所提出,它是一種以 XML 為基礎的網路服務組合語言。 圖形化的商業流程執行語言 -BPMN BPMI (Business Process Management Initiative) 在 2004 年 5 月提出了 BPMN 規範。
E N D
利用Petri Net分析以BPMN為基之企業流程模型的有效性 NSC 94-2213-E-011-015 報告人:歐陽超 臺灣科技大學工業管理系 中華民國九十五年十一月十一日
緒論 • 研究背景 • 商業流程執行語言的出現-BPEL4WS • BPEL4WS在2002年時由IBM、Microsoft和BEA所提出,它是一種以XML為基礎的網路服務組合語言。 • 圖形化的商業流程執行語言-BPMN • BPMI (Business Process Management Initiative)在2004年5月提出了BPMN規範。 • 其提供圖形化的方式讓使用者易於了解及創造商業流程。 • 另外,也提供了BPMN轉換至BPEL4WS之轉換語法。
緒論 • 研究動機 • 繪製BPMN模型時可能會因為塑模者邏輯錯誤造成模型無效。 • 繪製BPMN模型時可能會因為不當地結合control element使得模型無效 - 即fork、join、split及merge四種行為。 • 問題點: • 如何判斷BPMN模型是否有效? → 利用Petri Net • 研究目的 • BPMN無效模型的歸類 • 訂定一套將BPMN模型轉換為Petri Net模型的方法 • 利用Petri Net分析BPMN模型的有效性及其他相關特性
所引用方法之簡述 • BPEL4WS常用標籤 • 共通標籤: • 基本活動標籤:
所引用方法之簡述 • 結構性活動標籤: • 作用域標籤(Scope):
所引用方法之簡述 • BPMN常用圖形:
研究方法架構 • 研究方法分為四大部分 • 問題分析階段 • 概念分析階段 • 模型分析階段 • 設計階段 • 模擬階段 • 實作階段
概念分析階段 • 設計企業模型時可能遭遇的問題: • 定義階段時塑模者邏輯錯誤 • 定義階段時流程設計錯誤 • 這些無效的情形在規劃階段不易被察覺。 • 若在定義階段及實作階段之間加入驗証階段驗証模型是否有效,可防止企業浪費資源在錯誤的企業模型中。 Invalid Valid Planning Definition Verification Implementation
模型分析階段 • 繪製BPMN模型時,會因為不當地結合control element使得模型無效: • Fork (And - Split) • Join (And - Join) • Split (Or - Split) • Merge (Or - Join) • 本研究根據這四種control element,將BPMN模型可能發生無效的情況分為二類: • 死結 • 無限迴圈 • 另外,本研究針對BPMN模型再提出一項特性做分析: • 商業流程執行完成時間
死結 模型分析階段 • 死結 • 若在BPMN模型中的某個結點發生死結,則無法繼續結點之後的流程。
無限迴圈 模型分析階段 • 無限迴圈 • 在迴圈中使用Parallel Gateway會造成無限迴圈的情況。
模型分析階段 • 商業流程執行完畢時間 • 在BPMN模型中,會因為選擇的路徑不同而使得完成時間有所不同。 • 本研究利用Time Petri Net來計算這些不同的時間,提供給塑模者做為流程設計的參考。
設計階段 • 建立BPMN模型轉換為Petri Net模型的轉換樣版。 • 根據第一步驟的轉換樣版將BPMN模型轉換為Modified BPEL4WS語法。 • 根據第一步驟的轉換樣版將Petri Net模型轉換為CPNXML語法。 • 根據第二步驟及第三步驟定義XSLT描述語法,以將Modified BPEL4WS轉換為CPNXML(描述Petri Net的XML語法)。 1 3 2 4
BPMN模型轉換為Petri Net模型的轉換樣版 • Event • Activity
BPMN模型轉換為Petri Net模型的轉換樣版 • Control Element • Fork (And-Split) • Join (And-Join)
BPMN模型轉換為Petri Net模型的轉換樣版 • Split (Or-Split) • Merge (Or-Join)
將BPMN模型轉換為Modified BPEL4WS語法 • 轉換方式 • 根據前一步驟之轉換樣板及BPMN規格書中的轉換方式 • 另外再加入三個屬性: • Sequence:BPMN Block位於的區塊 • Aim:BPMN Block目標的區塊 • Type:BPMN Block的類型
將BPMN模型轉換為Modified BPEL4WS語法 • Event • Activity • Fork
將BPMN模型轉換為Modified BPEL4WS語法 • Join • Split • Merge
將Petri Net模型轉換為CPNXML語法 • CPNXML之主要標籤
描述Place「P2」之座標、內含文字、token狀態、資料型態描述Place「P2」之座標、內含文字、token狀態、資料型態 CPNXML基本定義 描述Transition「ncname」之座標、內含文字、資料型態 描述P1連結至ncname的Arc,其中包含座標,連結點及資料型態 描述ncname連結至P2的Arc,其中包含座標,連結點及資料型態 描述Place「P1」之座標、內含文字、token狀態、資料型態
Event之BPMN模型: 利用XSLT描述語言將Modified BPEL4WS轉換為CPNXML Event之Modified BPEL4WS語法: CPNXML XSLT程式碼(描述Transition的部分)
模擬階段 • 利用Petri Net軟體「CPN Tools」來模擬分析轉換出的CPNXML語法。 • 死結 • 無限迴圈 • 執行完成時間
死結 死結 模擬階段 • 死結:若一個Petri Net中某個Transition無法被任何狀態M激發,且 ,則稱這個Petri Net發生死結(Deadlock)。
模擬階段 • 無限迴圈: • 可到達性: • 起始狀態 :(1,0,0, … ,0) • 結束狀態 :(0,0,0, … N)
模擬階段 • 流程執行完成時間:利用Time Petri Net 3 7 2 3 5 4 6 3 7 2 3 5 6 4
研究方法實作 • 本研究將BPMN模型轉換為完整的CPNXML語法分為四個步驟: • 「BPMN To BPMN Block」的拆解方法:根據拆解法則將BPMN模型拆解成數個BPMN Blocks。 • 「BPMN Blocks To BPEL Blocks」的轉換方法:根據BPMN規格書及本研究自定的語法將BPMN Blocks轉換為Modified BPEL Blocks。 • 「BPEL Block To CPNXML」的轉換方法: • 「BPEL Blocks To CPNXML Blocks」轉換模組 • 「Add Arc and End Block」模組 • 「Merge」模組 • 利用CPN Tools來模擬Petri Net模型。
「BPMN To BPMN Block」的拆解方法 編號的前二碼為BPMN Block的橫向編號,編號的後一碼為BPMN Block的縱向編號。
「BPMN Blocks To BPEL Blocks」的轉換方法 • 根據研究方法中所提及的轉換方式,將BPMN Blocks轉換為BPEL Blocks。
「BPEL Block To CPNXML」的轉換方法 • Block間的連結
「BPEL Block To CPNXML」的轉換方法 • XSLT Template對應表
「BPEL Blocks To CPNXML Blocks」轉換模組 • 編號 • BN代表Block的編號、BN後二碼代表Petri Net圖形中元素的類別。 • 如此便可為每個元素定義獨一無二的編號。
Block「011」 利用addArc.java 呼叫addArc.xslt Block「012」 利用addArc.java將二個Block合併
「Merge」模組 • 將所有的Block組合,加入CPNXML的基本定義中。 在此插入所有的Blocks
利用CPN Tools來模擬Petri Net模型 • CPN Tools開啟畫面
Simulation工具 利用CPN Tools來模擬Petri Net模型 • Simulation功能:了解token流動的情形
State space工具 利用CPN Tools來模擬Petri Net模型 • State space功能:產生分析報表
案例分析-訂單處理流程 不可使用Exclusive Gateway Join091 改進後的訂單處理流程 :
案例分析-訂單處理流程 • 流程執行時間 time=4 time=3 time=1 time=1 time=2 time=3 time=2 加入時間
流程執行完畢時間為12個時間單位 案例分析-訂單處理流程 • 訂單被接受之流程執行完畢時間
流程執行完畢時間為4個時間單位 案例分析-訂單處理流程 • 訂單被拒絕之流程執行完畢時間
不可使用Parallel Gateway 案例分析-生產線流程 有異常值,流程中可能有無限迴圈
結論 • 提出建構BPMN模型時可能造成模型無效的情況,藉以得知建構BPMN模型時,可能會遭遇的問題點。 • 提供一套BPMN模型轉換為Petri Net模型的方法,讓塑模者可迅速地將BPMN模型轉換為Petri Net模型,以進行模擬分析。 • 利用Petri Net之特性分析BPMN模型之有效性,並利用Time Petri Net來計算BPMN模型執行完成的時間,以提供給塑模者做為流程設計的參考。