盘古BPM体验地址    盘古BPM交流群盘古BPM交流群号:963222735

Flowable v5 和v6版本的区别

分享牛 4906℃

摘要:

 activiti与flowable的区别,Flowable5版本与Flowable6版本的区别。

    近期群里面的朋友在问Flowable5与Flowable6的一些区别,在此暂时分析下他们的前世今身,关于底层的实现细节我们随后看代码在深入的进行剖析。

    当我们讨论Flowable BPM的时候,请务必记住一点,Flowable有两个版本:Flowable5和Flowable6。也就是Flowable5.x以及Flowable6.x。


    Flowable5是在Activiti5的一个分支基础之上开发的,这个版本算是一个Flowable v5 过渡到Flowable v6的版本吧。期间flowable团队会继续修复维护该版本的一些bug。因此使用这个V5版本跟使用Activiti5是没有什么太大的区别的。大多数的新特性以及重构会发生在Flowable v6版本中,这意味着我们有很长的一段时间去继续使用Activiti5。Flowable v6有太多的未知行与不稳定性,当然也有更多的可能性。


    Flowable6是下一代的引擎,他会带来更多的核心变化以及大量新特性。一个主要的改进是引入了抽象数据层,它允许开发人员使用关系或其他数据库来存储过程状态。如果需要,还可以混合关系数据库和NoSQL数据库之间的数据存储。当然了这个功能6.0.1版本暂时还没有实现。另外一个显著的变化就是流程实例的执行过程,这个也许是flowable在BPM基础之上的创新。

    Flowable5以及activiti的设计思想是这样的:将一系列的bpmn元素映射为 Process Virtual Machine,也就是流程虚拟机(PVM)。您可以将其想象成Java代码,它被转换为字节码以便在JVM上运行。在Flowable5中,一个BPMN操作可能被映射到多个PVM操作。问题是,随着时间的推移,这些PVM操作不得不处理越来越多的异常和用例,这意味着它们不再是干净的、隔离的和高效的。


    Flowable 6引入了一个干净、可预测的执行模型。BPMN和执行操作之间存在一对一的关系,因此在PVM操作中分散的所有代码都不再需要了。换言之Flowable v6版本已经没有流程虚拟机的相关代码了!!现在,这个模型可以更容易理解,这意味着更容易被引入新特性,同时也更容易修复。但缺点就是我们开发人员如果长时间的使用activiti,那么这绝对不是一个好消息。更令人兴奋的是,现在可以操纵正在运行的流程,例如轻松地更改流程的状态。我们甚至可以注入新的流程元素到一个正在运行的流程。当然这个暂时是一个美好的愿望而已。

    随着Flowable 6 向前推进,新的Flowable 6 架构将允许我们引入新的动态功能,开发人员将指导Flowable 6 应该做什么,以便更好地利用这一点来应对他们的业务挑战。同时,Flowable 6 将继续支持和维护Flowable 5,因为一些想要瞬间,无痛切换到一个受支持的开源BPM库,但不准备立刻搬到Flowable 6 。对于任何新的项目,您应该从现在开始使用Flowable 6 来获得它的好处,同时您也将与未来一起工作。



转载请注明:分享牛 » Flowable v5 和v6版本的区别