基于工作流引擎的海上突发事件处置管理系统

(整期优先)网络出版时间:2020-06-10
/ 2

基于工作流引擎的海上突发事件处置管理系统

张辉 1 何红 2

1. 中国电子科技集团公司第二十八研究所 南京 210007

2.南京莱斯网信技术研究院有限公司 南京 210000

摘要:针对海上突发事件种类繁多、处置方式不明确、缺乏有效的流程化管理手段,本文提出了一种基于SSM框架和Activiti工作流引擎的突发事件处置管理系统,通过分析海上突发事件的特点及典型行动样式,建立舰船相撞、人员落水等典型流程模板,实现各类典型海上突发事件的应急处置功能。

关键词:海上突发事件、SSM、Activiti工作流

0 引言

随着我国经济的高速发展,人们从事海上相关活动越来越频繁,导致海上发生的突发事件呈现显著增长趋势。由于海上事件通常具有偶然性、突发性,可能造成危及人员生命、危害国家、社会安全等严重性后果,这就需要海上相关维权执法部门快速指定方案、快速出动警力来应对舰船相撞、人员落水、治安事件等各类海上事件。海上突发事件虽然发生较为突然,难以预测,但可以提前谋划,提前部署警力、提前制定规划、快速响应。一是提前部署,保障警力、舰船、物力等各项资源,始终保证海上警力随时处于机动部署状态;二是提前制定规划,根据前期大量的突发事件案例进行分析总结,形成各类常见突发事件处置模板,便于快速选择最佳处置方案;三是快速响应,当突发事件发生时,能够以最快速度掌握事件的时间、地点和主要事故情况,并依据已部署的警力和处置方案,快速对事故进行处置,尽可能降低事件带来的损失。针对以上特点,亟需引入流程化管理手段实现对海上突发事件的应急处置管理。[1]

工作流引擎主要将各独立分散的应用整合成完整的流程,并提供可视化流程编排、事件流转处置和过程监控查看功能。Activiti作为典型工作流引擎,通过使用BPMN2.0建模语言,可以对业务系统中复杂的业务流程进行定义,业务系统按照预先定义的流程进行流转。Activiti对业务流程统一管理,实现业务系统和业务流程进行解耦,减少系统升级改造的工作量和系统开发维护成本。

本文以舰船相撞事件处置流程为例,构建基于工作流的突发事件处置系统。该系统实现突发事件流程的建模和处置功能以及事件的全方位的监控和管理,达到海上突发事件处置的流程化、自动化、精细化管理的目标。

2 系统总体架构设计

2.1 总体技术架构设计

系统采用基于MVC 的B/S(浏览器/服务器)设计模式,可以满足海上突发事件处置流程管理系统远程访问和监控的需要。将Activiti 工作流引擎和与当今主流的SSM框架进行整合,采用表现层、业务逻辑层、持久层和数据库的分层设计模式,将界面与业务逻辑分离、流程逻辑与程序分离、业务规则与程序分离,使得突发事件处置流程管理系统的安全性、可维护性、置用性和可拓展性大大提高[2]。系统的架构图如图1所示。

5ee09fd2cf9c1_html_76b181ab0ea7aad.gif

图1系统总体框架图

Fig.1 Overall architecture of system

业务逻辑层[3][4]:该层以Spring 框架核心,将Activiti 工作流引擎、Spring框架和SpringMVC框架进行整合,完成系统的逻辑处理操作[3],其中Activiti工作流引擎负责险情流程的启动以及险情流程整体业务流转跟踪,Spring主要解决与其他各层的松耦合问题,SpringMVC主要解决业务与表现层的交互效果。

数据持久层[5]:该层采用更加灵活的Mybatis框架来完成数据的读取和持久化等数据相关操作,数据信息主要包括流程库和业务库数据,包含险情流程执行过程中工作流相关数据表和险情信息数据表。

表现层:该层采用JSP 前端显示技术完成险情基本信息和流程信息的展现,该系统主要完成险情流程的全过程管理、处置状态的跟踪、监控和处置,提高海上险情处置的效率。

系统具体功能包括以下几个方面:

1)工作流管理[6]模块

该模块负责部署流程定义;查询流程执行过程中生成的流程实例、历史任务等;记录工作流生命周期里产生的各种流程相关数据信息。

该模块具备险情流程定义和发布、当前任务的处置状态的跟踪流转、历史任务的按关键字等查询和各种流程相关数据的管理功能。

2)险情流程管理模块

该模块具备可视化流程编排能力,能够依据对各类海上突发事件流程进行编排;具备事件流转处理的能力,能够对事件动态流转和处置;具备事件处置过程监控和查看的能力。

3)险情信息管理模块

该模块能够对接收到的险情信息接收、修改、删除、显示等功能,便于直接对接收到的险情进行险情处置流程的启动。

4)系统设置模块

该模块具备险情相关用户添加、修改、删除功能以及密码重置等功能;以及用户组信息的添加、删除和绑定用户功能。

2.2 关键开发技术

2.2.1 Activiti

Activiti是一个轻量级的开源的工作流引擎,为开发人员进行流程开发提供技术支持。其核心是BPMN2.0流程引擎,可发布设计好的流程定义,并通过API进行流程调度,具有快速稳定、简单强大等特点。通过实现BPMN2.0规范, Activiti采用流程虚拟机,支持BPMN2.0规范以外的流程格式,具有与外部服务良好集成的能力,服务接口清晰,已实现部分RESTFUL接口。

2.2.2 Spring

Spring框架Spring主要解决业务逻辑层与其他各层之间的松耦合问题,并且充分利用了Java语言的面向对象特性,解决了企业应用程序开发中存在的很多问题,同时也为J2EE应用程序开发提供了集成的框架支持。Spring有很多优点,比如Spring能够比较方便的解耦各模块与模块之间的关系,简化开发,达到高内聚低耦合的效果。

2.2.3 SpringMVC

SpringMVC框架SpringMVC是一种使用了MVC架构模式思想的轻量级Web框架。它是在Spring家族的一个产品,是在Spring原有基础上,提供Web应用的MVC模块。主要为了解决业务逻辑层与Web展现层的交互效果。SpringMVC是围绕前端控制器(DispatchServlet)来实现的,使得开发者不用去关心业务逻辑与Web层之间的交互,只需要编写业务代码。

2.2.4 Mybatis

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和普通的Java对象映射成数据库中的记录。

3 应用实例

海上突发事件的主要样式包括但不限于:舰船相撞事故、人员落水事故、船舶搁浅事故、船舶失控事故、船舶进水事故、船舶火灾事故、船舶沉没事故、客船事故和人员生病事故。本节以“舰船相撞事故”为典型事件,介绍基于SSM框架和activiti工作流引擎的海上突发事件处置流程。

舰船相撞事故处置模板主要包括主题、值班员、值班日期、主要情况(简述舰船基本信息)、舰船人员情况、事故情况(简述事故发生情况包括事故发生的时间、地点、简要经过等信息)、舰船受损情况(包括舰艇状况(严重受损/轻微受损/能够自航)、受损部位、受损程度等信息)、周围其他舰船受损情况、搜救警力情况(简述援救警力情况包括援救警力置、行动情况、援救能力等信息)、处置措施、值班领导、参谋长意见、政委意见和备注。

舰船相撞流程的主要业务包括接收海上突发事件信息、制定应急处置方案、逐级报告领导审批,绘制的典型流程工作流模型如下图XX所示。系统通过对该舰船相撞流程进行流程部署,产生相应的流程实例,启动实例后即可启动舰船相撞处置流程。启动时首先填写险情相关信息,包括主题、值班人员、值班日期、主要情况等信息,流程流转到当前值班领导,值班领导根据附近的救援警力、天气、气象等信息,制定事件处置方案,逐级向上级领导审批,参谋长、政委可对方案进行批示,也可将流程打回给值班领导重新指定应急处置方案。

4 结束语

本文提出的基于SSM框架和Activiti工作流引擎的突发事件处置管理系统,能够实现海上突发事件全过程流程化处置操作和跟踪监控,提高海上突发事件处置的信息化水平和应急处置效率,在一定程度上减少事故损失。

5 参考文献

[1] 刘红月,庄炳芳。中国海警处置海上突发事件策略思考[J].武警学院学报,2019,35(4):74-78.

[2] 王晓晓,杜勇前,叶剑虹。基于工作流网的银行业务库高安全门禁系统[J].计算机工程与应用,2016,52(8):221-228.

[3] 郭玉彬,蔡泽野,林泽伟,徐银鹏。轻量级动态工作流引擎的设计与实现[J].计算机工程与设计,2014,35(3):1105-1109.

[4] 管红杰,王珂,江海峰,许新征。SOA 架构的工作流管理系统的研究与应用[J].计算机工程与设计,计,2011,32(5):1654-1657.

[5] 张凡,袁峰,王永吉。基于工作了的J2EE遗留系统改造[J].计算机应用,2009,29(7):1760-1763.

[6] 马文涛,陈虹。基于Web Services工作流管理系统新模型[J].计算机系统应用,2009,8(1):27-31.

作者简介:张辉,2012-至今,信息系统软件设计,工程师.

何红,2014-至今,信息系统软件设计,工程师.