BPMN 2.0的流程引擎

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以及操作系统的依赖关系等)。

P.S: 我已经找到了很多关于Activiti vs jBPM的内容,但仍然期待您的答案。


可能是选择哪个工作流引擎?的重复问题。 - Aravind Yarram
我之前已经查看了这个链接,但我更感兴趣的是了解更多现有的引擎,比如我在本次会话中发现了ActiveVOS和Camunda fox(由Rafael在回答中提到)。 - nommyravian
9个回答

4

我也做了这样的研究。以下是对我们具体用例相关的要点:

  1. Bonita:
Bonita采用零编码方法,这意味着他们提供了一个易于使用的IDE来构建过程,无需编码。为此,Bonita有连接器的概念。例如,如果你想使用web服务,他们提供了一个图形化的向导。缺点是您必须手动编写纯XML SOAP包并将其复制到图形文本框中。这种方法的问题在于,您只能实现Bonita旨在实现的用例。如果您要集成Bonita没有为其开发连接器的系统,则必须自己编写这样的连接器,这非常痛苦。例如,Bonita提供用于消费SOAP Web服务的SOAP连接器。此连接器仅适用于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同步的支持,这在生产环境中是一个很大的障碍。另一个需要考虑的问题是,Bonita是根据GPL / LGPL许可证进行许可的,这可能会在您想要将Bonita集成到另一个企业应用程序中时引起问题。此外,社区支持非常薄弱。有几篇帖子已经超过2年了,但这些帖子仍未得到回答。
另一个重要的事情是业务与IT的对齐。建模过程是一种协作性质的学科,其中涉及到IT和业务分析师。因此,您需要适当的工具来满足两个用户组的需求(例如,为开发人员提供Eclipse插件,为业务人员提供易于使用的Web建模器)。Bonita只提供Bonita Studio,需要安装在您的计算机上。这个IDE相当技术化,不适合商业用户。因此,使用Bonita实现业务与IT的对齐非常困难。
Bonita是一款适用于非常简单流程的BPM工具。由于无编码方法,学习曲线非常低,您可以快速开始建模。您需要较少的编程技能,即可实现流程而无需编码。但是,一旦您的流程变得非常复杂,由于缺乏灵活性,Bonita可能不是最佳解决方案。您只能实现Bonita预期的用例。
jBPM:
jBPM是一个功能强大的开源BPM引擎,具有许多功能。Web建模器甚至支持van der Aalst工作流模式(workflowpatterns.com)的预制模型。由于jBPM提供Eclipse集成和基于Web的建模器,因此可以实现业务与IT的对齐。有点棘手的是,您只能在Web建模器中定义表单,而不能在Eclipse插件中定义,据我所知。总之,jBPM是在公司中使用的好选择。我们的瓶颈是可扩展性。jBPM基于规则引擎Drools。这导致整个过程实例作为BLOB在数据库中持久化。在考虑搜索和可扩展性时,这是一个关键的瓶颈。
此外,由于其复杂性,学习曲线非常陡峭。jBPM不像BPMN标准建议的那样提供服务任务。相反,您必须定义自己的Java服务任务,并在引擎中手动注册它们,这会导致非常低级别的编程。
Activiti:
最终,我们选择了Activiti,因为这是一个非常易于使用的基于框架的引擎。它提供了Eclipse插件以及现代化的AngularJS Web模型构建器。通过这种方式,您可以实现业务-IT对齐。REST-API由Spring Security保护,这意味着您可以很容易地扩展引擎以添加单点登录功能。由于Apache许可证2.0,没有版权限制,这意味着您在生产环境中完全免费使用和扩展,这非常重要。
此外,BPMN覆盖范围非常广泛。并非所有BPMN元素都被实现,但我不知道有哪个引擎可以做到这一点。
Activiti Explorer是演示前端,演示了Activiti API的用法。由于该前端基于VAADIN,因此可以轻松扩展。社区非常活跃,这意味着如果您遇到任何问题,可以很快得到帮助。
Activiti提供外部表单技术的良好集成点,这对于生产使用非常重要。所有候选人的表单技术都非常受限制。因此,结合引擎使用标准表单技术(如XForms)是有意义的。即使是更复杂的事情也可以通过formKey属性实现。
Activiti不遵循零编码方法,这意味着如果您想编排服务,您将需要一些编码。但是,即使是与SOAP服务通信也可以通过使用Java Service Task和Apache CXF来实现。编码工作量较低。
希望我的关键点能够帮助做出决策。明确的是,这不是Activiti的广告。正确的产品选择取决于具体的用例。我只想指出我们项目中最重要的点。
最好的问候,Ben

根据您出色的回答,我开始评估Activity。即使在编程2天后,我发现了几个错误,但社区版仍然运行良好。但是他们的GUI基于Vaadin,这对我们来说不太合适。而且该浏览器不适用于生产环境。商业版基于AngularJS,并具有良好的GUI设计师。但它非常昂贵,每年需要48,000欧元。您使用哪种GUI? - Oleg Pavliv
感谢您的反馈。在Activiti 6中,Activiti Explorer将被Angular JS前端所取代(即使在开源版本中也是如此):http://activiti.org/slides2015paris/activiti6_ui.pdf。对于Activiti 5.17,我们使用自定义任务列表以及XForms作为表单呈现技术。也许,您想查看Activiti 6在Github上的代码,以了解新功能的印象:https://github.com/Activiti/Activiti/tree/activiti6 - Ben

4

我对Activiti感到失望。它应该被称为Spring BPM,因为没有Spring它就无法正常工作。如果您不介意使用Spring,那么Activiti可能更适合您。如果您正在使用JEE/CDI,则JBPM更适合。


4

我无法为您提供全面的比较,但我可以给您一些指针,可能会在评估过程中对您有所帮助:

  1. 最近出版了一本 "Activiti in Action" 书,其中有一节审查其他BPMN流程引擎(第1.2.3节 - 了解竞争对手)。
  2. 对于Activiti,最近还推出了一个商业支持版本,称为 camunda fox BPM平台。他们还提供了一个附加值比较 here

非常感谢。那非常有帮助。我实际上花了整整一天的时间发现了很多特性,但在应用服务器集成的可能性方面仍然存在一些不确定性。 - nommyravian

2
Nommy,您应该看看Roubroo - 一个原生支持BPMN 2.0的流程引擎。它没有旧流程引擎被改装以支持新标准的历史遗留问题。它支持BPMN 2.0执行语义,包括IOR网关,我认为这是定义网络图中业务流程的关键。jBPM和Activiti基于底层PVM,对一些工作流模式有很好的支持,但对其他模式则没有。请参阅此研究论文:http://eprints.qut.edu.au/14320/1/14320.pdfhttp://www.workflowpatterns.com/evaluations/opensource/

2
在我看来,Camunda BPM平台目前是开源领域的领导者。 而你提到了开源? 如果你喜欢,可以尝试使用camunda: - 清晰的BPMN引擎(共享、可嵌入或“远程”) - 清晰且可用的REST API - 开箱即用的平台,带有基本的管理工具和开发准备好的API - 最大的开源社区(我的个人意见) - Java生态系统中最佳的方法 - 如果你喜欢Java - 如果你想让你的流程被你的IT团队接受。 http://www.camunda.com/fox/product/details/

0

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


0
关于jBPM: jBPM是一个用Java编写的开源工作流引擎,可以执行在BPMN 2.0中描述的业务流程(或者在早期版本中使用自己的过程定义语言jPDL)。它由JBoss公司发布,遵循ASL(或早期版本中的LGPL)协议。 它包括以下功能:
  • 与业务规则和事件处理强大而有效的集成。
  • 通过Guvnor存储库和管理控制台进行流程协作、监控和管理。
  • 使用独立的WS-HT人员任务服务进行人员交互。
实质上,jBPM将图形化的流程描述作为输入。一个流程由连接序列流的任务组成。流程代表了一种执行流程。流程的图形化图表(流程图)被用作非技术用户和开发人员之间通信的基础。

0

同时也可以看看Imixs-Workflow,这是一个以人为中心的工作流引擎。与通常的引擎不同,Imixs工作流以强烈支持用户为特点。

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

Imixs-Workflow引擎是开源的,可以集成到Jakarta EE中,或者通过在Docker容器中运行的Microservice直接部署。


0
jBPM5对环境是不可知的,它不依赖于JBoss,您可以在任何应用服务器、Servlet容器或SE环境中运行它。jBPM5使用Apache软件许可证V2进行许可,我认为这是一个非常好的想法。 当然,您可以在官方页面上找到更多信息。
祝福

嗨,感谢您的回复,但据我所知,Activiti并不仅依赖于tomcat。相反,所有上述4个引擎都可以部署到JBoss、tomcat、IBM WebSphere和Oracle WebLogic等平台上。 - nommyravian
我在activiti.org/userguide/#demo.setup上读到了以下内容:请注意,Activiti演示设置是展示Activiti功能和功能的一种简单快捷的方式。但这并不意味着这是使用Activiti的唯一方式。由于Activiti只是一个“jar”文件,因此可以将其嵌入任何Java环境中:使用swing或在Tomcat、JBoss、WebSphere等上运行。或者您也可以选择将Activiti作为典型的独立BPM服务器运行。如果在Java中可能,那么使用Activiti也是可能的! - nommyravian
jBPM5也是如此,只有JAR包。 - salaboy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接