定義 面向服務的體系結構已經逐漸成為IT集成的主流技術。面向服務的體系結構(service-oriented architecture,SOA)是一種軟體系統設計方法,通過已經發布的和可發現的接口為終端用戶應用程式或其它服務提供服務。
SOA把IT架構分為組件層、Web服務層、業務流程層等。組件層包括各種套用組件,它們通常是技術相關的具體實現,各種具體的分散式組件技術(CORBA、COM/DCOM、J2EE)都可以用於實現組件層的套用組件。通常複雜的IT環境中的組件層都同時使用了多種分散式組件技術,而不同實現技術之間的互聯性障礙給套用集成帶來了極大的困難,進而形成了一個個信息孤島。SOA引入了Web服務層來解決此種情況下的套用集成問題。Web服務是獨立於各種分散式組件技術的,它使用標準的基於XML的服務描述語言(Web Service Description Language,WSDL)來定義和封裝離散的業務功能,各種支持Web服務的分散式組件技術能夠將其上的業務組件發布成Web服務並產生相應的WSDL文檔,並且只需要依據WSDL描述的信息就能夠調用Web服務,即WSDL所描述的業務功能。Web服務在系統集成方面得到了廣泛的套用。在SOA中,需要進入系統集成環節的業務組件都被映射為Web服務,形成了Web服務層。業務流程層則處於Web服務層之上,通過對Web服務的流程編排來實現商業流程。業務流程層通過Web服務層能夠調用到基於各種分散式組件技術實現的業務組件,實現了複雜IT系統環境的套用集成。
在SOA的組件層、Web服務層、業務流程層三層模型中,組件層使用具體的分散式組件技術實現業務功能,Web服務層則為組件層提供了一種技術無關的通用訪問方式,禁止組件層具體技術之間的差異,突出業務邏輯的封裝性。組件層中的業務組件和Web服務層的Web服務構成了企業IT架構的主要可重用部件,它們應該保持相對的穩定,業務流程層則通過對服務進行編排,來適應業務需求的變化。將組件層的業務組件映射為Web服務層的服務是成功實現SOA的關鍵步驟,目前對於特定的業務組件,業界廣泛使用具體於分散式組件技術內建的支持Web服務的功能來實現組件與服務的映射。這種映射方法高度依賴於具體分散式組件技術本身,並且在使用和定製的過程中缺乏靈活性,當某個Web服務的實現需要多個分散式組件技術中的業務組件實現時,這種映射方法就會無法支持。
匯流排 企業服務匯流排(EnterpriseServiceBus,ESB)是構建基於面向服務體系結構(SOA)解決方案時所使用基礎架構的關鍵部分,是由中間件技術實現並支持SOA的一組基礎架構功能。ESB支持異構環境中的服務、訊息,以及基於事件的互動,並且具有適當的服務級別和可管理性。簡而言之,ESB提供了連線企業內部及跨企業間新的和現有軟體應用程式的功能,以一組豐富的功能啟用管理和監控應用程式之間的互動。在SOA分層模型中,ESB用於組件層以及服務層之間,它能夠通過多種通信協定連線並集成不同平台上的組件將其映射成服務層的服務。
作為SOA基礎架構的關鍵部分,ESB的功能主要體現在通信、服務互動、套用集成、服務質量、安全性以及管理和監控等方面。在通信方面,ESB能夠支持訊息路由/定址,支持多種通信技術、通信協定(如JMS、HTTP),支持發布/訂閱的通信模式,能夠處理請求/回響、同步以及異步的訊息傳遞方式,並且要求以可靠的方式傳遞訊息。服務互動方面,ESB上所發布的服務是以當前標準的Web服務描述語言(WebServicesDescriptionLanguage)來定義Web服務的,並且ESB上通常配備有服務目錄和發現機制。ESB的重要功能就是集成不同的系統,必須能夠支持多種接入ESB的方式(例如將ESB、WebService、CORBA以及使用Socket等方式訪問的遺留系統接入到ESB系統),將接入的系統映射成Web服務。在集成不同系統的同時,必須考慮服務質量方面的問題,如事務性和訊息傳遞的可靠性。對於關鍵的Web服務,ESB需要以加密的方式進行訊息傳遞,並且必須驗證訪問者的許可權。ESB軟體作為SOA基礎架構的一個複雜子系統,還必須配有相應的管理和監控功能,用於ESB軟體自身的系統管理、日誌記錄、測量和監控等。目前國內外對企業服務匯流排的研究都比較積極,IBM的ISV、BEA的AquaLogicServiceBus、開源的Mule、Sun領導的JBI規範草案等,都是企業服務匯流排的具體實現。但是這些公司的ESB實現都更關注於對自有品牌產品的支持,對如何集成更多分散式組件技術考慮得不夠。
連線框架 綜述 企業連線框架是企業服務匯流排的一種具體實現。該框架的首要目標是使用標準的開放的協定以及經過驗證的企業套用集成模式,將不同的應用程式系統集成起來。ESB連線框架定義了一系列構建,用於處理在集成不同系統時所涉及的通信、路由、服務互動等方面的任務。企業連線框架體系展示了使用該框架集成2個端對端的應用程式的連線方式。企業連線框架包含以下幾個部分:適配器,前置路由器,後置路由器,套用組件等。
適配器 適配器等價於EIP中的ChannelAdapter(通道銜接器),用於連線套用組建與外部應用程式。適配器包括連線器、訊息接收器/訊息傳送器、訊息轉換器3個部分。訊息接收器/訊息傳送器用於接收和傳送訊息,訊息轉換器用於訊息與組件所識別數據類型之間的數據轉換,連線器則用於維護外部應用程式與套用組件之間通信的會話。連線器是適配器的核心,用於管理訊息接收器/訊息傳送器以及訊息轉換器。對於訊息接收器和訊息傳送器,連線器可以在其上定義接收端點和傳送端點,用於指定該訊息從哪兒接收或者傳送到何處,如JMS的佇列名稱、HTTP的URL地址、pop3/smtp協定的郵件地址。同時,連線器使用訊息轉換器將接收來的訊息或者即將傳送的數據進行轉換。企業連線框架對不同的通信協定提供相應的適配器,如HTTP適配器、JMS適配器、郵件服務適配器、TCP/IPsocket適配器,CORBA適配器、EJB適配器、COM/DCOM適配器、HTTP/SOAP(Web服務)適配器等。種類豐富的適配器確保企業連線框架能夠集成基於不同分散式組件技術的業務組件。
路由器 路由器分為前置路由器以及後置路由器2種,分別用於套用組件處理訊息前的接收路由和套用組件處理訊息後的傳送路由。通過前置路由器,套用組件可以接收來自不同適配器或者同一適配器不同接收端點的訊息;通過後置路由器,套用組件可以將其處理結果傳送到不同適配器或者同一適配器的不同端點上。路由器可以實現動態的、聲明性的、基於內容的以及基於規則的訊息路由。通過訊息路由,可以順序、選擇或者串聯地調用套用組件,實現EnterpriseIntegrationPattern中的訊息路由模式。
套用組件 套用組件是基於某種具體分散式技術實現的業務邏輯模組。通過路由器和適配器的連線,套用組件可以與其它套用組件或者外部應用程式互動。
外部應用程式 外部應用程式可以是任何類型的應用程式,如Web應用程式、辦公自動化系統、應用程式伺服器、業務流程執行引擎等。
服務映射 綜述 使用企業連線框架能夠輕易地實現套用系統的集成,並可以將已有套用系統的功能作為套用組件,通過訊息適配器和訊息路由將套用組件自由組合形成Web服務,從而實現組件與Web服務的映射。使用企業連線框架進行組件與服務的映射可以加快開發速度,更好地重用已有系統的功能,同時能夠獲得更好的靈活性,降低系統維護的複雜度。根據業務需要,套用組件可以通過如下方式映射成Web服務:簡單映射,路由映射,複雜映射和鏡像映射等。
簡單映射 將一個組件映射成對應的Web服務:這是實現組件與Web服務之間映射的最簡單的一種方式。業務組件的接口正好與Web服務的接口相一致,直接為此組件配置HTTP/SOAP(Web服務)適配器,將其映射為Web服務(如圖所示)。
路由映射 通過路由機制,將多個組件通過路由組合成一個Web服務。對於某些Web服務,其業務功能的實現可能需要多個套用組件協作完成,如圖所示。適配器使服務匯流排具備連線不同技術標準組件的能力,路由器則增強了這種連線的靈活性。通過路由器,各種套用組件可以靈活地組合起來,協同完成某項業務功能。路由器有前置路由器及後置路由器2類。前置路由器有:
冪等路由器,對於帶有uniqueID的訊息,冪等路由器確保組件不會接收到ID重複的訊息。
條件路由器,一個條件路由器可以同時作為多個組件的前置路由器,它為每個組件配置各自的過濾器,符合過濾器所設定條件的訊息將被轉發到相應的組件上。條件路由器的作用類似於程式語言中的switch語句。
聚合路由器,將接收到的2條或者更多條訊息合併成一條訊息進行處理。
排序路由器,快取一組接收到的訊息,並將它們重新排序,然後再轉發給目標組件。
轉發路由器,不對訊息進行任何處理,直接將接收到的訊息轉發給後置路由器。
後置路由器有:
過濾路由器,為一個組件配置多個過濾路由器,各路由器根據自己的過濾規則,判斷訊息內容是否通過本路由器轉發。
多播路由器,將組件發出的訊息轉發到多個不同的目標藏地址。
鏈路由器,將訊息通過鍊表傳遞,傳遞過程中,前一個組件的輸出訊息作為後一個組件的輸入訊息。
訊息分割路由器,將組件發出的訊息切分成小塊,轉發到不同的目標地址。
多選一路由器,從多個目標地址中,選擇一個運行正常的目標地址,並將訊息轉發。
功能 1、匯流排基礎服務框架:提供系統一致性、安全性、可靠性,以及性能和擴展能力保障的基礎技術手段。
2、
集成服務 :提供基礎的集成服務與用戶定製的套用服務;支持多種集成服務模式;支持服務的封裝、重用、服務組合、服務調度。
3、公用服務:提供內置的各種公用服務。例如,渠道認證服務,日誌服務等公用服務。
4、服務管理和服務標準:提供服務配置管理的前台工具集合,並提供行業的服務規約標準。
5、系統監控:提供多角度的系統實時監控與交易報表,提供用戶定製的告警。
6、安全體系:提供多種安全機制並支持和第三方安全系統的有效集成,提供有效的安全監控機制。
優勢 1、可用性和可靠性
支持群集物理部署來保證系統的高可用性,支持系統的長期穩定運行。
2、性能和可伸縮性
支持在達到系統性能指標峰值要求的同時,系統處理能力還能夠留有足夠的餘量。
3、擴展性和靈活性
支持系統擴展部署和多個邏輯單元的分離部署。提供對系統的維護與參數配置的管理功能。
4、安全性
提供安全認證和授權機制,提供不可否認和機密性,支持安全標準。