蔡永福等



摘 要:為了應對航空運輸高速發(fā)展態(tài)勢給我們空管帶來的挑戰(zhàn),空管系統(tǒng)的建設方向應隨著業(yè)務的發(fā)展及業(yè)務模式的改變提出前瞻性的建設規(guī)劃。就空管信息系統(tǒng)建設而言,大數(shù)據(jù)集中處理、信息協(xié)同共享、分布式構架已經是建設的趨勢。針對空管系統(tǒng)結構的合理規(guī)劃,架構設計是重中之重,在保證安全性、穩(wěn)定性的前提下還需考慮到整體系統(tǒng)可擴展性、前瞻性;本文使用IBM Websphere MQ V7.0、MB V7.0消息中間件來有效的構建整體系統(tǒng)的架構平臺,并通過示范應用有效的驗證了該方案的可行性,符合未來空管系統(tǒng)建設發(fā)展的要求,同時也為其他類似系統(tǒng)的建設提供了一種可行的解決方案。
關鍵詞:MQ;MB;中間件;發(fā)布訂閱;路由
中圖分類號:TM923.5 文獻標識碼:A
1 引言(Introduction)
通過近幾年對空管系統(tǒng)的研發(fā)和投產的實踐來看,實際的管制用戶需求不再局限于傳統(tǒng)的航班計劃、動態(tài)、統(tǒng)計等信息的獲取上,而是強調圍繞航班對象為目標、涉及整個航班生命周期管理中的各類信息的產生和使用,這對空管而言是一個全新的課題。
在當前IT水平高速發(fā)展的形式下,各個領域的信息化建設都是朝著大型的、集約式的、平臺化的模式發(fā)展,建立集中數(shù)據(jù)處理中心,為各種專業(yè)化的生產系統(tǒng)提供數(shù)據(jù)服務。
未來空管系統(tǒng)的建設方向應隨著業(yè)務的發(fā)展及業(yè)務模式的改變提出前瞻性的建設規(guī)劃,而不是一味被動式進行系統(tǒng)改造、升級及新建,最后形成的局面將是用戶和維護人員面前一堆屏顯、系統(tǒng)與系統(tǒng)之間盤枝錯綜、系統(tǒng)本身也是一大堆補丁。國外的民航系統(tǒng)的建設和實踐及國內近期的建設理念已經給了我們很大的參考和思路,并且當前的業(yè)務發(fā)展方向(未來10—20年)也是可預見的,就信息系統(tǒng)建設而言,數(shù)據(jù)大集中處理,信息協(xié)同共享、分布式部署應用已經是建設的趨勢。
針對空管系統(tǒng)結構的合理規(guī)劃,架構設計是重中之重,在保證安全性、穩(wěn)定性的前提下還需考慮到整體系統(tǒng)可擴展性、前瞻性;本文使用IBM Websphere MQ V7.0、MB V7.0消息中間件來有效的構建整體系統(tǒng)的架構平臺,使得系統(tǒng)升級靈活,兼容新老系統(tǒng)過渡,并使用基于內容的消息路由,提供發(fā)布訂閱通信模式以滿足動態(tài)需求,提供點對點通信模式滿足高可用,既能滿足強時序性又能提供分布式,也提供負載均衡模式,以適應未來空管系統(tǒng)的構建和發(fā)展。
2 系統(tǒng)平臺需要解決的問題(To solve the problem
of system platform)
伴隨著世界經濟的發(fā)展,國際航空運輸量在21世紀初有了大幅度的增加,以信息、通信技術為代表的新科技的廣泛應用,使空中交通運輸和世界經濟領域的其他活動一起形成了快速全球化的發(fā)展態(tài)勢。國際民航組織(ICAO)提出“全球空管運行”的新概念,其主要特點是建立共享、交互集成平臺,使民航運輸參與各方在安全的前提下,提升系統(tǒng)績效。在此概念基礎上,世界許多國家依據(jù)自身情況和未來預期開始規(guī)劃和建立新一代空中交通管理系統(tǒng),以適應新趨勢的發(fā)展要求。為了應對航空運輸高速發(fā)展態(tài)勢給我們空管帶來的全面挑戰(zhàn),除了全面提升傳統(tǒng)的保障能力外,還必須加快新技術、新系統(tǒng)的研究和應用,同時還必須逐步把飛行信息服務功能拓展和延伸到各航空相關保障和服務單位。因此,在信息化系統(tǒng)變遷的過程中,傳統(tǒng)的系統(tǒng)設計架構已難以適應空管大型運行系統(tǒng)的設計要求,新的系統(tǒng)架構應解決以下問題:
(1)兼容新老系統(tǒng)過渡,系統(tǒng)升級靈活
把未來的新信息系統(tǒng)有機地包容到現(xiàn)有系統(tǒng)中,使現(xiàn)在和未來能自然而有機地結合在一起,實現(xiàn)新老系統(tǒng)的無縫過渡。
(2)可靠的、標準化的通信交互模式
空管的系統(tǒng)種類繁多如電報、雷達、氣象、情報、飛行計劃等,不同系統(tǒng)的信息交互格式、方式差異很大,無法進行有機地整合,新系統(tǒng)架構平臺應提供一套統(tǒng)一、完善、準確的數(shù)據(jù)交互規(guī)范,并從可靠性、安全性、冗余性等方面充分考慮。
(3)減少系統(tǒng)之間的復雜度
面對現(xiàn)有系統(tǒng)“點對點”式的系統(tǒng)架構,若想要增加或移除一些應用功能,真可謂“牽一發(fā)動全身”,舉步維艱,所以新系統(tǒng)架構就需要具備松耦合,靈活擴展的特點,減少整體系統(tǒng)的復雜度。
(4)使系統(tǒng)之間交互模式由數(shù)據(jù)共享向服務共享轉化
類似于硬件的虛擬化概念,其基礎無非就是設備群、數(shù)據(jù)群、服務群等一層層向上,最終用戶并不知道數(shù)據(jù)源在哪里、那臺設備正在為其服務、那個應用服務正在相應他的操作。系統(tǒng)架構平臺上的每個子系統(tǒng)或應用模塊僅將業(yè)務專業(yè)部分的功能做專做精,通過服務的訂閱能夠消費其他系統(tǒng)應用功能服務,降低開發(fā)成本和資源。
結合以上問題我們希望能夠利用一種成熟、有效的中間件技術,加以二次開發(fā),根據(jù)空管業(yè)務實際特點,構建一套科學、合理的系統(tǒng)架構平臺設計方案,本文選取了IBM Websphere MQ V7.0、MB V7.0消息中間件來有效的構建整體系統(tǒng)的架構平臺,并通過實踐應用以驗證其可行性,為空管系統(tǒng)的建設和發(fā)展提供技術依據(jù)和服務。
3 WebsphereMQ MB的概述(Overview of
WebsphereMQ MB)
MQ(Message Queue)是IBM消息中間件的一款拳頭產品,目的是使得任意兩個分布式進程之間能夠異步可靠的進行消息傳輸。MQ是一種以自己的復雜來換取企業(yè)應用簡單化的基礎平臺軟件。MQ能夠支持目前絕大多數(shù)的操作系統(tǒng),Unix、Linux、Windows等,也提供豐富的編程接口(API)包括VB、C、C++、C#、Java、JMS等。MQ提供了基于消息隊列的存儲轉發(fā)機制,在7.0版本之后也提供了較為完善的基于主題的發(fā)布訂閱機制[1]。
MB(Message Broker)是在MQ的基礎上發(fā)展出來的企業(yè)服務總線,其能完成各系統(tǒng)之間的聯(lián)通性,提供方便的格式轉換,具備可配置可編程的智能路由,且能支持基于內容的發(fā)布訂閱機制。MB安裝部署簡易,在開發(fā)部署上提供友好的圖形化界面,通過拖放標準化組件能夠快速編程,使用ESQL能夠完成簡易的邏輯,也可同使用Java來完成復雜邏輯編程。MB支持廣泛的通信協(xié)議,包括MQ、JMS、HTTP、WebServices;支持廣泛的數(shù)據(jù)格式例如XML、SOAP、CSV、Binary等;無縫集成標準商業(yè)數(shù)據(jù)庫Oracle、DB2、SQL Server等[2]。
如果把MQ比作網(wǎng)線,那么MB就相當于路由器,除了有MQ端口之外,還有各種各樣的其他接入端口。使用MQ這種業(yè)界成熟的消息中間件產品,和MB這樣領先的企業(yè)服務總線[3],使得我們能快速的解決信息孤島的問題。
MQ支持目前主流的兩種消息方式,既點對點通信(PTP)與發(fā)布訂閱通信(Pub/Sub)[4]。
4 MQ/MB在空管系統(tǒng)中的應用(Application of
MQ/MB in air traffic control system)
航班運行協(xié)同決策(CDM)系統(tǒng)是民航發(fā)展背景下應運而生的新生空管信息系統(tǒng),其是基于資源共享和信息交互的多主體(空管、機場、航空公司等)聯(lián)合協(xié)同運行的理念,用于創(chuàng)造透明、高效的航班運行環(huán)境,是科學管理和決策航班機場放行,提高航班運行正常率的有效技術手段。在該系統(tǒng)中我們將基于MQMB平臺的搭建新的系統(tǒng)架構,作為整個系統(tǒng)的基石。
4.1 基于MQ的設計與應用
4.1.1 模型設計
新建協(xié)同決策集成平臺(MQ: QM_CDM_MEP_01)用于連接各機場,各航空公司,還有現(xiàn)有的空管信息集成平臺(MQ: MQ_ATC_MEP_01),關系如圖1所示。
針對每個系統(tǒng)為其創(chuàng)建兩個隊列,一個是輸入隊列,一個是輸出隊列,隊列的命名規(guī)則為ATC/APT/CMP.XXXX.IN.LQ/RQ/TQ與ATC/APT/CMP.XXXX.OUT.LQ/RQ/TQ,ATC開頭表示空管,APT開頭的表示機場,CMP開頭的表示航空公司,XXXX表示空管系統(tǒng)名稱、機場代碼、航空公司代碼,IN表示輸入隊列,OUT表示輸出隊列,LQ表示本地隊列,RQ表示遠程隊列,TQ表示傳輸隊列。
而協(xié)同決策平臺與現(xiàn)有的空管信息集成平臺之間通過建立發(fā)送方通道與接收方通道來連通。通過遠程隊列訪問對方的本地隊列,其中遠程隊列要訪問對端的本地隊列需要先通過傳輸隊列。而傳輸隊列又通過自己的發(fā)送方通道將消息發(fā)送到遠端對應的接收方通道。
首先創(chuàng)建一個隊列管理器,命名為QM_CDM_MEP_01。
以下給出部分創(chuàng)建命令。
在CMD控制臺上,使用命令RUNMQSC QM_CDM_MEP_01連接該隊列管理器。
#創(chuàng)建本地隊列
DEFINE QLOCAL(APT.ZSPD.IN.LQ)
DEFINE QLOCAL(APT.ZSPD.OUT.LQ)
……
#創(chuàng)建傳輸隊列
DEFINE QLOCAL(ATC.CDM.OUT.TQ)USAGE(XMITQ)TRIGDATA(TO.QM_ATC_MEP_01)INITQ(SYSTEM.CHANNEL.INITQ)
#創(chuàng)建遠程隊列
DEFINE QREMOTE(ATC.CDM.OUT.RQ)RNAME(CDM.MEP.LQ) RQMNAME(QM_ATC_MEP_01)XMITQ(ATC.CDM.OUT.TQ)
#創(chuàng)建服務器連接通道
DEFINE CHANNEL(SVRCONN)CHLTYPE(SVRCONN)
#創(chuàng)建發(fā)送方通道
DEFINE CHANNEL(TO.QM_ATC_MEP_01)CHLTYPE(SDR)CONNAME(‘QM_ATC_MEP_01的IP地址(偵聽端口號))XMITQ(ATC.CDM.OUT.TQ)
#創(chuàng)建接收方通道
DEFINE CHANNEL(TO.QM_CDM_MEP_01)CHLTYPE(RCVR)
在空管信息集成平臺中也需創(chuàng)建對應的發(fā)送方通道與接收方通道(方法同上)
4.1.2 驗證測試
(1)通信測試
測試兩個隊列管理器之間的通信。先啟動QM_CDM_MEP_01中的發(fā)送方通道TO.QM_ATC_MEP_01,然后在ATC_CDM_OUT_RQ中手動放入測試消息,放入成功后,在QM.ATC_MEP_01隊列管理器中的CDM.MEP.LQ隊列中就能看到剛才放入的測試信息。
(2)性能測試
模擬空管系統(tǒng)、機場系統(tǒng)和航空公司的通信,模擬的消息大小為4kB—8kB。
場景一:航空公司向空管提起請求航班起飛時間,空管系統(tǒng)回復航班起飛時間。
場景二:機場系統(tǒng)實時向空管系統(tǒng)提供航班準備情況,停機位情況。
場景三:空管系統(tǒng)實時發(fā)布限制情況。不間斷模擬收發(fā)7*24小時。
測試結果顯示MQ中平均每秒消息流量能夠達到5000多條,如圖3所示是MQ隊列管理器所在服務器在某一時刻的Windows任務管理器的網(wǎng)絡流量截圖。該消息傳輸性能足以滿足信息交換要求。
4.1.3 小結
本方案不僅為空管、機場和航空公司間的信息集成提供了切實可行的解決方案,也演示了在MQ中如何創(chuàng)建隊列管理器、本地\傳輸\遠程隊列、服務器連接\發(fā)送方\接收方通道,并通過實際測試證明了該方案是一套高性能、超穩(wěn)定能夠滿足生產系統(tǒng)7*24小時持續(xù)運行的信息集成平臺,從集成平臺架構看具備松耦合,靈活擴展的特點,減少整體系統(tǒng)的復雜度,并提供了統(tǒng)一的數(shù)據(jù)標準。
4.2 基于MB的設計與應用
4.2.1 模型設計
我們重點使用MB基于消息內容的路由、發(fā)布訂閱機制,模擬三大系統(tǒng)在空管內部的消息交互,主要包括流量系統(tǒng)、塔臺系統(tǒng)、CDM平臺系統(tǒng)。對于空管信息集成平臺而言有三個輸入隊列FLOW.IN.LQ,CDM.MEP.LQ,TOWER.IN.LQ;每個系統(tǒng)有各自的接收隊列FLOW.OUT.LQ,ATC.CDM.RQ,TWR.XXXX.OUT.LQ,其中XXXX為塔臺所在機場的ICAO代碼。接收隊列所訂閱的主題詳見表1。
首先我們創(chuàng)建隊列管理器QM_ATC_MEP_01,并在其中創(chuàng)建隊列與預訂。預訂是在MQ7.0版本才新增的概念,是指預先訂閱某種主題(或主題字符串)的消息,將所訂閱到的消息放到一個目的隊列中。
系統(tǒng)間傳輸?shù)南⒌母袷绞褂肵ML,為了便于讀者理解,在此我們簡明定義以下消息格式,發(fā)送方在發(fā)送的時候需要在DST字段填入目的系統(tǒng)的名字。
下面我們使用MB來完成基于內容的消息路由,路由的依據(jù)就是消息中的DST字段。
(1)創(chuàng)建消息流項目
打開MB開發(fā)工具Toolkit,在選擇菜單欄中的文件→新建→消息流項目,新建消息流項目的名稱為ATC_MEP。
(2)創(chuàng)建消息流
選中已建好的消息流項目ATC_MEP,右鍵選擇新建消息流,新建的消息流名稱為ROUTE。
首先我們?yōu)橄⒘鬟x擇輸入隊列。在右側的選用板中的WebSphereMQ欄目中拖入MQInput控件,命名FLOW.IN.LQ。雙擊MQInput控件FLOW.IN.LQ,在基本一欄中的隊列名稱中輸入FLOW.IN.LQ,在輸入消息解析一欄中的消息域中選擇XMLNSC。用同樣的方法處理CDM.MEP.LQ和TOWER.IN.LQ。
下一步選擇消息處理組件和消息發(fā)布組件。變換一欄中拖入Compute組件,在其中可以使用ESQL語言用來進行簡單的編程;在路由一欄中拖入Publication組件,該組件是用來發(fā)布消息到某個特定主題的。
使用連線工具將各個組件連接起來,連接方式如圖4所示。
(3)創(chuàng)建代理及發(fā)布消息流
在Toolkit左下角Brokers區(qū)域中選擇新建本地代理,輸入代理名稱MB_ATC_MEP_01,隊列管理器名稱QM_ATC_MEP_01,操作系統(tǒng)用戶名及密碼。在創(chuàng)建代理時需要注意用戶名不要超過12個字節(jié),否則會出現(xiàn)發(fā)布失敗的錯誤。
創(chuàng)建代理成功之后,將消息流ROUTE拖放到代理MB_ATC_MEP_01下的默認執(zhí)行組default中,就完成了消息流的發(fā)布。此時可以看到在隊列管理器QM_ATC_MEP_01下的三個輸入隊列FLOW.IN.LQ、TOWER.IN.LQ、CDM.MEP.LQ的打開輸入計數(shù)變?yōu)?,表示此時MB已連接這三個隊列,從其中取消息。
4.2.2 驗證測試
在那三個測試隊列中放入測試消息,可以在TWR.ZSPD.OUT.LQ隊列中發(fā)現(xiàn)該消息,說明消息路由成功。
測試消息:
在多數(shù)中間件中如果使用了發(fā)布訂閱模型,那么消息的消費者希望做負載均衡往往效果不盡如人意。例如浦東塔臺的處理程序要是簡單的訂閱了ZSPD的主題,以后隨著浦東的航班量不斷地增加,那么原先的處理程序要是出現(xiàn)性能瓶頸想通過多部署一個程序來擴容就有問題了。首先這個新加的程序為了收到同樣的數(shù)據(jù)也需要訂閱ZSPD的主題,那么同樣一條發(fā)送給浦東塔臺的數(shù)據(jù)就會同時發(fā)送給了這兩個程序,這樣一來每個程序處理的量并沒有減少,沒法起到負載均衡的作用。而我們所做的設計剛好能夠解決這類問題,就是利用MQ自身的訂閱功能,將訂閱到的消息先存放的隊列里面,處理程序直接從隊列中取數(shù)據(jù)處理,根據(jù)PTP模型的特性,多個程序從隊列中消費數(shù)據(jù),第一個程序取走后第二個程序就收不到了,假設浦東塔臺起了N個處理程序,那么每個程序就只處理了1/N的消息量,快速穩(wěn)定地實現(xiàn)了處理程序的負載均衡。
4.2.3 小結
該設計方案有以下三大明顯優(yōu)勢。
(1)便捷的負載均衡。因為各個塔臺系統(tǒng)需要向流量系統(tǒng)提交請求,導致流量系統(tǒng)原先處理程序處理量巨大,我們可以在流量系統(tǒng)的接收隊列上起多份相同的程序,以起到負載均衡的作用。
(2)動態(tài)增加刪除預訂。如果浦東塔臺測試系統(tǒng)希望收到與正式系統(tǒng)一致的數(shù)據(jù),以滿足業(yè)務測試,在以前則需要去修改我們的路由代碼,讓其多發(fā)一份數(shù)據(jù)給測試環(huán)境,并重新部署,而現(xiàn)在只需要在MQ的預訂中新增一條主題ZSPD到隊列TWR.ZSPD.TEST.OUT.LQ的預訂即可,測試完成后直接刪除該預訂,不會對其他系統(tǒng)造成任何影響。
(3)快速集成新系統(tǒng)。如果現(xiàn)在有新的一個塔臺需要加入到該空管信息集成平臺中,那么只需新建一個隊列,新增一個預訂即可,無需在平臺上做任何修改。
5 結論(Conclusion)
本文闡述了MQ、MB的核心概念,以民航空管信息系統(tǒng)建設為背景,使用兩種不同的方式展現(xiàn)了多系統(tǒng)跨平臺跨語言的信息集成。通過基于MQ/MB中間件進行系統(tǒng)構架平臺的設計和應用,有效的驗證了該方案的可行性,并符合未來空管系統(tǒng)建設發(fā)展的要求,同時也為其他類似實時運行系統(tǒng)的建設提供了一種可行的解決方案。
參考文獻(References)
[1] 陳宇翔.精通WebSphere MQ[M].合肥:安徽科學技術出版社,
2004:1-105.
[2] 陳宇翔.精通Websphere Message Broker[M].北京:水利水電出
版社,2007:1-400.
[3] IBM公司.Connecting Your Business Using WebSphere Message
Broker V7 as an ESB[M].2010:1-536.
[4] 許駿,柳泉波,李玉順.面向服務的網(wǎng)格計算:新型分布式計算
體系與中間件[M].北京:科學出版社,2009:1-340.
作者簡介:
蔡永福(1985-),男,本科,助理工程師.研究領域:航空計算
機信息管理.
陳曉建(1966-),男,碩士,高級工程師.研究領域:航空計算
機信息管理.
曹燁琇(1983-),女,本科,工程師.研究領域:航空計算機信
息管理.