■ 靳健 陳森玲 陳志榮
貨運列車編組統(tǒng)計信息系統(tǒng)(鐵路局級)的設計與實現(xiàn)
■ 靳健 陳森玲 陳志榮
為支持新的清算規(guī)則需要,開發(fā)貨運列車編組統(tǒng)計信息系統(tǒng),通過貨物列車編組順序表和貨票信息的關聯(lián),準確統(tǒng)計一系列清算指標,對加快轉變鐵路發(fā)展方式,提高鐵路發(fā)展的質量和效益,具有重要的意義。貨運列車編組統(tǒng)計信息系統(tǒng)的設計立足于系統(tǒng)設計總體目標,通過分析各業(yè)務管理信息系統(tǒng)信息流程過程,從車站、車務段、鐵路局、中國鐵路總公司四個級別搭建系統(tǒng)總體架構,重點分析鐵路局級子系統(tǒng)的功能模塊、業(yè)務特色和關鍵技術實現(xiàn)。從系統(tǒng)投入運行后,穩(wěn)定可靠,其數(shù)據(jù)信息已作為全路財務模擬清算數(shù)據(jù)使用,將為全面推進財務清算規(guī)則提供重要的統(tǒng)計信息。
貨運列車編組;清算統(tǒng)計;信息系統(tǒng)
為適應鐵路轉換經(jīng)營機制改革,落實鐵路運輸企業(yè)市場主體地位,實施多元化經(jīng)營戰(zhàn)略,中國鐵路總公司對相關財務清算思路進行了調整:收入來自于市場,旅客運輸和貨物運輸承運清算,提供服務相互清算。新的清算思路給運輸統(tǒng)計工作提出了更高的要求,必須對每一批運輸?shù)膶嶋H走行徑路按承運主體、提供服務主體、接受服務主體分別統(tǒng)計運輸工作量,以傳統(tǒng)的貨物列車編組順序表和貨票的關聯(lián),實際發(fā)車時間產(chǎn)生新的貨物列車編組順序表(簡稱清算運統(tǒng)1),以清算運統(tǒng)1和司機報單為基礎信息,可以滿足財務清算改革思路的需要。
為確保生成準確、及時、完整的清算運統(tǒng)1,由原鐵道部統(tǒng)計中心和信息技術中心統(tǒng)一部署,由廣州鐵路(集團)公司(簡稱廣鐵集團)承接清算運統(tǒng)1鐵路局(車務段)級的開發(fā)任務,開發(fā)了貨運列車編組統(tǒng)計信息系統(tǒng)(簡稱系統(tǒng))。通過貨物列車編組順序表和貨票信息的關聯(lián),系統(tǒng)準確統(tǒng)計聯(lián)合運輸車輛在各運輸企業(yè)的走行公里、各編組區(qū)段站的中轉辦理車、分界口整列排空貨車的走行公里等一系列清算指標,為全面推進鐵路財務清算改革提供保證,加快轉變鐵路發(fā)展方式,從而不斷提高鐵路發(fā)展的質量和效益。
系統(tǒng)設計最終目標是實現(xiàn)對清算運統(tǒng)1上報和數(shù)據(jù)審核的自動化管理,一方面可確保數(shù)據(jù)自動傳輸上報的穩(wěn)定可靠,另一方面可確保自動化審核準確無誤,糾錯功能設計科學合理。系統(tǒng)目標包括:
(1)完成清算運統(tǒng)1在統(tǒng)計方面應用需求的研究,建立全路鐵路局、車務段清算運統(tǒng)1信息應用和管理規(guī)范化、標準化的體系結構。
(2)建立多系統(tǒng)信息共享環(huán)境,實現(xiàn)運統(tǒng)1、貨票、司機報單等相關應用系統(tǒng)互聯(lián),最大限度地實現(xiàn)信息資源共享。
(3)建立穩(wěn)定、可靠的傳輸機制,實現(xiàn)全路清算運統(tǒng)1信息從車站到車務段、再上報到鐵路局和原鐵道部。
(4)在鐵路局、車務段建立清算運統(tǒng)1的綜合應用系統(tǒng),實現(xiàn)貨運列車編組信息的綜合利用、深度開發(fā),實現(xiàn)與鐵路運輸清算相關報表的統(tǒng)計、查詢等,為運輸生產(chǎn)和財務清算提供輔助決策和咨詢服務等功能。
系統(tǒng)的信息源包含在已經(jīng)建成各業(yè)務管理信息系統(tǒng)中,從相關的各業(yè)務信息系統(tǒng)中獲取或基層站段人工補充錄入少量信息,經(jīng)計算處理后產(chǎn)生 清算運統(tǒng)1信息,再逐級上報、匯總、處理,實現(xiàn)本系統(tǒng)的設計目標。各業(yè)務管理信息系統(tǒng)信息流程見圖1。
貨運列車編組統(tǒng)計信息系統(tǒng)總體結構分為車站、車務段、鐵路局、中國鐵路總公司四級。在鐵路局采用應用及數(shù)據(jù)集中部署的架構,即一個鐵路局只安裝部署一套數(shù)據(jù)庫服務器實現(xiàn)全鐵路局貨運編組信息的存儲,一套應用服務器實現(xiàn)車務段及鐵路局級應用的部署,車務段和路局用戶都使用客戶端軟件執(zhí)行系統(tǒng)操作。
信息傳輸基于鐵路計算機網(wǎng),采用MQ傳輸方式。系統(tǒng)架構見圖2。
圖1 各業(yè)務管理信息系統(tǒng)信息流程
圖2 系統(tǒng)總體架構
貨運列車編組統(tǒng)計系統(tǒng)鐵路局級應用接收車務段及直管站上報的數(shù)據(jù)報文,校驗入庫,并對信息進行審核,審核發(fā)現(xiàn)錯誤的報文將錯誤信息反饋給相應的車站。將審核通過的報文上傳至原鐵道部。提供鐵路局級綜合應用,為管內車務段及車站提供Web服務及查詢服務。
按照總體方案架構和結構流程,鐵路局級在功能上劃分為實時監(jiān)控、錯誤檢查、報單信息、報文監(jiān)控、報表匯總、生產(chǎn)輔助、歷史管理、字典管理、系統(tǒng)管理9個模塊,考慮到鐵路局和車務段級系統(tǒng)業(yè)務的互通互聯(lián)性,鐵路局系統(tǒng)和車務段系統(tǒng)使用相同的模塊結構。
(1)實時監(jiān)控模塊。該模塊主要實時監(jiān)控各站段上報清算運統(tǒng)1、運統(tǒng)8、運報9A、運報11A的總體情況,以及鐵路局生成的整列排空列數(shù)情況。同時實時反映報文的數(shù)據(jù)質量,以及車站到卸車的確認情況。
(2)錯誤檢查模塊。該模塊主要對清算運統(tǒng)1報文出錯的詳細信息進行分類展示,分為運統(tǒng)1車輛屬性錯誤、運統(tǒng)1貨票號碼錯誤、糾錯記錄核查、運統(tǒng)1發(fā)站漏報、運統(tǒng)1遲報、分界口運統(tǒng)1誤差、運統(tǒng)1一致性審核、運統(tǒng)1倒裝核查、集裝箱清單漏報,按照不同類型核查錯誤情況。
(3)報單信息模塊。接收機務段機車統(tǒng)計系統(tǒng)的司機報單未匹配上清算運統(tǒng)1的數(shù)據(jù)信息,提供給路局管理人員進行監(jiān)控,同時數(shù)據(jù)也返回到車務段和車站進一步核查,對漏報的清算運統(tǒng)1進行補報。
(4)報文監(jiān)控模塊。該模塊主要對入庫的報文數(shù)據(jù)按照不同條件選項進行查詢監(jiān)控,分為運統(tǒng)1報文監(jiān)控、運統(tǒng)8報文監(jiān)控、運報9A報文監(jiān)控、運報11A報文監(jiān)控、運報1ZK報文監(jiān)控、運統(tǒng)1代報監(jiān)控、貨票摘要入庫監(jiān)控、百千工程班列監(jiān)控、集裝箱清單監(jiān)控。
(5)報表匯總模塊。該模塊主要對上報的運統(tǒng)1報文進行匯總,日報由后臺自動生成,月報、季報和年報手動執(zhí)行匯總,并提供報表查詢功能,分為運統(tǒng)1匯總、運報9A匯總、運報11A匯總和運報1ZK匯總。
(6)生產(chǎn)輔助模塊。該模塊充分運用清算運統(tǒng)1數(shù)據(jù)庫信息,對路局管內到卸車進行預報,為運輸生產(chǎn)提供信息參考。同時對車站裝車實際出發(fā)狀態(tài)進行監(jiān)控,以及提供車輛軌跡查詢功能。
(7)歷史管理模塊。對車站每天上報的清算運統(tǒng)1、運統(tǒng)8、運報9A、運報11A等報文歷史情況進行監(jiān)控,同時對每天車站報文的錯誤和遲報情況進行監(jiān)控分析,以及車務段做到達確認車輛遺漏情況進行監(jiān)控。
(8)字典管理模塊。對系統(tǒng)涉及的相關字典進行配置,主要有路局、運輸企業(yè)、車務段字典配置以及下屬車站字典配置,分界口及分界口接入交出配置,以及清算運統(tǒng)1與18點對應關系描述等字典配置。
(9)系統(tǒng)管理模塊。主要有用戶及角色配置,網(wǎng)站配置和運行信息查詢等菜單,以及提供系統(tǒng)操作說明等功能。
車務段及鐵路局級應用采用C/S和B/S相結合的結構,信息的接收、校驗、上報等功能采用C/S結構,綜合應用采用B/S結構。采用NET平臺、IIS中間件、Oracle數(shù)據(jù)庫。每級應用都采用四層架構,即客戶訪問層、業(yè)務應用層、數(shù)據(jù)傳輸層和數(shù)據(jù)表示層,減少重復性的代碼,提高開發(fā)速度,使系統(tǒng)有良好的可維護性,易于擴展。技術架構見圖3。
圖3 系統(tǒng)技術架構
系統(tǒng)的特點主要包括:
(1)分布廣,環(huán)節(jié)多,業(yè)務復雜。系統(tǒng)分為鐵路總公司、鐵路局、車務段、車站四級,其中車務段級系統(tǒng)和車站級系統(tǒng)分布相當分散。由于四級系統(tǒng)根據(jù)業(yè)務需求需要頻繁交換數(shù)據(jù),受制于網(wǎng)絡環(huán)境、計算機硬件等影響,網(wǎng)絡中斷、網(wǎng)絡不可靠、丟失數(shù)據(jù)成為需要解決的技術難題。在保證正常上報和接收數(shù)據(jù)的同時,還必須保證數(shù)據(jù)審核、后臺作業(yè)、匯總計劃、數(shù)據(jù)統(tǒng)計、查詢分析等業(yè)務的正常進行,還必須保證所有數(shù)據(jù)庫事務的完整性。因此,在系統(tǒng)結構以及各關鍵環(huán)節(jié)的硬件、軟件設計上必須科學、合理,確保高性能、高穩(wěn)定、高可靠。
(2)監(jiān)控、維護方便。系統(tǒng)提供了完備的監(jiān)控和維護手段。通過使用監(jiān)控界面來調整應用程序,為用戶判斷系統(tǒng)運行狀態(tài)提供條件。不僅能減少人力成本和人為錯誤,同時也提高了應用性能和可用性。系統(tǒng)提供了簡單易用的管理界面,提供配置向導,方便系統(tǒng)管理員查看系統(tǒng)狀態(tài),并提供了多種功能改善和自動處理應用程序的監(jiān)控和管理工作,將應用程序的整個生命周期管理自動化。
(3)可靠性高。系統(tǒng)在設計時,對數(shù)據(jù)上傳、數(shù)據(jù)交換、流程控制、后臺處理等各個關鍵環(huán)節(jié)進行了精心設計、周密部署。系統(tǒng)上線后經(jīng)歷了兩年的磨合,始終保持穩(wěn)定運行。系統(tǒng)通過采用遠程數(shù)據(jù)查詢本地化、工作線程調度與監(jiān)控、數(shù)據(jù)表的優(yōu)化、數(shù)據(jù)庫連接的池化、數(shù)據(jù)發(fā)送與接收請求排隊等待、失敗重發(fā)機制等技術,確保了系統(tǒng)在高負荷下工作的可靠性,使系統(tǒng)始終保持正常工作。
(4)可擴展性強。在保證核心業(yè)務安全的前提下,按照“全方位設計,分步實現(xiàn)”的設計原則,系統(tǒng)采用了多層次體系結構,采用了中間件、虛擬化、分布式等核心技術,使系統(tǒng)在應用功能、業(yè)務模式、軟硬件處理能力等方面均有很強可擴展性。
(5)安全性高。硬件及網(wǎng)絡上采冗余設計,避免單點故障;各級應用間進行信息傳輸時,對重要信息進行了加密;在TCP/IP、HTTP、HTTPS、XML、SOAP等協(xié)議的基礎上開發(fā)了系統(tǒng)獨有的通信規(guī)則,避免了其它應用的非法接入;采用原鐵道部信息技術中心制定的網(wǎng)絡傳輸方案,為車站、車務段、鐵路局、原鐵道部四級系統(tǒng)之間進行信息交換提供安全保障。
6.1分布式系統(tǒng)架構實現(xiàn)復雜業(yè)務流程
系統(tǒng)分為鐵路局、車務段、車站三級,物理分布較廣,且三級系統(tǒng)中需要來回實時交換數(shù)據(jù),因此,系統(tǒng)以基于TCP協(xié)議的雙向通訊為基礎研發(fā)了一個分布式消息交換框架系統(tǒng)。以鐵路局級為例,由車務段系統(tǒng)每間隔一段時間向鐵路局級系統(tǒng)發(fā)送心跳數(shù)據(jù)包,鐵路局級系統(tǒng)在數(shù)據(jù)需要返回時根據(jù)車務段發(fā)送的信息建立一個可靠的Socket連接,然后將需要返回的數(shù)據(jù)進行壓縮和打包發(fā)送。車務段系統(tǒng)接受信息后使用線程調度停下了所有與返回數(shù)據(jù)無關的處理線程,然后根據(jù)業(yè)務需要來處理返回的信息,處理完畢后通知車務段系統(tǒng)線程調度繼續(xù)工作,并將處理結果發(fā)送至車務段網(wǎng)站。
6.2大數(shù)據(jù)量下的數(shù)據(jù)庫優(yōu)化方案
系統(tǒng)每月產(chǎn)生大量數(shù)據(jù)。以沈陽鐵路局為例,2013年11月,全局的清算運統(tǒng)1列車信息108 123條,車輛信息4 734 149條,運統(tǒng)8信息238 538條,運報9A信息1 388 587條,運報11A信息780 888條,運報1ZK信息1 626條。由于需要將整個鐵路局的各種報表入庫保存,并在該原始數(shù)據(jù)上進行查詢與分析,這對數(shù)據(jù)處理和用戶體驗是一個較高的要求。為了能顯著提高數(shù)據(jù)處理能力,提升用戶體驗,系統(tǒng)采取了如下措施:
(1)充分利用系統(tǒng)全局區(qū)域SGA;(2)規(guī)范與反規(guī)范設計數(shù)據(jù)庫;(3)利用表空間將數(shù)據(jù)傳輸對磁盤I/O競爭均勻地分散開;(4)索引的優(yōu)化設計;(5)優(yōu)化數(shù)據(jù)庫連接方案,使用連接緩沖池機制;(6)高效的SQL語句設計;(7)充分利用數(shù)據(jù)的后臺處理方案減少網(wǎng)絡流量。
6.3使用高可用OR/M框架
系統(tǒng)數(shù)據(jù)庫數(shù)據(jù)表較多,表間依賴關系較為復雜,為了減輕工作壓力、提高開發(fā)效率,系統(tǒng)在研發(fā)過程中對NHibernate框架進行封裝和改造,實現(xiàn)了一套OR/M框架,命名為NKoala,與目前主流的NHibernate相比,其特點如下:
(1)NHibernate不能支持多數(shù)據(jù)庫,在NKoala下很好的實現(xiàn)了無縫切換對多數(shù)據(jù)庫的訪問,配置簡單方便。
(2)修正了NHibernate對Oracle數(shù)據(jù)庫中Clob、Guid等字段類型支持的Bug,使得系統(tǒng)中的Guid可以以32位Varchar類型存入數(shù)據(jù)庫,取出還原實體時將其還原為Guid類型。
(3)封裝了NHibernate中的大多數(shù)函數(shù),將復雜的調用變得簡單易用,提供了泛型對象、原生SQL對象、Linq語法支持、Lambda表達式支持等特性,提高了開發(fā)效率。
(4)支持Oracle的純.NET托管驅動,可不再依賴原Win32下的Oracle客戶端,避免在服務器上安裝程序時需部署Oracle客戶端的步驟,同時因依靠其純托管驅動,提升了程序的跨平臺部署能力。
(5)實現(xiàn)B/S開發(fā)中“Open-Session-in-View”模式,在每次瀏覽器對服務器提起請求時,打包所有的數(shù)據(jù)庫操作并合并為一個數(shù)據(jù)庫事務,保障在一次瀏覽器請求中所有的數(shù)據(jù)庫操作的原子性、一致性、隔離性和持久性。
系統(tǒng)自2012年1月1日起投入全路試運行,已經(jīng)完成18個鐵路局(公司),300多個車務段和直管站的系統(tǒng)部署工作。根據(jù)各鐵路局運用過程中提出的不同修改建議,并根據(jù)新的財務清算改革對統(tǒng)計數(shù)據(jù)提出的新要求,對系統(tǒng)進行了多次完善和優(yōu)化,系統(tǒng)已推出4.0版,目前系統(tǒng)基本定型,系統(tǒng)運行穩(wěn)定可靠,清算運統(tǒng)1數(shù)據(jù)信息已作為全路財務模擬清算數(shù)據(jù)進行使用,為下一步財務清算規(guī)則制定提供了重要的統(tǒng)計信息。
[1] 鐵道部信息技術中心. 鐵路貨運列車編組統(tǒng)計信息系統(tǒng)
總體方案[S],2012.
靳 ?。簭V州鐵路(集團)公司信息技術所,工程師,廣東 廣州,510088
陳森玲:廣東外語藝術職業(yè)技術學院,講師,廣東 廣州,510640
陳志榮:廣州鐵路(集團)公司計劃統(tǒng)計處,高級統(tǒng)計師,廣東 廣州,510088
責任編輯楊倩
U29-39
A
1672-061X(2014)03-0097-05
廣東省教育廳育苗工程(自然科學)項目《企業(yè)產(chǎn)品成長模型在大數(shù)據(jù)研究理論中的驗證與分析》(2013LYM_0116)。