天天看點

Java工作流詳解(附6大工作流架構對比)目錄什麼是工作流工作流(Worklow)工作流應用場景工作流實作方式目前常見的工作流程有兩種方式:有哪些工作流架構?

目錄

1.什麼是工作流

2.工作流應用場景

3.工作流實作方式

4.有哪些工作流架構?

5.1.Activiti6. 2.Flowable7. 3.Camunda8.4.jBPM9. 5.osworkflow,6.jflow.

10.工作流架構對比

什麼是工作流工作流(Worklow)

工作流是對工作流程及其各操作步驟之間業務規則的抽象、概括描述。工作流模組化,即将工作流程中的工作如前後組織在一起的邏輯和規則,在計算機中以恰當的模型表逢并對其實施計算。工作流要解決的主要問題是: 為實作某個業務目标,利用計算機在多個參與者之間按某種預定規則自動傳遞文檔、資訊或者任務。

那麼再簡單點說,我認為工作流就是對業務的流程化抽象,WFMC給出了工作流參考模型如下:

Java工作流詳解(附6大工作流架構對比)目錄什麼是工作流工作流(Worklow)工作流應用場景工作流實作方式目前常見的工作流程有兩種方式:有哪些工作流架構?

工作流應用場景

具體場景,凡是涉及到業務流程的所有場景

。關鍵業務流程:訂單、報價處理、合同稽核、客戶電話處理、供應鍊管理等。行政管理類:出差申請、加班申請、請假申請、用車申請、各種辦公用品申請、購買申請、日報周報等凡是原來手工流轉處理的行政表單。。人事管理類:員工教育訓練安排、績效考評、職位變動處理、員工檔案資訊管理等。财務相關類:付款請求、應收款處理、日常報帳處理、出差報帳、預算和計劃申請等.。客戶服務類:客戶資訊管理、客戶投訴、請求處理、售後服務管理等。

工作流實作方式目前常見的工作流程有兩種方式:

。通過狀态字段實作流程控制。原始,适合簡單流程控制。

。工作流引擎實作流程控制。适用場景更廣泛,擴充性更好

有哪些工作流架構?

目前市面上主流的開源流程引擎主要有 Activiti、Flowable,CamundajBPM,jflow, oworkflow等。現在我們對這些開源流程架構進行調研和分析。

    1. Activiti

Activiti 由 Alfresco 公司開發,目前最高版本為 Activiti cloud 71.0

其中 activiti5 和 activiti6 的核心 leader 是 Tijs Rademakers,由于團隊内部分歧,2017 年 Tijs Rademakers 離開團隊,建立

了後來的 Flowable。

activiti6 以及 activiti5 代碼則交接給 Salabov 團隊維護,activiti6 以及 activiti5 的代碼官方已經暫停維護。往後 Salaboy 團開發了 activiti7 架構,ativiti7 核心使用的還是 activiti6,并沒有為引擎注入更多的新特性,隻是在 Activiti 之外的上層封裝了

些應用。

直到 Activiti cloud710版本,Activiti coud 将系統分為 Runtime Bundle、 Audit Service  Query Service、 CloudConnectors、Application Service、 Notification Service。這些工作的主要目的其實就是為了上雲,減少對 Activiti 依賴的糖合,需要使用Activiti的系統隻需要通過調用 http 接口的方式來實作工作流能力的整合,将工作流業務托管上雲2.Flowable

    1. Flowable

是基于activiti6 衍生出來的版本,目前最新版本是v6.7.0

開發團隊是從Activiti 中分裂出來的,修複了一衆activiti6 的 bug,并在其基礎上實作了 DMN 支援,BPEL 支援等。

相對開源版,其商業版的功能會更強大。Flowable 是一個使用Java 編寫的輕量級業務流程引擎,使用 Apache V2 license 協定開源。2016年10月,Activiti工作流擎的主要開發者離開 Alfresco 公司并在 Activiti分支基礎上開啟了 Flowable 開源項目。Flowable 項目中包括 BPMN (Business Process Model and Notation)引擎CMMN (Case Management Modeland Notation)引擎、DMN (Decision Model and Notation) 引擎和表單引擎 (Form Engine) 等子產品。

    1. Camunda

Camunda 基于activiti5,是以其保留了 PVM,最新版本Camunda7.17,開發團隊也是從activiti 中分裂出來的,發展軌與Flowable 相似。

通過壓力測試驗證 Camunda BPMN 引擎性能和穩定性更好。功能比較完善,除了BPMN,Camunda 還支援 CMMN(案例管理)和 DMN (決策自動化)。Camunda 不僅帶有引擎,還帶有非常強大的工具[6],用于模組化、任務管理、操作監控和使用者管理

    1. jBPM

BPM 由JBoss 公司開發,目前最高版本 7.61.0.Final,不過從BPM5開始已經限之前不是同一個産品了,BPM5 的代碼基礎不是jBPM4,而是從 Drools Flow 重新開始,基于 Drools Flow 技術在國内市場上用的很少,jBPM4 誕生的比較早,後來jBPM4建立者 Tom Baeyens 離開JBoss 後,加入 Alfresco 後很快推出了新的基于jBPM4 的開源工作流系統 Activiti,另外jBPM 以Hibernate 作為資料持久化 ORM,而 Hibernate 也已不是主流技術mikechen的網際網路架松首頁架構視訊技術文章面試題庫問答社群。

    1. JFlow

Jflow是一個國産的開源工作流引擎,與業務場景結合緊密,再帶表單引擎,資料表較多,中文概念較多,可配置型性強,支援作為中間件模式的內建。配置點集中在,節點屬性,流程屬性,方向條件。概念名詞比較清晰,文檔全面。有qq群技術支援。

流程設計器界面幹淨,從節點類型分類,分流,合流,分合流,子線程等等。表單與流程完美結合,與其它幾款流程引擎設計理念不同。Jflow更适用,貼近使用者操作。

表單引擎中的精華是稽核元件,滿足國内審批要求的需求,退回,分合流稽核,會簽,并行處理,隊列處理,概念清晰,容易了解。

    1. osworkflow

是一個輕量化的流程引擎,基于狀态機機制,資料庫表很少,osworkflow 提供的工作流構成元素有: 步驟

(step) 、條件(conditions) 、循環(loops) 、分支(spilts) 、合并 joins)等,但不支援會簽、跳轉、退回、加簽等這些

操作,需要自己擴充開發,有一定難度。如果流程比較簡單,osworkflow 是很好的選擇