我们目前的应用程序基于内部开发的工作流引擎和基于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调用)。
谢谢, 汤姆
答案 0 :(得分:2)
答案 1 :(得分:2)
Intaloi 一个开源BPM引擎,它提供了BPMN支持设计器和BPEL引擎。它是用Java编写的。
答案 2 :(得分:1)
jBPM 5(开源,ASL,BPMN2)刚刚发布,它是Drools Flow和jBPM 4中最好的。它很轻巧,但它也可以与Drools规则引擎深入集成以做出决策。
答案 3 :(得分:1)
Camunda BPM是一个开发人员友好的开源工作流引擎,它基于开放标准BPMN 2.0,DMN 1.1和CMMN 1.1。
虽然它附带comfortable graphical workflow designer,但它附带fluent API to build workflows programmatically。 Camunda是用Java编写的,但也可以通过REST API从其他语言调用,它可以make REST/Soap calls to external services。
答案 4 :(得分:0)
任何寻找基于Python的企业级解决方案的人。
Zengine,是基于GPL3 BPMN工作流的框架,具有Tornado,Rabbit AMQP,高级权限,可扩展的脚手架功能等。
建立在以下主要组件之上;