流程引擎的架构设计

流程引擎的架构设计
1 什么是流程引擎
流程引擎是一个底层支撑平台,是为提供流程处理而开发设计的。流程引擎和流程应用,以及应用程序的关系如下图所示。
流程引擎的架构设计_第1张图片
常见的支撑场景有:Workflow、BPM、流程编排等。本次分享,主要从 BPM 流程引擎切入,介绍流程引擎的架构设计方法。
1.1 什么是流程
简单来说,流程就是一系列活动的组合。比如,用于企业办公的 OA 系统中,就存在大量的申请审批类的流程。在生产制造业,有大量的从销售端的订单,到生产制造,再到签收回款的生产销售流程。在机器学习领域,有亚马逊 AWS Sagemaker 的大数据处理、机器学习的应用。综上,流程是一个概念,在和具体实现结合时,就产生了不同的流程产品,如 DevOps、Spring Data Stream 等。

在流程实现方面,主要可以分为 2 种实现方式,一种是用代码实现,比如:用代码实现一个加班申请,那么就要自己对接 SSO 进行单点登录,通过接口拿到发起人和审批人的信息,同时保存表单数据。

另一种方式是使用流程引擎来实现,流程引擎对接应用场景所需数据,如加班申请,流程引擎对接 SSO、OU、审批人配置、权限等,实现这样一个流程,只需要关心流程配置、流程节点和流程表单即可,流程流转以及流程的数据处理,都通过流程引擎来完成。

流程引擎可以快速落地流程实现,这也是流程引擎存在的价值。

**1.2 什么是引擎**

一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等。引擎是脱离具体业务场景的某一类业务场景的高度抽象和封装。

比如,某 OA 公司,封装了一套审批用的 workflow,实施人员只需要配置流程和表单即可交付项目。再比如,美国某公司做了一个 AI 引擎做 NBA(Next Best Action)推荐,封装了推荐领域的常用算法,在不同的场景自动选择和组合多种算法,进行智能推荐。

1.3 流程设计器
流程设计器是流程和引擎的连接方,用户通过流程设计器,将某种 layout 和 rule 固化成某种流程,然后通过数据和数据上下文,使用流程引擎自动按照某种固化的流程进行执行。

我将目前见到的流程设计器的理论基础,分为以下三类:1,自定义系;2,UML 中的活动图系;
3,BPMN 系。
1.3.1 自定义系

用于 Sagemaker 等场景的 AWS Step Function(自定义流程节点)
流程引擎的架构设计_第2张图片
1.3.2 UML Activity Diagram

Flowportal BPM 的流程设计器
流程引擎的架构设计_第3张图片
1.3.3 BPMN 系

activiti 的流程设计器
流程引擎的架构设计_第4张图片
炎黄盈动的流程设计器
流程引擎的架构设计_第5张图片
题外话:炎黄盈动的流程设计器,和 processon 中的流程设计器界面几乎一样,因为本质上是一家的。

2 流程引擎的应用
2.1 Workflow
工作流管理联盟 (Workflow Management Coalition,WfMC) 作为工作流管理的标准化组织而成立。

WfMC 对工作流给出定义为:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。
流程引擎的架构设计_第6张图片
后续更新中…

你可能感兴趣的:(JAVA,SpringBoot,vue,java)