Activiti6.0在项目管理软件中的运用
2020-10-28
来源:本文发表在《现代信息科技》作者:上海宝通汎球电子有限公司钱叶丹
摘要:开发项目管理软件中很多业务都有一级审核、二级审核甚至多级审核机制。近期,在项目管理软件迭代升级的需求分析过程中,客户业务活动审核机制调整了多次需求,也出现了系统流程与业务耦合性增强的问题,对老版本中多套临时表的维护越来越困难。在这种背景下,对开源工作流管理框架进行了研究,Activiti6.0在技术选型中脱颖而出,继而又对Activiti6.0是否能够实现具体项目的业务要求做了研究。
关键词:Activiti6.0;BPMN;工作流;项目管理软件
0 引言
项目管理软件没有普及时,相关人员在项目管理过程中,一部电话加上堆积如山的文件是许多办公桌的标配,流程审核是传统手工递交纸张的方式,逐级找领导签字,效率低下。随着PC办公时代的到来,办公人员只需要在项目管理系统中填写工作内容,系统就会按照定义好的流程自动执行,各级审批者可以登录PC系统,看到工作内容再进行相应的审批管理操作。办公桌上干净了许多。技术总是不断在更新,人们的需求总是不断增加。项目管理软件也需要不断做出迭代升级,如何实现业务与流程的分离?是不是可以将流程从业务中单独剥离出来做统一的流程管理?基于这些问题笔者开始对工作流管理框架展开研究,以供读者参考,共同完善。
1 什么是工作流
1.1 工作流相关概念
工作流:对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。
工作流程图如图1所示。一个比较形象的比喻是:工作流就像是列车的轨道,而所要执行的对象像是一辆自动运行的列车,只要列车启动,它就能沿着轨道一直走到终点,其
中的节点就像是列车到达终点途中所要经过的火车站,它会告诉火车下一站是哪里,然后火车就往指定的下一站驶去,一直这样开到终点站。
1.2 BPMN元素
BPMN规范的发布是为了让业务流程的全部参与人员对流程可以进行可视化管理,提供一套让所有参与人员都易于理解的语言和标记。2011年1月发布BPMN2.0规范。我们首先要熟悉BPMN定义的每个元素代表的含义。使用BPMN2.0的目的是建立简单并且易懂的业务流程模型,但是同时又需要处理高度复杂的业务流程,因此要解决这两个矛盾的要求,需要在规范中定义标准的图形和符号。
BPMN定义了基本元素。每个元素均有自己对应的图形。除了基本元素,还有很多在其基础上的子元素。最常见的网关,子元素为排他网关、并行网关、包容网关等等。
1.3 BPMN2.0XML结构
常见的工作流有Activiti、OSWorkflow、JBossjBPM、JFlow、FixFlow等。怎样的流程描述文件可在不同的工作流中使用?除了图形定义。一份用XML语法标准定义,依据BPMN2.0标准的流程描述文件,就可在不同的工作流中使用,只要该工作流符合BPMN2.0规范。特别标记的是,除了BPMN2.0标准的元素及其属性外,工作流的供应商还可以在不改造已有属性的基础上,增添额外的属性,但是增加的属性不能与已有的属性产生矛盾,还需要简易易懂。比如:Activiti扩展的属性,属性名称统一用“ctivity;”开头。Activiti;class=“com.bestpay.DemoService”。
2 工作流选型
基于老版本维护越来越困难,笔者进行了开源工作流管理框架的研究。市面上开源工作流引擎框架有很多,例如:OSWorkflow、jBPM、JFlow、FixFlow、Activiti等。在技术选型中,主要遵循的原则是“主流,适用,简单”。
Activiti6.0是在jBPM版本从1到4的基础上开发的,是5.0的升级版,满足BPMN2.0标准。很“主流”:Activiti6.0用户多,文档丰富,技术经历市场已经成熟,网上社区强大,很多网站还有专栏讨论,学习周期相对较短,界面简单,有很好的发展趋势;很“简单”:可控可驾驭,可扩展,轻量级。Activiti6.0支持大部分工作流流程,少数工作流流程需要进行二次开发;很“适用”:满足我们对软件的各种需求。
3 Activiti
Alfresco软件在2010年5月17日发布Activiti,它是一个业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,采用了宽松的ApacheLicense2.0开源协议。创始人TomBaeyens也是jBPM的创始人,2010年,TomBaeyens离开了JBPM同时加入到Alfresco公司。2010年的5月17日,TomBaeyens发布了第一个Activiti版本,即5.0.alpha版,之所以把Activiti的第一个版本定义为5.0,外界猜测也许是为了让它更像jBPM4的延续。
3.1 接口简介
在Activiti中,流程引擎的实例对象是ProcessEngine
免责声明:
1、项目管理信息化网发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!
-
延伸阅读:
-