工作流引擎添新?。篎lowable6.0發(fā)布

如果你在還糾結(jié)該選擇JPMB還是Acitiviti的時(shí)候,或者還在糾結(jié)于是否該從JPMB遷移到Activiti的陣營(yíng)中的時(shí)候,很不幸地告訴你,F(xiàn)lowable6.0已經(jīng)發(fā)布了。

是不是變得更糾結(jié)啦?!又多了一種選擇。

1、什么是Flowable?

如果你對(duì)工作流引擎有所了解,那么一定知道Java領(lǐng)域當(dāng)前主流的工作流引擎無(wú)非就是Jboss旗下的JBPM和Alfresco旗下的Activiti。

Flowable是Activiti原班主創(chuàng)人員從Activiti分離出來(lái)的一套工作流引擎,是一個(gè)業(yè)務(wù)流程管理(BPM)和工作流系統(tǒng),適用于開(kāi)發(fā)人員和系統(tǒng)管理員。其核心是超快速、穩(wěn)定的BPMN2流程引擎,易于與 Spring集成使用。

2、Flowable6.0的由來(lái)?

故事還得從頭說(shuō)起。

依然是江湖流傳已久的版本,大約在7年前,在JBPM4發(fā)布以后,JBPM的主創(chuàng)人員Tom Baeyens與合作伙伴在JBPM的未來(lái)架構(gòu)上產(chǎn)生了重大分歧,于是Tom離開(kāi)了Jboss并加入了Alfresco公司。緊接著,Alfresco公司就發(fā)布了Activiti5.0這款開(kāi)源產(chǎn)品。Activiti團(tuán)隊(duì)直接將第一個(gè)版本定義為5.0,也是明示大家Acitiviti就是JBPM4的延續(xù)。而Tom的老東家Jboss則完全拋棄了JBPM4的架構(gòu),基于Drools Flow進(jìn)行徹底重構(gòu),推出了JBPM5。

盡管JBPM5和Acitiviti5都支持BPMN2.0規(guī)范,但是由于JBPM5完全推翻了JBPM4的架構(gòu),這無(wú)異于將已經(jīng)在使用JBPM4和之前版本的用戶(hù)推向了Activiti5。因此幾年下來(lái),Acitiviti大有取代JBPM之勢(shì)。當(dāng)然,JBoss旗下有眾多優(yōu)秀的產(chǎn)品,JBPM5作為Jboss的親生子,自然與這些產(chǎn)品進(jìn)行整合具有先天的優(yōu)勢(shì),因此選擇Activiti5或JBPM5還需要認(rèn)真權(quán)衡利弊。

說(shuō)完Activiti的由來(lái),不得不先感嘆老祖宗的智慧:“話說(shuō)天下大勢(shì),分久必合,合久必分”。

因?yàn)楣P者在推特上關(guān)注了Tijs Rademarkers(原Activiti的Project Lead),前段時(shí)間當(dāng)看到他兩條連續(xù)的更新,9月份還在Activiti改bug,10月份居然發(fā)布Flowable上線聲明,筆者渾身一顫,這明顯是要搞事啊!

果不其然,打開(kāi)Activiti官網(wǎng)發(fā)現(xiàn)已經(jīng)改版了,團(tuán)隊(duì)成員的介紹也被替換了!

而新建的Flowable官網(wǎng),成員介紹果然是那些熟悉的面孔,之前Activiti里的大咖們。

Flowable的誕生簡(jiǎn)直和Acitiviti的誕生如出一轍!當(dāng)年JBMP的主創(chuàng)Tom已經(jīng)離開(kāi)Alfresco多年,后輩們也開(kāi)始步前人后塵。Tijs Rademakers、Joram Barrez等Activiti的原班核心人馬,由于與Alfresco公司在項(xiàng)目的未來(lái)發(fā)展方向上出現(xiàn)分歧,于是選擇集體出走,創(chuàng)建了Flowable,并且將第一個(gè)版本定義為5.22,而且在兩周前發(fā)布了6.0版本!要知道,Activiti當(dāng)前版本依然還是5.22,6.0處于Beta階段。

這下又給眾多開(kāi)發(fā)者布下了個(gè)不小的難題,是該緊跟Flowable的步伐,還是蹲守著Activiti?更不用說(shuō)那些還在糾結(jié)于JBPM和Activiti之間的開(kāi)發(fā)者了,這下又多了一個(gè)選擇。

3、Flowable6.1醒目的新特性

Flowable 5.22和6.0版本眾多讓人驚艷的新特性已經(jīng)在官網(wǎng)詳細(xì)地羅列,筆者在此就不再?gòu)?fù)述。Flowable項(xiàng)目組核心成員在Twitter上透露6.1版本的新特性至少包括以下幾點(diǎn),結(jié)合點(diǎn)融網(wǎng)自動(dòng)審批系統(tǒng)底層工作流引擎的實(shí)踐,這些新特性依然讓人眼前一亮。

異步處理歷史數(shù)據(jù)。當(dāng)前版本處理歷史數(shù)據(jù)與運(yùn)行時(shí)數(shù)據(jù)處在同一個(gè)線程,大量使用案例表明,處理歷史數(shù)據(jù)占用較長(zhǎng)時(shí)間而用戶(hù)不得不等待該線程事務(wù)的結(jié)束。改為異步處理后性能明顯得到改善。

回退功能,運(yùn)行通過(guò)API方式,讓工作流當(dāng)前狀態(tài)回滾到之前的狀態(tài)。

增加和拓展對(duì)事件子流程的支持

提高對(duì)事件監(jiān)聽(tīng)器事務(wù)生命周期的支持

新增全局Counter功能

4、那么Flowable能走多遠(yuǎn)?

越來(lái)越多的公司都意識(shí)到:創(chuàng)建一個(gè)軟件項(xiàng)目最好的方式就是“開(kāi)源”。

開(kāi)源使得公司能夠大大縮短開(kāi)發(fā)時(shí)間,尤其能減輕打造一套通用系統(tǒng)底層架構(gòu)上的壓力,并且采取的是一套兼容性更強(qiáng)的技術(shù)標(biāo)準(zhǔn)。不少全球知名IT企業(yè),都在將自己一些已經(jīng)相當(dāng)成熟的項(xiàng)目不斷地開(kāi)源出來(lái)。

可以說(shuō)每一套軟件系統(tǒng)的背后或多或少都有著開(kāi)源的影子。

因?yàn)殚_(kāi)源,任何人都可以參與進(jìn)來(lái),無(wú)論供職哪家公司,或者是自由職業(yè)者。然而開(kāi)源也存在這樣一個(gè)問(wèn)題,開(kāi)源能讓每個(gè)人都自由地發(fā)揮聰明才智,但是它也并非想象中那樣美好。畢竟我們處于一個(gè)商業(yè)的世界,那些背后支持著開(kāi)源項(xiàng)目的大公司,在決定技術(shù)和項(xiàng)目的走向上總是擁有更大的話語(yǔ)權(quán)。

當(dāng)一個(gè)開(kāi)源項(xiàng)目的核心主創(chuàng)人員與開(kāi)源項(xiàng)目背后的大公司發(fā)生技術(shù)和項(xiàng)目的走向分歧時(shí),主創(chuàng)人員不得不另立山頭,想要將自己的想法實(shí)現(xiàn)出來(lái)。但是同樣危險(xiǎn)的是,假如一個(gè)開(kāi)源項(xiàng)目背后沒(méi)有一個(gè)實(shí)力雄厚的公司支持下去,那么也許就會(huì)是一個(gè)有頭無(wú)尾的開(kāi)源項(xiàng)目。

而Flowable作為Activiti的一個(gè)分支,能走多遠(yuǎn)?或許也將受此因素影響。從Tijs Rademakers的LinkedIn上更新的簡(jiǎn)歷來(lái)看,現(xiàn)在Flowable項(xiàng)目背后的靠山有可能是這家叫KIS Consultancy的公司。這家公司的主頁(yè)簡(jiǎn)單到實(shí)在不能再簡(jiǎn)單了,F(xiàn)lowable的命運(yùn)一時(shí)半會(huì)兒還真不好判斷。

5、開(kāi)源分支的利弊?

在開(kāi)源的世界里開(kāi)辟分支是常見(jiàn)的。例如這篇文章May the Fork Be with You(http://thenewstack.io/may-fork-short-history-open-source-forks/)提到的一樣,前段時(shí)間在Docker開(kāi)源社區(qū)熱議的一個(gè)話題:開(kāi)辟Docker分支。

一些Docker生態(tài)系統(tǒng)的廠商和最終用戶(hù)進(jìn)行了一場(chǎng)從Docker分割出去的討論。在表達(dá)各種對(duì)Docker公司在Docker Engine上管理的失望背后,這些技術(shù)專(zhuān)家和公司實(shí)際上是在探索如何解決在支持企業(yè)級(jí)的Dokcer部署中遇到的各種煩心問(wèn)題。在諸多正在考慮的選項(xiàng)之中,包括可能會(huì)將整個(gè)開(kāi)源的Docker Engine一起另起爐灶( fork )。

開(kāi)辟分支有時(shí)是利于項(xiàng)目發(fā)展的。例如這篇文章Why you should fork your next open-source project(http://www.techrepublic.com/article/why-you-should-fork-your-next-open-source-project/),該文指出開(kāi)辟分支往往是利于改革和創(chuàng)新的。

當(dāng)然,不一定所有的開(kāi)源分支最后都能成功。例如這篇文章Open Source Software and Forking: The Good, The Great and The Ugly(http://www.makeuseof.com/tag/forking-good-great-ugly/),通過(guò)對(duì)LibreOffice與MariaDB的比較、Node.js And與Forward的比較,以及對(duì)SystemD的案例分析,有較為詳細(xì)的闡述,有興趣的讀者值得一看。

6、Flowable團(tuán)隊(duì)是如何打消用戶(hù)顧慮的

Flowable團(tuán)隊(duì)對(duì)用戶(hù)說(shuō)道,“如果你還在猶豫是否加入我們,請(qǐng)看看Activiti源碼里的作者們,再看看Flowable項(xiàng)目的成員們。我們是最懂Activiti、在過(guò)去幾年里推動(dòng)了整個(gè)社區(qū)、為社區(qū)做出貢獻(xiàn)和改革的那幫人?!?/p>

說(shuō)了那么多,那么你會(huì)怎么選擇呢?!

本文作者:黃斐(點(diǎn)融黑幫),任職于點(diǎn)融工程部Loan Business團(tuán)隊(duì),致力于點(diǎn)融自動(dòng)審批系統(tǒng)的底層流程引擎和監(jiān)控服務(wù)系統(tǒng)的建設(shè)工作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容