概述
業務流程建模標記法(BPMN, Business Process Modeling Notation)是對象管理組織(OMG, Object Management Group)維護的關於業務流程建模的行業性標準。它建立在與UML的活動圖非常相似的流程圖法(flowcharting)基礎上,為“業務流程圖”(BPD, Business Process Diagram)中的特定業務流程提供一套圖形化標記法。BPMN的目標是,通過提供一套既符合業務人員直觀又能表現複雜流程語義的標記法,同時為技術人員和業務人員從事業務流程管理提供支持。BPMN規範還提供從標記法的圖到執行語言基礎構造的映射,尤其是業務流程執行語言(BPEL, Business Process Execution Language)。
BPMN的首要目的是提供全體業務相關者易於理解的標準標記法。業務相關者包括創造與梳理流程的業務分析師、負責實施流程的技術開發者、以及管理和監督流程的經理人。BPMN旨在充當公共語言,跨越業務流程設計和實施之間常見的鴻溝。
當前有多種競爭的業務流程建模語言標準供建模過程和工具選用。廣泛採用BPMN將有助於統一基本的業務流程概念的表達(例如:公共或私有的流程、編排),就像一些高級的業務概念一樣(例如:例外處理、事務補償)。
BPMN基本話題
範圍
BPMN僅限於支持對業務流程有用的建模概念。這意味著組織所做的非業務目的其他類型建模將排除在BPMN之外。例如,以下方面的建模不屬於BPMN的一部分:
組織結構 職能分解數據模型 此外,雖然BPMN會顯示數據的流(訊息)以及活動與數據器物的關聯,但它並非數據流圖(data flow diagram)。
要素
BPMN用很小一套圖形要素做簡單的圖來建模,這將令業務用戶與開發者一樣容易理解其中的過程和流。它的四種基本要素如下:
流對象(Flow Object) 事件(Events),活動(Activities),關口(Getways) 連線對象(Connecting Objects) 順序流(Sequence Flow),訊息流(Message Flow),關聯(Association) 泳道(Swimlanes) 池(Pool),道(Lane) 器物(Artifacts/Artefacts) 數據對象(Data Object),組(Group),注釋(Annotation) 這四大類對象令我們有機會做出簡單的業務流程圖(BPD, business process diagram)。同時,BPMN也允許在BPD中創建你自己的流對象、器物類型,使圖更好理解。
流對象與連線對象
事件 Event | 活動 Activity | 關口 Gateway | 連線 Connections |
流對象(Flow Objects)是BPMN的主要描述對象,由三種核心要素(事件、活動、關口)組成。
事件(Event) “事件”(Event)以圓環表示,指發生的事情(區分於“活動”代表所做的事情)。圓環中的圖示代表事件的類型(例如:信封為訊息,時鐘為時間)。事件也被分為“捕獲”(Catching,例如捕獲輸入的訊息而開始一個流程)或“拋出”(Throwing,例如在流程結束拋出訊息)。 開始事件(Start event) 作為流程的觸發器;以細單線標明,並且只能“捕獲”(Catch),所以它顯示為空心(輪廓)的圖示。 結束事件(End event) 表現流程的結果;以粗單線標明,且只能“拋出”(Throw),所以顯示為實心圖示。 中間事件(Intermediate event) 表現發生在開始和結束事件之間的事;以雙線標明,可以是“拋出”或“捕獲”(相應採用實心或空心圖示)。例如,一任務流到一事件,拋出一個訊息到另一個池,然後由下一個事件守候,捕獲其回應。 活動(Activity) “活動”(Activity)用圓角矩形表示,並描述必需做的工作的種類。 任務(Task) 任務代表單一工作單元,它不會或不能被分解為更深層次上的業務流程細節,而不包含操作程式步驟的圖示(此非BPMN的目的)。 子流程(Sub-process) 用於隱藏或顯露深層業務流程細節——收起時,在矩形底部用加號標明子流程;展開時,在矩形內顯示全部的流對象、連線對象及器物。 子流程自含開始及結束事件,來自“父”流程的順序流不可跨過其框線。 事務(Transaction) 子流程的一種形式,其所包含的全部活動必須作為一個整體對待,即它們必須完全結束以滿足目標,其中任何一個失敗就必須全部償還(撤回)。事務作為擴展的子流程,用雙線環繞。 關口(Gateway) “關口”(Gateway)用菱形表示,基於所示條件決定路徑的分流與合併。 “流對象”通過“ 連線對象”(Connecting objects)互相連線。連線對象包括三個類型(順序、訊息、關聯):
順序流(Sequence Flow) “順序流”用實心線和箭頭表示,顯示活動進行的順序。“順序流”還可以在開始端帶有符號,以小菱形標明其中一些發自活動的“條件流”(conditional flow),同時以對角斜線標明發自活動或決定,帶條件流的“默認流”(default flow)。 訊息流(Message Flow) “訊息流”用虛線表示,起始端有一個空心圓圈,終端是一個空心箭頭。它告訴我們哪些訊息流跨過組織的邊界(即介於池之間)。訊息流不可用於在同一個池中連線活動或事件。 關聯(Association) “關聯”(Association)用點線表示。它用於建立器物或文本到流對象的聯繫,並且可以用空心箭頭標明某種方向性(指向器物表示結果,源自器物表示輸入,同時出現則表示讀和更新)。當器物或文本聯繫到順序或訊息流時,關聯無需標明方向(那些流已經顯示了方向)。
泳道與器物
泳道 Swimlanes | 數據對象 Data objects | 組 Groups | 注釋 Annotation |
泳道(Swimlanes)是從視覺上對活動加以組織或分類的機制。它基於交叉功能流程圖基礎,在BPMN中有兩種類型:
池(Pool) 表示流程中的主要參與者,典型地,用來分開不同的組織。一個池可容納一個或多個道(像真實的泳池一樣)。當池為展開的(顯示出內部細節),繪做大的矩形;若為收起的(隱藏起內部細節),繪做沿著圖的長或寬伸展的空的矩形。 道(Lane) 在池中,用於活動按職能或角色歸類。繪做按池的長或寬展開的矩形。道包含流對象、連線對象和人造物。
器物(Artifacts)使開發者可以帶給模型/圖更多的信息,通過這一方式,使模型/圖更可讀。預定的三種器物如下:
數據對象(Data Objects) “數據對象”向讀者顯示在活動中需要或產生哪些數據。 組(Group) 組表現為虛線的圓角矩形。組用來將不同的活動分組,但不影響圖中的流。 注釋(Annotation) 注釋為模型/圖的讀者增加可理解性。
業務流程圖的類型
點擊小圖查看全尺寸圖
帶正常流的流程 | 討論循環 | 電子郵件投票流程 | 採集投票 |
在BPMN的三種子模型之內和之間,可以創建各種類型的圖。以下列出的是能夠用BPMN建模的業務流程類型(其中帶星號的可能無法映射到執行語言):
高層次私有流程的活動(非職能分解)* 細節私有流程(Detailed private business process) 當前或過往的業務流程* 未來或新業務流程 與一個或多個外部實體互動的細節私有業務流程(或“黑盒子”流程) 兩個或更多細節私有業務流程的互動作用 細節私有業務流程到抽象流程的聯繫 細節私有業務流程到協作流程的聯繫 兩個或更多抽象流程* 抽象流程與協作流程的關係* 單獨的協作流程(例如:ebXML BPSS或RosettaNet)* 兩個或更多細節私有業務流程通過抽象流程的互動作用 兩個或更多細節私有業務流程通過一個協作流程的互動作用 兩個或更多細節私有業務流程通過抽象與寫作流程的互動作用 BPMN的設計目標是允許上述全部類型的圖。然而,需要小心的是,包含了太多的子模型類型,例如三種或更多的私有流程之間都有訊息流連線,這樣的圖可能會變得難以理解。因而,我們建議建模者為諸如私有流程、協作流程的BPD建立明確的目標。
BPMN 2.0
BPMN 2.0的工作提案名為“業務流程模型及標記法”。BPMN 2.0為新的業務流程模型和標記法建立單一規範,對標記法、元模型和交換格式做出界定。2.0版的名稱有所修改,但仍會維持“BPMN”這個標誌。已提議的特徵有:
結合BPMN和“業務流程定義元模型”(Business Process Definition Meta model, BPDM),形成單純一致的語言 使能在建模工具間交換業務流程模型及其布局,以保持語義完整性 擴充BPMN以允許將模型配置與編排成獨立或集成的模型 支持模型上不同透視法的顯示和交替,令用戶可以聚焦於特定的關注點 串列化BPMN,為模型轉換提供XML方案(schemes),向執行決策支持方向擴展業務模型。 新BPMN的建議方案計畫在2008年內完成。 有兩個不同的小組分別在競爭的規範草案上工作。第一個小組包括例如EDS和MEGA,目標是直接吸收BPDM到BPMN規範。第二個小組包括例如SAP AG,IBM,Oracle,不準備直接包括BPDM,而試圖提供兩個標準間的映射。從2008年7月開始,二者開始討論合併其草案提出單一的規範。
BPMN的使用
業務流程建模用於傳達廣泛而多樣的信息給廣泛而多樣的客群。BPMN的設計就是為了覆蓋這種廣泛的用途,並且允許端到端的業務流程建模,從而令圖的觀察者能夠方便地區分一個BPMN圖上的不同部分。在一個端到端的BPMN模型中有三種基本的子模型:“私有”(內部的)業務流程、“抽象”(公共的)流程,和“協作”(全局的)流程:
私有(Private;內部的)業務流程 私有業務流程是指特定組織內部且通常被稱為工作流或業務流程管理(BPM)流程的一類流程。如果用了泳道,則一個私有業務流程將包容在單個的池中。該流程的順序流完全包含在其池之中,不可跨越邊界。訊息流可以跨越池的邊界,顯示不同的私有業務流程間的互動作用。 抽象(Abstract;公共的)流程 表示私有業務流程與其它流程或參與者之間的互動。只有那些通訊範圍超出私有業務流程的活動包括在抽象流程中。剩下那些私有業務流程的“內部”活動不顯示在抽象流程中。即,抽象流程向外部世界顯示訊息序列,這些訊息序列是與其業務流程互動所必須的。抽象流程可包含在一個池中並單獨建模,或包含在一個大的BPMN圖中顯示抽象流程活動與其它實體之間的訊息流。如果一抽象流程與其對應的私有流程在同一個圖中,則其活動對可關聯的流程雙方是共用的。 協作(Collaboration;全局的)流程 協作流程刻畫兩個或更多業務實體之間的互動作用。這些互動作用定義為活動序列,這些活動序列表示所涉及實體之間的訊息交換模式。協作流程也可能包容在一個池中,不同參與者的業務互動作用顯示為該池中的道。在這種情形下,每個道將代表兩個參與者和他們之間的移動方向。它們也可以顯示為兩個或更多的抽象流程,通過訊息流互動作用(如上一節所描述)。這些流程可以獨自建模,或者在一個大的BPMN圖中顯示協作流程活動和其它實體間的關聯。如果協作流程在同一個圖中作為協作的私有業務流程,則其活動對可關聯的流程雙方是共用的。
BPMN的弱點
BPMN的弱點涉及以下方面:
在共享的BPMN模型中的歧義與混淆 對例行工作的支持 對知識工作的支持,及 BPMN模型到執行環境的轉換