前言
在前面的博客中我有对JBPM及其历史进行了简单的介绍,而且还对JBPM4的配置使用进行了简单的讲解,但是该OA视频当中使用的是JBPM3,下面我们就对这两个版本的JBPM进行一下比较。
正题
1.共同点
在前面的博客中有介绍到说Jbpm的发展历史,即在Jbpm5之后进行了全面改革,整体核心思想换成了DroolsFlow,从这点来说,Jbpm3和Jbpm4的核心机制是一样的。
2.不同点
1)jbpm4引入了PVM(ParallelVirtual Machine,并行虚拟机)的概念。
2)jbpm4提出了两个目标:
a.改进可支持性:通过持续集成,对所支持的产品环境、配置提供更好、更长期的支持保证。
b.降低门槛,提升应用率:区分公共基础型应用和高级定制化应用两种应用模式,让前者上手更快,后者也能减少开发难度。
3)全新API
jbpm4相对于jbpm3来说整个项目几乎重写:新的流程定义语言、新的引擎实现、新颖的PVM概念、新的配置方式、全新的开发接口、全新的数据库结构...但是都遵循2)中的两个目标。
但是通过devguide提供的变更表,再结合新的JBPM4.1发布包的内容,可以发现,从JBPM3到JBPM4,真正的变化仅仅是:
1、流程定义语言的模型没有改变,只是部分元素的命名发生变化
2、流程执行引擎的算法没有改变,只是对原有引擎进行了优化,去掉了冗余的roottoken。JBPM4出来后,包括在JavaEye里,有不少的文档探讨了JBPM引擎的变化,有的文章分析说其核心引擎的调度机制完全不同了,这是不对的,因为还是Token机制,只是换了个名字(Execution),加上一定的优化(或称简化)。
3、流程引擎的事件机制没有改变,只是改变了默认的事件触发范围
4、整个数据库结构完全改变,甚至前缀变成了JBPM4,目的是希望能够跟JBPM3的表不发生冲突,甚至能够两个版本并行运行。其实数据库结构的巨大变化,是第2点变化、以及其他冗余消除的自然结果
5、接口的变化,文档的调整和重写,只是为了更好的针对公共普通型应用和高级定制型应用,降低二者的开发难度。
3.小结
对于这些理论性的概念还没有特别深入的理解,但是在应用层的感觉来说,就是“流程没变,变得是实现方式”,所以不管使用3或者4掌握了它的使用流程(建表,部署流程,绑定实例,流转流程)那么jbpm就不会那么遥不可及了。