2011-02-04 172 views
2

我们目前有一个基于内部开发的基于YAML的DSL工作流引擎的应用程序。我们正在考虑将其中的一部分移至Java。工作流引擎BPMN,Drools等或ESB?

我发现了一些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调用外部服务)。

感谢, 汤姆

+0

http://java-source.net/open-source/workflow-engines-我不会发布这个答案,因为我没有这些经验。 – TrueWill 2011-02-04 23:16:30

回答

2

两个ActivitiBonita都是开源的,基于标准(BPMN2)。例如见blog post

Ruote不是基于标准的,但似乎接近您的DSL方法,并且运行在JVM上,这要归功于JRuby

+0

感谢您的链接,我会结帐Bonita和路线。我已经下载并尝试过Activiti,虽然它说它是为开发人员设计的,但我找不到有关如何创建服务任务或如何将工作流程连接到Web服务的任何文档。它似乎非常适合人类任务工作流程。 – Tom 2011-02-06 13:25:46

1

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

2

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

0

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

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

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

  • SpiffWorkflow:功能强大的工作流引擎,支持BPMN 2.0。
  • Tornado:Tornado是一个Python Web框架和异步网络库。
  • Pyoko:Django esque ORM for Riak KV商店。 RabbitMQ:用传奇的Erlang语言编写的快速,超高速AMQP服务器。