Camunda BPM的總體架構介紹


 

前言

   Camunda是一個基於Java的框架,支持用於工作流和流程自動化的BPMN、用於案例管理的CMMN和用於業務決策管理的DMN。

  本篇文章我們僅考慮BPMN流程引擎,先不涉及CMMN和DMN引擎。就流程引擎而言,Camunda是一個靈活的工作流框架,它的核心是一個在Java虛擬機內部運行的原生BPMN 2.0流程引擎,因此它可以嵌入到任何Java應用程序或運行時容器中。Camunda與Java EE 集成,並可以與Spring Framework和Spring Boot完美匹配。

一、總體架構

  Camunda BPMS到底包括哪些功能,我們拿官方的一張架構圖進行解讀分析。
在這里插入圖片描述

1.從BPM應用維度看

  Camunda分為流程設計和流程運行兩個階段,見圖中最下方的藍色大箭頭,Model和Execute,按照這兩個階段,Camunda划分為兩大部分功能,對應設計階段的功能有 Modeler,對應運行階段的功能有Engine、TaskList、Cockpit、Admin。

2.從BPM功能維度看

  Camunda包括了流程設計器(Modeler)、流程引擎(Engine)、API接口(REST/Java API)、任務列表(TaskList)、流程管理控制台(Cockpit)、系統管理工具(Admin)。在Camunda商業產品中還包括了流程監控預警工具(Optimize)、流程協同設計工具(Cawemo)。這里重點先說一下Camunda流程設計器,支持兩種模式,一種是富客戶端的流程建模工具Camunda Modeler,需要在客戶端安裝;另一種是基於瀏覽器的流程設計器bpmn.io,這兩款軟件均開源。

3.從BPM角色維度看

  Camunda分為業務分析師、流程開發工程師、最終用戶、流程管理員、系統管理員這幾個角色,每個角色對應BPMS不同的功能。業務分析師、流程開發工程師使用流程設計器(Modeler)進行流程建模,最終用戶使用任務列表(TaskList)進行流程發起和審批,流程管理員使用流程管理控制台(Cockpit)進行流程管理,比如流程暫停恢復、流程異常干預等,系統管理員使用系統管理工具(Admin)進行系統管理,比如組織用戶管理、權限管理等。

二、集成能力

1.支持與Spring框架集成

  Camunda支持與spring框架集成,把 camunda-engine-spring框架引入到項目的maven模塊內,它可以與Spring 3、4或5版本一起使用,具體集成過程后面有文章單獨介紹。

2.支持與spring boot集成

  后面文章專題介紹

3.支持與CDI and Java EE 集成

  CDI (Context and Dependency Injection)是 Java EE6的標准和依賴注入,Camunda通過camunda-engine-cdi模塊集成可利用camunda引擎的配置和cdi的可擴展性。

4.支持與Runtime Container 集成

  支持與tomcat、JBoss等常見的運行容器集成。

三、部署架構

  Camunda BPM是一個靈活的框架,支持嵌入式、分布式、集群等多種部署模式。

1.嵌入式部署

  流程引擎以Jar包方式添加到應用程序中,通過這種方式,可以在應用程序生命周期中輕松啟動和停止流程引擎。

在這里插入圖片描述

2.基於web容器啟動,多應用共享

  流程引擎在運行時容器(Servlet容器、應用程序服務器等)中啟動,流程引擎作為容器服務提供,可以由容器內部署的所有應用程序共享。這種方式在實際應用場景中不多見。

在這里插入圖片描述

3.獨立部署,多應用共享

  在這種情況下,流程引擎獨立部署,通過網絡提供服務,網絡上運行的不同應用程序可以通過遠程通信通道與進程引擎交互,遠程訪問流程引擎的最簡單方法是使用內置的REST服務接口。在企業級流程中心部署架構中,這是一種最常見的部署模式,在現在的微服務部署架構中,也可以采取這種方式。
在這里插入圖片描述

4.集群部署

  為了提供擴展或故障轉移功能,流程引擎可以分布到集群中的不同節點,每個流程引擎實例都必須連接到共享數據庫。Camunda BPM不提供現成的負載平衡功能,可以采用nginx等第三方負載均衡軟件實現。
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM