如果你在還糾結(jié)該選擇JPMB還是Acitiviti的時(shí)候哈街,或者還在糾結(jié)于是否該從JPMB遷移到Activiti的陣營中的時(shí)候,很不幸地告訴你悯嗓,F(xiàn)lowable6.0已經(jīng)發(fā)布了件舵。
是不是變得更糾結(jié)啦?脯厨!又多了一種選擇铅祸。
1、什么是Flowable?
如果你對(duì)工作流引擎有所了解临梗,那么一定知道Java領(lǐng)域當(dāng)前主流的工作流引擎無非就是Jboss旗下的JBPM和Alfresco旗下的Activiti涡扼。
Flowable是Activiti原班主創(chuàng)人員從Activiti分離出來的一套工作流引擎,是一個(gè)業(yè)務(wù)流程管理(BPM)和工作流系統(tǒng)盟庞,適用于開發(fā)人員和系統(tǒng)管理員吃沪。其核心是超快速、穩(wěn)定的BPMN2流程引擎什猖,易于與 Spring集成使用票彪。
2、Flowable6.0的由來不狮?
故事還得從頭說起降铸。
依然是江湖流傳已久的版本,大約在7年前摇零,在JBPM4發(fā)布以后垮耳,JBPM的主創(chuàng)人員Tom Baeyens與合作伙伴在JBPM的未來架構(gòu)上產(chǎn)生了重大分歧,于是Tom離開了Jboss并加入了Alfresco公司遂黍。緊接著终佛,Alfresco公司就發(fā)布了Activiti5.0這款開源產(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)敬飒,這無異于將已經(jīng)在使用JBPM4和之前版本的用戶推向了Activiti5邪铲。因此幾年下來,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)衡利弊。
說完Activiti的由來四康,不得不先感嘆老祖宗的智慧:“話說天下大勢(shì)搪搏,分久必合,合久必分”闪金。
因?yàn)楣P者在推特上關(guān)注了Tijs Rademarkers(原Activiti的Project Lead)疯溺,前段時(shí)間當(dāng)看到他兩條連續(xù)的更新,9月份還在Activiti改bug,10月份居然發(fā)布Flowable上線聲明囱嫩,筆者渾身一顫嗅辣,這明顯是要搞事啊挠说!
果不其然澡谭,打開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)離開Alfresco多年,后輩們也開始步前人后塵琐脏。Tijs Rademakers攒砖、Joram Barrez等Activiti的原班核心人馬,由于與Alfresco公司在項(xiàng)目的未來發(fā)展方向上出現(xiàn)分歧日裙,于是選擇集體出走吹艇,創(chuàng)建了Flowable,并且將第一個(gè)版本定義為5.22昂拂,而且在兩周前發(fā)布了6.0版本受神!要知道,Activiti當(dāng)前版本依然還是5.22格侯,6.0處于Beta階段鼻听。
這下又給眾多開發(fā)者布下了個(gè)不小的難題,是該緊跟Flowable的步伐联四,還是蹲守著Activiti撑碴?更不用說那些還在糾結(jié)于JBPM和Activiti之間的開發(fā)者了,這下又多了一個(gè)選擇朝墩。
3醉拓、Flowable6.1醒目的新特性
Flowable 5.22和6.0版本眾多讓人驚艷的新特性已經(jīng)在官網(wǎng)詳細(xì)地羅列,筆者在此就不再復(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í)間而用戶不得不等待該線程事務(wù)的結(jié)束。改為異步處理后性能明顯得到改善。
回退功能葛闷,運(yùn)行通過API方式憋槐,讓工作流當(dāng)前狀態(tài)回滾到之前的狀態(tài)。
增加和拓展對(duì)事件子流程的支持
提高對(duì)事件監(jiān)聽器事務(wù)生命周期的支持
新增全局Counter功能
4淑趾、那么Flowable能走多遠(yuǎn)阳仔?
越來越多的公司都意識(shí)到:創(chuàng)建一個(gè)軟件項(xiàng)目最好的方式就是“開源”。
開源使得公司能夠大大縮短開發(fā)時(shí)間扣泊,尤其能減輕打造一套通用系統(tǒng)底層架構(gòu)上的壓力近范,并且采取的是一套兼容性更強(qiáng)的技術(shù)標(biāo)準(zhǔn)。不少全球知名IT企業(yè)延蟹,都在將自己一些已經(jīng)相當(dāng)成熟的項(xiàng)目不斷地開源出來评矩。
可以說每一套軟件系統(tǒng)的背后或多或少都有著開源的影子。
因?yàn)殚_源阱飘,任何人都可以參與進(jìn)來斥杜,無論供職哪家公司,或者是自由職業(yè)者沥匈。然而開源也存在這樣一個(gè)問題蔗喂,開源能讓每個(gè)人都自由地發(fā)揮聰明才智,但是它也并非想象中那樣美好高帖。畢竟我們處于一個(gè)商業(yè)的世界弱恒,那些背后支持著開源項(xiàng)目的大公司,在決定技術(shù)和項(xiàng)目的走向上總是擁有更大的話語權(quán)棋恼。
當(dāng)一個(gè)開源項(xiàng)目的核心主創(chuàng)人員與開源項(xiàng)目背后的大公司發(fā)生技術(shù)和項(xiàng)目的走向分歧時(shí)返弹,主創(chuàng)人員不得不另立山頭,想要將自己的想法實(shí)現(xiàn)出來爪飘。但是同樣危險(xiǎn)的是义起,假如一個(gè)開源項(xiàng)目背后沒有一個(gè)實(shí)力雄厚的公司支持下去,那么也許就會(huì)是一個(gè)有頭無尾的開源項(xiàng)目师崎。
而Flowable作為Activiti的一個(gè)分支默终,能走多遠(yuǎn)?或許也將受此因素影響犁罩。從Tijs Rademakers的LinkedIn上更新的簡(jiǎn)歷來看齐蔽,現(xiàn)在Flowable項(xiàng)目背后的靠山有可能是這家叫KIS Consultancy的公司。這家公司的主頁簡(jiǎn)單到實(shí)在不能再簡(jiǎn)單了床估,F(xiàn)lowable的命運(yùn)一時(shí)半會(huì)兒還真不好判斷含滴。
5、開源分支的利弊丐巫?
在開源的世界里開辟分支是常見的谈况。例如這篇文章May the Fork Be with You(http://thenewstack.io/may-fork-short-history-open-source-forks/)提到的一樣勺美,前段時(shí)間在Docker開源社區(qū)熱議的一個(gè)話題:開辟Docker分支。
一些Docker生態(tài)系統(tǒng)的廠商和最終用戶進(jìn)行了一場(chǎng)從Docker分割出去的討論碑韵。在表達(dá)各種對(duì)Docker公司在Docker Engine上管理的失望背后赡茸,這些技術(shù)專家和公司實(shí)際上是在探索如何解決在支持企業(yè)級(jí)的Dokcer部署中遇到的各種煩心問題。在諸多正在考慮的選項(xiàng)之中祝闻,包括可能會(huì)將整個(gè)開源的Docker Engine一起另起爐灶( fork )占卧。
開辟分支有時(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/)联喘,該文指出開辟分支往往是利于改革和創(chuàng)新的屉栓。
當(dāng)然,不一定所有的開源分支最后都能成功耸袜。例如這篇文章Open Source Software and Forking: The Good, The Great and The Ugly(http://www.makeuseof.com/tag/forking-good-great-ugly/)友多,通過對(duì)LibreOffice與MariaDB的比較、Node.js And與Forward的比較堤框,以及對(duì)SystemD的案例分析域滥,有較為詳細(xì)的闡述,有興趣的讀者值得一看蜈抓。
6启绰、Flowable團(tuán)隊(duì)是如何打消用戶顧慮的
Flowable團(tuán)隊(duì)對(duì)用戶說道,“如果你還在猶豫是否加入我們沟使,請(qǐng)看看Activiti源碼里的作者們委可,再看看Flowable項(xiàng)目的成員們。我們是最懂Activiti腊嗡、在過去幾年里推動(dòng)了整個(gè)社區(qū)着倾、為社區(qū)做出貢獻(xiàn)和改革的那幫人⊙嗌伲”
說了那么多卡者,那么你會(huì)怎么選擇呢?客们!
本文作者:黃斐(點(diǎn)融黑幫)崇决,任職于點(diǎn)融工程部Loan Business團(tuán)隊(duì),致力于點(diǎn)融自動(dòng)審批系統(tǒng)的底層流程引擎和監(jiān)控服務(wù)系統(tǒng)的建設(shè)工作