什么是 ESB(Enterprise Service Bus)?
對于這個問題,長期沒有搞清楚,就連我自己也很難說清楚這到底這是個什么樣的概念,我引經據典來大致的描述一下這個概念。
第一個定義來自于:O'Reilly 的 《Enterprise Service Bus》
The ESB concept is a new approach to integration that can provide the underpinnings for a loosely coupled, highly distributed integration network that can scale beyond the limits of a hub-and-spoke EAI broker. An ESB is a standards-based integration platform that combines messaging, web services, data transformation, and intelligent routing to reliably connect and coordinate the interaction of significant numbers of diverse applications across extended enterprises with transactional integrity.
An extended enterprise represents an organization and its business partners, which are separated by both business boundaries and physical boundaries. In an extended enterprise, even the applications that are under the control of a single corporation may be separated by geographic dispersion, corporate firewalls, and interdepartmental security policies.
另外一個定義來自于:維基百科的ESB定義
它是面向服務架構的實現。
它通常是操作系統和編程語言無關的;
它應能在Java和.Net應用程序之間工作。
它使用XML(可擴展標識語言)作為標準通信語言。
它支持Web服務標準。
它支持消息傳遞(同步、異步、點對點、發布-訂閱)。
它包含基于標準的適配器(如J2C/JCA),用于集成傳統系統。
它包含對服務編制(orchestration)和編排(choreography)的支持。
它包含智能、基于內容的路由服務(itenerary路由)。
它包含標準安全模型,用于ESB的認證、授權和審計。
它包含轉換服務(通常是使用XSLT),在發送應用和接收應用之間轉換格式,簡化數據格式和值的轉換。
它包含基于模式(schema)的驗證,用于發送和接收消息。
它可以統一應用業務規則,充實其它來源的消息,分拆和組合多個消息,以及處理異常。
它可以條件路由,或基于非集中策略的消息轉換,即不需要集中規則引擎。
它可監視不同SLA(服務級別合約)的消息響應門限,以及在SLA中定義的其它特性。
它(常常)簡化“服務類別”,向更高或更低優先級用戶做出適當的響應。
它支持隊列,在應用臨時不可用時用來保存消息。
它由(地理)分布式環境中的選擇性部署應用適配器組成。
總的來說,ESB 提供了跨平臺,跨部門,跨應用系統的服務整合的基礎平臺,就我們目前對項目的理解,我們或許還沒有達到這個 level,我們提供的應該是個辦公應用平臺,除非我們確實會進行跨部門,跨業務的服務整合,那樣我們真的是在做 SOA 了,那就有的折騰了。
不多說了,進入下一個主題 OSGi。
posted on 2008-05-26 14:26
steady 閱讀(435)
評論(0) 編輯 收藏 所屬分類:
技術隨筆