背景

Camunda 是支持 BPMN(工作流和流程自动化)、CMMN(案例管理) 和 DMN(业务决策管理) java 框架。Camunda 基于Activiti5 保留了 PVM,其开发团队也是从 activiti 中分裂出来的。Camunda 来自拉丁语动词”capere”(理解)和“munda”(干净),它意味着我们想要深入了解我们周围的世界,并基于这种了解,我们想要以一种既有效又道德正确的方式让世界成为一个更美好的地方,为了我们所有人。Camunda 的发展史如下(大图参考:流程引擎之发展史及对比总结):

  • 2013 年,从 Activiti5 分离出 camunda BPM

  • 2014年3月,camunda BPM 7.1.0-Final 版本

  • ......

  • 2022年11月,camunda BPM 7.18.0 版本

附 Camunda 官方地址:

  • Camunda 官方首页:https://camunda.com/

  • Camunda 官方文档:https://docs.camunda.org/get-started/quick-start/

  • Camunda 中文翻译文档:http://camunda-cn.shaochenfeng.com/

  • Camunda github:https://github.com/camunda/

Camunda 使用

Camunda 官方提供了 Camunda Platform、Camunda Modeler,其中 Camunda Platform 以 Camunda engine 为基础为用户提供可视化界面,Camunda Modeler 是流程文件建模平台,在 Camunda Modeler 创建的流程文件可以 deploy 到 Camunda Platform 并进行管理。另外三方服务可通过 Camunda 官方提供的 rest 或者 java api 来访问 Camunda engine,操作的结果也可以在 Camunda Platform 查看和管理。

1)Camunda Platform 安装及使用

Camunda Platform 即 Camunda 平台(类似于 jBPM 的 Business Central ),提供Web管理界面,包括流程(process)、任务(task)和用户(user)管理功能,默认以 H2 为数据库。使用步骤如下:

Step 1:下载 camunda-bpm-run-7.18.0.zip 解压,然后执行 start.bat (Windows系统) 或者 start.sh (Linux系统)
  • Camunda Platform 安装包下载地址:https://camunda.com/download/

Step 2:访问并登录(账号密码:demo/demo)url: http://localhost:8080/camunda-welcome/index.html

进入 index 页面后,并账密登录(demo/demo):

附官方文档:

  • Camunda Platform 的使用有兴趣的可参考:https://docs.camunda.org/manual/7.9/webapps/

2)Camunda Modeler 安装及使用

Camunda Modeler 是流程文件建模(设计)平台,只做文件的设计,支持BPMN、DMN 和 Form 三种类型的文件设计,具体实现集成了开源框架 https://bpmn.io/ ,以下是安装使用过程:

Step 1:下载并安装 Camunda Modeler

以下以 mac 版本作为示例,安装文件:camunda-modeler-5.6.0-mac.dmg

  • 官方下载地址:https://camunda.com/download/modeler/

Step 2:打开 Camunda Modeler
Step 3:设计请假流程文件 holiday.bpmn

Camunda Modeler 集成了开源框架 https://bpmn.io/ ,所以流程文件的设计过程与其类似,这里以请假流程文件示例:

3)Camunda 与 Spring Boot 集成请假 demo 示例

以请假流程作为 Camunda 基本使用示例(流程示例同 Camunda Modeler 流程文件示例),学生先发起请假,然后老师审批,若审批时需要进一步审批,则再次发起审批(demo 示例如下,完整代码参考:https://download.csdn.net/download/zhuqiuhui/87462397):

Spring Boot 通过 camunda-bpm-spring-boot-starter-webapp 依赖集成了 Camunda Platform,通过 java api (应用代码调用)和 rest api(主要支持 Camunda Platform) 都可以操作流程任务,即示例代码中可通过 http 请求操作的任务可在 Camunda Platform 界面中看到。

Step 1:发起请假请求

发起请求请求后,从 Camunda Platform 可以看到任务执行到“Class Teacher”结点,接下来老师进行审批:

Step 2:老师审批同意,同时需要进行进一步审批

老师审批后,从 Camunda Platform 可以看到任务执行到“HOD”结点,接下来老师需要进一步审批:

Step 3:最终同意,请假流程结束

附:

  • 上述 demo 源码地址:https://download.csdn.net/download/zhuqiuhui/87462397

  • Camunda 官方 Spring Boot 工程初始化地址:https://start.camunda.com/

4)流程引擎对比

  • 使用

Camunda 相对于 Activiti 和 Flowable 比较轻量和灵活,且配套文档比较丰富

  • 性能

Camunda 基于 Acitviti 为迁移方便,但并没有去掉 PVM(据说性能不好,Activiti已经在 6.X 版本已放弃 PVM,Flowable亦是如此)。另外但有人基于流程引擎进行压测,得出 Camunda 性能比 Flowable 提升最小10%,同时 Camunda 在高并发场景下稳定性更好

  • 功能

Camunda 和 Flowable 都是基于 Activiti5,所以其很多功能都是相似的。另外在功能上,Camunda 更多支持如支持流程实例的迁移、提供批处理 API 操作等

Camunda 整体架构

1)Camunda 整体架构

附:上图详细描述参考:https://docs.camunda.org/manual/7.18/introduction/

  • 建模阶段:业务分析人员或者开发都在 Camunda Modeler 上进行建模(如流程文件设计)

  • 执行阶段:终端用户在应用程序中使用 rest api 或者 java api 访问 engine 进行流程任务管理,同时也可以查看任务列表(通过 rest api 实现),操作者可查看任务运行报告(通过 rest api 访问 engine 实现) ,管理员进行用户管理(通过 rest api 实现)

2)REST API

Camunda BPM 是一个基于 Java 的框架,主要组件是用 Java 编写的,另外 Camunda 还希望让非 Java 开发人员可以使用流程引擎技术,这就是 Camunda BPM 还提供 rest api 的原因。

  • Camunda engine rest api 详细接口及参数参考:https://docs.camunda.org/manual/7.9/reference/rest/

3)其他

其中更详细有关 Camunda 架构的文档参考:https://docs.camunda.org/manual/7.18/introduction/architecture/

  • Process Engine 架构

  • Camunda Platform 架构

  • 集群架构

流程引擎系列文章

• 流程引擎之发展史及对比总结:https://blog.csdn.net/zhuqiuhui/article/details/128986403

• 流程引擎之KIE项目简介:https://blog.csdn.net/zhuqiuhui/article/details/129035796

• 流程引擎之jBPM简介:https://blog.csdn.net/zhuqiuhui/article/details/129052162

• 流程引擎之Activiti简介:https://blog.csdn.net/zhuqiuhui/article/details/129107741

• 流程引擎之Camunda简介:https://blog.csdn.net/zhuqiuhui/article/details/129107897

• 流程引擎之Flowable简介:https://blog.csdn.net/zhuqiuhui/article/details/129109273

• 流程引擎之compileflow简介:https://blog.csdn.net/zhuqiuhui/article/details/129109391

流程引擎之Camunda简介相关推荐

  1. 流程引擎之Flowable简介

    背景 Flowable 是一个流行的轻量级的采用 Java 开发的业务流程引擎,通过 Flowable 流程引擎,我们可以部署遵循 BPMN2.0 协议的流程定义(一般为XML文件)文件,并能创建流程 ...

  2. 流程引擎之compileflow简介

    背景 compileflow 是一个非常轻量.高性能.可集成.可扩展的流程引擎.compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是专注于纯内存执行,无状态的流程引擎,通 ...

  3. 流程引擎之Activiti简介

    背景 Activiti 是一个开源架构的工作流引擎,基于 bpmn2.0 标准进行流程定义,其前身是 jBPM,Activiti 相对于 jBPM 更轻量,更易上手,且天然集成了 Spring.201 ...

  4. 流程引擎之KIE项目简介

    一.KIE 工程是什么 近期学习流程 jBPM 引擎时,发现 jBPM 是基于 jBoss 公司的 KIE 工程建设的,所以在学习 jBPM 之前需要弄明白 KIE 工程是什么.KIE 是" ...

  5. 流程引擎之发展史及对比总结

    流程引擎渊源 市场上比较有名的开源流程引擎有 jBPM.Activiti.Camunda.Flowable 和 Compileflow.其中 jBPM.Activiti.Flowable.camund ...

  6. 开源流程引擎Camunda

    开源流程引擎Camunda 文章作者:智星 1.简介 Camunda是一个轻量级的商业流程开源平台,是一种基于Java的框架,持久层采用Mybatis,可以内嵌集成到Java应用.SpringBooo ...

  7. 流程引擎camunda

    简介 Camunda是一个基于Java的框架,支持用于工作流和流程自动化的BPMN.用于案例管理的CMMN和用于业务决策管理的DMN.笔者单位里主要是用于业务审批. 学习了解资料尽量去官方查看http ...

  8. camunda 流程执行追踪_流程引擎为什么选 Camunda

    2019 年初我在重新设计我们组负责的流程系统时,选择了 Camunda 流程引擎,并基于该流程引擎实现了一套适配方案.以前就想做一次总结,但总拖着. 最近公司中台在做流程引擎选型,相关同事找我了解 ...

  9. Camunda流程引擎及表结构认识

    一.认识  Camunda Camunda 是一种轻量级的商业流程开源平台. 同类型的产品有 osworkflow.jbpm.activiti.flowable.其中:Jbpm4.Activiti.F ...

最新文章

  1. 成员变量和成员函数分开存储
  2. 蓝桥杯练习系统习题解答-入门训练
  3. Linux各个版本配置要求
  4. Hibernate中配置C3P0连接池
  5. 16.最接近的三数之和
  6. linux不同主机通信,Linux实现多台主机之间相互通信
  7. java 方法值引用_Java方法引用是如何计算值的
  8. DocsBuilderGUI 工具使用介绍
  9. JCreator中怎样带参数运行程序,如何添加JDBC驱动程序
  10. Linux系统删除文件夹命令
  11. html在线直播ppt,PPT在HTML网页上播放方法
  12. 解决无法删除文件夹的情况:文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开...
  13. 【web渗透思路】敏感信息泄露(网站+用户+服务器)
  14. ARFoundation入门1.0 什么是AR
  15. FusionCharts基本使用
  16. 腾讯云服务器公网6M带宽实际下载/上传速度详细解释
  17. 【报错记录】TypeError: __init__() takes 1 positional argument but 4 were given
  18. python爬取头条视频_python 爬取头条视频
  19. 用adb连接手机出现List of devices attached
  20. 复旦-华盛顿大学EMBA:抖音发12亿元春晚红包!盘点张一鸣的管理之道

热门文章

  1. etf文件服务器,ETF基金投资完整攻略(干货分享)
  2. 初、中、高级前端工程师水平怎么划分?
  3. 第一次创业回忆录:从博客走向微博那荡起与陨落的三年(2011-2013)
  4. nvh个人检测下载_变速箱NVH质量检验系统.pdf
  5. 修改注册表后不重启计算机,修改注册表后不重启计算机边生效(转)
  6. Windows 安装包介绍
  7. 思科防火墙5510打开端口_输入验证问题打开了思科防火墙漏洞
  8. 剖析 TCP - SO_REUSEPORT 使用
  9. kotlin 尾递归阶乘_Kotlin程序查找数字的阶乘
  10. VINS学习(二)IMU预积分原理与实现