赞
踩
Camunda Platform 是一个基于 Java 的BPMN(流程引擎)、DMN(规则引擎)、CMMN(案例管理)的开源框架。主要组件是用 Java 编写的,主要专注于为 Java 开发人员提供在 JVM 上设计、实现和运行业务流程和工作流所需的工具(开源流程引擎、规则引擎等)。尽管如此,我们也希望将流程引擎技术提供给非 Java 开发人员。这就是为什么Camunda Platform还提供REST API,允许您构建连接到远程流程引擎的应用程序。Camunda 7和Camunda 8在架构上有重大差异,关于Camunda8的架构,以及Camunda7和Camunda8对比差别,请参考:https://lowcode.blog.csdn.net/article/details/129764438
文本重点介绍Camunda7版本的架构。
Camunda Platform 既可以用作独立的流程引擎服务器,也可以嵌入到自定义 Java 应用程序中。可嵌入性要求是Camunda Platform中许多架构决策的核心。例如,我们使流程引擎组件成为轻量级组件,尽可能少地依赖第三方库。此外,可嵌入性激发了编程模型的选择,例如流程引擎参与 Spring Managed 或 JTA 事务的能力以及线程模型。
Camunda Platform是一个灵活的框架,可以部署在不同的场景中。本部分概述了最常见的部署方案。
在这种情况程引擎将作为应用程序库添加到自定义应用程序中,前提条件是你的应用程序和camunda技术栈要一致。这样,流程引擎就可以在应用程序生命周期中轻松启动和停止。比如:OA办公自动化项目中的工作流引擎,ERP项目的流程引擎。
在这种情况下,进程引擎在运行时容器(Servlet 容器、Application Server 等)内启动。流程引擎作为容器服务提供,可以由容器内部署的所有应用程序共享。这个概念可以比作 JMS 消息队列,它由运行时提供,可以被所有应用程序使用。流程部署和应用程序之间存在一对一的映射:流程引擎跟踪应用程序部署的流程定义,并将执行委托给相关应用程序。在当前微服务云原生技术背景下,这种部署架构不推荐使用。
在这种情况程引擎作为网络服务提供。在网络上运行的不同应用程序可以通过远程通信通道与流程引擎进行交互。使流程引擎可远程访问的最简单方法是使用内置的 REST API。不同的通信通道(如SOAP Web服务或JMS)是可能的,但需要由用户实现。这种部署架构可以理解为微服务架构,camunda流程引擎独立部署为一个服务,应用程序通过rest服务调用流程引擎。
为了提供纵向扩展或故障转移功能,可以将流程引擎分发到集群中的不同节点。然后,每个进程引擎实例都必须连接到共享数据库。
单个流程引擎实例不会跨事务维护会话状态。每当流程引擎运行事务时,完整状态都会刷新到共享数据库。这样就可以将在同一流程实例中工作的后续请求路由到不同的集群节点。此模型非常简单易懂,在部署群集安装时施加了有限的限制。就流程引擎而言,纵向扩展的设置和故障转移的设置之间没有区别(因为流程引擎在事务之间不保留会话状态)。
Camunda Platform 不提供开箱即用的负载平衡功能或会话复制功能。负载平衡功能需要由第三方系统提供(比如:nginx),会话复制需要由主机应用程序服务器提供。
在群集设置中,如果用户要登录 Web 应用程序,则需要采取额外的步骤来确保不会要求用户多次登录。存在两种选择:
如果上述方法均未在群集设置中实现,则与多个节点的连接将导致多个登录请求。
进程引擎作业执行器也是群集的,并在每个节点上运行。这样,就流程引擎而言,没有单点故障。作业执行程序可以在同类集群和异构集群中运行。
以下是对群集中时区使用的一些限制。
https://docs.camunda.org/manual/7.19/user-guide/process-engine/time-zones/#cluster-setup
为了通过一个 Camunda 安装为多个独立方提供服务,流程引擎支持多租户。支持以下多租户模型:
多租户户方案一:使用不同的数据库架构或数据库进行表级数据分离。每个租户使用独立的数据库用户或者实例或者表空间,这样性能是最好的,也容易扩展维护。
多租户方案二:使用租户标记进行行级数据分隔。该方式可能存在数据量大导致出现性能问题,需要结合分库分表方案解决。
用户应选择适合其数据分离需求的模型。Camunda 的 API 提供对特定于每个租户的流程和相关数据的访问。更多详细信息可以在多租户部分找到。
Multi-Tenancy | docs.camunda.org
Camunda Platform Web 应用程序基于 RESTful 架构。
使用的框架:
Camunda 其他自定义开发框架:
Camunda 提供了一套基于AngularJS开发的前端UI界面,但开源版本的功能有限,而且也不适合中国人操作系统,这部分需要项目中自己扩展开发实现。
这就是camunda自带的待办任务处理界面:
我们可以用vue开发自己的用户界面:
更多功能体验请访问:http://www.yunchengxc.com
机器人流程自动化 (RPA) 编排是一个利用多个 Camunda 产品模块功能的用例。它允许使用 RPA 技术和(无人值守)机器人自动编排任务。目前,Camunda Platform 积极支持 UiPath 和 Automation Anywhere,但未来版本将支持更多 RPA 供应商。
Camunda Automation Platform 7.19 是保持与 Camunda RPA bridge接器兼容性的最后一个版本。Camunda 自动化平台 7.19 和 Camunda RPA 桥将再维护 18 个月,到 2024 年 10 月以后,Camunda 停止维护 Camunda RPA bridge组件。Camunda RPA Bridge 在 Camunda 8 中被 RPA 开箱即用的连接器所取代。
RPA 仅限企业版,RPA 编排需要有效的企业许可证。您可以获取企业试用许可证,用于在本地测试 RPA Bridge 和 Cawemo。
https://docs.camunda.org/get-started/archive/rpa/
Camunda 在业务流程管理范围内实现了三个不同的标准:BPMN 2.0、CMMN 1.1 和 DMN 1.3。 这三个标准由对象管理小组Object Management Group 在Camunda的积极合作下定义。
BPMN:业务流程模型和表示法 (BPMN) 是工作流和流程自动化的标准。 Camunda 支持 BPMN 的 2.0 版本。
BPMN 2.0 Implementation Reference | docs.camunda.org
CMMN:案例管理模型和符号 (CMMN) 是案例管理的标准。 Camunda 支持 CMMN 的 1.1 版本。
CMMN 1.1 Implementation Reference | docs.camunda.org
DMN:决策模型和表示法 (DMN) 是业务决策管理的标准。 Camunda 支持 DMN 的 1.1 版本。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。