劉文韜,牛青坡,宋 陽
(中國鐵道科學研究院集團有限公司 電子計算技術研究所,北京 100081)
目前,鐵路運營條件(簡稱:運條)信息管理以人工方式為主、單機版系統簡單查詢為輔的模式,其信息管理并不具備廣泛的智能化關聯性,基礎線路、車站信息更新僅限于單條線路的獨立變更,在整個線路網絡中的變化并不能自動聯動,其信息管理方式仍需要更多的人工處理。隨著信息技術的快速發展,運輸市場結構不斷變革,數據分析成為鐵路企業提質增效的重要決策依據[1]。傳統的管理模式與高速鐵路大規模、大運量、高密度特征及信息化技術的發展不相適應[2],為進一步提升運條信息管理的信息化水平,基于鐵路路網信息的業務特點,采用圖形化方式,綜合運用建模、動畫、圖形圖像處理等方法對數據進行多維度表達[3],研究便捷的可視化展示技術,對整個路網中的“站”“線”進行關聯,改變線站分散管理的弊端,輔助業務人員對數據進行分析及決策,為用戶提供直觀、生動的視覺展示效果,進一步提升鐵路服務效率,實現鐵路運條管理的全面創新。
運條信息管理系統的用戶為中國國家鐵路集團有限公司(簡稱:國鐵集團)和鐵路局集團公司兩級,設計采用兩級管理的B/S模式,通過該體系架構使得系統具有更好的可擴展性及實用性,為不同業務部門提供管理服務,系統體系架構,如圖1所示。

圖1 系統體系架構
運條信息管理應用總體上分為客戶端、服務層、數據存儲層3部分,通過瀏覽器模式提供的服務將更有利于系統開發及維護。
(1)客戶端主要是面向業務用戶,不同級別用戶將擁有不同類型的業務權限,便于業務功能適應組織管理方式的需要。
(2)服務層接收客票專網環境下的客戶端請求,完成運條信息管理相關業務,在客票專網條件下通過與既有客票系統之間的服務接口傳輸路網基礎數據信息,實現客票系統信息與運條系統信息的一致性管理??梢暬欠諏拥闹饕獦I務服務,是對運條信息的圖形化展示及管理,基于各車站模擬坐標所處的路網位置展現運條線路及車站情況,實現將獨立的線站直觀化管理。
(3)數據存儲層主要是全面整合服務器、網絡、數據等資源,為業務服務提供基礎保障支撐及存儲服務,運條信息管理應用設計統一部署于國鐵集團,確保數據管理的完整性、一致性。
運條基礎線站信息與客票系統路網信息密切相關,運條信息為基礎,客票系統應用運條信息規范的線站信息,在業務流程上具有上下工序關系,運條信息為客票基礎信息的數據源,在數據存儲層設計需要考慮運條信息與既有客票系統數據的便捷互通,綜合分析運條信息的業務特點。
(1)運條信息中包含線路、車站、里程、所屬區域等表達規范的業務信息,此類信息設計采用與客票系統基礎數據管理業務相同的關系型數據庫方式存儲。
(2)運條信息中的接續線、客運價格執行說明、線附注等信息具有包含大量文本信息的特點,選擇具有高性能、易部署、易使用的文檔類數據庫MongoDB作為輔數據庫,采用MongoDB方式描述,可以充分利用其可擴展特性,當出現運條信息項增加時,只需要增加key-value對即可,適合運條信息日常業務存在不定期新增附錄的特點。
運條信息樣列,如表1所示;數據庫設計,如圖2所示。

表1 運條信息結構化與非結構化數據樣例

圖2 數據庫設計
基于運條信息包含大量動態非結構化業務信息的特點,選擇MongoDB作為特定文本信息存儲數據庫。
(1)MongoDB是一個基于分布式、文件存儲的NoSql數據庫,與傳統關系型數據庫采用數據表形式存儲的最大差異是以文檔形式保存數據,存儲內容具有按需擴展屬性[4]。
(2)MongoDB具有面向集合、數據分組存儲于集合、模式自由等特性[5],MongoDB利用keyvalue方式描述數據,并支持復雜數據類型、自動分片、自動故障轉移等功能[6],為運條基礎信息一致性管理提供保障。
(3)為擴展MongoDB的數據可用性,使用副本集(Replica Sets)方案提供數據冗余,當主服務器出現故障依然可以保證應用程序的正常運行和數據安全。MongoDB Replica Sets的機制通過多個節點構建形成具備自動容錯、自動恢復的高可用性方案,實現故障自動轉移。主節點(Primary)接收和處理寫相關操作,兩個備份節點通過復制(Repication)主節點實現同步備份,副本集通過心跳檢測實現自動故障轉移機制,確保高可用。
可視化管理流程,如圖3所示。

圖3 可視化管理流程示意
流程說明:
(1)加載路網樣式模板信息:主要包括背景色、車站節點樣式、線路樣式等信息。
(2)加載運條車站屬性信息:主要包含車站名稱、車站等級、車站虛擬坐標等信息。
(3)初始化操作事件:主要包括鼠標縮放層級顯示車站事件、右擊修改車站虛擬坐標等相關交互事件。
(4)渲染運條線路軌跡信息:依據請求反饋線站數據,渲染線路軌跡。
(5)是否縮放:根據鼠標縮放事件觸發獲取不同等級車站信息。
(6)是否修改:若需要觸發修改事件,則允許調整車站虛擬坐標,重新加載車站屬性信息,頁面重新渲染刷新展示;不需要修改,維護流程結束。
運條系統支撐基礎線站可視化展示,需要滿足運行穩定、繪制速度快、顯示精準高和占用內存小等需求,經過綜合比選分析Highcharts、D3、Echarts等技術特點及應用場景,最終選擇應用Echarts技術。ECharts是通過多種不同類型圖表實現數據可視化的圖表庫并具有支撐各類基本圖表、特殊圖表、組合圖表和自定義圖表等能力[7]。ECharts兼容大部分瀏覽器,提供直觀、生動、可交互的數據可視化圖表,符合系統設計的B/S架構模式,綜合分析運條信息顯示需求,主要為體現線路、車站的相對位置關系,因此選擇ECharts實現數據可視化。運用可視化技術之前,運條信息通過單機系統進行簡單記錄或者通過Excel表格方式進行歸納管理,不能反映出線路、車站的在路網中的接續關系,不利于進行統籌管理。為提升線站信息管理效率,從大量的線路車站表格中提取有價值的信息,采用圖形化手段將路網線站數據映射成路網圖,實現便捷管理目標。
實現運條信息可視化展示通過改變ECharts配置項,由業務數據驅動ECharts組件庫。通過DOM容器準備、ECharts文件引入、靜態路網圖資源引入、原始路徑加載等步驟,完成初始化處理。通過參數option完成圖示個性化數據配置,通過geo組件,自定義地區的名稱映射,設置響應和觸發鼠標事件,開啟鼠標縮放和平移漫游,設置最小的滾輪縮放值。經過前端Ajax技術的支持將業務數據傳遞至后端Java程序,實現動態數據刷新。采用預設車站模擬坐標方式,將需展示線站信息設計為Json格式反饋至客戶端,由ECharts接口實現站間線路可視化渲染,以“總覽為先,縮放過濾按需查看細節”的可視化交互為基礎,滿足線站縮放顯示需求。為增強線路信息在路網可視化模式下維護的便利性,通過擴展鼠標點擊事件與車站等級結合,根據參數確定路網圖中顯示車站,實現ECharts繪制線路范圍的靈活性,符合業務管理需求。
運條系統中涉及對全路線路、車站的關聯計算,需要以線站的基礎屬性信息為基礎,通常這類信息變化頻率低,為提升數據訪問效率,選擇應用Redis實現鐵路路網數據緩存。Redis具有高性能、動態可擴展、高可用、讀取速度快等特點,是一個基于keyvalue的緩存與存儲系統,通過多種鍵值數據類型適應不同場景下的緩存與存儲要求[8]。Redis數據庫中數據存于內存,基于內存的讀寫優勢明顯高于硬盤,并且可支持包括String、Hash、List、Set等數據類型,具有原子性操作等特性[9],可以支持運條系統中多種數據類型的存儲。分析Redis的優勢,適用于本研究對運條線站可視化展示中信息緩存的要求,通過基于Redis的分布式緩存技術,提升效率的同時確保數據的完整性。
分布式實現思想是通過key做一致性哈希,實現key對應Redis結點的分布。一致性哈希算法思想概念,如圖4所示。
初始化運條系統服務器節點列表和虛擬節點集合,將真實的運條系統服務器節點列表加入鏈表中,按照真實服務器節點需要虛擬節點的個數、約定的虛擬方式,計算虛擬節點,根據哈希算法計算虛擬節點在哈希環上的位置,并將虛擬節點加入哈希環,實現節點分布均勻。
針對全路運條線站展示的基礎數據復雜、效率要求高的特點,采用基于分布式的Redis集群可有效避免單點問題,實現不同Redis節點數據共享,對服務請求方提供可靠的數據服務[10]。

圖4 一致性哈希算法思想概念
運條信息管理系統具體功能包括基礎路網信息配置和基礎路網信息展示。
線站信息可視化展示需要鐵路網渲染視圖做支撐,按車站等級分類配置。車站基礎支撐信息主要包括車站名稱、車站模擬坐標、車站等級等。
(1)運條信息管理系統運用車站名稱作為路網視圖展示名稱。
(2)車站模擬坐標用于標記車站在路網圖中所處的相對位置,是路網圖位置展示的核心信息,模擬坐標數值的改變,需要實時通過路網圖展示效果映射。
(3)車站等級用于控制車站加載范圍,為提升車站展示視圖的清晰度,通常小站以節點方式展示,大站以節點附加站名方式展示。
為實現將線站信息以路網圖方式展現,基于信息展示效率及可靠性等因素,選擇ECharts做支撐,提供直觀、可交互的管理模式。運條信息中路網可視化展示的內容為線路及車站信息,車站位置根據模擬坐標數值與路網圖關聯,通過站間線路繪制,組成全路路網結構,如圖5所示。
通過可視化展示方式可以直觀查看不同線路之間的相對位置、運行區間、接續站等情況,并通過縮放功能聚焦關注的線路及車站。為提升信息管理的準確性,設計支持對單條線路視圖的管理,便于業務人員進行編輯操作。

圖5 路網線站信息局部示意
本文研究以客票系統建設的整體要求為基礎,圍繞鐵路路網信息的業務特點,綜合利用既有客票系統的基礎數據及便捷的路網可視化展示相關技術,對整個路網中的“站”“線”進行關聯,設計路網模型,為實現全路車站營業辦理限制情況、旅客票價及行李、包裹運價里程的科學化、智能化管理系統構建奠定技術基礎?;诳梢暬倪\條信息管理為業務管理人員提供了一種全新的數據維護及分析方法,豐富了路網線站的展現方式,提升運條業務管理效率,在后續的研究中,會將本文研究成果應用于生產系統的構建,探索運條業務管理模式,提升鐵路客運業務管理的信息化水平。