• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            本文內(nèi)容包括:
            本文首先介紹了企業(yè)級(jí)應(yīng)用程序的發(fā)展以及 ESB 的定義;隨后,分析了 ESB 在 SOA 解決方案中所起的作用,并比較介紹了三款 ESB 產(chǎn)品在支持實(shí)現(xiàn)一個(gè) ESB 解決方案中所起的作用。

            企業(yè)服務(wù)總線 ESB 的介紹

            企業(yè)應(yīng)用的發(fā)展概述

            在介紹企業(yè)服務(wù)總線之前,有必要花一些筆墨來介紹企業(yè)應(yīng)用架構(gòu)的發(fā)展和變遷。企業(yè)級(jí)應(yīng)用架構(gòu)的發(fā)展經(jīng)歷了以下幾個(gè)階段:

            1. 獨(dú)立應(yīng)用系統(tǒng)
            2. EAI 階段
            3. SOA 階段

            獨(dú)立應(yīng)用階段

            20 世紀(jì) 60 到 70 年代,企業(yè)應(yīng)用處于獨(dú)立應(yīng)用系統(tǒng)階段,當(dāng)時(shí)的企業(yè)應(yīng)用是一種用來替代重復(fù)性勞動(dòng)的簡(jiǎn)單設(shè)計(jì),其目的是用計(jì)算機(jī)代替孤立的,體力性質(zhì)的工作環(huán)節(jié),將相關(guān)聯(lián)的企業(yè)信息或數(shù)據(jù)管理起來。這些系統(tǒng)大部分是獨(dú)立的系統(tǒng)——有獨(dú)立的數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器、用戶界面。因此有時(shí)候這類應(yīng)用也叫“豎井型”的應(yīng)用。

            但是,隨著業(yè)務(wù)和信息的不斷擴(kuò)展,獨(dú)立應(yīng)用系統(tǒng)漸漸不能滿足企業(yè)對(duì) IT 的需求,表現(xiàn)在大量的信息冗余,因?yàn)樵诮⒁粋€(gè)新的應(yīng)用的時(shí)候需要重新建立一套數(shù)據(jù)庫(kù);功能的重新設(shè)計(jì),相似的功能存在于多個(gè)系統(tǒng)中;例如,客戶信息在一個(gè)公司中可能有多個(gè)拷貝分別存在于多個(gè)數(shù)據(jù)庫(kù)中,不同時(shí)期建立的應(yīng)用系統(tǒng)所使用的技術(shù)也會(huì)不同。對(duì)于獲取客戶資料這樣的功能,必然存在于多個(gè)系統(tǒng)中,而且在不同的系統(tǒng)中其實(shí)現(xiàn)方式可能是 Java/J2EE、Delphi、C/C++。

            EAI 階段

            20 世紀(jì) 80 到 90 年代,一些公司或集成商意識(shí)到應(yīng)用集成的價(jià)值和必要性。EAI 是一種將多個(gè)不同平臺(tái)、用不同方案建立的異構(gòu)的應(yīng)用集成的一種技術(shù)和方法。它的目標(biāo)包括以下幾個(gè)方面:各個(gè)分離的系統(tǒng)間的相互通訊,消除信息孤島,實(shí)現(xiàn)信息的共享。從功能的角度來看,EAI 包括信息接收、轉(zhuǎn)換、翻譯、路由、傳播和業(yè)務(wù)流程管理。從架構(gòu)上看有兩種方式:Hub/Spoke 方式和 Bus 方式。

            圖 1 所示的 Hub/Spoke 結(jié)構(gòu)使用一個(gè)中心代理(Hub)和多個(gè)適配器(Spoke)將 Hub 和應(yīng)用連接起來。適配器負(fù)責(zé)將應(yīng)用的數(shù)據(jù)格式轉(zhuǎn)換成 Hub 可以理解的格式,Hub 將數(shù)據(jù)再轉(zhuǎn)換成目標(biāo)系統(tǒng)可以理解的格式,并執(zhí)行消息的路由。Hub/Spoke 方式的弊端在于只有一個(gè)代理中心,當(dāng)連接的應(yīng)用種類增加或者消息量增大時(shí),代理中心的性能將成為整個(gè)系統(tǒng)的瓶頸,在可擴(kuò)展性方面也存在著一定的問題。

            圖 1 . Hub/Spoke 結(jié)構(gòu)的 EAI 集成

            圖 2 所示的 Bus 結(jié)構(gòu)使用一個(gè)中心總線,應(yīng)用程序通過 Adapter 將消息發(fā)送給總線,總線負(fù)責(zé)消息的路由,接受方的應(yīng)用程序也有自己的 Adapter 來轉(zhuǎn)換接受到的消息。Bus 結(jié)構(gòu)和 Hub/Spoke 結(jié)構(gòu)的最大區(qū)別在于在 Bus 結(jié)構(gòu)中,Adapter 位于應(yīng)用程序中,而 Hub/Spoke 結(jié)構(gòu)中,Adapter 由 Hub 來統(tǒng)一管理。這樣在 Bus 結(jié)構(gòu)中,加入一個(gè)新的應(yīng)用變得很簡(jiǎn)單,可擴(kuò)展性得到了很大的提高,但是應(yīng)用程序方的負(fù)擔(dān)加重了。

            圖 2. Bus 結(jié)構(gòu)的 EAI 集成

            SOA 階段

            SOA 將應(yīng)用資源看成一個(gè)個(gè)獨(dú)立的,自包含并良好定義的服務(wù),通過這些服務(wù)的組裝,編排可以產(chǎn)生新的應(yīng)用。每一個(gè)服務(wù)可以完成一個(gè)獨(dú)立業(yè)務(wù)功能,并且不依賴于業(yè)務(wù)上下文或者其他服務(wù)的狀態(tài)。服務(wù)的定義是標(biāo)準(zhǔn)的且被廣泛支持的,比如 Web Service。在 SOA 的架構(gòu)中,人們都用標(biāo)準(zhǔn)的方式來封裝自己的服務(wù),使得任何一個(gè)客戶端程序都可以容易的和后臺(tái)系統(tǒng)實(shí)施連接。而 ESB 是 SOA 架構(gòu)中的一個(gè)核心基石,在幾乎所有的 SOA 架構(gòu)中,都將 ESB 放在核心的位置。圖 3 是 IBM SOA Reference architecture,從中我們可以看出 ESB 在一個(gè) SOA 架構(gòu)中的地位,對(duì)該圖的詳細(xì)解釋不在本文介紹范圍之內(nèi),有興趣的讀者可以參考一下 IBM SOA 專區(qū)的相關(guān)文章。

            圖 3. IBM 的 SOA 參考架構(gòu)

            下面我們來介紹一下 ESB。

            什么是 ESB?

            什么是 ESB?ESB 嚴(yán)格來說不是某一個(gè)產(chǎn)品,而是一種框架,設(shè)計(jì)模式。不同的提供商對(duì) ESB 的理解也各有不同。

            “ESBs are essentially integration systems, not SOA systems. SOA is about tearing down application silos, but integration systems reinforce those silos. [...] an ESB is especially good for bridging to legacy applications, and therefore it is a useful component in a services infrastructure”

            ----Anne Thomas Manes, Research Director with Burton Group

            “An Enterprise Service Bus (ESB) is a distributed middleware system for integrating enterprise IT assets using a service-oriented approach.”

            ----Ron Ten-Hove , Sun Microsystems and JBI Spec Lead

            “A Web-services-capable infrastructure that supports intelligently directed communication and mediated relationships among loosely coupled and decoupled business components.”

            --Gartner

            IBM 對(duì) ESB 是這樣描述的:

            An enterprise service bus (ESB) is a pattern of middleware that unifies and connects services, applications and resources within a business. Put another way, it is the framework within which the capabilities of a business' applications are made available for reuse by other applications throughout the organization and beyond. The ESB is not a new software product — it's a new way of looking at how to integrate applications, coordinate resources and manipulate information

            從 IBM 的立場(chǎng)來說,ESB 不僅僅是一個(gè)概念,而是一種中間件模式;它不是某個(gè)產(chǎn)品,而是一種全新的集成應(yīng)用,協(xié)調(diào)資源和操縱信息的框架。

            下面來介紹 ESB 或可以稱為 ESB 的中間件產(chǎn)品保護(hù)一些特征,有些是必須的,有些是可選的:

            1. 連接性

              ESB 必須提供一種支持服務(wù)交互的橋梁,它必須支持多協(xié)議 (protocol) 之間的連接。不僅要提供對(duì)消息和面向事件的中間件的支持,還要提供和現(xiàn)有 EAI 技術(shù)的連接。連接性是 ESB 不可缺少的特征之一。

            2. 服務(wù)交互

              服務(wù)交互可以理解為 ESB 的一個(gè)目的之一,ESB 作為 SOA 架構(gòu)的核心,必然要支持服務(wù)的交互,要在服務(wù)的請(qǐng)求者和提供者架起一個(gè)堅(jiān)實(shí)的橋梁,讓服務(wù)的請(qǐng)求者和提供者只需要關(guān)心各自的業(yè)務(wù)邏輯,而不需要在發(fā)布和消費(fèi)服務(wù)的環(huán)節(jié)花很大力氣。服務(wù)交互也是 ESB 的必備特征。

            3. 集成

              集成的概念是對(duì)于系統(tǒng)而言的,ESB 不僅要能集成那些很容易封裝服務(wù)的系統(tǒng),也要集成不能方便地封裝服務(wù)的系統(tǒng),例如 SAP, ERP, CRM, Siebel 等 EAI 系統(tǒng)、遺留系統(tǒng)。集成也是 ESB 的核心特征之一。

            4. 消息處理

              在集成的過程中,必須要面對(duì)的是消息處理,在不同的應(yīng)用系統(tǒng)中,消息的描述格式是不一樣的。在集成環(huán)境中,必須要提供一種統(tǒng)一的格式來處理系統(tǒng)間的交互,從 ASBO(Application Specific Business Object ) 到 GBO(Generic Business Object) 之間的互轉(zhuǎn)是 ESB 的核心特征之一。

            5. 管理

              對(duì)于一個(gè)具有 ESB 特征的產(chǎn)品,管理也是一個(gè)重要的方面。例如,當(dāng)一個(gè)服務(wù)從一個(gè)地址切換到另一個(gè)地址,在結(jié)構(gòu)等不發(fā)生任何改變的時(shí)候,ESB 產(chǎn)品應(yīng)該提供一個(gè)方便的途徑適應(yīng)這種改變。

            6. QoS

              對(duì)于服務(wù)交互來說,QoS 也是一個(gè)重要的特征,比如針對(duì)不同的服務(wù)請(qǐng)求者提供不同質(zhì)量的服務(wù)響應(yīng)。有些服務(wù)的請(qǐng)求需要在事務(wù)中完成,有些服務(wù)的交互需要保證其可靠性。一個(gè) ESB 產(chǎn)品應(yīng)該提供給開發(fā)者定義 QoS 的接口。

            7. 安全

              安全的必要性不言而喻,系統(tǒng)和系統(tǒng)之間的交互必然需要認(rèn)證,授權(quán),加密,簽名等安全性。一個(gè)優(yōu)秀的 ESB 產(chǎn)品應(yīng)該提供可靠的,可靈活配置的安全支持。

            IBM 的 ESB 產(chǎn)品

            IBM 有三款 ESB 產(chǎn)品:WebSphere ESB (WESB),WebSphere Message Broker(WMB),DataPower。這三款 ESB 產(chǎn)品都提供了 ESB 所必備的特征,但是它們各有側(cè)重,WESB 主要構(gòu)建與 WebSphere Application Server 之上,側(cè)重于對(duì)標(biāo)準(zhǔn)協(xié)議和消息的支持,更適合于 J2EE,Web-Service 為主要特征的集成環(huán)境;WMB 提供了一個(gè)高級(jí)的 ESB,它構(gòu)建于 WebSphere Message Queue 之上,提供了百種以上協(xié)議的連接和數(shù)據(jù)格式的轉(zhuǎn)換機(jī)制。Datapower 是一款比較新的 ESB 產(chǎn)品,除了提供必備的 ESB 的特性之外,Datapower 更側(cè)重于安全。眾所周知,在 XML 的環(huán)境中,安全對(duì)于性能的影響是巨大的,Datapower 給企業(yè) ESB 提供了強(qiáng)大的安全保障。下面分別介紹這三款 ESB 產(chǎn)品。

            WebSphere ESB

            從圖 4 中可以看出 ESB 構(gòu)建與 WAS ND 之上,它使用了 WAS ND 及 WAS 對(duì)于安全,用戶注冊(cè)表,事務(wù),消息引擎的支持,在其之上增加了對(duì)服務(wù)集成、消息流處理、建模以及 ESB 編程模型的支持等等。從圖中還可以看出 WebSphere Process Server 是構(gòu)建與 WESB 之上,并擴(kuò)展了服務(wù)編排和流程管理方面的支持。

            圖 4. WESB 在 WAS 產(chǎn)品線的位置

            下面介紹在 WESB 上實(shí)現(xiàn)一個(gè) SOA ESB 解決方案上的以下九個(gè)方面的特點(diǎn),這九個(gè)方面的特點(diǎn)來源于上文中介紹的 ESB 的特性,或者特性的細(xì)化:

            1. 消息轉(zhuǎn)換

              WESB 所處理的消息為 XML 格式的數(shù)據(jù),對(duì)于非 XML 結(jié)構(gòu)的數(shù)據(jù) WESB 不能處理。對(duì)于 XML 結(jié)構(gòu)的數(shù)據(jù),在 WESB 的消息流中數(shù)據(jù)以 SMO(IBM 對(duì) SDO 的擴(kuò)展,參見參考資料部分了解 SDO 的規(guī)范 ) 形式存在,WESB 可以對(duì) XML 消息樹的內(nèi)容進(jìn)行修改,包括改變某個(gè)節(jié)點(diǎn)的內(nèi)容,增加新的節(jié)點(diǎn)以及刪除某個(gè)節(jié)點(diǎn)等等。

            2. 支持的協(xié)議

              WESB 支持符合 SOA 標(biāo)準(zhǔn)的協(xié)議,比如 SOAP/HTTP、SOAP/JMS、WSDL V1.1、UDDI V3.0,WebSphere MQ 等。也就是說 WESB 目前只支持 SOAP 方式來描述服務(wù),傳輸協(xié)議可以是 HTTP、JMS 記憶原生的 WebSphere MQ 的連接。對(duì)于多傳輸協(xié)議的基礎(chǔ),建議使用 MB 來做 ESB 的解決方案,參考 MB 的介紹部分。

            3. 消息路由

              消息的路由在 WESB 中有良好的支持,開發(fā)環(huán)境 WID 中提供了一個(gè)節(jié)點(diǎn)專門來負(fù)責(zé)消息路由,WID 也提供了良好的對(duì)路由規(guī)則定義的開發(fā)支持,開發(fā)人員可以很容易的定制負(fù)責(zé)的路由規(guī)則。若要實(shí)現(xiàn)動(dòng)態(tài)路由的功能,則需要和一個(gè)服務(wù)的存儲(chǔ)單元中來動(dòng)態(tài)的查找服務(wù),目前 WSRR 是一款優(yōu)秀的提供該功能的工具(參見參考資料部分了解 WSRR)。WESB 從 V6.1 開始提供了 Endpoint lookup 節(jié)點(diǎn)來支持 WSRR 的集成,簡(jiǎn)化了開發(fā)過程。如果要實(shí)現(xiàn)簡(jiǎn)單的動(dòng)態(tài)服務(wù)路由的功能,則可把服務(wù)的定義存放在數(shù)據(jù)庫(kù)中,在 WESB 中通過 DB lookup 來查找服務(wù)的 Endpoint, 然后注入到消息流中,WESB V6.1 之前的版本就已經(jīng)支持與數(shù)據(jù)庫(kù)的集成。

            4. 對(duì) Web Service 的支持

              WESB 天生運(yùn)行在 J2EE 的環(huán)境里面,對(duì) Web Service 有著天然的支持。

            5. 事件處理

              在消息流中,我們需要跟蹤消息各節(jié)點(diǎn)的狀態(tài),以滿足統(tǒng)計(jì)和出錯(cuò)處理的要求,在 WESB 中,通過 CEI 機(jī)制來處理消息。(CEI 的介紹請(qǐng)參見參考資料部分)

            6. 與遺留系統(tǒng)的集成

              WESB 通過 Adapter 與遺留系統(tǒng)進(jìn)行集成,支持 IBM Websphere Adapter 和 JCA Adapter,通過 JCA 我們就可以將遺留系統(tǒng)里面的服務(wù)和數(shù)據(jù)通過標(biāo)準(zhǔn)(SCA/SDO)的形式整合到集成環(huán)境中。

            7. 安全方面的支持

              WESB 沒有對(duì)安全做特殊的處理,使用 WAS 的安全支持來實(shí)現(xiàn) ESB 的安全。

            8. 性能

              WESB 是一個(gè)純 Java 的應(yīng)用,運(yùn)行效率上有些限制,同時(shí)可以處理的消息流的數(shù)量級(jí)為幾十到幾百之間。

            9. 開發(fā)和部署

              開發(fā)工具是 WID,一個(gè) ESB 的消息流在 WID 中被稱為 Mediation Module,它是一個(gè) J2EE 應(yīng)用,開發(fā)和部署工作無異于普通的企業(yè)級(jí)應(yīng)用。

            Message Broker

            WMB 是 IBM 的應(yīng)用整合中間件,是 IBM ESB 架構(gòu)重要的產(chǎn)品組成部分之一,用于企業(yè)應(yīng)用整合領(lǐng)域。WMB 目前的版本是 6.1.2,它的前身是 MQSeries Integrator。本質(zhì)上看,WMB 是 MQ 的衍生產(chǎn)品,它使用 MQ 作為內(nèi)部通信的機(jī)制。然后,WMB 提供的接入方式遠(yuǎn)不止 MQ 一種,包括 JMS、HTTP(S)、SCADA 等常見的新一代接口規(guī)范。在消息轉(zhuǎn)化過程中,WMB 能夠識(shí)別 XML、C 結(jié)構(gòu)、SOAP 等各種自定義的消息格式。

            如圖 5 所示,WMB 可以分為開發(fā)環(huán)境和運(yùn)行環(huán)境兩大部分。其中開發(fā)環(huán)境由開發(fā)工具(Toolkit)和調(diào)試環(huán)境(Rational Agent Controller)組成,運(yùn)行環(huán)境是 WMB 核心,也叫 Broker Domain,由三部分組成,配置管理器(Configuration Manager)、用戶名服務(wù)器(User Name Server)和代理(Broker)。

            圖 5. WMB 組件
            • 代理(Broker):消息代理是 WMB 的消息處理引擎,它提供 WMB 的所有運(yùn)行服務(wù),在 Windows 系統(tǒng)上它是一個(gè)系統(tǒng)服務(wù),在 Unix 平臺(tái)上表現(xiàn)為一個(gè)后臺(tái)進(jìn)程。應(yīng)用系統(tǒng)利用與 MQ 的連接和隊(duì)列將消息發(fā)送到消息代理。代理與代理之間,代理與配置管理器之間通過普通的 MQ 發(fā)生和接受類型的消息通道進(jìn)行通信。在一個(gè)主機(jī)上我們可以創(chuàng)建一個(gè)或者多個(gè) Broker,每個(gè) Broker 會(huì)關(guān)聯(lián)一個(gè)數(shù)據(jù)庫(kù),利用數(shù)據(jù)庫(kù)存儲(chǔ) Broker 需要和相關(guān)的信息,每個(gè) Broker 還需要一個(gè)隊(duì)列管理器,多個(gè) Broker 之間不能共享同一個(gè)隊(duì)列管理器,每個(gè) Broker 必須有自己特定的、唯一的隊(duì)列管理器。每個(gè) Broker 只能被一個(gè)配置管理器控制。
            • 配置管理器(Configuration Manager):配置管理器是整個(gè) WMB 運(yùn)行環(huán)境中的控制中心,它維護(hù)整個(gè) Broker Domain 的配置信息,配置和管理所有代理,增、刪、啟動(dòng)、停止消息流,所有的開發(fā)工具也是通過配置管理器來部署編譯結(jié)果的。配置管理器也負(fù)責(zé)與用戶名服務(wù)器聯(lián)系,配置和管理各種用戶權(quán)限。配置管理器和其他各個(gè)部件之間的接口是 MQ,所以配置管理器也必須是基于 MQ 隊(duì)列管理器而運(yùn)行的。
            • 用戶名服務(wù)器(User Name Server):用戶名服務(wù)器是 WMB 運(yùn)行環(huán)境中的可選部分,它可以提供應(yīng)用程序的接入認(rèn)證以及訂閱主題的訪問控制服務(wù)。用戶名服務(wù)器本身是不需要數(shù)據(jù)庫(kù),但必須依賴于隊(duì)列管理器與其他組件通信。用戶名服務(wù)器中的用戶信息來自認(rèn)證數(shù)據(jù)文件。
            • 開發(fā)工具(Toolkit):開發(fā)工具是基于 Eclipse 3.0 的集成開發(fā)環(huán)境,我們可以在其中開發(fā)消息流、消息集、ESQL 代碼、Java 代碼、映射規(guī)則等。通過內(nèi)置的 MQ Client 與配置管理器連接,并將開發(fā)好的執(zhí)行組件部署到相關(guān)的代理中。Eclipse 環(huán)境由不同的視圖(Perspective)組成,我們?cè)?WMB 中常用的有代理開發(fā)視圖、代理管理視圖等。
            • 調(diào)試工具(Rational Agent Controller):這是 IBM Rational 開發(fā)工具標(biāo)準(zhǔn)的調(diào)試工具。一般安裝在代理所在的服務(wù)器一邊,開發(fā)工具可以連接 RAC,通過它來控制和調(diào)試消息流的運(yùn)行。需要注意的是,Toolkit 可以并行開發(fā),但是對(duì)于同一個(gè)執(zhí)行組不能并行調(diào)試,因 RAC 的調(diào)試過程是排他的。在 WMB6.0 之后 RAC 不需要再單獨(dú)安裝。

            下面從九個(gè)方面來介紹 WMB 在實(shí)現(xiàn)一個(gè) SOA ESB 解決方案上的支持的特點(diǎn):

            1. 消息轉(zhuǎn)換

              WMB 在消息處理方面功能非常強(qiáng)大,對(duì) XML 格式的消息或非 XML 格式的消息,如 C Header,COBOL 等都有很好的支持。實(shí)際上,通過開發(fā)消息對(duì)應(yīng)的消息集(Message Set),可以在消息流中對(duì)任意格式的消息進(jìn)行修改。WMB 提供了內(nèi)置的 mapping 和 database 節(jié)點(diǎn),用戶可以通過圖形化的方式方便的實(shí)現(xiàn)消息的轉(zhuǎn)換或與數(shù)據(jù)庫(kù)的交互。

            2. 支持的協(xié)議

              WMB 支持所有 WESB 支持的傳輸協(xié)議,除了常用的 HTTP、JMS 等,還對(duì) FTP、Socket、Mobile、Telemetry、Biztalk 和 Tuxedo 等有良好的支持。WMB 與 MQ 有著緊密的聯(lián)系,對(duì) MQ 的支持不在話下。WMB 內(nèi)置的功能節(jié)點(diǎn)對(duì)這些協(xié)議提供了很好的支持,僅需配置即可,如圖 6 所示。
              圖 6. Message Broker 的內(nèi)置開發(fā)節(jié)點(diǎn)

               

            3. 消息路由

              WMB 提供了很多功能強(qiáng)大的內(nèi)置節(jié)點(diǎn)支持消息的路由,如 Filter 節(jié)點(diǎn)、Label 節(jié)點(diǎn)等,在新版本的 WMB 中又引入了 Router 節(jié)點(diǎn),該節(jié)點(diǎn)幾乎和 WESB 中的 Router 節(jié)點(diǎn)一樣。若需要實(shí)現(xiàn)動(dòng)態(tài)路由,可以使用 WSRR 作為服務(wù)的存儲(chǔ),WMB 和 WSRR 有很好的集成,通過 RegistryLookup 和 EndpointLookup 我們可以在消息流中實(shí)現(xiàn)動(dòng)態(tài)路由。另外需要指出的是,WMB 可以提供一個(gè)消息輸入,多個(gè)消息輸出的功能,可以實(shí)現(xiàn)一個(gè)消息同時(shí)路由到多個(gè)輸出端。

            4. 對(duì) Web Service 的支持

              在 WMB 中,消息流可以作為 Web Service 暴露出去供外部調(diào)用,也可以作為客戶端調(diào)用外部提供的 Web Service。WMB 不僅提供了內(nèi)置的 SOAPRequest、SOAPInput 等節(jié)點(diǎn)實(shí)現(xiàn)對(duì) Web Service 的支持,而且對(duì) WS 擴(kuò)展,如 WS-Security 和 WS-Addressing 也有良好的支持。


               

            5. 事件處理

              在 WMB 中我們可以通過 Trace Service 來記錄所發(fā)生的事件。Trace 分兩種,一種是 User Trace 記錄消息流級(jí)別的事件,另一種是 Service Trace,可以記錄整個(gè) WMB 的事件,如 Broker 的部署執(zhí)行。WMB 提供了 Trace 內(nèi)置節(jié)點(diǎn),可以實(shí)時(shí)的記錄流程中消息內(nèi)容的變化。

            6. 與遺留系統(tǒng)的集成

              WMB 對(duì)遺留系統(tǒng)有良好的支持。對(duì) SAP,PeopleSoft 等大型的 EIS 系統(tǒng),直接提供了內(nèi)置的節(jié)點(diǎn),通過 JCA Adapter 配置的方式和 EIS 系統(tǒng)交互。對(duì)于比較特別的遺留系統(tǒng),如 CICS、VSAM 等,WMB 提供了豐富的 SupportPacs,客戶可以下載并安裝。

            7. 安全方面的支持

              WMB 本身提供了兩個(gè)層次上的安裝,一個(gè)是部署時(shí)安全性,管理部署 bar 文件到 Broker 以及運(yùn)行 WMB 管理命令的權(quán)限控制;另一個(gè)是運(yùn)行時(shí)安全,涉及的權(quán)限控制包括發(fā)送消息到相應(yīng)的消息流,以及消息流可以訪問哪些 MQ 資源和非 MQ 資源,如數(shù)據(jù)庫(kù)系統(tǒng)。

            8. 性能

              WMB 底層是使用 C++ 開發(fā)的,在性能上相對(duì)于 WESB 有很大的提高。同時(shí)可以處理的消息數(shù)量級(jí)為幾千到幾萬之間。

            9. 開發(fā)和部署

              開發(fā)工具是 WMB Toolkit,我們開發(fā)的消息流和消息集被打成 bar 文件通過配置管理器部署到 Broker 中。

            總的來說,WMB 是 IBM 久經(jīng)考驗(yàn)的一款消息中間件產(chǎn)品,為異構(gòu)的 IT 環(huán)境提供了統(tǒng)一的連接和轉(zhuǎn)化,其優(yōu)勢(shì)如下:

            • 利用 WebSphere MQ 作為企業(yè)消息傳遞主干,提供了很好的并發(fā)性和可靠性
            • 不僅支持各種標(biāo)準(zhǔn)協(xié)議,而且支持和 WebSphere 企業(yè)應(yīng)用程序適配器進(jìn)行集成
            • 支持多種數(shù)據(jù)格式之間的轉(zhuǎn)換,包括 XML、遺留系統(tǒng)、行業(yè)標(biāo)準(zhǔn)和自定義消息格式
            • 針對(duì)大量數(shù)據(jù)處理進(jìn)行了優(yōu)化,極大提高了處理速度。

            Datapower

            DataPower 是一個(gè)硬件產(chǎn)品,看起來像一個(gè)盒子。目前 IBM 有三款 Datapower 產(chǎn)品供用戶選擇。按照進(jìn)入市場(chǎng)的先后次序,它們分別是:Datapower Accelerator XA35,Datapower Security Gateway XS40, Datapower Integration Appliance XI50,見圖 7。

            圖 7. IBM 的 Datapower 產(chǎn)品線

            • XA35 的主要側(cè)重點(diǎn)是 XML 加速,眾所周知,在 SOA 的環(huán)境中,XML 是應(yīng)用最廣泛的,而對(duì) XML 的解析,加密,解密這些操作讓應(yīng)用服務(wù)器來做的話,這是一個(gè)很大性能開銷,而 XA35 就是要替應(yīng)用服務(wù)器的分擔(dān)這些 XML 相關(guān)的工作,讓應(yīng)用服務(wù)器專注于處理業(yè)務(wù)邏輯;
            • XS40 的主要側(cè)重點(diǎn)是安全,即負(fù)責(zé)提供安全的企業(yè)網(wǎng)關(guān),及對(duì) XML 攻擊的防范。
            • XI50,從名字上看,主要側(cè)重點(diǎn)是集成功能,是一款高級(jí) ESB 產(chǎn)品,提供了多種協(xié)議和數(shù)據(jù)格式的路由和解析的功能。

            雖然三款產(chǎn)品各有側(cè)重,但是三款產(chǎn)品的功能也具有包含關(guān)系,XS40 包含 XA35 的功能,XI50 包含 XS40 的功能。

            我們依然從以下九個(gè)方面來介紹 Datapower 在實(shí)現(xiàn) ESB 解決方案中的特點(diǎn)。

            1. 消息轉(zhuǎn)換

              Datapower 對(duì) XML 消息有強(qiáng)大的支持,但是 Datapower 絕不僅僅支持 XML,我們可以在 Policy 中使用 Transformation 節(jié)點(diǎn)來對(duì)消息進(jìn)行任意我們需要的轉(zhuǎn)換,其原理是使用 XSLT 來實(shí)現(xiàn)的,開發(fā)人員定義自己 XSLT Stylesheet 并在 Transformation 節(jié)點(diǎn)中指定,Datapower 負(fù)責(zé)轉(zhuǎn)換。

            2. 支持的協(xié)議

              Datapower 支持和以下傳輸協(xié)議,HTTP,HTTS,WebSphere MQ
              WebSphere JMS,TIBICO EMS,F(xiàn)TP Poller, FTP Server, NFS 等等。 Datapower 的 MPGW 就是一個(gè)處理不同協(xié)議的應(yīng)用系統(tǒng)的互聯(lián)的服務(wù)對(duì)象。

            3. 消息路由

              Datapower 支持對(duì)服務(wù)和消息的路由,根據(jù)消息流中的上下文連接將消息動(dòng)態(tài)的分發(fā)到不同的消息提供者。但是 Datapower 的動(dòng)態(tài)路由和 WESB 以及 MB 的動(dòng)態(tài)路由還是有區(qū)別的,Datapower 的動(dòng)態(tài)路由需要由開發(fā)者定義路由的 Map,而 WESB 和 MB 支持在消息頭的屬性里動(dòng)態(tài)的設(shè)置 Endpoint 的地址。目前 Datapower 可以和 WSRR 集成來定義 WS-Proxy(Datapower 中的一種服務(wù)對(duì)象),但不支持直接和 WSRR 聯(lián)合實(shí)現(xiàn)動(dòng)態(tài)訪問 Endpoint 的功能。

            4. 對(duì) Web Service 的支持

              Datapower 的 XMlFirewall 和 WS-Proxy 提供了強(qiáng)大的對(duì) Web Service 的支持,而且 datapower 提供了細(xì)粒度的對(duì) Web Service 的控制,可以從服務(wù)級(jí) (Service),端口級(jí) (port),綁定級(jí) (binding),操作級(jí) (operation) 來對(duì)消息體進(jìn)行控制。此外,對(duì) WS-Security 也提供了強(qiáng)大的支持。

            5. 事件處理

              Datapower 中可以通過 Probe 的方式來跟蹤消息流的中間狀態(tài),在 Probe 中,可以看到消息流的每個(gè)節(jié)點(diǎn)的消息內(nèi)容。Probe 一般用于開發(fā)調(diào)試過程,在生產(chǎn)模式下一般不使用,因?yàn)槭鼓?Probe 會(huì)犧牲一定的效率。Datapower 不支持與 CEI 類似將消息發(fā)送到其他應(yīng)用系統(tǒng)的機(jī)制。

            6. 與遺留系統(tǒng)的集成

              Datapower 不支持和 Adapter 的連接,若要與遺留系統(tǒng)的集成,則需要通過其他中間件轉(zhuǎn)換在遺留系統(tǒng)和 Datapower 之間做而橋梁來連接。

            7. 安全方面的支持

              Datapower 的強(qiáng)大之處在于其對(duì)安全方面的強(qiáng)有力的支持,它提供對(duì) XML-attack 的原生支持(關(guān)于 XML-attack 的知識(shí)參見參考資料);此外,Datapower 可以對(duì) Web Service 提供細(xì)粒度的安全支持,包括加密 (Encryption),解密 (Decryption),簽名 (Sign) 和確認(rèn) (Verify),以及 HTTS 方面的支持。這些支持在 Datapower 上開發(fā)起來都異常簡(jiǎn)單。

            8. 性能

              Datapower 無疑是三款 ESB 產(chǎn)品中性能最高的,對(duì) XML 的處理速度達(dá)到線速,下圖是一組測(cè)試結(jié)果。如果去處網(wǎng)絡(luò)傳輸在其中的比例,對(duì) XML 的處理性能所提高的倍數(shù)可達(dá)到上百倍。

              Software Solution DP Solution
              Avg. response time ( TimeP / N ) XML processing time ( TimeX ) Avg. response time ( TimeP / N ) XML processing time ( TimeX )
              106 ms 96 ms 19 ms 11ms
            9. 開發(fā)和部署

              Datapower 的沒有相應(yīng)的開發(fā)工具,但是提供了 Web GUI 的管理控制臺(tái)和 CLI 方式的管理支持。我們?cè)?Web GUI 下開發(fā)消息流,開發(fā)即部署。

              高速的 XML 處理能力和強(qiáng)大的安全支持,是 Datapower 作為 SOA 應(yīng)用中的 ESB 的重要特色,這個(gè)特點(diǎn)使得 Datapower 成為一款舉足輕重的 ESB 產(chǎn)品。

            三款產(chǎn)品的比較

            從上面的介紹我們可以看出,三款產(chǎn)品都提供了 ESB 的必須的功能,但各有側(cè)重:

            • WESB 是一個(gè)輕量級(jí)的 ESB,側(cè)重于標(biāo)準(zhǔn)協(xié)議,SOAP,JMS 等應(yīng)用的基礎(chǔ),構(gòu)建于 WASND 基礎(chǔ)之上,提供了和 J2EE 應(yīng)用很好的集成功能;同時(shí)由于 WESB 是一個(gè)純 Java 的應(yīng)用服務(wù)器,在性能上也是相對(duì)較差一點(diǎn)的 ESB,可并發(fā)執(zhí)行的 Mediation Flow 的數(shù)量級(jí)在幾十個(gè)左右。WESB 適合使用于對(duì)性能要求不是很高,且遵循標(biāo)準(zhǔn)協(xié)議的 SOA 整合環(huán)境中。WESB 的優(yōu)勢(shì)是提供了和流程服務(wù)器 WPS 以及 J2EE 服務(wù)器 WAS 良好的整合。WESB 的應(yīng)用場(chǎng)景見圖 8:
            圖 8. WESB 的應(yīng)用場(chǎng)景
            • WMB 是一款高級(jí)的 ESB,提供了比 WESB 多很多的傳輸協(xié)議,數(shù)據(jù)格式的支持,它所支持幾乎大部分常用的數(shù)據(jù)格式和協(xié)議。并且 WMB 提供了良好的擴(kuò)展功能,開發(fā)人員可以在 WMB 基礎(chǔ)上開發(fā)自己的數(shù)據(jù)格式解析的節(jié)點(diǎn)。WMB 使用 C/C++ 編寫,在處理性能上比 ESB 也要高出很多倍,可并發(fā)執(zhí)行的流可以達(dá)到上百個(gè)或上千個(gè)。從圖 9 可以看出 WESB 和 WMB 在支持的協(xié)議上的區(qū)別。
            圖 9. WESB 和 WMB 的比較

            WMB 應(yīng)用于對(duì)性能要求相對(duì)較高,多種復(fù)雜協(xié)議存在的集成環(huán)境中。另外,WMB 構(gòu)建于 WebSphere Message Queue(WMQ)之上。 WMQ 提供了對(duì)異步消息提供了可靠的傳送機(jī)制,比較適合于信息傳輸量較大,信息交互頻繁的場(chǎng)景中。如圖 10 所示:

            圖 10. WMB 的使用場(chǎng)景

            • Datapower 是 SOA 中的又一重要的 ESB,在 WESB 和 WMB 中都是用軟件來實(shí)現(xiàn) XML 解析和安全支持的,而 Datapower 使用硬件的 XML 解析和加速器,在性能上有了很大的提高。在很多 SOA 的環(huán)境里,安全和性能是天平的兩端,增加安全勢(shì)必要犧牲性能;而提高性能則需要犧牲安全。所以在安全和性能要求都比較高的環(huán)境中,Datapower 是一首選 ESB,因?yàn)?Datapower 可以在實(shí)現(xiàn)高性能的同時(shí)也保證安全。圖 11 是一種 Datapower 的應(yīng)用場(chǎng)景:
            圖 11. Datapower 的使用場(chǎng)景

            總結(jié)

            基于上文對(duì)三款產(chǎn)品做了詳細(xì)的比較,我們可以做如下總結(jié),WESB 適用于 J2EE 環(huán)境下,對(duì)性能要求不是很高的,標(biāo)遵循標(biāo)準(zhǔn)協(xié)議的 SOA 集成;WMB 應(yīng)用更復(fù)雜的集成環(huán)境,表現(xiàn)為數(shù)據(jù)格式多種,傳輸協(xié)議多樣,性能要求很高;而在安全和性能要求都很高的應(yīng)用場(chǎng)景下,選擇 Datapower 無疑是最好的選擇。下面的圖表再次對(duì)文中的描述進(jìn)行總結(jié)。

            ESB 功能特點(diǎn) WESB 的支持 MB 的支持 Datapower
            消息轉(zhuǎn)換 XML XML、非 XML XML、非 XML
            支持的協(xié)議 HTTP,JMS, WMQ 等 多達(dá)上百種 介于前二者之間
            消息路由 強(qiáng)大,靈活 功能強(qiáng)大,靈活 靈活度比前二者稍弱
            Web Service 強(qiáng)大的支持 支持 WS 擴(kuò)展 強(qiáng)大的支持
            事件處理 CEI,可以和外部事件消費(fèi)系統(tǒng)監(jiān)控 Trace Service 用于調(diào)試 Probe
            遺留系統(tǒng)的集成 Adapter 豐富的 SupportPac 特定的遺留系統(tǒng)
            安全 依賴 WAS 的安全 部署和運(yùn)行時(shí)兩個(gè)級(jí)別的安全 超強(qiáng)的安全支持
            性能 幾十到幾百每秒 幾千到幾萬每秒 達(dá)到線速
            開發(fā)和部署 WID 集成開發(fā)環(huán)境 WMB Toolkit WebGUI

            在本文的第 2 部分中,我們將用一個(gè)簡(jiǎn)化的實(shí)際案例來描述三款 ESB 產(chǎn)品在實(shí)現(xiàn)上的差異。

            參考資料

            學(xué)習(xí) 獲得產(chǎn)品和技術(shù)
            • 使用 IBM 試用軟件 開發(fā)您的下一個(gè)項(xiàng)目,可下載或索取 DVD 光盤。
            討論
            欧美日韩精品久久久久| 国产精品久久久久久吹潮| 亚洲精品无码久久久| 综合网日日天干夜夜久久| 久久免费线看线看| 国产精品久久婷婷六月丁香| 青青草原精品99久久精品66| 久久免费高清视频| 久久伊人精品一区二区三区| 亚洲欧美精品伊人久久| 久久精品国产亚洲AV香蕉| 99久久久久| 亚洲熟妇无码另类久久久| 久久久综合香蕉尹人综合网| 99久久婷婷国产综合亚洲| 久久久久久久女国产乱让韩| 精品多毛少妇人妻AV免费久久| 久久久久人妻精品一区二区三区| 欧美国产精品久久高清| 久久免费小视频| 国产精品久久久久久一区二区三区| 中文字幕精品久久久久人妻| 国产叼嘿久久精品久久| 国产一级持黄大片99久久| 久久国产劲爆AV内射—百度| 久久亚洲中文字幕精品一区四| 九九99精品久久久久久| 天天躁日日躁狠狠久久| 蜜桃麻豆WWW久久囤产精品| 无码任你躁久久久久久久| 久久久人妻精品无码一区| 91精品婷婷国产综合久久| 精品久久久久久中文字幕| 国产亚洲欧美精品久久久| 亚洲精品乱码久久久久久蜜桃图片| 午夜精品久久久内射近拍高清 | 久久天天躁狠狠躁夜夜不卡 | 久久亚洲精品国产亚洲老地址| 99久久精品免费看国产免费| 久久最新精品国产| 国产女人aaa级久久久级|