工作流引擎:jbpm和activiti
目前流行的工作流引擎有Activiti和jBPM5,而在jBPM5釋出以前大多數專案、平臺都是基於jBPM3、jBPM4開發的。
jbpm
JBPM,全稱是Java Business Process Management(業務流程管理),它是覆蓋了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴充套件的可執行流程語言框架。jBPM是公開原始碼專案,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)協議。
Activiti5與jBPM5技術組成對比:
Activiti jBPM5
1資料庫持久層ORM
MyBatis3 Hibernate3
2持久化標準
無
JPA規範
3事務管理
MyBatis機制/Spring事務控制
Bitronix,基於JTA事務管理
4資料庫連線方式
Jdbc/DataSource
Jdbc/DataSource
5支援資料庫
Oracle、SQL Server、MySQL等多數資料庫
Oracle、SQL Server、MySQL等多數資料庫
6設計模式
Command模式、觀察者模式等
7內部服務通訊
Service間通過API呼叫
基於Apache Mina非同步通訊
8整合介面
SOAP、Mule、RESTful
訊息通訊
9支援的流程格式
BPMN2、xPDL、jPDL等
目前僅只支援BPMN2 xml
10引擎核心
PVM(流程虛擬機器)
Drools
11技術前身
jBPM3、jBPM4
Drools Flow
12所屬公司
Alfresco
jBoss.org
Activiti概念
1、什麼是Activiti
activiti是一個工作流引擎,即進行工作流開發的核心元件,也可以理解為是一個工作流框架。Activiti是基於jBPM4設計的衍生版本。
進行工作流的開發,使用activiti框架開發就變的便捷,高效。
activiti可以對基於流程式控制的業務進行抽取,在不區分業務功能的前提下,對業務進行組合。無論是何種業務,都可以使用activiti進行開發。
2、工作流基本概念及實現原理
(1)基本概念
流程定義
描述流程,可以看成是類
流程例項
實際流程執行,可以看成是物件
(2)通過資料庫表理解流程定義和流程例項
3、Activiti的23張表
Activiti的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。 用途也和服務的API對應。
ACT_GE_*: GE表示general。通用資料, 用於不同場景下。
ACT_HI_*: ‘HI’表示history。 這些表包含歷史資料,比如歷史流程例項, 變數,任務等等。
ACT_ID_*: ‘ID’表示identity。 這些表包含身份資訊,比如使用者,組等等。
ACT_RE_*: ‘RE’表示repository。 這個字首的表包含了流程定義和流程靜態資源 (圖片,規則,等)。
ACT_RU_*: ‘RU’表示runtime。 這些執行時的表,包含流程例項,任務,變數,非同步任務,等執行中的資料。 Activiti只在流程例項執行過程中儲存這些資料, 在流程結束時就會刪除這些記錄。 這樣執行時表可以一直很小速度很快。
建立這些表有兩種方式:
(1)手工:執行資源包中的指令碼即可(不推薦)
路徑:資源包\activiti-5.14\database\create查詢對應的資料庫指令碼執行即可
(2)自動:執行activiti環境自動監測是否存在activiti資料庫環境,並完成對應資料庫表的初始化(推薦)
Activiti基本開發步驟
1、部署activiti
(1)建立java工程,新增activiti和spring 的jar包
(2)建立原始碼資料夾resource 新增配置檔案( 專案必備 )
false(預設):檢查資料庫表的版本和依賴庫的版本, 如果版本不匹配就丟擲異常
true: 構建流程引擎時,執行檢查,如果需要就執行更新. 如果表不存在,就建立
create-drop: 構建流程引擎時建立資料庫表, 關閉流程引擎時刪除這些表
drop-create:先刪除表再建立表
create: 構建流程引擎時建立資料庫表, 關閉流程引擎時不刪除這些表
(3)建立資料庫(自動建立)
2、建立activiti流程圖
(1)流程圖的標準BPMN
BPMI(Building Products Manufacturing International)組織
BPMN(Business Process Modeling Notation)業務流程模型與符號,由BPMI制定的一套標準化業務流程建模符號
現行標準:BPMN2.0
BPMN是一組開發流程的符號與連線線,通過符號連線的形式快速描述出流程,快速描述流程定義
描述的流程符號僅僅是一張圖,通過外掛完成將圖快速轉換為流程定義的表資料
Eclipse提供有對應的外掛,輔助程式設計人員快速構建模型
(2)外掛安裝
安裝activiti-designer外掛
由於建立流程資料的步驟過於繁瑣,activiti官方提供的activiti-designer外掛畫流程圖,用於定義業務流程
注意:該外掛具有相容性問題
安裝外掛後記得在首選項–activiti —save 的勾選中,用來自動產生流程圖的圖片
(3)畫流程圖
在任意原始碼包中定義流程圖
3、流程定義部署
圖我們畫好了,下面需要流程定義的部署,也就是把我們畫的圖轉化為資料儲存在資料庫中。
4、啟動業務流程
業務流程定義部署完畢後,相當於在Activiti引擎中搭建了一套全新的業務流程,但是該業務流程並沒有被執行,必須啟動後方可使用
業務流程可以被啟動多次,每次啟動對應將對應一個獨立的業務流程執行開啟
5、查詢流程任務
啟動後流程例項後,我們可以查詢目前都有哪些任務,我們可以按照以下程式碼查詢任務列表
6、完成流程任務
對應階段的任務完成後,任務將轉向下一個流程節點
相關文章
- 初識工作流 BPMN Activiti以及JBPM
- activiti工作流引擎元件元件
- 有人研究開源工作流引擎JBPM麼?
- Spring Boot 整合 Activiti 工作流引擎 極簡教程Spring Boot
- java Activiti 工作流引擎 SSM 框架模組設計方案JavaSSM框架
- 工作流引擎詳解!工作流開源框架ACtiviti的詳細配置以及安裝和使用框架
- 十分鐘認識Activiti6.0工作流引擎
- 專案實踐之工作流引擎基本文件!Activiti工作流框架中流程引擎API和服務詳解框架API
- 工作流引擎Activiti使用進階!詳細解析工作流框架中高階功能的使用示例框架
- 工作流引擎Activiti中獲取下一分支節點
- Activiti工作流-簡介篇
- Activiti工作流-筆記2筆記
- Java Activiti 工作流引擎 springmvc SSM 流程審批 後臺框架原始碼JavaSpringMVCSSM框架原始碼
- Activiti工作流-實戰篇(用Activiti框架快速開發我們的工作流)框架
- 求助,JBPM或者其他的開源工作流
- Activiti工作流學習筆記(四)——工作流引擎中責任鏈模式的建立與應用原理筆記模式
- 【Activiti工作流】9.連線
- Activiti6.0 spring5 工作流引擎 java SSM流程審批 專案框架SpringJavaSSM框架
- 工作流引擎Activiti與SpringBoot2整合--開源軟體誕生17Spring Boot
- java Activiti6.0 後臺 框架 spring5 SSM 工作流引擎 審批流程Java框架SpringSSM
- Activiti6.0 java專案框架 spring5 SSM 工作流引擎 審批流程Java框架SpringSSM
- Activiti Exploer工作流控制檯使用指南!使用Activiti Explorer定義部署執行工作流
- 現在工作流都用什麼? activiti 和 flowable 哪個好
- 詳解工作流框架Activiti的服務架構和元件框架架構元件
- 五分鐘瞭解Activiti工作流
- Activiti配置工作流結束過程
- springboot 整合 activiti 流程引擎Spring Boot
- Activiti工作流基礎學習筆記筆記
- Activiti工作流與BPMN2.0規範
- jBPM4工作流開發實戰 之 第四部分 jBPM4和Web專案的結合[】Web
- java工作流引擎 Activiti6.0 websocket 即時聊天發圖片文字 好友群組 SSM原始碼JavaWebSSM原始碼
- java Activiti6 工作流引擎 websocket 即時聊天 SSM原始碼 支援手機即時通訊聊天JavaWebSSM原始碼
- 將Bonita工作流引擎和eXo Portal相結合
- 工作流Activiti在資料庫中生成的表資料庫
- Activiti - 新一代的開源 BPM 引擎
- Activiti 8.0.0 釋出,業務流程管理與工作流系統
- Activiti Core和Activiti Cloud Beta1釋出!Cloud
- 工作流引擎Oozie(二):coordinator