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等第三方负载均衡软件实现。
Camunda BPM的总体架构介绍的更多相关文章
- 开源流程引擎Camunda BPM如何扩展数据库表
前言 在使用开源流程引擎(如:JBPM.Activiti.Flowable.Camunda等)的时候,经常会遇到这样的需求,我们需要按照业务需求增加一张数据库的表,而且这张表是跟工作流引擎有交互的(注 ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 基于Metronic的Bootstrap开发框架经验总结(8)--框架功能总体界面介绍
在前面介绍了一系列的<基于Metronic的Bootstrap开发框架经验总结>的随笔文章,随笔主要是介绍各个知识点的内容,对框架的总体性界面没有很好的阐述,本篇随笔主要介绍这个Boots ...
- 基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍
在前面介绍了一些关于最新基于MVC4+EasyUI的Web开发框架文章,虽然Web开发框架的相关技术文章会随着技术的探讨一直写下去,不过这个系列的文章,到这里做一个总结,展示一下整体基于MVC4+Ea ...
- Apache Mesos总体架构
http://developer.51cto.com/art/201401/426507.htm 1. 前言 同其他大部分分布式系统一样,Apache Mesos为了简化设计,也是采用了master/ ...
- Web Magic 总体架构
1.2 总体架构 WebMagic的结构分为Downloader.PageProcessor.Scheduler.Pipeline四大组件,并由Spider将它们彼此组织起来.这四大组件对应爬虫生命周 ...
- python源码学习(一)——python的总体架构
python源码学习(一)——python的总体架构 学习环境: 系统:ubuntu 12.04 STLpython版本:2.7既然要学习python的源码,首先我们要在电脑上安装python并且下载 ...
- MySQL高级第一章——架构介绍
一.简介 是一个经典的RDBMS,目前归属于Oracle 高级MySQL包含的内容: MySQL内核 SQL优化工程师 MySQL服务器的优化 各种参数常量设定 查询语句优化 主从复制 软硬件升级 容 ...
- MySQL高级学习笔记(三):Mysql逻辑架构介绍、mysql存储引擎
文章目录 Mysql逻辑架构介绍 总体概览 总体概览 mysql存储引擎 查看命令 看你的 mysql 现在已提供什么存储引擎 : 看你的 mysql 当前默认的存储引擎 : 各个引擎简介 MyISA ...
随机推荐
- django开发前准备工作
安装pip(python包管理器,类似npm) 安装virtualenv(python虚拟环境,可以形成一个版本隔绝的文件夹) virtualenv使用方法 1,virtualenv project ...
- c语言实现双链表的基本操作—增删改查
//初始化 Node*InitList() { Node*head=(Node*)malloc(sizeof(Node)); if(NULL==head) { printf("内存分配失败! ...
- mybatis-day1入门案例
首先应先创建maven工程 (jar包要导入,五个核心jar包) 如果测试运行时出现了不支持版本5,则要修改以下内容 类的路径如下 1.配置pom.xml依赖 <?xml version=&qu ...
- centos7.3 安装oracle 详细过程
centos7.3安装oracle详细过程1.下载Oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2 ...
- 在原有mysql机器上增加一台实例
采用的是yum install mysql-community-server yum方式安装mysql(社区版) 文章基础上新加一个mysql实例. 这个完全可以直接实战上应用,只要规划好即可 服务器 ...
- Win下GCC报错 error: ‘for’ loop initial declarations are only allowed in C99 mode
##报错## 用GCC编译for循环会出现以下错误 error: 'for' loop initial declarations are only allowed in C99 mode 如图所示: ...
- Azure Virtual Desktop(一)创建配置管理
一,引言 Azure 虚拟创面是一项 Azure 服务,可以让我们管理: 1)VDI(虚拟桌面基础架构) 2)云端的 RDSH:RDSH 是 RDS(远程桌面服务)中的一个角色.这些类型的服务器用于托 ...
- NodeJS学习day2
今天还是接着学习IO,主要方面是文件路径相关操作 练习代码如下: const fs = require('fs') // 执行C:\CS\Node.js>node .\day2\fsRoad.j ...
- 原生js 复选框全选案例
注 : 本文章主要写功能 代码示例 : <body> <input type="checkbox" id="che" /><br& ...
- 得到知识服务app原型设计比较与实践
一.几种原型设计工具的比较 墨刀 优点: 拥有PC端.手机端.网页版,让你随时随地可以进行产品原型设计: 其定位是主要用于设计移动APP原型,其控件的拖拉.大小的调整,都会自然去匹配相应的母版大小,非 ...