突发事件应急管理调度平台的设计
2011-07-24罗惠平杨木清
余 鹏,罗惠平,李 艳,杨木清
(中南民族大学网络技术中心,湖北武汉430074)
突发事件对社会造成的影响越来越严重。科学及时地调度应急通信设施、应急人员、应急物资等应急资源,对缓解突发事件带来的危害和影响起着非常重要的作用。因此,建立突发事件应急管理调度平台,提供应急管理调度保障指挥平台,对全方位提高企业、政府机构、高校等应对突发事件的反应速度和指挥效率具有重要的意义[1]。
笔者结合Spring框架和Hibernate数据持久化框架特点,设计并实现了应急管理调度平台,这些框架增强了系统面向对象的构件化,具有良好的扩展性、实用性、开放性和安全性[2-3]。
1 平台的体系架构
1.1 平台网络结构
平台的网络结构[4]主要由3个部分组成,分别是管理员监控中心、数据交换处理中心和外部操作中心,如图1所示。
(1)管理员监控中心。该中心由不同等级、不同方向的平台管理员组成。管理员以WLAN或VPN的方式进入数据管理后台,监控平台的数据,制定和修改各种系统配置信息和运行参数信息,保障系统能在不同时期、不同情况下,满足不同应急方案的需要。
图1 应急管理调度系统网络结构图
(2)数据交换处理中心。该中心是本平台的核心模块。它保障数据交互、采集和备份等功能。应急保障或救援的人员数据,物资调配数据,从外部接口调用的天气预报、地理灾害数据,采集的外部其他原始数据,以及与各种类型的网元适配的数据都在该中心完成。鉴于数据中心是平台的关键,所有重要的设备都将采用冗余或者备份技术,以提高平台的容灾性和运营的稳定性。
(3)外部操作中心。该中心是普通用户接入系统的模块,用户可以通过各种不同的方式来查看和审阅平台信息中心的数据(包括预案资源调度数据,不同机构、不同类型、不同时间、不同方案和不同级别的应急资源信息的统计和模板的数据)。该中心是构建在Ajax组件和热点地图基础上的实时监控模块[5]。将应急资源分布地图进行块划分,以区域块的形式呈现,并通过Ajax组件无刷新动态地获取数据库服务器的数据。一旦用户想查看整个区域或分区域块的资源调度信息,通过点击热点区域块就可以清晰地查阅该地区实时的数据。
1.2 平台体系结构
依据选用的软件模型、设计思想,突发事件应急管理调度平台的总体框架分为5层:应用层、数据处理层、数据持久化层、采集适配层和网元层,如图2所示。
图2 系统体系结构图
(1)应用层。该层面向用户,提供用户所需各类业务应用,包括应急预案管理、应急资源管理、应急脚本管理、命令通道管理和系统内部管理。
(2)数据处理层。该层为应用层提供各项后台处理服务,包括数据的认证/鉴权、预案工作流引擎、应急脚本/资源存储等。该层与应用层紧密相关,Spring将两层的对象以松耦合的方式组织在一起,通过依赖注入Bean方法,动态、灵活地管理各种对象。
(3)数据持久化层。该层负责保存所有系统配置和运行参数信息。其依赖于Hibernate框架实现,完成O/R Mapping(值对象与数据表之间的关系映射)。该层对JNDI、JDBC进行了对象封装,通过会话工厂和设置JDBC对象抽取器,完成对持久化对象的存储;能够进行事务控制,提供多级缓存管理;同时,程序运行过程中,一旦捕捉到系统异常或操作异常,会自动完成事务回滚操作。
(4)采集适配层。该层负责从外部系统采集原始信息,并与数据库资源实时同步,同时对各种类型的网元数据进行适配,对数据进行容错等处理工作。
(5)网元层。该层提供系统内部管理(多网元)数据接入,包括管理员对应急预案方案库的增改、应急策略的调整和应急程序的变更等。
2 模块功能
平台系统采用多级模块构建软件模型,其功能模块划分如表1所示。在系统设计中,一级模块是主要功能模块,包括应急预案的统一管理、应急资源的管理以及系统管理。
表1 平台功能模块
应急预案按照其性质划分为总体预案、专项预案和备选方案库。各类方案均提供预案培训、预案测试、发布贯宣、方案演练、优化建议和定期审核等操作。预案的制定采用生命周期的管理流程,形成闭环式的管理方式,如图3所示。
图3 应急预案生命周期管理流程
(1)需求产生。主要是在新的故障现象发生前或者发生时模式发生改变,对应急工作产生新的需求。
(2)制定应急方案。企业、政府机构或学校有新的需求产生时,必须按该管理办法的应急预案或应急方案的框架结构进行预案的制定。
(3)测试方案。预案或方案制定完毕后,总部必须考虑当前有限的条件,实施作业的难度和花费时间的长短。
(4)修改方案。根据测试方案的结果,修订应急方案的配置和相关参数,提高应急效率,缩短应急支援时间。
(5)审核预案。方案修改完毕后,总部组织相关人员对方案进行进一步考核和评审。
(6)预案培训。在审核完毕后,根据测评人员的意见进行方案的修订。修订完毕,需要对关键人员进行必要的指导和培训。
(7)发布贯宣。对关键人员进行培训完毕后,以公文的形式下发下级部门,必要时可以采用视频会议的手段进行远程贯彻宣传。
(8)方案演练。为了验证方案的可用性和提高维护人员对方案的熟练程度,需要组织适当的演练,在演练过程中发现不足,继续修订。
(9)优化建议。通过演练和不同维护人员对方案的实际操作,将发现的问题汇总,然后再重新修订方案,并将方案修订的消息以任务工单的形式下发。
(10)定期审核。由于情况不断变化,单一的预案经常无法满足变化的外界条件,必须组织人员对应急预案和方案进行审核,确保预案和方案满足新的需要。
应急资源的管理[6]是保证应急指挥调度及时性、高效性的保障模块,也是平台系统的支撑核心。该模块包含了各种应急物资数据的录入和更新,汇总数据的综合统计分析,应急指挥地图查询及呈现等功能。其突出的特点是利用Ajax引擎无刷新异步加载实时数据,通过地图热点的形式,以鼠标点击不同地区加载当前实时数据的方式呈现给用户各种实时的资源调度数据,并实现与天气预报信息、地质灾害等信息的周边接口,为应急提供多条件保障,并提供多条件(日期、地点等)、多显示(文本、直方图、曲线图、饼图等)的信息查询方式;结合时间段、多种报表数据格式查询等方式,用户可以方便快速地浏览统计信息,并以多种形式输出(pdf、excel等)。
系统管理包含了人员管理、短信配置、权限管理和日志管理4个子模块。①人员管理提供对用户信息的管理;②短信配置模块提供了短信接口,可以配置应急参数,为应急管理者给相关事件负责人等发布通知和信息通告、正确发送短信提供支持;③权限管理是除原权限管理之外所有权限的配置管理模块,包括登录权限、库管权限和脚本管理权限等;④日志管理是对系统的所有操作的日志信息、登录系统的日志信息、系统自身警告的日志信息、人员创建、修改和删除应急数据日志信息等进行管理。
3 工作流程设计
图4为应急管理系统的工作流程图。系统基于B/S模式,由客户端和服务器端组成[7]。服务器端是基于Spring的MVC构建,JSP实现了框架的视图;数据模型以Hibernate对象关系映射框架支撑,对JDBC、JNDI进行封装,并完成被持久化对象的 CRUD操作[8]。同时提供 Transaction和Query等接口,使系统能够快速、有效地处理数据,并能够提供异常情况下的数据回滚和多级缓存机制;控制器以Spring控制器类为基础。该系统实现了接口注入的方式,无论是控制层的Action对象,还是业务层Service对象,或者持久层的DAO对象,层与层之间无需关心各层具体实现,各层的调用都面向接口。数据动作都封装到Dao接口中,数据动作的实现类则封装到DaoImp中,数据的增删改查操作则通过HibernateTemplate类执行对Oracle 10g数据库的操作。以搜集应急预案为例,将汇总预案信息封装到PlanDao接口中,其代码如下:
图4 平台工作流程图
public interface PlanDao{
/**
*根据条件汇总预案信息
*@param loginId用户登录帐号 @ param branchId所属公司Id
*@param planTypeId预案类型Id@param planLevelId预案级别Id
*@param planTitle预案标题@param username起草人名称
* @param beginTime开始时间 @param endTime结束时间
**/
public List collectPlan(String loginId,int branchId,int planTypeId,int planLevelId,String planTitle,String userName,String beginTime,String end-Time,final Pager page);
}
数据动作通过PlanDaoImpl类执行,在Spring中封装的 H ibernate模板,在 W eb层构造 D etachedCriteria对象,然后调用业务层Bean,进行动态条件查询,代码如下:
用户通过浏览器发出请求。在服务器端,Spring的DispatcherServlet类负责将客户的请求通过xm l配置文档分配给相应Spring控制器[9]处理,分析请求内容,并对用户进行相应的权限认证。认证通过则利用Spring控制器调用应用层模块处理。以搜集应急预案为例,其代码如下:
如果用户需要访问数据库,数据处理层通过数据接口类传递请求参数,数据在数据持久化层内实现访问接口,依赖于HibernateTempalte类与数据库交互,得到响应的数据逆向返回到控制器,以视图呈现给用户。系统在控制器与视图之间引入了Ajax引擎,在页面加载后通过XMLHttpRequest对象,无刷新地从服务器自动获取更新数据,该方式能够保证上报的应急数据实时地在电子地图上统一呈现,用户也可以通过电子地图、卫星地图直观地实现对应急资源的调度和监控[10]。
4 结论
分析当前企业、政府、学校等机构处理应急事件的需求,设计并实现了基于Spring框架和Hibernate数据持久化框架的突发事件应急管理调度平台,阐述了平台的网络、体系结构,模块功能以及工作流程。实现了对地区应急预案的统一管理和应急物资、人员的统一调度,通过电子维运系统上报的应急数据在电子地图上的实时呈现,实现用户对电子地图、卫星地图等直观方式的应急调度过程的动态监控,以及对应急指挥调度任务的统计分析和历史数据存档等功能。平台采用当前最为稳定和成熟的Java语言,Spring、Hibernate框架和Ajax等技术,保障了系统的先进性、健壮性、良好的扩展性、平台无关性、灵活性和安全性。
[1]周时莹,秦贵和.基于J2EE的公共卫生应急综合指挥系统设计[J].微计算机信息,2008,24(2):8-10.
[2]ZHONG SB.Preliminary study on synthetical forecast based on incident chain in emergency platform of public safety[J].Wireless Communications,Networking and Mobile Computing,2008,8(4):1 -4.
[3]ZHAO L D,LIU M,DAID F.Research on scheduling problem of emergency resource with pulse need[J].Journal of Southeast University:Natural Science Edition,2008,38(6):1116 -1120.
[4]李道华,陆文远.应急调度的网络结构与系统应用[J].国防科技参考,1997,18(4):93 -97.
[5]THOMASP.Ajax完全手册[M].闫锋欣,陈泽峰,万能,译.北京:电子工业出版社,2009:32-37.
[6]张婧,申世飞.基于偏好序的多事故应急资源调配博弈模型[J].清华大学学报:自然科学版,2007,47(12):2172-2175.
[7]董立岩,李真.突发公共事件应急平台系统研究[J].吉林大学学报:信息科学版,2009,27(4):377-382.
[8]孙卫琴.精通Hibernate[M].3版.北京:电子工业出版社,2005:85-87.
[9]林信良.Spring技术手册[M].2版.北京:电子工业出版社,2006:71 -74.
[10]张舒,李超.基于订阅发布的车辆GPS应急监控调度平台[J].计算机工程与设计,2008,29(2):445-450.