楊 凱,付多忠,楊丹華,郭 朋,陳重陽
(1.中國鐵路西安局集團有限公司 信息技術所,西安 710054;2.中國鐵路西安局集團有限公司 調度所,西安 710054)
機車的運用管理一直是機車調度工作的重點,調度員對機車實際軌跡和機車運行狀態的實時掌控、關聯數據的預警和分析對提高調度工作效率尤其重要。目前,鐵路各類機務相關系統建設周期不一、廠家不同、接口各異、標準化程度弱、信息共享困難[1-3],機車調度員需查詢的機車運用狀態分散于機車調度、機車運用概況表、機車調度命令、機務運用安全管理、機務閘樓車號自動識別(AEI,Automatic Equipment Identification)、機車整備等各類機務相關系統中,調度指揮人員、分析人員等的查詢界面分散,無法及時查詢所關注的機車信息,并且需要通過人工查詢既有各類機務相關系統或通過電話人工確認機車狀態,存在查詢數據缺失、工作效率低、系統間缺少關聯性[4]、缺少數據綜合使用及后續分析的途徑等問題,亟需一套機車綜合應用系統[5]。本文以機車調度員能夠高效掌握機車的運用狀態為目的,依托抽取、轉換、加載(ETL,Extract-Transform-Load)技術,設計并實現滿足調度員需求的基于機車數據融合[6]的機車綜合應用系統(簡稱:機車綜合應用系統)。
依托機車調度員、機車、機車交路、機車調度圖、現場設備等基礎數據字典,基于機車調度日班計劃、實際周轉圖、機車運用概況表、機車調度命令、派班計劃、出/退勤、整備狀態、機車出/入庫等核心數據,設計和實現面向調度指揮、調度分析的機車綜合應用系統,建立數據間的關聯關系,解決機車調度數據分散、信息不能共享的問題,為調度員提供綜合數據統計、分析及預警功能,提高機車調度工作效率,為調度決策提供科學依據。
(1)高內聚、低耦合原則。機車綜合應用系統的底層框架穩定,不會因為需求的改變而引起大的調整。
(2)展現形式多樣性原則。基于帆軟報表,根據用戶需要,提供靈活、形式多樣、內容豐富的表格、圖表等展現形式,提供良好的自定制功能。
(3)易用性原則。將機車綜合應用系統中關聯數據集中展示,系統界面簡單直觀,方便用戶查詢。
機車綜合應用系統以機車數據為中心,數據主要來源于各類機務系統,如機車調度系統、機車運用概況表、機車調度命令、機務運用安全管理信息系統、機務閘樓AEI系統、機車整備系統等。
通過 ETL 技術的 Pentaho Data Integratio(PDI)工具處理多源數據,以清晰靈活的圖形化方式展現數據處理過程,實現對數據的抽取、轉換、裝載,同時,進行數據的存放、清洗、過濾、粗加工、細加工等工作,后期可以通過簡單修正,完成針對作業流、業務模型變化的相應調整,從而高效管理作業流程和業務模型。根據機車綜合應用系統的不同需求,對數據進行組合、關聯、封裝,形成前臺應用所需要的業務數據。機車綜合應用系統數據架構如圖1所示。

圖1 機車綜合應用系統數據架構
機車綜合應用系統采用C/S、B/S結合方式,使用Java語言開發[7]。后臺處理為C/S架構,主要完成底層數據顆?;?、格式化、標準化的匯聚,并按機車調度業務邏輯、業務需求進行數據融合,定制化數據;展示層為B/S架構,負責相關數據的展示工作。在設計技術架構時,借鑒了模塊化的設計思想,采用服務化的組件開發模式,減少代碼開發量,提高開發效率。系統技術架構如圖2所示。

圖2 機車綜合應用系統技術架構
(1)數據源層、采集層、預處理層:使用PDI工具,完成對多種數據源的抽取、解析、篩選、清洗、轉換、加載等。
(2)數據存儲層:采用Oracle12c數據庫存儲,保證信息的安全性、完整性、一致性及恢復能力。
(3)控制層:采用JFinal框架開發,提高程序的開發效率,代碼可讀性強且易于維護[8];權限、菜單、角色管理等采用Layui框架,提供統一風格界面、靈活方便的菜單系統,以及功能強大的權限角色管理等。
(4)展示層:采用FineReport報表、JavaScript、層疊樣式表單(CSS,Cascading Style Sheet)等技術,提供靈活多變的展示形式。
機車綜合應用系統主要業務依托于各類機務相關系統的數據集成,數據落地至本地數據庫,不回寫至所訪問的系統源。集成的數據只用于機車綜合應用系統各核心業務間的數據共享。
數據權限開放、采集方式如下:
(1)開放各類機務相關系統的數據查詢權限,以視圖的方式提供給機車綜合應用系統;
(2)使用ETL技術,按照數據特點定時抽取各類機務相關系統的數據。
基于Layui框架,實現對用戶、崗位、權限、菜單及角色集中管理,提供靈活方便的用戶權限配置管理功能。
對調度所人員字典、機車字典、機車交路字典、機務閘樓AEI字典等進行維護管理。
采用C/S方式,每10 min對所涉及的機車數據處理1次,具體如下:對機車調度日班計劃、實際運轉圖中運行線進行最小化拆分,形成到達、出發、轉交路、機車狀態轉換等機車數據,通過集成平臺、行車調度查詢系統、鐵路運輸管理信息系統/調度指揮管理信息系統(TMIS/DMIS,Transportation Management Information System/Dispatch Management Information System)結合中的機車和運行線車次等信息對機車狀態進行校正[8];對機車運用概況表、機車調度命令中機車運用狀態和命令、機務閘樓AEI中出入段信息、機務運用安全管理信息系統中司機出/退勤信息、機車整備庫的整備狀態進行格式化、標準化后清洗入庫;在后臺整合數據,形成基礎數據,該處理功能采用PDI工具,后臺處理功能運行結果,如圖3所示。

圖3 PDI工具后臺數據處理運行結果示例
按照機車交路、機車型號、時間范圍查詢機車軌跡信息,包括機車周轉圖中出發、到達、機車、車次、非運用狀態轉換、機車出入機務本段、折返段、機車整備等運用軌跡信息,同時用行車調度中實際數據進行匹配、校驗,在顯示界面中以藍色或綠色文字顯示,分別表示當前為計劃時刻或實際時刻。
通過對機車到達、入段、整備、派班計劃、出段、出發等信息的分析,各機務折返段按不同的閾值進行判斷,掌握階段計劃執行進度,實現對機車在機務段、折返段及所在站折返的全過程監控。在顯示界面,對超時情況通過蘭色、橙色和紅色分級別、分階段進行預警。按機車調度臺、機車調度圖、交路和區段,查詢、顯示預警信息。
按照機車全周轉時間計算規則,分別計算本鐵路局集團公司(簡稱:本局)、其他鐵路局集團公司(簡稱:外局)機車全周轉時間;按調度員、班次、調度臺、調度圖進行班次排序,為班次考核提供依據;針對不同機車交路、機務段、折返段,對當月全周轉時間按日進行統計分析。
機車全周轉時間計算規則:機車全周轉時間=整備時間+出庫到開車時間+上/下行旅行時間+折返時間+到達到入庫時間。
以實際機車周轉圖上運行線及調度員輸入的出勤時刻為基礎,輸入出勤班次,匹配行車調度徑路對應車站,確定超勞時間,實現調度員對超勞列車的掌握及統計。
按照機務段、派班室、出勤線路、機車等信息查詢各機務段的計劃出發車次、計劃出發機車、出勤人員、出勤計劃、實際時刻、實際出發機車、退勤時刻等信息。
按照機務段、折返段、交路及機車,查詢并統計機車整備狀態,匹配相關進段、出段及整備信息。
在已開發的機車折返預警及分析系統的基礎上,按照給定的班次時間范圍和統計閥值,制定滿足需求的礦區停留超過4 h考核表。該考核表可作為對計劃臺和機車調度臺的考核依據。
展示的內容包括各機務段可運用機車占比,各機務段機車運用、客運、出租、調車、各類檢修的占比,以及機車折返情況和機車全周轉時間等。
ETL技術用來將數據從來源端經過抽取、轉換、加載至目的端。機車綜合應用系統中,采用ETL技術將各類機務相關系統數據經過處理、加載至本地數據庫中,將原來分散、零亂、格式不統一的數據融合、集中為目標用戶明確且隨時可用的數據。
PDI是一款開源的ETL工具,可采用拖拽組件、連線和配置的方式構建數據管道,完成對多源數據的關聯、過濾、格式轉換、計算和統計等,輸出到不同的數據目標,PDI為機車綜合應用系統數據源多且分散、格式不統一提供了良好的解決方案。
機車綜合應用系統的開發應用了Layui框架。Layui是一款采用自身模塊規范編寫的前端用戶界面(UI,User Interface)框架,遵循原生 HTML/CSS的書寫和組織形式,提供統一簡潔的界面,具有靈活的權限分配和角色管理功能。
機車綜合應用系統針對調度信息化需求而開發,該系統將原本分散在各類機務相關系統中的機車數據匯聚融合;同時,挖掘不同機務系統間機車數據的關聯性,通過對不同人員的權限控制,實現調度指揮人員、分析人員等可以在集中界面中對各自關注的機車關聯數據進行高效查詢。
目前,機車綜合應用系統已在西安局集團公司機車調度崗位應用,有效提升了調度指揮效率。隨著系統的使用,將根據需要更深入地挖掘各類機務相關系統間的邏輯關聯性,依托數據的積累,在智能化、超前預警等方面做更多的研究。