引入RIA技术的地铁管理系统架构设计
摘 要:立足现有地铁建设模式和流程,将RIA技术与J2EE应用框架相结合,建立地铁项目管理系统,并展示系统已实现的丰富的客户端操作,验证了RIA技术强大的活力。
关键词:地铁建设;RIA;Flex;SSH;项目管理
0 引言
地铁建设牵涉多行业、多单位、多技术、多资源、多工种,如何及时有效协调各方需求,保证工程建设的进度和质量,成为工程管理者面临的重要问题。采用当前日趋成熟的富互联网应用程序(RIA)技术,设计开发的地铁项目管理系统立足现有地铁建设模式和流程,打通项目运作始末的信息交换死角,提高公共信息的开放度、透明度;打破空间限制,强化部门间、各区域分散作业点间及其与项目部间的信息互换和共享;对整个项目全部作业节点进行实时监控,使项目管理层全面实时掌握项目进度,为突发问题提供一手材料。
传统的分布式应用系统有B/S和C/S两种架构,前者是以互联网为开发背景的Web应用系统,后者则是面向局域网的企业应用系统。C/S架构的应用程序往往功能强大、界面丰富、响应时间短,并具备良好的交互性和操作性,但其客户端程序部署和升级成本较高;B/S架构程序虽具有客户端零安装部署的特性,但该类系统基于简单的“请求-应答”HTML页面架构,因此信息延迟,用户体验单调。
RIA并不专指某项技术,也不是某种开发语言,它是一种旨在提高用户友好程度的开发趋势。RIA提供丰富的用户体验,进而提高用户满意度和用户生产效率,借助互联网的广泛触及力,RIA可部署在各种浏览器、桌面和设备上。基于RIA技术的系统架构兼具C/S和B/S架构应用程序的优点,可提供丰富的用户界面、灵活的操作性、多媒体通信能力,并具有B/S架构应用程序低成本部署的特性。同时,采用RIA技术架构的网络应用程序还允许用户离线操作。上述特点可满足地铁项目管理中客户端交互操作、信息需求相对复杂、网络通路不稳定、作业区域分散等需求。
1 系统架构
与传统Web应用相同,RIA应用也遵循互联网应用系统中广泛采用的MVC软件设计模式,即将应用程序按功能划分为3层:视图层提供用户界面;控制器层对用户输入进行处理;模型层为界面存储数据和应用逻辑。系统采用Flex技术作为表现层,取代传统的Java用户界
面技术(如JSP、Servlet等)。Flex技术的开发平台FlexBuilder 3可基于Eclips使用,也可单独或作为插件使用。Flex使用基于XML的MXML语言描述应用程序的用户交互界面,再通过Flex编译器将MXML编译成SWF文件,存于服务器端,用户可下载并通过Flash Player执行SWF文件访问应用程序。Flex虽然是一种全新的视图层方案,但Flex的自带组件LiveCycle Data ServiceES可为Flex提供多种与Java后台交互的方式,如远程对象调用、Java消息服务和数据管理服务。因此,Flex用户界面能很好地与已有的业务逻辑组件、应用服务器和数据库实现无缝连接。
由于Java技术强大的计算能力,系统采用Java平台实现应用系统复杂的服务器端的业务逻辑。借助J2EE应用中广泛采用的Web层框架(Struts)+业务层框架(Spring)+数据持久层框架(Hibernate)(简称SSH)实现应用系统MVC构架中的模型层和控制器层。具体而言,采用Spring作为容器框架实现对Struts、Hibernate框架的无缝集成;在模型层,采用Hibernate 框架实现用于底层数据操作的持久层,采用Spring框架实现用于高层业务逻辑的业务层;在控制器层,采用Struts2 Web应用框架,用以接受、映射客户端请求,提交响应到合适的视图层组件。在设计开发中,采用AppFuse框架技术具体实现上述框架模式。系统开发架构见图1。

AppFuse是一个开放源码的项目和应用程序,集成了流行的Spring、Hibernate、ibatis、struts、Xdcolet、junit等基础框架。在创建项目时,用户可选择Struts、Spring MVC、Webwork、Taperstry和JSF等MVC框架搭建应用程序。AppFuse使用Ant驱动测试、生成代码、编译和部署程序。使用AppFuse创建的新项目会直接包含很多类和文件,提供很多应用程序共有的特性,如认证和授权、用户管理、密码提醒、登记和注册、URL重写、模块化布局等功能,有效减少代码编写时间,提高编码效率。
2 系统实现
该系统立足于城市轨道交通工程项目建设管理,主要围绕项目管理阶段的系统集成管理、施工过程管理和系统联调管理进行整合管理,同时对项目全况给出总揽。由于引入RIA技术进行设计开发,在客户端应用界面实现了足以与桌面式应用系统相媲美的丰富的操作手段和交互体验。在此,以“项目总揽图”和“系统联调管理”功能模块为例,展示RIA技术赋予软件系统的强大活力。
2.1 项目总揽
进入系统主控界面后,单击“项目总揽图”菜单,呈现界面见图2。该模块功能界面提供了灵活多样的操作手段,可以多层次、多角度地查看整个项目管理过程中的相关数据。

(1)查看项目施工点。在“项目总揽”界面中,会显示地铁线路上全部施工点的总揽图,按照真实项目施工点分类和排列进行显示。分类包含如下内容: 站台、车辆段、 区间(隧道:黑色标识;高架:白色标识)、开闭所、变电所、跟随所。
(2)移动施工点总揽图。施工点总揽图右上角的绿色方向箭头可实现施工点在系统中的移动操作。“恢复”按钮可恢复施工点总揽图至系统初始位置。
(3)缩放施工点总揽图。施工点总揽图右上角的“缩小”、“放大”按钮可实现施工点总揽图的缩小与放大操作。
(4)施工点数据总揽图。单击施工点总揽图中某施工点的名称,会显示具体施工点的数据总揽图(见图3)。
(5)施工点具体业务功能数据总揽图。在图3所示界面中,点击每个单项类别后的“View”,可进入施工点具体业务功能的数据总揽图。

2.2 系统联调管理
系统联调管理是在项目管理过程中,对系统集成与施工管理之后的集成系统的联调业务组的管理。系统联调管理包含系统安装状态管理、系统单机调试管理、系统接口调试管理、系统功能调试管理、调试日志管理、里程碑管理、大联调管理等10余个功能。以其中的大联调管理功能模块为例:进入系统主控界面后,选择进入“联调管理”→“大联调管理”,系统弹出“大联调管理”界面(见图4)。在此界面中,用户可在界面左栏选择需要编制的大联调管理,对应选择的待编制信息内容显示在界面右栏中。界面右栏有2个选项卡:基本资料和过程明细。在“基本资料”选项卡下,可对其中数据进行新增、更新、删除操作。在“过程明细”选项卡下,可对在“过程明细”列表中选择的某个明细进行类似的新增、更新、删除操作。

3 结束语
地铁项目管理系统采用Flex技术开发客户端程序,从而将RIA技术引入系统设计架构中,实现对原有程序模式的富互联网化。采用RIA技术开发富互联网应用程序,可继续使用现有应用程序模型(包括J2EE和.NET),因而无需大规模替换现有Web应用程序,同时继承现有Web应用程序客户端的零部署特性,或者通过一次性加载插件完成部署。RIA表现力更加丰富,能在基于标准浏览器的网页应用中实现HTML标签根本无法实现的用户界面效果;用户交互更加丰富,涵盖所有在客户端所能实现的功能(例如拖拽功能、滑块功能等),而且这些功能无需与服务器端交互数据,完全是在客户端进行运算,从而使客户端和服务器端对资源的需求更加平衡;无需一直与远程服务器进行网页交互,即使交互也仅限于更新所需的部分数据。采用异步通信和预取数据,可大大提升客户端请求的响应速度,界面功能的反应也更加迅速;同时还可实现某些浏览和应用的离线操作。相信在不久的将来,RIA将成为互联网应用的主流开发架构和模式。
参考文献
[1] 杨占坡. Flex 3 RIA开发详解与精深实践:企业级Web应用与AIR桌面应用[M]. 北京:清华大学出版社,2009
[2] 丁士锋. 精通Silverlight RIA开发技术详解[M]. 北京:人民邮电出版社,2008
[3] 张文军. 基于Flex和JavaEE技术的RIA架构的研究和应用[J]. 微型机与应用,2007(11)