客车正晚点信息管理系统的设计和实现
2013-06-21上海铁路局信息技术所
项 琛 上海铁路局信息技术所
目前,路局调度所掌握管内所有客车运行情况以及晚点信息,但是缺少一套高效、快捷的信息系统为路局各处室、管内各车站、车务段、客运段等单位提供相关客车晚点信息。
通过构建上海铁路局客车正晚点信息管理系统,可以提供路局范围内所有晚点客车的预告和分析汇总情况。通过使用该软件,路局客服中心及各相关处室、客运站以及客运段等客运部门可以有效地掌握旅客列车正晚点信息,提高应急处置能力;通过与广播电台合作,进行广告冠名,增强经济效益;为出发旅客及接送客户服务,树立铁路形象。路局调度所能够对客车晚点情况进行分析汇总,生成每日客车统计报表,从而有效地指挥生产运输。
1 Net环境下的三层架构
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层(见图1)。
图1 三层结构原理
三个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
2 客车正晚点信息管理系统设计
2.1 系统设计原则
(1)开放性、通用性和扩展性
采用当今先进的、成熟的系统软硬件,降低系统建设成本。采用面向未来的标准化技术,面向对象的设计方法,B/S应用体系结构,包括计算机、服务器、操作系统、数据库管理系统在内的软硬件能兼容市场主流硬件和软件系统,保证方便地进行扩充和升级。同时,考虑到将来信息系统的拓展对该项目的远期建设所提出的更高要求,所以系统结构应采用模块化设计,在服务器处理能力、存储设备容量、网络通道带宽等方面留有拓展能力。
(2)安全性和可靠性
铁路部门是国民经济的运输大动脉,安全问题是项目成功的关键,因此要有安全体系的完整考虑。通过建立严格的系统操作权限机制、网络安全机制和严格的系统使用规章制度,来提高系统的安全性;通过规范业务操作流程和降低服务器故障率,从软件和硬件两方面来提高系统的可靠性。
(3)易操作性和可用性
信息系统应实用可靠,界面友好。其维护界面设计和操作设计方面,应直观醒目,保证操作界面清晰、操作方式简便、操作流程顺畅,使信息显示和查询准确、方便、快捷,全力保障系统的高可用性。
(4)统一规范,形成标准
随着铁路信息化建设的不断完善和铁路改革工作的不断深入,必然会对系统提出更高的要求。因此,系统设计之初应当充分考虑系统的可维护性和可扩充性,形成统一规范,其网络规划和信息安全建设应符合铁道部关于计算机网络建设的总体规划。
2.2 基于UML的流程分析
在传统的结构化软件的实际中,基于业务流程的描述大多采用数据流图。在新一代NET框架下,这种方法已经不适合面向对象的分析设计和实现。统一建模语言(UML)中的活动图用来在面向对象的系统中不同组件之间建立工作流程模型,能使用户快速和深刻地理解意思,从而形成用户和开发人员之间对系统功能和流程共同的基础性文档。
2.3 系统模块设计
系统设计采用模块化的设计思想。
2.3.1 数据交换模块
数据交换功能负责把晚点数据从调度数据库中抽取到晚点数据库中,进行筛选和推算,生成晚点数据;同时汇总生成每趟车的晚点数据,从而推算出最少晚点时间;根据到达车次查找出折返车次,计算客车是否因晚点到达而产生延迟始发,从而为调度及车站指挥运行调度提供数据基础。
2.3.2 数据维护模块
数据维护模块分为定时维护和手动维护。
定时维护是指每天通过WEB Service技术访问客运数据,实时更新本地的时刻表数据,从而减轻维护人员的工作压力。
手动维护是指用户通过维护程序来更新时刻表和其他基础数据,一般适用于时刻表新旧交替的特殊情况。
2.3.3 数据查询模块
授权用户可以通过路局办公网,使用Web端软件查询客车晚点情况。
2.3.4 数据分析模块
授权用户可以通过路局办公网,使用Web端,按照分界口接入交出、主要客运站的到达出发、客车分类等条件,对以往客车晚点情况进行分析汇总。例如分界口晚点分析、主要客运站晚点分析、惯性晚点列车分析、客车正点率统计分析等内容。
授权用户通过对客车站点情况的分析汇总,能够生成各类报表数据,为领导决策提供依据;也能作为对调度所和客运站的客运指挥作业进行考核的依据。
3 客车正晚点信息管理系统实现
3.1 客户层
主要表示为WEB方式,也可以表示成WINFORM方式,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
例如:各用户使用系统前,必须拥有相应的权限;当每个用户登录系统之后,根据用户的权限,显示不同的界面,从而保证了系统的安全性和统一性。
3.2 逻辑层
主要是针对具体问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
利用UML对系统分析的类图可以方便地生成应用程序类框架。在本系统中,BaseDAL.cs是逻辑层的基类,基类已经包括了增删改查的基本操作方法,一些常用的属性和常用的方法。例如,DALUser.cs和DALLine.cs都是BaseDAL.cs的子类,继承了BaseDAL.cs的方法,分别添加了自己的属性,扩展了自己的方法和事件,DALUser.cs负责处理和用户相关的操作,DALLine.cs则负责处理线路方面的工作。
3.3 数据层
主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。
本系统数据库采用Oracle,在数据层的访问的具体实现方式上,采用第三方通用的数据访问类DbHelperOra.cs。该类支持对数据库的读写操作方式,存储过程的执行等内容。
在Net中,该类可以用于任何层,因此无需重复处理和数据相关的工作,体现了Net框架下代码常用的优越性。
4 结束语
本系统已经在上海局、济南局开始使用,路局管理部门和使用单位(部门)通过本系统,能有效掌握客车正晚点情况,提高客运部门应急处置能力;客服中心和广播电台进行合作,提供相关信息,能产生较大的社会效益,树立铁路良好形象。