Activiti學習——BPMN2.0規范說明

什么是BPMN、Workflow?

? BPM(Business Process Management)——“通過建模、自動化、管理和優化流程,打破跨部門跨系統業務過程依賴,提高業務效率和效果”。
? Workflow——“全部或者部分由計算機支持或自動處理的業務過程”(工作流管理聯盟WfMC組織對工作流概念的經典定義)
BPM基本內容是管理既定工作的流程,通過服務編排,統一調控各個業務流程,以確保工作在正確的時間被正確的人執行,達到優化整體業務過程的目的。 BPM概念的貫徹執行,需要有標準化的流程定義語言來支撐,使用統一的語言遵循一致的標準描述具體業務過程,這些流程定義描述由專有引擎去驅動執行。這個 引擎就是工作流引擎,它作為BPM的核心發動機,為各個業務流程定義提供解釋、執行和編排,驅動流程“動“起來,讓大家的工作“流”起來,為BPM的應用 提供基本、核心的動力來源。
現實工作中,不可避免的存在跨系統跨業務的情況,而大部分企業在信息化建設過程中是分階段或分部門(子系統)按步實施的,后期實施的基礎可能是前期 實施成果的輸出,在耦合業務實施階段,相同的業務過程可能會在不同的實施階段重用,在進行流程梳理過程中,不同的實施階段所使用的流程描述語言或遵循的標 準會有所不同(服務廠商不同),有的使用WfMC的XPDL,還有些使用BPML、BPEL、WSCI等,這就造成流程管理、業務集成上存在很大的一致 性、局限性,提高了企業應用集成的成本。

BPMN2.0規范的引入

遵循BPMN2.0新規范的工作流產品能很大程度上解決此類問題。BPMN2.0相對于舊的1.0規范以及XPDL、BPML及BPEL等最大的區 別是定義了規范的執行語義和格式,利用標準的圖元去描述真實的業務發生過程,保證相同的流程在不同的流程引擎得到的執行結果一致。BPMN2.0對流程執 行語義定義了三類基本要素,它們是日常業務流程的“三板斧”:
? Activities(活動)——在工作流中所有具備生命周期狀態的都可以稱之為“活動”,如原子級的任務(Task)、流向(Sequence Flow),以及子流程(Sub-Process)等
? Gateways(網關)——顧名思義,所謂“網關”就是用來決定流程流轉指向的,可能會被用作條件分支或聚合,也可以被用作并行執行或基于事件的排它性條件判斷
? Events(事件)——在BPMN2.0執行語義中也是一個非常重要的概念,像啟動、結束、邊界條件以及每個活動的創建、開始、流轉等都是流程事件,利用事件機制,可以通過事件控制器為系統增加輔助功能,如其它業務系統集成、活動預警等
這三類執行語義的定義涵蓋了業務流程常用的Sequence Flow(流程轉向)、Task(任務)、Sub-Process(子流程)、Parallel Gateway(并行執行網關)、ExclusiveGateway(排它型網關)、InclusiveGateway(包容型網關)等常用圖元,如圖 1:

image

圖1:BPMN2.0三類基本執行語義要素
現實業務所有的業務環節都離不開Activities、Gateways和Events,無論是簡單的條件審批還是復雜的父子流程循環處理,在一個 流程定義描述中,所有的業務環節都離不開Task、Sequence Flow、Exclusive Gateway、Inclusive Gateway(如圖1中右側綠色標記所示元素),其中Task是一個極具威力的元素,它能描述業務過程中所有能發生工時的行為,它包括User Task、Manual Task、Service Task、Script Task等,可以被用來描述人機交互任務、線下操作任務、服務調用、腳本計算任務等常規功能。
User Task:生成人機交互任務,主要被用來描述需要人為在軟件系統中進行諸如任務明細查閱、填寫審批意見等業務行為的操作,流程引擎流轉到此類節點時,系統會自動生成被動觸發任務,須人工響應后才能繼續向下流轉。常用于審批任務的定義。
Manual Task:線下人為操作任務,常用于為了滿足流程圖對實際業務定義的完整性而進行的與流程驅動無關的線下任務,即此類任務不參與實際工作流流轉。常用于諸如物流系統中的裝貨、運輸等任務的描述。
Service Task:服務任務,通常工作流流轉過程中會涉及到與自身系統服務API調用或與外部服務相互調用的情況,此類任務往往由一個具有特定業務服務功能的Java類承擔,與User Task不同,流程引擎流經此節點會自動調用Java類中定義的方法,方法執行完畢自動向下一流程節點流轉。另外,此類任務還可充當“條件路由”的功能對流程流轉可選分支進行自動判斷。常用于業務邏輯API的調用。
Script Task:腳本任務,在流程流轉期間以“腳本”的聲明或語法參與流程變量的計算,目前支持的腳本類型有三種:juel(即JSP EL)、groovy和JavaScript。在Activiti5.9中新增了Shell Task,可以處理系統外部定義的Shell腳本文件,也與Script Task有類似的功能。常用于流程變量的處理。
BPMN2.0流程示例
BPMN2.0為所有業務元素定義了標準的符號,不同的符號代表不同的含義,以OA應用中請假流程為例,使用標準的BPMN2.0圖元定義示意如圖2:

image

圖2:BPMN2.0請假流程定義
在上述的流程示意圖中,所涉及到的執行語義圖元主要有表1中的8類:

image

表1:請假流程所用圖元

除了上述Start Event、User Task、Exclusive Gateway、Parallel Gateway、Service Task、End Event標準的BPMN2.0圖元外,上述流程圖還使用了Lane Set(業務部門、人力資源部、考勤系統),分別表示流程活動所涉及到的部門或角色,Lane的概念和jBPM4中“泳道”的概念一樣,都用來表示同一類相似任務的歸屬者。

應用BPMN2.0標準的一個最顯著的特色是,不同階段的人員,無論是需求分析、概要設計、詳細設計或是具體的業務實現,都可在一個流程圖上開展工作,避免業務理解存在偏差。一個系統的實現,需求分析人員可以利用BPMN2.0標準圖元草繪一下搜集到的需求;然后可以拿給設計人員,討論出具體的業務需求進行功能設計,由設計人員在草圖的基礎上逐步細化,并得到需求人員的認同;設計人員又將細化后的流程圖交給開發人員,羅列要實現的功能點,指出流程圖上各活動節點所具備的行為,設計人員與開發人員依據此圖達成共識,進入具體的開發階段;如果后期請假流程發生更改,仍然是在現有流程圖上更改,隨著項目的推進,流程圖也在不斷的演進,但至始至終,項目受眾都使用同一個流程圖交流,保障需求理解的一致性,一定程度上推動了項目的敏捷性。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容

  • 理論 BPM不是一個IT術語,更不是因技術的發展而起源的,相反,BPM自始至終都是管理學的術語和概念。它關注的一直...
    技術修行者閱讀 4,675評論 2 18
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,660評論 25 708
  • 時間過的真快呀!我都是一年級的學生?了、今天是三八節我送給媽媽什么禮物好呢?老師?讓我們用自己的零花錢給媽媽買個禮...
    小歪歪的媽閱讀 213評論 0 1