工作流引擎技術(shù)介紹-Flowable與Activiti7
介紹目前開源工作流現(xiàn)狀 介紹flowable 介紹BPMN2.0 比較flowable和activiti(當(dāng)前) flowable不足及擴展 Flowable技術(shù)細(xì)講

?Flowable前面文章有簡單的介紹,使用Docker進行部署,很快就能體驗Flowable,體驗完后都能對Flowable功能有一定認(rèn)識。網(wǎng)上對比功能點,API的文章還是比較多的。我們這里先看Activiti官網(wǎng)介紹及文檔。
01
Activiti7

參考:
https://www.gitbook.com/book/activiti/activiti-7-developers-guide/details
?
? Activiti目前版本最新為7.1.0-M15,進入官網(wǎng)首頁界面,很清晰的就能看出,Activiti7工作重點在支持云生態(tài)。Activiti重點工作在于適配Docker、kubernates,適配Jenkins等devops工具。Activiti 7專注維護流程核心引擎,其他模板IDM (User / Groups / Memberships)身份驗證、Forms表單、History Service歷史查詢服務(wù)、Job executor任務(wù)執(zhí)行器、Timers定時器、Email/Notification Service 郵件通知服務(wù)等等將被棄用或進行重構(gòu),以支持與大多數(shù)云基礎(chǔ)設(shè)施已經(jīng)提供的第三方組件的集成。

?? 誠然,做這方面是有一定熱點,也有一定必要,但個人覺得迷惑的是,流程部分很多功能都沒完善,不管是設(shè)計器,還是管理端功能,還是引擎核心本身都有很多急需并且必要做的東西,先去做流程云構(gòu)建,顯得有點兩邊半桶水。體驗上不會好。(純個人看法

依賴:
Activiti Cloud:
<dependencyManagement><dependencies><dependency><groupId>org.activiti.cloudgroupId><artifactId>activiti-cloud-dependenciesartifactId><version>7.1.0-M15version><scope>importscope><type>pomtype>dependency>dependencies>dependencyManagement>
Activiti Core
<dependencyManagement><dependencies><dependency><groupId>org.activitigroupId><artifactId>activiti-dependenciesartifactId><version>7.1.0-M15version><scope>importscope><type>pomtype>dependency>dependencies>dependencyManagement>

? activiti7很大精力都用在構(gòu)建云生態(tài),工作重點都放在將服務(wù)部署在云上,減少對Activiti依賴的耦合,需要使用Activiti的系統(tǒng)只需要通過調(diào)用http接口的方式來實現(xiàn)工作流能力的整合,將工作流業(yè)務(wù)托管上云。

?對于不同人員如專家、開發(fā)人員、運維人員、用戶、管理者,劃分出對應(yīng)關(guān)注的微服務(wù)應(yīng)用。
Activiti Cloud提供部分基礎(chǔ)構(gòu)建模塊:
Activiti云基礎(chǔ)設(shè)施
??? Activiti Cloud 基礎(chǔ)服務(wù)將部署網(wǎng)關(guān)、身份管理/單點登錄、分布式日志/跟蹤/監(jiān)控。

Activiti云應(yīng)用
Activiti Cloud Runtime Bundle: 為業(yè)務(wù)提供執(zhí)行運行時支持(如業(yè)務(wù)流程、任務(wù)、決策表、決策樹等)。
Activiti Cloud Connectors: 提供與外部系統(tǒng)的雙向連接
Activiti Cloud Audit Service: 提供從或多個運行時收集信息(事件)的審計跟蹤功能。
Activiti Cloud Query Service: 提供對一個或多個運行時生成的信息的讀訪問。
Activiti Cloud Notification Service:與Query Service一起,Notification Service使用關(guān)于應(yīng)用程序狀態(tài)的訂閱和推送通知來支持核心構(gòu)建模塊。

Activiti云Modeler??? 推薦使用的設(shè)計器
?? Activiti7開發(fā)團隊已經(jīng)完全拋棄了IntelliJ IDEA/Eclipse中的流程插件以及Modeler設(shè)計器。開始使用了bpmn.io提供的bpmn-js設(shè)計器。目前僅支持元素,空結(jié)束事件、空啟動事件,用戶任務(wù)、服務(wù)任務(wù)、調(diào)用活動(callActivity),排他網(wǎng)關(guān)和并行網(wǎng)關(guān)等。

快速體驗:
安裝Docker for Desktop 或 Docker Toolbox
安裝Docker-compose
安裝 GNU Make。通常Linux和Mac系統(tǒng)已經(jīng)安裝了, window系統(tǒng)使用Chocolatey 來安裝.
安裝 Git Bash 終端 . 通常Linux和Mac系統(tǒng)已經(jīng)安裝了. window可以使用 Chocolatey Git Install 來安裝
下載示例代碼:
git?clone?https://github.com/Activiti/activiti-cloud-examples│ Activiti v7 REST API.postman_collection.json # postman api接口文件├─docker # docker方式,好像官網(wǎng)沒有這方面使用說明了│ │ enabled_plugins│ │ frontend-docker-compose.yml # 前端UI模塊│ │ infrastructure-docker-compose.yml # 基礎(chǔ)模塊│ │ modelling-docker-compose.yml # 流程圖繪制管理模塊│ ││ └─apps│ apps.json│ default-app.json└─docker-compose # docker-compose 方式????????.env????????????????????????????#?配置文件??--修改ip為本機IPactiviti-realm.json # realm 配置文件docker-compose.ymlDockerfileenabled_pluginsMakefilenginx.confREADME.md
啟動服務(wù):
啟動設(shè)計器:make modeler訪問:http://$DOCKER_IP/modeling 默認(rèn)賬號:modeler/password啟動例子服務(wù):make application訪問keycloak: http://$DOCKER_IP//auth/ 默認(rèn)賬號是 admin/admin啟動所有服務(wù):make all 或者 docker-compose up

測試接口:前面我們了解到,云服務(wù)目前以Http接口提供業(yè)務(wù)支撐。
配置PostMan1.將 activiti-cloud-examples / Activiti v7 REST API.postman_collection.json導(dǎo)入到Postman中2.配置全局變量 gateway、idm、realm變量名 變量值 變量說明gateway http://192.168.1.33 網(wǎng)關(guān)地址,即你自己電腦的IP(DOCKER_IP)idm http://192.168.1.33 鑒權(quán)地址,identity Manager地址realm??activiti??.env文件中填寫的?KEYCLOAK_REALM3.先調(diào)用 keycloak中的接口獲取token(訪問憑證)。然后就可以調(diào)用其他接口

Flowable:
自從Activiti分離開后,F(xiàn)lowable對引擎本身的關(guān)注是非常充足的。
CMMN – 案例管理開放標(biāo)準(zhǔn) (絕對讓人眼前一亮,慢慢探索會發(fā)現(xiàn)能更靈活的處理很多業(yè)務(wù))
DNN - 決策表
事件流-對Kafka / Confluent、RabbitMQ、AWS SQS還是ActiveMQ/JMS提供開箱即用支持。
對非關(guān)系型數(shù)據(jù)庫提供支持,如MongDB。
新功能如異步歷史、異步執(zhí)行器、動態(tài)注入流程片段。
流程元素完善和執(zhí)行性能提升,以及完善引擎管理客戶端。
結(jié)論:
? Activiti7以后,對于流程引擎本身及相關(guān)引擎功能關(guān)注度并不高,核心很大精力放在構(gòu)建其云生態(tài)環(huán)境,而這點,對于中小公司可能并不怎么關(guān)心,中小公司關(guān)心的還是流程引擎本身的功能與性能,如何快速開展業(yè)務(wù)開發(fā),以及后續(xù)升級運維。這點,F(xiàn)lowable分離出去做了很多完善。
? 接下來先看看原生Flowable的幾個小例子。
