应用jBPM4解决中国特色的流程需求.docx

应用jBPM4解决中国特色的流程需求.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

应用jBPM4解决中国特色的流程需求

1、jBPM4的特点

jBPM是JBoss众多开源项目中的一个工作流开源项目,也是目前应用最广泛的工作流项目。在今年的7月10号,JBossjBPM团队正式发布了jBPM4的正式版。jBPM4完全基于流程虚拟机(PVM)的机制,对核心引擎进行了重新设计,而PVM的引入也使得jBPM4可以支持多流程语言了。除此之外还有很多其它的特点:

l流程定义对象的变化

在流程定义的对象上,节点类型划分更清晰,详细的对象解析,可参见我曾经写过的文章:《jBPM3与jBPM4实现对比》。

l基于观察者模式的Event-Listener机制

在jBPM4中活动节点对象ActivityImpl、转移对象TransitionImpl、流程定义对象ProcessDefinitionImpl,全部继承了ObservableElementImpl对象,因此组成流程定义的三个主要元素都可作为观察者模式中的被观察者来观察,而这些对象本身就直接支持注册各种Event,然后由Listener来监听这些Event。

l基于ExecutionImpl、Command模式和AtomicOperation实现的引擎调度

在jBPM4中用ExcutionImpl替掉了jBPM3中Token机制,流程的流转,依赖于ExcutionImpl调用各个AtomicOperation原子操作(ExecuteActivity、MoveToParentActivity、TransitionTake、TransitionStartActivity、ExecuteEventListener、TransitionEndActivity)进行推进,而ExecutionImpl在各个实例对象之间进行转移,详细情况同样参见《jBPM3与jBPM4实现对比》中的”流程启动序列图”和”流程推进序列图”。(注:当时的那篇文章是基于jBPM4alpha版本写的,在正式版中有一些变化。)

l历史库的加入

作为任何一个正式运行的大数据量的软件系统来讲,没有历史库的切分肯定只能当作玩具,而jBPM3没有任何的处理,必须由开发人员自己来解决。在jBPM4中终于加入了这个功能,不过我认为目前Jbpm4的历史库设计还是存在一些问题的,例如,它是在活动(或任务)结束时,直接将数据归入历史库,实际上我认为这是没有必要的,我认为在整个流程实例结束时去做这个事情反而更好一些。其次,在将运行期的实例归入历史库时,并不是将所有数据都进行了copy,这就造成了在历史库中丢掉了一些运行期的数据属性。还有任务历史库中没有针对taskcandidates参与模式的任务拾取时间的记录导致无法做绩效统计等。

2、国内人工任务密集型流程的典型特点

中国目前在工作流领域主要的应用是人工工作流,也就是以人工任务密集型的工作流为主。当然随着中国企业和公共组织的信息化发展越来越快,IT系统的积累和建设经验也越来越丰富,因此以自动任务密集型为主的应用正在逐渐增多。但本文主要的还是讲述人工任务密集型工作流的特色、需求、场景及实现。这种类型的流程应用,主要集中在以下领域如:电子政务,行政审批,企业协同办公,电信、电力之工单,企业采购、合同、销售等。

从功能需求上来说,这些人工任务密集型流程的典型特点主要有以下几个方面:

1)、用户友好的流程定义工具,就是说由业务用户自己对流程进行定义。其实这是一个伪命题,因为此处讲的流程是可以run的,与业务系统有紧密的关系,完全地让最终用户来设计一个这样的流程是不现实的(即使是不可以run的BPMN同样也很困难,需要进行大量的培训)。但是业务用户是可以对已经建立好的流程进行改进的(呵呵,此处就是BPI的一个体现),因此提供一个基于WEB的,简单易用的、用户友好的流程设计器是非常有必要的。2)、表单自定义,就是说能有一个可高度定制的表单设计器,用户可以随时根据业务需求进行调整,或者新建表单,这个需求对于有“语义层”的formengine来讲是可以实现的。那么除了表单自定义以外,当然还要能实现表单与流程任务的轻松绑定及表单权限的设定,使得不同环节的处理人能够对表单的不同域有不同的读写权限。3)、灵活的临时动态性需求,例如:任意回退、会签(包括加、减签,补签)、撤销(又叫回退)、自由流(又叫动态路由)。此处之所以叫做灵活的临时动态性需求,就是因为这些需求,存在着很强的人为性

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地境外
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档