趙曄暉
準(zhǔn)確及時發(fā)布氣象預(yù)報是保障飛行安全的重要手段之一[1~3],如何簡化發(fā)報流程降低預(yù)報員發(fā)報失誤率是民航系統(tǒng)內(nèi)的熱點和難點。目前,民航系統(tǒng)內(nèi)部使用的發(fā)報系統(tǒng)存在諸多缺陷:線路缺陷,發(fā)報終端使用單一鏈路,容易造發(fā)生因鏈路故障導(dǎo)致的漏報、遲報事件,由鏈路故障造成的遲報漏報現(xiàn)象在民航內(nèi)部發(fā)生多起,嚴(yán)重影響飛行安全;報文確認(rèn)方式不科學(xué),無法確認(rèn)轉(zhuǎn)報機是否將報文發(fā)送至數(shù)據(jù)庫;報文驗證規(guī)則不準(zhǔn)確,發(fā)報軟件對報文驗證規(guī)則不準(zhǔn)確,無報文糾錯功能,增加預(yù)報員工作失誤率。
為解決上述問題,本文對當(dāng)前民航系統(tǒng)存在的發(fā)報系統(tǒng),進行大量的測試和研究,提出采用雙鏈路進行發(fā)報的設(shè)計思想。同時分析民用航空氣象資料《民用航空行業(yè)氣象標(biāo)準(zhǔn)第2 部分:預(yù)報》[4~6],從預(yù)報類型標(biāo)志、地名代碼、預(yù)報的發(fā)布日期和時間、預(yù)報有效日期和時段、地面風(fēng)、能見度、天氣現(xiàn)象、云等要素進行邏輯分析,研究各要素之間的內(nèi)在聯(lián)系,理清各要素之間的邏輯關(guān)系,提取預(yù)報發(fā)報驗證規(guī)則,建立民航機場預(yù)報發(fā)報系統(tǒng)的邏輯模型,分析AFTN二號碼與五號碼之間的轉(zhuǎn)換關(guān)系[7~9],研究 IBMWebsphere MQ[10~13]運行原理,開發(fā)設(shè)計采用雙鏈路,同時基于規(guī)則驗證的民航機場預(yù)報編發(fā)報系統(tǒng)。測試結(jié)果表明,采用雙鏈路基于規(guī)則驗證的民航機場預(yù)報發(fā)報系統(tǒng)具有較高的可靠率,從而證明了采用雙鏈路基于規(guī)則驗證進行研究設(shè)計的可行性和有效性。
民航機場預(yù)報編發(fā)報系統(tǒng)整體功能架構(gòu)如圖1所示,從設(shè)計上分為三個層次:展示層、報文及規(guī)則處理層和報文采集管理層,三層之間相互支持與協(xié)作,共同完成氣象報文的發(fā)送和管理工作。
圖1 民航機場預(yù)報編發(fā)報系統(tǒng)架構(gòu)圖
展示層包括編發(fā)報文、規(guī)則驗證、發(fā)布報文、索取查詢四個部分內(nèi)容,是用戶發(fā)布數(shù)據(jù)的入口,是進行報文編輯、驗證、發(fā)布、查詢的人機交互平臺。報文及規(guī)則處理層主要功能是將從展示層接收到的報文進行拆分、驗證,匹配后將符合條件的報文按照要求轉(zhuǎn)發(fā)出去。
報文采集及管理層主要功能是提取從報文及規(guī)則處理層收到的報文,將報文發(fā)給通信系統(tǒng)進行驗證、檢測,合格后對比配置(如報告收集、區(qū)域索引,轉(zhuǎn)發(fā)等),以決定報文入庫規(guī)則,最后將信息發(fā)給數(shù)據(jù)庫系統(tǒng),驗證合格后入庫。
民航機場預(yù)報編發(fā)報系統(tǒng)從業(yè)務(wù)流程上分為四部分:民航發(fā)報終端、民航轉(zhuǎn)報系統(tǒng)、通信系統(tǒng)以及氣象數(shù)據(jù)庫系統(tǒng)。預(yù)報員在發(fā)報終端將報文發(fā)送后,選擇使用AFTN線路或者MQ線路進行發(fā)送,若選擇AFTN線路,報文首先進入轉(zhuǎn)報系統(tǒng),轉(zhuǎn)報系統(tǒng)對報文進行分解驗證后將報文傳遞給上級節(jié)點,最后經(jīng)數(shù)據(jù)庫系統(tǒng)進入數(shù)據(jù)庫,并返回AFTN報文確認(rèn)信息。若選擇使用MQ線路進行發(fā)送,報文進入通信系統(tǒng),經(jīng)過格式處理、轉(zhuǎn)發(fā)查看、入庫匹配后進入數(shù)據(jù)庫系統(tǒng),并返回入庫信息。四部分相互協(xié)作,共同完成氣象報文的發(fā)送,其流程如圖2所示。
如圖2所示,民航機場預(yù)報編發(fā)報系統(tǒng)業(yè)務(wù)處理流程如下。
1)預(yù)報員在民航發(fā)報終端編發(fā)報文,發(fā)送之前對報文進行驗證,若不正確則回到原點重新編發(fā)報文;若正確進入步驟2);
2)若不發(fā)送報文回到開始起點,若發(fā)送進入步驟3);
3)選擇發(fā)送線路,選擇AFTN進入步驟4),選擇MQ線路進入步驟5);
4)報文發(fā)送至民航轉(zhuǎn)報系統(tǒng),將AFTN報文發(fā)送成功確認(rèn)信息轉(zhuǎn)發(fā)給客戶端,一次報文發(fā)送過程結(jié)束;
5)報文發(fā)送至通信系統(tǒng),通信系統(tǒng)查看報文是否轉(zhuǎn)發(fā),若不是丟棄,否則進入步驟6);
6)查看報文是否入庫,若不入庫將報文丟棄,否則進入步驟7);
7)數(shù)據(jù)庫系統(tǒng)對收到的報文進行入庫匹配,若不匹配查看是否重新入庫,若不重新入庫則丟棄,否則進入步驟8);
8)寫入日志,報文進入氣象數(shù)據(jù)庫,同時返回MQ線路發(fā)送成功確認(rèn)信息,一次報文發(fā)送過程結(jié)束。
依據(jù)《民用航空行業(yè)氣象標(biāo)準(zhǔn)第2部分:預(yù)報》資料,分析研究預(yù)報類型標(biāo)志、地名代碼、預(yù)報的發(fā)布日期和時間、預(yù)報有效日期和時段、地面風(fēng)、能見度、天氣現(xiàn)象、云等要素,理清各要素之間邏輯關(guān)系,提取趨勢預(yù)報、FC、FT、FC AMD、FCCNL、FTCOR、FTAMD等各類型報文發(fā)報驗證規(guī)則,構(gòu)建規(guī)則邏輯流程圖,預(yù)報報文規(guī)則驗證流程圖如圖3所示。
本模塊主要實現(xiàn)報文驗證、報文糾錯功能,把驗證未通過的報文中的錯誤部分用紅色標(biāo)識出來,其具體的功能有字段提取、時間驗證、風(fēng)向風(fēng)速驗證、能見度檢測、有效時段檢驗、報文糾錯等功能,各主要功能具體如下。
圖2 民航機場預(yù)報編發(fā)報系統(tǒng)業(yè)務(wù)處理流程圖
圖3 預(yù)報報文規(guī)則驗證流程圖
1)字段提取,負(fù)責(zé)分解提取用戶輸入的報文,分解成有效時段、風(fēng)向風(fēng)速、能見度、天氣現(xiàn)象、最高最低氣溫等字段。
2)邏輯判斷:根據(jù)提取的字段,分析判斷報文邏輯關(guān)系,將結(jié)果返回給用戶。
3)報文分類:由于不同報文判斷規(guī)則不一致,需要將輸入的報文進行分類如分成FT、FC、AMD等。
4)報文糾錯:經(jīng)過邏輯判斷后,若報文不正確,將報文中錯的部分標(biāo)記出來,提醒用戶報文要重新編寫。
預(yù)報終端發(fā)送的編碼為國際二號碼,轉(zhuǎn)報機采用的編碼為五號碼,只有實現(xiàn)五號碼和二號碼的相互轉(zhuǎn)換才能正確解析報文。IA5編碼中的0~32號和第127號控制字符中,只有3個字符LF、CR、SP可以轉(zhuǎn)換為ITA2編碼。由于IAT2編碼表中無對應(yīng)的小寫字母,IAT2編碼轉(zhuǎn)換為IA5編碼時,要把小寫英文字母轉(zhuǎn)換為大寫字母,ITA2編碼和IA5編碼之間并不是嚴(yán)格的一一對應(yīng)關(guān)系,沒有對應(yīng)關(guān)系的編碼相互轉(zhuǎn)換時用空字符“NUL“代替。
ITA2國際二號碼編碼分為數(shù)字編碼和字母編碼,數(shù)字編碼表如表1所示。
表1 ITA2數(shù)字編碼
ITA2字母編碼表如表2所示。IA5國際五號碼又稱ASII碼,其編碼如表3所示。
本模塊主要實現(xiàn)串口發(fā)報、日志留底等功能,通過返回的報文判斷報文成功發(fā)送至轉(zhuǎn)報機,其具體的功能有串口發(fā)報、二號碼轉(zhuǎn)換成五號碼、五號碼轉(zhuǎn)換成二號碼、報文留底等功能,各主要功能具體如下:
表2 ITA2字母編碼
1)串口發(fā)報,負(fù)責(zé)打開用戶端串口,使用串口協(xié)議將報文發(fā)送給轉(zhuǎn)報服務(wù)器。
2)二號碼轉(zhuǎn)換成五號碼:轉(zhuǎn)報機將接收到的二號碼解析成五號碼。
3)五號碼轉(zhuǎn)換成二號碼:客戶端將接收到的二號碼轉(zhuǎn)換成五號碼等。
4)報文留底:報文發(fā)送成功后,系統(tǒng)自動將報文進行留底,便于查詢。
五號碼轉(zhuǎn)換成二號碼實現(xiàn):步驟分為單個字符和字符串由五號碼轉(zhuǎn)換為二號碼,單個字符轉(zhuǎn)換成二號碼方法:將表3中序號0x25~0x5A所對應(yīng)的總計54個IA5編碼表所對應(yīng)的字符在表1和表2編碼表中找出ITA2對應(yīng)的編碼值,按照順序存儲在一個整形數(shù)組中。由于IAT2編碼表1和表2有六個字符是一樣的,所以整形數(shù)組中包括表1和表2的全部編碼(空格、回車、換行三個字符外),54個五號碼中不能轉(zhuǎn)換二號碼的符號用NUL代替;字符串轉(zhuǎn)換成二號碼方法:首先判斷是數(shù)字串還是字符串,若是數(shù)字串,在數(shù)字串前面加“0x1B”(數(shù)字標(biāo)志:FIGS),若是字符串,在字符串前面加“0x1F”(字母標(biāo)志LTRS)。
二號碼轉(zhuǎn)換成五號碼實現(xiàn):步驟分為單個字符和字符串由二號碼轉(zhuǎn)換為五號碼,單個字符轉(zhuǎn)換成五號碼方法:定義兩個整形數(shù)(0x00-0x1F),分別存在表1數(shù)字編碼和表2字符編碼所對應(yīng)的字符在表3中的編碼值,按照順序進行存儲。其中,二號碼中“0x05”(所有格)、“0x14”(符號)、“0x1A”(符號)沒有對應(yīng)的五號碼值,用nul(0x1B)表示。若ITA2編碼的第一個轉(zhuǎn)義字符是“0x1B”(FIGS)時,表示是數(shù)字字符,對應(yīng)表1編碼值。若ITA2編碼的第一個轉(zhuǎn)義字符是“0x1F”(LTRS)時,表示是字母字符,對應(yīng)表2編碼值;字符串轉(zhuǎn)換方法:二號碼字符串轉(zhuǎn)換成五號碼字符串,必須去掉表示數(shù)字和字母的轉(zhuǎn)義字符。截取字母轉(zhuǎn)義字符(0x1F)和數(shù)字轉(zhuǎn)義字符之間(0x1B)的字符串,將字符串進行轉(zhuǎn)換,若只找到字母轉(zhuǎn)義字符或者數(shù)字轉(zhuǎn)義字符,則直接截取字符串進行轉(zhuǎn)換。
IBM Websphere MQ技術(shù)可以在不同網(wǎng)絡(luò)協(xié)議、不同的計算機操作系統(tǒng)之間進行傳遞信息。本文中發(fā)報終端采用win7操作系統(tǒng),通信機采用red?hat操作系統(tǒng),數(shù)據(jù)庫服務(wù)器使用aix操作系統(tǒng),設(shè)計時采用目前主流的JMS框架編程技術(shù)。在通信機建立本地隊列、傳輸隊列、發(fā)送隊列以及死信隊列,本地數(shù)據(jù)遠程數(shù)據(jù)庫建立接收隊列、本地隊列,系統(tǒng)設(shè)計如圖4所示。
圖4 IBM Websphere MQ發(fā)報系統(tǒng)設(shè)計圖
如圖4所示,本模塊主要實現(xiàn)通過MQ線路進行報文發(fā)送,通過檢索遠程數(shù)據(jù)庫判斷報文成功發(fā)送,其具體的功能有連接遠程隊列、ftp報文推送、報文驗證、報文檢索等功能,各主要功能具體如下。
1)連接遠程隊列:負(fù)責(zé)與通信服務(wù)器進行連接,將報文發(fā)送至遠程隊列。
2)ftp報文推送:使用ftp技術(shù)將報文推送至通信服務(wù)器特定目錄下。
3)報文驗證:驗證要發(fā)送的報文,必須正確才能進行發(fā)送。
4)報文檢索:分為本地檢索和遠程檢索,確認(rèn)報文已經(jīng)入庫。
系統(tǒng)運行環(huán)境為Win7操作系統(tǒng),在軟件工程面向?qū)ο笏枷胫笇?dǎo)下,采用開發(fā)平臺Visual studio 2012,運用面向?qū)ο笳Z言C#,結(jié)合javascirpt腳本語言,開發(fā)完成該系統(tǒng),實現(xiàn)報文的驗證和發(fā)送。
為了檢驗基于規(guī)則驗證的報文發(fā)布系統(tǒng)對報文的驗證是否符合設(shè)計的要求,我們進行了驗證實驗。實驗周期為8個月,分別測試系統(tǒng)對FC、FT、FCAMD、 FCCNL、 FTCOR、 FTAMD、 SPECI、AIRMET、SIGMET、GAMET等各種不同類型的報文驗證的準(zhǔn)確率,每種報文的測試樣本數(shù)量為3000份,測試人員為預(yù)報員,對比現(xiàn)有發(fā)報系統(tǒng),測試數(shù)據(jù)如表4所示。
表4 各類型報文驗證準(zhǔn)確率
實驗結(jié)果表明,對FT和FTAMD報文的驗證準(zhǔn)確率,民航機場預(yù)報編發(fā)報系統(tǒng)與現(xiàn)有發(fā)報系統(tǒng)持平;對FCCNL報文的驗證準(zhǔn)確率,民航機場預(yù)報編發(fā)報系統(tǒng)略高于現(xiàn)有發(fā)報系統(tǒng);對FC、FCAMD、FT?COR、SPECI、AIRMET、SIGMET、GAMET等類型報文的驗證準(zhǔn)確率,民航機場預(yù)報編發(fā)報系統(tǒng)高于現(xiàn)有發(fā)報系統(tǒng)??梢缘贸鼋Y(jié)論,在相同條件下相比現(xiàn)有發(fā)報系統(tǒng),民航機場預(yù)報編發(fā)報系統(tǒng)報文驗證準(zhǔn)確度更高。
民航機場預(yù)報編發(fā)報系統(tǒng)采用AFTN和IBM Websphere MQ雙鏈路進行發(fā)報,現(xiàn)有發(fā)報系統(tǒng)使用AFTN單鏈路進行發(fā)報,線路故障時,發(fā)報成功率如表5所示。
表5 鏈路中斷時成功率
如表5,結(jié)果表明AFTN線路故障時,機場預(yù)報編發(fā)報系統(tǒng)發(fā)報成功率100%,高于現(xiàn)有發(fā)報系統(tǒng)的0%;網(wǎng)絡(luò)線路故障時,機場預(yù)報編發(fā)報系統(tǒng)和現(xiàn)有發(fā)報系統(tǒng)發(fā)報成功率均為100%;AFTN線路和網(wǎng)絡(luò)同時故障時,機場預(yù)報編發(fā)報系統(tǒng)現(xiàn)有發(fā)報系統(tǒng)的成功率均為0%。線路故障時,機場預(yù)報編發(fā)報系統(tǒng)發(fā)送報文成功的概率大于現(xiàn)有發(fā)報系統(tǒng),證明機場預(yù)報編發(fā)報系統(tǒng)的可靠性。
本文研究資料選取《民用航空行業(yè)氣象標(biāo)準(zhǔn)第2部分:預(yù)報》,將預(yù)報員日常發(fā)送的報文進行分類統(tǒng)計,分析不同類型報文各個元素之間的邏輯關(guān)系,分別提取各類型報文驗證規(guī)則,設(shè)計驗證算法。采用雙鏈路設(shè)計思想,重點研究AFTN線路二號碼與五號碼之間的轉(zhuǎn)換關(guān)系,著重分析IBM Websphere MQ線路報文發(fā)送流程。本文實驗中,選取不同類型報文各3000份,對比現(xiàn)有發(fā)報系統(tǒng),分別測試系統(tǒng)對FC、FT、FCAMD、FCCNL、FTCOR、FTAMD、SPECI、AIRMET、SIGMET、GAMET等各種不同類型的報文驗證的準(zhǔn)確率。報文驗證結(jié)果顯示,在相同條件下相比現(xiàn)有發(fā)報系統(tǒng),采用報文規(guī)則驗證的民航機場預(yù)報編發(fā)報系統(tǒng)報文驗證準(zhǔn)確度更高,表明報文規(guī)則是提高報文驗證準(zhǔn)確率的重要因素,與“提高氣象報文驗證準(zhǔn)確度的因素有兩個:第一,行業(yè)標(biāo)準(zhǔn)的完善;第二,對行業(yè)標(biāo)準(zhǔn)和氣象報文規(guī)則的熟悉程度,其中對氣象報文規(guī)則的掌握程度是核心因素,對報文驗證準(zhǔn)確度的提高起決定性作用[14]”相符合。文中設(shè)計的發(fā)報系統(tǒng)采用雙鏈路進行發(fā)報,線路故障時,機場預(yù)報編發(fā)報系統(tǒng)發(fā)送報文成功的概率遠遠大于現(xiàn)有發(fā)報系統(tǒng),表明采用雙鏈路設(shè)計的思路對提高業(yè)務(wù)保障能力、降低漏報風(fēng)險具有重要作用,這一結(jié)論支持了“結(jié)果表明,采用雙鏈路進行數(shù)據(jù)傳輸和調(diào)度,極大地提高了氣象區(qū)域自動網(wǎng)絡(luò)數(shù)據(jù)保障能力[15]”的觀點。
基于報文規(guī)則驗證的民航機場預(yù)報發(fā)報系統(tǒng)自開始運行以來,對報文驗證準(zhǔn)確率高,降低了預(yù)報員發(fā)報失誤率,由于采用雙鏈路進行發(fā)報,系統(tǒng)可靠性高,極大提高了預(yù)報業(yè)務(wù)保障能力,系統(tǒng)運行穩(wěn)定,操作簡單,得出的結(jié)論具體如下。
1)根據(jù)資料《民用航空行業(yè)氣象標(biāo)準(zhǔn)第2部分:預(yù)報》,將報文分成FC、FT、FCAMD、FCCNL、FTCOR、 FTAMD、 SPECI、 AIRMET、 SIGMET、GAMET等進行分類研究,分析各元素之間的邏輯關(guān)系,提取各類型報文驗證規(guī)則,報文規(guī)則對提高報文驗證準(zhǔn)確率起決定作用。
2)報文發(fā)送時采用雙鏈路,其中一條鏈路故障時仍能成功發(fā)送報文,提高了業(yè)務(wù)保障能力,雙鏈路是提高系統(tǒng)可靠性、保障數(shù)據(jù)傳輸?shù)闹匾蛩亍?/p>
3)從報文確認(rèn)方式來看,改變以往通過回報進行確認(rèn)的方式,直接從遠程數(shù)據(jù)庫檢索確定報文是否發(fā)送成功,確認(rèn)方式簡單有效,操作性和實用性強。
[1]寧貴財,康彩燕,陳東輝等.2005—2014年我國不利天氣條件下交通事故特征分析[J].干旱氣象,2016,34(5):753-762.
[2]王娜,王冀,王琦等.陜西冬季氣溫變化特征及其成因[J]. 干旱氣象,2016,34(4):604-609.
[3]中國民用航空局.中華人民共和國民用航空行業(yè)標(biāo)準(zhǔn)[M].北京:氣象出版社,2008:38-46.
[4]中國民用航空局.中華人民共和國民用航空行業(yè)標(biāo)準(zhǔn)[M].北京:氣象出版社,2008:18-26.
[5]畢心安.航空電信網(wǎng)建設(shè)簡論之一[J].中國民用航空,1994;18(20):26-31.
[6]畢心安.ITA2和IA5兩種國際電報編碼相互轉(zhuǎn)換的方法[J].空中交通管理,2009;20(12):30-31.
[7]曹懷春.AFTN電報自動處理系統(tǒng)研究[J].中國民用航空飛行學(xué)院,2011,30(4):33-37.
[8]李林奔.民航空中交通管理自動化系統(tǒng)的分析與設(shè)計[J].云南大學(xué)學(xué)報,2013,20(3):40-45.
[9]智俊平.中國民航AFTN報文解析方法探究[J].內(nèi)蒙古科技與經(jīng)濟,2011,23(2):51-55.
[10]米永勝.IBM Websphere MQ原理及在民航氣象數(shù)據(jù)庫中的應(yīng)用[J].中國氣象學(xué)會氣象通信與信息技術(shù)學(xué)術(shù)會,2012,31(4):63-67.
[11]趙普洋,劉敏.IBM WebSphere MQ技術(shù)在民航氣象數(shù)據(jù)庫系統(tǒng)中的應(yīng)用[J].計算機光盤軟件與應(yīng)用,2012,17(4):69-70.
[12]孫寧,丁艷麗.Websphere MQ在業(yè)務(wù)中的錯誤分析及解決方法[J].空中交通管理,2010;17(8):41-42.
[13]岳光.IBMWebsphere MQ的原理與應(yīng)用[J].計中國科技信息,2011(12):68-68.
[14]曹閃,張仁波.基于決策樹的民航氣象報文分類統(tǒng)計規(guī)則的研究與應(yīng)用[J].百度學(xué)術(shù),2016,16(12):47-53.
[15]魯莉炳,魯霞.區(qū)域自動氣象站單站數(shù)據(jù)遠程訪問流程及技術(shù)[J].電腦編程技巧與維護,2014,20(16):11-17.