WebSphere Enterprise Service Bus V6 的新特性

CloudSpace發表於2008-08-13

企業服務匯流排(Enterprise Service Bus,ESB)是一種結構模式,這種模式為不同服務的互動提供了通用的連線和虛擬化。它為企業資訊系統實現 SOA 提供了基礎。IBM 提供了一些產品用以實現 ESB,包括 WebSphere Message Broker 和 WebSphere DataPower。最近,IBM 引入了 WebSphere ESB V6 作為構建於服務元件體系結構(Service Component Architecture,SCA)之上的 ESB 產品。本文提供了關於 WebSphere ESB 和 WebSphere Integration Developer 的介紹,後者是一種開發 WebSphere ESB 應用程式的整合開發環境。

引言

本文描述了 IBM® WebSphere® ESB V6.0.2 和 WebSphere Integration Developer V6.0.2 的關鍵技術特性,並且提供了開發資源的參考資料。本文將幫助架構師、服務整合人員和開發人員使用 WebSphere ESB 開發企業 SOA 解決方案。正因為具有下列的特性,才使得 WebSphere ESB 有別於其他的 ESB 產品:

  • 基於 JMS 規範的預設訊息傳遞引擎。
  • WebSphere Application Server 程式碼庫:世界級的 J2EE 基礎提供了行業領先級別的可用性、可伸縮性和效能。
  • 支援 J2EE、Web 服務和互操作性標準,以實現 J2EE 和 Web 服務環境中服務的靈活整合。
  • 支援服務元件體系結構 (SCA),允許在開發時和執行時輕鬆且動態地組裝和繫結服務元件。
  • 在 WebSphere Process Server 中作為預設的 ESB,提供了高階業務整合和流程管理。隨著業務需求的出現,企業可以通過部署 WebSphere Process Server 功能,輕鬆地擴充套件其 SOA 解決方案。
  • 附帶的 WebSphere Integration Developer 基於 Eclipse,並且為開發和組裝服務或構建業務流程模型提供了通用的整合環境。
  • 簡化的安裝和配置過程,以及在管理和管理使用者介面方面使用了與 WebSphere Application Server 和 WebSphere Process Server 相同的外觀。

什麼是 WebSphere ESB

異類技術和系統中各種服務之間的連線性是企業資訊系統實現 SOA 的基礎之一。通過預設訊息傳遞引擎,WebSphere ESB 在支援各種互動方式、協議、和服務質量(Quality of Service,QoS)的同時,提供了不同服務之間的通用連線。它通過中介模組,為服務請求者和服務提供者之間的訊息提供中介。WebSphere ESB 提供了核心 ESB 中介功能,如訊息轉換和篩選、或者將訊息路由到不同的服務提供者。此外,它還提供了一些其他的功能,如訊息記錄、使用資料庫中的資料擴充訊息、以及根據您的需要定製錯誤處理。WebSphere ESB 中介允許通過多種協議通道的服務請求者訪問相同的服務。WebSphere ESB 基於 SCA,並且支援關鍵的 J2EE 和 Web 服務標準。它使得可以輕鬆地整合和部署服務,動態地管理中介服務,併為安全和監視元件提供了方便的配置和檢測點。通過對 WebSphere 介面卡的支援,WebSphere ESB 為許多企業應用程式提供了方便的連線,如 SAP、Siebel 和 PeopleSoft。

此外,WebSphere ESB 還提供了:

  • IBM Message Service Client for C/C++——擴充套件了 JMS 模型,以便在 C 和 C++ 應用程式中進行訊息傳遞
  • IBM Message Service Client for .NET——允許 .NET 應用程式參與到基於 JMS 的資訊流中
  • IBM Web Service Client for C++——允許 C 和 C++ 應用程式連線到 WebSphere 中的 Web 服務

中介模組

WebSphere ESB 中介模組是可以為服務請求者和服務提供者之間的訊息提供中介的 SCA 模組。SCA 模組包含 SCA 元件或服務元件。SCA 元件是 SCA 的組成部分,可以將其組裝到組合服務中。使用 WebSphere Integration Developer,您可以以圖形化的方式建立和自定義 SCA 模組和元件。此外,您可以在 WebSphere ESB 管理控制檯中動態地對中介模組的某些屬性進行自定義,而無需重新部署該模組。通常,中介模組包含一個稱為中介流元件的特定型別的 SCA 元件。中介模組最多可以包含一箇中介流元件。中介模組還可以包含:

  • 外部服務的 SCA 匯入——允許中介模組中的中介元件或 SCA 服務元件引用和呼叫該模組的外部服務。
  • SCA 匯出——公開模組中的 SCA 服務元件或中介流元件,並使得該中介模組外部的服務請求者可以訪問它。

圖 1. WebSphere ESB 和中介模組
WebSphere ESB 中介

繫結和協議轉換

通過使用中介流元件,WebSphere ESB 可以互連各種不同的服務請求者和提供者。中介元件的入站和出站協議指定為中介流元件的匯出和匯入元件中的繫結。WebSphere ESB 基於這些繫結執行協議轉換。WebSphere ESB V6.02 支援下列繫結:

  • Web 服務繫結——允許訪問 Web 服務。它們支援 SOAP/HTTP 和 SOAP/JMS 協議。
  • SCA 繫結(也稱為預設繫結)——將 SCA 模組連線到其他 SCA 模組。
  • Java™ Message Service (JMS) 1.1 繫結——支援與 WebSphere Application Server 預設訊息傳遞提供者的互操作性。JMS 協議可以利用各種傳輸型別,包括 TCP/IP 和 HTTP(以及 HTTPS)。自動地支援 JMS Message 類及其五種子型別(Text、Bytes、Object、Stream 和 Map)。
  • WebSphere 介面卡繫結——支援與企業資訊系統(Enterprise Information Systems,EIS)進行互動。IBM 為通過其他協議連線到各種 EIS 應用程式(如 SAP、PeopleSoft 和 Siebel)提供了基於 JCA 標準的 WebSphere 介面卡。
  • WebSphere MQ JMS 繫結**——支援與基於 WebSphere MQ 的 JMS 提供者的互操作性。自動地支援 JMS Message 類及其五種子型別。
  • WebSphere MQ 繫結**——支援與本地 WebSphere MQ 應用程式的互操作性。您可以通過 WebSphere MQ 客戶端連線,僅對遠端佇列管理器使用 WebSphere MQ 繫結;不能對本地佇列管理器使用它們。

中介模組中不一定包含中介流元件。不包含中介流元件的中介模組通常用於在服務請求者和提供者之間進行協議轉換。

JMS 自定義繫結

預定義的 JMS 資料繫結提供了從外部 JMS 訊息使用的格式到中介模組使用的服務訊息物件(Service Message Object,SMO)表示形式之間的對映。一些預定義的 JMS 繫結具有其特定的要求,例如,JMS Text 繫結要求訊息正文為訊息的業務物件 (BO) XML 描述,而 JMS Object 繫結則要求訊息正文為序列化的 Java 資料物件。對於預定義 JMS 資料繫結所不支援的 JMS 訊息型別,或對於將入站和出站 JMS 訊息轉換為 SMO 訊息的自定義處理,您可以為中介模組的匯出和匯入元件指定 JMS 自定義繫結。

互動模式

WebSphere ESB 支援下列訊息傳遞互動模型:

  • 單向互動
  • 請求-應答互動(同步或非同步)
  • 釋出/訂閱

根據 SCA,您可以指定首選的互動方式和各種服務質量 (QoS)、以及介面的事務屬性、引用和繫結。

中介流元件

中介流元件用於定義中介流。中介流元件包含:

  • 中介流——通過中介傳遞請求和/或服務請求者和服務提供者之間的響應訊息。
  • 介面——服務請求者呼叫中介元件所使用的一個或多個介面。
  • 引用——零個或多個對中介元件呼叫的外部服務匯入的引用。

中介流元件可以包含請求中介流和響應中介流,以實現請求-應答互動:


圖 2. 中介流元件的細節
wesb 概述

中介流和中介基元

中介流由一個或多箇中介基元構成。每個流中的所有源操作具有一個輸入節點,所有目標操作具有一個調出節點。您還可以提升調出節點中的 Use dynamic endpoint 屬性。


請求流

圖 3. 中介請求流和響應流
響應流

中介基元將訊息作為服務訊息物件 (SMO) 處理。SMO 是 WebSphere ESB 中不同服務之間交換的訊息的邏輯表示。SMO 根據服務資料物件 (SDO) 進行建模。SMO 訊息包括:Header、包含訊息有效負載的正文、包含與響應流和請求流相關聯的資料的上下文、跨請求或者響應流連結基元的瞬態資料。WebSphere ESB V6.0.2 支援下列中介基元:

  • Database Lookup——使用指定的資料庫中的資訊豐富或更新訊息。
  • Message Filter——根據 XPath 表示式指定的訊息內容,選擇性地對訊息進行路由。
  • Message Logger——在資料庫中記錄訊息。
  • Stop——中止中介流中的路徑,而不產生異常。
  • XSLT——使用 XSLT 中介基元對訊息進行轉換。
  • Endpoint Lookup**——動態地將訊息路由到合適的服務端點。Endpoint Lookup 基元搜尋 Web 服務的服務端點資訊、Web 服務繫結的中介模組匯出、以及 WebSphere Service Registry and Repository(以下稱為 Registry and Repository)中的預設 SCA 繫結。
  • Event Emitter**——如果出現了例外的情況(或者稽核情況),則在中介流中產生一個公共基礎事件。
  • Fail**——中止中介流,並生成一個異常。
  • Message Element Setter——設定訊息的內容。
  • Custom**——執行 Java SCA 元件或外部服務匯入中指定的自定義邏輯。您可以使用自定義中介基元訪問外部轉換引擎,如 WebSphere TX,它提供了方便的圖形工具以處理行業標準資料格式,如 EDI 和 SWIFT。

提升的屬性

中介基元具有一些屬性,通過提升屬性,可以使得其中的某些屬性對於 WebSphere ESB 管理員來說是可見的。** 提升的屬性具有一個別名,即 WebSphere ESB 管理控制檯中顯示的名稱。如果多個屬性具有相同的型別,為了給它們分配相同的值,可以為多個提升屬性指定相同的別名。

** WebSphere ESB V6.0.2 中的新特性

開發環境

WebSphere Integration Developer 為開發和測試中介模組和 SCA 元件提供了整合環境。它為 SCA 程式設計構件提供了圖形編輯器,如 Business Object Editor 和 Interface Editor。它提供了圖形使用者介面以便為服務元件指定元件、繫結和 QoS 限定符的詳細屬性。因為 WebSphere Integration Developer 構建於 Eclipse 之上,所以您可以使用它開發要部署到 WebSphere Process Server 的 SCA 模組和其他 SCA 元件。

可視的編輯器和嚮導

WebSphere Integration Developer 提供了幾種圖形編輯器和嚮導,用於發現和匯入服務,快速開發、測試和部署中介模組。

中介模組組裝編輯器

WebSphere Integration Developer 包括中介模組組裝編輯器,以便以圖形的方式組裝中介流元件和其他 Java 元件。它還可以匯入引用的服務以進行呼叫。這個編輯器允許您為具有支援繫結的中介元件生成一個或多個匯出,以便通過多種協議通道的服務請求者能夠使用它們:


圖 4. 中介模組組裝編輯器
中介模組組裝編輯器

中介流編輯器

WebSphere Integration Developer 還提供了圖形化的中介流編輯器,通過在圖形的方式中將預定義中介基元皮膚上的零個或多箇中介基元串起來,從而構建源和目標介面之間的中介流。通過這個編輯器,可以很容易地為每個中介基元指定詳細屬性。例如,對於 Endpoint Lookup 基元,您可以配置一個或多個 Registry and Repository WSRR 的定義,這些定義可用於 Preferences。對於每個查詢基元,您可以指定詳細的屬性,包括要使用的 Registry and Repository 定義、服務的 Registry and Repository 分類、以及要查詢的服務的使用者定義屬性。


圖 5. 中介流編輯器
中介流編輯器

每個中介基元的屬性編輯器還顯示了可提升屬性的列表,您可以從中選擇對 WebSphere ESB 管理員可見的屬性。


圖 6. 中介基元的提升屬性
提升屬性

XSL 對映編輯器

對於 XSL Transformation 基元,WebSphere Integration Developer 提供了相應的圖形編輯器,以便對從源到目標訊息中的單個元素或元素陣列進行對映,使用拖放的方式生成 XSL,並定義 XSL 函式。這個編輯器還允許您指定現有的 XSLT 檔案以用於轉換。您可以使用 XPath 編輯器來選擇訊息的內容,以便 Filter 中介基元使用該內容來指定基於內容的路由。

可視 Java 程式碼片段編輯器

對於自定義中介基元,您可以使用嵌入的 Java 程式碼片段編輯器或標準的 Java 編輯器為實現開發 Java 程式碼。通過將其轉換為 Eclipse 外掛,您可以將自定義中介基元新增到內建基元圖形皮膚。

Enterprise Service Discovery 嚮導

WebSphere Integration Developer 還提供了 Enterprise Service Discovery 嚮導以發現 Registry and Repository 或 WebSphere 介面卡服務構件中的服務,以生成 WebSphere 介面卡 (EIS) 繫結。

測試和除錯

WebSphere Integration Developer 提供了一個元件測試客戶端以測試包括中介流元件的 SCA 元件。測試客戶端允許您手動地為服務指定輸入,或者從檔案進行載入。它提供了一個模擬器,您可以在模擬器中指定返回資料以通過手工條目或從指定檔案中檢索的內容來模擬目標服務元件的結果。而且可以使用其中的視覺化偵錯程式來除錯中介流,在這個視覺化偵錯程式中檢視訊息值的過程中,可以新增斷點並單步跳入、單步遍歷或單步跳過感興趣的部分。

WebSphere ESB 中介模組被打包成 Enterprise Application Archive (EAR) 檔案。您可以將包含中介應用程式的 EAR 檔案部署到 WebSphere Integration Developer 測試環境中嵌入的 WebSphere ESB 測試伺服器。在將應用程式部署到 WebSphere ESB 測試伺服器時,在伺服器所使用的預設訊息傳遞引擎中會自動地為具有 JMS 繫結的匯出和匯入元件生成任何所需的 JMS 訊息傳遞資源。您可以使用命令列指令碼或者基於 Web 的管理控制檯為嵌入的測試伺服器或外部 WebSphere ESB 伺服器安裝和管理這些中介應用程式。

安裝和配置

WebSphere ESB 的安裝和配置過程類似於 WebSphere Application Server 和 WebSphere Process Server,因此如果您熟悉其中的一種產品,就可以簡化安裝和配置工作。您可以使用安裝嚮導或以靜默方式採用非互動的模式安裝 WebSphere ESB。在完成了安裝之後,可以在獨立的或者網路部署模式中建立和配置一個或多個伺服器。Network Deployment 允許您從部署管理器集中地管理一組伺服器。可以通過建立相應的配置檔案來完成配置工作。在建立了配置檔案之後,可以使用它建立伺服器例項。下面是包括 WebSphere ESB 的示例拓撲:


圖 7. 包括 WebSphere ESB 的示例拓撲
WESB 拓撲

要實現可伸縮性和高可用性,您可以在 WebSphere Network Deployment 叢集中配置 WebSphere ESB 及其相應的訊息傳遞引擎。如果您希望啟用 SCA 元件的事件監視或處理 Event Emitter 基元產生的事件,那麼可以執行安裝後的任務以配置公共事件基礎設施 (Common Event Infrastructure)。如果您希望使用 Registry and Repository,那麼需要使用 Web 管理控制檯配置一個或者多個定義,這些定義可用於 Endpoint Lookup 中介基元。通過安裝和配置 WebSphere ESB 所提供的訊息服務客戶端,您可以允許 C、C++ 或 .Net 應用程式參與到與 WebSphere ESB 的互動中。

管理和控制

因為中介模組打包在一個 EAR 檔案中,所以可以將它們作為企業應用程式安裝到 WebSphere ESB 伺服器上。您可以使用 wsadmin 命令列工具或 WebSphere ESB 管理控制檯來安裝它們。您可以以不同的方式使用 wsadmin 工具,將其作為單獨的命令以互動的方式使用、或者使用 jacl 指令碼。WebSphere ESB 提供了一些命令,允許您顯示 SCA 模組及其匯入和匯出。您還可以對 Web 服務和 SCA 匯入繫結進行更改。指令碼適用於大規模的管理任務,而 Web 管理控制檯則提供了友好的使用者介面。管理功能包括:

  • 顯示用於部署中介模組的應用程式的細節資訊
  • 顯示中介模組的概要配置屬性
  • 顯示中介模組中的服務匯入
  • 顯示中介模組中的匯出:

    圖 8. 在 WebSphere ESB 管理控制檯中顯示中介模組的細節資訊
    管理控制檯中的中介模組

  • 如果匯入繫結為 Web 服務,您可以更改其端點 URL。如果匯入使用了 SCA 繫結,您可以將其修改為指向不同的 SCA 模組作為目標。這些更改將立即生效(或者在 Network Deployment 中進行同步之後),而無需重新啟動或者重新部署該模組:

    圖 9. 在 WebSphere ESB 管理控制檯中更改端點 URL
    更改端點

  • 顯示中介模組的提升屬性。您可以更改中介模組的提升屬性的值**。這些更改將立即生效(或者在 Network Deployment 中進行同步之後),而無需重新啟動或者重新部署該模組:

    圖 10. 在 WebSphere 管理控制檯中更改中介模組的提升屬性
    提升屬性

  • 啟動尚未執行的中介模組(狀態為“已停止”),或者停止正在執行的模組(狀態為“已啟動”)。要更改中介模組的狀態,需要啟動或者停止用於部署模組的應用程式。
  • 管理中介模組所使用的資源。當您將中介模組安裝到 WebSphere ESB 中時,WebSphere ESB 伺服器會為中介元件、匯出和匯入自動地定義所需的 JMS 目標和資源。可以檢視並管理這些資源,例如要實現更好的效能,可以修改它們的屬性。
  • 建立、配置和顯示所有的 Registry and Repository 訪問定義**。

** WebSphere ESB V6.0.2 中的新特性

WebSphere ESB 使用了 WebSphere Application Server 平臺所提供的全域性安全框架。它支援使用 SSL 實現協議級安全,使用 WS-Security 實現 SOAP Web 服務的訊息級安全。WS-Security 在匯出和匯入元件的 Web 服務繫結的 IBM 擴充套件中指定。必須啟用 WebSphere ESB 的 WebSphere 全域性安全,以利用儲存在 WebSphere 安全註冊中心(如 LDAP 使用者註冊中心)中的使用者標識。

結束語

WebSphere ESB 提供了一些關鍵的 ESB 功能,以便連線 SOA 中不同的服務。在支援多種通訊協議和互動模式的同時,它為通用服務連線提供了預設 JMS 訊息傳遞引擎。它使用預定義和使用者定義的中介,為服務請求者和提供者提供中介。它支援通過基於 JCA 規範的 IBM WebSphere 介面卡連線到 EIS 應用程式。由於對實現無縫服務整合的 Web 服務、J2EE 和 SCA 標準提供了本地支援,所以 WebSphere ESB 是一種支援基於標準的 SOA 的策略性企業產品。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-426815/,如需轉載,請註明出處,否則將追究法律責任。

相關文章