| 摘 要: 網(wǎng)關(guān)系統(tǒng)是中國民航固定格式電報網(wǎng)(AFTN)的重要組成部分。介紹了網(wǎng)關(guān)系統(tǒng)的組成、結(jié)構(gòu)和功能,并著重闡述了網(wǎng)關(guān)系統(tǒng)的進程監(jiān)護和系統(tǒng)自恢復(fù)功能的實現(xiàn)。 關(guān)鍵詞: AFTN網(wǎng)關(guān)Win32API Get Time DLL 中國民航航空固定格式電報網(wǎng)(AFTN)承擔(dān)中國民用航空局國內(nèi)與國際的空中交通管理,飛行動態(tài),航行氣象及民航局有關(guān)部門業(yè)務(wù)事物處理等的信息交換,是民用航空飛行安全、正常、高效和經(jīng)濟運轉(zhuǎn)的保障。 AFTN電報網(wǎng)客戶端使用大量的電報字符終端和少量的智能終端。字符終端采用50波特率線路,具有收、發(fā)、打印功能,不能查詢和分板報文。智能終端是基于單臺PC機的系統(tǒng),功能比較齊全。但是在電報量大的單位,單機的智能終端處理速度慢、報文存儲量小,特別是不能實現(xiàn)信息的共享、多席位的分工協(xié)作。 隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,管理局一級的單位多建立了自己的計算機局域網(wǎng)和網(wǎng)絡(luò)數(shù)據(jù)庫,電報的處理、存儲能力得到極大的提高,于是,AFTN網(wǎng)關(guān)成為AFTN與計算機局域網(wǎng)連接的關(guān)鍵部分。 1 AFTN網(wǎng)關(guān)功能分析 從業(yè)務(wù)角度分析,AFTN網(wǎng)關(guān)應(yīng)提供實時接收來自AFTN電報網(wǎng)的各類電報的能力;提供實時發(fā)送各類電報的能力;提供監(jiān)視平面電報網(wǎng)接口線路的工作狀態(tài)的能力。 從技術(shù)角度分析,AFTN網(wǎng)關(guān)具備以下功能: ·AFTN電報網(wǎng)接口,支持雙工異步RS-232接口,傳輸速率可達300,600,1200,2400,4800,9600bps; ·內(nèi)部計算機網(wǎng)絡(luò)接口,采用10BASE-T連接,支持TCP/IP協(xié)議; ·實現(xiàn)CCITT 5位電報碼與ASCII 7位碼的相互轉(zhuǎn)換; ·與網(wǎng)絡(luò)數(shù)據(jù)庫連接,支持開放式數(shù)據(jù)庫接口模塊(ODBC); ·具備實時報文發(fā)送功能,對多地址報文進行特殊處理; ·監(jiān)控串行通信口的狀態(tài),異常情況報警提示; ·監(jiān)控網(wǎng)絡(luò)通信狀態(tài),出現(xiàn)異常情況后接收報文的存儲轉(zhuǎn)由本地數(shù)據(jù)庫接口負責(zé); ·提供自動恢復(fù)功能,待網(wǎng)絡(luò)恢復(fù)正常工作后,恢復(fù)與網(wǎng)絡(luò)數(shù)據(jù)庫的連接并提交存儲在本地數(shù)據(jù)庫中的報文。 ·檢查電報流水號,對遺漏的電報,具備從AFTN電報網(wǎng)自動要報功能。 2 AFTN網(wǎng)關(guān)實現(xiàn) AFTN網(wǎng)關(guān)的硬件平臺采用高性能PC機。操作系統(tǒng)采用Windows NT workstation 4.0中文版。開發(fā)工具采用MS VC++6.0和MS VB 6.0。 2.1 系統(tǒng)連接結(jié)構(gòu) AFTN網(wǎng)關(guān)系統(tǒng)的連接結(jié)構(gòu)如圖1所示。AFTN網(wǎng)關(guān)通過以太網(wǎng)接口連接到電報處理系統(tǒng),通過串行接口連調(diào)制解調(diào)器與轉(zhuǎn)報系統(tǒng)串行端口相聯(lián),全雙工通信,傳輸速率1200bps,傳送國際五號碼(ASCII碼)。根據(jù)需要也可以使用國際二號碼(博多碼)。AFTN網(wǎng)關(guān)到轉(zhuǎn)報系統(tǒng)使用電流環(huán)接口作為備份線路。在AFTN網(wǎng)關(guān)一端采用SS-1型“電報通信線路連接器”,經(jīng)電臺碼型轉(zhuǎn)換后,通過X.25網(wǎng)接入轉(zhuǎn)報機,全雙工通信,傳輸速率600bps,傳送博多碼。 2.2 程序結(jié)構(gòu) AFTN網(wǎng)關(guān)由三部分組成,即AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進程、數(shù)據(jù)提交進程、本地進程監(jiān)控進程,如圖2所示。 2.2.1 AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進程 通過串行接口與轉(zhuǎn)報機系統(tǒng)連接。接收到的AFTN報文寫到本地的Access數(shù)據(jù)庫中同時發(fā)送本地Access數(shù)據(jù)庫中的發(fā)送電報。AFTN網(wǎng)絡(luò)數(shù)據(jù)接口與電報處理系統(tǒng)的網(wǎng)絡(luò)環(huán)境沒有任何連接,當電報處理系統(tǒng)出現(xiàn)故障時,不會影響AFTN網(wǎng)絡(luò)數(shù)據(jù)接口的正常工作。 2.2.2 數(shù)據(jù)提交進程 通過開放數(shù)據(jù)接口與電報處理系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器相連接。把AFTN網(wǎng)絡(luò)數(shù)據(jù)接口模塊寫到本地Access數(shù)據(jù)庫中的接收電報提交到網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器,同時將網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器中要發(fā)送的報文寫入本地的Access數(shù)據(jù)庫,提交給AFTN網(wǎng)絡(luò)數(shù)據(jù)接口發(fā)送。數(shù)據(jù)提交進程與AFTN電報網(wǎng)沒有任何連接,當AFTN電報網(wǎng)或轉(zhuǎn)報機系統(tǒng)出現(xiàn)故障時,不會影響數(shù)據(jù)提交進程的正常工作。 2.2.3 本地進程監(jiān)控進程 監(jiān)視AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進程和數(shù)據(jù)提交進程的工作。正常情況下,AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進程和數(shù)據(jù)提交進程每隔30s向本地進程監(jiān)控進程發(fā)送程序狀態(tài)報告消息,如果在指定的超時范圍內(nèi),本地進程監(jiān)控進程仍未收到AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進程和數(shù)據(jù)提交進程發(fā)來的程序狀態(tài)報告消息,則鳴警笛,提醒操作員,同時在適當?shù)臅r候重新引導(dǎo)系統(tǒng),以期恢復(fù)AFTN網(wǎng)關(guān)的正常工作。 2.3 進程監(jiān)控及自恢復(fù)功能的實現(xiàn) 2.3.1 進程監(jiān)控 系統(tǒng)初始化時生成了狀態(tài)配置設(shè)置文件State.ini,其中與進程監(jiān)控相關(guān)的項目如下所示: [watdog] Destination="GDO_Monitor" FepHearBeat=881218824 DTHeartBeat=881218832 AFTN網(wǎng)絡(luò)接口進程和數(shù)據(jù)提交進程每隔30s分別更新FepHeartBeat和DTHeartBeat的數(shù)據(jù),數(shù)據(jù)含義是更新時間與1970年1月1日0時的差值,單位為秒。本地進程監(jiān)控程序通過檢查FepHeartBeat和DTHeartBeat的數(shù)據(jù),監(jiān)測其他兩個進程的狀態(tài)。 VB程序中沒有函數(shù)可以計算某一時間與1970年1 月1日0時的差距,而VC++中的Time()函數(shù)可以實現(xiàn)。使用vc++制作包含Time()函數(shù)功能,符合Win32API的動態(tài)連接庫GetLongTiome.c,在VB中對其調(diào)用即可實現(xiàn)此功能。以下為制作動態(tài)連接庫的部分源代碼,包括GetLongTiome.c和GetLongTiome.def。  在VB程序中調(diào)用Win32API時先要在全局模塊中做如下定義: Declare function GetLongTime Lib "GetTime"As Long 在程序中以以下方式調(diào)用: LongDate=GetTime() 2.3.2 系統(tǒng)自恢復(fù) 在指定的超時范圍內(nèi),本地進程監(jiān)控進程仍未檢測到AFTN網(wǎng)絡(luò)數(shù)據(jù)接口進程和數(shù)據(jù)提交進程對配置設(shè)置文件State.ini的更新,則在適當?shù)臅r候重新引導(dǎo)系統(tǒng),以期恢復(fù)AFTN網(wǎng)關(guān)的正常工作。 本地進程監(jiān)控進程首先填寫系統(tǒng)日志文件,記錄錯誤時間及可能原因;保留當前參數(shù)設(shè)定,準備重新引導(dǎo)系統(tǒng)后恢復(fù)正常工作。最后調(diào)用以下函數(shù),重新引導(dǎo)系統(tǒng): ExitWindowsEx (EWX_FORCE1EWX_REBOOT,0) 綜上所述,AFTN電報網(wǎng)網(wǎng)關(guān)以基于中心網(wǎng)絡(luò)數(shù)據(jù)庫服務(wù)器的客戶機/服務(wù)器模式工作,提供電報信息處理系統(tǒng)所有客戶機一種接收和發(fā)送電文的方法。三個應(yīng)用程序進程之間既相互獨立,又相互聯(lián)系的機制保證了AFTN電報網(wǎng)網(wǎng)關(guān)的正常運行。 該AFTN電報網(wǎng)網(wǎng)關(guān)在中國民用航空總局總調(diào)度室運行了2年,系統(tǒng)穩(wěn)定可靠,并通過技術(shù)鑒定,獲得了入網(wǎng)證書。 |