bpmn被bpms廠商們大量採用,他們使用它來進行流程的建模,至於模型的執行和儲存,則由他們各自不同的流程執行語言實現。時至今日,bpmn1.x被大多數的建模工具和bpms廠商所支援,他們關心的是建模,沒有人關心bpmn的直接執行,也是,bpmn的主要使用者是業務人員和流程分析人員。
那麼,bpmn的故事結束了嗎?顯然沒有,bpmn1.x只是一些建模符號,不支援元模型,不支援儲存和交換,也不支援執行。那麼圍繞著bpmn1.x的儲存、交換和執行,必然會產生新的競爭,這次的主角換成了xpdl、bpel和bpdm。
xpdl作為wfmc提出的流程定義語言規範,本身就是乙個元模型,可以儲存,並且具備執行語義,因此理論上來講,將bpmn轉換為xpdl就可以解決儲存、交換和執行的問題。xpdl2.0於2023年10月發布,在規範裡,wfmc直接將xpdl的目標定義為bpmn的xml序列化格式。2023年4月23日發布的xpdl2.1規範,直接支援bpmn1.1到xpdl2.1的轉換。xpdl是面向圖的,bpmn也是面向圖的,因此bpmn到xpdl的轉換有著天然的優勢。如今有超過80個的不同公司的產品使用xpdl來交換流程定義,同時也有一些廠商在自己提供的bpmn工具中使用了xpdl作為交換和儲存格式。
但xpdl的流行是大廠商們所不願看到的,他們的規範自然還是bpel,我辛辛苦苦pk掉bpml,您xpdl搶位來了,我情何以堪,情何以堪啊。bpel-ws規範在2023年4月提交給了oasis(organization for the advancement of structured information standards,結構化資訊標準促進組織)並更名為wsbpel(web services business process execution language)規範, 2023年4月發布wsbpel2.0版本,除了microsoft、 bea、 ibm、 sap 和siebel,sun microsystems和甲骨文公司也相繼加入了oasis組織。除去政治因素,bpel的流行還在於web正成為分布式系統架構的平台以及soa的雄起,soa強調服務的分解和解耦,而bpel則對這些web服務進行編制,兩者密不可分。但bpmn到bpel的轉換存在著先天上的缺陷,原因是bpmn是基於圖的,而bpel是基於塊的,bpel是乙個結構化(塊[block])和非結構化(控制鏈和事件)的混合體。這個缺陷導致有些bpmn建模的流程無法對映到bpel,兩者的雙向工程更是存在問題。這個缺陷成為人們反覆詬病的物件。許多支援bpel的產品為了解決這一問題,不得不在使用者建模時做出種種限制,讓使用者繪製不出無法轉換的模型。
而bpdm(業務流程定義元模型,business process definition metamodel)則是omg組織自己提出來解決bpmn儲存和交換問題的規範。於2023年7月形成初稿,2023年7月被omg最終採用。bpdm是乙個標準的概念定義,用來表達業務流程模型。元模型定義了用來交換的概念,關係和場景,可以使得不同的建模工具所建模出來的流程模型進行交換。bpdm超越了bpmn和bpel所定義的業務流程建模的要素,它定義了編排和編制。
三者的競爭關係似乎還將繼續,但,bpmn2.0出現了,bpmn2.0 beta1版本於2023年8月發布,bpmn2.0 beta2版本於2023年5月發布,bpmn2.0正式版本於2023年1月3日發布。bpmn2.0正式將自己更名為business process model and notation(業務流程模型和符號),相比bpmn1.x,最重要的變化在於其定義了流程的元模型和執行語義,即它自己解決了儲存、交換和執行的問題,bpmn由單純的業務建模重新回歸了它的本源,即作為乙個對業務人員友好的標準流程執行語言的圖形化前端。bpmn2.0一出手,競爭就結束了,xpdl、bpel和bpdm各自準備回家釣魚。看起來勝利者似乎是bpmn,但看看bpmn2.0的領導者,就會發現最後的勝利者還是ibm, oracle和sap這些大廠商們,他們提交的草案明確要賦予bpmn2.0以執行語義,這迫使bpdm團隊撤回了其提交,並將他們的提議與bpdm團隊想法合併,這就是bpmn2.0最後內容的由來。
bpmn的目標是期望通過一套統一的建模、執行模型填起業務人員與開發人員之間的那道鴻溝。但問題是它真的能夠如它期望般的做到這一點嗎,對業務人員友好的模型對開發人員同樣友好嗎,反過來,對開發人員友好的模型對業務人員同樣友好嗎,儘管他們使用的都是同一套符號?我們在後續的建模例項裡將看到這樣的問題,這涉及到建模的風格。同乙個流程模型能夠使用多種建模方式,哪種方式才是最有效的?這就需要考慮模型的使用者是誰(業務人員、分析人員、開發人員),才能界定是否有效了。此外,工具畢竟只是工具,促進業務人員與開發人員之間的溝通,除了工具,還有公司文化、組織結構等等其他人的因素,這也才是最重要的因素。
不管怎樣,bpmn2.0是bpmn歷史上最重要的乙個版本,bpmn繼續向正確的方向邁進了一大步。在下一節裡,我們將一起看看bpmn所支援的三種基本型別的流程模型。
BPMN這點事 BPMN的元素
我們使用bpmn元素進行建模,bpmn的元素分為五個類別 圖10 9bpmn的元素分類 流物件 flow objects 流物件是定義業務流程的主要圖形元素。它進一步細分為三個類別,分別是事件 events 活動 activities 和閘道器 gateways 資料 data 它分為四個類別 資料...
BPMN這點事 BPMN基本元素(上)
什麼是bpmn基本元素?我們為什麼要從bpmn元素中界定出乙個基本元素的子集?bpmn基本元素是我們認為可以進行實際建模的bpmn元素的最小子集,使用bpmn基本元素我們可以建立非常簡單的流程 編制 和協作模型,這些元素非常容易學習,對於沒有技術背景的業務人員也很容易理解,適合草圖和非正式的溝通。b...
BPMN這點事 BPMN基本元素(上)
什麼是bpmn基本元素?我們為什麼要從bpmn元素中界定出乙個基本元素的子集?bpmn基本元素是我們認為可以進行實際建模的bpmn元素的最小子集,使用bpmn基本元素我們可以建立非常簡單的流程 編制 和協作模型,這些元素非常容易學習,對於沒有技術背景的業務人員也很容易理解,適合草圖和非正式的溝通。b...