对ESB概念的理解
什么是 ESB?ESB 嚴格來說不是某一個產品,而是一種框架,設計模式。不同的提供商對 ESB 的理解也各有不同。從 IBM 的立場來說,ESB 不僅僅是一個概念,而是一種中間件模式;它不是某個產品,而是一種全新的集成應用,協調資源和操縱信息的框架。
下面來介紹 ESB 或可以稱為 ESB 的中間件產品保護一些特征,有些是必須的,有些是可選的:
ESB 必須提供一種支持服務交互的橋梁,它必須支持多協議 (protocol) 之間的連接。不僅要提供對消息和面向事件的中間件的支持,還要提供和現有 EAI 技術的連接。連接性是 ESB 不可缺少的特征之一。
服務交互可以理解為 ESB 的一個目的之一,ESB 作為 SOA 架構的核心,必然要支持服務的交互,要在服務的請求者和提供者架起一個堅實的橋梁,讓服務的請求者和提供者只需要關心各自的業務邏輯,而不需要在發布和消費服務的環節花很大力氣。服務交互也是 ESB 的必備特征。
集成的概念是對于系統而言的,ESB 不僅要能集成那些很容易封裝服務的系統,也要集成不能方便地封裝服務的系統,例如 SAP, ERP, CRM, Siebel 等 EAI 系統、遺留系統。集成也是 ESB 的核心特征之一。
在集成的過程中,必須要面對的是消息處理,在不同的應用系統中,消息的描述格式是不一樣的。在集成環境中,必須要提供一種統一的格式來處理系統間的交互,從 ASBO(Application Specific Business Object ) 到 GBO(Generic Business Object) 之間的互轉是 ESB 的核心特征之一。
對于一個具有 ESB 特征的產品,管理也是一個重要的方面。例如,當一個服務從一個地址切換到另一個地址,在結構等不發生任何改變的時候,ESB 產品應該提供一個方便的途徑適應這種改變。
對于服務交互來說,QoS 也是一個重要的特征,比如針對不同的服務請求者提供不同質量的服務響應。有些服務的請求需要在事務中完成,有些服務的交互需要保證其可靠性。一個 ESB 產品應該提供給開發者定義 QoS 的接口。
安全的必要性不言而喻,系統和系統之間的交互必然需要認證,授權,加密,簽名等安全性。一個優秀的 ESB 產品應該提供可靠的,可靈活配置的安全支持。
IBM 有三款 ESB 產品:WebSphere ESB (WESB),WebSphere Message Broker(WMB),DataPower。這三款 ESB 產品都提供了 ESB 所必備的特征,但是它們各有側重,WESB 主要構建與 WebSphere Application Server 之上,側重于對標準協議和消息的支持,更適合于 J2EE,Web-Service 為主要特征的集成環境;WMB 提供了一個高級的 ESB,它構建于 WebSphere Message Queue 之上,提供了百種以上協議的連接和數據格式的轉換機制。Datapower 是一款比較新的 ESB 產品,除了提供必備的 ESB 的特性之外,Datapower 更側重于安全。眾所周知,在 XML 的環境中,安全對于性能的影響是巨大的,Datapower 給企業 ESB 提供了強大的安全保障。
下面對這三款 ESB 產品比較:
總結,WESB 適用于 J2EE 環境下,對性能要求不是很高的,標遵循標準協議的 SOA 集成;WMB 應用更復雜的集成環境,表現為數據格式多種,傳輸協議多樣,性能要求很高;而在安全和性能要求都很高的應用場景下,選擇 Datapower 無疑是最好的選擇。下面的圖表再次對文中的描述進行總結。
| 消息轉換 | XML | XML、非 XML | XML、非 XML |
| 支持的協議 | HTTP,JMS, WMQ 等 | 多達上百種 | 介于前二者之間 |
| 消息路由 | 強大,靈活 | 功能強大,靈活 | 靈活度比前二者稍弱 |
| Web Service | 強大的支持 | 支持 WS 擴展 | 強大的支持 |
| 事件處理 | CEI,可以和外部事件消費系統監控 | Trace Service | 用于調試 Probe |
| 遺留系統的集成 | Adapter | 豐富的 SupportPac | 特定的遺留系統 |
| 安全 | 依賴 WAS 的安全 | 部署和運行時兩個級別的安全 | 超強的安全支持 |
| 性能 | 幾十到幾百每秒 | 幾千到幾萬每秒 | 達到線速 |
| 開發和部署 | WID 集成開發環境 | WMB Toolkit | WebGUI |
- WESB 的優勢是提供了和流程服務器 WPS 以及 J2EE 服務器 WAS 良好的整合。WESB 適合使用于對性能要求不是很高,且遵循標準協議的 SOA 整合環境中。
- WMB支持幾乎大部分常用的數據格式和協議。并且提供了良好的擴展功能,開發人員可以在 WMB 基礎上開發自己的數據格式解析的節點。處理性能較高。適合于信息傳輸量較大,信息交互頻繁的場景中。
- Datapower 使用硬件的 XML 解析和加速器,在性能上有了很大的提高。在安全和性能要求都比較高的環境中,Datapower 是一首選 ESB。
WebSphere ESB 與 SIBus 的比較:
1.WAS v6中的服務集成總線 (SIBus) 技術可以創建ESB。
2.ESB 的基本功能回顧
? 總的來說,ESB 通過一組豐富的功能(包括智能路由、協議中介和其他轉化機制)集成服務,實現對應用程序之間交互的管理和監視,從而提供了在企業內部和企業之間連接新的和現有軟件應用程序的功能。ESB 支持服務可視化,從而在服務請求者和服務提供者之間提供了多方面的分離。
? 以下是比較關鍵的ESB 功能
? 1).首先,ESB 能夠通過各種方式與服務請求者和服務提供者交互:可以通過持久性消息中樞(特別是 MQ)發送和接收消息,并能夠通過 HTTP 和 JMS發送和接收 Web 服務請求和響應消息。
? 2).其次,能夠在不同消息和傳輸協議之間轉換,如將 HTTP 上的 SOAP 轉換為 JMS 上的 SOAP。
? 3).然后,能夠使用流行的轉換語言 XSLT 轉換 XML 消息。
? 4).能夠應用消息中介(如日志記錄)。提供高級功能包括消息的監視、在服務注冊中心中查詢端點和異步請求/響應。
3.ESB 的現有功能:
? 1).ESB 非常重視標準,可以對 XML 和 SOAP 提供一流的支持。
? 2).ESB 的核心是中介流組件,它是特定類型的 SCA 組件,支持SCA/SDO 編程模型。可以使ESB與WPS組件輕松集成。
? 3).ESB 需要SDO 的擴展——服務消息對象(Service Message Objects,SMO)——它使我們能夠訪問所需的消息上下文和內容。
? 4).ESB 需要XSLT轉換語言轉換 XML 消息。
? 5).需要連接不支持現成的 SOAP 或 XML 的現有系統時,WebSphere Adapters 可以為我們節省許多開發時間,因為可以將它們用作能夠“連接”到 WebSphere ESB 中介的另一個 SCA 組件類型。
4.ESB 與 SIBus 的比較
? 1).ESB 和 WID 提供了 SIBus 沒有的功能,SIBus配置過程可能非常麻煩;ESB 可以通過WID進行可視化中介流組件的開發。ESB 支持不同的交互模式與請求和響應消息的自動關聯。SIBus只能通過代碼實現,開發速度無法比;
? 2).ESB的缺省 JMS 提供程序即SIBus的JMS 提供程序,ESB基于WAS,ESB安裝也自動含有SIBus功能。
? 3).SIBus 中介和 ESB 中介之間的差異,二者的中介框架實現、API、包裝和管理模型是不同的。SIBus 和 ESB 將 SDO 用作通過總線的消息流的表現機制。但ESB使用稱為 Service Message Objects (SMO) 的 SDO 擴展。
? 4).將 SIBus MQLink 與 WebSphere ESB 一起使用,SIBus 通過其 MQLink 功能提供到 MQ 的連接,ESB 也可以使用MQ SCA 本地綁定連接MQ。
? 5).SIBus 和 WebSphere ESB 基礎結構的共存和集成,ESB 和 SIBus 可以共存,并且可以互相遷移。
面向 ESB 的體系結構:一種錯誤的采用 SOA 的方式
? 面向 ESB 的體系結構并不帶來業務價值。基于面向 ESB 的體系結構的項目需要成為基于 SOA 的項目,才能幫助確保成功地提供業務價值。
? SOA 的主要目標是在業務領域與 IT 領域之間保持一致,從而同時提高二者的效率。SOA 基于業務需求。SOA 可保持 IT 與業務的一致性,所以SOA還要有很復雜的分析,而ESB并不需要業務需求來實現服務總線。ESB是在真正需要的時候實現所需的內容,而不要在預計會使用時進行實現。
參考:
http://www.ibm.com/developerworks/cn/webservices/0811_magy_esb/
http://www.ibm.com/developerworks/cn/webservices/0811_magy_esb/
http://www.ibm.com/developerworks/cn/webservices/0811_magy_esb/2.html
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0812_chinoda/0812_chinoda.html
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0905_loulj_esb1/
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0905_loulj_esb2/
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0906_loulj_esb3/
總結
- 上一篇: 为你的集成需求选择合适的ESB
- 下一篇: ESB产品对比