工作流技术选型(上)

工作流技术选型(上)

 

拥有无数的选择可能是一件很棒的事情,但也可能会让人不知所措……今天的工作流市场就是这种情况。如果您是一家在2021年在这里寻找工作流程或BPM(业务流程管理)平台的公司,您应该选择:

  1. BPM套件,例如IBM BPM,Pegasystems或Appian,
  2. 开源工作流程平台,例如Camunda BPM,Flowable或Activiti
  3. 轻量级的工作流程或服务编排平台,例如Camunda Zeebe或Netflix Conductor

让我们从更高的角度来看待这个问题,并讨论在做出决定时应考虑的每个特征。最后,我们将提供两个问题-回答后-将使您从自己的评估过程入手。

 

BPM套件的构建旨在为构建复杂的业务流程应用程序提供完整的工具包。这意味着他们经常使用非常有用的工具(例如,拖放式界面设计器,低代码或无代码数据集成功能,应用程序仪表板构建器和/或过程报告工具)来增强其过程建模和执行功能。它们通常还与可用于自定义的预构建解决方案模板一起提供。这是一个在Appian中拖放用户界面的创建工具(适当地称为“界面设计器”)的示例,该工具旨在允许用户轻松快速地构建用户界面(此处提供图像,并根据美国合理使用原则使用):

 

图1:Appian的界面设计器

Appian的界面设计器

 

在Appian的情况下,他们的低代码功能​​是如此出色,以至于他们不断发展,现在将自己定位为“低代码”公司,而不是BPM /工作流程公司。

 

不幸的是,由于供应商需要提供如此广泛的功能集,因此他们无法真正专注于流程/工作流程/编排引擎; 结果,这些引擎可能无法与开源平台或轻量级工作流系统提供的竞争引擎很好地比较。例如,这可能在引擎中表现出来,这些引擎要么在负载下表现不佳,要么没有能力协调全自动工作流程。另外,相比之下,它们的平台往往不灵活;它们为您提供了低代码或无代码的能力来完成出色的工作,但是您只能按照他们规定的方式来执行这些操作。这可能会阻碍开发人员,并可能导致他们在BPM套件之外开发流氓的一次性解决方案。而且,它们通常不适合与当今的容器和容器管理解决方案一起使用,例如Docker和Kubernetes。

 

这些平台需要传统部署,大型且功能丰富的软件应用程序的情况下使用,也许在您没有其他用于构建用户界面的工具或没有其他工具用于报告的情况下通过运行工作流应用程序收集的数据。它们可以帮助您快速部署简单或非常特定的工作流应用程序;只需了解这种功能会牺牲灵活性和吞吐量性能。

 

开源BPM平台与BPM套件有两个实质性的区别:(1)它们更加关注其核心引擎的功能;(2)它们是专门为灵活和对开发人员友好而构建的。让我们深入研究这些项目。

 

首先,他们专注于确保其核心引擎非常注重性能。让我们以Camunda BPM为例。当我在Camunda担任咨询和技术销售团队的主管时,我们就拥有了(全球)最大的客户群。该公司每天在廉价的商品硬件上处理约1亿个工作流节点实例。使用任何BPM套件都无法达到该数量。

 

其次,他们专注于对开发人员友好。再次以Camunda BPM为例,您可以(1)在现有Java应用程序中(无论是否在应用程序服务器上)运行它,(2)在具有共享引擎(或多个共享引擎)的Tomcat或Java Enterprise Edition应用程序服务器上运行它-跨应用程序,(3)通过Spring Boot或(4)在容器中,例如Docker。此外,您可以使用Java,JavaScript或可以调用REST API的任何应用程序来构建代码,以与平台上托管的流程应用程序一起使用。BPM套件无法提供这种程度的灵活性。

 

重要的是,它们提供与BPM套件相同的常规工作流功能。它们几乎提供了BPMN 2.0功能的全部内容,即,您希望从功能齐全的工作流或业务流程管理产品中获得的所有功能。

 

这些工具还允许您同步执行完全自动化的流程,类似于使用诸如webMethods之类的ESB / EAI工具或诸如Netflix Conductor之类的“轻量级”工作流程工具所进行的处理。请考虑以下两个过程模型:

 

相关教程