一文讓你讀懂什麼是Activiti工作流

Activiti工作流學習經驗總結(一)
什麼是工作流?
工作流指通過計算機對業務流程進行自動化管理,實現多個參與者按照預定義的流程去自動執行業務流程。
什麼是Activiti?
Activiti 是一個開源架構的工作流引擎,基於bpmn2.0 標準進行流程定義。其前身是JBPM,Activiti 通過嵌入到業務系統開發中進行使用。
1、工作流生命週期一個完整的工作流生命週期會經過以下 5 個階段,並迭代循環:

在這裏插入圖片描述

2、如下圖具體各階段解釋說明:
在這裏插入圖片描述

3、什麼是BPMNBPMN 是 Business Process Modeling Notation 的簡稱,即業務流程建模與標註。BPMN 定義了一個業務流程圖,這個流程圖被設計用於創建業務流程操作的圖形化模型 。 而一個業務流程模型( Business Process Model ),指一個由圖形對象( graphical objects )組成的網狀圖,圖形對象包括活動(activities) 和用於定義這些活動執行順序的流程控制器( flow controls ) 。
在這裏插入圖片描述
4、Activiti 具備的主要特性
集成MyBatis框架
Activiti 的設計思想是簡潔 、 快速 。 所以它選擇了MyBatis 作爲數據持久層框架,從而可以通過最優的 SQL 語句執行 Command ,僅憑如此就能讓引擎在速度上保持最高的性能 。
Activiti的服務接口
Activiti 提供了 7 個服務接口,都通過 ProcessEngine 來獲取,並且支持鏈式編程風格:
在這裏插入圖片描述

流程設計器
與 jBPM 類似,Activiti 也提供了基於 Eclipse 的流程設計器 —— Eclipse Designer。 此外還有 Signavio 公司爲 Activiti 定製的基於 Web 的 流程設計器 —— Activiti Modeler。
原生支持 Spring
Activiti 可以很容易與 Spring 集成,這對於管理事務和解析表達式來說,非常方便。
分離運行時數據與歷史數據
這一特性與 jBPM4 的設計理念一脈相承。這樣的設計架構使得引擎可以快速地讀取運行時數據,只有在需要時纔會從歷史表中查詢歷史數據。 這樣可以極大地提高數據的存取效率。
5、Activiti的架構大致如下圖:
在這裏插入圖片描述
在這裏插入圖片描述