Camunda 7.x 系列【3】Camunda 简介

news2024/11/28 2:49:29

有道无术,术尚可求,有术无道,止于术。

本系列Spring Boot 版本 2.7.9

本系列Camunda 版本 7.19.0

源码地址:https://gitee.com/pearl-organization/camunda-study-demo

文章目录

    • 1. 概述
    • 2. 核心组件
      • 2.1 流程引擎
      • 2.2 模型
      • 2.3 Web应用
    • 3. 下载
    • 4. 许可协议
    • 5. 平台架构
      • 5.1 嵌入式流程引擎
      • 5.2 分布式的、容器管理的流程引擎
      • 5.3 独立运行的(远程)流程引擎服务
    • 6. 集群模式
    • 7. 多租户
    • 8. 网络应用程序架构
    • 9. 实现协议
      • 9.1 BPMN
      • 9.2 CMMN
      • 9.3 DMN
    • 10. 运行环境
      • 10.1 Java
      • 10.2 数据库
      • 10.3 Camunda Modeler
    • 11. 第三方依赖库
    • 12. 公共 API
    • 13. 遥测

1. 概述

Camunda是一种基于Java的框架,三大核心功能:

  • BPMN:工作流和过程自动化
  • CMMN:案例管理
  • DMN:业务决策管理

注: 本系列主要是讲解BPMNCMMNDMN后期会在扩展篇简单讲解。

2. 核心组件

Camunda平台核心组件:
在这里插入图片描述

2.1 流程引擎

流程引擎是最核心的集成组件,它由多个组件构成,是一个轻量级的Java库。负责执行BPMN 2.0流程、CMMN 1.1案例和CMMN 1.3决策。
在这里插入图片描述

简要说明:

  1. Java API:提供了很多Java 类和方法,直接通过对象和流程引擎进行交互
  2. Rest API:提供了很多REST接口,直接通过Http和流程引擎进行交互
  3. 核心引擎:轻量级BPMNCMMN CMMN执行引擎,
  4. 作业执行器:作业执行程序,负责处理异步的后台工作,如流程中的定时器或异步延续
  5. 持久层:负责将所有数据持久化到数据库中,使用的是MyBatis框架

2.2 模型

Model模型,通过建模工具对BPMNCMMN DMN进行建模。

Camunda建模工具:

  • Camunda Modeler:Camunda官方提供的BPMNCMMN DMN、表单建模器
  • bpmn.io:一个开源的建模JS框架,可集成到前端,实现自定义的建模器
  • IDEA插件:在IDEA中进行建模,但是问题较多,不推荐使用

建立模型后,可以通过流程引擎存储在数据库中。

2.3 Web应用

Camunda提供了Web应用,包含以下三大模块:

  • Cockpit:流程监控和操作,可以搜索流程实例,检查其状态并修复执行失败的实例
  • Admin:管理用户,组和授权
  • Tasklist:管理工作流和用户任务,允许流程参与者检查其工作流任务并导航到任务列表,然后进行处理

3. 下载

Camunda是一个灵活的框架,可以在不同的环境中使用,选择不同的运行方式。因为是基于Java开发,所以需要事先安装JDK环境。

Camunda为社区用户和企业用户提供不同的运行时下载:

  • 社区版下载地址
  • 企业版下载地址

当然也可以通过Spring BootDocker的方式运行Camunda平台。

Camunda也提供了整合包,可以快速安装和运行Camunda平台,不需要任何额外的设置或安装步骤,整合包包含:

  • 已配置好的分布式流程引擎
  • Web应用控制台:TasklistCockpitAdmin
  • Rest Api接口
  • 容器/应用服务器

此外还提供了建模工具Camunda Modeler,用于BPMN 2.0DMN 1.3建模,下载地址。

4. 许可协议

Camunda社区版的开源许可证主要是Apache2.0MIT,可以在源代码根目录中查看源文件。

Camunda企业版,除了社区版组件外,还包含受知识产权法保护的其他企业版组件,如果没有订阅购买获取授权,不得以任何形式或方式使用、复制、翻译、广播、修改、许可、传输、分发、展示、执行、发布企业组件或展示任何部分。禁止对企业组件进行逆向工程、反汇编或反编译。

5. 平台架构

5.1 嵌入式流程引擎

流程引擎被作为一个库添加到一个自定义的应用程序中,通过这种方式,流程引擎可以很容易地随着应用程序的生命周期而启动和停止,可以在共享数据库之上运行多个嵌入式流程引擎。

在这里插入图片描述

5.2 分布式的、容器管理的流程引擎

在这里插入图片描述
流程引擎在运行时容器(Servlet容器、应用服务器…)内启动。流程引擎作为容器服务提供,可以被部署在容器内的所有应用程序共享。这个概念就像JMS消息队列,它由运行时提供,可以被所有应用程序使用。流程部署和应用程序之间有一对一的映射:流程引擎跟踪应用程序部署的流程定义,并将执行委托给相对应的应用程序。

5.3 独立运行的(远程)流程引擎服务

在这里插入图片描述

独立的(远程)流程引擎服务器即流程引擎,作为网络服务提供。流程引擎作为容器服务提供的,可以被部署在容器内的所有应用程序共享。在网络上运行的不同应用程序可以通过一个远程通信与流程引擎进行交互。使流程引擎可以远程访问的最简单方法是使用内置的REST API。不同的通信渠道,如SOAP WebservicesJMS也是可以的,但需要由用户自行实现。

6. 集群模式

在这里插入图片描述
为了提供扩展或故障转移能力,流程引擎可以发布到集群中的不同节点。然后每个流程引擎实例必须连接到同一个共享数据库。

各个流程引擎实例不会跨事务维护会话状态。每当流程引擎运行一个事务时,就会将整个状态刷新到共享数据库中。这使得负载均衡成为可能,也就是将在相同流程实例中工作的后续请求路由到不同的集群节点上。这个模型非常简单易懂,并且在部署集群时施加的限制很有限。就流程引擎而言,用于扩展的设置和用于故障转移的设置之间没有区别(因为流程引擎在事务之间不会保持会话状态)。

7. 多租户

为了使一个 Camunda 引擎为多个独立方提供服务,流程引擎支持多租户。它支持以下两种多租户模式:

  • 使用不同的数据库模式或数据库进行表级数据分离
  • 使用租户标记进行行级数据分离

8. 网络应用程序架构

Camunda平台的网络应用程序是基于RESTful架构的。

使用的框架有:

  • JAX-RS
  • AngularJS
  • RequireJS
  • jQuery
  • Twitter Bootstrap

Camunda工程师开发以及其他自定义框架:

  • camunda-bpmn.js
  • ngDefine
  • angular-data-depend

9. 实现协议

Camunda在业务流程方面实现了三种不同的标准:BPMN 2.0CMMN 1.1DMN 1.3。 这三个标准是由Object Management Group在Camunda的积极合作下定义的。Camunda平台提供执行和建模工具的开源实现。

9.1 BPMN

Business Process Model and Notation (BPMN) 是一个工作流和流程自动化标准。

Camunda支持BPMN 2.0

  • 快速入门实现BPMN流程:Quick Start (Java / JS)
  • 快速了解BPMN建模语言:BPMN Modeling Tutorial
  • BPMN建模相关信息:BPMN Modeling Reference
  • BPMN建模工具:BPMN Modeler
  • 实现BPMN流程: BPMN Implementation Reference
  • 执行BPMN:Process Engine

9.2 CMMN

Case Management Model and Notation (CMMN) 是一个案例管理标准。

Camunda支持CMMN 1.1版本:

  • 快速入门实现CMMN
  • 实现CMMN案例:CMMN Implementation Reference
  • 执行CMMN: Process Engine

9.3 DMN

Decision Model and Notation (DMN) 是一个业务决策标准。

Camunda支持DMN 1.1 版本:

  • 快速入门实现DMN决策表: DMN Getting Started
  • 了解DMN: DMN Modeling Tutorial
  • 学习用于编辑DMN的工具: DMN Editor
  • 实现DMN决策::DMN Implementation Reference
  • 执行DMN: DMN Engine

10. 运行环境

可以在任何可运行Java的环境中运行Camunda平台。

10.1 Java

支持Java 8 / 11 / 17

10.2 数据库

  • 支持的数据库:
  • MySQL 8.0
  • MariaDB 10.6
  • Oracle 12c / 19c
  • IBM DB2 11.5
  • PostgreSQL 12 / 13 / 14 / 15
  • Amazon Aurora PostgreSQL compatible with PostgreSQL 12 / 13 / 14
  • Microsoft SQL Server 2017 / 2019
  • Microsoft Azure SQL with Camunda-supported SQL Server compatibility levels
    • SQL Server on Azure Virtual Machines
    • Azure SQL Managed Instance
    • Azure SQL Database
  • H2 2.1 (not recommended for Cluster Mode - see Deployment Note)
  • CockroachDB v20.1.3 (see Configuration guide for more details)

10.3 Camunda Modeler

Camunda Modeler支持以下平台:

  • Windows 7 / 10
  • Mac OS X 10.11
  • Ubuntu LTS

11. 第三方依赖库

可以在官方文档中查看Camunda第三方依赖项。
在这里插入图片描述

12. 公共 API

Camunda平台提供了一个公共API,包含两部分:

  • Java API
  • HTTP API (REST API)

Java API模块:

  • camunda-engine
  • camunda-engine-spring
  • camunda-engine-cdi
  • camunda-engine-dmn
  • camunda-bpmn-model
  • camunda-cmmn-model
  • camunda-dmn-model
  • camunda-spin-core
  • camunda-connect-core
  • camunda-commons-typed-values

REST API模块:

  • camunda-engine-rest

Camunda的版本管理方案遵循语义化版本模式:

大版本号.小版本号.补丁

Camunda将保持小版本号版本更新是向后兼容性的。例如:从版本7.1.x7.2.x 公共API是向后兼容的。

13. 遥测

遥测:是将对象参量的近距离测量值传输至远距离的测量站来实现远距离测量的技术。

Camunda致力于提供高水平、稳定的卓越用户体验,会收集环境和使用数据,这些见解有助于解典型的环境设置和产品使用模式,并将用于做出明智的产品改进决策。

进程引擎有一个名为Telemetry Reporter的专用线程,用于定期向Camunda报告遥测数据。默认情况下,此线程始终在运行,但仅在显式启用遥测时报告数据。

简要概述Camunda中有一个后台线程,会定期向Camunda官方地址发送检测数据…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/858354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无涯教程-Perl - grep函数

描述 此函数从LIST中提取EXPR为TRUE的所有元素。 语法 以下是此函数的简单语法- grep EXPR, LIST返回值 此函数返回在标量context中表达式返回true的次数以及在列表context中与表达式匹配的元素列表。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perllist (1,&qu…

webpack 热更新的实现原理

webpack 的热更新⼜称热替换(Hot Module Replacement),缩写为HMR。这个机制可以做到不⽤刷新浏览器⽽将新变更的模块替换掉旧的模块。 原理: ⾸先要知道 server 端和 client 端都做了处理⼯作: 在 webpack 的 watch…

在Cesium中给管道添加水流效果

添加效果前后对比: 关键代码: /*** 水流粒子,目前支持向上或者向下的效果* @param {Number} x* @param {Number} y* @param {Number} z* @param {Number} options* @example* options = {* color: Cesium.Color.AZURE,* emissionRate: 5, //影响水流速度* direc…

Python编程——谈谈函数的定义、调用与传入参数

作者:Insist-- 个人主页:insist--个人主页 本文专栏:Python专栏 专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注。 目录 一、理解函数 二、函数的定义 1、语法 2、定义一个…

接口测试过程中常见的接口安全性问题,通用测试点整理归纳

我们日常的接口测试工作主要是验证接口的功能性(入参、出参、边界值等),在接口测试过程中遇到的一些接口安全性的问题,整理成了通用的测试点,不一定适用于全部的产品,仅做参考。 一、登录接口校验 验证登…

手写SpringCloud系列-负载均衡算法实现

手写SpringCLoud项目地址,求个star github:https://github.com/huangjianguo2000/spring-cloud-lightweight gitee:https://gitee.com/huangjianguo2000/spring-cloud-lightweigh 一:什么是负载均衡 最开始的系统访问量很少,就一个单机就足…

研究生阶段如何进入一个领域——兼李芒老师教育技术导论解读

文章 https://devpress.csdn.net/hpc/64c8bb57bfca273ff3549881.html

svg的图片怎么通过修改源码修改其颜色

这里有一张svg的图片&#xff0c;如下&#xff1a; 原svg的代码(在IDE中打开)如下&#xff1a; svg代码如下&#xff1a; <?xml version"1.0" standalone"no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w…

最好用的六款虚拟机软件

下面&#xff0c;我将介绍目前市面上适合个人用户使用的六款最佳虚拟化软件&#xff0c;让你可以更好的选择。 01 — VMware Workstation Vmware作为全球最知名的虚拟化企业&#xff0c;至今已有超过20年的发展历史。在针对个人用户的产品上&#xff0c;Vmware提供了适用于A…

前端性能优化介绍与常见方法(一)

这是一个没有套路的前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e; 主页: oliver尹的主页 格言: 跌倒了爬起来就好&#xff5e; 目录 一、…

ios swift alert 自定义弹框 点击半透明部分弹框消失

文章目录 1.BaseAlertVC2.BindFrameNumAlertVC 1.BaseAlertVC import UIKitclass BaseAlertVC: GLBaseViewController {let centerView UIView()override func viewDidLoad() {super.viewDidLoad()view.backgroundColor UIColor(displayP3Red: 0, green: 0, blue: 0, alpha:…

Dubbo 服务发布注册、订阅消费 流程

一、Dubbo服务发布 dubbo的服务提供者注册一共经历以下三个阶段 1) 配置 Dubbo 框架在服务注解这个后置处理器&#xff08;ServiceAnnotationPostProcessor&#xff09;中&#xff0c;利用扫描器&#xff0c;把含有 DubboService 注解的类对应的 Bean 定义收集到了一块&#…

【观察】张建林:走出“舒适区”,愿做智能运维的“布道者”

在出任科来研发中心副总经理一职之前&#xff0c;张建林在行业内已有着非常资深的“履历”&#xff0c;他曾任招商银行数据中心系统运行、应用管理负责人&#xff0c;招行资深工程师&#xff0c;对应用全生命周期的智能化运维具有非常丰富的理论研究与实战经验&#xff0c;还曾…

世界山系、火山和地震的分布

声明&#xff1a;来源网络&#xff0c;仅供学习&#xff01;

CentOS-6.3安装MySQL集群

安装要求 安装环境&#xff1a;CentOS-6.3 安装方式&#xff1a;源码编译安装 软件名称&#xff1a;mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz 下载地址&#xff1a;http://mysql.mirror.kangaroot.net/Downloads/ 软件安装位置&#xff1a;/usr/local/mysql 数据存放位…

HCIP的重发布实验

实验要求&#xff1a; 1 两个协议间进行多点双向重发布 2 R7的环回没有宣告在OSPF中而是后期发布进入的 3 解决环路&#xff0c;所有路径选择最优&#xff0c;且存在备份 一、IP配置 R1&#xff1a; R2&#xff1a; R3&#xff1a; R4&#xff1a; R5&#xff1a; R6&#…

数字万用表测量基础知识--其他DMM测量

概览 DMM&#xff08;即数字万用表&#xff09;是一种电气测试和测量仪器&#xff0c;可测量直流和交流信号的电压、电流和电阻。本文介绍如何正确使用和理解数字万用表(DMM)。 其他DMM测量 许多DMM还具有两个额外的测量功能&#xff1a;二极管测试和连续性测试。 连续性测试…

使用pip安装opencv,出现Cannot unpack file xxx的问题的解决

学完机器学习和深度学习后&#xff0c;开始学习计算机视觉&#xff0c;在安装opencv时出现以下问题&#xff1a; ERROR: Cannot unpack file C:\Users\User\AppData\Local\Temp\pip-unpack-9vgxq6np\simple.html (downloaded from C:\Users\User\AppData\Local\Temp\pip-req-bu…

英码国产高配边缘计算盒子上市!搭载TPU处理器BM1684X,适配麒麟系统,支持OTA升级!

随着人工智能技术不断深入实际应用场景&#xff0c;加速各行各业场景应用落地&#xff0c;边缘计算的重要性越发凸显。相较于传统的集中式云计算&#xff0c;边缘计算在距离数据源或用户更近的地方提供计算能力&#xff0c;不仅满足了对实时性要求较高的场景应用需求&#xff0…

汽车及汽车零部件行业云MES解决方案

汽配行业现状&#xff1a; 随着经济全球化进程加快&#xff0c;一直走在智能化改造&#xff0c;数字化转型前沿的汽车行业企业&#xff0c;面临的信息化需求也日益增加&#xff0c;不管德系&#xff0c;美系还是日系供应链的各大厂商&#xff0c;均将企业信息化&#xff0c;数字…