JBPM流程实例迁移01

zzuhui

贡献于2013-03-09

字数:1332 关键词: jBPM 工作流引擎

JBPM流程部署之流程版本升级 JBPM流程部署之流程版本升级         流程定义是根据流程定义描述语言(JPDL)对现实业务需求的抽象,是对现实业务需求的高度抽象化;现实中对于同一个流程定义,很少会一成不变,很多时候随着时间的流逝,我们的业务流程有少许的变化,那么我们就需要对流程进行一些改变,这个时候就会涉及到流程的版本升级的问题。今天我们来了解一下jbpm的版本升级的相关执行,最后我们会对JBPM的现有版本升级进行扩展思考。       以下是我对JBPM流程版本升级的相关知识的思考,结合下图我们展开今天的学习         流程的基本属性        Name,流程的名称,在与用户交互时,用于标示不同的流程,主要用于界面展示        Key,流程的键,用于标示同一类流程,如果没有显式的指定,那么就会使用name,但是name中的非字母和数字字符会被下划线替换掉        Langid,标示当前的流程定义使用的流程描述语言jpdl的版本,如果没有显式的指定,就会使用当前版本        Pdversion,标示同类流程的不同版本,如果显式的指定版本,那么首次部署流程版本号为一,以后每次部署版本号逐次递增一        Pdid,流程的唯一标示,每个流程都会对应一个唯一的流程id,流程id由系统默认生成,格式 key=version        JBPM默认升级模式        默认情况下,jbpm要求具有相同name的流程都具有相同的key,同具有相同key的流程也必须都具有相同的name;所以key和name从编程实现来说代表的意义是相同的,都代表同一种类型的流程,但是两者的业务职责不同,前者用于ui展现,后者用于代码使用;        对于升级模式,如果没有显式的指定流程版本,jbpm会通过流程的key查找现有的最新的流程,如果存在就在现有最新版本的流程的基础上,版本号自增一,否则直接将版本赋值为一;不过流程是否更改都会是这样的一种方式。       扩展JBPM的流程升级模式       在现实的情况下,Jbpm默认的流程版本升级模式往往很那满足我们的业务需求,我们往往需要根据我们自己的业务需求,来定制我们的升级策略。       影响流程版本升级的元素       流程定义属性:这里是指jpdl中process元素承载的一些配置信息       节点相关: 节点的属性                      节点的出弧和入弧                      新增节点                      删除节点       弧线相关: 弧的属性                      弧的源节点、目的节点                      新增弧                      删除弧       扩展后的升级模式       每次部署都进行版本升级(jbpm现有的策略)       每次部署都不进行版本升级       每次部署只有新增和删除节点的情况下版本升级(默认策略)       用户自定义升级策略,用户实现我们定义的接口,运行时进行代码注入,我们将最新的流程和待部署的流程相关信息传给接口,用户最后返回是否进行升级即可       扩展后升级模式的配置       我们需要新引入一个配置流程版本升级策略的xml(后续也会用于流程实例迁移策略的配置),同时我们也需要一流程版本升级的管理类,对于这个类的实例化,我们既可以采用jbpm现有的IOC方式,在流程引擎初始化的时候读取配置文件,也可以在流程部署的时候动态的读取配置文件; 前者的好处是,配置文件只需要读取一次,后者需要每次部署流程都读取,而且管理类是延迟实例化,并且实例化后会进行全局缓存,相对来说效率还好点吧,但是实现起来比较繁琐.,同时修改了流程版本升级策略不能即时生效,需要重启流程引擎 分类: 工作流

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档