3

我们目前有一个基于内部开发的工作流引擎和基于 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 调用外部服务)。

谢谢,汤姆

4

5 回答 5

2

ActivitiBonita都是开源和基于标准的 (BPMN2)。例如见这篇博文

Ruote不是基于标准的,但似乎接近您的 DSL 方法,并且由于JRuby可以在 JVM 上运行。

于 2011-02-05T08:57:41.273 回答
2

Intaloi是一个开源 BPM 引擎,它提供了一个支持 BPMN 的设计器和一个 BPEL 引擎。它是用 Java 编写的。

于 2012-02-05T18:59:44.823 回答
1

jBPM 5(开源,ASL,BPMN2)刚刚发布,它是 Drools Flow 和 jBPM 4 中最好的。它是轻量级的,但它也可以与 Drools 规则引擎深度集成以做出决策。

于 2011-02-07T09:24:38.223 回答
1

Camunda BPM是一个开发人员友好的开源工作流引擎,它基于开放标准 BPMN 2.0、DMN 1.1 和 CMMN 1.1。

虽然它带有一个舒适的图形工作流设计器,但它还附带一个流畅的 API 以编程方式构建工作流。Camunda 是用 Java 编写的,但也可以通过其REST API从其他语言调用,它可以对外部服务进行 REST/Soap 调用

于 2017-08-23T20:55:12.237 回答
0

对于任何正在寻找基于 Python 的企业级解决方案的人。

Zengine是基于 GPL3 BPMN 工作流的框架,具有 Tornado、Rabbit AMQP、高级权限、可扩展的脚手架功能等。

建立在以下主要组件之上;

  • SpiffWorkflow:支持 BPMN 2.0 的强大工作流引擎。
  • Tornado:Tornado 是一个 Python Web 框架和异步网络库。
  • Pyoko:Riak KV 商店的 Django 式 ORM。RabbitMQ:用传奇的 Erlang 语言编写的快速、超锐利的 AMQP 服务器。
于 2018-02-13T20:03:19.490 回答