工作流引擎
個人覺得直接理解工作流引擎概念有點難度,我們可以先通過了解工作流引擎的職責再反過來理解工作流引擎,工作流引擎一般都做兩件事情:
1.定義流程,也就是給我們提供某種規范來定義規則,以及如何定義一個流程的這種規范,同事我們可以根據工作流引擎提供的相關概念來定義更為復雜的流程,這就是工作流引擎做的第一件事叫做定義流程。
2.執行流程,也就是工作流引擎需要解釋這個規則,還要負責流程,它相當於流程的調度者,監控每個流程的執行情況,並將流程操作發往下一步,或者根據條件休眠或終止流程的這么一個過程就叫做執行流程。
了解完工作流引擎的這兩個職責,我相信對於什么是工作流引擎一定已經有了一定的認識了,我們在用一句稍微有點官方的話來總結一下工作流引擎,工作流引擎為我們提供相關規則概念的定義,給我們提供了相關的API來調用這個引擎去執行流程。流程的操作實際上就是工作流引擎提供相關的api我們去調用它。
工作流框架與工作流引擎
上面我們提及了常見了幾個工作流框架,其中現在的Activiti和JBPM5.0之前的版本都是基於ProcessEngine 工作流引擎的工作流框架;JBPM5.0開始是基於DroolsFlow為工作流引擎的工作流框架;其中OSWorkflow是以工作流引擎命名的工作流框架,所以OSWorkflow是基於OSWorkflow工作流引擎的工作流框架;ActiveBPEL是基於工作流BPEL引擎的工作流框架…….
到這里關於工作流的相關概念就介紹完了,接下來我們先了解一下我們的主角activiti的前世今生。
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 3、jBPM 4的基礎上發展而來的,是原jBPM 的延續。
整個Activiti的生命周期經過了如下的幾個步驟:1.流程部署 , 2.啟動流程實例 , 3.執行流程對象(一個流程實例包含多執行對象) , 4.完成整個流程
如下就是具體代碼:
1:部署流程---bpmn方式
2:部署流程---zip方式
3:啟動流程實例
4:查看流程
5:查看當前人的個人任務
6:查詢流程定義
7:刪除流程定義
8:完成我的任務
9:查詢流程狀態 (判斷流程是正在執行還是結束了)
10:查詢歷史任務
11:設置流程變量
12:獲取流程變量
