机场应急救援系统软件架构设计

  (作者:朱新平 韩松臣)  摘 要:传统的机场应急救援开展方式暴露出很多缺陷,如何利用计算机信息化技术提高机场应急救援工作的效率,减少突发事件对机场正常运营的影响,降低救援成本具有重要的实际意义。基于J2EE体系结构,提出了集成Struts和Hibernate框架的机场应急救援系统架构模型,并对系统功能模块划分和具体的业务流程进行了分析。 

  (作者:朱新平 韩松臣)

  摘 要:传统的机场应急救援开展方式暴露出很多缺陷,如何利用计算机信息化技术提高机场应急救援工作的效率,减少突发事件对机场正常运营的影响,降低救援成本具有重要的实际意义。基于J2EE体系结构,提出了集成Struts和Hibernate框架的机场应急救援系统架构模型,并对系统功能模块划分和具体的业务流程进行了分析。 

  机场应急救援是民航航空安全系统的重要组成部分,是航空安全的基本保障。建立有效的机场应急救援系统,在事故发生的情况下,做好应急救援工作,果断处置各种紧急事件,避免、减少人员伤亡和财产损失,减少对机场正常运营带来的影响具有重要意义。国内关于机场应急救援系统的研究还不多。迟文学等人基于GIS (地理信息系统 )建立了一套机场应急救援与辅助决策支持系统,并对相关技术要点进行了阐述。徐忠明提出建立以数字集群通信系统为核心的机场应急联动系统。罗帆等在问卷调查研究的基础上,对机场灾害预警管理的工作内容进行了阐述。当前,计算机、网络信息化技术已经渗透和应用到各个领域,但在机场应急救援方面的应用仍很落后,机场各单位应急处理系统各自独立,信息共享范围有限,形成了一个个“信息孤岛 ”,难以应付机场紧急和突发事件的发生,这对机场的应急救援工作是一个很大的缺陷。Internet / Intranet的普及,基于J2EE的Web技术迅猛发展,各种框架技术的不断成熟为建立机场应急救援系统提供了有力的支持。因此,基于J2EE体系结构,提出了集成Struts和Hibernate框架的机场应急救援系统架构模型,并对系统逻辑结构、功能模块划分和具体的业务流程进行了分析。

  1 Struts框架与 M VC模式 

  Struts是在Jakarta项目下开发的开放源码软件,是基于Model2设计模式的Web应用开发框架。Model2设计模式是模型 - 视图 - 控制器(model - view - contr oller,MVC)模式的一种应用。MVC将应用程序的事务逻辑同数据表示层分离出来,其中,模型是应用程序的核心,封装了用户数据和处理数据的业务逻辑,体现了应用程序的当前状态,而且可以将用户数据状态的变化提供给多个显示该数据的视图共用;视图提供了用户界面,是用户和应用程序进行交互的窗口;控制器连接了模型和视图,根据用户的请求判断将请求交给哪个模型来完成,并进行处理结果的回传。Struts框架主要由模型、视图、控制器和XML文件4个部分组成。模型通常由Java Bean或EJB组件实现,负责处理业务逻辑;视图包括一组JSP文件,主要由JSP标签或Tag Lib构成,它简化了JSP页面的编码工作;控制器主要是Acti onS2ervlet,但是对于业务逻辑的操作则主要由Acti on、Acti onMapp ing和Acti onFor ward这3个组件协调完成,其中Acti on是真正的控制逻辑的实现者,而 Acti onMapp ing和 Acti onFor ward则指定了不同业务逻辑或流程的运行方向;Struts中主要包括web . xml和 struts - config . xml 2个配置文件,其中web . xml是 Web应用的发布描述文件,struts -config . xml是与 Struts相关的特殊信息配置的描述文件。此外,Struts还利用 XML来描述在国际化应用中的用户提示信息

  2 Hiberna te持久层框架 

  Hibernate是一个优秀的持久层框架,充分体现了对象 -关系映射 (object - relati onal mapp ing,ORM)的设计理念,提供了强大、高性能的对象到关系型数据库的持久化服务,并已成为ORM领域事实上的标准。 

  Hibernate可以处理关联、继承、引用、多态和集合等方式的持久化,对象生命周期和状态的维护全部在 Hibernate内部完成,无需用户关心,也不需要对Java的业务对象进行增强。它的底层仍然是关系数据库,通过封装 JDBC AP I的方式提供面向对象的持久化方式,在 JDBC支持的场合都能够使用。在性能方面,Hibernate的编写者充分使用了JDBC高级功能,使得使用 Hibernate开发的程序的效率超过直接使用 JDBC方式。 

  Hibernate提供面向对象的查询语言 HQL,它类似与 SQL,不过采用的是面向对象的语法,功能上与 S QL基本等同。由于 Hibernate只是 JDBC的高级封装,本身不具备事务处理功能,但它可以使用 JDBC的事务或者 JT A事务处理。

  3 机场应急救援系统设计目的及流程 

  3 . 1 系统的设计目的 

  该项目的提出者为某机场应急救援组织机构,其下辖有指挥中心、航务管理部门、消防灭火组、医疗救护组和公安警戒组等12个部门及协议救援单位。在长期的应急救援演练中暴露出一系列的问题,比如,救援过程中整体协作能力不强,工作效率不高;救援过程中指挥人员对各部门可调用资源相关信息不清楚,导致决策失误时有发生;救援工作结束后,事件评估和经验总结主要依据工作过程中的语音记录,评估方式单一,评估效果不佳。该系统的设计目标是通过与该组织机构的合作,充分听取指挥中心和各个救援小组,以及机场、航空公司的需求,提出适合实际救援的机场应急救援系统架构,整合各救援单位的救援资源信息,消除“ 信息孤岛 ”,促使各救援单位形成合力,提高救援工作效率。 

  3 . 2 系统的逻辑结构 

  系统基于B /S (浏览器 /服务器 )模式,由服务器和客户端组成。各救援小组负责人可以通过IE浏览器登录系统,执行指挥中心传达的各种命令,调度本小组救援资源。系统逻辑结构图如图1所示。

机场应急救援系统软件架构设计

  3 . 3 系统的功能模块 

  根据机场应急救援工作的实际需求,机场应急救援系统主要功能模块划分如图 2所示。

机场应急救援系统软件架构设计

  系统包括:① 报警模块,用于事故报警,负责将事故信息通知救援小组成员;②辅助决策模块,是整个系统的核心,包括事故种类决策模块、救援预案生成模块、救援力量调度模块,主要协助指挥人员完成事故种类的决策、应急救援预案的生成、救援资源调度方案决策;③日常维护模块,主要完成救援资源信息、救援单位信息以及个人信息的日常维护;④回放模块,用于将以往救援案例记录进行回放,以便讲评;此外,还有其他外围功能模块。

  3 . 4 系统的总体架构 

  通过对各种解决方案和框架结构的比较,选择 Java技术作为系统开发的应用技术。该系统的辅助决策、日常资源管理、救援历史回放等几大模块相对独立,但都很复杂,涉及到大量的数据处理与复杂的业务流程,因此集成的Struts与 Hibernate架构刚好适合于开发这个系统,而且能够很好地节约开发时间和开发成本。集成 Struts和 Hibernate框架的机场应急救援系统总体架构如图 3所示。 

  该统采用客户浏览器 /应用服务器 /数据库架构模式,前台表示层使用 JSP技术通过浏览器实现;中间层 (Web层 +业务层 )使用 Struts框架和Java Bean、EJB等技术来实现,以满足业务需要;持久层通过 Hibernate框架提供对数据库的操作支持;后台数据库使用 SQL Server 2000数据库,并根据系统相应功能模块分成决策规则库、救援预案库、救援资源数据库、救援历史记录数据库分别设计。

  该系统具有如下优点: 

  (1)合理划分各层的功能,降低层与层之间的耦合,从而使得整个系统在逻辑结构上更为清晰,提高了系统的可维护性和可扩展性。

  (2)Web层的开发和维护更为方便。传统的Web层开发中基本上都是将逻辑处理、数据处理和页面显示等大部分功能放在 JSP页面上,但是在机场应急救援系统的 Web层开发中采用 MVC设计模式,从根本上强制性地将它们分开。它把应用程序分成3个部分:模型、视图和控制器,并采用主流的Struts框架技术来实现各个部分,它们相互协作,完成不同的任务。由于所有的页面跳转都集中在XML配置文件中定义,因此提高了程序的可读性和可维护性。

  (3)先进的持久层实现技术提高了系统的移植性。运用 MVC模式的 Struts框架虽然在总体上实现了对逻辑、显示和控制的分离,但是它没有提供对复杂的持久层的支持,也就是说当数据要存入数据库时Struts没有做相应的处理。还是与传统的开发一样,要通过JDBC、EJB与数据库交互。鉴于此,该系统采用Hibernate,可以弥补Struts框架在持久层操作中的不足,它对数据库操作的大多数技术细节进行了封装,经过 Hibernate的 O /R映射 ( object - relati onal mapp ing)的配置文件就可以将数据库表与持久层对象对应起来,完全符合Java中面向对象的开发思想。而且,由于Hibernate对不同的数据库都有良好的支持,只需简单修改 Hibernate中的配置文件 hibernate .cfg . xml就可以实现底层数据库的切换,提高了系统的移植性。 

  3 . 5 基本业务流程 

  在表示层运行的浏览器中,通过JSP页面实现交互,传送请求和接受响应。Web层中的Struts通过Acti onServlet接收请求,并将请求交给Re2quest - Process or来处理。Request - Pr ocess or根据请求的URL从 Acti onMapp ing中得到与之相对应的 Acti on,并根据请求的参数实例化响应中的Acti onForm,再经过 Form 验证。业务层负责向Acti on提供业务模型组件和该组件的

搜索