paulwong

          使用 WS-AtomicTransaction 和 JTA 的分布式事務(wù)

          http://wenku.baidu.com/view/f3126425ccbff121dd3683b3.html

          在現(xiàn)在的企業(yè)應(yīng)用程序的開發(fā)中,Web 服務(wù)已經(jīng)越來越普遍。然而,從傳統(tǒng)意義上來說,它們還沒有達(dá)到和所支持的服務(wù)相同的水平。當(dāng)構(gòu)建 J2EE 應(yīng)用程序,特別是事務(wù)服務(wù)的時(shí)候,企業(yè)依賴于這些服務(wù)。本文概述了事務(wù)服務(wù)是如何在一個(gè)使用 Java Transaction API 的 J2EE 環(huán)境中的 Web 服務(wù)事務(wù)的幫助下,與 Web 服務(wù)實(shí)現(xiàn)無縫連接的。

          本文簡(jiǎn)要地概述了這項(xiàng)新的 Web 服務(wù)技術(shù)和已被證實(shí)的傳統(tǒng)的事務(wù)技術(shù),解釋了它們是如何能夠跨分布式的 J2EE 環(huán)境甚至跨不同的事務(wù)體系結(jié)構(gòu)來實(shí)現(xiàn)互操作的。

          本文假設(shè)您已經(jīng)對(duì)事務(wù)服務(wù)的概念(例如,ACID properties、提交/回滾、事務(wù)劃分,等等)的理解達(dá)到中級(jí)水平。要想了解事務(wù)服務(wù)的進(jìn)一步信息,特別是 JTS,請(qǐng)參考文章 Java theory and practice:Understanding JTS —— An introduction to transactions。這篇文章可以在 developerWorks 上找到(請(qǐng)參閱 參考資料)。同樣,我也想要推薦一本關(guān)于事務(wù)的更全面信息的好書,它就是由 Philip Bernstein 和 Eric Newcomer 合著的 Principles of Transaction Processing(請(qǐng)參閱 參考資料


          什么是 Java Transaction API(JTA)?

          JTA 是事務(wù)服務(wù)的 J2EE 解決方案。本質(zhì)上,它是描述事務(wù)接口(比如 UserTransaction 接口,開發(fā)人員直接使用該接口或者通過 J2EE 容器使用該接口來確保業(yè)務(wù)邏輯能夠可靠地運(yùn)行)的 J2EE 模型的一部分。

          JTA 具有的三個(gè)主要的接口分別是 UserTransaction 接口、 TransactionManager 接口和 Transaction 接口。這些接口共享公共的事務(wù)操作,例如 commit()rollback() , 但是也包含特殊的事務(wù)操作,例如 suspend() , resume()enlist() ,它們只出現(xiàn)在特定的接口上,以便在實(shí)現(xiàn)中允許一定程度的訪問控制。例如, UserTransaction 能夠執(zhí)行事務(wù)劃分和基本的事務(wù)操作,而 TransactionManager 能夠執(zhí)行上下文管理。本文僅僅需要您對(duì) JTA 有一個(gè)基本的了解。


          JTA 的好處?

          JTA 是一個(gè)定義明確的事務(wù)服務(wù),向 J2EE 應(yīng)用程序開發(fā)人員提供一種可以直接使用的服務(wù)。作為選擇,一個(gè)應(yīng)用程序也可能這樣部署,容器將代替開發(fā)人員來管理事務(wù)行為。在后一種情況下,開發(fā)人員能夠全神貫注于他們的應(yīng)用程序的業(yè)務(wù)邏輯,同時(shí)由 J2EE 容器來負(fù)責(zé)事務(wù)邏輯。

          模型明確的事務(wù)服務(wù)的好處是對(duì)于每個(gè)單獨(dú)的事務(wù)總是維持四個(gè) ACID 特性。盡管這是一個(gè)實(shí)現(xiàn)相關(guān)的問題,WebSphere Application Server 提供為每個(gè)導(dǎo)入的或者導(dǎo)出的事務(wù)保護(hù)這些 ACID 特性的能力,而不管并發(fā)的事務(wù)數(shù)目是多少。


          JTA 的限制?

          經(jīng)歷過所有的事務(wù)體系結(jié)構(gòu),想要有效地將一組事務(wù)傳送給其他并不共享同樣模型的事務(wù)服務(wù),同時(shí)保持原子的工作單元,是非常困難的。在我們的案例中,建模的 JTA 運(yùn)行在 Java Transaction Service(JTS) 之上,JTS 處理輸入和輸出事務(wù)傳送的請(qǐng)求。

          因?yàn)?JTS 是一種由 CORBA 定義的對(duì)象事務(wù)服務(wù)(OTS)的 Java 實(shí)現(xiàn),它只能夠與另一個(gè) OTS 模型連接。因此, 一個(gè)事務(wù)只能傳送給另一個(gè) OTS-兼容的目標(biāo),典型地即另一個(gè) J2EE 實(shí)現(xiàn)。因?yàn)?JTA 和 JTS 規(guī)范沒有對(duì)這些接口的底層實(shí)現(xiàn)加以限制 (只要它們符合模型),事務(wù)可以安全地在兩個(gè) J2EE-兼容的應(yīng)用程序服務(wù)器之間傳送,而沒有丟失它們的 ACID 特性的風(fēng)險(xiǎn)。然而,J2EE 服務(wù)器并不必須處理非 J2EE 調(diào)用。

          某些 J2EE 服務(wù)器可能是例外;例如,WebSphere Application Server 將正確地處理一個(gè)與 CORBA 兼容事務(wù)相關(guān)聯(lián)的輸入的 CORBA 請(qǐng)求,將這個(gè)事務(wù)傳送給線程,然后在它的上下文里執(zhí)行事務(wù)工作。然而,在大多數(shù)情況下,當(dāng)您試圖在事務(wù)模型之間移動(dòng)的時(shí)候,您不得不超越 JTA 和 JTS,把目光投得更遠(yuǎn),在這里 Web 服務(wù)出現(xiàn)了。


          什么是 Web 服務(wù)?

          Web 服務(wù)是一種能夠作為應(yīng)用程序一部分部署在可訪問的服務(wù)器上供內(nèi)部和外部客戶使用的對(duì)象。Web 服務(wù)由它的 Web 服務(wù)描述語(yǔ)言(WSDL)來描述。它定義了一個(gè)使用基于 XML 調(diào)用(典型地使用 SOAP 協(xié)議)的 Web 服務(wù)的輸入和輸出參數(shù)的用法。例如,客戶端可以查看已經(jīng)由服務(wù)器發(fā)布的 WSDL,然后構(gòu)造客戶端代碼來調(diào)用 Web 服務(wù)。一旦完成,它就能夠通過將 SOAP 消息傳遞給 Web 服務(wù)的一個(gè)方法來調(diào)用它。在這條 SOAP 消息中包括諸如方法 名稱的信息以及任何它所需要的參數(shù)。返回值將在另一條 SOAP 消息里被傳送回來,再由客戶提取出來。


          使用 Web 服務(wù)的好處?

          Web 服務(wù)由哪種語(yǔ)言編寫而成并不重要,因?yàn)?WSDL 沒有定義語(yǔ)言或者編程的模型相關(guān)的細(xì)節(jié)(例如,Java 和 J2EE 技術(shù))。這就給了 Web 服務(wù)的作者和客戶端的作者選擇他首選的解決方案 的靈活性。

          讓我們來比較一下 Web 服務(wù)和 Enterprise JavaBean(EJB)組件。EJB 組件要求 RMI-編譯的代碼,以便使客戶端能夠訪問,所以 它能夠像它的代理一樣創(chuàng)造本地的存根(stub)對(duì)象。因此,這將需要在每一次它們改變的時(shí)候,向所有的客戶端重新分配存根(stub)。 無論如何,和 Web 服務(wù)一起您將使用 WSDL,所以客戶端能夠構(gòu)造它們自己的客戶端調(diào)用代碼,在本地類路徑上不需要服務(wù)器的類來執(zhí)行調(diào)用。這個(gè)模型提供了一個(gè)非常巧妙的方法調(diào)用過程。 EJB,作為 J2EE 模型的一部分,必須使用 Java 客戶來調(diào)用,最好是一個(gè) J2EE 管理的客戶端。另一方面,Web 服務(wù)可以被任何客戶端代碼所調(diào)用,這個(gè)代碼能夠構(gòu)造一個(gè)結(jié)構(gòu)良好的 SOAP 請(qǐng)求。因而,舉例來說,一個(gè)部署在 J2EE 服務(wù) 器上的 Web 服務(wù)能夠使用 C++ 客戶來調(diào)用。


          Web 服務(wù)的限制?

          因?yàn)?Web 服務(wù)請(qǐng)求(通過 HTTP 的 SOAP)的性質(zhì)與其他的方法調(diào)用(例如,一個(gè)使用通過 IIOP 的 RMI 的 EJB 調(diào)用)差別很大,支持執(zhí)行分布式事務(wù)的代碼直到最近才可獲得。這已經(jīng)成為在 使用 Web 服務(wù)作為分布式事務(wù)企業(yè)應(yīng)用程序一部分時(shí),主要的問題。本質(zhì)上,Web 服務(wù)不能運(yùn)行在 Web 服務(wù)調(diào)用之前開始的事務(wù)上下文 中,也不能將一個(gè)事務(wù)上下文傳送給另一個(gè)組件。


          那么,問題是什么呢?

          如果 Web 服務(wù)被用于工業(yè),必須確保它們?cè)谑聞?wù)環(huán)境 中運(yùn)行的時(shí)候,以可靠的和可預(yù)知的方式工作。直到現(xiàn)在,Web 服務(wù)只能夠使用獨(dú)立于其他組件的事務(wù)——在 Web 服務(wù)的方法范圍里劃分的 和服從它的底層的事務(wù)實(shí)現(xiàn)的規(guī)則——并且物理上不能離開 Web 服務(wù)或者進(jìn)入另一個(gè) Web 服務(wù)。企業(yè)應(yīng)用程序具有始終在企業(yè)組件間流動(dòng) 的事務(wù)。這需要成為 Web 服務(wù)的標(biāo)準(zhǔn)來確保它們能夠被正確地使用,通過利用 Web 服務(wù)的功能僅僅忽略在我們的所有嚴(yán)格的企業(yè)應(yīng)用 程序中依賴的和使用的事務(wù)支持來避免改變您的編程風(fēng)格。


          那么,解決方案是什么呢?

          解決方案就是一種稱為 Web 服務(wù)事務(wù)(WS-Transaction) 的新技術(shù)。它能夠調(diào)整事務(wù)的上下文。這個(gè)上下文可以被 Web 服務(wù)、其他的諸如 EJB 的 J2EE 組件、甚至其他支持 WS-Transaction 的 非 J2EE 事務(wù)服務(wù)使用。

          WS-Transaction 是一個(gè)規(guī)范。它擴(kuò)展了 Web 服務(wù)協(xié)調(diào)(WS-Coordination)規(guī)范來定義一種支持原子事務(wù)的協(xié)調(diào)。


          什么是 WS-Coordination

          WS-Coordination 是一個(gè)協(xié)調(diào)框架來使分布的參與者 能夠在他們個(gè)體行動(dòng)之上就一個(gè)通用的結(jié)果達(dá)成協(xié)議。

          本質(zhì)上,這意味著分布式的參與者(例如,在不同機(jī)器上的兩個(gè)應(yīng)用程序服務(wù)器)將能夠使用 WS-Coordination 把每個(gè)參與者 的行為集在合一起,進(jìn)一步地,并且通過確保它們完全同意對(duì)于在這個(gè)協(xié)調(diào)上下文里它們各自執(zhí)行的所有行為均產(chǎn)生單一的結(jié)果,來 進(jìn)一步管理這些行為。否則,則不能以一個(gè)受控的方式來完成這些功能。

          協(xié)調(diào)上下文可以被看作是一個(gè)標(biāo)識(shí)符,行為執(zhí)行在這個(gè)標(biāo)識(shí)符之下。作一比較,這個(gè)概念非常類似于事務(wù)上下文。當(dāng)事務(wù)工作完成, 在事務(wù)上下文里管理它,當(dāng)調(diào)用這個(gè)上下文去確定或會(huì)滾時(shí)這個(gè)工作完成。協(xié)調(diào)上下文包含的附加信息是一個(gè)協(xié)調(diào)標(biāo)識(shí)符、關(guān)于協(xié)調(diào)類型的 詳細(xì)資料以及包括端口信息以便協(xié)調(diào)服務(wù)能夠被訪問的協(xié)調(diào)協(xié)議。在下面定義了這些術(shù)語(yǔ)。

           

          協(xié)調(diào)服務(wù),或者 協(xié)調(diào)器(Coordinator), 進(jìn)一步由三個(gè)服務(wù)組成: 激活服務(wù)(activation service)、 注冊(cè)服務(wù)(registration service)協(xié)調(diào)協(xié)議(coordination protocol) 服務(wù)。激活服務(wù)支持 CreateCoodinationContext 操作來允許新的協(xié)調(diào)上下文存在。注冊(cè)服務(wù)支持 Register 操作來允許參與者 在協(xié)調(diào)上下文中執(zhí)行工作。協(xié)調(diào)協(xié)議服務(wù)支持協(xié)調(diào)協(xié)議的使用,這個(gè)協(xié)議定義了協(xié)調(diào)器(Coordinator)和參與者之間的行為和通信。

          協(xié)調(diào)類型是一個(gè)協(xié)調(diào)行為的固定的集合,這個(gè)集合詳細(xì)說明了協(xié)調(diào)協(xié)議的集合以及協(xié)調(diào)器(Coordinator)應(yīng)該如何驅(qū)動(dòng)完成。 WS-Transaction 規(guī)范描述了兩個(gè)協(xié)調(diào)類型—— 原子事務(wù)(Atomic Transaction)(AT)和 業(yè)務(wù)協(xié)定(Business Agreement)(BA)。 這些協(xié)調(diào)類型中的每一個(gè)都包括協(xié)調(diào)協(xié)議。例如,原子事務(wù)(Atomic Transaction)協(xié)調(diào)類型包括像 two-phase commit protocol(Durable2PC)和 phaseZero protocol(Volatile2PC)這樣的協(xié)調(diào)協(xié)議。 您可以希望在支持原子事務(wù)的環(huán)境中使用這兩個(gè)協(xié)議。

          業(yè)務(wù)協(xié)定(Business Agreement)協(xié)調(diào)類型提供了一種不同的功能類型。它被設(shè)計(jì)成用于更長(zhǎng)的時(shí)幀。而不像原子事務(wù),正常地您 與它聯(lián)系一個(gè)非常短的生命期。業(yè)務(wù)協(xié)定協(xié)議(Business Agreement protocol)的一個(gè)例子就是它自己,被稱作業(yè)務(wù)協(xié)定(Business Agreement) 它是一個(gè)補(bǔ)償協(xié)議。


          WS-Coordination 和 WS-Transaction 之間是什么關(guān)系?

          WS-Coordination 是基本的框架,使參與者之間活動(dòng)的分布式結(jié)果成為可能。WS-Transaction 定義了協(xié)調(diào)類型,例如原子事務(wù)(Atomic Transaction),協(xié)調(diào)類型使用 WS-Coordination 框架來定義規(guī)則。在協(xié)調(diào)器(Coordinator)和參與者通信時(shí),它們必須遵循這些規(guī)則。兩者之間的這個(gè)區(qū)別很重要。

          兩個(gè)應(yīng)用程序和一個(gè)協(xié)調(diào)器(Coordinator)之間主要的協(xié)調(diào)流程如下面的 圖 1所示。


          圖 1. 基本協(xié)調(diào)流程
          1. App1 向在協(xié)調(diào)器上的激活服務(wù)提出一個(gè)請(qǐng)求。
          2. 協(xié)調(diào)器開始一個(gè)新的活動(dòng),使用它的 CoordinationContext (協(xié)調(diào)器的 XML 消息)來對(duì) App1 做出響應(yīng)。
          3. App1向注冊(cè)服務(wù)提出請(qǐng)求來注冊(cè)使用協(xié)調(diào)協(xié)議X。
          4. App1 以它期望的方式調(diào)用 App2,傳遞 CoordinationContext 給協(xié)調(diào)器。
          5. App2 向注冊(cè)服務(wù)提出請(qǐng)求(使用諸如端口信息的參數(shù),它們 可以在 App1 傳遞的 CoordinationContext 中找到)來注冊(cè)使用協(xié)調(diào)協(xié)議Y。
          6. App2結(jié)束它的工作,將控制返還給 App1,活動(dòng)結(jié)束。
          7. 協(xié)調(diào)器使用協(xié)議 X 類型消息響應(yīng) App1。
          8. 協(xié)調(diào)器使用協(xié)議 Y 類型消息響應(yīng) App2。


          協(xié)調(diào)器調(diào)解

          在一個(gè)現(xiàn)實(shí)世界的情況中,Web 服務(wù)可能是事務(wù)的和分布式的,協(xié)調(diào)器的發(fā)起者( App1)將 CoordinationContext 傳遞給任何它所期望的活動(dòng)中的參與者( App2)。這個(gè)上下文的接收者有兩種選擇:它們可以使用已經(jīng)創(chuàng)建好了的協(xié)調(diào)器( Ca),或者如果它們?cè)敢?,也可以在初始?CoordinationContext 中傳遞創(chuàng)建的新的協(xié)調(diào)器。然后,第二種選擇將新的協(xié)調(diào)器( Cb) 作為 App2的代理協(xié)調(diào)器。它將包括與協(xié)調(diào)器 Ca相同的活動(dòng)標(biāo)識(shí)符,但是當(dāng) App2向它的協(xié)調(diào)器 Cb注冊(cè) Durable2PC 協(xié)議的時(shí)候,它的請(qǐng)求直接傳送給了協(xié)調(diào)器 Ca。 類似地,在結(jié)束時(shí),準(zhǔn)備和提交消息在最終到達(dá) App2(它已經(jīng)注冊(cè)過 Durable2PC 協(xié)議)之前將從協(xié)調(diào)器 Ca傳遞給協(xié)調(diào)器 Cb

          請(qǐng)參閱 WS-Transaction 規(guī)范的 4.1 節(jié) AT3.1 Example Atomic Transaction Message Flow,在那里您將看到一個(gè)應(yīng)用程序和調(diào)解的協(xié)調(diào)器之間的 WS-Coordination 流程的非常好的示例(請(qǐng)參閱 參考資料)。


          Web 服務(wù)事務(wù):原子事務(wù)(WS-AtomicTransaction)

          WS-AtomicTransaction 是一種對(duì)于原子事務(wù)的特殊的協(xié)調(diào)類型,它提供了一組協(xié)調(diào)協(xié)議。這些協(xié)調(diào)協(xié)議是:

          • Completion
          • CompletionWithAck
          • Volatile2PC
          • Durable2PC
          • OutcomeNotification

          當(dāng)協(xié)調(diào)上下文創(chuàng)建以后,協(xié)調(diào)類型被指定,但是協(xié)調(diào)協(xié)議直到注冊(cè)時(shí)才被指定。任何參與者可以注冊(cè)任意數(shù)目的協(xié)調(diào)協(xié)議,應(yīng)該發(fā)送和接收 由協(xié)議定義的恰當(dāng)?shù)南?。例如,如果一個(gè)參與者在協(xié)調(diào)器中注冊(cè)了 Durable2PC 協(xié)議,當(dāng)完成時(shí)一條準(zhǔn)備消息將被發(fā)送給這個(gè)參與者,它們將被認(rèn)為以與正常的事務(wù)資源相似的方式投票。想要了解這里每個(gè)協(xié)議的信息和它們的狀態(tài)圖,請(qǐng)查閱 WS-Transaction 規(guī)范, 第 4 節(jié) AT3 Coordination protocols(請(qǐng)參閱 參考資料)。


          如何能將 JTA 事務(wù)和 WS-AtomicTransaction 一起使用?

          因?yàn)?JTA 和 JTS 是實(shí)現(xiàn)相關(guān)的,我將使用的這個(gè)示例是 WebSphere Application Server V5.0.2 和 WS-Transaction Tech Preview。這個(gè)場(chǎng)景將有兩臺(tái)機(jī)器,每個(gè)上都運(yùn)行有應(yīng)用程序服務(wù)器,如 圖 2 所示。 應(yīng)用程序服務(wù)器A部署并運(yùn)行一個(gè) Bean Managed Transaction(BMT)EJB 組件。應(yīng)用程序服務(wù)器B部署并運(yùn)行一個(gè) Web 服務(wù)。 EJB 組件通過使用 JTA 提供的接口 UserTransaction 開始一個(gè)事務(wù)。它對(duì) XA-compliant database 執(zhí)行事務(wù)工作(步驟 1),然后使用 SOAP/HTTP 向在應(yīng)用程序服務(wù)器B上的 Web 服務(wù)發(fā)送一個(gè)請(qǐng)求(步驟 2)。Web 服務(wù)對(duì) XA-compliant database 執(zhí)行工作(步驟 3),然后返回到 EJB 組件(步驟 4),由它再次使用 UserTransaction 接口來提交事務(wù)。所有由 EJB 和 Web 服務(wù)對(duì)數(shù)據(jù)庫(kù)執(zhí)行的事務(wù)都已經(jīng)被包含在一個(gè)活動(dòng)的范圍里,這個(gè)活動(dòng)是由協(xié)調(diào)器恰好在調(diào)用 Web 服務(wù)(步驟 2)之前創(chuàng)建的,它已經(jīng)被提交,同時(shí)保存著所有的 ACID 特性,它就好像是單一的工作單元。

          讓我們來看看下面的兩個(gè)領(lǐng)域——J2EE 領(lǐng)域和 Web 服務(wù)領(lǐng)域。在 J2EE 領(lǐng)域里,使用的事務(wù)模型是 JTA。在 Web 服務(wù)領(lǐng)域里, 使用的事務(wù)模型是 WS-AtomicTransaction。WebSphere Application Server 把一個(gè) Java Web 服務(wù)看作是一個(gè) J2EE 對(duì)象,因此也就 意味著,Web 服務(wù)的實(shí)現(xiàn)屬于 J2EE 領(lǐng)域,而調(diào)用屬于 Web 服務(wù)領(lǐng)域。在 WebSphere 領(lǐng)域,正確地驅(qū)動(dòng)協(xié)議總是正在被使用的模型 (JTA 或者 WS-AtomicTransaction)的責(zé)任。

          圖 2 展示了 在一個(gè)事務(wù)企業(yè)應(yīng)用程序中包含 Web 服務(wù)是多么的容易,同時(shí)也展示了對(duì)于沒有費(fèi)一行代碼麻煩就在導(dǎo)入的事務(wù)上下文中運(yùn)行這個(gè) Web 服務(wù)的用戶來說,它又是多么的無縫。


          圖 2. 使用 JTA 事務(wù)和 WS-AtomicTransaction 事務(wù)

          請(qǐng)注意:The EJB 組件正運(yùn)行在一個(gè)受管理的環(huán)境中(EJB 容器)并且 Web 服務(wù)是符合 JSR 109。

          它只能和 JTA 一起工作嗎?

          WS-Coordination 依靠它的基于XML的調(diào)用來 利用它本身是 Web 服務(wù)的優(yōu)勢(shì)。因?yàn)橛脕碚{(diào)用 WS-Coordination 操作的協(xié)議是 SOAP,消息內(nèi)容是 XML 格式的純文本。這意味著,當(dāng)使用 HTTP 傳遞給 Web 服務(wù)時(shí),將不能僅僅通過 SOAP 包本身來確定客戶的詳細(xì)資料,例如編程語(yǔ)言。因此,WS-AtomicTransaction 將能夠與任何其他的使用任何支持 WS-AtomicTransaction 的編程語(yǔ)言編碼的事務(wù)服務(wù)相連接。

          在近來的一個(gè)由 IBM 和 Microsoft 主辦的 Web 服務(wù)演示上,展示了 WS-AtomicTransaction 的這個(gè)跨事務(wù)服務(wù)和編程語(yǔ)言的互操作性。 圖 3 展示了一個(gè)示范這項(xiàng)技術(shù)的場(chǎng)景。

          圖 3 中有一個(gè).NET 服務(wù)器開始一個(gè)非 JTA 事務(wù),向兩個(gè) WebSphere 應(yīng)用程序服務(wù)器和另外一個(gè).NET 服務(wù)器提出了 Web 服務(wù)調(diào)用請(qǐng)求。每個(gè)應(yīng)用程序服務(wù)器都使用它們的底層事務(wù)服務(wù)來執(zhí)行事務(wù)工作。每次您能夠使用 WS-Transaction 調(diào)用一個(gè)您將轉(zhuǎn)到的 Web 服務(wù)。當(dāng)發(fā)起者完成事務(wù),您使用 WS-Transaction 技術(shù)來協(xié)調(diào)每個(gè)參與者,確保它們都已完成,就好像它們是單一的工作單元似的。


          圖 3. 在 Steve Mills 和 Bill Gates 的 Web 服務(wù)演示中的一個(gè) WS-AtomicTransaction 場(chǎng)景的示例拓?fù)洹? src=

          總結(jié)

          在本文中,您已經(jīng)了解到 WS-Coordination 和 WS-Transaction 的基本概念。到現(xiàn)在為止,Web 服務(wù)還不能在分布式環(huán)境里使用事務(wù)。WS-Transaction 允許 Web 服務(wù)執(zhí)行事務(wù)工作,這個(gè)事務(wù)工作作為更廣泛的活動(dòng)生成組件、應(yīng)用程序服務(wù)器、甚至實(shí)現(xiàn)的一部分,正如在 IBM 和 Microsoft Web 服務(wù)演示中所展示的。

          在 WS-Transaction 的支持下,我們能夠可靠地使用 Web 服務(wù)作為我們的企業(yè)應(yīng)用程序的一部分,因?yàn)樗呀?jīng)為事務(wù)支持嵌入到其他的企業(yè)組件里。

          posted on 2012-03-30 00:21 paulwong 閱讀(937) 評(píng)論(0)  編輯  收藏 所屬分類: WEBSERVICE

          主站蜘蛛池模板: 白山市| 息烽县| 洛隆县| 东城区| 会宁县| 邢台市| 浦城县| 拉萨市| 金溪县| 宜城市| 汕头市| 绥江县| 长治市| 通化市| 巴马| 报价| SHOW| 天全县| 麻城市| 永新县| 呼和浩特市| 黑水县| 诸城市| 甘孜| 龙山县| 舒兰市| 迭部县| 安丘市| 托克逊县| 新蔡县| 黔西| 虎林市| 荔波县| 琼中| 徐汇区| 宿松县| 柘荣县| 横峰县| 治县。| 文昌市| 凌云县|