Activiti5工作流在车辆申请的设计与实现

2017-01-11 14:21薛智山满君丰张灿青刘鸣彭成
计算技术与自动化 2016年4期

薛智山 满君丰 张灿青 刘鸣 彭成

摘要:详细阐述基于BPMN2.0(Business Process Diagram)标准的Activit5(Activiti BPM Platform)工作流管理平台,包括其体系模块组成及业务流程设计。并根据实际情况,以车辆申请系统中的流程为例,详细介绍在 Activiti5中工作流系统的设计与应用的方法。

关键词:工作流管理系统;车辆申请系统;activiti5

中图分类号:TP311.1文献标识码:A

Abstract:This paper detailed the BPMN2.0 (Business Process Modeling Notation) standard Activit5 (Activiti BPM Platform) workflow management platform, including its system modules and business process design. According to the actual situation, this paper also introduced the method of design and application of workflow system in Activiti5 in the process of vehicle application system.

Key words:workflow management system;vehicle application system;activiti5

1引言

工作流概念的提出起初开始于工业生产和办公政务系统,工作流的主要作用就是将整个流程模块划分为相应的组织机构和角色信息,按照给定的规则和任务来执行,从而能提高工作效率、减少成本,从根本上提高企业生产水平和市场竞争力[1]。自人类进入工业自动化时代,企业管理就在组织机构管理和流程自动化方面作为主要研究方向,而之前这些工作大都由人工来做,效率较低。随着全球互联网的普及与发展,计算机相关的技术越来越成熟,其中应用最为广泛的就是在工业生产中的技术推广,这时工作流概念得到了提出,工业技术为工作流的应用和推广提供了相当成熟的发展条件。现今工作流管理平台已在金融、机械生产、政务电子政务等方面有了成功的应用,不过工作流最重要的应用还是体现在工业制造生产中。

工作流概念的提出自由其自身的优点和使用价值,工作流相比工业中其他技术更简单适用,因为工作了提供了相应的执行机制和工作引擎,这使企业能从业务过程自动化中立足发展起来。以工作流的概念为基础,实现业务流程执行自动化和业务功能过程的集成,这些执行机制是通过定义各节点任务之间的关联关系的工作流模型(即过程模型)[2]来实现的。在工作流建模机制中,即便是复杂的逻辑业务判断或具体的流程执行操作,还是抽象的决策过程执行,这些处理都可以用BPMN元素组成工作流架构来描述业务关系。特别的是,流程各模块之间的关联关系,都可以用BPMN中的连接线进行关联,即使多么复杂的逻辑业务都可以实现。连接线描述了企业生产过程的控制逻辑,它定义了两个活动之间的顺序连接和执行次序,并且可以定义流程变量,根据变量的值判断流程的走向。

基于工作流技术的简单易用且具有灵活性的特点,在各大工业制造商家及软件公司都不约而同的对工作流进行了研发和扩展,将已经成熟的构件产品融入到工作流技术中,进而根据需求再应用到具体业务系统中(如大家比较熟悉并常用的电子政务系统、档案管理平台等各单位业务系统)。基于工作流技术的发展,在学术界和工业生产界都对工作流的研发和应用进行了不同的投入,工作流的应用在这几年迅速发展起来。

2工作流架构及技术

根据WfMC的定义,工作流管理系统(Workflow Management System, WFMS)[3]是一款软件流程系统,它对工作流进行定义和分配,并根据设置的工作流业务逻辑执行工作流的实例。一般来讲,工作流管理系统指的是应用在一个或多个工作流引擎机制中对工作流进行定义和执行实例的一款软件系统,工作流与它的任务执行者交互,执行工作流的实例,并适时监控工作流过程的运行状况。如图1是由WfMC提出的工作流平台的体系结构图[4]。在这个参考模型的体系结构中,其提供了工作流管理系统的Server工作引擎和相关组织机构等核心部分,它可以实现工作流管理系统中流程提交处理及组织机构角色任务等各模块相互协同作用构成的整个流程功能,能够为工作流组件之间的协同操作提供了核心内容。这里必须提到的是,工作流管理系统中的每个模块部分可以根据不同的逻辑需求采用不同的实现方法,同时接口组件也可以根据不同的程序编程语言和技术架构进行不同的对接。通常来讲,工作流可以集成不同的构件产品,并根据不同的规则和任务对相应的接口进行相关的互操作。正是由于工作流各模块相互协作的作用,在执行工作流之前的模型机制就显的尤为重要,即工作流建模机制和流程执行引擎才完整组成了整个工作流程的功能。从上图1中可以总结出,工作流管理系统主要是由以下三种模块组成的:

1)软件构件:主要指组成工作流管理系统的各构件程序;

2)系统控制数据:在流程系统中使用到的程序数据;

3)应用和数据:相对于流程系统其他部分,应用和数据不是工作流平台的实际组成部分,而是属于外部系统的应用和数据,用来在工作流模块中协同操作和产生的应用数据。

本文设计并实现了基于Activiti5的工作流管理系统,Activiti5使用BPMN2.0标准。首先,BPMN2.0标准是根据标准组织BMPI发布的BPMN1.0的基础上进行改进,该规范是BMPI组织经过两年多努力研究的成果。BPMN由一套给定的标记符号语言组成,可以根据用户的需求进行系统的需求分析设计及软件程序的研发工作等。同时,BPMN还可以支持生成可执行BPEL4WS语言。因此,BPMN实现了在业务流程设计和程序实现两者之间的连接关系。首先软件研发者利用BPMN的语言标记定义业务流程,这些特殊标记符号构成了流程图,简化了繁琐的图形操作。业务流程的建模机制简单来说就是对流程的执行描述,包括活动项和定义顺序流向的执行。

3车辆申请流程的设计与实现

本文以车辆申请为例详解Activiti5流程的应用。其车辆申请的需求如下:

1)申请者启动流程,填写车辆相关信息(如使用费用、乘客人信息、到达地等),提交表单,后台会进行流程任务的提交,流程进入到下一个节点任务。

2)以车辆管理员身份登录系统:在任务信息中可以查看到车辆和用户的一系列信息;同时可修改信息,选择车辆的同时可以派送司机,即车辆管理员可以对车辆进行改派。如果车辆管理员允许申请,则流程节点进入到车辆执行经理或财务部门经理,同时系统计算出车辆所耗费用。如果没有通过,则填写原因,同时流程回退到流程启动者,重新发起新的流程。

3)如果所花车费小于一万,则车辆执行经理审核:可以查看到任务信息中显示路程信息、乘坐人信息等;不可以修改信息。如果审核允许车辆通过,则流程自动进入到下一个任务节点。如果没有通过,则填写原因,流程回退到流程启动者,重新发起流程;如果费用大于等于一万,则财务经理进行审核,查阅信息:用户选择车辆及使用时间、预计到达时间、目的地,及车程计费明细;不可修改相关信息。如果车辆审核通过,则流程执行下一步。若不同意,则填写原因,整个流程到此结束。

4)以流程任务的接收者登陆系统,在待办任务中可以看到当前的待执行任务,该执行者可以查看到相关的信息(如车辆计程,路途车费等);无可修改的信息。同时,进行工作的确认。进入下一步。

5)在工作流引擎机制中,由Service引擎将车辆及用户相关信息进行保存并写入到数据库中,这样,整个工作流系统的流程执行完毕。需求如图2所示:

3.1定义业务流程

BPMN基本元素构成了工作流的模块结构,工作流也是由BPMN提供建模机制并通过引擎机制来执行整个流程的操作。工作流中包含了并行、排他、循环及嵌套流程等逻辑结构模型,这其中有人工活动和网关路由活动,程序开发人员可以通过设置变量或指定组织机构来进行流程的走向操作。因此,这样的工作流即方便了业务人员的流程设计,也有利于程序执行的灵活特性。再加上界面表单的展现,方便了客户人员简单直观的操作业务及随时查看流程的节点位置。以BPMN2.0规范的Activiti5流程图如图3所示:

其中BPMN的元素含义如表1所示:表1BPMN的元素含义

3.2界面操作

进入工作流系统,填写相关信息,车辆申请平台界面如图4所示:申请者登录系统可以看到车辆列表,申请者选择车辆并填写相关信息,提交流程;车辆管理员登陆系统领取任务,并根据费用是否小于一万元进行判断,小于一万元分配给办公室主任进行审批,同时派送车辆司机;被分派的司机在自己的当前任务中查看并操作,提交任务,流程结束。

3.3提交业务流程

提交流程主要用到Activiti5中的Server执行引擎,执行引擎执行库中封装的方法,其部分执行代码如下图5所示:

4系统运行情况及分析

该车辆申请流程系统在某小区进行部署并测试。该小区车辆数量大于500,日均200辆以上。经过一个月试运行,以Activiti5为引擎的工作流管理系统运行比较稳定,并生成了6000多条实例数据,在很大程度上提高了物业公司效率。该工作流管理系统从需求、分析及部署实施提高了整个流水线效率,减少了软件公司和操作员的工作量。

5结束语

本文在介绍和分析了Activiti5工作流管理系统的概念性描述的同时,讲述了管理流程的主要模块的关系,并以实际车辆申请流程为例,利用Eclipse的Activiti5插件进行图形化的工作流建模和系统实现。基BPMN2.0标准的Activiti5工作流平台解决了传统工业中较难处理的问题(如在并行、排他等节点的逻辑处理上),同时通过简单易懂的图形化符号组成工作流的整个流程。相比传统工业开发模式,Activiti5降低了业务人员和软件开发人员程序处理的繁杂工作,其系统业务设计人员可以对流程进行单独的设计,从而开发人员易陷复杂程序的问题得到了根本解决[5],极大提高了业务流程随需而变的响应速度。Acitiviti5实现的工作流管理系统做到了系统管理的自动化以及组织机构人员和职业部门的协同工作,大大地提高了系统的运行效率。接下来的工作主要是研究扩展Activiti5组件以支持更为灵活的工作流管理系统。

参考文献

[1]SCHUNSELAAR D M,VERBEEK E,VAN DER ALST W M P,et al.Creating Sound and Reversible Configurable Process Models Using CoSeNets [C]. BIS12. Vilnius, Lithuania. LNBIP 117,Springer,2012:24-35.

[2]江东明,薛锦云.基于BPMN 的Web服务并发交互机制[J].计算机科学,2014,(8):50-54.

[3]刘一帆.基于工作流的实验室信息管理系统设计[J].实验室研究与探索,2013,(11):90-94.

[4]徐志伟.基于工作流的高校设备管理系统设计与实现[D].硕士论文,2012.

[5]AYORA C,TORRES V,WEBER B, et al. VIVACE: A Framework for the Systematic Evaluation of Variability Support in ProcessAware Information Systems [J]. Information and Software Technology, Elsevier, 2015, 57(5): 248-276.