色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是流程引擎?介紹流程引擎的架構設計方法

OSC開源社區 ? 來源:OSCHINA 社區 ? 作者:京東云開發者-馬瑞 ? 2022-10-20 09:59 ? 次閱讀

1 什么是流程引擎

流程引擎是一個底層支撐平臺,是為提供流程處理而開發設計的。流程引擎和流程應用,以及應用程序的關系如下圖所示。

f0bd2a48-4fc3-11ed-a3b6-dac502259ad0.png

常見的支撐場景有:Workflow、BPM、流程編排等。本次分享,主要從 BPM 流程引擎切入,介紹流程引擎的架構設計方法。

1.1 什么是流程

簡單來說,流程就是一系列活動的組合。比如,用于企業辦公的 OA 系統中,就存在大量的申請審批類的流程。在生產制造業,有大量的從銷售端的訂單,到生產制造,再到簽收回款的生產銷售流程。在機器學習領域,有亞馬遜 AWS Sagemaker 的大數據處理、機器學習的應用。綜上,流程是一個概念,在和具體實現結合時,就產生了不同的流程產品,如 DevOps、Spring Data Stream 等。

在流程實現方面,主要可以分為 2 種實現方式,一種是用代碼實現,比如:用代碼實現一個加班申請,那么就要自己對接 SSO 進行單點登錄,通過接口拿到發起人和審批人的信息,同時保存表單數據。另一種方式是使用流程引擎來實現,流程引擎對接應用場景所需數據,如加班申請,流程引擎對接 SSO、OU、審批人配置、權限等,實現這樣一個流程,只需要關心流程配置、流程節點和流程表單即可,流程流轉以及流程的數據處理,都通過流程引擎來完成。
流程引擎可以快速落地流程實現,這也是流程引擎存在的價值。

1.2 什么是引擎

一般而言,引擎是一個程序或一套系統的支持部分。常見的程序引擎有游戲引擎、搜索引擎、殺毒引擎等。引擎是脫離具體業務場景的某一類業務場景的高度抽象和封裝。

比如,某 OA 公司,封裝了一套審批用的 workflow,實施人員只需要配置流程和表單即可交付項目。再比如,美國某公司做了一個 AI 引擎做 NBA(Next Best Action)推薦,封裝了推薦領域的常用算法,在不同的場景自動選擇和組合多種算法,進行智能推薦。

1.3 流程設計器

流程設計器是流程和引擎的連接方,用戶通過流程設計器,將某種 layout 和 rule 固化成某種流程,然后通過數據和數據上下文,使用流程引擎自動按照某種固化的流程進行執行。

我將目前見到的流程設計器的理論基礎,分為以下三類:1,自定義系;2,UML 中的活動圖系;3,BPMN 系。

1.3.1 自定義系

用于 Sagemaker 等場景的 AWS Step Function(自定義流程節點)

f0d69410-4fc3-11ed-a3b6-dac502259ad0.png

1.3.2 UML Activity Diagram

Flowportal BPM 的流程設計器

f10183a0-4fc3-11ed-a3b6-dac502259ad0.png

1.3.3 BPMN 系

activiti 的流程設計器

f1364d4c-4fc3-11ed-a3b6-dac502259ad0.png

炎黃盈動的流程設計器

f1dad57e-4fc3-11ed-a3b6-dac502259ad0.png

題外話:炎黃盈動的流程設計器,和 processon 中的流程設計器界面幾乎一樣,因為本質上是一家的。

2 流程引擎的應用

2.1 Workflow

工作流管理聯盟 (Workflow Management Coalition,WfMC) 作為工作流管理的標準化組織而成立。

WfMC 對工作流給出定義為:工作流是指一類能夠完全自動執行的經營過程,根據一系列過程規則,將文檔、信息或任務在不同的執行者之間進行傳遞與執行。

f2019858-4fc3-11ed-a3b6-dac502259ad0.png

在 workflow 中,流程引擎主要用于支撐流程審批和數據流轉,應用場景非常廣泛。

國外產品(開源或商用)通常需求和操作比較簡單,不會有國內的需求那么復雜。國內的產品,經歷了眾多客戶的錘煉,功能目前都比較強大。

一般而言,workflow 使用場景最多的是 OA 產品。在 OA 辦公中,包含了企業辦公中的大量元素,這些元素足夠形成特定的產品,比如門戶系統、移動辦公。在 OA 的項目落地過程中,結合行業、業務側重點又可以形成行業解決方案和專題方案。

以下是某 OA 公司產品和解決方案。

f217367c-4fc3-11ed-a3b6-dac502259ad0.png

2.2 BPM(Business Process Management)

Workflow 主要是解決審批和數據流轉,而 BPM 主要是解決端到端、信息孤島等問題而存在的。大多數用 BPM 產品的客戶,都是在 BPM 基礎上進行系統搭建,比如在 BPM 上面搭建 OA、CRM、HR 等系統。

BPM 的使用場景,比 Workflow 更廣泛,BPM 產品中包含大量的和第三方系統交互的組件和自定義 SQL、代碼組件。比如,BPM 系統中的文件觸發器,可以在海關等交互場景下,通過監控 FTP 服務器中的文件,自動觸發流程實例;可以通過定時器 Timer,自動每日執行數據同步,并通過 Mail 節點將同步結果通知到相關運營成員等。

f22bd816-4fc3-11ed-a3b6-dac502259ad0.png

f274cfc6-4fc3-11ed-a3b6-dac502259ad0.png

BPM 的應用,可以按照執行前、執行中和執行后來劃分。

f2f5aa7e-4fc3-11ed-a3b6-dac502259ad0.png

2.3 流程編排

流程編排是脫離流程業務領域的更高一層抽象,使用方可以通過流程編排系統,結合自己的業務場景進行業務定制。比如,可以將相關業務代碼,封裝成 function,然后通過云廠商平臺的 FAAS 平臺,將不同業務的 function 進行關聯和調度,從而完成某項任務。

3 流程引擎的架構設計

鑒于一些朋友可能沒有使用和接觸過流程引擎,先介紹流程引擎的組成單元,再介紹基于某個 BPM 產品的項目是如何進行開發的。我們通過 BPM 項目開發,對流程引擎的作用有個初步的認識。

3.1 BPM 流程引擎的組成單元

組織、角色、用戶、成員的組織架構托管;

流程資源文件的配置、校驗、存儲和執行,對不同的流程節點,流程引擎自動結合配置、數據處理其對應的業務邏輯,流程數據自動處理;

表單配置、數據綁定,表單數據的根據流程配置自動處理;

通用的數據接口;

3.1.1 組織架構的設計

f31d103c-4fc3-11ed-a3b6-dac502259ad0.png

3.1.2 流程設計器

流程設計器包含左側的分組節點列表,和右側的畫布。左側的節點可以如下進行設計。

f333e67c-4fc3-11ed-a3b6-dac502259ad0.png

問題:對于一個 XML 或 JSON 格式的流程圖,如何進行解析?

不同的節點,按照不同的業務場景,配置不同的配置項。比如,對于 Human Node 需要配置審批人,配置審批環節的展示表單,審批環節能夠修改哪些字段,哪些字段的修改要進行留痕等。

3.1.3 表單設計器

f34e6966-4fc3-11ed-a3b6-dac502259ad0.png

f480f5b0-4fc3-11ed-a3b6-dac502259ad0.png

這種是按照表單相關數據表,生成出一個表單,然后對表單字段進行配置和數據綁定。

f4b725ae-4fc3-11ed-a3b6-dac502259ad0.png

f4ee9ba6-4fc3-11ed-a3b6-dac502259ad0.png

這種是 Drag&Drop 控件,然后配置控件的屬性,如綁定字段等。

f51d7d04-4fc3-11ed-a3b6-dac502259ad0.png

這種是 Drag&Drop 控件,無需關聯數據庫表字段的表單

f53f939e-4fc3-11ed-a3b6-dac502259ad0.png

數據表生成表單的概要流程如下圖所示。

f575269e-4fc3-11ed-a3b6-dac502259ad0.png

拖拽控件綁定數據表字段的概要流程如下。

f5e3ea34-4fc3-11ed-a3b6-dac502259ad0.png

拖拽控件無需綁定數據表字段的概要流程。使用 NoSQL 的 Document 記錄或使用 RDS 提供的 JSON 類型進行保存會比較方便。

f64138b0-4fc3-11ed-a3b6-dac502259ad0.png

3.1.4 接口設計

結合 Activity 的接口設計,如下圖所示

f6532476-4fc3-11ed-a3b6-dac502259ad0.png

一些系統在創建一個流程任務的時候,要先按照流程模板先創建一個應用示例,再關聯發起人和備注,調用 RuntimeService,執行到 StartNode,這類設計因人而異,這么做略顯繁瑣。

3.2 基于流程引擎的項目開發實踐

3.2.1 流程項目實踐流程

確定組織架構

確定流程,包括流程布局、審批人設置、權限

確定表單信息(字段、類型、數據源、校驗規則)和表單樣式

確定頁面布局、樣式、數據字段、搜索、導入、導出

報表

3.2.2 組織架構

組織架構實現,有兩種方法,一種是按照維度進行數據管理,另一種是在同一棵組織架構樹下進行管理。

按照集團、公司、部門、用戶等不同維度,進行數據管理,比較常見,這里不做討論。下圖為按維度維護數據的示例。

f67575b2-4fc3-11ed-a3b6-dac502259ad0.png

按照同一棵組織架構樹進行數據維護,界面一般顯示為左樹右表。大多數商業化產品,都會將此組織架構樹進行內存緩存,以方便審批人查找、開窗選擇 OrgUnit、Role、User、Member 等場景。Member 的引入是為了解決一人多職等場景。一般發起流程的時候,需要帶出發起人擁有的 Member 列表,從而后續節點取合適的審批人。

f6aa5a5c-4fc3-11ed-a3b6-dac502259ad0.png

對于組織架構而言,需要考慮,系統本身要具備 OU 存儲的能力,對于沒有組織架構的用戶,可以直接在系統的組織架構中新建組織架構。同時,對于已有系統的客戶,可以通過組織架構數據同步來進行數據自動維護。對于用 AD 域內部管控的客戶來說,需要具備 AD 域身份認證的能力。對于復雜場景,比如用戶是 SaaS 化等復雜場景,組織架構也需要在系統內部,支持使用 API 的方式來獲取組織信息。

所以在組織架構設計的時候,要使用插件的方式來做,具體使用哪種插件,可以在配置文件中進行配置。以下為一個商業產品的組織架構操作界面示例。

f6cdae94-4fc3-11ed-a3b6-dac502259ad0.png

常見的組織架構操作還有組織架構同步,比如流程系統同步微信企業號、釘釘等,這里不再展開。

3.2.3 流程設計

我們想象的流程,可能是向下面的這種簡單流程。

f6dc2ee2-4fc3-11ed-a3b6-dac502259ad0.png

而實際項目,碰到的流程,一般是如下圖所示的情景。

f6f8c016-4fc3-11ed-a3b6-dac502259ad0.png

初步看幾個流程的模型文件是什么樣的,先有個印象。

f7170ddc-4fc3-11ed-a3b6-dac502259ad0.png
















${employeeName} would like to take ${numberOfDays} day(s) of vacation (Motivation: ${vacationMotivation}).










management






${vacationApproved == 'true'}





${vacationApproved == 'false'}



Your manager has disapproved your vacation request for ${numberOfDays} days.
Reason: ${managerMotivation}












${employeeName}






${resendRequest == 'true'}


${resendRequest == 'false'}



一個屏幕截圖都截不完的流程,如果用代碼去實現整個流程,其工作量和效率,可想而知。而實際做項目,使用基于流程引擎的產品來做項目的時候,只需要確定節點、節點配置、數據配置和權限即可。

問題:一般流程,都帶有郵件通知的節點,如何實現郵件通知節點?請考慮以下情景。

流程流轉和執行的時候,會遇到各種情況的錯誤,比如找不到審批人等,此時流程引擎要對數據做 rollback,而郵件通知節點的業務邏輯已經執行過了。

權限方面,對于流程資源,哪些部門可以申請,哪些角色不可申請,都應該做流程控制。而在流程執行過程中,流程數據、不是路程的相關人也都不應該看到流程,處理過流程的審批人,不可以再對流程進行處理等,都是權限方面要考慮的問題。

3.2.4 表單設計

如下圖所示的表單,可以分析以下,一個流程表單有多個主表信息和多個子表信息。一般而言,如果是通過流程引擎做非流程的數據處理,子表通過主表 ID 來做關聯,如果通過流程引擎做流程的數據處理,子表和主表通過 TaskId 來做關聯。以下為示例。

f736a192-4fc3-11ed-a3b6-dac502259ad0.png

流程系統需要表單設計器,一個流程的不同節點可以掛接不同的表單,以方便不同角色的人關注不同維度的流程信息

3.2.5 頁面設計

一般而言,對于流程的發起、審批、歷史記錄等,都是通用的系統界面。而一些業務場景,需要單獨做列表界面,以方便使用。對于已有門戶系統的客戶,需要融合其界面樣式。以下為曾經做過的項目示例。

f79892f8-4fc3-11ed-a3b6-dac502259ad0.png

f7f89022-4fc3-11ed-a3b6-dac502259ad0.png

3.2.6 報表

由于不是所有客戶都有報表系統,所以流程系統需要具備一個基本的報表功能。下圖為示例。

f877db34-4fc3-11ed-a3b6-dac502259ad0.png

有報表系統的客戶,可以使用其商業版報表系統,獲取(直接取、數倉)數據進行展示。常見的報表系統有 FineReport、Tableau、PowerBI 等。

3.3 BPM 流程引擎架構設計

3.3.1 流程引擎的架構設計

f8866ec4-4fc3-11ed-a3b6-dac502259ad0.png

3.3.2 發起流程

f89f87c4-4fc3-11ed-a3b6-dac502259ad0.png

流程引擎處理過程

f922a820-4fc3-11ed-a3b6-dac502259ad0.png

執行節點處理過程

f93c1c6a-4fc3-11ed-a3b6-dac502259ad0.png

問題:在流程引擎處理過程中,如果一個節點有多條連線,如何尋找 FromNodeId 是某個 Node 的連線?

人工處理時,指定連線 text

3.4 流程引擎架構設計

f9724790-4fc3-11ed-a3b6-dac502259ad0.png

3.4.1 業務識別

識別業務場景中的配置項,使用集合或分組的方式,讓業務可配置

支撐業務流程過程的可配置化

支撐業務場景中的數據,自動處理

3.4.2 流程引擎的實現

資源相關服務,資源加載,資源保存,資源加密等

配置項相關服務

PVM 虛擬機的實現,即通過某個節點(發起時為開始節點)作為初始節點,按照某個連線的 action 進行節點的自動執行的虛擬機

數據配置、數據權限

流程數據和業務數據的自動處理

4 商業機會

Business Process Analysis (BPA) 流程分析,幫助企業進行流程調整和優化

Process Assets Library(PAL)流程資產庫,對企業流程進行知識化沉淀,將制度和流程落地做綁定,讓審批人知曉流程中對應的職責

Process Simulate 流程模擬,自動化測試

Process Forecast 流程預測

低代碼平臺

更廣泛的機會,在于業務領域 + 流程引擎,比如:DevOps、RPA、應用與服務編排、數據編排、FaaS 編排等。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CRM
    CRM
    +關注

    關注

    1

    文章

    145

    瀏覽量

    21134
  • BPM
    BPM
    +關注

    關注

    0

    文章

    24

    瀏覽量

    8092
  • SSO
    SSO
    +關注

    關注

    0

    文章

    9

    瀏覽量

    7507

原文標題:流程引擎的架構設計

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Vivado之實現布局布線流程介紹

    一、前言 本文將介紹Vivado進行綜合,以及布局布線的內部流程,熟悉該流程后結合Settings中對應的配置選項,對于時序收斂調試將更具有針對性。 二、Implementation(實現) 實現
    的頭像 發表于 12-06 09:08 ?433次閱讀
    Vivado之實現布局布線<b class='flag-5'>流程</b><b class='flag-5'>介紹</b>

    數字設計ic芯片流程

    主要介紹芯片的設計流程 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? &
    發表于 11-20 15:57 ?0次下載

    容器云服務引擎是什么意思?

    容器云服務引擎是什么意思?容器云服務引擎是一種基于云原生架構的容器編排工具,能夠幫助用戶快速構建、部署和管理容器化應用。它支持容器化應用的全生命周期管理,包括部署、管理和擴展,旨在簡化云原生應用的操作過程。
    的頭像 發表于 10-19 17:08 ?185次閱讀

    了解Davinci預覽引擎

    電子發燒友網站提供《了解Davinci預覽引擎.pdf》資料免費下載
    發表于 10-15 09:56 ?0次下載
    了解Davinci預覽<b class='flag-5'>引擎</b>

    容器云服務引擎是什么?如何使用

    架構的容器編排工具,能夠幫助用戶快速構建、部署和管理容器化應用。通過遵循上述使用方法,用戶可以充分利用其提供的各項功能來優化和管理自己的容器化應用。
    的頭像 發表于 09-30 10:17 ?198次閱讀

    視頻引擎初始化失敗怎么回事

    其他視頻軟件 診斷方法 :檢查系統中是否安裝了其他視頻播放或編輯軟件,這些軟件可能會與當前視頻引擎沖突。 解決方法 :嘗試卸載或禁用這些軟件,然后重新啟動視頻引擎。 1.2 系統更新
    的頭像 發表于 09-18 18:18 ?1307次閱讀

    專用集成電路設計流程包括 專用集成電路的特點包括

    專用集成電路(ASIC)設計流程是指將特定應用需求轉化為硅芯片的過程。下面將詳細介紹ASIC設計流程,并進一步探討ASIC的特點。 一、ASIC設計流程: 需求分析:確定設計要求和功能
    的頭像 發表于 05-04 15:00 ?646次閱讀

    在e2 studio中安裝QE的流程介紹

    在e2 studio中安裝QE的流程介紹
    的頭像 發表于 04-04 08:05 ?544次閱讀
    在e2 studio中安裝QE的<b class='flag-5'>流程</b><b class='flag-5'>介紹</b>

    開放原子開源大賽—基于OpenHarmony的團結引擎應用開發賽正式啟動!

    “基于OpenHarmony的團結引擎應用開發賽”是開放原子全球開源大賽下開設的新興及應用賽的賽題之一,本次賽題旨在鼓勵更多開發者基于OpenHarmony 4.x版本,使用Unity中國團結引擎
    發表于 03-13 10:45

    郵輪引擎守望者:德承開放式架構平板電腦助力郵輪引擎狀態監測

    引擎監控系統、動力管理系統、船舶安全系統….等,嚴密監控郵輪運行狀況。 Cincoze?的客戶是一家中歐知名的系統整合商,使用德承開放式架構平板電腦CO-W121C/P2102E,進行郵輪引擎的監控。通過連接多個傳感器,能接收
    的頭像 發表于 03-04 14:12 ?252次閱讀
    郵輪<b class='flag-5'>引擎</b>守望者:德承開放式<b class='flag-5'>架構</b>平板電腦助力郵輪<b class='flag-5'>引擎</b>狀態監測

    ANC項目流程

    介紹自動降噪ANC的調試流程
    發表于 01-31 09:22 ?3次下載

    AMD發布適用于Linux系統的XDNA驅動,助力APU AI引擎

    AMD于去年推出了Ryzen 7040“鳳凰城”系列APU,其中首次搭載了基于Xilinx IP的XDNA架構AI引擎。借助此引擎,PyTorch和TensorFlow等機器學習框架的運行速度得以顯著提高。
    的頭像 發表于 01-30 14:04 ?961次閱讀

    華為企業架構設方法及實例

    企業架構是一項非常復雜的系統性工程。公司在充分繼承原有架構方法基礎上,博采眾家之長,融合基于職能的業務能力分析與基于價值的端到端流程分析,將”傳統
    發表于 01-30 09:40 ?899次閱讀
    華為企業<b class='flag-5'>架構設</b>計<b class='flag-5'>方法</b>及實例

    QE for CTSU驅動更新流程介紹

    QE for CTSU驅動更新流程介紹
    的頭像 發表于 01-10 08:06 ?601次閱讀
    QE for CTSU驅動更新<b class='flag-5'>流程</b><b class='flag-5'>介紹</b>

    OpenHarmony Sheet 表格渲染引擎

    引擎的公司僅僅只有幾家,如:騰訊文檔,金山文檔和谷歌文檔等。 在項目中引入 組件即可,使用方法如下: <element name=\"Sheet\" src
    發表于 01-05 16:32
    主站蜘蛛池模板: 超大号黑吊magnet| 国产亚洲精品网站在线视频| 嫩小xxxxbbbb| 久久日韩精品无码一区| 初中XXXXXL| jk制服喷水| 午夜伦理在线观看| 男男女女爽爽爽视频免费| 久久精品一本到东京热| 交换娇妻呻吟声不停中文字幕 | 久久4k岛国高清一区二区| 国产亚洲免费观看| 国产在线AV一区二区香蕉| 国产伊人久久| 狠狠色香婷婷久久亚洲精品| 国产一区二区在线免费观看| 狠狠狠的在啪线香蕉| 精品亚洲视频在线观看| 久久国内精品| 久久99热这里只有精品66| 久久精品中文字幕| 麻豆一区二区三区蜜桃免费| 黄片长版看嘛| 久久99r66热这里有精品| 久久久视频2019午夜福利| 久久久无码AV精品亚洲A片软件| 久久综合老色鬼网站| 精品国产国产精2020久久日| 久久黄色大片| 美女扒开尿口直播| 青柠在线观看免费全集 | 双手绑在床头调教乳尖| 暖暖免费观看日本在线视频| 欧美16一17sex性hd| 暖暖 免费 高清 日本视频大全| 色悠久久久久综合欧美99| 日本人娇小hd| 天美传媒色情原创精品| 免费果冻传媒2021在线观看| 免费观看99热只有精品| 麻豆精品传媒卡一卡二传媒短视频 |