kapok

          垃圾桶,嘿嘿,我藏的這么深你們還能找到啊,真牛!

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            455 隨筆 :: 0 文章 :: 76 評(píng)論 :: 0 Trackbacks
          <2005年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(28)

          隨筆分類

          隨筆檔案

          Corba

          EAI

          Online Document

          Open Source

          Portal

          RSS Links

          Weblogic

          不錯(cuò)的鏈接

          工具集合

          數(shù)據(jù)倉(cāng)庫(kù)相關(guān)

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          http://www-128.ibm.com/developerworks/cn/webservices/ws-jcajms/

          為企業(yè)集成定位其它接口技術(shù)

          Regis Coqueret, 客戶經(jīng)理/解決方案 設(shè)計(jì)師, jStart Emerging Technologies,IBM Software Group
          Marc Fiammante, 高級(jí)顧問 IT 設(shè) 計(jì)師, SWG EMEA Business Integration Technical Sales,IBM

          2003 年 3 月

          本文討論了在 J2C 連接器體系結(jié)構(gòu)(J2C Connector Architecture,JCA)、Java 消息服務(wù)(Java Message Service,JMS)和 Web 服務(wù)實(shí)現(xiàn)之間作出選擇的標(biāo)準(zhǔn)(選擇的依據(jù)是現(xiàn)有的環(huán)境、您想實(shí)現(xiàn)的模式和松耦合或緊耦合的預(yù)置要求)。

          引言

          組織在迅速地發(fā)展,他們?cè)噲D在控制成本的同時(shí)滿足變化的業(yè)務(wù)需求。這意味著企業(yè)需要以支持信息系統(tǒng)的簡(jiǎn)易重組的方式來組織他們自己的應(yīng)用程序。重要的組織變化(例如兼并或子公司的創(chuàng)建)也有可能把新的變數(shù)引入信息系統(tǒng)。

          企業(yè)還可能需要到市場(chǎng)上購(gòu)買應(yīng)用程序或簽定他們的部分業(yè)務(wù)需求的轉(zhuǎn)包合同(例如分類帳或 back-office 管理)。無法保證現(xiàn)有的技術(shù)框架支持這些服務(wù)。

          隨著信息系統(tǒng)變得越來越復(fù)雜,開發(fā)必須被簡(jiǎn)化。這使人們對(duì) 企業(yè)應(yīng)用程序集成(Enterprise Application Integration,EAI)產(chǎn)生了興趣。企業(yè)仍然必須用業(yè)務(wù)服務(wù)和訪問新的集成應(yīng)用程序的靈活方式來補(bǔ)充 EAI。

          目前,基于接口的體系結(jié)構(gòu)考慮了這種對(duì)業(yè)務(wù)服務(wù)的靈活訪問和客戶機(jī)獨(dú)立性的不斷增長(zhǎng)的需求?;诮涌诘捏w系結(jié)構(gòu)包括 Web 服務(wù)、 J2C 連接器體系結(jié)構(gòu)(J2C Connector Architecture,JCA;請(qǐng)參閱 參考資料以了解更多信息)和 Java 消息服務(wù)(Java Message Service,JMS)等技術(shù)。它們還包括分離客戶機(jī)代碼和業(yè)務(wù)服務(wù)的實(shí)現(xiàn)的命令模式的所有變種。這些調(diào)用框架與 EAI 中間件之間可以相互調(diào)用。

          在本文中,我們先討論每個(gè)接口技術(shù)的主要特點(diǎn),然后講述促使您選擇技術(shù)的要求。讀完本文后,您將理解如何定位各種技術(shù)以及如何為某個(gè)實(shí)現(xiàn)選擇其中的一種技術(shù)。

          Web 服務(wù)、JCA 和 JMS 的特點(diǎn)

          這一部分列出有關(guān)的接口技術(shù)并詳細(xì)介紹它們的一些特點(diǎn)。

          Web 服務(wù)

          Web 服務(wù)是面向服務(wù)的體系結(jié)構(gòu)(Services Oriented Architecture,SOA)的實(shí)現(xiàn)。SOA 有松耦合的三方:提供者、代理和請(qǐng)求者。提供者提供的業(yè)務(wù)服務(wù)表示請(qǐng)求者無法直接看到的某個(gè)實(shí)現(xiàn)。請(qǐng)求者從代理那里了解它必須從提供者那里收發(fā)的信息結(jié)構(gòu)以及訪問該服務(wù)所用的協(xié)議。請(qǐng)求者一點(diǎn)也不了解提供者實(shí)現(xiàn)業(yè)務(wù)服務(wù)的方式。

          Web 服務(wù)被定義為請(qǐng)求者與提供者之間的必需的業(yè)務(wù)接口而不是所有業(yè)務(wù)請(qǐng)求的共同管道。有些變數(shù)反映了 Web 服務(wù)的特點(diǎn),包括:

          • 它們可以是緊耦合的,它們的部署可以基于調(diào)用框架的使用。
          • 它們以同步的請(qǐng)求/應(yīng)答方式或異步方式來執(zhí)行。
          • 它們可由 J2EE 或非 J2EE 的提供程序來公開。
          • 它們可能提供事務(wù)和安全性的支持(也可能不提供這種支持)。

          JCA

          Java 連接器體系結(jié)構(gòu)主要處理的是以緊耦合的方式訪問 企業(yè)信息系統(tǒng)(Enterprise Information System,EIS)的業(yè)務(wù)邏輯的需求。連接器體系結(jié)構(gòu)提供了資源適配的支持,資源適配把 J2EE 安全性、事務(wù)和通信共享映射到相應(yīng)的 EIS 技術(shù)。

          起初,人們的意圖是讓連接器以同步的請(qǐng)求/應(yīng)答方式來訪問大型機(jī)上的舊的事務(wù)服務(wù)器,這也是當(dāng)前多數(shù)連接器的工作方式。目前,標(biāo)準(zhǔn)的發(fā)展方向是更異步的雙向連接性。

          連接器的某些用戶定義的變種更成熟,它們運(yùn)行在邏輯連接方式下。同樣,它們可被用作調(diào)用框架,以類似于 Web 服務(wù)的方式來選擇適當(dāng)?shù)奈锢?EIS 目標(biāo)和業(yè)務(wù)操作。

          JMS

          JMS 是異步的、基于消息的接口。您還可以使用 JMS 來訪問分布于不同種類的系統(tǒng)中的業(yè)務(wù)邏輯。基于消息的接口支持以下功能:

          點(diǎn)到點(diǎn)和發(fā)布/預(yù)訂機(jī)制?;谙⒌目蚣芸砂研畔鹘o其它應(yīng)用程序而這些程序不必顯式地請(qǐng)求它。相同的信息可被并行地傳遞給許多訂戶。

          節(jié)奏的獨(dú)立性。JMS 框架以異步方式運(yùn)行,但也提供模擬同步的請(qǐng)求/響應(yīng)方式的功能。這使源系統(tǒng)和目標(biāo)系統(tǒng)能夠同時(shí)運(yùn)行而不必等待對(duì)方。

          有保證的信息傳遞。JMS 框架可在事務(wù)方式下管理消息并確保消息的傳遞(但不確保傳遞的及時(shí)性)。

          不同種類的框架之間的互操作性。源應(yīng)用程序和目標(biāo)應(yīng)用程序可在不同種類的環(huán)境中運(yùn)行而不必處理有關(guān)它們相應(yīng)的框架的通信和執(zhí)行問題。

          使交換更流暢。改用消息方式后,信息交換的細(xì)粒度變細(xì)。

          選擇接口技術(shù)

          您過去在系統(tǒng)中實(shí)現(xiàn)業(yè)務(wù)邏輯的方式將使您自然地面對(duì)這些技術(shù)中的一種技術(shù)。作出選擇的第一步是分析您現(xiàn)有的基礎(chǔ)結(jié)構(gòu)。有現(xiàn)有的消息傳遞系統(tǒng)或舊系統(tǒng)(例如 CICS 或 IMS)嗎?

          在許多情況下,訪問大型機(jī) EIS(例如 CICS 或 IMS)的最自然的方式是通過 Java 連接器體系結(jié)構(gòu)。另一方面,如果您需要訪問 .NET 應(yīng)用程序,那么您很可能傾向于 Web 服務(wù)接口。在其它情況下,您可能使用 JMS 接口,該接口允許消息的交換而且對(duì)實(shí)現(xiàn)語言的約束很小。

          請(qǐng)使用以下的決定要點(diǎn)的摘要:

          您有現(xiàn)有的 Java 應(yīng)用程序或在規(guī)劃新的 Java 應(yīng)用程序:使用 JMS 或 JCA。

          您需要與伙伴交互:把 Web 服務(wù)用于傳輸和連接。

          您需要跨越語言之間的障礙:使用 JMS 或 Web 服務(wù)。

          在作出決定時(shí),另一個(gè)要考慮的因素是網(wǎng)絡(luò)的范圍:是因特網(wǎng)、內(nèi)部網(wǎng)或外部網(wǎng)中的哪個(gè)?該范圍決定了您在選擇傳輸協(xié)議時(shí)的靈活性。因特網(wǎng)上的部署很可能需要通過 HTTP 的松耦合的 Web 服務(wù)。這將與現(xiàn)有的防火墻和 非軍事區(qū)(demilitarized zone,DMZ)基礎(chǔ)結(jié)構(gòu)相配套,您可以最大限度地降低成本。JMS 和 JCA 更適合作為內(nèi)部網(wǎng)或外部網(wǎng)協(xié)議。JMS 適合用于異步方式或模擬的同步方式,JCA 適合用于更緊的耦合。

          選擇的共同點(diǎn)

          Web 服務(wù)不是通過 SOAP 提供的服務(wù)的同義詞。您可以把任何帶有它的功能的 Web 服務(wù)描述語言(Web services Description Language,WSDL)描述的代碼和訪問協(xié)議看作 Web 服務(wù)。您可以通過多個(gè)傳輸和協(xié)議來提供任何這種服務(wù)。

          因此,您可以采用以 WSDL 為中心的方式,這一方式由 Web 服務(wù)調(diào)用框架(Web services Invocation Framework,WSIF)來描述和實(shí)現(xiàn)。無論網(wǎng)絡(luò)的范圍(內(nèi)部網(wǎng)、外部網(wǎng)或因特網(wǎng)),這把您為集成作出的選擇聯(lián)系在一起。

          您很可能試圖把更多的選擇留到未來的擴(kuò)展規(guī)劃中,包括現(xiàn)有企業(yè)系統(tǒng)的擴(kuò)展或連接到業(yè)務(wù)伙伴。為了簡(jiǎn)化這種做法,您可以在一個(gè) WSDL 文檔中描述相同的業(yè)務(wù)組件,您可以:

          • 通過 入站綁定(inbound binding)概念,在不同的協(xié)議(例如 SOAP 和 RMI-IIOP)中提供。RMI 是 Java 遠(yuǎn)程消息調(diào)用。因特網(wǎng) ORB 間協(xié)議(Internet Inter-ORB protocol,IIOP)是 CORBA 有線協(xié)議。
          • 通過 出站綁定(outbound binding)概念,用不同類型的組件(例如 JCA 或基于 JMS 的組件)來實(shí)現(xiàn)。

          如果使用這種方式,那么 JMS 和 JCA 只是服務(wù)器提供程序可能用來實(shí)現(xiàn)業(yè)務(wù)組件的幾個(gè)協(xié)議。因此,不同網(wǎng)絡(luò)和接口技術(shù)只影響非功能性的部分,例如安全性、性能、響應(yīng)時(shí)間和可用性。當(dāng)內(nèi)部網(wǎng)和因特網(wǎng)上的相同組件可被使用時(shí),兩個(gè)網(wǎng)絡(luò)的區(qū)別是所需的安全性、預(yù)期的性能和要求的可用性。

          Web 服務(wù)的以 WSDL 為中心的方式使您能夠把抽象的接口從確切的協(xié)議棧中分離出來。您可以用兩種方法來實(shí)現(xiàn)這種方式(兩種方法都利用 WSIF):

          1. 通過使用 IBM Web Services Gateway(WSGW),現(xiàn)有的 WSDL 描述被部署并在 SOAP 通道中使用 WSDL 描述。入站綁定是 SOAP,出站綁定是現(xiàn)有的 WSDL 實(shí)現(xiàn)描述。
          2. 通過使用 IBM WebSphere Studio Application Developer Integration Edition(WSAD-IE),現(xiàn)有的 WSDL 描述被消耗并通過 SOAP 或 RMI-IIOP 代理來使用 WSDL 描述。

          交互模式

          在設(shè)計(jì)應(yīng)用程序時(shí),您需要定義交互的模式。一般來說,這些模式揭示了您對(duì)技術(shù)集成的偏愛。

          事件驅(qū)動(dòng)的推模型

          等待事件的偵聽器提供了標(biāo)準(zhǔn)的事件推模型,該模型對(duì)于 EAI 特別重要。業(yè)務(wù)流程的自動(dòng)化常常需要捕獲應(yīng)用程序事件以便傳播到其它的集成應(yīng)用程序。

          標(biāo)準(zhǔn)的業(yè)務(wù)服務(wù)的偵聽器常常使用 JMS 或 HTTP 服務(wù)器。EJB 中的消息驅(qū)動(dòng) Bean 使用 JMS,而 Web 服務(wù)使用 HTTP。

          在這個(gè)推模型中,被推的事件觸發(fā)流程。Web 服務(wù)社區(qū)已為正式定義這種流程交互的先后順序做了大量的工作。具體地說, Web 服務(wù)流程語言(Web services Flow Language,WSFL)和 Web 服務(wù)的業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language for Web services,BPEL4WS)標(biāo)準(zhǔn)可處理這種事件排序。

          • 在 WSFL 中,作為對(duì)進(jìn)入消息的響應(yīng),流程引擎可以執(zhí)行新的流程實(shí)例(以 spawn生命周期操作為標(biāo)志)。它對(duì)單向交互的支持提供了對(duì)通知的支持。
          • 在 BPEL4WS 中,作為對(duì)進(jìn)入消息的響應(yīng), receivepick活動(dòng)可隱式地啟動(dòng)業(yè)務(wù)流程; pick活動(dòng)可根據(jù)一組事件中的一件來選擇運(yùn)行的流程。

          同步的請(qǐng)求/應(yīng)答方式

          在企業(yè)中,性能要求可能促使您選擇 JCA 實(shí)現(xiàn),特別是在目前多數(shù)業(yè)務(wù)邏輯在某個(gè)現(xiàn)有的 EIS 中的時(shí)候,更是這樣。然而,并沒有訪問所有系統(tǒng)的連接器,在有些情況下,用 JMS 來添加消息層是唯一的解決方案。

          消息傳遞不是請(qǐng)求/響應(yīng)類型交互的主要選擇。由于消息傳遞所帶來的隔離,用消息傳遞中間件實(shí)現(xiàn)的請(qǐng)求/響應(yīng)阻礙了調(diào)用者與被調(diào)者之間的事務(wù)協(xié)調(diào)。另外,調(diào)用者的編程邏輯(而不是提供的連接器實(shí)現(xiàn))必須管理響應(yīng)超時(shí)。

          異步模型

          所有三個(gè)接口技術(shù)(Web 服務(wù)、JMS 甚至 JCA)都可在異步方式下工作。請(qǐng)求或事件被發(fā)送至目標(biāo)而所期待的回答只不過是“消息被正確地傳遞”。它是“發(fā)送并忘記(fire-and-forget)”式的交互。

          在體系結(jié)構(gòu)中支持這個(gè)模型不是主要問題,您所用的技術(shù)與其它模型中的技術(shù)類似。您常常把異步模型與事件推支持或輪詢機(jī)制配對(duì),這些細(xì)節(jié)很可能促使您為實(shí)現(xiàn)選擇某種技術(shù)。

          在 Web 服務(wù)的情況下,雖然一般來說工具不適合異步交互,但是這種形式被支持。基于 SOAP 的 Web 服務(wù)不僅支持同步 RPC 交互方式,還支持異步消息交互方式。它的基礎(chǔ)是面向文檔模型,在這個(gè)模型中,請(qǐng)求者和供應(yīng)者必須處理 SOAP 信封格式化和分析。

          面向文檔模型是實(shí)現(xiàn)真正的單向通信的方法。

          技術(shù)選擇的要求和含義

          下一部分討論在選擇業(yè)務(wù)邏輯的訪問技術(shù)中作為決定因素的非功能性要求。

          松耦合或緊耦合

          緊耦合意味著存在不易改變的、被迫準(zhǔn)確表達(dá)的、預(yù)先確定的客戶機(jī)-服務(wù)器或消費(fèi)者-發(fā)布者關(guān)系。在這種情況下,對(duì)于給定的客戶機(jī),您一般只有一個(gè)特定的服務(wù)器,該服務(wù)器有故障敏感(這意味著客戶機(jī)必須處理有關(guān)協(xié)議的錯(cuò)誤)的技術(shù)交互。您可以在接口定義級(jí)別或協(xié)議棧級(jí)別上查看這種緊耦合。為了訪問該服務(wù),您可能依賴于服務(wù)的特定的抽象定義或特定的協(xié)議棧。

          松耦合系統(tǒng)常被設(shè)計(jì)成解決跨越數(shù)據(jù)流邊界的問題,工作程序只解決更大的問題的一個(gè)部分,而且不一定知道這個(gè)問題的上下文。您常常可以通過添加更多的工作程序來自然地?cái)U(kuò)展這些系統(tǒng)。

          您可以按以下方式來松耦合:

          • 通過提供描述消費(fèi)者/客戶機(jī)與生產(chǎn)者/服務(wù)器之間的關(guān)系的公共合同,您可以放心地構(gòu)建和集成您的應(yīng)用程序而不必讓別人了解您的應(yīng)用程序的技術(shù)細(xì)節(jié)(以及隨著時(shí)間的流逝而發(fā)生的變化)。通過相同的標(biāo)記,您可以使用別的開發(fā)者的公共合同來使用他們的應(yīng)用程序而不必了解細(xì)節(jié)。
          • 通過提供處理與匿名服務(wù)器無連接交互的協(xié)議棧,您可以放心地通過故障彈性機(jī)制與組件交互。
          • 通過提供與負(fù)載無關(guān)的通信通道,特別是通過基于代理的消息傳遞系統(tǒng)。

          現(xiàn)在,我們把所討論的三種技術(shù)映射到松耦合或緊耦合。

          JCA 是緊耦合技術(shù)。

          • JCA 是使用容器來連接請(qǐng)求和連接的企業(yè)信息系統(tǒng)的 J2EE 標(biāo)準(zhǔn)。容器是一個(gè)耦合器,為安全性、事務(wù)作用域、連接管理傳播以及與目標(biāo)系統(tǒng)的交互提供受管方式支持。
          • JCA 耦合接口由公共客戶機(jī)接口來嚴(yán)格定義。
          • 應(yīng)用程序組件看不到系統(tǒng)合同和容器-組件合同,但這些合同確實(shí)有力地鏈接了調(diào)用者和被調(diào)者。
          • JCA 尚未處理類似計(jì)費(fèi)和審計(jì)的業(yè)務(wù)問題。實(shí)現(xiàn)這些要求仍是應(yīng)用程序業(yè)務(wù)體系結(jié)構(gòu)的問題。

          JMS 是松耦合技術(shù)。例如,它(只給消息中間件)不給目標(biāo)系統(tǒng)提供安全性或事務(wù)綁定。一般來說,消息傳遞實(shí)現(xiàn)松耦合的原因有:

          • 消息制造者和消費(fèi)者在點(diǎn)到點(diǎn)或發(fā)布/預(yù)訂模型中通過消息傳遞傳輸(例如消息代理)來交互。
          • 提供的技術(shù)頭常常獨(dú)立于業(yè)務(wù)負(fù)載。

          JMS 很適合于:

          • 集成參與業(yè)務(wù)事件的系統(tǒng)/組件。
          • 集成遲緩的響應(yīng)者。
          • 集成現(xiàn)有的系統(tǒng)。

          Web 服務(wù)的目標(biāo)是業(yè)務(wù)服務(wù)而不是技術(shù)連接性。它們主要用松技術(shù)耦合但接口定義級(jí)別上的緊耦合來實(shí)現(xiàn)。

          在 Web 服務(wù)中,耦合基于接口定義和協(xié)議綁定。

          • 合同用 WSDL 來發(fā)布,WSDL 定義了接口,接口定義了可用的操作。
          • 用于訪問 Web 服務(wù)的協(xié)議多種多樣。這個(gè)協(xié)議被稱為入站綁定,它定義了如何獲取實(shí)現(xiàn)助診文件。
          • 訪問實(shí)現(xiàn)的方法也多種多樣。這個(gè)協(xié)議被稱為出站綁定,它定義了實(shí)現(xiàn)公共合同的助診文件。示例包括 JavaBeans、EJB 和 JCA。

          Web 服務(wù)中的耦合方式提供了靈活性,有兩種綁定:靜態(tài)和動(dòng)態(tài)。

          • 靜態(tài)綁定意味著緊耦合:請(qǐng)求者使用在設(shè)計(jì)時(shí)獲取的服務(wù)實(shí)現(xiàn);不必使用私有的或共享的注冊(cè)中心。
          • 動(dòng)態(tài)綁定意味著松耦合:請(qǐng)求者在運(yùn)行時(shí)發(fā)現(xiàn)用于被調(diào)用的服務(wù)的實(shí)現(xiàn);它甚至可能在運(yùn)行時(shí)確定應(yīng)該被調(diào)用的接口。

          在現(xiàn)實(shí)中,目前多數(shù) Web 服務(wù)把 SOAP 用作入站協(xié)議。SOAP 是松耦合協(xié)議,直至 服務(wù)等級(jí)被支持。服務(wù)等級(jí)將處理安全性、可靠性和可用性。

          由于 SOAP 無處不在、防火墻友好和其它優(yōu)點(diǎn),SOAP 仍是缺省協(xié)議。另外,SOAP 是目前開發(fā) Web 服務(wù)安全性規(guī)范的地方;所以在實(shí)踐中,定義標(biāo)準(zhǔn)的安全性方式意味著使用 SOAP。

          現(xiàn)在,在 Web 服務(wù)中,一些其它輔助業(yè)務(wù)功能(例如計(jì)費(fèi)和審計(jì))已經(jīng)可用。

          可移植性和互操作性

          Web 服務(wù)不在調(diào)用者與被調(diào)者之間強(qiáng)加編程語言或操作系統(tǒng)限制。在不久的將來,很有可能處理 SOAP 的某些互操作性問題,例如 Apache 實(shí)現(xiàn)與其它實(shí)現(xiàn)之間的差異。在解決它之后,所有支持 Web 服務(wù)的平臺(tái)將可以互操作(包括 .NET 和 J2EE 平臺(tái))。但是即使到那時(shí),Web 服務(wù)客戶機(jī)或服務(wù)器實(shí)現(xiàn)代碼也不能在供應(yīng)商之間移植。為 .NET 編寫的實(shí)現(xiàn)代碼肯定不能運(yùn)行于 J2EE。

          JMS 和 JCA 只處理 Java 世界。有了 JCA,就可以在 Java 客戶機(jī)代碼端上實(shí)現(xiàn)可移植性,而且互操作性限于特定的目標(biāo)。為了在技術(shù)級(jí)別上互操作,JMS 要求在兩端都有 Java 環(huán)境,但是消息負(fù)載是無關(guān)的,通過使用 JAXM Web 服務(wù),可在 JMS 上攜帶 SOAP 負(fù)載。

          事務(wù)支持

          JCA 并不總是支持 EIS 的端到端事務(wù)支持。前面已提到,連接器提供程序?qū)崿F(xiàn)了把事務(wù)上下文傳播到目標(biāo)系統(tǒng)的容器。這是通過事務(wù)管理系統(tǒng)合同來完成的,在合同中,容器被用作控制作為資源管理器的 EIS 的事務(wù)管理器。這是基于 XA標(biāo)準(zhǔn)(請(qǐng)參閱 參考資料以了解更多信息)。

          Web 服務(wù)目前不支持事務(wù)。標(biāo)準(zhǔn)委員會(huì)正在研究用 WS-Coordination 和 WS-transaction 標(biāo)準(zhǔn)來提供松耦合模型中的事務(wù)支持的方法。今后將出現(xiàn)使用補(bǔ)償?shù)乃神詈夏P秃褪褂妙愃?XA 事務(wù)模型的緊耦合模型。

          在消息傳遞模型中,消息被傳遞到隊(duì)列后,客戶機(jī)無法控制它的傳播。所以 JMS 只支持隊(duì)列入口點(diǎn)的事務(wù),不支持目標(biāo)應(yīng)用程序的事務(wù)。

          可靠性

          目前,唯一有保證的傳遞是通過 JMS(盡管沒有消息延遲的保證)。為了今后的需要,IBM、Microsoft、BEA 和 TIBCO 已聯(lián)合提出了在 Web 服務(wù)環(huán)境中交換安全的、可靠的消息的標(biāo)準(zhǔn)機(jī)制。您可在 Web 服務(wù)組織站點(diǎn)獲取這些標(biāo)準(zhǔn)(請(qǐng)參閱 參考資料)。JCA 連接的可靠性總是特定于連接器,JCA 本身并不意味著可靠性。

          安全性

          安全性是標(biāo)準(zhǔn)化程度最低的領(lǐng)域。在 JMS 中,規(guī)范明確規(guī)定安全性由 JMS 提供程序?qū)崿F(xiàn)(該實(shí)現(xiàn)與其它的 J2EE 安全性兼容)來決定。幸運(yùn)的是,IBM 也堅(jiān)持這一標(biāo)準(zhǔn)。在 JCA 中,安全性的支持取決于連接器容器的功能和目標(biāo)企業(yè)信息系統(tǒng)的實(shí)現(xiàn)。

          HTTPS 支持在傳輸層上提供某種 Web 服務(wù)安全性。但是,在 Web 服務(wù)器譯碼和認(rèn)證請(qǐng)求后,它是易受攻擊的,只有使用 SOAP 安全性擴(kuò)展(SOAP Security Extensions,SOAP-SEC)的某些 Web 服務(wù)實(shí)現(xiàn)支持目前可用的安全性(請(qǐng)參閱 參考資料以了解更多有關(guān) SOAP-SEC 的信息)。有關(guān) WS-Security 標(biāo)準(zhǔn)的標(biāo)準(zhǔn)化工作正在進(jìn)行,WS-Security 將在未來實(shí)現(xiàn)完全互操作的端到端安全性模型。

          結(jié)束語

          您可以看到,需要根據(jù)多個(gè)標(biāo)準(zhǔn)來為集成選擇 Web 服務(wù)、JMS 和 JCA 實(shí)現(xiàn)中的一個(gè)實(shí)現(xiàn)。通過映射到某些解決方案的要求并對(duì)這些要求劃分優(yōu)先級(jí),設(shè)計(jì)者可為他們特殊的情況選擇正確的實(shí)現(xiàn)。

          下面的表總結(jié)了我們已討論過的內(nèi)容并列出了決定的標(biāo)準(zhǔn):

          Web 服務(wù) JMS JCA 注釋
          接口耦合(抽象服務(wù)定義)
          支持動(dòng)態(tài)接口發(fā)現(xiàn)和請(qǐng)求構(gòu)造

          負(fù)載無關(guān)
          “是”意味著緊耦合
          技術(shù)耦合(協(xié)議棧)
          在 WSIF 中,客戶機(jī)未與某個(gè)協(xié)議實(shí)現(xiàn)的客戶機(jī)庫(kù)綁定
          “是”意味著緊耦合
          可移植性
          多種語言

          僅 Java 技術(shù)

          僅 Java 技術(shù)
           
          可靠性 SOAP 的 HTTP-R 綁定 特定  
          事務(wù)支持 未來
          WS-Coordination 和 WS-Transaction 補(bǔ)償和 XA 模型
          作用域有限
          僅在隊(duì)列入口點(diǎn)

          XA 模型
           
          安全性 限于 SOAP
          SOAP-SEC(被 WS-Security 取代)
          不是標(biāo)準(zhǔn)的一部分,所以特定于供應(yīng)商 EIS 與 J2EE 之間的集成  
          同步方式
          大量使用
          自己動(dòng)手  
          異步方式
          面向文檔接口
          未來  
          事件驅(qū)動(dòng)、推方式
          面向文檔接口或流程支持(WSFL,BPEL4WS)
          未來  

          參考資料

          作者簡(jiǎn)介
          Régis Coqueret 是 IBM jStart(jump-Start)Emerging Technologies Team 的成員,他與客戶和業(yè)務(wù)伙伴一起在真實(shí)的業(yè)務(wù)解決方案中采用 Web 服務(wù)和其它新興技術(shù)。此前,他是 EMEA WebSphere Technical Sales Support Team 的創(chuàng)始成員,后來成為 IBM Software Services for WebSphere 的解決方案設(shè)計(jì)師。他于 1998 年開始參與 WebSphere 工作,在這之前,他是 IBM SWG Paris Laboratory 的軟件設(shè)計(jì)師,他的重點(diǎn)是應(yīng)用程序開發(fā)方面的軟件和產(chǎn)品開發(fā)。在 IT 業(yè),他有 13 年的背景,他是 Ecole des Mines de Paris(一流的法國(guó)工程學(xué)校)的工程師,他從 Institut Superieur d'Informatique et d'Automatique 獲得了計(jì)算機(jī)科學(xué)和自動(dòng)化的研究生學(xué)位。您可以通過 regis.coqueret@fr.ibm.com與 Régis 聯(lián)系。


          Marc Fiammante 有 Ecole Centrale de Paris 的工程學(xué)位,他是 IBM EMEA 的認(rèn)證高級(jí)顧問 IT 設(shè)計(jì)師,他在多種環(huán)境中的大型項(xiàng)目體系結(jié)構(gòu)和軟件開發(fā)方面有許多經(jīng)驗(yàn)。在 IT 業(yè),他有 19 年的背景,他已提交了 5 個(gè)有關(guān)軟件領(lǐng)域的專利。他在主要的銀行和政府項(xiàng)目中領(lǐng)導(dǎo)著體系結(jié)構(gòu)小組。他的技術(shù)專長(zhǎng)是電子商務(wù)、企業(yè)應(yīng)用程序集成(Enterprise Application Integration,EAI)和面向?qū)ο蠹夹g(shù),包括許多軟件中間件、編程語言和標(biāo)準(zhǔn),例如 J2EE、Enterprise JavaBeans、Java、C、C++、WebSphere、WebSphere 業(yè)務(wù)集成、DB2 和 Tivoli。您可以通過 marc.fiammante@fr.ibm.com與他聯(lián)系。



          posted on 2005-06-09 17:35 笨笨 閱讀(247) 評(píng)論(0)  編輯  收藏 所屬分類: J2EEALL
          主站蜘蛛池模板: 西安市| 昭通市| 十堰市| 拜泉县| 通海县| 梁河县| 调兵山市| 镇安县| 嘉荫县| 兰州市| 泾源县| 林西县| 大渡口区| 金昌市| 秦安县| 竹北市| 曲周县| 玉山县| 逊克县| 密山市| 桃园市| 琼中| 盐津县| 延寿县| 德令哈市| 五台县| 永寿县| 吉安县| 棋牌| 绥宁县| 承德市| 麻城市| 芷江| 淮安市| 南部县| 吐鲁番市| 宁陵县| 富平县| 鲁甸县| 紫金县| 阿拉善左旗|