自ACTIVITI以来,flowable取得的十大进步

自ACTIVITI以来,flowable取得的十大进步

那些了解Flowable历史的人都知道,这是最初创建Activiti的团队进行的Activiti开源项目的分支。本文不打算讨论产生分叉的原因,而是介绍自那时以来所做的改进。我们被问到很多关于两个开源代码库(以及Activiti的其他分支)之间的区别的信息,因此,这是尝试找出自此以来取得的许多进步中的10个。可以肯定的是,关于开源的美丽之处在于,您可以查看其周围的代码和活动,以亲自体验。

1. CMMN –案例管理开放标准为业务自动化开辟了新天地

从战略上讲,这是巨大的。在工具箱中引入CMMN引擎将为建模智能业务自动化添加全新的维度。最重要的是,此引擎是CMMN语义的完全本机实现,因此它不会背负BPMN引擎。在与BPMN执行有共同点的地方,例如为用户创建任务,那么在引擎之间就存在共享服务来提供该服务。将CMMN,BPMN和DMN组合为单个解决方案的一部分已成为一种规范。在实际的实现中,我们发现CMMN提供一种强大的方式来建模非常人为或事件驱动的问题。解决复杂自动化的建模人员还发现,它是描述整个端到端业务活动,管理不同流程及其在任何时间点满足需求的相关性的复杂方法。

2.用于最新架构的事件流集成

如今,许多解决方案都使用事件作为微服务,系统与人员之间交互的基础,无论是Kafka / Confluent,RabbitMQ,AWS SQS还是ActiveMQ/ JMS。Flowable中的现成集成具有高度可扩展性和可扩展性。可以从基础事件实现中抽象出来,而只处理包含流程和案例变量的业务事件。在不影响描述其影响的案例或流程模型的情况下,低级实现可以更改。现在甚至有一个内部事件机制,它提供了事件驱动的自动化的好处,而实际上并不需要外部框架。对于使用BPMN进行事件编排非常有用,当与CMMN结合使用时,它甚至更强大,可以对事件驱动的行为提供上下文敏感性。

3.本地BPMN执行预示着下一代的开始

这项重大更改是在团队研究Activiti时开始的,但是直到派上Flowable才完成。Java BPM引擎的不同版本都有一段历史,描述了引入抽象流程虚拟机的演变,然后在当前的BPMN执行中对其进行了优化。这项功能为执行BPMN开辟了很多选择,而这与上一代引擎几乎是不可能的,同时还可以增强性能。这些功能之一很重要,足以被单独调用……

4.动态过程注入,可通过人或机器进行智能适应

听起来很痛苦,但这是允许将流程片段按需引入用户正在运行的流程实例中的一种非常有效的方式-由用户或自动(例如由AI驱动)。您可以部署一个流程模型并启动任意数量的实例,然后针对每个实例执行通用模型中定义的模型步骤。通过动态注入,可以将任意任务甚至完整的流程模型随时插入到正在运行的实例中,并且该实例将继续运行,就像该模型最初包含插入的流程一样。这意味着可以对简单的基本过程进行建模,而不必考虑所有可能的例外情况,然后依靠人为或机器学习的系统来决定注入过程来处理不同的情况。

5.充满活力的社区与发展使创新之火如火如荼

您只需要查看Github和开放源代码论坛,以了解开发在Flowable核心引擎上的活跃程度。同样,来自社区的捐款数量也在不断增加。全球各地都有人们使用Flowable进行宠物项目或为全球关键任务解决方案提供支持,许多人将帮助回答新手和有经验的人的问题。

6.异步历史记录意味着您可以快速运行而不会忘记

最大化性能和最小化数据库大小是此功能的一些关键驱动力。将历史记录保存在同一数据库中以及必须根据管理数据库大小来决定所需的审核历史记录级别的原始方法显然只是第一步。与其他工具一样,我们添加了修剪功能以删除历史记录。但是通过添加一种完全不同的方法,Flowable能够提供更快的吞吐量,并将事务历史记录传递给外部系统(通常为NoSQL)以进行仓储或分析。更具体地说,我们已经使用它将历史数据馈送到机器学习系统,然后反馈给流程和案例执行。

7.抽象数据源始终为新事物和未知事物做好准备

Flowable使用的数据库不必是关系数据库。只要数据源可以支持事务,Flowable就可以使用它。尽管大多数人的确将Flowable与关系数据库一起使用,但仍有一些人希望它在非关系数据库上运行。数据库的世界总是可以改变的,因此通过提供抽象数据源,Flowable将随时准备利用诸如CockroachDB之类的技术进步。它还为人们提供了选择,以他们想要的方式使用他们想要的任何数据源。有一个与MongoDB的实验性集成来说明这一点。

8.优化的数据库架构,旨在满足不断增长的性能需求

我们一直在努力研究如何存储和查询数据,以及如何以高吞吐量和高规模执行数据。这导致对活动流程和作业的数据表示方式进行了大量改进。瓶颈之一是使用历史记录数据源来查找有关实时实例的先前步骤的信息。Flowable现在将有关活动实例的所有信息与历史记录分开,因此历史记录的大小无关紧要,运行时性能是最佳的。同样,以前不同类型的作业共享相同的源,但是现在分别保存其数据,以确保最快地查询作业状态。

9. DMN DRD用于在已经明智的决策基础上做出更明智的决策

使用Flowable,您可以将多套业务规则链接在一起以形成更高级别的决策。DMN是用于描述通过业务规则进行决策的开放标准。Flowable中的决策需求图使您可以建模作为依赖关系连接的多个决策表。代替使用流程定义业务规则结果的汇总,可以使用单个DRD。

10.真正的并行网关,不会伪造和阻止

对于所有基于Activiti的引擎,并行网关之后的任务执行实际上不是并行的:所有流都已序列化。Flowable凭借其新的体系结构能够解决此问题,并且能够以真正的并行方式执行并行流。不仅如此,它还可以高效地执行阻塞任务,例如进行REST调用(从技术角度来说,线程最少)。在处理并行的人工任务时,这并不是那么成问题,但是在处理并行运行的微服务或事件时,这一点至关重要。当然,事务一致性也得到了充分维护。

11.流动的团队

Flowable将功率提高到11。所有这些优势的背后是不断创新的团队随着技术的发展和我们周围需求的变化,推动开源BPM和智能业务自动化的发展。这些人从根本上发展了引擎,却没有引起连续性或能力丧失的任何革命。各个版本之间的接口和架构一致性意味着从旧的基于Activiti的体系结构到Flowable的迁移非常简单-即使有任何进行中的流程。只有当其背后的团队对BPM引擎的实现以及使用它的企业和组织的需求有深刻的了解时,您才能实现这种梦想。创造最佳软件的坚定不移的承诺,开放性和热情。

 

相关教程