<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          工作流引擎技術(shù)介紹-Flowable介紹

          共 4346字,需瀏覽 9分鐘

           ·

          2021-10-12 18:00



          01


          Flowable是什么?


          ?官方定義:Flowable是一個(gè)使用Java編寫的輕量級(jí)業(yè)務(wù)流程引擎。Flowable流程引擎可用于部署B(yǎng)PMN 2.0流程定義(用于定義流程的行業(yè)XML標(biāo)準(zhǔn)), 創(chuàng)建這些流程定義的流程實(shí)例,進(jìn)行查詢,訪問運(yùn)行中或歷史的流程實(shí)例與相關(guān)數(shù)據(jù)。

          ? 這里可知,它是用JAVA寫的輕量級(jí)業(yè)務(wù)流程,用BPMN 2.0描繪流程,提供了創(chuàng)建流程定義的流程實(shí)例,查詢,訪問運(yùn)行中或歷史的流程實(shí)例與相關(guān)數(shù)據(jù)的一套引擎服務(wù)。

          ?在官網(wǎng)的案例中,列舉了對(duì)客戶訂單生命周期管理、構(gòu)建貸款自動(dòng)化流程、銀行保險(xiǎn)數(shù)字化等參考方向。當(dāng)然更常見的例子,比如人事流程的入職、請(qǐng)假、工時(shí)填報(bào),物流訂單、倉庫儲(chǔ)存、生產(chǎn)線管理等等。

          ? 誠(chéng)然我們都可以用代碼實(shí)現(xiàn)所有流程控制,但選擇Flowable使用模型而不是代碼來描述解決方案的主要原因之一是,可以輕松共享對(duì)所描述內(nèi)容的理解,并且易于快速更改。以貸款申請(qǐng)流程為例虛擬個(gè)流程。虛擬貸款流程很簡(jiǎn)單:

          • 發(fā)起人填寫基礎(chǔ)信息后會(huì)根據(jù)貸款額流轉(zhuǎn);

          • 高于13W貸款額會(huì)額外需要查詢社會(huì)征信;

          • 銀行征信與社會(huì)征信審核確認(rèn)后會(huì)流轉(zhuǎn)到貸款申請(qǐng)審核。





          ??? 這樣我們就用流程圖把貸款過程串聯(lián)起來了,如果需要我們甚至能處理查詢接口。而相應(yīng)節(jié)點(diǎn)需要處理的表單信息則可以由表單引擎渲染,也可以由業(yè)務(wù)代碼處理。



          ?進(jìn)一步,既然是貸款,必要的風(fēng)控是少不了的。風(fēng)險(xiǎn)評(píng)估、風(fēng)險(xiǎn)監(jiān)控、風(fēng)險(xiǎn)分析、策略產(chǎn)生、處罰處置、申訴核實(shí)等。決策中心是風(fēng)控平臺(tái)的大腦。繼而,我們就需要利用到規(guī)則引擎(決策引擎)。


          ??借用流程引擎,我們可以很輕松的描繪出流程,以及實(shí)現(xiàn)它,并很好的管理整個(gè)流程生命周期。 我們可以根據(jù)實(shí)際需求,不斷細(xì)化和完善流程。


          tips:這里提前說明下吧,流程圖畫的簡(jiǎn)潔,那是因?yàn)槲覀儼殉坊亍Ⅰg回這些通用的操作,都隱藏在邏輯里了,業(yè)務(wù)界面按需調(diào)用接口即可。(遇到很多人,并不了解這塊,當(dāng)然所有操作都通過連線也有其合理性,這里只是說明并不是那些線條交錯(cuò)的,才顯得業(yè)務(wù)復(fù)雜,才顯得很牛逼。



          02





          Flowabl功能


          ??? flowable基于activiti6衍生出來的版本,flowable目前最新版本是v6.7.0,開發(fā)團(tuán)隊(duì)是從activiti中分裂出來的,修復(fù)了一眾activiti6的bug,并在其基礎(chǔ)上研發(fā)了DMN支持,BPEL支持等等,相對(duì)開源版,其商業(yè)版的功能會(huì)更強(qiáng)大。以flowable6.4.1版本為分水嶺,大力發(fā)展其商業(yè)版產(chǎn)品,開源版本維護(hù)不及時(shí),部分功能已經(jīng)不再開源版發(fā)布,比如表單生成器(表單引擎)、歷史數(shù)據(jù)同步至其他數(shù)據(jù)源、ES等。官方網(wǎng)站:https://flowable.com/open-source/

          ? 其實(shí)從歷史版本也能看出來,F(xiàn)lowable發(fā)展過來,已經(jīng)不單單關(guān)注流程引擎部分開發(fā),而是以流程引擎為基礎(chǔ),衍生到?jīng)Q策引擎、表單引擎、案例模型引擎等其他大功能模塊開發(fā)。個(gè)人認(rèn)為Flowable作者方向是非常對(duì)的。(文末有部分版本演進(jìn)說明)



          快速體驗(yàn)原生設(shè)計(jì)器:

          docker run -p8080:8080 flowable/flowable-ui

          訪問:http://localhost:8080/flowable-ui 賬號(hào):admin ?密碼:test

          登錄進(jìn)去,可以看到4大模塊,在版本6.7中漢化已經(jīng)比較完善了。

          1.任務(wù)應(yīng)用用來發(fā)起流程或者案例,及處理任務(wù)。


          2.建模器顧名思義就是用來畫流程圖或者案例圖,建表單或者決策表及應(yīng)用的

          這里我們能看到Flowable原生核心五大部分。

          業(yè)務(wù)流程引擎(BPMN)(Business Process Model and Notation)、

          表單引擎(Form Engine)

          案例模型引擎(CMMN)(Case Management Model and Notation)、

          決策引擎(DMN)(Decision Model and Notation)

          內(nèi)容引擎(Content Engines)




          3.管理員應(yīng)用程序,就是用來以管理員視角管理流程或者案例任務(wù)的。


          4.身份應(yīng)用程序,用來管理用戶體系,包括用戶信息、組信息和對(duì)應(yīng)權(quán)限信息。




          官方博客也給出了一個(gè)不錯(cuò)的CMMN 案例:

          案例描述索賠場(chǎng)景,有3個(gè)連續(xù)的階段:收到索賠,調(diào)查索賠,然后處理索賠。流轉(zhuǎn)這個(gè)例子可以把案例模型、流程模型、表單模型、決策表模型以及四大模塊都能夠熟悉一遍。


          此外從6.5版本引入事件注冊(cè)表也是非常值得關(guān)注的。

          Flowable 事件注冊(cè)表支持從任何來源接收和發(fā)送事件,并為 JMS、Kafka 和 RabbitMQ 提供開箱即用的支持。此外,可以通過 HTTP 接收事件。



          03


          Flowable版本歷史



          版本5.22.0 ?

          • 瞬態(tài)變量

          原先所有變量都是?持久化的。這意味著變量和值存儲(chǔ)在數(shù)據(jù)存儲(chǔ)中,并保留歷史審計(jì)數(shù)據(jù)。瞬態(tài)變量則不必。瞬態(tài)變量只會(huì)存活到下一個(gè)“等待狀態(tài)”。


          版本6.0.0.RC1?

          • 分離身份功能?至IDM 引擎

          • 支持非中斷事件子流程

          • 分解模塊:Flowable Modeler(建模存儲(chǔ)、BPMN、表單、DMN 編輯器)、 Flowable IDM(可以使用 disableIdmEngine 屬性禁用)、Flowable Admin

          • 引入docker

          • Hibernate邏輯改寫MyBatis?


          版本6.0.0 - 版本6.0.1?

          • BPMN XML添加了?Flowable 命名空間的支持

          • DMN 引擎中的更多命中策略支持。

          版本6.1.0 - 版本6.2.1

          • 異步歷史,引入分組和壓縮

          • 引入新的 DMN 決策表編輯器,引入審計(jì)歷史,?MVEL 表達(dá)式語言替換JUEL 表達(dá)式語言。

          • 引入新的 CMMN 引擎,添加了 CMMN 編輯器,提供計(jì)時(shí)器支持、重復(fù)、DMN 和 HTTP 任務(wù)支持以及變量查詢支持。

          • 表單構(gòu)建器和渲染器的幾個(gè)新增內(nèi)容


          版本6.3.0

          BPMN

          • 動(dòng)態(tài)任務(wù)和子流程注入到正在運(yùn)行的流程實(shí)例中

          • 支持基于事務(wù)生命周期的事件偵聽器

          • HTTP 任務(wù):支持暫時(shí)存儲(chǔ)響應(yīng)變量

          • 多實(shí)例:在解析集合時(shí)支持 Iterable(例如 ArrayNode)

          CMMN

          • REST API 支持所有 CMMN 服務(wù)和操作

          • 支持異步服務(wù)任務(wù)

          • 支持手動(dòng)激活規(guī)則和通過運(yùn)行時(shí)服務(wù)啟用/手動(dòng)啟動(dòng)計(jì)劃項(xiàng)

          • 支持所需規(guī)則、支持自動(dòng)完成、支持完成中性

          • 添加了腳本任務(wù)類型

          • 支持用戶事件監(jiān)聽器

          • 支持在 Admin 應(yīng)用程序中查看和管理 CMMN 日期

          DMN

          • 支持集合表達(dá)式,例如 IN 和 NOT IN

          • 改進(jìn)了決策表編輯器的用戶體驗(yàn),可以更輕松地在特定規(guī)則中添加 JUEL 表達(dá)式

          • 支持在 Admin 應(yīng)用程序中查看和管理決策執(zhí)行

          版本6.3.1 - 版本6.4.0

          • CMMN 引擎添加了異步歷史支持。

          • 添加scope屬性使作業(yè)服務(wù)更加通用,使可以不同作業(yè)類型運(yùn)行不同作業(yè)處理程序成為可能。

          • BPMN 引擎中添加了流程實(shí)例遷移的第一個(gè)版本

          • BPMN 和 CMMN 引擎添加了表達(dá)式支持(當(dāng)${customerNumber > 40} 之類的表達(dá)式中引用變量并且還沒有 customerNumber 變量時(shí),將引發(fā)異常,借助變量表達(dá)式${variables:getOrDefault(customerNumber, 0) > 0}可以更好的處理變量。)

          • 支持 MongoDB 持久

          • CMMN 引擎添加了計(jì)劃項(xiàng)生命周期偵聽器

          • 支持Duration 變量


          版本6.4.1

          • 添加了一個(gè)新表act_hi_tsk_log來跟蹤用戶/人工任務(wù)發(fā)生的更改。(在任務(wù)的受讓人、所有者或例如到期日期發(fā)生變化時(shí)創(chuàng)建。默認(rèn)情況下,用戶/人工任務(wù)日志記錄是禁用的,enableHistoricTaskLogging 屬性可以啟用

          • 添加了一個(gè)新的運(yùn)行時(shí)和歷史實(shí)體鏈接表來存儲(chǔ)父實(shí)體和所有子實(shí)體之間的關(guān)系。

          • 添加了運(yùn)行時(shí)活動(dòng)實(shí)例表

          • 多租戶改進(jìn)支持在租戶內(nèi)查找流程、案例、表單和決策表定義

          • CMMN一系列更新


          版本6.5.0

          • 添加新的事件注冊(cè)引擎,提供在事件驅(qū)動(dòng)架構(gòu)中使用 Flowable 的功能對(duì) JMS、Apache Kafka 和 RabbitMQ 提供開箱即用的支持。BPMN 開始事件、邊界事件和可觸發(fā)的發(fā)送事件任務(wù)可以接收事件。在 CMMN 中,事件偵聽器支持接收事件并用于啟動(dòng)新的案例實(shí)例。

          • 添加了使用鎖來控制創(chuàng)建數(shù)據(jù)庫和在啟動(dòng)時(shí)執(zhí)行自動(dòng)部署,確保當(dāng)同時(shí)啟動(dòng)多個(gè)服務(wù)器/節(jié)點(diǎn)時(shí),創(chuàng)建數(shù)據(jù)庫模式和自動(dòng)部署 CMMN XML 和 BPMN XML 文件等只會(huì)同時(shí)發(fā)生在一個(gè)服務(wù)器/節(jié)點(diǎn)上。

          • 添加了一個(gè)新的批處理服務(wù)以支持在一個(gè)批處理中執(zhí)行多個(gè)作業(yè),其中每個(gè)作業(yè)是一個(gè)批處理部分。Batch 服務(wù)的第一個(gè)用途是支持批處理流程實(shí)例遷移。

          • 添加事件注冊(cè)表啟動(dòng)事件的支持,以使用傳入事件觸發(fā)啟動(dòng)流程實(shí)例,其他邊界事件、發(fā)送事件支持。

          • 郵件任務(wù)得到了增強(qiáng),支持將內(nèi)容項(xiàng)作為附件發(fā)送。

          • CMMN和DMN相關(guān)增強(qiáng)。


          版本6.6.0

          BPMN

          • 當(dāng)重試用完時(shí),歷史作業(yè)現(xiàn)在移動(dòng)到死信作業(yè)表。

          • 添加了對(duì)事件注冊(cè)表支持的接收任務(wù)和中間捕獲事件的支持。

          • 可以為信號(hào)事件定義輸入和輸出參數(shù)

          • 屬于同一 Flowable 事務(wù)活動(dòng)實(shí)例添加事務(wù)順序值

          CMMN

          • 添加了對(duì)案例實(shí)例遷移的支持

          • Case 任務(wù)現(xiàn)在支持輸入和輸出參數(shù)映射。

          DMN

          • DMN 引擎中添加了對(duì)決策服務(wù)和 DRD(決策需求圖)的支持。



          版本6.7.0

          • 實(shí)現(xiàn)了全局鎖定機(jī)制,支持在具有多個(gè) Flowable 引擎的設(shè)置中更好地使用異步執(zhí)行器。同時(shí)異步執(zhí)行器默認(rèn)配置已更改為默認(rèn)情況下每秒能夠處理更多作業(yè)。

          • 添加對(duì)多實(shí)例變量聚合的支持。

          • 添加了對(duì)案例重新激活的支持,支持將歷史和已完成的案例實(shí)例重新激活到正在運(yùn)行的案例實(shí)例。

          • 添加了一個(gè)變量偵聽器,以允許 BPMN 和 CMMN 模型偵聽特定變量的更改并在模型中處理此觸發(fā)器。

          • 添加對(duì)并行觸發(fā)的 CMMN 引擎中的重復(fù)信號(hào)和通用事件偵聽器的支持。

          • 添加了對(duì) DMN 1.3 版本模型的支持。

          • 添加 JUEL/后端表達(dá)式中對(duì)方法重載的支持。

          • CMMN 引擎添加了基本的 CMMN 模型驗(yàn)證,添加了基本的 CDI 支持。

          • 改進(jìn)了運(yùn)行時(shí)和歷史流程以及案例實(shí)例查詢(包括變量)的分頁。


          • 升級(jí)到 Spring Boot 2.5.4 和 Spring 5.3.9



          瀏覽 496
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产视频在线一区 | 欧美性爱午夜视频 | 美女黄片 | 国产一线在线 | 国产毛片A |