世界觀察:Java工作流詳解(附6大工作流框架對(duì)比)?

2023-01-09 16:31:06 來源:51CTO博客

?


(資料圖片)

目錄?

1.什么是工作流?

2.工作流應(yīng)用場景?

3.工作流實(shí)現(xiàn)方式?

4.有哪些工作流框架??

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

10.工作流框架對(duì)比?

什么是工作流工作流(Worklow)?

工作流是對(duì)工作流程及其各操作步驟之間業(yè)務(wù)規(guī)則的抽象、概括描述。工作流建模,即將工作流程中的工作如前后組織在一起的邏輯和規(guī)則,在計(jì)算機(jī)中以恰當(dāng)?shù)哪P捅矸瓴?duì)其實(shí)施計(jì)算。工作流要解決的主要問題是: 為實(shí)現(xiàn)某個(gè)業(yè)務(wù)目標(biāo),利用計(jì)算機(jī)在多個(gè)參與者之間按某種預(yù)定規(guī)則自動(dòng)傳遞文檔、信息或者任務(wù)。?

那么再簡單點(diǎn)說,我認(rèn)為工作流就是對(duì)業(yè)務(wù)的流程化抽象,WFMC給出了工作流參考模型如下:?

工作流應(yīng)用場景?

具體場景,凡是涉及到業(yè)務(wù)流程的所有場景?

。關(guān)鍵業(yè)務(wù)流程:訂單、報(bào)價(jià)處理、合同審核、客戶電話處理、供應(yīng)鏈管理等。行政管理類:出差申請(qǐng)、加班申請(qǐng)、請(qǐng)假申請(qǐng)、用車申請(qǐng)、各種辦公用品申請(qǐng)、購買申請(qǐng)、日?qǐng)?bào)周報(bào)等凡是原來手工流轉(zhuǎn)處理的行政表單。。人事管理類:員工培訓(xùn)安排、績效考評(píng)、職位變動(dòng)處理、員工檔案信息管理等。財(cái)務(wù)相關(guān)類:付款請(qǐng)求、應(yīng)收款處理、日常報(bào)銷處理、出差報(bào)銷、預(yù)算和計(jì)劃申請(qǐng)等.。客戶服務(wù)類:客戶信息管理、客戶投訴、請(qǐng)求處理、售后服務(wù)管理等。?

工作流實(shí)現(xiàn)方式目前常見的工作流程有兩種方式:?

。通過狀態(tài)字段實(shí)現(xiàn)流程控制。原始,適合簡單流程控制。?

。工作流引擎實(shí)現(xiàn)流程控制。適用場景更廣泛,擴(kuò)展性更好?

有哪些工作流框架??

目前市面上主流的開源流程引擎主要有 Activiti、Flowable,CamundajBPM,jflow, oworkflow等。現(xiàn)在我們對(duì)這些開源流程框架進(jìn)行調(diào)研和分析。?

1.Activiti?

Activiti 由 Alfresco 公司開發(fā),目前最高版本為 Activiti cloud 71.0?

其中 activiti5 和 activiti6 的核心 leader 是 Tijs Rademakers,由于團(tuán)隊(duì)內(nèi)部分歧,2017 年 Tijs Rademakers 離開團(tuán)隊(duì),創(chuàng)建?

了后來的 Flowable。?

activiti6 以及 activiti5 代碼則交接給 Salabov 團(tuán)隊(duì)維護(hù),activiti6 以及 activiti5 的代碼官方已經(jīng)暫停維護(hù)。往后 Salaboy 團(tuán)開發(fā)了 activiti7 框架,ativiti7 內(nèi)核使用的還是 activiti6,并沒有為引擎注入更多的新特性,只是在 Activiti 之外的上層封裝了?

些應(yīng)用。?

直到 Activiti cloud710版本,Activiti coud 將系統(tǒng)分為 Runtime Bundle、 Audit Service Query Service、 CloudConnectors、Application Service、 Notification Service。這些工作的主要目的其實(shí)就是為了上云,減少對(duì) Activiti 依賴的糖合,需要使用Activiti的系統(tǒng)只需要通過調(diào)用 http 接口的方式來實(shí)現(xiàn)工作流能力的整合,將工作流業(yè)務(wù)托管上云2.Flowable?

Flowable ?

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

開發(fā)團(tuán)隊(duì)是從Activiti 中分裂出來的,修復(fù)了一眾activiti6 的 bug,并在其基礎(chǔ)上實(shí)現(xiàn)了 DMN 支持,BPEL 支持等。?

相對(duì)開源版,其商業(yè)版的功能會(huì)更強(qiáng)大。Flowable 是一個(gè)使用Java 編寫的輕量級(jí)業(yè)務(wù)流程引擎,使用 Apache V2 license 協(xié)議開源。2016年10月,Activiti工作流擎的主要開發(fā)者離開 Alfresco 公司并在 Activiti分支基礎(chǔ)上開啟了 Flowable 開源項(xiàng)目。Flowable 項(xiàng)目中包括 BPMN (Business Process Model and Notation)引擎CMMN (Case Management Modeland Notation)引擎、DMN (Decision Model and Notation) 引擎和表單引擎 (Form Engine) 等模塊。?

3.Camunda?

Camunda 基于activiti5,所以其保留了 PVM,最新版本Camunda7.17,開發(fā)團(tuán)隊(duì)也是從activiti 中分裂出來的,發(fā)展軌與Flowable 相似。?

通過壓力測試驗(yàn)證 Camunda BPMN 引擎性能和穩(wěn)定性更好。功能比較完善,除了BPMN,Camunda 還支持 CMMN(案例管理)和 DMN (決策自動(dòng)化)。Camunda 不僅帶有引擎,還帶有非常強(qiáng)大的工具[6],用于建模、任務(wù)管理、操作監(jiān)控和用戶管理?

jBPM?

BPM 由JBoss 公司開發(fā),目前最高版本 7.61.0.Final,不過從BPM5開始已經(jīng)限之前不是同一個(gè)產(chǎn)品了,BPM5 的代碼基礎(chǔ)不是jBPM4,而是從 Drools Flow 重新開始,基于 Drools Flow 技術(shù)在國內(nèi)市場上用的很少,jBPM4 誕生的比較早,后來jBPM4創(chuàng)建者 Tom Baeyens 離開JBoss 后,加入 Alfresco 后很快推出了新的基于jBPM4 的開源工作流系統(tǒng) Activiti,另外jBPM 以Hibernate 作為數(shù)據(jù)持久化 ORM,而 Hibernate 也已不是主流技術(shù)mikechen的互聯(lián)網(wǎng)架松首頁架構(gòu)視頻技術(shù)文章面試題庫問答社區(qū)。?

JFlow?

Jflow是一個(gè)國產(chǎn)的開源工作流引擎,與業(yè)務(wù)場景結(jié)合緊密,再帶表單引擎,數(shù)據(jù)表較多,中文概念較多,可配置型性強(qiáng),支持作為中間件模式的集成。配置點(diǎn)集中在,節(jié)點(diǎn)屬性,流程屬性,方向條件。概念名詞比較清晰,文檔全面。有qq群技術(shù)支持。?

流程設(shè)計(jì)器界面干凈,從節(jié)點(diǎn)類型分類,分流,合流,分合流,子線程等等。表單與流程完美結(jié)合,與其它幾款流程引擎設(shè)計(jì)理念不同。Jflow更適用,貼近用戶操作。?

表單引擎中的精華是審核組件,滿足國內(nèi)審批要求的需求,退回,分合流審核,會(huì)簽,并行處理,隊(duì)列處理,概念清晰,容易理解。?

osworkflow ?

是一個(gè)輕量化的流程引擎,基于狀態(tài)機(jī)機(jī)制,數(shù)據(jù)庫表很少,osworkflow 提供的工作流構(gòu)成元素有: 步驟?

(step) 、條件(conditions) 、循環(huán)(loops) 、分支(spilts) 、合并 joins)等,但不支持會(huì)簽、跳轉(zhuǎn)、退回、加簽等這些?

操作,需要自己擴(kuò)展開發(fā),有一定難度。如果流程比較簡單,osworkflow 是很好的選擇?

標(biāo)簽: 流程控制 信息管理

上一篇:變頻電源維修要怎么做(變頻電源故障原因是什么)
下一篇:環(huán)球觀焦點(diǎn):[c++實(shí)踐]內(nèi)存對(duì)齊與偽共享