工作流引擎 BPMN、Drools 等还是 ESB?
我们目前有一个基于内部开发的工作流引擎和基于 YAML DSL 的应用程序。我们希望将其部分内容迁移到 Java。
我发现了许多 Java 解决方案,例如 Intalio、JBPM、Drools Expert、Drools Flow 等。 它们似乎针对业务分析师使用图形编辑器创建工作流并将其提交到工作流引擎的企业。它们似乎面向非技术人员的易用性,而不是面向注重人机交互的开发人员。
工作流程往往看起来像。
Discover-a-file -\
-> join -> process-file -> move-file -> register-file
Discover-some-metadata -/
如果任何步骤失败,我们需要重试 X 次。我们还需要能够停止系统并能够重新启动它并让它从原来的位置继续(持久)。
我们的一些工作流程可以由我们需要实现的一组目标来定义,因此 Jess 的向后规则链听起来很有趣,但它不是开源的。
我们追求的可能是一个有限状态机引擎,或者只是一个企业服务总线,并以 JMS 队列的方式完成所有工作。
是否有一个好的开源工作流引擎,既基于标准又面向开发人员。我们并不是特别想使用图形工作流程设计器或编写大量 XML,理想情况下它应该是 Java 或与语言无关的(对外部服务进行 REST/Soap 调用)。
谢谢, 汤姆
We currently have an application that is based on an in-house developed workflow engine with YAML based DSL. We are looking to move parts of it to Java.
I have discovered a number of java solutions like Intalio, JBPM, Drools Expert, Drools Flow etc.
They appear to be aimed at businesses where the business analyst creates the workflows using a graphical editor and submits them to the workflow engine. They seem geared towards ease of use for non-technical people rather than for developers with a focus on human interaction.
The workflows tend to look like.
Discover-a-file -\
-> join -> process-file -> move-file -> register-file
Discover-some-metadata -/
If any step fails we need to retry it X times. We also need to be able to stop the system and be able to restart it and have it continue from where it was (durable).
Some of our workflows can be defined by a set of goals we need to achieve so Jess's backwards rule chaining sounds interesting but it is not open source.
It might be that what we are after is a Finite State Machine engine or just an Enterprise Service Bus and do everything as JMS queues.
Is there a good open source workflow engine that is both standards-based but also geared towards developers. We don't particular want to use a graphical workflow designer or write reams of XML and it should ideally be in Java or language agnostic (makes REST/Soap calls to external services).
Thanks,
Tom
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Activiti 和 Bonita 是开源且基于标准的 (BPMN2)。例如,请参阅此博客文章。
Ruote 不是基于标准的,但看起来很接近您的 DSL 方法,并且由于 JRuby。
Both Activiti and Bonita are open source and standard based (BPMN2). See for example this blog post.
Ruote is not standard based but seems close to your DSL approach and runs on a JVM thanks to JRuby.
Intaloi 是一个开源 BPM 引擎,它提供 BPMN 支持设计器和 BPEL 引擎。它是用 Java 编写的。
Intaloi an open source BPM engine it offers a BPMN-support Designer and a BPEL engine. it's written in Java.
Camunda BPM 是一个开发人员友好的开源工作流引擎,基于开放标准 BPMN 2.0、DMN 1.1 和 CMMN 1.1。
虽然它确实配备了舒适的图形工作流程设计器,但它还配备了以编程方式构建工作流程的流畅 API。 Camunda 是用 Java 编写的,但也可以通过其 REST API,它可以 对外部服务进行 REST/Soap 调用。
Camunda BPM is a developer-friendly Open Source workflow engine that is based on the open standards BPMN 2.0, DMN 1.1 and CMMN 1.1.
While it does come with a comfortable graphical workflow designer it also ships with a fluent API to build workflows programmatically. Camunda is written in Java, but can also be invoked from other languages via its REST API and it can make REST/Soap calls to external services.
jBPM 5(开源、ASL、BPMN2)刚刚发布,它是 Drools Flow 和 jBPM 4 中最好的版本它很轻量级,但也可以与Drools规则引擎深度集成来做出决策。
jBPM 5 (open source, ASL, BPMN2) is just released and it's the best of Drools Flow and jBPM 4. It's lightweight but it can also integrate deeply with the Drools rule engine to make decisions.
适合任何正在寻找基于 Python 的企业级解决方案的人。
Zengine,是基于 GPL3 BPMN 工作流的框架,具有 Tornado、Rabbit AMQP、高级权限、可扩展脚手架功能等。
构建于以下主要组件之上;
RabbitMQ:使用传奇的 Erlang lang 编写的快速、超锐的 AMQP 服务器。
For anyone looking for Python based enterprise grade solution.
Zengine, is GPL3 BPMN workflow based framework with Tornado, Rabbit AMQP, advanced permissions, extensible scaffolding features and more.
Built on top of following major components;
RabbitMQ: Fast, ultrasharp AMQP server written with legendary Erlang lang.