微服务工作流Camunda BPM介绍


今天给大家分享一下Camunda BPM在Java开发中的应用。在本文中,我将讨论 Camunda 业务流程管理系统的关键组件。另外,我将展示系统的部署、建模和部署的一个简单过程。
让我们先了解一下术语,了解一下 BPM、BPMS 和 BPMN 是什么。

组织管理的概念,是将业务流程视为企业的特殊资源,不断适应不断变化,并依赖于组织中业务流程的清晰度和可见性等原则,通过使用正式符号进行建模,使用软件建模,业务流程的模拟、监控和分析,参与者动态重建业务流程模型的可能性和软件系统工具。

BPM 回答了执行的地点、时间、原因、方式和内容以及由谁处理执行的问题。

BPMS(业务流程管理系统)
提供 BPM 概念应用实施的软件。BPMN(业务流程建模符号)— 业务流程的符号(图形名称系统及其 XML 格式的描述)。市场上有许多 BPMS,包括市场领导者——甲骨文和 IBM。从名字上看,这些系统功能强大、功能强大、价格昂贵,而且并不适合每个组织,其实施成本可以从 100,000 欧元及以上开始。只有大公司才能负担得起实施这样的系统。

小公司应该注意实施其他系统,这样成本会更低。
在免费版本的外国供应商中,我会挑出 jBPM。
另一个免费的 BPM 系统 Activity 是在 2013 年分叉的,并由此出现了被称为太多的 Camunda BPM。

Camunda Services 是 Camunda BPM 的供应商,长期以来一直为组织提供业务流程管理方面的咨询,但最终创建了自己的产品并开始积极开发它。网上对 Activity 和 Camunda 的比较有很多种,大多偏向后者,而且使用 Camunda 的公司名单也相当广泛。
我们都明白,业务流程必须尽可能清晰。使用符号对流程进行建模(符号是图形符号系统及其 XML 格式的描述)。有很多符号。

什么是卡蒙达Camunda BPM?
实现BPMN(Business Process Model and Notation)、DMN(Decision Model and Notation)、CMMN(Case Management Model and Notation)标准的业务流程管理平台。
社区版具有开源代码和许可证 Apache-2.0。
它基于流行的 Java 编程语言的技术栈。它与 Spring/Spring Boot 集成。
DMN 是一个决策模型、一个输入值表和结果输出值。它在决策等任务中很有用。这将有助于决定是发放信用证还是开立账户。

Camunda BPM 组件(社区)

让我们检查一下 Camunda 社区版的组件:

  • Camunda Modeler 是一个跨平台的 GUI 应用程序,业务分析师或流程架构师可以在其中建模和编辑流程图。
  • 支持 BPMN 2.0、DMN 1.1 和 CMMN 1.1。这是一个独立的跨平台应用程序,具有图形用户界面,业务分析师或流程架构师可以在其中绘制和编辑流程流程图。
  • Camunda Tasklist 是一个基于 Web 的应用程序,最终用户可以在其中登录、查看分配给他们的任务并执行操作。
  • Camunda Cockpit,一个 Web 应用程序,专为操作员或业务流程所有者而构建,用于监控和管理他们的业务流程
  • Camunda Admin 是一个 Web 应用程序,一个系统管理员界面,用于管理角色、用户、组等。
  • Camunda BPM 系统的核心部分是引擎,它根据绘制的模式和符号 CMMN 等控制流程,将它们转换为代码,然后执行它们。
  • 请注意,引擎顶部有一个覆盖层,它实现了 REST 或 Java API。REST/Java API 是系统的编程接口,提供与外部 (REST) 和内部 (Java) 组件的交互。Rest API 非常广泛和方便,允许您实现许多自定义应用程序

Camunda BPM(企业)组件

企业版——付费、合同、24/7 技术支持——在技术上优于社区版。例如,Enterprise Cockpit——Camunda Cockpit 的扩展版本,它包含附加功能:流程描述的部署、流程实例的重启、流程实例的高级搜索以及版本之间的流程实例迁移。
Camunda Optimize — 优化和改进业务流程、瓶颈检测、报告和流程热图,所有这些都有助于改进、优化和现代化业务流程。

流程热图示例
显示流程中任务的相对频率。它有助于可视化结果并确定哪个区域加载更多以及可以卸载哪些资源/操作。

Camunda BPM 的部署方法
正如我之前所写的,Camunda BPM 是在 Java 堆栈中编写的,因此它有多种部署方式。第一个也是最简单的是应用程序中的内置库。

第二种方法也适用于 Java 应用程序 — 应用程序服务器或 servlet 容器中的服务(“共享服务”),部署在容器中的其他应用程序可以使用。

第三种方法,如果应用程序不是用 Java 编写的,则将 Camunda 部署为独立服务器,应用程序将通过Rest API远程联系它。

第四种方式是高负载系统的集群部署,当有一个公共数据库和多个节点与 Camunda。

Camunda 并不将自己定位为低代码或无代码系统。Camunda 将自己定位为一个系统,在该系统中,业务、分析师和开发之间应该有一种合理的组合,一种共生关系。