Spring Boot + BPMN流程管理引擎实践

本文介绍了BPMN标准及其核心组件,包括活动、事件、网关和数据对象。接着讨论了为何使用BPMN,以及不使用BPMN时面临的问题。文章还对比了BPMN框架,如Activiti和Flowable,推荐了Flowable。随后详细介绍了Camunda框架的核心概念,包括模型、部署、引擎和应用。通过Spring Boot集成Camunda的实践,阐述了业务系统与流程引擎的交互。最后提出了在实际应用中需要考虑的流程规划、错误处理等问题,以及对Camunda的扩展需求,如中国特色流程操作、组织用户模型、电子表单、流程配置选人规则等。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文首先介绍了BPMN基本概念以及为什么要引入BPMN;接着对实现了BPMN标准的开源框架进行了简单介绍和对比;然后重点介绍了Camunda BPMN框架的核心概念、框架及最佳开发实践,同时基于Spring Boot框架结合实际业务场景对Camunda的应用进行了介绍;最后是对于流程引擎集成到业务系统的一些注意事项说明。


以下是本篇文章正文内容,参考博客都加了引用说明,如有侵权请联系我删除

一、什么是BPMN?

1. BPMN标准及其核心组件介绍

BPMN:Business Process Model and Notation,是国际对象管理组织(OMG)基于BPMI在2011年推出的业务流程建模与标记开放标准。如果对OMG和BPMN的理解还不够直观,另外一个同组织同类型的标准----UML,可能会让你更加清楚OMG及其发布的开放标准是什么。以下是OMG官网关于BPMN介绍的两个截图:
在这里插入图片描述
在这里插入图片描述
BPMN框架概念介绍:
流对象
它们会展示业务流中的行为,并包含以下内容:
活动:人员或系统执行的工作或任务(显示为圆角矩形)。
事件:流程中发生的事情:开始、中间和终止(以圆圈表示)。
网关:描述流程中的顺序流路径(以菱形表示)。其他细节可以包括决策点。
数据对象
数据对象可以提供流程中数据的信息。数据有四种表现方式:
数据输入是与数据相关的任务(以一个卷角页面和右箭头表示)。只有收集到具体数据才能继续往前推进。
数据输出用于显示流程何时生成数据(以一个卷角的页面和实心右箭头表示)。
数据收集(显示为一个卷角的页面,底部中心带有三条实线)是指流程中所需的任何数据收集行为(例如,调查)。
数据存储(显示为容器),用于存储从流程中收集的任何数据。
连接对象
它们将流对象相互连接,或连接至其他信息,并显示流程:
顺序流(以实心右箭头表示)描述了所执行活动的顺序。
消息流(以左侧带有圆圈的虚线右箭头表示)描述了参与者之间的消息流动和流向。
关联(显示为虚线)可以将文本和人工信息链接到事件。
泳道
这个术语代表“池”和“道”。
池:单个流程的“容器”。
道:将池里面的活动再细分成几个部分,可以是垂直的也可以是水平的,以显示职责和事件的位置。
人工信息
人工信息提供了流程的额外细节。它分为两种类型:
组:以虚线的圆角矩形表示,它们围绕一组元素来显示元素之间的关系。
文本注释:只是简单的备注(前面带有一个左括号),读者无需深入查看就可以轻松了解内容,也称为注解。

2. 为什么要使用BPMN?

在不使用BPMN时,如何实现流程控制:
在业务代码里面加入 Status(状态机) 字段维护流程状态,流程负责的审批人可能也是 Hard Code(硬编码),好处是实现流程刚开始会比较快,但是长远来看会出现几个问题:

  1. 流程健壮性差,但凡出现人员变动,或者组织结构调整,就需要修改代码,维护成本高
  2. 定制化开发,流程无法复用,当组织出现新的工作流程,又要重新写一套代码,开发成本非常高
  3. 流程和业务代码耦合,你中有我,我中有你(并不符合单一职责和解耦的设计原则),业务流程发送变化时,修改成本高

使用BPMN后:
4. 业务逻辑可视化,开发成员内部以及客户沟通无障碍,利于发现流程缺陷、洞察待改善的潜在领域及促进业务理解一致;
5. 同一组织架构或者同类业务模型可高质量复用,提高开发效率同时提升软件质量;
6. 从设计层面对系统架构进行解耦:流程引擎可以和技术栈无关;
7. 有行业规范,遵循行业标准,有较多成熟框架和工具支持,随着项

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值