APP下载

基于RIA模式的小站集中管理信息系统设计

2012-08-06蒲加永邹本振

铁路计算机应用 2012年7期
关键词:小站客户端组件

蒲加永,邹本振

(西南交通大学信息科学与技术学院, 成都610031)

TMIS提高了铁路运输信息化的整体水平,为铁路运输、生产作业和信息化管理提供了及时准确的信息和技术保障。在现有的TMIS中,车站管理信息系统是构建TMIS的重要一环,它实现了车站内生产作业的管理,为TMIS中央系统和其他系统提供车站运输信息,是TMIS工程的建设基础,为铁路的高效运输做出了重要贡献。现有的TMIS中,大站的车站管理系统普遍实现了车站作业计划的制定和信息上报,但小站管理信息系统还存在着一些缺点,比如,由于采用C/S模式构架,导致信息上报困难,出现信息盲点,对铁路局调度、大型编组站的推流等工作造成了影响,同时还存在升级维护困难和成本太高等问题。为了提升全路的信息化水平,健全TMIS,迫切需要改进小站集中管理信息系统。

为了解决上述问题,并且克服传统B/S模式对服务器频繁访问等缺点,本文提出了一种基于富互联网应用程序(RIA)技术的新型小站集中管理信息系统。

1 相关技术

1.1 RIA构架

RIA概念于2002年3月第1次正式提出[1],这个概念是为了将桌面应用程序丰富的表现力与Web应用程序网络互联的特性结合在一起而提出。RIA是一种可以在本地运行的客户端技术的应用,是一种安全、可升级、具有良好适应性的新的面向服务模型,它包含丰富的用户界面显示和用户交换逻辑,提供承载已编译的客户端应用程序的运行环境。这种运行环境使得用户的大多数交互都可以在客户端直接处理,而不必向服务器提出远程请求,只有需要数据请求时才进行远程访服务器。

RIA是集桌面应用程序的最佳用户界面功能与Web应用程序的采用和快速、低成本部署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序[2]。RIA应用程序运行于传统的浏览器上,它采用分层结构,利用中间层来避免传统的页面频繁刷新问题。RIA将整个系统划分为客户层、表示层、业务层、集成层和资源层。各个层次之间明确划分了责任,使系统易于维护和扩展。

1.2 EJB技术

EJB(Enterprise JavaBeans)是基于Java的面向对象构件标准,是一个用于分布式业务应用的标准服务端组件模型,是构造可移植、可重用和可伸缩的业务应用程序的平台[3]。EJB框架的核心思想在于将业务逻辑与复杂的底层服务分开,而这些服务在很多开发模式下都具有通用性,由EJB容器去管理和提供这些服务,开发者只需要通过注解或者部署配置文件,通知容器如何使用这些服务,而无需从头开发或者重复开发,实现了重用。

EJB定义了3种企业Bean,分别是会话Bean(Session Bean)、消息驱动Bean(Message-driven Bean,MDB)和实体Bean(Entity Bean)。其中,会话Bean和消息驱动Bean是业务方法的提供者,用来处理业务逻辑,容器管理,并提供服务;而实体Bean独立于EJB容器之外,由持久化提供器通过EntityManager接口进行管理。

(1)会话Bean是建模业务处理或者操作的可重用组件。它使用业务逻辑,利用数据和系统资源实现用户的目的。会话Bean是EJB框架中唯一可以被客户端直接调用的EJB组件。每个会话Bean实现具有两个独特部分:1个或多个接口和1个Bean实现类。客户端通过调用业务接口访问会话Bean,而不能直接访问Bean实现类,实现了开发的松散耦合。会话Bean分为有状态会话Bean和无状态会话Bean,前者用于建模不维护会话状态的任务,而后者则要保证维护会话状态。

(2)消息驱动Bean是用于处理来自客户端消息请求的组件。MDB是一种无状态会话Bean,但没有本地和远程接口,它接收异步的JMS(Java Message Service)消息,MDB类实现Message Listener 接口进行消息的处理,实现业务逻辑。

(3)实体Bean是持久化数据组件,表示了存储器中的业务对象。通常每个实体Bean对应关系数据库中的一张表。EJB利用持久化将实体Bean包含的数据自动存储到数据库,持久化提供器可以插入到容器内,开发的时候只需要建立相互之间的调用依赖关系即可。

2 系统设计

2.1 硬件设计

新型小站集中管理信息系统采用3层分布式的体系结构,包括客户端、Web服务器和数据库服务器。图1为小站集中管理信息系统的硬件结构。该系统是一个多客户端的系统,在每个车站的一个具体岗位就是一个客户端。一般一个车务段(或者铁路局)下的所有车站公用一个Web应用服务器,这个Web服务器为其提供数据访问服务,中心服务器通过防火墙与铁路局的服务器相连,实现数据的及时更新,随时保持数据的一致性。

图1 小站集中管理信息系统硬件体系图

2.2 软件架构设计

为了实现系统的低耦合,提高软件的可维护性和重用性,小站集中管理信息系统采用基于RIA模式的4层软件体系,如图2,包括Flex表现层、EJB业务逻辑层、JPA持久化层和数据库层。

2.2.1 Flex表现层设计

表现层处于系统的顶层,主要实现界面显示,响应用户的请求,将请求发送给业务层,并返回业务层处理的结果,将结果显示给用户。本系统表现层采用Flex技术,由MXML、AactionScri3.0及Flex类库3部分组成,并采用MVC模式。

图2 小站集中管理信息系统软件体系

(1)视图层设计

视图层主要用Flex的UI组件以及Layout组件设计实现,组件的显示只与所绑定的数据源有关,这些数据源从模型层获得。当数据源改变时,组件显示的内容会自动更新;需要增加新的业务时,只需要传入新的数据源。

(2)模型层设计

模型层中封装了系统的核心数据模型和逻辑关系。模型层的改变会导致视图层显示的变化,它会根据当前系统的状态选择适当的数据模型与之联系。

(3)控制层设计

控制层组件根据用户提出的业务需求时产生的事件触发,执行相应的业务逻辑,根据结果刷新视图层显示或者更新模型层的数据。

2.2.2 业务逻辑层

系统的业务逻辑层和数据持久化层是由EJB框架构建。其中,会话Bean和消息驱动Bean构造了业务逻辑层,而数据持久化层由实体Bean建模。

业务层采用基于Facade模式的服务调用框架设计,Flex客户端主要通过RPC服务中的Remote-Object组件远程访问EJB方法。业务层提供了本地接口和远程接口两种访问途径,其中远程接口是当客户端调用服务器的业务逻辑处理函数时使用,在相同容器实例中的函数相互调用则用访问本地接口实现。

在小站集中管理信息系统服务器端的开发中,业务逻辑用无状态会话Bean构造,实体与数据库表之间的映射关系用JPA建立,会话Bean通过持久化提供器实现数据的检索和修改。

2.2.3 数据持久层设计

持久化实体对象(EO)是介于具体应用和数据库之间的一层数据,负责应用和数据库之间的交互,持久化实体对象用来维护数据库表的记录,与数据库表的字段相对应。JPA实体并不属于EJB容器管理,而是由持久化提供器(Persistence Provider)通过EntityMana-ger接口管理并实现其功能,数据库对用户来说是完全透明的。

以EJB为核心的服务器端的程序组织结构如图3。在J2EE服务器端,JavaToFlex是一个服务代理,起到Flex客户端和EJB容器的一个中间件作用;smisEJB是EJB工程,是业务逻辑实现的核心;smisEJBClient为外部组件访问会话Bean实体类提供了业务接口,包含本地接口和远程接口;smisJPA用于JPA持久化层的开发。而smisEAR是一个EJB容器工程,它负责管理smisEJB、smisEJBClient和smisJPA这3个资源工程。

图3 J2EE端程序组织结构

2.2.4 数据库层设计

数据库层由存储持久化对象的关系数据库构成,它根据与持久化层的映射关系,通过业务层持久化层对数据进行修改和查询。

小站集中管理信息系统包含了确报库、现车库、钩计划库、统计库和知识库这些相关的数据表。其中,现车库是现车子系统的核心部分,包含有关站场、站场股道、站场现车基本信息的数据表,如场目录(BCml),股道目录(BGdml)等;确报库存放着从其它车站铁路局转来的原始到报、到报、发报信息;钩计划库中保存了车站的编调车作业组计划,主要包括钩计划目录(CqzGjhml)和钩计划正文(CqzGjhzw)这两个数据表。

3 数据库访问优化

作为一个以数据为核心的信息管理系统,特别是基于Web开发的应用系统,响应速度的快慢会影响到软件的使用价值,而响应速度的快慢在很大程度上又取决于对数据库的访问次数。基于RIA模式的开发特点,为了提高数据库的访问速度,减少对数据库的访问次数,小站集中管理信息系统采用了提前加载的方法。对于大量的只读数据,或者很少修改的数据,在用户登录时就将其全部读入内存。当用户只需要查询这些数据时,直接从内存中读取;如果需要对数据进行修改或保存,进行一次数据库访问,修改数据库中的值,同时更新内存中的数据。这样的方式可以节省大量的数据库访问次数,提高系统的响应效率。

4 结束语

本文针对现在TMIS中车站管理信息系统存在的问题,提出基于RIA模式的车站管理信息系统,它改变了原有系统的C/S结构,便于扩展和维护,有效地降低了维护的工作量和成本,同时实现了车站信息及时上报铁路局。本文对RIA的相关技术进行了介绍,同时分析了软件的体系结构,并针对数据库访问和保存这两方面对系统的性能提升进行了探讨。本文提出的方案目前已经在一些小站进行试用并取得了理想的效果。

[1] STEVE WEBSTER,ALISTAIR MCLEOD.Developing rich clients with macromedia flex[M] .Michigan:Macromedia Press,2004: 331-332.

[2] 王林. RIA技术概览[J] .程序员,2005(2).

[3] Debu Panda,Reza Rahman,Derek Lane. EJB 3 in Action[M] . 马朝晖. 北京:人民邮电出版社,2008,7:3-15.

猜你喜欢

小站客户端组件
入口、入心……一杯清茶 三人小站 四成市场
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
如何看待传统媒体新闻客户端的“断舍离”?
小站人的情怀
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
小站