我的以爲直接理解工做流引擎概念有點難度,咱們能夠先經過了解工做流引擎的職責再反過來理解工做流引擎,工做流引擎通常都作兩件事情:java
1.定義流程,也就是給咱們提供某種規範來定義規則,以及如何定義一個流程的這種規範,同事咱們能夠根據工做流引擎提供的相關概念來定義更爲複雜的流程,這就是工做流引擎作的第一件事叫作定義流程。mysql
2.執行流程,也就是工做流引擎須要解釋這個規則,還要負責流程,它至關於流程的調度者,監控每一個流程的執行狀況,並將流程操做發往下一步,或者根據條件休眠或終止流程的這麼一個過程就叫作執行流程。sql
瞭解完工做流引擎的這兩個職責,我相信對於什麼是工做流引擎必定已經有了必定的認識了,咱們在用一句稍微有點官方的話來總結一下工做流引擎,工做流引擎爲咱們提供相關規則概念的定義,給咱們提供了相關的API來調用這個引擎去執行流程。流程的操做實際上就是工做流引擎提供相關的api咱們去調用它。api
上面咱們說起了常見了幾個工做流框架,其中如今的Activiti和JBPM5.0以前的版本都是基於ProcessEngine 工做流引擎的工做流框架;JBPM5.0開始是基於DroolsFlow爲工做流引擎的工做流框架;其中OSWorkflow是以工做流引擎命名的工做流框架,因此OSWorkflow是基於OSWorkflow工做流引擎的工做流框架;ActiveBPEL是基於工做流BPEL引擎的工做流框架…….架構
到這裏關於工做流的相關概念就介紹完了,接下來咱們先了解一下咱們的主角activiti的前世此生。框架
Activiti 的創始人是 Tom Baeyens 說到Tom Baeyens 就不能不提他與jbpm的淵源。TomBaeyens 是 jBPM 的創始人,在 2002年,Tom Baeyens建立了基於狀態機原理的jBPM流程引擎。jBPM通過了JBoss和Redhat公司以後,發展到了 jBPM 4。因爲jBPM使用的是 GPL開源協議,而且與JBoss和Redhat公司的其餘產品線結合的愈來愈緊密,對jBPM在更普遍的範圍使用造成了阻礙。JBoss內部對jBPM將來版本的架構實現產生了嚴重的意見分歧,在2005年 Tom Baeyens離開了JBoss公司加入了Alfresco 公司,建立了使用Apache based-license V2的、獨立於Alfresco產品的開源流程產品Activiti 。Activiti在2010年3月份開始啓動,到了2010年12月份正式發佈第一個版本,新的基於jBPM4的開源工做流系統Activiti 5.0 !因此說Activiti5是在jBPM 三、jBPM 4的基礎上發展而來的,是原jBPM 的延續。ide
整個Activiti的生命週期通過了以下的幾個步驟:1.流程部署 , 2.啓動流程實例 , 3.執行流程對象(一個流程實例包含多執行對象) , 4.完成整個流程網站
以下就是具體代碼:this
1:部署流程---bpmn方式
2:部署流程---zip方式
3:啓動流程實例
4:查看流程
5:查看當前人的我的任務
6:查詢流程定義
7:刪除流程定義
8:完成個人任務
9:查詢流程狀態 (判斷流程是正在執行仍是結束了)
10:查詢歷史任務
11:設置流程變量
12:獲取流程變量