1. 程式人生 > >IBM MB與 IBM MQ簡介

IBM MB與 IBM MQ簡介

今天聽IBM的工程師介紹了MQ和MB的特性,以及他們的區別與聯絡,覺得很通俗易懂,特此記錄,方便將來的初學者可以更快的把握這兩者的特點。

首先從概念上來說,MQ是訊息中介軟體,MB是ESB產品

MQ負責在兩個系統之間傳遞訊息,這兩個系統可以是異構的,處於不同硬體、不同作業系統、用不同語言編寫,只需要簡單的呼叫幾個MQ的API,就可以互相通訊,你不必考慮底層系統和網路的複雜性。MQ作為IBM的一個拳頭產品,雖然功能看上去很簡單,就是個訊息佇列,但他卻是IBM中介軟體的核心,也是相比其他廠商(比如BEA)的一個優勢。MQ不僅有很高的效能,而且對各種平臺的支援非常好,幾乎你能想到的硬體和作業系統平臺以及程式語言,MQ都有專門的API支援。

但MQ的功能僅限於訊息佇列,至於應用A發給應用B的訊息格式是怎樣的、能不能被應用B解析,MQ管不了,他只是盡力將訊息發到目的地(MQ能夠應付多種異常情況,例如網路阻塞、臨時中斷等等)。此外,如果應用的數目多了,那互相之間都要建立MQ連線,網路拓撲就成了蜘蛛網了(就好像是最初的電話系統)

因此,我們將網路的星型拓撲引入系統架構中,把一對一的MQ換成一箇中心節點,即ESB,MB(Websphere Message Broker)即是IBM的ESB產品

MB處於系統的中心,起到一個匯流排的作用,所有應用都直接連線到MB,而不是應用之間直接互聯,這樣的好處不言而喻,可以極大的降低應用之間的耦合性。由此引出MB的兩大核心功能:訊息路由和資料轉換
因為各個應用都插入到MB上,所以應用A只管把訊息丟給MB,MB自動根據訊息欄位、以及業務邏輯,判斷要把訊息交給誰,這就像路由器一樣,根據資料包的頭把包路由到相應地址。MB內部的業務邏輯由開發人員設定,當然利用MB的Toolkit,編寫業務邏輯也非常簡單:拖一些節點,用箭頭把它們連起來,就像是畫流程圖一樣,非常形象簡單。再用MB的指令碼語言(類似sql的指令碼)實現邏輯判斷,通俗地說就是判斷要走哪個邏輯分支(if...else.....)。

不過各個應用是怎樣與MB連線的呢?MB提供了三種方式:MQ、檔案和web service

MQ方式即是利用MQ將MB與應用互聯;檔案方式則是指定某個目錄,MB會自動監視那個檔案目錄,一旦檔案有改變則認為是新的訊息到來,MB自動讀取指定檔案的內容;而web service就不用解釋了,直接利用web service進行通訊。MB支援這些互聯方式也是為了最大化相容性,特別是對於那些遺留系統或是不支援主流通訊方式的系統

最後說說一個比較偏門的ESB產品:websphere ESB。聽過的人可能不多,因為IBM在中國推廣的比較少,這個WESB很像是MB的精簡版,只支援JMS、WS等少數幾種J2EE的通訊方式,所以是為J2EE專門準備的。不像MB,支援數十種平臺和通訊方式,例如FTP,甚至很多你根本沒聽說過的很古老的通訊協議。這兩者的效能相差不少,價格也有三四倍的差距。更要命的是,原先在WESB上開發的東西,是不能遷移到MB使用的,IBM似乎鐵了心要狠狠宰我們,唯一的方法是再買一個MB,然後用MQ把WESB和MB連線起來,各跑各的

漏了一個DataPower,這東西我只是略有了解,它的賣點在於硬體支援XML,所以效能比較好,此外還支援一下web service安全方面的東東。因此,WESB是最小功能集,而MB與datapower功能上有一定重疊,如XML 

最後宣告,我不是在給IBM打廣告
--------------------- 
作者:wangchengsi 
來源:CSDN 
原文:https://blog.csdn.net/wangchengsi/article/details/2120316 
版權宣告:本文為博主原創文章,轉載請附上博文連結!