摘 要:IBM WebSphere MQ是跨平臺的消息傳輸通信中間件,通過消息隊列的存儲轉發機制,實現各類異構系統之間的數據傳輸。AIX是IBM開發的類UNIX操作系統,性能穩定。文章基于AIX系統設計并實現了WebSphere MQ的傳輸方案。
關鍵詞:AIX;MQ;異構系統;數據傳輸
1 背景及意義
隨著深圳航空運輸業的快速發展,深圳空管氣象部門與深圳機場以及各航空公司之間的數據交換需求日益增多。如何保證航空氣象資料的實時傳輸尤為關鍵。IBM的WebSphere MQ是跨平臺跨網絡的提供消息傳輸功能的通信中間件,是目前應用最多的消息中間件產品[1][2]。AIX系統主要應用在IBM RISC 6000系列小型機上[3],性能穩定。我們基于AIX設計并實現了空管氣象部門與各航空公司的MQ數據傳輸系統。本系統自運行以來非常穩定,為各航空公司提供了可靠及時的航空氣象資料。
2 MQ方案設計
IBM WebSphere MQ實際上是基于消息隊列實現傳輸。應用程序通過連接到MQ以發送或接收消息,如果連接暫時不可用,MQ會將消息排隊,并在連接重新聯機時將其轉發。MQ中主要涉及三個概念:隊列管理器、通道和隊列。隊列管理器是消息隊列的管理者,用來維護和管理消息隊列。隊列管理器確保消息可以發送至正確的隊列或傳遞至另一個隊列管理器;通道是兩個隊列管理器之間的單向通信鏈路。MQ 使用通道在隊列管理器之間傳送消息。要雙向發送消息必須定義每個方向的通道;隊列是存放消息的容器,隊列存儲消息直到它被應用程序處理。
MQ的隊列分為4種,分別是本地隊列、傳輸隊列、遠程隊列和死信隊列:(1)本地隊列是一個物理上位于本地
隊列管理器中的隊列。應用程序可以放消息到本地隊列,也可以從本地隊列取消息;(2)傳輸隊列是特殊類型的本
地隊列。如果需發送消息到遠程隊列管理器上的隊列,消息先被儲存在傳輸隊列,直到遠程隊列管理器上的隊列可用;(3)遠程隊列實質上指向遠程隊列管理器,程序可以向遠程隊列發送消息,但不能從遠程隊列中去讀取消息;(4)死信隊列是存儲無法發送到其正確目的地消息的隊列,也就是放置發送失敗的消息。
限于篇幅,只選取兩個航空公司(東海航空和深圳航空)來闡述MQ的設計方案。我們需要定義各傳輸接收方的隊列管理器、隊列以及它們之間相互傳輸的通道。這里先定義各傳輸接收方的四字代碼,以便定義MQ對象時使用:空管氣象部門KGQX、東海航空DHHK、深圳航空SZHK。因此所定義的三個隊列管理器分別是KGQX、DHHK和SZHK。
創建并啟動隊列管理器后,應用程序和其他隊列管理器可以連接到它來發送和接收消息。MQ通道通過網絡將一個隊列管理器連接到另一個隊列管理器。MQ通道命名設計為本隊列管理器名.TO.對方隊列管理器名,例如空管氣象到東海航空的通道名為KGQX.TO.DHHK。由于傳輸的氣象資料包括報文和產品(包括圖片等各種非報文格式資料),我們設計本地隊列LOCAL.TXT存放報文資料,本地隊列LOCAL.PRD存放產品資料。傳輸隊列使用對方隊列管理器命名,因為傳輸隊列存儲的數據是要發送到對方隊列管理器。假如一份報文需要通過隊列管理器KGQX傳到DHHK,那么消息先被存儲到本地隊列LOCAL.TXT,目標是遠程隊列TO.DHHK.TXT。然后到傳輸隊列DHHK,通過通道KGQX.TO.DHHK到達隊列管理器DHHK。氣象部門與深圳航空和東海航空的MQ設計如圖1所示。
3 MQ方案實現
本章首先在AIX系統上創建并配置好MQ,然后通過腳本定義好MQ各對象。
3.1 創建MQ文件系統及賬戶
首先在AIX系統上通過smitty創建相應的文件系統及MQ賬戶。
(1)運行smitty crfs命令,選擇第一項Add an Enhanc
ed Journaled File System。在彈出界面中,選擇datavg,在Numb of units中選擇5120,即創建5120MB大小的文件系統。在MOUNT POINT一項選擇/usr/mqm,即掛載點為/usr/mqm;在Mount AUTOMATICALLY at system restart一項選擇yes,即開機自動掛載文件系統。如圖2所示。
(2)同樣的方法創建/var/mqm文件系統,容量也設置為5G。
(3)執行mount /usr/mqm和mount /var/mqm命令,將
推薦閱讀:電氣方面的科技論文怎么公開發表
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >