冯 磊
(中国铁道科学研究院,北京 100081)
车站公共数据查询系统的开发与应用
冯 磊
(中国铁道科学研究院,北京 100081)
针对车站当前应用系统种类繁多,相互独立,缺乏共享性,数据获取不便的现状,开发公共数据查询系统,通过融合各个独立系统的基础数据,充分挖掘数据的关联性与可用性,解决数据安全性和查询效率问题,为车站运输指挥人员提供更加及时、准确、完整的数据信息和决策方案,可以更加有效地提升与优化运输组织,对车站运输生产效率提高有着很好的推动作用。
数据查询;系统设计;采集;应用
随着铁路信息化建设的飞速发展,信息技术为运输生产服务更加广泛,铁路运输管理信息系统为运输生产信息管理发挥了重要作用,该系统主要包括确报、货票、运输计划、车辆、编组站、货运站、区段站、日常运输统计、现在车及车流推算、军交运输等子系统。由于各个应用子系统信息相对独立,总体上没有提供共享查询数据库平台,缺少信息共享性,对车站管理人员而言,查询数据需要在不同的子系统中进行,再进行人工汇总和处理,而且很多符合车站自身需求的查询分析功能在系统里都没有提供,存在有数据却无法利用的现状,极大地限制了管理信息系统对指导、促进车站一级运输生产应有的作用与效率。因此,综合利用现有系统的基础数据,开发车站公共数据查询系统(以下简称:系统),对车站运输质量进行统计和分析,将降低统计查询的工作量,对运输部门的生产管理和运输指挥水平的提高具有深远的意义。
车站公共数据查询系统分为以下几个功能模块。
(1)运输生产指标分析模块
实现按日、月、年时间段进行中停时、运输收入、办理车数、发送吨、装卸车等关键运输生产指标的统计分析,并提供历史同期数据比较功能。
(2)作业车股道停时统计查询模块
实现车站停时的细化查询,能查询各个股道以及单个车辆的停时,便于车站查找以及分析停时过大的原因。
(3)集装箱应用报告模块
从集装箱追踪系统中提取基础数据,实现集装箱的到达、出发、结存、运用数、非运用数、发送吨、停时等数据的统计查询。
(4)货运七甲统计模块
从小站版的货调系统、大货系统中提取数据,实现车站装车、卸车完成情况的查询功能。
(5)运货五录装查询模块
提供装车信息与起票信息相对应的查询功能,为装车作业必须满足先起票后装车的作业流程提供卡控。
(6)货票组合查询模块
从货票信息系统中提取数据,实现能按条件查询票据信息,并实现运量排名统计功能。
(7)到发列数统计模块
实现按日期、方向对车站到、发列车进行统计的功能。
系统分为前端与后端两个设计层面。针对系统的多用户,瘦客户端的使用环境,系统前端采用B/ S模式设计,用户端不需安装软件,使用浏览器访问基于Asp.net的IIS服务器来查询所需数据。系统后端为各数据采集集成模块,针对不同系统,采集模块能自动从各孤立的管理信息系统提取本车站需要的数据,计算处理后整合到统一的平台数据库中,根据需要采用VB、VC等进行设计。通过前后端系统的配合,向管理人员提供统一的查询界面,实现对各种相关数据的跨系统的、综合的查询,并能根据用户需求进行方便的查询功能扩展。其信息流转如图1所示。
图1 系统信息流程图
数据采集程序通过直接访问、专用接口和嵌入的方式对营销系统、十八点统计、集装箱追踪等系统进行数据采集,将采集后的数据处理后送往公共数据平台服务器,最后由前端各个查询网页模块(运输生产指标分析、到发列数统计等)呈现给终端用户。
3.1 查询系统
各个查询模块均提供常用的条件选项,提交查询后,对简易查询由服务器端Asp.net页面直接处理;复杂耗时的查询任务通过编写SQL存储过程,编译后由SQLServer数据库引擎执行;针对各个查询条件,对相关表尤其是数据量较大的表建立索引,提高查询速度和效率。
3.2 数据采集系统
数据采集程序针对具体的系统量身定制。主要有直接访问、专用接口和嵌入式3类工作方式。
3.2.1 直接访问数据库采集
适合能够直接访问原系统数据的情况,例如,集装箱追踪系统的数据库为Access数据库,可以利用外挂程序对该数据库进行只读访问获取相关数据,其数据采集流程如下:
(1)在编写的外挂程序中,定时从追踪系统提取数据进入本站大箱统计系统SQLServer数据库。
(2)在本站大箱统计系统SQLServer数据库中编写“Sql包”,对本站大箱统计系统数据进行处理,完成数据平台所需最终数据的计算,并将结果表向平台数据库传送。
(3)在本站大箱统计系统SQLServer数据库中定义Sql计划任务,在集装箱统计周期结束后一段时间内执行。
3.2.2 利用专用接口采集
适合原系统提供数据输出接口的方式。例如,十八点统计系统,可以依照其提供的统计数据输出接口(接口定义为一系列SQL语句)格式要求,定义好需要输出的统计数据表,在十八点统计系统完成当日统计时,自动上传到平台数据库。
3.2.3 嵌入式采集
适合于对原系统数据库不了解,或者系统产生的数据不落在本地,但通过编写代码以其它方式抽取数据的情形。例如,票据系统的数据提取,由于数据文件加密乃至现在的网络版,已经不能从数据表层面进行数据抽取。可以采用两种方式:(1)编写程序,在每日结账后由人工再把票据录入数据平台;(2)由外挂或嵌入式程序实现系统数据实时采集。目前,采用第2种方式完成票据数据提取。其关键要求有如下3条:
(1)不能干扰原系统的运行,尽量减小系统资源的占用。
(2)采集程序必须和原系统拥有一致的生命期,如果采集程序被终止而原系统继续运行或者原系统运行后,采集程序未运行,将导致采集数据不完整。
(3)采集程序在向数据平台输送数据时,要有冗余措施,比如网络中断不能影响传送采集数据的丢失。
采集程序工作流程如下:
(1)编写票据系统监视外挂程序,该程序随系统启动。每20 s扫描系统进程列表,发现目标系统运行后,检查目标进程是否加载“嵌入程序动态链接库”,如未加载,监视程序会提升自身权限为系统调试级别,打开目标进程句柄,向目标进程注入远程线程,如已加载,则等待下一次检测。
(2)远程线程注入成功后,完成两个任务:a.执行载入“动态提取数据动态链接库”的操作,将包含实际提取代码的动态链接库挂入目标进程;b.在目标系统进程空间中创建一个本地线程,开始挂载进程内消息钩子(采用进程内消息钩子的优点是,比全局钩子占用的资源更小,比如不会因执行任务过重导致鼠标键盘迟滞,CPU占用率过高),对目标进程的鼠标键盘消息进行监视,当截获到打印钮被按下,并且打印事件已处理完成的消息后,遍历访问指定窗口句柄,根据不同句柄所属的窗口类,通过构造相应的消息(Windows中窗口间通信都是依靠消息进行的,如WM_GETTEXT消息是Windows系统中要求获取窗口标题文本的消息)并发送给窗口句柄,从返回消息中提取出所需的内容,并生成票据缓存文件存入磁盘。
(3)监视外挂程序会创建独立的线程定期监视磁盘是否产生了新的采集文件,如果网络正常,则确保向数据平台正确传送。
本系统于2014年3月初开始在柳州南车站进行系统的调试以及试运行,并对相关人员进行培训和指导。系统试运行之初就收到了很好的效果,由于采用了自动采集与实时传送,数据的及时性得到很大提高,用户根据自己的需要获取数据,不再需要通过打电话请求远端的系统操作员查询数据,再将查询结果用邮件发送回来,最后手工合成的繁琐过程。因此获得了一致的好评。
本系统利用现有的信息资源和网络设施,结合运用计算机数据共享优势以及计算机技术和数据库技术,把运输管理信息系统所有子系统的数据信息整合起来,进行资源的再挖掘,形成一个综合的数据信息库,为用户提供一个更为完整、准确和综合的车站公共数据平台,极大地提高了查询数据的速度,也降低了查询数据的难度,提高了系统的安全性。系统的研发可以给管理者提供综合、完整和准确的数据分析结果,辅助决策。
另外,本系统具有很好的扩展性,公共数据平台搭建好之后,通过数据导入、导出程序,从各个系统中导出数据,数据充分共享,可以根据实际需要增加更多的统计和分析功能。本系统还具有很强的移植性,因为各车站相关系统的数据结构一致,只要稍作修改就可以移植到任何车站,推广性强,具有一定的开发价值。
[1]朱玉超,鞠 艳,王代勇. ASP.NET 项目开发教程[M].北京:电子工业出版社,2008.
[2]徐孝凯. C++语言基础教程[M]. 北京:清华大学出版社,2006.
[3]尚俊杰、秦卫中. ASP.NET 程序设计案例教程[M].北京:清华大学出版社,2005.
[4]陈 伟. SQL Server 2005数据库应用与开发教程[M].北京:清华大学出版社,2007.
责任编辑 方 圆
Development and application for Station Public Data Query System
FENG Lei
( China Academy of Railway Sciences, Beijing 100081, China )
Now the various application system were running in our station. Facing with the situation of independence among the various systems, lack of sharing, data acquisition inconvenience, it was necessary to develop Public Data Query System. Through fusing the essential data of each individual system, fully taking advantage of the correlation and availability of data, the problems of the data security and query eff i ciency were solved to provide more timely, accurate, complete data information and decision scheme for the station transport command staff. It would be more effectively to improve and optimize transportation organization and play a very good role in promoting production eff i ciency of station transport.
data query; system design; collection; application
U29∶TP39
A
1005-8451(2015)05-0021-03
2014-11-26
冯 磊,在读硕士研究生。