我正在从事与银行领域相关的项目,其中我们使用weblogic JPD框架进行BPM(工作流引擎)。对于按照要求的新项目,我们需要使用开源BPM框架。我用谷歌搜索并遇到了JBOSS JBPM。我担心的是JBPM足够稳定地用于大规模银行应用程序,不要误解我只是因为JBPM不是商业产品,因为它是weblogic JPD。是否还有其他开源BPM框架选项。
答案 0 :(得分:7)
这是我的2美分。我应该首先说,我是一个java工作者,他已经和jBPM一起工作了大约两个月了。我没有通过代码,我依靠(新)jBPM 5书(这是体面的),在线用户指南,这是体面的,讨论组的问题/答案。我是BPMN的新手。我见过一些漂亮的商业工作流程产品。我敢肯定,如果你用google搜索,你找到了Activiti,但jBPM是我的域名体验。
1)不要对Kris不尊重,但我想知道jBPM的适应性有多广。注意,有频繁的源提交;我的感觉完全基于在线社区。例如,一些项目(例如Apache Camel)拥有令人难以置信的文档,最重要的是一个活跃的用户群。我觉得jBPM的“专业知识”领域非常小。我的意思是,如果你看一下讨论组,大多数问题的答案都来自大约六个人。值得庆幸的是,大部分项目都深入项目的开发/管理(如Kris),因此他们知识渊博。他们知道需要熟悉代码的小技巧(特殊铸造,可自动使用的变量等)。
2)对我来说,演示/示例仅适用于其特定的有限背景。例如,由于包含的ant脚本,在端口8080上安装所有AS7和jBPM工具套件是一个命令。但是,我花了几天时间在7070端口站起来。你看到的许多视频设置/复制都比它们出现的要复杂得多。
3)你会使用规则吗?不要认为,因为你可以使用jBPM的规则/ drools,它们很好(或至少是直观地)集成。它们的使用,当它们被触发时,它们如何被使用,在除了最基本的案例之外的所有情况下都是混淆的持续来源。
4)Drools Flow和jBPM项目大约一年前整合。我不确定这是否相关,但我常常被jBPM和Drools之间类似命名的类混淆,但是在不同的包中。您不会在文档中找到包使用信息。例如,当我得知我可以访问ProcessInstance时,通常我做的第一件事是system.out类名,看它是哪个实现,因为无论我是从规则还是从工作项访问它,功能都会有很大差异处理程序或脚本任务等。
5)我发现了一些元素,特别是与持久性相关的元素,有点笨拙。例如,如果你想得到会话中运行的进程列表(ksession),ksession.getProcessInstances()效果很好....除非你使用持久性 - 然后,你仍然可以调用它,它返回一个空列表。在这种情况下,您必须求助于设置记录器,并从日志表中查找进程ID。这很容易做到,javadoc中有关于getProcessInstance的注释,但我仍然认为这很难看。
你似乎专注于开源。我不确定你是否有报酬,或者你是否会雇用某人。我会像所有开源一样说,代码是免费的,但实际上它可以做一些事情。我在这里预测,但我怀疑使用jBPM开发大规模产品会比你预期的要多得多。此外,谷歌“jbpm无法扩展”有关可扩展性的有趣(和良好)讨论。
请不要以为我是jBPM抨击;我今天正在用它构建一个项目,这是一个非常多的“免费”和令人印象深刻的功能。祝好运。 HTH
答案 1 :(得分:0)
它被用于生产的很多地方。
它也是商业产品,Red Hat作为BRMS / BPMS平台的一部分销售订阅: http://www.redhat.com/products/jbossenterprisemiddleware/business-rules/