7

我正在对所有现有的 BPMN 2.0 流程引擎(例如 Activiti、jBPM 等)进行比较。我准备了一个执行下面给出的 BPMN 2.0 的 4 个流程引擎的列表;

流行的符合 BPMN 2.0 的开源引擎:

Activiti: http://www.activiti.org/
jBPM: http://www.jboss.org/jbpm
Bonita: http://www.bonitasoft.com/

商用引擎:

ActiveVOS: http://www.activevos.com/products

如果您通过在上面的列表中添加任何现有的流程引擎(用于 BPMN 2.0)以及所有之间的快速比较来加强我的研究,我将不胜感激。

我宁愿做一个非常简短的比较,只列出重要的特性(区分特性,比如一个人可以做的事情,其他人不能做的事情,许可,与其他产品(如 tomcat 和 JBoss 以及操作系统等)的依赖关系)

PS:我在 Activiti vs jBPM 上发现了很多,但你的回答仍然是一个忙。

4

9 回答 9

4

我对 Activiti 很失望。它应该被称为 Spring BPM,因为没有它它就不能很好地工作。如果您不介意使用 Spring,那么 Activiti 可能更合适。如果您使用的是 JEE/CDI,那么 JBPM 更合适。

于 2013-12-07T03:31:52.027 回答
4

我无法为您提供全面的比较,但我可以为您提供一些建议,以帮助您进行评估:

  1. 一本“ Activiti in Action ”一书刚刚出版(2012 年 7 月),其中您将有一节回顾其他 BPMN 流程引擎(第 1.2.3 节 - 了解竞争对手)。
  2. 对于 Activiti,最近还存在一个名为camunda fox BPM Platform的商业支持版本。它们还提供了与此处提供的附加值的比较。
于 2012-07-18T15:59:45.753 回答
4

我也做过这样的研究。以下是与我们的具体用例相关的关键点:

  1. 博尼塔:

Bonita 采用零编码方法,这意味着它们提供了一个易于使用的 IDE 来构建您的流程,而无需编码。为此,Bonita 提出了连接器的概念。例如,如果您想使用 Web 服务,它们会为您提供图形向导。缺点是您必须手动编写纯 XML SOAP 信封并将其复制到图形文本框中。这种方法的问题在于,您只能实现 Bonita 预期的用例。如果你想集成一个 Bonita 没有为其开发连接器的系统,你必须自己编写这样的连接器,这是非常痛苦的。例如,Bonita 提供了一个 SOAP 连接器来使用 SOAP Web 服务。此连接器仅适用于 SOAP 1.2,但不适用于 SOAP 1.1 (http://community.bonitasoft.com/answers/consume-soap-11-webservices-bonita-secure-web-service-connector)。如果您有一个带有 SOAP 1.1 的遗留应用程序,那么您无法轻松地将这个系统集成到您的流程中。数据库也是如此。专用数据库版本只有几个数据库连接器。如果您的版本与连接器不匹配,则必须自己编写代码。

此外,Bonita 在免费社区版中不支持 LDAP 或 Active Directory Sync,这对于生产环境来说是一个相当不错的选择。另一件需要考虑的事情是,Bonita 是根据 GPL / LGPL 许可证获得许可的,当您想将 Bonita 集成到另一个企业应用程序中时,这可能会导致问题。此外,社区支持非常薄弱。有几个帖子已超过 2 年,这些帖子仍未得到答复。

另一个重要的事情是业务-IT-对齐。建模流程是 IT 和业务分析师参与其中的协作学科。这就是为什么您需要为两个用户组提供足够的工具(例如,为开发人员提供的 Eclipse 插件和为业务人员提供的易于使用的 Web 建模器)。Bonita 只提供 Bonita Studio,需要安装在你的机器上。这个IDE技术性很强,不适合商业用户。因此,很难与 Bonita 实现 Business-IT-Alignment。

Bonita 是一个 BPM 工具,用于非常琐碎和简单的流程。由于零编码方法,学习曲线非常低,您可以非常快速地开始建模。您需要较少的编程技能,并且无需编码即可实现您的流程。但是一旦您的流程变得非常复杂,由于缺乏灵活性,Bonita 可能不是最佳解决方案。您只能实现 Bonita 预期的用例。

jBPM:

jBPM 是一个非常强大的开源 BPM 引擎,它有很多特性。Web 建模器甚至支持一些 van der Aalst 工作流模式的预制模型 (workflowpatterns.com)。Business-IT-Alignment 是可以实现的,因为 jBPM 提供了 Eclipse 集成以及基于 Web 的建模器。有点棘手的是,据我所知,您只能在 Web 建模器中定义表单,而不能在 Eclipse 插件中定义。总而言之,jBPM 是在公司中使用的不错选择。我们最引人注目的是可扩展性。jBPM 基于规则引擎 Drools。这导致整个流程实例在数据库中作为 BLOBS 持久化。当您考虑搜索和可扩展性时,这是一个重要的展示因素。

此外,由于复杂性,学习曲线非常高。jBPM 不像 BPMN-Standard 建议的那样提供服务任务。相反,您必须定义自己的 Java 服务任务,并且必须在引擎中手动注册它们,这会导致编程非常低级。

活动:

最后,我们选择了 Activiti,因为这是一个非常易于使用的基于框架的引擎。它提供了一个 Eclipse 插件以及一个现代的 AngularJS Web-Modeler。这样,您就可以实现Business-IT-Alignment。REST-API 由 Spring Security 保护,这意味着您可以使用单点登录功能非常轻松地扩展引擎。由于 Apache 许可证 2.0,没有 copyleft,这意味着您在使用和可扩展性方面完全免费,这在生产环境中非常重要。

此外,BPMN-coverage 非常好。并非所有 BPMN 元素都已实现,但我不知道有任何引擎可以做到这一点。

Activiti Explorer 是一个演示前端,它演示了 Activiti API 的使用。由于此前端基于 VAADIN,因此可以非常轻松地进行扩展。社区非常活跃,这意味着如果您有任何问题,可以非常快速地获得帮助。

Activiti 为外部表单技术提供了良好的集成点,这对于生产使用非常重要。所有候选人的形式技术都​​非常严格。因此,将 XForms 之类的标准表单技术与 Engine 结合使用是有意义的。甚至这样更复杂的事情也可以通过 formKey-Attribute 来实现。

Activiti 不遵循零编码方法,这意味着如果您想编排服务,您将需要一些编码。但即使是与 SOAP 服务的通信也可以通过使用 Java 服务任务和 Apache CXF 来实现。编码工作量很低。

我希望我的关键点可以帮助您做出决定。需要明确的是,这不是 Activiti 的广告。正确的产品选择取决于具体的用例。我只想指出我们项目中最重要的几点。

最好的问候本

于 2015-06-15T20:40:09.113 回答
2

在我看来,Camunda BPM Platform 目前是开源领域的领导者。你提到了开源?因此,如果您愿意,请尝试 camunda: - 以 BPMN 为重点的干净引擎(共享、可嵌入或“远程”) - 干净且可工作的 REST API - 具有基本管理工具和开发就绪 API 的开箱即用平台 - 最大的开源社区(我的persnoal oppinion) - java 生态系统中的最佳方法。- 如果你喜欢 Java。- 如果你想让你的流程被你的 IT 人群接受。 http://www.camunda.com/fox/product/details/

于 2013-10-10T17:20:35.830 回答
2

Nommy,你应该看看 Roubroo——一个为原生支持 BPMN 2.0 而构建的流程引擎。它没有为支持新标准而改造旧流程引擎的遗留问题。它支持 BPMN 2.0 执行语义,包括 IOR 网关,我认为这是在网络图中定义业务流程的关键。jBPM 和 Activiti 基于底层 PVM,它对某些工作流模式有很好的支持,但不支持其他工作流模式。看看这篇研究论文:http ://eprints.qut.edu.au/14320/1/14320.pdf 和http://www.workflowpatterns.com/evaluations/opensource/

于 2012-07-24T19:00:01.853 回答
0

jBPM5 与环境无关,它不依赖于 JBoss,您可以在每个应用服务器、Servlet 容器或 SE 环境中运行它。jBPM5 获得了 Apache Software License V2 的许可,我认为这是一个非常好的主意。您当然可以在官方页面中找到更多信息。

干杯

于 2012-07-18T15:16:25.480 回答
0

关于jBPM:jBPM 是一个用Java 编写的开源工作流引擎,可以执行BPMN 2.0 中描述的业务流程(或早期版本中它自己的流程定义语言jPDL)。它由 JBoss 公司在 ASL(或早期版本中的 LGPL)下发布它包括,

  • 与业务规则和事件处理的强大集成。
  • 通过 Guvnor 存储库和管理控制台进行流程协作、监控和管理。
  • 使用独立的 WS-HT 人工任务服务进行人工交互。

本质上,jBPM 将图形化流程描述作为输入。流程由与顺序流连接的任务组成。流程代表一个执行流程。流程的图形图(流程图)用作非技术用户和开发人员之间交流的基础。

于 2015-06-03T12:35:31.283 回答
0

看看Zeebe.io - 一个现代的云原生工作流引擎,具有一流的 Node.js 支持。

于 2019-11-06T10:57:02.693 回答
0

还可以看看Imixs-Workflow,它是一个以人为中心的工作流引擎。与通常的引擎不同,Imixs 工作流程的特点是对以用户为中心的强大支持。

以人为本的业务流程管理意味着以面向任务的方式支持人的技能、活动和协作。使用这样的工作流引擎,您可以在基于 BPMN 2.0 标准的事件驱动的 BPM 架构中保护和安全地分发业务数据。

Imixs-Workflow 引擎是开源的,可以集成到 Jakarta EE 或开箱即用的部署中,微服务在Docker容器中运行

于 2018-05-12T22:43:09.013 回答