天天看點

流程引擎activiti5、activiti6、activiti7對比分析

作者:數字說

Activiti5、Activiti6、Activiti7對比分析,哪個版本好

Activiti是前些年項目最常用的開源流程引擎,Activiti的源頭是由JBPM4流程引擎發展而來,activiti5以及ativiti6的核心開發團隊是Tijs Rademakers團隊,activiti6最終版本由Salaboy團隊釋出的,因為Tijs Rademakers團隊後來去開發flowable流程引擎了,是以說activiti5和ativiti6的核心是一樣的,是一個團隊開發出來的,但ativiti6的命很短,從官方的git版本就能看出來。

Activiti5、Activiti6、Activiti7有何差異,項目中需要流程引擎,選擇哪個版本比較合适,本文給出一些參考。

官方文檔:

一、Activiti5版本

Activiti5.x的最後一個版本5.23.0, 從2019年8月起,git倉庫的代碼就沒有更新過,官方已不再維護。

流程引擎activiti5、activiti6、activiti7對比分析

源碼位址:https://github.com/Activiti/Activiti/tree/5.x

二、Activiti6版本

Activiti6.x, 從2020年5月起,git倉庫的代碼就沒有更新過,官方已不再維護。Activiti6官方隻釋出過一個6.0.0版本,由于核心團隊變動,經曆的時間很多,沒有持續發展。

流程引擎activiti5、activiti6、activiti7對比分析

三、Activiti7版本

Activiti7實際上官方現在叫Activiti Cloud。Activiti7跟Activiti5和Activiti6的定位和架構完全不一樣,是按照标準雲原生架構設計的,包括多個Cloud Native元件,可在分布式環境中工作。基于Kubernetes作為我們的主要部署基礎設施,使用Spring Cloud/Spring Boot和Docker來對這些元件進行容器化。

Activiti7包括5個基礎建構塊:

l Activiti Cloud Runtime Bundle

l Activiti Cloud Query

l Activiti Cloud Audit

l Activiti Cloud Connectors

l Activiti Cloud Notifications Service (GraphQL)

流程引擎activiti5、activiti6、activiti7對比分析

Activiti7跟Activiti5和Activiti6比較,有兩個方面顯著的特點,一是雲原生架構,依賴了多個k8s的雲原生元件;二是對bpmn2的元素沒有全部支撐。

1、Activiti7是标準雲原生架構,內建多個雲原生工具

标準雲原生架構,滿足雲原生12要素。要建構雲原生應用程式和服務,僅僅将舊的龐然大物打包在Docker Image中并在Kubernetes中運作是不夠的,完全參考Heroku定義的雲原生十二要素原則(https://content.pivotal.io/ebooks/beyond-the-12-factor-app)。如果沒有這些指導原則,就很難在分布式環境中進行擴充。Activiti Cloud重新定位流程引擎,以便更好地與此類分布式環境中的其他元件互動。Activiti Cloud成功的衡量标準是與其他微服務的低阻抗不比對,以及它們的設計、建構和部署方式。

Activiti7內建的雲原生工具:

l Jenkins X: Kubernetes的CI/CD做得很好

l JHipster: Spring Cloud和Angular/React生成器

l HELM: Kubernetes Package Manager,我們用它在K8s中部署Activiti Cloud應用程式。

l Spring Cloud Kubernetes:我們使用它來避免與基礎設施的重複/重疊

l Istio:基于K8s的服務網格

l KNative:作為K8s之上的服務層

官方文檔:

2、Activiti7為滿足分布式和可擴充性,支撐的bpmn元素較少

BPMN規範描述了業務流程定義中允許的大量構造(BPMN元素)。雖然在Activiti 5.x和6.x中支援這一點都是由流程引擎完成的,但在Activiti Cloud(Activiti Core 7.x)中,由于我們現在正在處理分布式和高度可擴充的基礎架構,是以支援的元素較少。計時器、信号和消息等元素現在需要與基礎設施和其他服務進行互動才能正常工作。出于這個原因,Actiti Cloud的第一個版本選擇了這些元素的子集來建構一個堅實的基礎,可以保證分布式環境中一組元件之間的執行按預期進行,可以在出現問題時進行監控和跟蹤。

7.1.x Release Train中支援的BPMN元素清單如下:

l 開始/結束事件

l SequenceFlows(有條件,預設)

l 服務任務

l 使用者任務(受讓人、候選使用者、候選組)

l 網關:并行、獨占、包容

l 呼叫活動

l 信号中間接球事件、信号中間投擲事件、信号邊界事件

l 嵌入式子程序

官方文檔:

四、總結:Activiti哪個版本好

1、activiti5和ativiti6官方已不再發展和維護,代碼已經4年沒有更新,不建議選擇。

2、Activiti7即Activiti Cloud,定位雲産品,完全面向雲原生架構設計開發,依賴k8s等多個CNCF雲元件,開發、內建、部署和運維均比較複雜,對團隊技術人員能力要求高,一般中小型項目,要謹慎選擇Activiti7,可以考慮更輕量化的開源流程引擎camunda7。

繼續閱讀