馳騁工作流引擎JFlow與activiti的對比 -總結


clip_image002

共同點:

1. 嵌入式的工作流引擎,降低集群復雜性。

2. 嚴格而靈活的流程版本控制

3. 支持多種數據庫

4. 支持多種流程設計模式

5. 成熟度高的開源工作流,具有可靠的穩定性和性能。

區別:

1. 流程定義方式:

ACTIVITI :采用xml的方式,通過拼字符串的方式完成,所以流程定義時的結果不直觀、不方便。

JFLOW:擁有自己的流程設計器和表單設計器,畫布性質的,所見即所得。包括流程運轉條件、方向條件等。

2. 面向使用對象:

ACTIVITI :由於設計方式,只能面向流程開發人員。

JFLOW:既面向流程開發人員又面向業務人員,即使不會編程,也可以進行流程設計。

3. 節點類型:

ACTIVITI :開始節點、結束節點、自動節點、任務節點、fork分支、join聯合等多種節點。通過多種節點的配合以及事件等使用,組成流程。

並且,開始節點必須有一個向外的流向。

JFLOW:普通節點、分流節點、子線程節點、合流節點。

開始節點屬於普通節點,可以做為一個單節點的流程,沒有流向。

結束節點由CC自動判斷定義。

CC中的循環是通過方向條件判斷,同步、聚合等是由合流節點。

4. 對復雜流程的支持:

ACTIVITI :不適合非常復雜的流程,他只是提供了一套豐富的工作流模型,可以讓你去做任何事情,即便違反工作流規范。

JFLOW:通過節點運行規則、方向條件、豐富的事件、運行模式和表單解決方案,完全滿足復雜的流程運轉,對任何情況,都是可控的。

5. 對歷史數據的挖掘:

ACTIVITI :對歷史數據的支持不是很好,比如,子任務不能寫入歷史之類。當然,通過修改代碼與BUG,也是可以實現的。

JFLOW:具有軌跡功能,即對某一個流程運行產生數據的保存,流程運行中,可以查看相關節點的處理信息與流程數據,流程結束后也可以。

表單集成

因為activiti 僅僅是一個流程引擎,所以無可比性,這里不做對比。僅僅說明表單引擎與流程引擎在業務系統中的應用。

表單引擎與流程引擎的關系

我們把BPM系統比喻一部汽車,那么車的控制系統,就象流程引擎,比如:剎車、油門、離合、方向燈,就是車的控制系統。車的車廂就是表單,而貨物就是數據。

clip_image004

我們研究汽車不能把車的控制系統與車的拉貨分開討論的。

工作流程在運行的過程中,他的主要目的就是協調各個部門,人員,崗位處理業務 流水線化。

流程在運動過程中,需要操縱表單數據的分合,或者需要讀取表單數據進行方向轉向、流程業務處理的控制工作。

最簡單的請假流程-根據表單的請假天數來判斷流程的分支

clip_image006

可以方便的可視化的設計方向條件

clip_image008

流程引擎操縱表單引擎的一個案例

比如:在JFlow的分合流里, 如下流程:

clip_image010

項目經理下達任務填寫節點:

clip_image012

每個銷售人員填寫數據節點表單:

clip_image014

數據匯總節點(數據匯總):

clip_image016

JFlow認為一個流程引擎與表單引擎就是

對多種表單的支持

簡潔明快的CCForm

clip_image018

clip_image020

clip_image022

clip_image024

Word文檔支持

clip_image026

Excel表單的支持

clip_image028

表單樹的支持

clip_image030

符合中國特色個性化JFlow功能

如果使用符合中國特色的流程引擎,有些牽強,因為一些規則,在國外也需要用到,只是國外的開發者,不想把他們抽象出來。

在國內的開發者,與實施人員要求個性化定制要求比較高,一起需要基於設置開發,所以這對流程引擎的設計者對業務規則的抽象要求提出更高的水平。

並不能說每個屬性設置都屬於中國特色,以下以幾個功能來說明該問題,為什么activti沒有涉及到這些功能,因為他們對流程引擎的發展定位不同。

流程屬性

流程屬性是控制整個流程的規則的設置。

比如單據編號生成規則,

每個流程屬性,都是從實際也規則走

JFlow提供了豐富的流程屬性定義規則,讓我們開發

clip_image032

多種接受人規則

clip_image034


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM