周宇



一、引言
企業服務總線(ESB)是采用SOA(面向服務架構)技術,以“軟總線”的方式,提供服務間協作、管理和控制的分布式架構,用于構建、集成、部署和監控管理各種分布式資源。它是傳統消息中間件技術與Web Service、XML技術的結合,可以在異構環境中實現信息穩定、可靠的傳輸,屏蔽硬件層、操作系統層、網絡層等復雜接口,為用戶提供一個統一、標準的信息通道,保證邏輯應用和底層平臺的松耦合,實現異構平臺的數據交換、數據共享與應用集成。
二、ESB功能與部署
2.1 ESB功能
ESB提供多種通訊協議的接入,不同通訊協議之間的轉換,不同數據格式的加工和處理,基于數據內容的智能路由。其核心功能有:1、服務適配。服務適配負責把客戶端的請求消息轉換成滿足服務要求的內容,并調用服務,同時把服務的返回內容轉換成滿足客戶端要求的格式。服務總線支持動態消息的格式轉換,支持XQuery、XSLT、XPath等轉換標準,支持HTTP/HTTPS、SOAP、JMS、MQ、FTP等傳輸協議。2、服務交換代理。代理服務是ESB架構的一個核心概念。服務使用者經由這個接口與已經注冊的、后端業務系統的服務連接,可以實現多個系統的松散耦合的集成,實現服務系統的可插拔方式的接入,極大提高了系統集成的效率,降低了系統集成的復雜性,使得集成后的系統具有很高的靈活性,并且有利于遺留系統的重新應用。3、數據轉換。數據轉換實現源服務與目的地服務間存在不同的數據類型,以及需要數據映射以便轉換數據的情況。4、動態路由。在請求內容的某些元素可能造成多目的地服務的情況下,ESB能根據消息內容執行動態路由。動態路由通過條件轉移語句(或服務調用)分析消息,從而檢索某個數據元素或多個數據元素的數值。不同的業務服務目的地被賦予這個條件檢查的不同數值組合,允許將消息動態發送到多項業務服務。
2.2 ESB典型部署模式
ESB作為SOA集成層組件的核心,其應用和部署方式較為靈活,ESB部署的典型模式如表1所示。
(1) 單一模式。單一模式(如圖1所示)為最基本的ESB部署模式,每個服務提供者對環境中所有請求者均可見,服務提供者與消費者通過ESB進行數據交換,且所有的交換內容都置于ESB的管理之中。該模式主要應用于部門或小型組織中使用。
(2) 總分模式。總分模式(如圖2所示)適用于組織內具有分級關系的上下級部門之間進行交互,而同級部門之間的服務交互需要經過中心ESB進行消息中轉。部門內的服務交互本部門維護管理,同級部門之間的交互由上級部門進行統一管理。因此,此種模式主要適用于上下級組織交互頻繁,而同級組織交互相對較少的場合。
(3) 代理模式。在代理模式(如圖3所示)中所有ESB都是對等的,不存在上下級關系。本組織內的服務交互由組織內ESB提供,跨組織的服務交互需要通過公共代理ESB進行消息路由。這種模式可以有選擇地將請求者或提供者公開給其他組織中的合作伙伴。
(4) 分散模式。在分散模式(如圖4所示)中,組織內部各個業務部門擁有獨立的ESB管理部門內的服務,可以自主地實施解決方案。部門之間的聯系較為松散,跨部門通信時,不進行統一的管理。因此,當需要跨部門通信時,各ESB要通過一種標準的“橋接”技術相互訪問。
(5) 統一模式。在統一模式(如圖5所示)中,整個組織具有邏輯上唯一的ESB,該ESB是由物理上遍布于各個部門的ESB節點構成的,節點之間可以直接進行通信并具有服務尋址、消息路由功能。這種模式主要用于高性能、高可靠性ESB集群內部各節點間的互聯。
三、ESB性能分析
3.1 代理模式并發性能分析
ESB采用wso2esb-3.0.1.測試工具采用開源工具jmeter2.4,用于產生并發請求,并記錄ESB在不同條件下的響應時間。對WSO2的測試結果如圖6所示,Web Service的響應時間隨請求的數據量增大而增大。在相同數據量情況下,并發數越大,響應時間越長。響應時間并未隨數據量增大和并發數增大產生明顯劣化,具有一定的并發處理能力。
3.2 ESB數據轉換性能分析
ESB一般都是以XML為中心的,因此,ESB進行XML格式轉換的能力就尤為重要,下面對并發條件下的XML數據轉換性能進行測試分析。
XSLT轉換處理能力測試結果如圖7所示,在不同并發條件下每秒處理請求的能力仍然很強,可見,ESB的具有較強的XSLT轉換和處理能力。在圖8中,由XSLT轉換平均響應時間可以看出,隨著并發數增加,平均響應時間并未產生嚴重劣化,具有較強的并發處理能力。可見,ESB具有較強的XSLT轉換處理能力,可以應對大并發量的轉換處理。
另外,從圖9可以看出響應時間并非均勻分布在平均響應時間周圍,而是在平均響應時間處有大量樣本,其他響應區間內也有少量樣本分布。隨著并發數的增加,響應時間有逐漸變大的趨勢,并有一些請求處理時間高于平均響應時間數倍的情況出現。由此可見,雖然ESB具有較強的XSLT并發轉換處理能力,但隨著并發量的增大,仍無法保證所有請求都會及時處理。
四、結論
企業服務總線(ESB)作為面向服務架構(SOA)的核心組件,在信息服務集成方面具有重要作用。本文介紹了ESB的基本功能,并對各種典型應用部署模式進行對比分析,最后針對代理模式并發性能和數據轉換能力設計性能測試場景,并進行定量測試,為更好的應用ESB進行信息服務集成提供有益參考。