1、中間件web
中間件處於應用軟件和系統軟件之間,是一種以本身的複雜換取企業應用簡單化的可複用的基礎軟件。
在中間件產生之前,應用軟件直接使用操做系統、網絡協議和數據庫等開發,開發者不得不面臨許多很棘手的問題,如操做系統的多樣性,繁雜的網絡程序設計和管理,複雜多變的網絡環境,數據分散處理帶來的不一致性,性能和效率、安全問題等等。這些問題與用戶的業務沒有直接關係,但又必須解決,耗費了大量有限的時間和精力。因而,有人提出將應用軟件所要面臨的共性問題進行提煉、抽象,在操做系統之上再造成一個可複用的部分,供成千上萬的應用軟件重複使用。這一技術思想最終造成爲了中間件產品。
從技術上講,中間件是介於應用系統和系統軟件之間的一類軟件,它使用系統軟件所提供的基礎服務(功能),銜接網絡上應用系統的各個部分或不一樣的應用,可以達到資源共享、功能共享的目的。數據庫
典型的中間件:
應用服務器-tomcat、IBM Websphere、Bea weblogic、Jboss
對象請求代理(ORB)-Java IIop、Java RMI,
消息中間件-WebSphere MQ 、Mirosoft MSMQ、BEA MessageQ、JBossMQtomcat
2、WebSphere MQ 概念安全
1. 一種中間件產品,實現了消息隊列框架,介於應用和操做系統之間,相關應用的基礎平臺。服務器
2. 以實現應用系統在異構的操做系統平臺之間穩定可靠地傳遞,交換重要的數據和信息,確保消息不丟失不復傳。網絡
3. 提供了強大、 安全、 穩定的消息傳遞主幹,可幫助搭建企業服務總線(ESB)的基礎傳輸層。數據結構
4. 實現 MQI(Message Queue Interface) 接口,實現異步通訊。
消息隊列接口爲程序提供了一種異步通訊方式。一個程序以一個隊列做爲中轉與另外一個程序相互通訊,這個隊列相對於該程序而言既但是本地的也能夠是遠程的。當程序A須要和程序B通訊時,A只需PUT一條消息到一個和B相聯繫的隊列上,程序A而後能夠幹別的事。它彷佛感受不到通訊的發生,通訊以及對通訊錯誤的恢復是由隊列管理完成的。框架
3、WebSphere MQ 的關鍵對象異步
隊列管理器 - 裝載和管理消息、隊列、通道、進程、主題、偵聽器、服務、名稱列表、認證信息等MQ對象的容器;隊列管理器負責維護它所擁有的隊列,以及將它接收到的全部消息存儲到相應的隊列。
隊列管理器是WebSphere MQ中的一個基本的獨立的執行單元。一臺MQ服務器能夠運行一個或多個隊列管理器。任何須要訪問WebSphere MQ提供的服務的應用程序都必須先和隊列管理器相連。jsp
消息 - 數據的傳輸載體,與應用系統交互的數據均被包裝成消息。
MQ 消息由兩個部分:
應用程序數據(應用程序數據的內容和結構由使用它的應用程序定義);
消息描述符(消息描述符標識消息,幷包含其它控制信息,如消息類型和消息的優先級)。
消息的類型:
請求消息 Request message:請求消息須要應答。從客戶端發往服務器的查詢和更新信息每每是請求消息。請求消息應該包含回覆消息的路由信息,即回覆消息發往什麼地方。
回覆消息 Reply message:回覆消息是對請求消息的迴應。請求消息中的信息決定迴應消息的目的地。處理請求和迴應的應用程序控制着消息間的關聯,這種關聯和隊列管理器沒有關係。消息自身帶有足夠的信息供應用程序實現這種關聯。
報文消息 Datagram message:數據報消息是不須要回復的消息,報文消息只是一次單向的信息傳送。
報告消息 Report message。:報告消息用於對一些系統故障的響應。有些報告消息是由應用程序建立的,有些報告消息是由隊列管理器建立的。
隊列 - 存儲消息的數據結構。
按功能劃分,包括:本地隊列(local queue)、遠程隊列(remote queue)、傳輸隊列(Transmission queue)、啓動隊列(init queue)、死信隊列(Dead letter queue)、命令隊列 (command queue)、回覆隊列(reply queue)、別名隊列(alias queue)、動態隊列(dynamic queue)、模板隊列(template queue)等。
MQ的大部分功能經過隊列功能體現,所以,弄清楚這些隊列的概念和用法很重要。
通道 - 消息的通訊/傳輸鏈路。
MQ 包括種不一樣類型的通道:
消息通道:單向通訊鏈路,鏈接兩個隊列管理器。消息通道用於隊列管理器之間傳送消息。要雙向發送消息,您必須定義每一個方向的通道。
MQI 通道:雙向通訊鏈路,同步傳輸,鏈接MQI 客戶機和服務器的隊列管理器。MQI 通道用於MQI 客戶機和隊列管理器之間傳送 MQI 調用和響應,也是MQ資源管理器鏈接程隊列管理器的通道。
消息通道分爲:發送方(Sender)、接收方(Receiver)、服務器(Server)、請求器(Requester)、羣集發送(Cluster sender)、羣集接收(Cluster receiver)等端類型。
對於每一個消息通道,必須定義通道兩端的消息通道類型;也就是說,消息通道是相互兼容的兩端通道類型的組合,才能實現單向消息通訊。
可以使用下列通道兩端定義的組合:
發送方 - 接收方
服務器 - 接收方
請求方 - 服務器
請求方 - 發送方(回調)
集羣發送方 - 集羣接收方
例如,若要實現最簡單的消息通訊,隊列管理器A發送一條消息到隊列管理器B,則使用發送方 - 接收方組合,須要在B端定義接收方通道,定義本地隊列LQB,啓用偵聽器監聽;在A端定義發送方通道,定義遠程隊列映射到LQB,定義通訊隊列,並啓動發送方通道,而後向遠程隊列執行MQ PUT操做,放入消息,完成消息發送;而後,B端就能夠經過 MQ GET操做獲取消息。
MQI通道分爲:服務器鏈接(指MQI通道的服務器端,代碼爲SVRCONN)、客戶機鏈接(指MQI通道的客戶機端,代碼爲CLNTCONN)。
若要創建客戶端和服務端的鏈接,須在服務端定義服務器鏈接通道;
示例MQSC代碼:DEF CHL(CHL.SERV) CHLTYPE(SVRCONN) TRPTYPE(TCP);
同時在客戶端配置環境變量: 如 SET MQSERVER=CHL.SERV/TCP/192.168.222.132 (1414),便可創建鏈接。
每一個通道定義都屬於特定隊列管理器,隊列管理器可具備同一類型或不一樣類型的幾個通道。通道的每一端是程序消息通道代理程序(MCA)。在通道的一端,調用方MCA從傳輸隊列取出消息並經過通道發送它們。在通道的另外一端,響應方MCA接收這些消息並將它們傳遞至遠程隊列管理器。
調用方 MCA 可與發送方通道、服務器通道或請求方通道關聯。響應方 MCA 可與消息通道的任何類型關聯。
進程 - 定義和標識響應 WebSphere MQ 隊列管理器上的觸發器事件的應用程序;進程與MQ的觸發器機制相關;指MQ服務器的一個對象,注意和操做系統的進程概念區分。
偵聽器 - 爲MQ服務器偵聽某個TCP 端口。對於某個MQ服務器,當容許客戶端或者遠程的隊列管理器經過通道鏈接到本地的隊列管理器時,必須啓動偵聽器,監聽本地的某個TCP端口,默認端口號爲1414。
以上爲IBM WebSphere MQ 的入門簡介,後續將談到MQ Server 和 Client的安裝和配置。
有關MQ的詳細資料,可參考IBM的官方幫助文檔,最有效和權威的學習資料:
MQ V7.0 在線幫助文檔
MQ V7.5 在線幫助文檔: