工做流(Workflow),就是「業務過程的部分或總體在計算機應用環境下的自動化」,它主要解決的是「使在多個參與者之間按照某種預約義的規則傳遞文檔、信息或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現」。html
工做流管理系統(Workflow Management System,WfMS)是一個軟件系統,它完成工做量的定義和管理,並按照在系統中預先定義好的工做流邏輯進行工做流實例的執行。工做流管理系統不是企業的業務系統,而是爲企業的業務系統的運行提供了一個軟件的支撐環境。java
流行的工做流框架有:Activity5.1三、JBPM4.四、OSWorkFlow、WorkFlowmysql
工做流框架底層須要有數據庫提供支持,activiti5.13版本,有23張表。spring
JBPM4.4框架底層有數據庫支持,18張表。sql
JBPM底層使用hibernate操做數據庫。數據庫
Activiti框架底層使用的mybatis操做數據庫。mybatis
Activiti5是由Alfresco軟件在2010年5月17日發佈的業務流程管理(BPM)框架,它是覆蓋了業務流程管理、工做流、服務協做等領域的一個開源的、靈活的、易擴展的可執行流程語言框架。Activiti基於Apache許可的開源BPM平臺,創始人Tom Baeyens是JBoss jBPM的項目架構師,它特點是提供了eclipse插件,開發人員能夠經過插件直接繪畫出業務流程圖。 架構
第一步:得到下載activiti-eclipse插件的安裝包框架
第二步:解壓安裝包,複製解壓文件裏面的activiti到eclipse中的dropins目錄中eclipse
第三步:重啓eclipse,勾選save選項
第四步:若是重啓eclipse沒法顯示activiti圖標,代表所使用的eclipse版本不支持該插件,能夠選擇換myeclipse或其餘版本的eclipse
Activiti框架下載地址:http://activiti.org/
activiti框架提供了和hibernate相似的自動建表功能
搭建開發環境:
第一步:建立一個Java項目activiti1110
第二步:導入jar包(從下載下來的activiti-5.13工做流引擎下面的DEMO導入jar包),還須要導入MySQL驅動包
測試代碼:
配置文件activiti-context.xml以下:
測試代碼:
要求配置文件名稱必須爲activiti-context.xml或者activiti.cfg.xml由於,由於默認的配置ProcessEngines.getDefaultProcessEngine();會初始化這兩個文件的其中一個,默認的配置信息以下:
測試代碼:
Activiti的後臺是有數據庫的支持,全部的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。用途也和服務的API對應。
1) ACT_RE_*: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態資源(圖片,規則,等等)。
2) ACT_RU_*: 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數據。 Activiti只在流程實例執行過程當中保存這些數據,在流程結束時就會刪除這些記錄。 這樣運行時表能夠一直很小速度很快。
3) ACT_ID_*: 'ID'表示identity。 這些表包含身份信息,好比用戶,組等等。
4) ACT_HI_*: 'HI'表示history。 這些表包含歷史數據,好比歷史流程實例,變量,任務等等。
5) ACT_GE_*: 通用數據, 用於不一樣場景下。
1) act_re_deployment 部署信息表
2) act_re_model 流程設計模型部署表
3) act_re_procdef 流程定義數據表
1) act_ru_execution 運行時流程執行實例表
2) act_ru_identitylink 運行時流程人員表,主要存儲任務節點與參與者的相關信息
3) act_ru_task 運行時任務節點表
4) act_ru_variable 運行時流程變量數據表
1) act_hi_actinst 歷史節點表
2) act_hi_attachment 歷史附件表
3) act_hi_comment 歷史意見表
4) act_hi_identitylink 歷史流程人員表
5) act_hi_detail 歷史詳情表,提供歷史變量的查詢
6) act_hi_procinst 歷史流程實例表
7) act_hi_taskinst 歷史任務實例表
8) act_hi_varinst 歷史變量表
1) act_id_group 用戶組信息表
2) act_id_info 用戶擴展信息表
3) act_id_membership 用戶與用戶組對應信息表
4) act_id_user 用戶信息表
這四張表很常見,基本的組織機構管理,關於用戶認證方面建議仍是本身開發一套,組件自帶的功能太簡單,使用中有不少需求難以知足
1) act_ge_bytearray 二進制數據表
2) act_ge_property 屬性數據表存儲整個流程引擎級別的數據,初始化表結構時,會默認插入三條記錄