FSM/BPMN/Workflow/RPA从入坑(使用BPMN编排RPA)到放弃
Author:zhoulujun Date:
低代码平台想实现代码逻辑/流程 可视化改造,具体如何做?
产品肯定希望前端通过业务流程图的方式展示整个流程的逻辑:图中的各个节点可通过点击进行数据的配置,每个节点就是一个模块,配置完成后,这些模块的逻辑还可以灵活复用。这样整个流程由原来通过表单按步骤配置,转化成可视化的业务编排流程,使得整个系统的用户体验得到提升。
那么代码层面具体如何实现呢?
起步阶段IF-ELSE大法
这方面无需多讲……
有限状态机FSM
有限状态机 (Finite State Machine)缩写为 FSM是一种经典的设计模式,简称为状态机。
状态机有 3 个组成部分:状态(State)、事件(Event)、动作(Action)。其中,事件也称为转移条件(Transition Condition)。事件触发状态的转移及动作的执行。动作也不是必须的,也可能只转移状态,不执行任何动作。典型的状态机有正则表达式引擎、订单工单处理流程等场景。
这是一种好的解决方式,但是不是本文重点。
BPMM
BPMM概念浅析
BPM
BPM(Business Process Management)业务流程管理,工单订单系统都是典型的BPM系统。
BPM基本内容是管理既定工作的流程,通过服务编排,统一调控各个业务流程,以确保工作在正确的时间被正确的人执行,达到优化整体业务过程的目的。 BPM概念的贯彻执行,需要有标准化的流程定义语言来支撑,使用统一的语言遵循一致的标准描述具体业务过程,这些流程定义描述由专有引擎去驱动执行。这个 引擎就是工作流引擎,它作为BPM的核心发动机,为各个业务流程定义提供解释、执行和编排,驱动流程“动“起来,让大家的工作“流”起来,为BPM的应用 提供基本、核心的动力来源。
BPM目前最新的协议是BPM2.0,逐渐成为业内标准(该标准已经成为了ISO标准之一)。 BPMN 2.0(Business Process Model and Notation),具体参看:
BPMN2.0规范部分总结 https://www.cnblogs.com/shizhe99/p/15321724.html
BPMN2.0规范及流程引擎选型方案 https://blog.csdn.net/u012558210/article/details/129342543
BPMN 2.0规范 https://juejin.cn/post/6941989026711175182
BPM、BPMN、BPMN2.0概念介绍 https://www.cnblogs.com/amerkor/p/13728576.html
BPMN(业务流程建模符号)入门到掌握,这一篇就够了 https://www.zhihu.com/tardis/zm/art/365967273?source_id=1003
BPMN
BPMN由业务流程管理倡议组织BPMI(The Business Process Management Initiative)开发的一套标准的业务流程建模符号规范。
其目的是为用户提供一套容易理解的标准符号,这些符号作为BPMN的基础元素,将业务流程建模简单化、图形化,将复杂的建模过程视觉化,让业务建模者、业务实施人员、管理监督人员对BPMN描述的业务流程都有一个更加清晰明了的了解。
BPMN三大要素
Activities(活动):在工作流中所有具备生命周期状态的都可以称之为“活动”,如原子级的任务(Task)、流向(Sequence Flow),以及子流程(Sub-Process)等
Gateways(网关):顾名思义,所谓“网关”就是用来决定流程流转指向的,可能会被用作条件分支或聚合,也可以被用作并行执行或基于事件的排它性条件判断
Events(事件):在BPMN2.0执行语义中也是一个非常重要的概念,像启动、结束、边界条件以及每个活动的创建、开始、流转等都是流程事件,利用事件机制,可以通过事件控制器为系统增加辅助功能,如其它业务系统集成、活动预警等
BPMN有四类基本元素
流对象(Flow Objects):包括事件、活动、网关,是BPMN中的核心元素。
连接对象(Connecting Objects):包括顺序流、消息流、关联。
泳道(Swimlanes):包括池和道两种类型。
人工信息(Artifacts):包括数据对象、组、注释。
BPMN前端实现:
https://bpmn.io/toolkit/bpmn-js/ 就是基于BPMN标准实现的一套渲染工具包和web建模器,它既可以是web查看器也可以是web建模器,使用查看器将BPMN2.0流程图嵌入到应用中,使用建模器在应用内部创建BPMN2.0流程图;
BPMN与流程图有很大区别,BPMN是一种规范。
bpmn-js就是基于BPMN标准实现的一套渲染工具包和web建模器。 可视试用下:https://demo.bpmn.io/bpmn
React Flow、G6更多的是偏向于流程图,
X6、LogicFlow涉及简单的bpmn,而bpmn-js根据规范实现了真正的业务流程标准。
bpmn-js画板和形状都是通过tiny-svg的npm工具库进行svg相关的图形操作;X6、logicFlow、reactFlow也是用的svg,G6用的canvas。
BPMN后台方案:
一般基于二开,个人竞品分析如下:
Activiti:是一个轻量级的工作流和业务流程管理 (BPM) 平台,它针对业务人员、开发人员和系统管理员设计。
Flowable:它是 Activiti 的一个分支,专注于性能和可扩展性。
jBPM:java平台,个人首推。相比Camunda BPM 更加灵活嵌入(可以整花活),拿来即用,推Camunda BPM
ProcessMaker:小团队,还是用这个比较合适(PHP语言)。
上叙只有ProcessMaker是PHP开发,AGPL-3.0 协议。其它基本基本都是Apache License 2.0 协议,Java 语言开发(Activiti/jBPM/Camunda BPM)
个人首推activiti (玩的人多)。
RPA
RPA,即Robotic Process Automation(机器人流程自动化),旨在模拟人类在计算机上执行的重复性任务。
通过使用RPA,企业可以创建软件机器人(或简称“机器人”),这些机器人能够学习、模仿并然后自动执行业务流程中的规则性工作。
RPA的目的是提高效率、减少错误并释放人力资源去处理更有价值的工作。
RPA的关键特点包括:
用户界面交互:RPA机器人通常通过与应用程序的用户界面(UI)交互来执行任务,就像人类用户一样。它们可以登录系统、输入数据、计算、处理事务并执行其他各种任务。
规则基础:RPA最适合于那些高度规则化、重复性强的任务。机器人可以遵循明确的规则来执行流程。
非侵入性:RPA技术是非侵入性的,意味着它可以在现有的IT架构上实施,而不需要对现有系统进行大规模的更改或集成。
可扩展性:企业可以根据需要部署任意数量的RPA机器人,以处理不同的任务或应对工作量的波动。
快速实施:与传统的IT项目相比,RPA解决方案通常可以更快地部署和实施,因为它们不需要深入的系统集成或复杂的编码工作。
成本效益:通过自动化手动和重复性的任务,RPA可以帮助企业节省时间和成本,同时提高准确性和一致性。
阿里这玩意卖了很久了:https://www.aliyun.com/product/codestore
通过模拟人的界面操作,自动完成跨系统、跨平台重复有规律的工作流任务,成倍提升人工效率。目前已在零售、政务、制造、银行、保险、医疗、能源、教育等领域得到了广泛应用,累计执行次数已突破200亿次。
以下是这5个开源框架在低代码、可读性、跨平台、开发语言、以及开源协议等方面的对比。
最终我还是直接 那OpenRPA 搞,彻底放弃深入了解的不良企图(巨坑,个人搞不定)!
转载本站文章《FSM/BPMN/Workflow/RPA从入坑(使用BPMN编排RPA)到放弃》,
请注明出处:https://www.zhoulujun.cn/html/Operation/UML/2024_0327_9091.html