BPMN
workflow的建模語言標準之一
BPMN:業務流程建模與標註,包括這些圖元如何組合成一個業務流程圖(Business Process Diagram);討論BPMN的各種的用途,包括以何種精度來影響一個流程圖中的模型;BPMN作為一個標準的價值,以及BPMN未來發展的遠景。
由BPMI(The Business Process Management Initiative)開發了一套標準叫業務流程建模符號(BPMN - Business Process Modeling Notation)。在 BPMI Notation Working Group超過2年的努力,於2004年5月對外發布了BPMN 1.0 規範。后BPMI併入到OMG組織,OMG於2011年推出BPMN2.0標準,對BPMN進行了重新定義(Business Process Model and Notation)。BPMN的主要目標是提供一些被所有業務用戶容易理解的符號,從創建流程輪廓的業務分析到這些流程的實現,直到最終用戶的管理監控。BPMN也支持提供一個內部的模型可以生成可執行的BPEL4WS。因此BPMN的出現,彌補了從業務流程設計到流程開發的間隙。
BPMN定義了一個業務流程圖(Business Process Diagram),該業務流程圖基於一個流程圖(flowcharting),該流程圖被設計用於創建業務流程操作的圖形化模型。而一個業務流程模型(Business Process Model),指一個由圖形對象(graphical objects)組成的網狀圖,圖形對象包括活動(activities)和用於定義這些活動執行順序的流程式控制制器(flow controls)。
BPMN是BPM及workflow的建模語言標準之一。
在我的前篇文章<淺談眾多工作流規範>中談到了一個重要的工作流建模語言的規範--BPMN。先是直接查看BPMN V1.01的規範內容,200多頁內容繁多,細節不少。作為初學者看得暈頭轉向,現獻上幫助初學者理清思路,總體把握清楚BPMN規範。
1、什麼是BPMN
首先BPMN規範是由標準組織BPMI發布的.BPMN1.0規範發佈於2004年5月。此規範展示了BPMI組織兩年多的努力成果。BPMN的主要目標就是要提供被所有業務用戶理解的一套標記語言,包括業務分析者、軟體開發者以及業務管理者與監察者。BPMN還將支持生成可執行的BPEL4WS語言。所以,BPMN在業務流程設計與流程實現之間搭建了一條標準化的橋樑。
BPMN定義了業務流程圖,其基於流程圖技術,同時為創建業務流程操作的圖形化模型進行了裁減。業務流程的模型就是圖形化對象的網圖,包括活動(也可以說工作)和定義操作順序的流控制。
2、BPMN基礎
業務流程圖由一系列的圖形化元素組成。這些元素簡化了模型的開發,且業務分析者看上去非常熟悉。這些元素每個都有各自的特性,且與大多數的建模器類似。比如,活動是矩形,條件是菱形。應該強調的是:開發BPMN的動力就是為了在創建業務流程模型時提供一個簡單的機制,同時又能夠處理來自業務流程的複雜性。要處理這兩個矛盾的需求的方法就是將標記的圖形化方面組織分類為特定的類別。這裡提供標記類別中的一小部分,以便業務流程圖的讀者可以簡單地識別出元素的基本類型從而理解圖形。以下是四種基本的類型:
1)流對象(Flow)
2)連接對象(Connection)
3)泳道(Swimlane)
4)人工信息(Artifact)
下面一一解釋
流對象:
一個業務流程圖有三個流對象的核心元素。這三種流對象是
事件---一個事件用圓圈來描述,表示一個業務流程期間發生的東西。事件影響流程的流動,一般有一個原因(觸發器)或一個影響(結果)。基於它們對流程的影響,有三種事件:開始,中間以及終止事件
活動---一個活動用圓角矩形表示,是要處理工作的一般術語。一個活動可以是原子性的也可以是非原子性的(可以是由多個活動組合而成的更大粒度的活動)。活動的類型包括:任務和子流程。子流程在圖形的下方中間外加一個小加號(+)來區分。
條件---條件用熟悉的菱形表示,用於控制序列流的分支與合併。另外,它還可以作為傳統的選擇,還包括路徑的分支與合併。其內部的標記會給出控制流的類型。
連接對象:
連接對象將流對象連接起來形成一個業務流程的基本結構。提供此功能的三個連接對象是:
順序流---順序流用一個帶實心箭頭的實心線表示,用於指定活動執行的順序。注意“控制流”這個術語一般不用於BPMN
消息流---消息流用一條帶有開箭頭的虛線表示,用於描述兩個獨立的業務參與者(業務實體或業務角色)之間發送和接受的消息流動。在BPMN中,用兩個獨立的池代表兩個參與者。
關聯---用一根帶有線箭頭的點線表示關聯,用於將相關的數據、文本和其他人工信息與流對象聯繫起來。關聯用於展示活動的輸入和輸出。
泳道:
許多建模技術利用泳道這個概念將活動劃分到不同的可視化類別中來描述由不同的參與者的責任與職責。BPMN支持2種主要的泳道構件。
池---池描述流程中的一個參與者。可以看做是將一系列活動區別於其他池的一個圖形容器,一般用於B2B的上下文中。
道---道就是在池裡面再細分,可以是垂直的也可以是水平的。道也是用於組織和分類活動。
人工信息:
人工信息添加到建模的業務流程上下文中作為信息備註,便於人員理解,當前BPMN規範的版本預定義了3種人工信息:
數據對象---數據對象是一個顯示活動是如何需要或產生數據的。它們通過關聯與活動連接起來。
組---組用一個虛線的圓角矩形表示,用於記錄或分析的目的,但不影響順序流。
註釋---註釋是建模者為BPMN圖的讀者提供附加文本信息的一個機制。
3、BPMN建模的價值
BPMN的開發是減少眾多已存在的業務建模工具和標記斷層的重要的一步。BPMI標準化組織從許多存在的標記中展示出了專業和經驗,且從這些不同的標記中找到了最好的理念形成一套標準的標記語言,眾多的標記語言包括UML、Activity Diagram、UML EDOC Business Process、IDEF、ebXML BPSS、RosettaNet以及Event-Process Chains等等。一個好的標準建模標記將會減少業務與IT用戶之間的混亂。
另一個驅使BPMN的開發原動力是,歷史上由業務人員做出來的業務流程建模從需要系統設計與執行的流程描述中隔離出來,所以有必要將原有的業務流程模型轉換為執行模型,而這個轉換對於流程擁有者來說容易出錯,且很艱難。
為了減少建模技術的斷層,開發BPMN的重要目標就是要創建面向業務流程建模標記到面向IT執行語言的一座橋樑。以下是BPMN的圖形化對象映射為BPMN v1.1的掛圖。
BPMN Version 1.1 掛圖
對於BPMN標註,有一些大家一致公認的基本要素。其核心集包括含事件、活動和網關在內的流對象(flow objects),含順序流、消息流以及關聯在內的連接對象(connecting objects);以及含數據對象、文字註釋和組在內的人工產物(artifacts)。
BPMN的一個突出部分是強調被稱為泳道類型的元素。該元素由泳池和泳道組成。
泳道圖就是一個圖形化的容器,該容器將一組活動與其他泳池的活動進行分隔。活動因此成為整個業務流程的自動單元。泳道則用於對活動進行組織和分類,是泳池內的子分區。
ProcessOn在線流程設計器
ProcessOn流程圖設計器支持BPMN2.0的三種標準類型建模-Process,Collaboration和Choreography.用戶在畫BPMN2.0流程圖的同時,還可以設置與特定圖形相關的業務屬性,ProcessOn內置了BPMN2.0展示層所要求的所有標準業務屬性。
BPMN2.0Modeler for Visio description
BPMN的2.0建模for Visio是微軟Visio附件設計繪製和建模業務流程。這是一個全面的用戶友好的軟體包。2.0建模的BPMN為Visio支持的BPMN2.0元素提出一套完整的(流對象,連接對象,泳道,文物和數據)。
目前最新版本為支持Visio2010的2.1版。