刘利静?燕鹏飞
摘 要 随着海事卫星业务范围日益扩大,为了能够更好兼容三、四代星及未来的五代星业务,提升整体业务受理的交易量和成功率,缩短业务受理时长,其现有业务支撑系统需要不断更新。本论文将研究和实现基于工作流的业务受理系统。工作流处理模块采用开源的Activiti5工作流引擎实现业务受理数据的数据转换、数据分发及全流程自动处理功能。最终消除半手工工作状态,保持各系统数据一致的需求。
关键词 Activiti5;工作流;业务受理系统;海事卫星
前言
国际海事卫星(Inmarsat)是第一个可以覆盖面积为全球范围的商用移动卫星通信系统[1],现已发展成为海、陆、空范围内话音、传真、数据等卫星通信服务。全球有四大关口站,其中北京关口站为其中之一。
目前北京关口站业务子系统已经形成第四代海事卫星[2]网络体系。四代星业务支撑系统主要是用于支撑电信通信业务的业务受理与业务需求的扩展[3],提供业务开通、变更、注销,以及对计费数据的账务处理功能,服务于海事卫星全体用户及系统管理部门。
业务受理是业务支撑系统重要的组成部分,通过内外需求驱动来优化整个系统运营流程,从而提升资金安全,最终满足系统业务、财务审计及管理需求等。
由于现有的业务支撑系统实现非模块化,大量的建设需求及相关信息处于半手工管理阶段,使得各交互系统之间的数据存在数据不一致情况。鉴于此,本论文将设计和实现一套基于开源的Activiti5工作流的业务受理系统,通过全自动的流程处理,减少半手工处理带来的数据差异。
1 工作流工作机制
1.1 工作流技术
生产与办公自动化领域在发展过程中为了优化管理,将生产/办公处理过程中具有共性的内容进行抽象,涉及的人员通过角色权限抽象成数据信息,涉及的共性工作通过任务来进行处理,涉及不同人员/部门之间工作的调度等抽象为系统中的执行规则与过程,将生产/办公处理过程通过软件技术进行处理,从中孕育出了工作流技术[4],提升整个领域的处理效率。
1993年工作流管理联盟(Workflow Management Coalition, WMFC)成立,定义工作流为:“工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行”[5]。从上可以看出工作流管理联盟对于两者的定义重点在于工作流的执行工作上。
WMFC定义了工作流最基本的概念,其中提出的广泛应用的术语有:工作流、业务流程、过程定义、过程定义工具、活动、过程/活动实例、工作流管理系统、工作流引擎、工作项、工作列表等,工作流管理联盟定义的工作流基本概念间关系图,如图1所示。
1.2 业务流程建模标记语言(BPMN2.0)
(1)BPMN2.0
WMFC的成立在一定程度上促使了整个业务流程管理市场繁荣发展,业务流程管理基本内容是将现实生产活动按照相应的管理过程进行抽象,通过统一管理,使流程涉及的人员能够在恰当的时间点完成各自的任务且任务内容准确无误,最终实现减少流程冗余及处理流程优化的目标。
业务流程建模标注语言(Business Process Modeling Notation, BPMN)是业务流程设计与流程实现之间搭建的一条标准化的桥梁,该语言使用图示的形式简单清晰的表达生产活动中的业务流程信息,这种图示与常见的业务流程图图示相似[6]。
对象管理组织(Object Management Group,OMG)在2011年发布了BPMN2.0规范。2.0版本引用了XML语言描述,使用XML语言定义流程节点的执行先后顺序,完成了业务流程可执行化的描述。因为BPMN2.0的出现,业务流程管理的流程建模与模型的序列化执行可以使用同一种规范化定义标准。
(2)BPMN2.0图形标记
BPMN2.0定义了用于业务流程处理主要图形标记,图形内容包含有五个基本元素,分别是将各个分开的业务过程/任务/活动连接在一起的连接对象;各节点直接进行相互传递的数据信息;用于分辨多部门或者多系统或者多用户间各自独立的流程定义的泳道;为各个活动提供上下文途径的扩展符号——工件(Artifacts)[6];标识基本工作流处理事件或者任务的工作流对象。2.0版本定义了流程的开始、结束、流程过程判断等,其包含了事件(Events)、活动节点(Activities)及网关(Gateways)三类基本要素。
①事件
事件一般用圆圈表示,可以用于表示业务流程活动的开始、结束,当出现边界判断或者定时判断时候,也可以使用事件进行定义。在实际使用过程中存在多个业务系统之间整合,此时也可以通过使用事件增强整个系统之间交互控制。BPMN2.0中定义的事件有:开始事件(Start Events)、中间事件(Intermediate Events)、结束事件(End Events)等。
②活动
工作流建模中将存在从启动到结束有一定过程状态的内容定义为活动,活动一般用圆角型图示进行表示,常见的活动的有任务(Task)、流向(Sequence Flow)及子流程(Sub-Process)等。
任务:可以用于表示工作流执行活动内容,任务与其他类型节点或者其他任务之间的连接通过顺序流来实现。
顺序流:是带箭头的有向连接线,在进行顺序定义的时候同时有源头ID定义及目的ID定义。工作流建模中涉及的所有元素之间的连接均通过顺序流连接。
子流程:主要功能是实现流程的继承。当出现多重复杂流程时,可以通過创建不同级别的流程进行实现。
③网关
工作流建模过程中存在流程判断与流程并行执行情况,这种情况可以通过网关来实现。BPMN2.0中定义的网关有:并行网关(Parallel Gateway)、排他型网关(Exclusive Gateway)、包容型网关(Inclusive Gateway)。
并行网关:是经过该网关的活动可以同时被执行,该网关所有输入的顺序流对应的源活动节点均执行完毕后,才能继续执行网关输出流连接的活动节点。
排他型网关:是经过该网关可能有多条顺序流输出,但是最终只有一条满足参数判断条件的输出流被调用执行。
包容型网关:被用来进行条件性拆分或者归并顺序流。
1.3 Activiti5引擎
(1)Activiti5
Activiti5以BPMN2.0标准化语言为基础,可以通过标准化的建模语言与可执行化的描述完成相应工作流的建立与执行,使应用该开源工作流引擎的企业能够处理形式多样的问题。Activiti5最终的目标是为了创建更灵活开放的业务流程管理处理方案[7]。
Activiti5拥有活跃的生命力与潜在的可能性,原因在于在底层开发框架许可上选择的是Apache,这样使得整个架构可以开放给全世界,而不仅仅是将归属权限制在某个公司或者个人。
(2)Activiti5与BPMN2.0
BPMN2.0定义了标准的建模图示与可序列化执行的描述信息,Activiti5在设计与研发中严格按照BPMN2.0标准执行,实现了其中大部分的图示定义与可序列化执行语义的描述。Activiti5是开源的业务流程管理软件和工作流系统引擎,同时通过自定义扩展元素与属性,在实际生产过程自动化建设过程中,可以实现更多的业务功能。这些扩展的元素与属性同样支持BPMN2.0标准规范。
Activiti5通过BpmnParseHandler类进行BPMN2.0 XML流程定义文件的解析。其解析过程为从顶部节点开始解析,逐级深入,从定义的属性、导入、分项定义、消息、接口、错误信息到过程定义,最后进行可视化定义的读取与分析。
除了以上内容外,Activiti5还引入了监听机制,包含:BPMN解析监听、任务监听、执行监听、事务监听。
2 工作流处理模块设计与实现
2.1 工作流处理模块需求分析
海事卫星业务受理系统需要将用户提交的业务受理信息,进行数据解析处理并发送到不同系统中。与业务受理系统进行交互的有Inmarsat系统、Billing系统、账管系统、流控系统及870系统。
各交互系统需要的数据类型、数据格式相差很大,对受理数据进行数据解析转换处理在工作流处理模块进行操作。各平台数据处理的时候根据其开通的关键性及后续处理便捷性进行排序。
现有系统目前对于各平台数据处理部分处于半手工状态,因而为了能够实现数据处理的及时性、准确性,引用Activiti开源工作流进行配置处理。Inmarsat系统通过报文文件方式进行数据订购/变更/退订操作,因而工作流流程处理过程中采用异步的方式实现。当某个平台处理失败的时候,需要考虑错单、异常订单处理机制。
因而工作流处理模块需要实现的内容如下:
(1)Activiti工作流的启动、查询、停止等操作控制与管理。
(2)需要解析订单信息,将订单信息转化为各个外围平台识别的报文信息。
(3)出现异常情况的错单处理,订单重发或者订单撤单操作等。
(4)所有平台均处理完成后,整个工作流数据的归档操作。
2.2 Activiti5在海事卫星受理系统中的应用实现
工作流管理模块主要实现工作流的启动、查询与终止操作。订单模块创建订单完成后,调用工作流处理模块进行订单的派发操作。初始化时调用Activiti启动工作流,每个订单生成唯一的流程实例ID(PROC_INST_ID),每个订单发送到不同平台,生成不同的TASK_ID。当订单派发处理完成后,调用Activiti终止工作流,管理工作流的生命周期。Activiti流程图如图6所示。
图6 Activiti流程图
工作流管理模块实现了对工作流流程的控制与分发,整个流程设计自动化完成处理,减少了人工操作及各系统之间的数据差异。系统中实现的工作流主要使用节点有开始事件、顺序流、JAVA服务任务、用户任务、排他型网关及结束事件。每个节点实现的任务不同。针对Acitiviti流程图中重要节点定义图形符号、类型及功能描述如表1所示。
(1)JAVA服务任务:工单预处理节点的XML定义如下。
节点参数定义:
id参数定义为 servicetask_orderPreprocessor;name名称为工单预处理(判断是否发送inmarsat);
activiti:expression是该节点调用的表达式,Expression表达式可以用于Java Service Tasks、Task Listeners和Condition Sequence Flows中。
activiti:resultVariableName表示该节点执行完毕后,执行结果赋值的参数名称,如节点正常结束,节点最终输出结果为param=Continue(param参数值用于顺序流判定)。
节点功能:
该节点实现的功能为先判断是否发送Inmarsat平台,如果发送直接调用发送Inmarsat任务,不发送则调用通知订单处理模块进行转实例操作。
(2)用户任务:发送Inmarsat节点的XML定义如下。
节点参数定义:
id定义为usertask_inmarsat。name名称定义为发送inmarsat。
activiti:async参数定义服务处理是异步操作;当设置async=”true”的时候,流程引擎采用JobExecutor来异步执行,引擎首先会将该任务实例化一条job记录,插入act_ru_job表中,然后JobExecutor扫描该表并加锁执行该job。
extensionElements:User Task的扩展属性定义,任务监控(Task Listener)定义是用户任务的扩展属性。
activiti:taskListener:使用任务监听器方式实现该节点功能,通过方法表达式完成类调用,在此该节点功能具体的实现类方法为interOrderAllBusiServiceImpl.orderSendInmarsat(task)(task参数保存当前任务的相关信息)。
节点功能:
对订单数据进行解析并转化成Inmarsat平台可以识别的文件,并增加任务监控,出现异常的时候捕获异常,并进行相应的异常处理。
(3)排他型网关:网关节点的XML定义如下。
节点参数定义:
id定义为exclusivegateway1;name名称定义为Exclusive Gateway;
节点功能:
排他型网关连接一个输入流,三个输出流,三个输出流分别为:判断参数值是Continue调用通知受理转实例分支;判断参数值是Repeat调用发送Inmarsat节点;判断参数值是Exception调用错单处理节点。
(4)顺序流:连接排他型网关exclusivegateway1有三个输出顺序流。
节点参数定义(以flow90节点为例):
id定义为flow90。
sourceRef定义flow90顺序流的源头节点是id为exclusivegateway1的排他型网关。
targetRef定义flow90顺序流的目标节点是id为servicetask_accept的服务任务。
conditionExpression定义顺序流flow90分支条件判断表达式,使用单变量的boolean表达式进行判断处理,顺序流flow90分支的条件判断定义为:${param==Continue},增加CDATA标记是格式化字符数据。
节点功能:
flow90的源头节点是网关,目标节点是服务任务通知订单处理模块进行转实例操作节点;flow91的源头节点是网关,目标节点是发送数据到Inmarsat系统节点;flow72的源头节点是网关,目标节点是错单处理节点。
输出顺序流的定义如下所示:
sourceRef=”exclusivegateway1” targetRef=”servicetask_accept”>
sourceRef=”exclusivegateway1” targetRef=”usertask_inmarsat”>
sourceRef=”exclusivegateway1” targetRef=”usertask_error_1”>
3 结束语
本文研究和实现了基于工作流的业务受理系统,通过引用开源的Activiti5工作流引擎,实现了海事卫星业务受理系订单的全自动处理功能,解决了之前应用系统的半手工订单处理问题,最终避免了各系统之间数据不一致情况。而与五代星业务融合是后续事卫星业务范围日益扩大,五代星业务也在慢慢成熟,需要推广到市场中,如何实现与五代星业务融合,也将是非常有意义的工作。
参考文献
[1] 王震东,赵兴生.国际海事卫星组织的通信业务[J].现代通信,1997,(8):28-31.
[2] 邹栫洁.第四代国际海事卫星技术的特点研究[J].中国海事,2012,(11):53-56.
[3] 庄少炖.基于Spring的轻量级Web框架研究与实现[D].成都:电子科技大学,2009.
[4] 于万钧.工作流管理技术研究[D].吉林:吉林大学,2004.
[5] Palmer N.Workflow Management Coalition[M].New York:Springer US,2009:179.
[6] Rosing M V,White S,Cummins F,et al.Business Process Model and Notation—BPMN[J].Complete Business Process Handbook,2015,(95):429-453.
[7] Tijs Rademakers,Ron van Liempd.Activiti in Action[M].New York:Manning Publications,2007:51-52.
作者簡介
刘利静(1987-),女,河南新乡人,中国交通通信信息中心,研究方向:交通信息化。
燕鹏飞(1981-),男,内蒙古乌兰察布人,中国交通通信信息中心,研究方向:交通信息化。