天天看點

(九)工作流引擎:activiti1 工作流生命周期2 BPMN3 Activiti 特性4 Activiti 架構

Activiti 是一個針對企業使用者、開發人員 、系統管理者的輕量級工作流業務管理平台,其核心是使用 java 開發的快速 、 穩定的 BPMN2.0 流程引擎 。它可以與 spring 完美內建。

創始人 Tom Baeyens 曾經是 JBoss jBPM 的項目架構師,是以之前接觸過 jBPM4 的同學,會覺得 Activiti5 很親切O(∩_∩)O哈哈~

文章目錄

  • 1 工作流生命周期
  • 2 BPMN
  • 3 Activiti 特性
    • 3.1 MyBatis
    • 3.2 服務接口
    • 3.3 流程設計器
    • 3.4 原生支援 Spring
    • 3.5 分離運作時資料與曆史資料
  • 4 Activiti 架構

1 工作流生命周期

一個完整的工作流生命周期會經過以下 5 個階段,并疊代循環:

(九)工作流引擎:activiti1 工作流生命周期2 BPMN3 Activiti 特性4 Activiti 架構
階段 說明
定義 業務需求人員收集業務需求,然後交由開發人員加工轉化為計算機可以識别的流程定義。
釋出 開發人員打包各種資源,然後在系統管理平台中釋出流程定義(包括流程定義檔案 、自定義表單 、 任務監聽類等資源 )。
執行 流程引擎按照事先定義好的流程,以任務驅動的方式予以執行 。
監控 監控依賴執行階段 。 業務人員在辦理任務的同時,引擎會收集每個任務的辦理結果,然後根據結果做出處理。
優化 對整個流程的運作結果進行分析,在此基礎上進一步改進,并再次開始一個新的周期。

2 BPMN

BPMN 是 Business Process Modeling Notation 的簡稱,即業務流程模組化與标注。

BPMN 定義了一個業務流程圖,這個流程圖被設計用于建立業務流程操作的圖形化模型 。 而一個業務流程模型( Business Process Model ),指一個由圖形對象( graphical objects )組成的網狀圖,圖形對象包括活動( activities) 和用于定義這些活動執行順序的流程控制器( flow controls ) 。

3 Activiti 特性

3.1 MyBatis

Activiti 的設計思想是簡潔 、 快速 。 是以它選擇了MyBatis 作為資料持久層架構,進而可以通過最優的 SQL 語句執行 Command ,僅憑如此就能讓引擎在速度上保持最高的性能 。

3.2 服務接口

Activiti 提供了 7 個服務接口,都通過 ProcessEngine 來擷取,并且支援鍊式程式設計風格:

服務接口 說明
RepositoryService 倉庫服務,用于管理倉庫,比如部署或删除流程定義、讀取流程資源等。
IdentifyService 身份服務,管理使用者、組以及它們之間的關系。
RuntimeService 運作時服務,管理所有正在運作的流程執行個體、任務等對象。
TaskService 任務服務,管理任務。
FormService 表單服務,管理和流程、任務相關的表單。
HistroyService 曆史服務,管理曆史資料。
ManagementService 引擎管理服務,比如管理引擎的配置、資料庫和作業等核心對象。

3.3 流程設計器

與 jBPM 類似,Activiti 也提供了基于 Eclipse 的流程設計器 —— Eclipse Designer。 此外還有 Signavio 公司為 Activiti 定制的基于 Web 的 流程設計器 —— Activiti Modeler。

3.4 原生支援 Spring

Activiti 可以很容易與 Spring 內建,這對于管理事務和解析表達式來說,非常友善。

3.5 分離運作時資料與曆史資料

這一特性與 jBPM4 的設計理念一脈相承。這樣的設計架構使得引擎可以快速地讀取運作時資料,隻有在需要時才會從曆史表中查詢曆史資料。 這樣可以極大地提高資料的存取效率。

4 Activiti 架構

(九)工作流引擎:activiti1 工作流生命周期2 BPMN3 Activiti 特性4 Activiti 架構
元件 說明
流程引擎(Activiti Engine) 提供針對 BPMN 2.0 規範的解析;執行 、建立和管理流程執行個體與任務;以及查詢曆史記錄并根據結果生成報表等功能。
業務模型設計器(Activiti Modeler) 由 Signavio 公司設計實作,适用于業務人員把需求轉換為流程定義。
開發模型設計器(Activiti Designer) 開發人員可以導入業務需求人員用業務模型設計器設計的流程定義檔案( XML 格式),這樣就可以進一步加工成為可以運作的流程定義資訊 。
流程管理器(Activiti Explorer) 用于管理倉庫、使用者、組、流程執行個體和任務等流程對象。
流程管理器(Activiti Explorer) 用于管理倉庫、使用者、組、流程執行個體和任務等流程對象。
流程 REST 服務(Activiti REST) 提供 Restful 風格的服務,允許用戶端以 JSON 的資料格式與引擎的 REST API 進行互動。