<b>1.2工作流基礎</b>
<b>1.2.1什麼是bpm</b>
bpm是business process
management的縮寫,中文含義是業務流程管理,是一套達成企業各種業務環節整合的全面管理模式。
bpm是為了實作一定的經營目的而執行的一系列邏輯相關的活動的集合。業務流程的輸出是滿足市場需要的産品或服務。根據功能、管理範圍等的不同,企業流程管理一般分為生産流程層、運作層、計劃層和戰略層四個層次。bmp是根據業務環境的變化,推進人與人之間、人與系統之間,以及系統與系統之間的整合及調整的經營方法與解決方案的it工具。
bpm最早是由工作流和企業應用內建(enterprise
application intergration)逐漸融合而發展起來的,當時是為了滿足無紙化辦公需求(這也是最早的需求之一)。筆者早期參與oa系統開發時曾經見到過“原始的”工作流—沒有工作流引擎,整個流程均使用一系列單獨為不同任務節點設計的頁面串聯起來,完成一個節點後在資料庫标記目前任務的名稱,以此做到“流程驅動”。
随着時間的推移,bpm的定義範圍逐漸擴充,不僅用來滿足無紙化辦公需求,現在bpm是一種企業內建技術,作為對面向服務系統架構soa(service-oriented architecture)、企業應用內建eai
(enterprise application integration)、企業服務總線esb(enterprise
service bus)的補充。
從概念上來說,bpm包含兩個不同方面的意思:管理規範和軟體工程。各大bpm供應商長期以來試圖抽象這兩個不同的方面,但是依然混亂。
作為管理規範,bpm是每一個戰略管理者的責任。bpm是組織必須執行的核心業務流程,包含了企業價值和如何提供其實作。作為日常工作的一部分,業務系統可以借助模型和流程規範地定義業務流程。bpm流程圖表達的是執行流程的步驟,已完成特定目标。特别說明的是這些模型用于人與人的溝通。這些都是诠釋未決的,這意味着它們可以包含更進階别有價值的資訊而不包括不必要的細節。這種诠釋未決的過程模型也被稱為抽象業務流程(abstract business processes.)。
bpm作為軟體工程時可以由bpm系統(bpms)執行可執行的業務流程。可執行的業務流程是在一個流程基礎上表示不同的流程順序。流程圖完全可以看做一個抽象的業務流程。可執行流程不同于抽象業務流程,因為它總是以最簡單的方式運作。這部分内容也是被大多數廠商認同并接受的。
<b>1.2.2工作流生命周期</b>
一個完整的工作流生命周期會經過5步,并且疊代循環,如圖1-1所示。
定義:工作流生命周期總是從流程定義開始。此階段的任務主要是收集業務需求并轉化為流程定義。一般由業務需求人員進行,然後交由開發人員加工轉化為計算機可以識别的流程定義。
釋出:由開發人員打包各種資源,然後在系統管理(平台)中釋出流程定義。在具體的流程引擎中包括流程定義檔案(bpmn20.xml結尾)、自定義表單、任務監聽類。
執行:具體的流程引擎(例如,activiti)按照事先定義的流程處理路線以任務驅動的方式執行業務流程。
監控:此階段是依賴執行階段。業務人員在辦理任務的同時收集每個任務(task)的結果,然後根據結果做出相應處理,例如,在采購辦公用品流程中,在通過上司審批之後,采購人員就要根據申請單外出采購。
優化:在此階段,一個完整的流程已經結束,或許能滿足業務需求,或許需要優化,而糟糕的情況是需要重新設計(流程沒結束就異常終止),優化與設計正是此階段需要處理的。根據整個流程的運作過程結果分析問題的根源,然後在此基礎上進一步改進,并再次開始一個新的周期。
<b>1.2.3什麼是bpmn</b>
business process modeling notation,簡稱bpmn,中文譯為業務流程模組化标注,是由bpmn标準組織釋出的,其第一版bpmn 1.0規範于2004年5月釋出。經過多年的改進新的規範bpmn 2.0于2011年釋出。之後各大廠商、開源社群均基于2.0規範設計自己的流程引擎,結束了各個廠商“各自為政”的局面,相應地統一了标準,進而利于以後的産品遷移。
bpmn定義了業務流程圖,其基于流程圖技術,同時對建立業務流程操作的圖形化模型進行了裁減。業務流程的模型就是圖形化對象的網圖,包括活動(也可以說工作)和定義操作順序的流控制。
在bpmn 1.x版本中的一些概念,如人工任務、可以執行腳本、自動決策等,都是獨立于供應商的可視化标準化的方式。在bpmn 2.0規範中重點聚焦在如何執行語義和一個被業界認可的通用交換格式。這意味着基于bpmn 2.0的流程模組化不僅在流程設計器上可以通用,還可以在任何符合bpmn 2.0規範的流程引擎上執行。
關于bpmn的細節内容有很多,官方文檔足足有500多頁,本書會在第4章介紹activiti支援的bpmn 2.0規範以及activiti在bpmn 2.0規範基礎上的擴充。關于bpmn的其他内容本書就不一一列舉了,有興趣的讀者可以仔細閱讀官方文檔。