1. 程式人生 > >Activiti6.0流程引擎學習——(1)Activiti的簡單介紹

Activiti6.0流程引擎學習——(1)Activiti的簡單介紹

本文開始學習Activiti流程引擎,寫下後面的文章希望可以幫到剛接觸的童鞋。

首先還是要多廢話幾句,講解一下流程引擎是什麼?

工作流引擎最常見用於審批流程中,現在一線網際網路公司也開始使用,並有快速推廣的趨勢,複雜繁多的業務流程如果採用if else實現那將是崩潰的,程式碼不可維護,業務流程在程式碼中可讀性很差,所以高人設計了業務流程模型圖示BPMN2.0,我們要做到就是把業務場景抽象為標準流程圖,把流程圖丟到流程引擎中按流程定義約定逐步流轉,很顯然擴充套件性和業務可描述性會好很多,所以工作流引擎主要用於解決複雜的業務,目前經常被提起的中臺系統抽象業務為服務,也涉及大量智慧的業務流程引擎做支撐。這裡有一個示例圖如下:

如上就是一個流程圖,流程引擎可以一步步按照設計好的流程圖進行,實現流程管理。

資料庫:

Activiti的後臺是有資料庫的支援,所有的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。用途也和服務的API對應。

ACT_RE_*: 'RE'表示repository。 這個字首的表包含了流程定義和流程靜態資源(圖片,規則,等等)。

ACT_RU_*: 'RU'表示runtime。 這些執行時的表,包含流程例項,任務,變數,非同步任務,等執行中的資料。 Activiti只在流程例項執行過程中儲存這些資料,在流程結束時就會刪除這些記錄。 這樣執行時表可以一直很小速度很快。

ACT_ID_*: 'ID'表示identity。 這些表包含身份資訊,比如使用者,組等等。

ACT_HI_*: 'HI'表示history。 這些表包含歷史資料,比如歷史流程例項,變數,任務等等。

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             使用者資訊表

這四張表很常見,基本的組織機構管理,關於使用者認證方面建議還是自己開發一套,元件自帶的功能太簡單,使用中有很多需求難以滿足

通用資料表

act_ge_bytearray          二進位制資料表

act_ge_property            屬性資料表儲存整個流程引擎級別的資料,初始化表結構時,會預設插入三條記錄

activiti5 軟體環境

1)   JDK1.6或者更高版本

2)   支援的資料庫有:h2, mysql, oracle, postgres, mssql, db2等。

3)   支援activiti5執行的jar包

4)   開發環境為Eclipse3.7或者以上版本,myeclipse為8.6版本