于 鵬,冉一民,賈 微
(軍事交通學(xué)院,軍事交通系,天津300161)
鐵路軍事運(yùn)輸是國(guó)家鐵路運(yùn)輸?shù)闹匾M成部分,也是我軍綜合運(yùn)輸保障體系的重要骨干。加快推進(jìn)鐵路軍事運(yùn)輸?shù)男畔⒒ㄔO(shè),對(duì)提高我軍的快速反應(yīng)能力和保障能力,對(duì)軍事運(yùn)輸實(shí)現(xiàn)動(dòng)態(tài)監(jiān)控和實(shí)施精確,具有重要的作用[2~3]。
鐵路動(dòng)態(tài)監(jiān)控系統(tǒng)包括運(yùn)輸戰(zhàn)備、運(yùn)輸計(jì)劃、運(yùn)輸調(diào)度和運(yùn)輸統(tǒng)計(jì)4大功能模塊。本文利用.NET技術(shù)分析鐵路軍事運(yùn)輸調(diào)度工作,進(jìn)而為運(yùn)輸調(diào)度提供依據(jù)。
根據(jù)鐵路軍事運(yùn)輸調(diào)度功能需求目標(biāo),系統(tǒng)分為9個(gè)功能模塊,如圖1。
圖1 系統(tǒng)總體功能框圖
(1)運(yùn)輸計(jì)劃裝載前安排
分為大宗物資旬計(jì)劃安排、部隊(duì)調(diào)動(dòng)運(yùn)輸計(jì)劃安排、方案運(yùn)輸計(jì)劃安排、留坐或附掛客車(chē)計(jì)劃安排、輸送訓(xùn)練計(jì)劃安排、超限運(yùn)輸計(jì)劃安排等類型。具體由裝載安排、運(yùn)行安排、卸載安排、列車(chē)梯隊(duì)安排、鐵路車(chē)輛安排、空車(chē)底套用返空安排、備品和裝載用具安排、機(jī)車(chē)安排、飲食供應(yīng)安排、安排信息上報(bào)和下達(dá)等。
(2)裝載日計(jì)劃和實(shí)際管理
由鐵路日裝載計(jì)劃與實(shí)際信息收集、日裝載計(jì)劃和配車(chē)計(jì)劃安排、無(wú)計(jì)劃裝載安排、裝載實(shí)際填寫(xiě)和計(jì)劃銷(xiāo)號(hào)、發(fā)送單位和車(chē)站核對(duì)、統(tǒng)計(jì)日裝載、裝載計(jì)劃和實(shí)際上報(bào)、取消裝載等組成。
(3)運(yùn)行/卸載計(jì)劃和實(shí)際管理
由運(yùn)行通報(bào)、編掛去向處理、運(yùn)行日班計(jì)劃安排、鐵路運(yùn)行實(shí)際信息收集、運(yùn)行/卸載實(shí)際填寫(xiě)、運(yùn)行分批處理、運(yùn)行計(jì)劃變更、取消、運(yùn)行統(tǒng)計(jì)、運(yùn)行計(jì)劃與實(shí)際信息上報(bào)等組成。
(4)運(yùn)輸日統(tǒng)計(jì)管理
由運(yùn)統(tǒng)一、二、三、六、七等統(tǒng)計(jì)報(bào)表的統(tǒng)計(jì)、上報(bào)等組成。
(5)軍運(yùn)事故管理
由軍運(yùn)事故情況收集、軍運(yùn)事故調(diào)查和處理、軍運(yùn)事故報(bào)告表填寫(xiě)、軍運(yùn)事故及處理情況上報(bào)等組成。
(6)鐵路運(yùn)輸日常動(dòng)態(tài)管理
收集、處理和上報(bào)鐵路運(yùn)輸日統(tǒng)計(jì)、主要車(chē)站現(xiàn)車(chē)、停限裝、施工、鐵路重大事故、重大自然災(zāi)害、中斷行車(chē)等情況。
(7)調(diào)度值班日志和記事管理
由值班工作總結(jié)、統(tǒng)計(jì)和分析、值班日志填寫(xiě)、記事本填寫(xiě)等組成。
(8)系統(tǒng)維護(hù)模塊
包括系統(tǒng)初始化、用戶管理、數(shù)據(jù)維護(hù)和數(shù)據(jù)編碼等子模塊。利用系統(tǒng)維護(hù)模塊,可以實(shí)現(xiàn)系統(tǒng)初始化,管理員登錄,對(duì)用戶進(jìn)行添加、刪除等操作并對(duì)其設(shè)置相應(yīng)的操作權(quán)限;允許隨時(shí)對(duì)數(shù)據(jù)進(jìn)行備份發(fā)送到硬盤(pán)存儲(chǔ),在數(shù)據(jù)丟失或其它故障后,從硬盤(pán)接收以恢復(fù)數(shù)據(jù),同時(shí)允許在一些重要數(shù)據(jù)被破壞后進(jìn)行修復(fù);利用數(shù)據(jù)編碼子模塊,可以實(shí)現(xiàn)鐵路車(chē)站、線路和裝備物資等信息的編碼,以便進(jìn)行科學(xué)管理和相關(guān)信息的統(tǒng)計(jì)匯總。
(9)系統(tǒng)幫助模塊
幫助用戶了解軟件運(yùn)行環(huán)境和要求,介紹軟件安裝、系統(tǒng)功能、實(shí)際操作及其反饋方式以及鐵路軍事運(yùn)輸規(guī)章的查詢等功能。
利用Oracle 提供的Enterprise Manager Console 及PLSQL Developer 等工具,便于對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì)、開(kāi)發(fā)、部署和管理。使用Oracle Enterprise Manager Console 對(duì)數(shù)據(jù)庫(kù)的開(kāi)發(fā)、部署和管理都是可視化的。數(shù)據(jù)庫(kù)中有計(jì)劃信息,調(diào)度信息,統(tǒng)計(jì)信息,用戶信息等,分別以不同的表存放。其中日裝載主表HQ_JJ_TL_D_ZZ_RZZB,分別建立以下字段:日裝載標(biāo)志RZZ_ID (Char)(主鍵)、發(fā)送單位FSDW(Char)、接收單位JSDW(Char)、裝載站ZZ_STATION(Char)、卸載站XZ_STATION(Char)等。
系統(tǒng)采用.NET Framework的C#語(yǔ)言進(jìn)行開(kāi)發(fā)。.NET Framework 具有兩個(gè)主要組件:公共語(yǔ)言運(yùn)行庫(kù)和 .NET Framework 類庫(kù)。公共語(yǔ)言運(yùn)行庫(kù)是 .NET Framework 的基礎(chǔ)??梢詫⑦\(yùn)行庫(kù)看作一個(gè)在執(zhí)行時(shí)管理代碼的代理,它提供內(nèi)存管理、線程管理和遠(yuǎn)程處理等核心服務(wù),并且還強(qiáng)制實(shí)施嚴(yán)格的類型安全以及可提高安全性和可靠性的其他形式的代碼準(zhǔn)確性。事實(shí)上,代碼管理的概念是運(yùn)行庫(kù)的基本原則。以運(yùn)行庫(kù)為目標(biāo)的代碼稱為托管代碼,而不以運(yùn)行庫(kù)為目標(biāo)的代碼稱為非托管代碼。.NET Framework 的另一個(gè)主要組件是類庫(kù),它是一個(gè)綜合性的面向?qū)ο蟮目芍赜妙愋图?,可開(kāi)發(fā)多種應(yīng)用程序,包括傳統(tǒng)的命令行或圖形用戶界面(GUI)應(yīng)用程序,也包括基于ASP.NET 所提供的最新的應(yīng)用程序(如 Web 窗體和 XML Web Services)[4]。
總部、軍區(qū)、鐵路局三級(jí)之間通過(guò)綜合信息網(wǎng)進(jìn)行通信,采用MQ(Message Queue)通信服務(wù)器的形式傳輸交換文件。各級(jí)內(nèi)部通過(guò)交換機(jī)組建局域網(wǎng)的形式,客戶端通過(guò)FTP(File Transfer Protocol)將需傳輸文件發(fā)送至本級(jí)服務(wù)器指定目錄,服務(wù)端處理程序再將文件放入MQ傳輸隊(duì)列中傳輸,接收方利用服務(wù)端處理程序接收文件并進(jìn)行相應(yīng)的處理。
但是此種方式的文件處理存在一個(gè)較大的缺陷,一旦接收方服務(wù)端處理程序未處理正確會(huì)造成數(shù)據(jù)丟失,不能滿足數(shù)據(jù)的一致性問(wèn)題。因此,將傳輸機(jī)制進(jìn)行了改進(jìn),發(fā)送方發(fā)送文件的同時(shí),將發(fā)送的內(nèi)容進(jìn)行記錄,等待接收方服務(wù)端處理程序完成后,向發(fā)送方發(fā)送接收成功或接收失敗的回執(zhí)文件,發(fā)送方再根據(jù)回執(zhí)進(jìn)行相應(yīng)的處理。
本系統(tǒng)采用XML(可擴(kuò)展標(biāo)記語(yǔ)言)文件的交互形式,它是一種簡(jiǎn)單、與平臺(tái)無(wú)關(guān)并被廣泛采用的標(biāo)準(zhǔn)。為防止用戶自行修改生成的交換文件,利用.NET類庫(kù),自行編制了一套專門(mén)用于加解密XML文件的DLL(動(dòng)態(tài)鏈接庫(kù)),通過(guò)對(duì)DLL的引用,程序可實(shí)現(xiàn)對(duì)XML文件的加解密。
單機(jī)版系統(tǒng)必須考慮升級(jí)問(wèn)題,可能會(huì)對(duì)已有數(shù)據(jù)結(jié)構(gòu)進(jìn)行部分修改,產(chǎn)生版本差異,利用XmlDataDocument的CreateAttribute為XML增加版本屬性DDVersion,這樣接收文件時(shí)就可以判斷其版本,以調(diào)用相應(yīng)版本的接收處理函數(shù)。
每批軍運(yùn)計(jì)劃均批有惟一的軍運(yùn)號(hào)碼,分為人員和物資兩種。軍運(yùn)號(hào)碼按照一定的規(guī)則組合排序生成,根據(jù)需要,經(jīng)過(guò)一定的時(shí)期,要修訂相應(yīng)的生成規(guī)則。因此,系統(tǒng)決定采用單獨(dú)一個(gè)軍運(yùn)號(hào)碼生成類(AutoJYCODE)進(jìn)行處理,而軍運(yùn)號(hào)碼變更的處理則通過(guò)帶參數(shù)的類(AutoJYCODEWithPara)傳參修改。
調(diào)度管理系統(tǒng)必須保證各級(jí)服務(wù)器、客戶端與總部時(shí)間服務(wù)器的同步,采用Web Services(網(wǎng)絡(luò)服務(wù))獲取服務(wù)器當(dāng)前時(shí)間,使各級(jí)客戶端每5 min同步一次本級(jí)的時(shí)間服務(wù)器,下級(jí)時(shí)間服務(wù)器每5 min同步一次上級(jí)時(shí)間服務(wù)器,如圖2。
圖2 通過(guò)Web Services實(shí)現(xiàn)時(shí)間同步
鐵路軍事運(yùn)輸調(diào)度管理系統(tǒng)作為鐵路動(dòng)態(tài)監(jiān)控系統(tǒng)之一,從運(yùn)輸計(jì)劃模塊中獲取計(jì)劃信息,完成裝載、運(yùn)行和卸載后,又為運(yùn)輸統(tǒng)計(jì)模塊提供基礎(chǔ)統(tǒng)計(jì)數(shù)據(jù),是鐵路軍事運(yùn)輸動(dòng)態(tài)監(jiān)控系統(tǒng)的重要組成部分。
[1] 后交[2007] 鐵路軍事運(yùn)輸調(diào)度規(guī)則[S] . 北京:中國(guó)人民解放軍總后勤部,2007.
[2] 鐵路軍事運(yùn)輸信息系統(tǒng)需求分析報(bào)告[R] . 北京:中國(guó)人民解放軍總后勤部軍事交通部,2007.
[3] 鐵路軍事運(yùn)輸信息系統(tǒng)概要設(shè)計(jì)報(bào)告[R] . 北京:中國(guó)人民解放軍總后勤部軍事交通部,2007.
[4] Simon Robinson.C#高級(jí)編程[M] . 3版. 北京:清華大學(xué)出版社,2005.