亚州天堂爱爱,做爱视频国产全过程在线观看,成人试看30分钟免费视频,女人无遮挡裸交性做爰视频网站

? ? ?

開源流程引擎BPM哪個(gè)好?activiti、flowable、camunda?(開源 流程引擎)

市場上比較有名的開源流程引擎有osworkflow、jbpm、Activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四個(gè)框架同宗同源,祖先都是Jbpm4,開發(fā)者只要用過其中一個(gè)框架,基本上就會用其它三個(gè)。低代碼平臺、辦公自動化(OA)、BPM平臺、工作流系統(tǒng)均需要流程引擎功能,對于市場上如此多的開源流程引擎,哪個(gè)功能和性能好,該如何選型呢?

開源流程引擎BPM哪個(gè)好?activiti、flowable、camunda?(開源 流程引擎)

一、主流開源流程引擎介紹

1、osworkflow

Osworkflow是一個(gè)輕量化的流程引擎,基于狀態(tài)機(jī)機(jī)制,數(shù)據(jù)庫表很少,Osworkflow提供的工作流構(gòu)成元素有:步驟(step)、條件(conditions)、循環(huán)(loops)、分支(spilts)、合并(joins)等,但不支持會簽、跳轉(zhuǎn)、退回、加簽等這些操作,需要自己擴(kuò)展開發(fā),有一定難度,如果流程比較簡單,osworkflow是很好的選擇,但該開源組件已過時(shí),長時(shí)間沒有版本升級了。

官方網(wǎng)站:http://www.opensymphony.com/osworkflow/

2、JBPM

JBPM由JBoss公司開發(fā),目前最高版本JPBM7,不過從JBPM5開始已經(jīng)跟之前不是同一個(gè)產(chǎn)品了,JBPM5的代碼基礎(chǔ)不是JBPM4,而是從Drools Flow重新開始,基于Drools Flow技術(shù)在國內(nèi)市場上用的很少,所有不建議選擇jBPM5以后版本,jBPM4誕生的比較早,后來JBPM4創(chuàng)建者Tom Baeyens離開JBoss后,加入Alfresco后很快推出了新的基于jBPM4的開源工作流系統(tǒng)Activiti, 另外JBPM以hibernate作為數(shù)據(jù)持久化ORM也已不是主流技術(shù),現(xiàn)在時(shí)間節(jié)點(diǎn)選擇流程引擎,JBPM不是最佳選擇。

官方網(wǎng)站:https://www.jbpm.org/

3、Activiti

activiti由Alfresco軟件開發(fā),目前最高版本activiti 7。activiti的版本比較復(fù)雜,有activiti5、activiti6、activiti7幾個(gè)主流版本,選型時(shí)讓人暈頭轉(zhuǎn)向,有必要先了解一下activiti這幾個(gè)版本的發(fā)展歷史。activiti5和activiti6的核心leader是Tijs Rademakers,由于團(tuán)隊(duì)內(nèi)部分歧,在2017年時(shí)Tijs Rademakers離開團(tuán)隊(duì),創(chuàng)建了后來的flowable, activiti6以及activiti5代碼已經(jīng)交接給了 Salaboy團(tuán)隊(duì), activiti6以及activiti5的代碼官方已經(jīng)暫停維護(hù)了, Salaboy團(tuán)隊(duì)目前在開發(fā)activiti7框架,activiti7內(nèi)核使用的還是activiti6,并沒有為引擎注入更多的新特性,只是在activiti之外的上層封裝了一些應(yīng)用。結(jié)論是activiti謹(jǐn)慎選擇。

官方網(wǎng)站:https://www.activiti.org/

4、flowable

flowable基于activiti6衍生出來的版本,flowable目前最新版本是v6.6.0,開發(fā)團(tuán)隊(duì)是從activiti中分裂出來的,修復(fù)了一眾activiti6的bug,并在其基礎(chǔ)上研發(fā)了DMN支持,BPEL支持等等,相對開源版,其商業(yè)版的功能會更強(qiáng)大。以flowable6.4.1版本為分水嶺,大力發(fā)展其商業(yè)版產(chǎn)品,開源版本維護(hù)不及時(shí),部分功能已經(jīng)不再開源版發(fā)布,比如表單生成器(表單引擎)、歷史數(shù)據(jù)同步至其他數(shù)據(jù)源、ES等。Flowable 是一個(gè)使用 Java 編寫的輕量級業(yè)務(wù)流程引擎,使用 Apache V2 license 協(xié)議開源。

2016 年 10 月,Activiti 工作流引擎的主要開發(fā)者離開 Alfresco 公司并在 Activiti 分支基礎(chǔ)上開啟了 Flowable 開源項(xiàng)目。基于 Activiti v6 beta4 發(fā)布的第一個(gè) Flowable release 版本為6.0。Flowable 項(xiàng)目中包括 BPMN(Business Process Model and Notation)引擎、CMMN(Case Management Model and Notation)引擎、DMN(Decision Model and Notation)引擎、表單引擎(Form Engine)等模塊。

官方網(wǎng)站:https://flowable.com/open-source/

5、Camunda

Camunda基于activiti5,所以其保留了PVM,最新版本Camunda7.15,保持每年發(fā)布2個(gè)小版本的節(jié)奏,開發(fā)團(tuán)隊(duì)也是從activiti中分裂出來的,發(fā)展軌跡與flowable相似,同時(shí)也提供了商業(yè)版,不過對于一般企業(yè)應(yīng)用,開源版本也足夠了,強(qiáng)烈推薦camunda流程引擎,功能和性能表現(xiàn)穩(wěn)定。

選擇camunda的理由:

(1)通過壓力測試驗(yàn)證Camunda BPMN引擎性能和穩(wěn)定性更好。

(2)功能比較完善,除了BPMN,Camunda還支持企業(yè)和社區(qū)版本中的CMMN(案例管理)和DMN(決策自動化)。Camunda不僅帶有引擎,還帶有非常強(qiáng)大的工具,用于建模,任務(wù)管理,操作監(jiān)控和用戶管理,所有這些都是開源的。

官方網(wǎng)站:https://docs.camunda.org/manual/7.15/introduction/

二、flowable與Camunda對比分析

1、功能方面對比

由于Flowable與Camunda好多功能都是類似的,因此在這里重點(diǎn)羅列差異化的功能

(1)camunda支持流程實(shí)例的遷移,比如同一個(gè)流程有多個(gè)實(shí)例,多個(gè)流程版本,不同流程實(shí)例運(yùn)行在不同的版本中,camunda支持任意版本的實(shí)例遷移到指定的流程版本中,并可以在遷移的過程中支持從哪個(gè)節(jié)點(diǎn)開始。

(2)camunda基于pvm技術(shù),所以用戶從Activii5遷移到camunda基本上毫無差異。flowable沒有pvm了,所以遷移工作量更大(實(shí)例的遷移,流程定義的遷移、定時(shí)器的遷移都非常麻煩)。

(3) camunda對于每一個(gè)CMD命令類都提供了權(quán)限校驗(yàn)機(jī)制,flowable沒有。

(4)camunda繼續(xù)每一個(gè)API都有批處理的影子,flowable幾乎沒有。比如批量掛起流程、激活流程等,使用camunda可以直接使用API操作,使用Flowable則只能自己去查詢集合,然后循環(huán)遍歷集合并操作。

(5)camunda很多API均支持批處理,在批量處理的時(shí)候可以指定是異步方式操作或者是同步方式操作。異步的話定時(shí)器會去執(zhí)行。Flowable沒有異步批處理的機(jī)制。比如批量異步刪除所有的歷史數(shù)據(jù)。

(6)camunda啟動實(shí)例的時(shí)候支持從哪個(gè)節(jié)點(diǎn)開始,而不是僅僅只能從開始節(jié)點(diǎn)運(yùn)轉(zhuǎn)實(shí)例。Flowable僅僅只能從開始節(jié)點(diǎn)運(yùn)轉(zhuǎn)實(shí)例。

(7)camunda支持任意節(jié)點(diǎn)的跳轉(zhuǎn),可以跳轉(zhuǎn)到連線也可以跳轉(zhuǎn)到節(jié)點(diǎn),并且在跳轉(zhuǎn)的過程中支持是否觸發(fā)目標(biāo)節(jié)點(diǎn)的監(jiān)聽器。flowable沒有改原生API需用戶去擴(kuò)展。

(8)camunda支持雙異步機(jī)制,第一個(gè)異步即節(jié)點(diǎn)可以異步執(zhí)行,第二個(gè)異步方式是:完成異步任務(wù)后,還可以繼續(xù)異步去執(zhí)行任務(wù)后面的連線。所以稱之為雙異步機(jī)制,flowable只有第一種異步方式。

(9)camunda支持多種腳本語言,這些腳本語言可以在連線上進(jìn)行條件表達(dá)式的配置,開箱即用。比如pythonrubygroovy、JUEL。flowable僅僅支持JUEL、groovy。開箱即用的意思就是如果想用python直接引入jython包就可以用了,不需要額外配置。

(10)camunda支持外部任務(wù),比如我們有時(shí)候想在一個(gè)節(jié)點(diǎn)中執(zhí)行調(diào)用第三方的API或者完成一些特定的邏輯操作,就可以使用外部任務(wù),外部任務(wù)有兩種表,并支持第三方系統(tǒng)定期來抓取并鎖定外部任務(wù),然后執(zhí)行業(yè)務(wù)完畢之后,完成外部任務(wù),流程實(shí)例繼續(xù)往下執(zhí)行。外部任務(wù)的好處就是解決了分布式事物的問題。在flowable中我們可以使用httpTask任務(wù),我個(gè)人更傾向于camunda外部任務(wù),因?yàn)檫@個(gè)外部任務(wù)有外部系統(tǒng)決定什么時(shí)候完成,httpTask是不等待任務(wù),實(shí)例走到這個(gè)節(jié)點(diǎn)之后,調(diào)用一個(gè)api就直接往下跑了,外部任務(wù)不會繼續(xù)往下跑,有外部系統(tǒng)去決定啥時(shí)候往下跑。

(11)camunda支持為用戶定制一些個(gè)性化的偏好查找API,比如張三每次查詢?nèi)蝿?wù)的時(shí)候,一般固定點(diǎn)擊某某三個(gè)查詢條件過濾數(shù)據(jù),使用camunda就可以將這三個(gè)查詢條件進(jìn)行持久化,下次張三來了,就可以直接根據(jù)他的偏好進(jìn)行數(shù)據(jù)的過濾,類似機(jī)器學(xué)習(xí)。

(12)camunda支持歷史數(shù)據(jù)的批量刪除或者批量遷移到其他介質(zhì),比如批量遷移到es,flowable沒有該機(jī)制。

(13)camunda支持在高并發(fā)部署流程的時(shí)候,是否使用鎖機(jī)制,flowable沒有該機(jī)制。

(14) camunda支持單引擎多組合、多引擎多庫。flowable僅僅支持單引擎多組合。

(15) camunda支持流程實(shí)例跨流程定義跳轉(zhuǎn),flowable沒有該機(jī)制。

(16) camunda支持分布式定時(shí)器,flowable沒有該機(jī)制。

(17) flowable支持nosql,camunda只有nosql的解決方案。

(18)camunda支持優(yōu)化流程,以及了解流程引擎的瓶頸所在和每個(gè)環(huán)節(jié)的耗時(shí),flowable沒有該機(jī)制。

(19) camunda修改了流程模板xml解析方式,相比flowable性能更好。

(20)camunda在解析流程模板xml的時(shí)候,去除了activiti5的雙解析機(jī)制,相對而言耗時(shí)時(shí)間更短。flowable沒有了pvm所以規(guī)避了雙解析機(jī)制。

(21)camunda可以在任意節(jié)點(diǎn)添加任意的屬性,flowable原生API沒有,需要自己擴(kuò)展。

(22)camunda框架沒有為流程生成圖片的API(所有流程圖展示以及高亮均在前端動態(tài)計(jì)算),activiti5/6/flowable5/flowable6有圖片生成以及高亮的API.

(23)camunda可以在節(jié)點(diǎn)中定義定時(shí)作業(yè)的優(yōu)先級,也可以在流程中進(jìn)行全局優(yōu)先級的定義。當(dāng)節(jié)點(diǎn)沒有定義優(yōu)先級的時(shí)候可以使用全局的優(yōu)先級字段。activiti5/6/flowable5/flowable6沒有該功能。

(24)camunda可以在流程中定義流程的tag標(biāo)記,activiti5/6/flowable5/flowable6沒有改功能。

(25)camunda/activiti5/6/flowable5/flowable6 均不支持國產(chǎn)數(shù)據(jù)庫,比如人大金倉 和 達(dá)夢。

(26)flowable6支持LDAP,openLDAP,camunda不支持。activiti5不支持。

2、性能方面對比

筆者通過flowable和camunda多組對比測試,camunda性能比flowablet提升最小10%,最大39%,而且camunda無報(bào)錯,flowable有報(bào)錯,camunda在高并發(fā)場景下穩(wěn)定性更好。

開源流程引擎BPM哪個(gè)好?activiti、flowable、camunda?(開源 流程引擎)

性能測試詳細(xì)文章見:https://lowcode.blog.csdn.net/article/details/109030329

三、選型推薦

推薦大家使用camunda(流程引擎) bpmn-js(流程設(shè)計(jì)器)組合,筆者在多個(gè)項(xiàng)目中經(jīng)過實(shí)戰(zhàn)驗(yàn)證,camunda在功能方面比flowable、activiti流程引擎強(qiáng)大,性能和穩(wěn)定性更突出。基于camunda流程引擎的體驗(yàn)環(huán)境:http://www.yunchengxc.com

開源流程引擎BPM哪個(gè)好?activiti、flowable、camunda?(開源 流程引擎)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。

(0)
上一篇 2024年5月16日 下午2:20
下一篇 2024年5月16日 下午2:32

相關(guān)推薦