1. 工作流概念
工作流(Workflow):就是“業務過程的部分或整體在計算機應用環境下的自動化”,它主要解決的是“使在多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現”。
工作流管理系統(Workflow Management System, WfMS):是一個軟件系統,它完成工作量的定義和管理,並按照在系統中預先定義好的工作流規則進行工作流實例的執行。工作流管理系統不是企業的業務系統,而是為企業的業務系統的運行提供了一個軟件的支撐環境。
工作流管理聯盟(WfMC,Workflow Management Coalition)給出的關於工作流管理系統的定義是:工作流管理系統是一個軟件系統,它通過執行經過計算的流程定義去支持一批專門設定的業務流程。工作流管理系統被用來定義、管理、和執行工作流程。
工作流管理系統的目標:管理工作的流程以確保工作在正確的時間被期望的人員所執行——在自動化進行的業務過程中插入人工的執行和干預。
2. Activiti簡介
Activiti工作流框架,是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。Activiti基於Apache許可的開源BPM平台,創始人Tom Baeyens是JBoss jBPM的項目架構師,它特色是提供了eclipse插件,開發人員可以通過插件直接繪畫出業務流程圖。
2.1 工作流引擎
ProcessEngine對象,這是Activiti工作的核心。負責生成流程運行時的各種實例及數據、監控和管理流程的運行。
2.2 BPMN
業務流程建模與標注(Business Process Model and Notation,BPMN) ,描述流程的基本符號,包括這些圖元如何組合成一個業務流程圖(Business Process Diagram)。
3. eclipse的activiti插件安裝
推薦在線安裝:
help——》Install New Software...——》
Name: Activiti BPMN 2.0 designer
4. BPMN圖元介紹
安裝好插件之后,新建項目的時候可以直接新建Activiti 項目
新建完成之后,項目初始化如下

項目中要設計的BPMN流程圖通常就是在diagrams文件夾下創建,新建生成bpmn后綴文件,我們可以通過右邊的畫板直接進行流程圖的繪制。

BPMN基本元素包括了這些元素,如下圖所示:
- 泳道(Swimlanes):池和道;
- 流對象(Flow Objects):包括事件、活動、網關,是BPMN的核心元素;
- 兩種事件:普通開始事件(NoneStart Event)和普通結束事件(None End Event);
- 一種活動:任務(Task),其中包括了子流程任務(Sub-ProcessTask);
- 兩種網關:排他網關(Exclusive)和並發網關(Parallel);
- 三種連接對象(Connecting Objects):序列流(Sequence Flow)、消息流(Message Flow)和關聯(Association);
- 人工信息(Artifacts):包括數據對象、組、注釋(Annotation)。

4.1 泳道(Swimlanes)
使用泳道來區分不同部門或者不同參與者的功能和職責。泳道包含兩種類別:池和道。使用池來表示流程的參與者,應用在公開流程和協作模型里。池與池之間的交互只能使用消息流表示。

我們使用道對池內的活動進行分組,我們可以根據活動所屬的部門或辦理所需的職責(角色)來對活動進行分組。

如果流程是私有流程並且活動沒有分組的需要,那么通常我們會省略池。

4.2 流對象(Flow Objects)
流對象是定義業務流程的主要圖形元素。它進一步細分為三個大的類別,分別是事件、活動和網關。具體到事件、活動和網關里,流對象有很多的類別,BPMN元素的復雜性體現在流對象的眾多類別上。
- 事件:發生在流程執行過程中的事情。
- 活動:在流程執行過程中執行的工作。
- 網關:控制流程的分支和聚合。

4.3 連接對象(Connecting Objects)
連接對象用來把各個流對象或流對象與其他信息連接起來,它分為三種類別:順序流、消息流、關聯。
- 順序流:表示流對象的前后執行順序。
- 消息流:表示公開流程或協作模型里參與者之間的消息、交互。
- 關聯:為流程中的元素關聯信息或數據。

4.4 人工信息(Artifacts)
包括數據對象、組、注釋(Annotation)。圖片來源
