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