馮 磊
(中國鐵道科學研究院,北京 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 嵌入式采集
適合于對原系統數據庫不了解,或者系統產生的數據不落在本地,但通過編寫代碼以其它方式抽取數據的情形。例如,票據系統的數據提取,由于數據文件加密乃至現在的網絡版,已經不能從數據表層面進行數據抽取??梢圆捎脙煞N方式:(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
馮 磊,在讀碩士研究生。