在本文中,ESB相關技術概念和術語。其餘須要瞭解的入門的基礎知識,並介紹了一些初步的瞭解ESB產品。由於它是一個新的ESB。將本身的學習內容與過程,記錄下來!web
願在這裏與你們分享一下,共同進步與提升!sql
【轉載使用,請註明出處:http://blog.csdn.net/mahoking】數據庫
企業應用集成(Enterprise Application Integration):是完畢在組織內、外的各類異構系統、應用和數據源之間共享、交換信息、協做的途徑。方法學,標準和技術。
所鏈接的應用包含各類電子商務系統,企業資源規劃系統,客戶關係管理系統。供應鏈管理系統。辦公本身主動化系統,數據庫系統。數據倉庫等。EAI的原則是集成多個系統並保證各個系統互不干擾。
編程
企業服務總線(Enterprise Service Bus):由中間件基礎設施產品技術實現的、經過事件驅動和基於xml消息引擎。爲複雜的面向服務的架構提供軟件架構的構造物。網絡
企業服務總線提供可靠消息傳輸。服務接入。協議轉換,數據格式轉換。基於內容的路由等功能,屏蔽了服務的物理位置,協議和數據格式。
架構
消息隊列(Message Queue):是進行通訊的中間件產品。IBM的這個產品叫MQSeries,現在又叫WebShpere MQ。微軟也有產品叫MSMQ,但是微軟的產品有平臺的依賴性,大家都懂得!編程語言
(.net)而IBM這方面作得很是不錯。多數操做系統下的版本號都有。性能
MB即WebSphere_Message_Broker。IBM的ESB(Enterprise Service Bus企業服務總線)產品。學習
MQ是消息的中間件,MB是ESB產品。spa
MQ負責在兩個系統之間傳遞消息。這兩個系統可以是異構的。處於不一樣硬件、不一樣操做系統、用不一樣語言編寫,僅僅需要簡單的調用幾個MQ的API。就可以互相通信,你沒必要考慮底層系統和網絡的複雜性。
MQ做爲IBM的一個拳頭產品。儘管功能看上去很是easy。就是個消息隊列,但他倒是IBM中間件的核心,也是相比其它廠商(比方BEA)的一個優點。
MQ不只有很是高的性能,而且對各類平臺的支持很是好,差點兒你能想到的硬件和操做系統平臺以及編程語言,MQ都有專門的API支持。
但MQ的功能僅限於消息隊列。至於應用A發給應用B的消息格式是如何的、能不能被應用B解析,MQ管不了。他僅僅是盡力將消息發到目的地(MQ能夠應付多種異常狀況。好比網絡堵塞、暫時中斷等等)。此外。假設應用的數目多了,那互相之間都要創建MQ鏈接,網絡拓撲就成了蜘蛛網了(就好像是最初的電話系統)。所以,咱們將網絡的星型拓撲引入系統架構中。把一對一的MQ換成一箇中心節點。即ESB。MB便是IBM的ESB產品。
MB處於系統的中心,起到一個總線的做用,所有應用都直接鏈接到MB。而不是應用之間直接互聯,這種優勢不言而喻,可以極大的減小應用之間的耦合性。由此引出MB的兩大核心功能:消息路由和數據轉換
因爲各個應用都插入到MB上。因此應用A僅僅管把消息丟給MB,MB本身主動依據消息字段、以及業務邏輯。推斷要把消息交給誰。這就像路由器同樣。依據數據包的頭把包路由到對應地址。MB內部的業務邏輯由開發者設定。固然利用MB的Toolkit,編寫業務邏輯也很easy:拖一些節點,用箭頭把它們連起來,就像是畫流程圖同樣。很形象簡單。
再用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鏈接起來。各跑各的。
【轉載使用。請註明出處:http://blog.csdn.net/mahoking】