jBPM5与Activiti5比较
主要相似之处:
- 都是BPMN2过程建模和执行环境。
- 都是BPM系统(符合BPM规范)。
- 都是开源项目-遵循ASL协议( Apache的 软件许可)。
- 都源自JBoss(Activiti5是jBPM4的衍生,jBPM5则基于Drools Flow)。
- 都很成熟,从无到有,双方开始约始于2年半前。
- 都有对人工任务的生命周期管理。 Activiti5和jBPM5唯一的区别是jBPM5基于WebService - HumanTask标准来描述人工任务和管理生命周期。 如有兴趣了解这方面的标准及其优点,可参阅WS - HT规范介绍 。
- 都使用了不同风格的 Oryx 流程编辑器对BPMN2建模。 jBPM5采用的是 Intalio 维护的开源项目分支。 Activiti5则使用了Signavio维护的分支。
主要差异之处:
- 技术支撑公司/商业模式
- 项目负责人/技术社区
- 项目的目标
- 选择的标准
基于上述四点以及个人或公司的需求,可以花些时间来判定:那一项目最符合你项目的需求!
需要说明的是,如果是学习新技术的Java开发人员,开发第一个应用程序或尝试理解业务流程管理系统,可以利用这种比较优势。值的注意的是了解这两个项目将有助于提高技能、学习最佳实践、结构设计、应用开发的新方法、好的规范和好的(团队)协作方式。请选择其中之一,当理解其中之一的概念时,以便适应另外一个(项目),但须学习新的API,适应和学习更广泛的一些概念。
1)项目支撑公司/商业模式
这两个项目都依据ASL(Apache软件许可证)发布,从许可角度来看完全一样。 没有任何限制。其次,如为学习新东西的开发人员,,它们都将非常合适。 如果没有太多关于业务流程管理的专业知识,二者看上去都差不多。
据我所知,红帽/ JBoss的业务有关的服务,其支撑费用来自销售服务和支持。如果你想在RedHat花钱,可购买SOA平台的全部支持服务。然而,截止目前你无法购买严格的jBPM支持。 这可能是一个很大的优势,这意味着如果您购买红帽的支持服务,您将获得完整的中间件支持服务。 红帽是一家专业提供该服务公司。
我曾为Alfresco的CMS工作,了解其社区以及围绕CMS的业务,但我仍对他们的Activiti5业务计划困惑。 作为一家公司,他们可以将Activiti5嵌入在CMS项目内运行,如同jBPM3一样,也可以提供有关业务流程管理系统解决方案的有偿服务。 在官方网站(www.activiti.org)上,他们没有提过什么Alfresco的Activiti5有偿服务。 我不知道Alfresco公司是否计划在不久的将来提供它们。
2)项目负责人/社区
众所周知,了解JBPM4.x历史的所有社区成员基于相似的代码库和配置转移到Activiti5。 所以,jBPM 4.x和Activiti5的社区是相同的。
jBPM5的社区成员可能多为想获得Redhat/JBoss官方支持的jBPM3.x的用户,或为理解基于规则引擎的BPM系统优势的新用户。Drools Flow的社区成员及其用户,很容易移植他们的应用到jBPM5,社区对移植工作的准备工作已经完成,且开发了针对jBPM3.x的迁移工具。
可从这里获得许多关于jBPM5的资源链接:http://blog.athico.com/2011/01/recent-jbpm-5-blogs-articles-videos-and.html。
如有特定的主题或你想阅读的有关主题,请随时给我写信。我真的很喜欢写关于jBPM5和Drools的东西,做比较是有趣的事情!
现在,jBPM5是一个从Drools Flow分出的独立项目,但与规则引擎高度集成。 该项目的负责人 Kris Verlaenen,在做一个伟大的尝试:在月末发布第一个稳定的版本【译者注:实际上在本文编译时,jBPM5正式版已经发布】。
而Activiti5这一方, Tom Baeyens 和Joram Barrez 正在做一个出色的工作:试图使他们重构的BPM系统获得关注和接纳!
3)项目目标
据我所知,这两个项目有很不同的观点和目标。 Activiti5团队为用户的接纳而拼搏,而jBPM5团队则为改善观念,为伟大的功能和灵活性而奋斗。
由于不同的目标和发展方向,无法说那一个比另一个好。若为接受度而拼搏,则专注于沟通、工具和整合上。接受度的发展方向具有较短的发布周期和稳定的产品交付。
若计划中包含从未开发的特性,那么就需要较长的发布周期。从我的角度来看,Drools Flow是一个创新项目,从重新设计,以及规则引擎与BPM之间的相互作用,提供了更丰富的功能和很大程度的灵活性,来为真实应用建模。
现在,jBPM5是一个比较普通的项目。 现正在做的相关工具和演示工作,展示常见的用法。jBPM5第一个稳定版本发布后,将在未来几个月后变得非常好。
4)发展方向/选择标准
没有简单的答案。 如您正寻找一个简单的轻量级的业务流程管理软件二者都适合。若是第一次体验业务流程管理,无论选择哪一个,都会快乐,都会有麻烦。
如果想加入一社区为项目做贡献,二者都可以。对于Alfresco社区,我无法给出建议,因为我并未深入其中,但看似很活跃,jBPM5的社区也是一个相当活跃的社区--作为Drools和jBPM3社区合并的结果,你会看到在论坛和IRC频道中的活跃程度很强。
你可能自问的重要问题
我正在为今后几年选择一个业务流程管理系统或它仅是一个小项目?
如果这个问题的答案是:
- 我刚开始 或 我将创建一个简单的Web应用程序,显示了基本的功能 或 应用程序将不被大量用户使用 或 应用将不被组织看重 或 我们没有复杂的业务流程我们没有复杂的业务情况, 这两个项目都将正常工作 。
- 我需要建立一个中等规模的应用,广泛应用业务流程,业务流程不很复杂(不超过20项活动,没有太多的特殊分支)和应用系统对公司并不重要, 这两个项目将工作良好 。
- 我需要建立一个新的架构,使我有最大的灵活性来表达复杂/现实生活中的情景 , 我理解规则引擎的威力,我理解其与BPMS结合的优势(统一处理业务流程和业务逻辑,使用相同的API,尽可能被视为声明),那么你真的需要尝试jBPM5! 这不是常见的情况,通常只有高级用户已经开发了超过一个BPM应用,才会关注这些优势。 如果你不知道如何利用规则引擎的能力,这两个项目将给你同等的功能。 如果你分析了业务流程管理系统的共同特征,这两个项目之间没有明显的优势。 当你开始了解规则引擎的的优点和能力,或当你真的需要一个规则引擎与工作业务流程管理系统协同工作时,你清楚地知道未来两年内该如何选择。