武振華,李貝貝,劉相坤,李 琪
(中國鐵道科學研究院 電子計算技術研究所,北京 100081)
鐵路站車客運信息列車版無線交互系統的研究
武振華,李貝貝,劉相坤,李 琪
(中國鐵道科學研究院 電子計算技術研究所,北京 100081)
在介紹鐵路站車客運信息無線交互系統的業務應用領域的基礎上,結合PC端列車版應用程序的開發,從數據訪問層、業務邏輯層和用戶界面層3個層次,分析了列車版站車無線交互系統及軟件架構。
鐵路客運;列車版站車交互;軟件框架
鐵路站車客運信息無線交互系統(以下簡稱系統)是鐵路客運部門首次結合GPRS無線公眾網絡和中國移動專用APN技術而搭建的車地一體化辦公的無線信息交互平臺。該系統實現了地面車站或客運段對列車數據的實時掌握和管理,方便了列車乘務人員及時精確地了解全車人數、席位的占用等數據,并可查驗旅客的實名制、掛失票和網絡購票等客運信息。該系統自2010年在全路上線以來,提高了列車乘務人員的辦公質量,極大地促進了地面列車與車站間的數據交互效率。本文主要針對PC端列車版站車無線交互系統的軟件設計進行解析。
系統由列車車載終端和地面設備組成,列車車載終端與地面之間由GSM網絡或者GSM-R網絡連接;地面系統由信息發布服務器、GPRS接口服務器、路由器及防火墻等設備組成。系統框架如圖1所示。為確保信息系統的安全,系統平臺采用專線方式通過防火墻與中國移動網絡連接,通過安全隔離系統和防火墻與GSM-R網絡連接。

圖1 系統框架圖
PC端列車版站車無線交互系統因為其承載于PC電腦上,運行環境有別于Windows Mobile和Android系統,因此,其應用系統的軟件設計具有獨自的特點。為了實現可擴展可升級的軟件應用程序,根據站車無線交互系統的業務需求,PC端列車版站車無線交互系統具有典型的企業級3層軟件架構:數據訪問層,業務邏輯層和用戶界面層。
2.1 數據訪問層
站車無線交互系統的數據訪問層旨在分離數據訪問邏輯,通過對特定的底層數據源代碼進行封裝整合,實現底層對上層的透明服務。整合的代碼實現對數據庫數據的具體操作,涉及數據庫的創建與連接、發布SELECT、INSERT、UPDATE以及DELETE命令等等。這種抽象的類似接口服務的方式將數據實體和數據操作行為進行隔離,符合面向對象的特點。
在站車無線交互系統的實現方案中,列車終端的軟件系統根據需求發送車次信息,車站的信息發布服務器會根據智能邏輯策略向列車進行數據推送,列車終端的軟件系統接收到數據后,對其進行組織、存儲并提供給用戶進行界面展示。在這種車地信息交互的過程中,列車終端系統的操作離不開數據庫的支持。鑒于單車次的單次發送或接收的數據量一般小于10 kB, PC端站車版無線交互系統選用關系型Access數據庫,并采用基于COM的數據訪問中間件OLEDB(Object Link and Embedding Database)技術進行數據庫的連接,這種操作方便數據庫的日常維護。
PC端列車版無線交互系統的數據訪問層的軟件設計,主要面向于將后臺對數據庫的操作進行封裝,通過代碼提煉成通用的類庫,實現數據庫的獨立性。并結合使用松散的類型化對象DataSet和DataTable獲取特定的數據對象,將關系數據模型轉換成對象數據模型,進而保持數據庫的獨立性。部分代碼如下:
public static DataTable ExcuteReader(string sql, params OleDbParameter[] parameters)
{
string conStr = "Provider=Microsoft. Jet.OLEDB.4.0;Data Source= .\zc.mdb ";
OleDbConnection conn = new OleDbConnection(conStr);
DataSet dataset = new DataSet();
try
{ conn.Open();
OleDbCommand cmd = conn. CreateCommand();
cmd.CommandText = sql;
foreach (OleDbParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
adapter.Fill(dataset);
}
catch (Exception e)
{
zclog.zc_log.logappend(e.Source +e.ToString() + e.Message);
conn.Close();
return null;
}
conn.Close();
if (dataset.Tables.Count == 0)
{
return null;
}
return dataset.Tables[0];
}
該封裝的方法內部實現與數據庫的連接與關閉。通過傳遞參數的形式,對數據源執行SQL語句(主要執行讀取數據庫任務),并將執行的結果以強類型數據集的形式進行返回。該代碼可對潛在的錯誤進行自控制,并以Log日志的方式進行錯誤記錄,方便錯誤的追蹤和查詢。
2.2 業務邏輯層
站車無線交互系統的業務邏輯層聚焦在站車系統的業務規則的指定、業務流程的實現和系統方案的設計上,承載著整個站車無線交互系統的核心,良好的業務邏輯層的設計可保障系統運行的魯棒性。
2.2.1 數據流
站車無線交互系統的終端通過配置中國移動提供的專用SIM卡,采用中國移動的專用APN技術連接中國移動的公用非公眾的GPRS無線傳輸網絡,由移動網絡動態分配專用的本地IP地址,所以SIM卡和IP地址存在固定的對應關系,這種終端占用IP查詢的回應方式,可以降低信息發布服務器的丟包率。應用程序通過VPN技術和安全隔離系統接入客票外網。終端系統啟動應用程序后,完成專用SIM卡在移動網絡的注冊,向信息發布服務器發送身份認證信息,通過安全與合法性校驗后收發數據。如圖2的站車無線交互系統的數據流示意圖所示,站車無線交互系統的車載終端的本地數據通過自定義端口進行內部通信,當需要發送站車交互數據時,應用程序通過數據壓縮、數據分片、斷點續傳等技術,通過AT指令撥號的方式接入中國移動的GPRS無線網絡。數據通過特定的端口流入由中國鐵路總公司部署的GPRS接口服務器,GPRS接口服務器負責應用協議轉換、終端地址尋址、信息收發、非法數據的安全屏蔽等功能。只有符合特定端口和協議的數據才能安全到達信息發布服務器,信息發布服務器能夠對端口異常的數據流進行實時監控,并通過部署防火墻、網閘等保護措施建立鐵路客票網與中國移動網絡的物理隔離和安全防護。客票系統在列車開車前5 min推送列車的乘降人數通知單、席位信息、掛失信息、電子票信息等數據到信息發布服務器,以應對車載終端的數據請求。信息發布服務器將數據加密、壓縮、分段后,采用UDP傳輸協議通過GPRS接口服務器、GPRS網絡推送到車載終端,車載終端接收到數據后,對數據進行解密解壓和重裝,之后調用數據訪問層封裝的類庫裝載數據入庫,或者提供給上層進行界面展示。
車載終端應用程序的內部數據流的傳遞,將發送節點、對外節點和接收節點分別抽象成對等網絡的端點,每一個“網絡端點”分別用IP地址和端口號進行表示,如圖2所示。發送端點和接收端點在軟件設計中表示為客戶端和服務端,其網絡端點表示為系統的回環IP地址和不同的端口號,如圖2的端口號5656和5858。對外節點根據數據流方向的不同,即表示為客戶端又表示為服務端,其網絡端點表示為移動網路分配的IP地址和端口號20000或者20004。發送端點或者接收端點與對外端點之間的通信調用操作系統中的TCP / IP軟件的控制權,通過套接字API中的socket調用實現網絡通信。Windows操作系統的socket句柄能快速將接收的數據遞交給應用層連接對象。

圖2 PC端站車版無線交互系統數據流示意圖
2.2.2 網絡協議
車載終端的應用程序一般多在列車運行速度快的外界環境下運行,應用系統的網絡常會出現無線信號不穩定、無線數據傳輸速率低等情況,因此,車-地間的網絡通信協議或者系統的控制機制必須保證站車無線交互系統數據交互的連續性和完整性。
經過系統實驗和業務功能測試,站車無線交互系統適合搭載中國移動的GPRS網絡作為底層傳輸通道,傳輸層通信協議采用非面向連接的不可靠的用戶數據報協議(UDP)。UDP報文直接傳輸應用數據,沒有復雜的連接建立過程,即使在網絡不穩定的情況下也可實現間斷性數據傳輸。UDP每個報文都綁定目的地址,服務端可以通過地址查詢,實現每個UDP報文的目的地址隨終端IP變化而變化。UDP在會話超時時才會導致會話中斷,斷線干擾和丟包干擾也會影響傳輸控制層。雖然UDP的傳輸特點限制了UDP本身的傳輸控制能力,但應用層實現的超時和分片等控制機制可提高系統的抗干擾能力。在軟件設計中,應用系統把每一個任務建立為消息隊列,通過分析和維護隊列的形式實現UDP數據的控制。
車載終端在數據發送前,會向服務端發送數據描述指令,這種指令可以看作是發送端與服務端的一次“握手”。數據描述攜帶發送端的基本信息,包括設備的終端號、數據總大小、分片大小、數據發送標示號、目的地址等信息。服務端在得到數據描述信息后,若檢測發送端的信息已經在后臺有過注冊行為,則返回確認信息,發送端得到確認信息后即可發送站車車次等數據信息。為了提高站車交互的效率,發送端采用單向推送的方式進行數據發送,發送的數據根據描述指令中數據分片大小的限制對數據進行分片和包裝,其中的包裝包含每個數據分片的標示號和偏移量,以便服務端在接收到數據后進行數據的排序和再組織。服務端接收數據后進行數據報文的完整性和合法性校驗,若通過校驗,同樣以單向數據推送的方式,并加入流量控制機制(考慮了終端設備接收處理能力)向終端反饋數據。若校驗數據不完整或者不合法,則繼續等待發送端進行數據發送,同時發送端也引入超時控制機制,一定時間后若收不到服務端的反饋信息將再次重發數據,直到服務端實現完整性與合法性校驗,從而實現數據的完整收發流程。這種有數據描述、數據推送、數據控制的傳輸協議,結合指令應答,構成了站車無線交互系統的基礎網絡傳輸控制協議,有效地搭建了數據傳輸的通信環境。
2.2.3 業務處理邏輯
為保證站車無線交互系統在線功能的正常使用,程序啟動之前必須先啟動服務,這些服務包括:多線程的運行,與遠端服務器的正常連通測試,程序的初始化等。之后應用程序開始與使用者進行交互,通過獲取使用者提交的車次和始發日期等信息向服務器提交數據下載請求。根據站車無線交互系統的業務規則,站車無線交互系統的完整登乘和退乘流程分別如圖3和圖4所示。

圖3 登乘流程示意圖

圖4 退乘流程示意圖
為了有效監督列車乘務人員對旅客的服務質量,站車無線交互系統在車長登乘時實現了車長實名登乘和登乘信息切換,以便出現問題時車-地間及時有效地進行聯系。在退乘流程中,仍然需要服務的啟動,實現終端向后臺服務器的注銷,停止后臺服務器向終端進行數據發送。
在擁有旅客信息的基礎上,站車無線交互系統還實現了晚點調整、打印輸出保存、密度表等業務邏輯的組織,多方位地提升了站車無線交互系統的使用。
2.3 用戶界面層
站車無線交互系統的用戶界面層除了提供用戶操作界面外,還組織用戶下載的數據以一定的格式進行顯示。用戶界面層直接與列車乘務人員進行交互,直觀簡潔地實現乘務人員對數據的維護和管理。列車在始發站前1 h后臺定時生成相應的全程席位信息和定員信息,因此界面需能夠反應車次信息、定員信息、停靠站列表、全程席位預覽信息、席別、票種等基礎信息的下載狀態,同時也能將沿途各站到站前5 min定時生成的業務信息(通知單、席位信息、掛失票、電子票)的下載狀態進行顯示,這些業務信息的內容也需要以一定的邏輯進行展示。所以,站車無線交互系統的車載終端的前臺界面完成了豐富的數據顯示。
合理的系統設計和良好的軟件設計保證了鐵路站車客運信息無線交互系統車載終端的使用,尤其是多平臺軟件的開發,極大地提升了地面對列車的管理水平和鐵路客運的服務水平。列車乘務人員通過站車無線交互系統,實時有效地掌握了全車的席位信息、到站的乘降人數等數據,相比于之前車-地間紙質方式的傳遞,提高了乘務人員的辦公效率。目前,站車無線交互系統可實現雙中心(鐵路客票一、二生產中心互為災備系統)、雙通道(GPRS、GSM-R)的服務,并在Windows Mobile手持終端和Android平臺上實現了在線席位補票和身份證實名驗證等功能,極大地豐富了站車無線交互系統的使用空間。未來若以站車無線交互系統作為車上乘務人員的信息平臺,可最大限度拓展站車無線交互系統的業務領域。
[1] 閆志遠,何志根,宋 超,等.鐵路站車客運信息無線交互系統關鍵技術[J].鐵路技術創新,2012(4):38-40.
責任編輯 方 圓

▲ 第十二屆中國國際現代化鐵路技術裝備展覽會中國鐵道科學研究院展位
攝影/本刊記者 國 敢
Train Version’s Station Train Wireless Interactive System for railway passenger transport information
WU Zhenhua, LI Beibei, LIU Xiangkun, LI Qi
( Institute of Computing Technologies, China Academy of Railway Sciences, Beijing 100081, China )
This paper, based on the business application of Interactive System for railway passenger transport information, analyzed the System and its three-level software architecture of data access layer, business logic layer and user interface layer combined with the application development of the PC-side train version’s program.
railway passenger transport; Station Train Wireless Interactive System; software architecture
U293.2∶TP39
A
1005-8451(2014)10-0020-05
2014-04-08
武振華,研究員;李貝貝,在讀碩士研究生。