工作流引擎JFlow與activiti 對比分析(一)5種基本控制流模式的對比


為了更好的說明activiti 與jflow的兩款工作流引擎的特點與區別,我們按照如下幾個方面做一次全面的、客觀的對比。

      首先activiti是國外的一款開源的工作流程引擎,在國際上影響比較深遠與廣泛,解決了BPM領域的很多問題,值得我們贊賞。他的boss是jbpm的前身。

      JFlow是濟南馳騁公司開放的一款工作流程引擎,JFlow的前身是CCFlow,ccflow是國內開源的一款老牌的工作流程引擎,承擔過很多大型項目,適應於復雜的國內應用環境。

      Activity 相對簡單,僅有流程引擎,沒有表單引擎。在BPM的研究領域, 很多的學者,專家都是把流程引擎與表單引擎分開的,對於這個觀點我們並不很贊同。實現功能需要大量的代碼開發。

JFlow是JFlow流程引擎+CCForm的表單引擎的有機結合,內容相對復雜,配置程度較高,實施周期短,上手快。

工作流程引擎 - 對比

以國外流行的工作流activiti的模式與當今中國開源的JFlow(ccflow和jflow的總稱)流程引擎對照。以便讓各位能夠了解到中國國情的工作流引擎與國際流行的設計規則的差別、不同、與優缺點。

國外工作流比較通用的就是滿足21種流程模式的支持。

 

5種基本控制流模式的對比

  1. 順序流(Sequence)

ACTIVITI :

就是按照流程設計的步驟,一步步的向下運行,這樣的模式下每個節點有先后順序,就是每個節點只有一個節點是活動的。

例子:比如申請后進行審批,一步一步的進行任務。

 

 

JFLOW:

順序流,也叫做沒有分支的線性流程,流程一般在最后一個節點自動結束,並標識流程完成。也可以通過設置節點條件,自動結束流程。

 

 

JFlow的特點是:允許用戶自己定義流程完成條件,在任何一個節點運行過程中,JFlow都要去檢查條件設置,如果滿足這個條件流程就自動結束。

 

  1. 並行分叉(ParallelSplit)

ACTIVITI :

流程在某個活動(節點、步驟)之后產生多個分支,並且並行流轉。

例子:比如在淘寶買了個商品需要開發票,那么賣家就需要一邊准備商品發貨,一邊准備發票郵寄。

 

 

JFLOW:

異表單分合流的分流動作,一個動作結束后(分流節點),並行啟動多個分支,每個分支都要向下運動。

在cc中,可以根據方向條件設置來決定是否啟用某一個分支。

 

 

  1. 同步(Synchronization)

ACTIVITI :

在流程中的某個點,多個並行的子流程或者活動,合並成一個流程。流程必須等待所有的分支都執行完成后,才能激活后續活動。

例子:比如商家在收到“發票”和“商品”后,才能確認收貨。

 

 

 

JFLOW:

異表單分合流中的合流動作,可以指定一定的完成率,才能到達合流節點。對於未完成的子線程,可以進行刪除操作。

 

  1. 獨占式選擇(Exclusive Choice)

ACTIVITI :

一個活動完成后,只能在后面的多個分支中激活一個。

例子:比如用戶下單后,可以有N種付款方式,但是只能選擇其中一種。

 

 

JFLOW:

具有分支的線性流程。可以由方向條件控制,也可以由用戶手動控制。

 

 

 

  1. 簡單聚合(Simple Merge)

ACTIVITI :

在流程中有2個以上的分支中某一個點處被合並成一個分支,只要分支中的一條完成,即可繼續進行,而其他分支自動結束。

例子:比如發貨在建設銀行和中國銀行等支付方式中的一個完成后才被激活。

 

 

JFLOW:

即可以為帶有分支的線性流程,又可以是異表單的合流動作。在線性流程中,在某一處選擇需要執行的節點並完成執行后,后面的節點一步一步的執行,沒有被選擇的節點不執行。

在異表單中,可以通過條件設置需要執行的節點,其他節點不執行,在合流點完成匯總並激活。或者,通過設置完成率來激活合流點的操作。

 

 

區分到底是否是分合流,通過查看節點類型。

 

 

  1. 基本控制流程模式,在ACTIVITI 中與JFLOW中的綜合實現。

ACTIVITI :

 

 

JFLOW:

 

 

 

 


免責聲明!

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



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