jBPM 創始人發佈BPMN原生引擎Activiti-5.0-alpha1

Tom Baeyens也就是jBPM的原作者,離開了Red Hat之後,另起爐竈搞了一個Activiti的項目,這個項目是基於BPMN的原生流程引擎。

那麼這個activiti到底有啥好處呢?讓咱們一一道來:

它基於的Apache 2.0開源協議,比jBPM的LGPL更加寬鬆。

它是基於BPMN2.0標準規範的,最大的好處就是可以用oryz這個web流程設計器直接在web瀏覽器上設計流程了。(注:別高興太早,oryz是用 svg寫的,IE一律不支持。)

它是基於ibatis的,數據庫層不再對hibernate有依賴。(注:alpha1只支持h2database,後面的版本會對mysql, oracle,postegl進行支持)

選用BPMN作爲標準流程語言,也意味着原來的jBPM裏的jPDL流程語言將不會被繼續支持,也不知道PVM流程虛擬機是否會繼續下去,如果Tom不想玩虛擬機了,activiti很可能就是一個只支持一種流程語言的引擎了。這點確實讓人感到有點兒遺憾。

從www.activiti.org這個網站上可以下載到alpha1的發佈包,其中包含了源代碼,草草看了一下,核心庫只有200多K,其中把原來自行實現的IoC自動注入的代碼都刪掉了。以後的IoC工作可能統一交給spring去管理,這對使用spring的同志來說,無疑是一個天大的好消息。

api部分對外部接口進行了簡化,ExternalActivityBehaviour不見了,換成了EventActivityBehaviour,這一點讓我感覺很舒服,畢竟signal其實也只是事件的一種特例,換成eventActivityBehaviour之後,也就意味着我們可以讓活動節點支持更多事件處理操作了。

持久化部分換成了ibatis,這部分暫時還只支持h2database,腳本什麼的也只有h2database的,雖然因爲alpha1版本,功能不多情有可原,但是我還是擔心使用ibatis會否大幅度增加數據庫存儲部分的維護量。希望後續發展不要因爲這部分的問題遇到障礙。

表結構似乎和原來的jbpm4差不多,有些表名發生了變化。表的數目又少了很多,但是我情願認爲這不是爲了優化,而是因爲這個版本不成熟,因爲看不到 log和history相關的表,所以,現在這個版本應該是沒有歷史留痕功能的。也沒有看到變量表,也許都是用二進制的方式來保存的吧?

對BPMN2支持的部分,目前支持StartEvent, EndEvent, Task和UserTask,其他的都不支持,所以還是需要時間完善的。

實際上Tom和Joram的編碼能力還是相當驚人的,從他們倆離開Red Hat到現在纔不過兩個月,就立刻搞出這麼一個東西,而且網站也搞得有模有樣的,真心希望他們能延續RoadMap,把這個項目完善起來。

項目首頁:http://www.activiti.org/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章