APP下载

基于JBPM4的飞机EO落实跟踪系统应用实践

2016-07-20余军

装备制造技术 2016年3期
关键词:工作流

余军

(中国商用飞机有限公司上海航空工业(集团)有限公司,上海201210)



基于JBPM4的飞机EO落实跟踪系统应用实践

余军

(中国商用飞机有限公司上海航空工业(集团)有限公司,上海201210)

摘要:通过对工作流及工作流引擎JBPM4的介绍,对JBPM4的主要特点、流程定义与部署等进行研究,并在其基础上建立一套适用于ARJ21-700型号飞机工程指令更改落实跟踪系统,以达到更好地实现流程管理,简化系统设计与开发的目的,并且降低了程序代码直接耦合度,提高了软件开发的效率,提高了系统的扩展性和可维护性。

关键词:工作流;JBPM4;飞机工程指令;更改落实

工程更改指在构型项的研制、生产过程中,对已批准的现行构型文件(基线范围内)所做的更改。在飞机的生命周期内,特别是在研制阶段,由于采用新技术、弥补产品的缺陷、增加客户所希望的新功能等原因都会引起工程更改[1]。

ARJ21-700飞机是我国首个按照国际适航标准设计的完全拥有自主知识产权的新型喷气式支线飞机,目前还处在研制阶段,工程更改不可避免。ARJ项目中工程更改不仅涉及到飞机产品设计,而且涉及到生产制造和采购、维修、质检、客服、培训手册等,需要跨部门、跨区域、跨专业合作完成。工程更改从提出到实施周期长、涉及人数广、工作难度大。

工程更改的有效管理与控制一定程度上是通过建立严格的更改业务流程,在计算机工具支持下,使得更改活动始终处于严格的可控状态,并记录涉及到的所有对象的变化,对下游工程指令(Engineering Order,简称EO)落实更改的全程跟踪,既保证了ARJ21项目构型控制的完整性和符合性,也有利于后期对工程变更影响的分析与研究。良好的更改落实跟踪管理能够有效降低成本、提高工作效率、缩短生产周期、保证产品质量、响应市场需求,从而提升企业竞争实力。

本文通过对JBPM4的深入研究,在分析新支线ARJ21在客户服务方面工程落实更改流程的基础上,提出了基于JBPM4的工程指令更改落实跟踪系统的核心工作流程设计方法,建立有效的工程指令更改落实跟踪系统。

1 工作流技术概述

1.1工作流简介

工作流的定义[2]:工作流是一种经营过程,它可以按照一定的规则完全或者部分自动化执行。在工作流中定义了许多任务的触发顺序以及触发的条件。每个任务可以是由一个或者多个软件系统来完成,也可以是由一个或者一组人来完成,还可以是由一个或者多个人与软件系统协作来完成。任务的触发顺序和触发的条件用来定义并实现任务的触发、任务的同步以及信息流(数据流)的传递。

简单地说,工作流就是用一个个有序的任务点(活动点)来抽象表示业务流的处理过程。工作流管理系统是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。目前工作流管理系统开源框架中以JBPM为主流。

1.2JBPM4概述

JBPM(Java Business Process Management)是基于Java实现的流程业务处理框架 (Business Process-Management)。它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架[3]。它支撑企业的流程性业务应用,实现流程的自动化。JBPM采用了JBoss JBPM Process Definition Language(JPDL)来设计流程,JPDL结合应用了状态机、UML2.0活动图、PetriNet算法三方面的知识,利用状态机控制了工作流状态变迁,借鉴使用了PetriNet算法,扩充了活动图的建模能力[4]。JBPM的另一个特色是使用Hibernate来管理数据库。通过Hibernate,JBPM将数据的管理职能分离出去,专注于业务逻辑的处理。

JBPM4的结构特点[5]如下:

(1)嵌入式的工作流引擎

JBPM4是完全支持嵌入式应用的业务流程开发框架,可以在事务处理、数据持久化等各个方面与业务应用程序进行灵活的集成。

(2)可插拔的体系架构

JBPM4采用了模块化的架构设计,采用了IOC(依赖注入)的设计理念,各模块之间可以比较方便地解除耦合或替换不同的实现,例如持久化、事务处理、身份认证、日志服务等,都由可选模块实现。

(3)易扩展到流程语言

JBPM4框架内置的流程定义活动,包括start,task,foreach,fork,join和decision等,是构建完整业务流程所必需的组成部分,它们提供了可以将业务逻辑Java代码和业务流程编排无缝衔接的绑定机制。

1.3JBPM4开发工作流的一般流程

(1)环境搭建与配置

在开发项目中引入JBPM4的jar包,做好与数据库连接的配置,JBPM4采用Hibernate框架操作数据库,对于数据库的初始化,JBPM4都是通过Hibernate自动创建相关表。

(2)流程定义

JBPM4使用的JPDL语言定义工作流,根据业务逻辑定义好工作流程,生成process.jpdl.xml文件

(3)流程的部署

RepositoryService流程部署服务,根据对应的process.jpdl.xml文件部署到数据库。

(4)流程实例的创建

由ExecutionService流程执行服务来创建一个流程实例ProcessInstance,将此流程实例与业务数据表关联。

(5)流程实例的流转与结束

业务与流程实例关联绑定后,开始根据流程定义流转,中间结点都会与各种业务处理关联,但业务处理存储与流程数据处理单独分开,流程与业务处理同时结束。在此过程中会涉及到TaskService任务服务,HistoryService历史服务,ManagementService流程管理服务,IdentityService身份认证服务等多个事务处理。

2 基于JBPM4 的飞机工程更改落实跟踪系统的具体实现

ARJ飞机工程更改落实跟踪系统的目的是对整个ARJ项目中由设计部门流转下来的工程更改数据进行管理控制与落实,跟踪管理每一份由其他系统分转下来的工程更改指令,记录EO的每一个落实更改项以及相关的参与管理控制人员操作信息,并进行报表汇总导出等。整个系统是采用B/S三层结构:数据层、业务层、表示层,MVC开发模式,在开源项目Struts2、Hibernate、JBPM4的基础上进行设计与开发,使用oracle数据库作为后台支撑。

2.1业务基本流程

在整个飞机研制生产的客户服务环节的工程更改落实过程中,同一份落实更改,不同部门关注重点不一样,流程也不一样,业务流程非常复杂。流程有多层嵌套,有并行,有串行及并行串行交叉进行。

以某份EO为例,工程数据部构型管理员选择性分发到多个业务部门构型管理员,各业务部门构型管理员选择性分发到不同科室构型管理员,科室构型管理员分发到具体的工程师,工程师进行更改落实,所有工程师完成后交由审核员审批,所有部门科室的任务审批完后,由工程数据部构型管理员审核,批准通过,流程结束;驳回则指派到具体部门构型员循环走流程。

在工程师进行落实更改,在提交给审核员审核前如果对分发给自己的任务有异议,可以选择驳回给科室构型管理员,让科室构型管理员重新分发。

在航材部门,业务逻辑与其他业务部门不同,航材部业务分发是串行与并行“穿插交替”,其他业务部门都是并行落实处理。航材部构型管理员分发给工程室,工程室处理完后由审核员选择是否关系到采购室和库存室,如果是,流程分流到采购室和库存室,库存室落实完成后流转到支援室,最后所有科室都完成流转到工程数据部审核。

2.2流程分析与设计

结合jpdl流程定义规范,下面对业务流程的各个环节进行分析,确定每个结点的结点类型。

(1)分发任务:工程数据部构型管理员、业务部门构型管理员、科室构型管理员接收到上一级的分发任务,由于是动态不定数地往下一级分配,采用decision与foreach和join结合的方式,当构型管理员判断不需要往下流转时decision直接到end结束,需要向下流转时通过foreach和join继续流转流程。

(2)业务部门处理:当上一级主流程流转下来,到此结点时会自动生成子流程实例sub-process,当子流程结束时返回到本流程。

(3)构型审核:采用task结点结合decision结点继续流转。

(4)科室处理:当上一级子流程流转下来,到此结点时会自动生成子流程实例sub-process,当子流程结束时返回到本流程。

(5)工程师落实:采用task结点。

2.3流程的设计

根据对整体业务流程的分析与研究,为保证系统业务流程的可扩展性,应对有可能新增业务部门和人员等情况,将业务流程设计为一个两层子流程嵌套的复杂流程。

2.3.1主流程设计

在主流程实例里,工程数据部构型管理员进入系统获取对应的task-“构型指派任务”,人工处理,通过decision判断,如果不需要落实处理,则直接关闭到end结点,整个流程结束(如图1所示)。

图1 主流程图

如果需要往下分发处理落实,则根据手动选择流转到foreach结点,动态并发生成多个sub-process子节点,创建多个子流程实例,流转到子节点处理,join结点接收到所有子节点处理结果后,生产task-“构型管理审核”,人工处理,通过decision判断,如果审批通过则整个流程结束,如果不通过则驳回,流转到foreach重复之前的动态产生多个sub-process结点,创建多个子流程实例。

2.3.2一级子流程设计

在一级子流程实例中,业务部门的构型管理员接收到task,人工处理,传递到decision结点判断,如果不需要落实,则直接到end结束此流程,返回到上一级流程中对应的join结点;否则根据手动选择通过foreach动态分派任务到多个科室,并创建二级子流程sub-process.如果是航材部门则需要在工程室处理完成后继续由工程室审核员决定是否往后流转及流程的科室,所有科室完成后返回到主流程(如图2所示)。

图2 一级子流程图

2.3.3二级子流程设计

在二级子流程实例中,与一级子流程类似,只是在科室内部流转,完成后返回到一级子流程对应的join结点(如图3所示)。

图3 二级子流程图

2.4流程管理与实现

流程管理作为一个飞机工程指令落实更改系统的核心,全权交给JBPM4管理,启动流程后,通过外键ID关联到业务表,业务表中存储符合业务需求的流程信息,JBPM4只需关注流程的发起、流转、结束,其他的业务逻辑流程单独开发管理。流程管理作为定制核心不在系统页面上具体表现,整个系统的查看任务,数据查询,报表导出等多个业务模块不与流程模块绑定。

3 结束语

本文介绍了工作流的概念,工作流程引擎JBPM4的定义及特点、开发流程等,分析了ARJ飞机工程落实更改的业务流程,并在设计开发了一套基于JBPM4工作流引擎的飞机工程落实更改管理控制系统,对JBPM4的业务流程功能进行了应用。经实践证明,该业务流程管理系统运行正常,有较高的兼容性,可扩展性。尽管在某些细节方面仍存在不适用于业务方面,但不影响整体系统开发。将JBPM4作为系统流程管理核心,节省了开发人员对于业务流程管理时间,提高了开发效率,降低开发成本,对于一般业务流程系统开发是一个很好的尝试。

参考文献:

[1]郭方华.民用飞机工程更改控制流程综述[J].科技信息Science&Technology Information.2013,(20):387.

[2]范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.

[3]高杰.深入浅出jBPM[M].北京:人民邮电出版社,2009.

[4]凌正俊.基于JBPM与JPDL的工作流管理系统的研究与设计[J].计算机技术与发展,2011,21(8):50-53.

[5]胡奇.JBPM4工作流应用开发指南[M].北京:电子工业出版社,2011:42-43.

The Application of Implementation Tracking System for Aircraft Engineering Order Using JBPM4

YU Jun
(Shanghai Aviation industry(Group)Co.,Ltd.Commercial Aircraft Corporation of China,Shanghai 201210,China)

Abstract:This paper illustrates workflow and JBPM4;research on JBPM4,including the characteristics of JBPM4,define and deploy the workflow.The author build a system named airplane engineering order change implement tracking system on the base of JBPM4,apply to ARJ21-700,on the purpose to manage workflow properly and simplify system design and development,improve the efficiency of software development,and the system's scalability and maintainability.

Key words:workflow;JBPM4;airplane engineering order;change implementation

中图分类号:TP311.5

文献标识码:B

文章编号:1672-545X(2016)03-0201-03

收稿日期:2015-12-03

作者简介:余军(1987-),男,湖南常德人,硕士研究生,工程师,研究方向为企业信息化。

猜你喜欢

工作流
支持节点协同的工作流模型构建方法研究
基于工作流2.0的智慧教室设计与研究
工作流在电力生产管理信息系统中的设计和应用
“奔向共赢、做到最好”行业信息化研究方法论
工作流技术在医疗信息整合工程中的应用分析
基于工作流的水运应急信息管理平台设计 
办公自动化系统中公文管理模块的设计和实现
基于J2EE的电子政务系统研究与应用
基于J2EE的电子政务系统研究与应用
基于目录树的工作流引擎设计与实现