目錄
簡單介紹
主要組件與名詞介紹
常見名詞解釋
核心組件介紹
一些思考
與前端的關系
前端邏輯的簡化
后端接口的專注
流程引擎的控制作用
數據和狀態的管理
監控和管理的集中化
參考資料
簡單介紹
????????Camunda的本質是可以獨立運行的一套流程引擎,流程引擎會根據預先設定(類似流程圖內的流程圖)好的規則和邏輯進行流程執行。
主要組件與名詞介紹
常見名詞解釋
- BPMN :即業務流程模型和標記,是一種業界標準的流程建模語言。Camunda 支持完整的 BPMN 2.0 規范,包括事件、網關、任務、序列流、消息流等元素,可用于對各種業務流程進行建模和執行
- DMN :是決策建模和執行標準,可將決策和業務規則轉化為可執行的決策表和決策模型。Camunda 支持完整的 DMN 規范,通過決策引擎來執行 DMN 模型,實現基于規則的決策自動化。
- CMMN :即案例管理模型和標記,是一種案例建模和執行標準。Camunda 支持 CMMN 規范,能夠將業務場景和復雜流程轉化為可執行的案例圖和案例模型,適合處理靈活多變的業務場景。
- 流程定義 :是對業務流程的建模和描述,通常以 BPMN 2.0 XML 文件的形式存在。它定義了流程的步驟、流轉規則、參與角色等信息,是流程引擎執行流程的依據。
- 流程實例 :是流程定義的一次具體執行。當流程引擎啟動一個流程實例時,會根據流程定義中的規則和邏輯來執行相應的任務和操作,直到流程結束。
- 任務 :是流程中的一個具體工作單元,可以是自動任務(如服務任務)或人工任務(如用戶任務)。任務的執行可以由系統自動完成,也可以由人工干預完成。
- 消息事件 :當流程引擎監聽到特定的消息事件時,會觸發相應的流程或任務,并調用對應的接口。例如,在一個訂單狀態更新流程中,當接收到訂單狀態變更的消息時,流程引擎會調用接口來更新訂單狀態并執行后續相關操作。
核心組件介紹
- Process Engine(流程引擎) :是 Camunda 的核心組件,負責解析、執行和管理業務流程。它實現了 BPMN 2.0 標準中定義的所有元素和規則,并提供了豐富的 API 和服務,包括服務如
RepositoryService
,用于管理和操作部署和流程定義;RuntimeService
,用于流程實例的啟動、刪除和搜索等操作;TaskService
,用于處理任務相關的操作,如完成、分發、認領等;HistoryService
,提供引擎搜集的歷史數據;IdentityService
,用于用戶認證和授權等。 - Decision Engine(決策引擎) :用于執行基于 DMN(決策模型和標記)標準的決策表。它可以與流程引擎一起使用,也可以作為獨立的引擎使用,能夠根據業務規則和數據進行決策,并將決策結果反饋到流程中。
- Modeler :是 Camunda 的流程建模工具,用于創建、編輯和部署 BPMN 2.0 流程圖和 DMN 決策表。它提供了圖形化界面,使用戶能夠通過拖拽等方式輕松地設計復雜的業務流程,并將設計好的流程圖和決策表直接部署到流程引擎中執行。
- Rest API :提供了對流程引擎的訪問和操作接口,支持 JSON 和 XML 格式的數據交換,方便外部系統與 Camunda 的集成。通過 Rest API,前端應用或其他服務可以與 Camunda 進行交互,如啟動流程實例、查詢狀態、管理任務及部署定義等。
- Job Executor(作業執行器) :是一個調度組件,負責執行異步任務、定時任務、重試機制等,以確保流程引擎的穩定性和高可用性。例如,當流程中包含定時器事件時,作業執行器會在指定時間觸發相應的任務。
一些思考
與前端的關系
????????是不是相當于之前可能需要前端控制的邏輯轉移到了流程引擎這里,后端只需要寫對應流程需要的接口即可,不需要關注中間的調用過程
????????在傳統的系統設計中,前端需要對業務流程的邏輯進行大量的控制,例如判斷用戶當前處于哪個流程步驟、應該展示什么內容、在用戶完成某個操作后應該調用哪個接口等。而引入流程引擎后,這種情況發生了變化:
前端邏輯的簡化
- 前端主要負責用戶界面的展示和用戶交互。例如,展示流程任務列表、表單等界面元素,以及處理用戶的點擊、提交等操作。
- 對于流程的控制邏輯,如判斷用戶當前可以執行哪些任務、任務完成后應該進行什么操作等,前端不再需要過多地參與。前端只需要根據流程引擎返回的任務信息,展示相應的任務給用戶,并在用戶完成任務后將結果提交給流程引擎即可。
后端接口的專注
- 后端主要負責提供業務邏輯的實現,即編寫各種接口來完成具體的業務操作。例如,用戶注冊接口、訂單處理接口、數據查詢接口等。
- 后端不再需要關注這些接口在業務流程中的調用順序和條件,接口的調用邏輯由流程引擎根據流程定義來控制。這使得后端可以更加專注于接口功能的實現和優化。
流程引擎的控制作用
- 流程引擎作為核心的流程控制中心,負責解析流程定義、跟蹤流程實例的執行狀態,并根據預設的規則來決定何時調用哪個接口。
- 當流程執行到某個步驟時,流程引擎會根據流程定義中的配置,如服務任務、消息事件等,自動調用相應的后端接口來完成業務操作。
- 流程引擎還會將接口的執行結果反饋到流程中,以便流程繼續執行后續的步驟,實現整個業務流程的自動化和高效執行。
數據和狀態的管理
- 流程引擎負責流程實例和任務的狀態管理,將這些狀態信息持久化到數據庫中。前后端可以根據流程引擎提供的 API 來獲取流程和任務的狀態信息,而不需要自己維護復雜的流程狀態數據。
- 在前端,可以通過調用流程引擎的 API 來獲取當前用戶可執行的任務列表,然后展示給用戶。在后端,可以通過流程引擎傳遞的參數和上下文信息,獲取當前流程執行的上下文數據,以便正確地執行業務邏輯。
監控和管理的集中化
- 流程引擎提供對整個流程的監控和管理功能,方便管理員實時查看流程的執行情況、任務的分配和完成狀態等。
- 通過流程引擎的管理界面或 API,可以對流程進行暫停、掛起、終止等操作,以便在需要時對流程進行干預和調整。這使得對業務流程的管理和監控更加集中和高效。
參考資料
開源流程引擎Camunda-阿里云開發者社區
Download Camunda | Get Started for Free
SpringBoot 優雅集成 Camunda 7以上 工作流引擎,保姆級教程!_springboot + camunda 教程-CSDN博客
下載 Camunda Modeler下載 Camunda BPMN / DMN 流程建模器 |卡蒙達