<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    paulwong

    分布式事務

    一、 事務概述

    1、 事務協議

    WCF相關的事務協議有三個。

    1.1. Lightweight protocol

    這是個輕量級的本地事務協議,限制管理在一個AppDomain中的事務。不能跨AppDomain邊界傳播事務,也不能跨服務邊界傳播事務。跟其他協議比,Lightweight protocol是最有效率的協議。

    1.2. OleTx protocol

    這個協議可用于跨AppDomain,進程和機器邊界,管理兩階段提交的事務協議。這個跨邊界的事務協議使用RPC,是二進制的,windows專有的協議,不能穿越防火墻,也不能用于與非windows系統的互操作。在windows環境下的局域網,OleTx協議是很好的分布式事務的管理協議。

    1.3. WS-Atomic Transaction (WSAT) protocol

    WSATOleTx協議類似,也可以跨AppDomain,進程和機器邊界,管理兩階段提交的事務協議。但WSAT不是微軟的專有協議,此協議是微軟、IBMBEA等公司共同提出的工業標準。此協議也可用于Intranet中,但是更多的是用于在Internet環境下,或者跟非windows系統進行互操作的分布式事務。

    說到WSAT協議這里有必要一下分布式事務的發展。

    分布式事務:

    分布式事務在企業應用中是很重要的一個方面,微軟使用MSDTC作為分布式事務管理器,使用OleTx事務協議進行分布式事務管理,但是OleTx事務協議是微軟的專有協議,不是公認標準。在分布式環境中異構系統的交互一定要有個公認同意的分布式事務標準才能在異構的系統中實現分布式事務的協調。

    l OGMXA事務規范

    1994年,開放組織(Open Group)的 X/Open 分布式事務流程(DTP)模型,它定義了 應用程序如何使用 事務管理程序跨多個 資源管理程序來協調分布式事務。如果事務是通過遵循 XA 的事務管理程序來進行協調的,則任何遵循 XA 規范的資源管理程序都可以參與該事務,因此就可以讓不同廠商的事務產品可以共同工作。所有遵循 XA 的事務都是分布式事務。XA 既支持一步提交,也支持兩階段提交。

    對象管理組(Object Management Group)的通用對象請求代理體系結構對象事務服務(Common Object Request Broker Architecture Object Transaction Service -- 定義遵循規范的流程如何跨多個流程線程將事務上下文從一個流程傳播到另一個流程。這種傳播使得即使分布式對象運行于來自不同廠商的容器中,也可以在單個事務中合作。CORBA OTS 規范建立在 XA 規范的基礎之上。

    l OASISBusiness Transaction ProtocolBTP)標準

    2001 年, 一個由各大公司(包括惠普公司(Hewlett-PackardHP)、甲骨文公司(Oracle)及BEA公司)組成的聯盟開始著手創建 Organization for Advance Structured Information Systems (OASIS) Business Transaction ProtocolBTP)標準。

    BTP 不是專門用于 Web 服務的事務處理協議,它的目的是它也能用于其他的環境中。因而,BTP 定義了事務性的 XML 協議,并且必須在規范中指定所有的服務依賴性。

    BTP協議相對比較復雜,并且它把原子性事務和長時間運行的商業事務放在一起進行管理,這樣它必須解決各種各樣不同的問題。它是通過放松限制來這樣做的,這表面上給人感覺靈活度很高,但是很多東西就留給實現者去實現了,導致使用比較復雜。

    l OASISWS-Transactions

    BTP出現后,其他一些行業大公司,包括 IBMMicrosoft BEA,又發布了它們自己的規范: Web 服務事務處理(WS-Transactions),由三部分組成WS-Coordination(事務協調器)、WS-AtomicTransaction(實現原子事務)、WS-BusinessActivity(實現長時間運行的商業事務)。WS-TransactionsBTP好的方面是它將事務協調器獨立出來,另外用兩個標準在WS-Transactions基礎上分別實現原子事務和長時間運行的事務,這樣簡化了復雜性。

    WS-Transactions是專門用于web services的事務規范。

    2005年,WS-Transactions發布了第一個版本,Version 1.0

    2007年,WS-Transactions發布了Version 1.1,并被OASIS組織接受為標準,成為WS-*標準的一部分。

    WCF支持的可互操作的分布式事務協議只有WS-Transactions,并且只實現了WS-CoordinationWS-AtomicTransactionWS-BusinessActivity沒被實現。

    1.3.1. WS-Coordination

    WS-Coordination它描述了一個可擴展的交流協議框架,該框架對分布式的請求進行其請求協議的判斷與處理,處理后再將請求向下方的業務處理模塊進行分發。

    該 框架最大特點是其能夠以系統流程代理的身份來處理請求。當不同的請求,無論是內部的同系統的請求或外部的異構系統的請求,經過該框架處理后,再其原有的特 殊的傳輸代理層上添加了符合本系統信息流規則的本地協議。也就是本系統允許已經存在的事務、工作流或其他服務的請求隱藏其自身獨特的傳輸協議,并可順利運 行于異構式的系統環境中。

    當前WS-Coordination穩定的版本是1.1,同樣是OASIS2007年發布的國際標準。現在1.2版本也在起草過程之中。WS-Coordination規范的具體實現需要開發中在基于XML的配置文件中引入WS-Coordination規范的命名空間,如指定<xsschema>字段的值為ws-addr.xsd。由于是基于XML文件來實現,WS-Coordination規范易于實現,且對日后的擴展支持度高。

    通過WS-Coordination的使用,一方面通過附加統一的本地協議,在使用不同通信協議的請求到來時,進行統一的協議處理,加快了請求的處理速度,提高了系統的松耦合性;另一方面WS-Coordination規范所定義的框架加強了系統的異構性,使系統不因請求所使用的協議不同而無法處理,這提升了系統整體的兼容性,加強了系統的綜合服務能力。

    1.3.2. WS-AtomicTransaction

    WS-AtomicTransaction 定義了一組特定的協議,這組協議可以插入 WS-Coordination 模型,以實現傳統的兩階段原子事務處理協議。注意到原子的兩階段模型只是就涉及的服務而言的非常重要。提供服務的站點或基礎體系結構可能大肆宣傳兩階段提交,但是卻使用一些其他的企業內部模型,比如補償模型或版本模型。這種自由使簡單的兩階段提交模型對于長期運行的 Internet 計算更有用。

    WCF實現了WS-AtomicTransaction協議,事務管理器是由MSDTC實現,也就是說在WCF中可以使用WS-AtomicTransaction協議進行分布式事務的管理,并跟其他實現了WS-AtomicTransaction的異構分布式事務互操作。

    1.3.3. WS-BusinessActivity

    WS-BusinessActivity 定義了一組特定的協議,這組協議可以插入 WS-Coordination 模型,以實現長期運行的、基于補償的事務處理協議。

    WS-BusinessActivity定義的是long-running事務,所謂long-running事務是指那些企業業務流程,需要跨應用、跨企業來完成某個事務,甚至在事務流程中還需要有手工操作的參與,這類事務的完成時間可能以分計,以小時計,甚至可能以天計,這類事務也被稱為SAGA

    這類事務如果按照事務的ACID的要求去設計,勢必造成系統的可用性大大的降低。試想一個由兩臺服務器一起參與的事務,服務器A發起事務,服務器B參與事務,B的事務需要人工參與,所以處理時間可能很長。如果按照ACID的原則,要保持事務的隔離性、一致性,服務器A中發起的事務中使用到的事務資源將會被鎖定,不允許其他應用訪問到事務過程中的中間結果,直到整個事務被提交或者回滾。這就造成事務A中的資源被長時間鎖定,系統的可用性將不可接受。

    WS-BusinessActivity提供了一種基于補償的long-running的事務處理模型。還是上面的例子,服務器A的事務如果執行順利,那么事務A就先行提交,如果事務B也執行順利,則事務B也提交,整個事務就算完成。但是如果事務B執行失敗,事務B本身回滾,這時事務A已經被提交,所以需要執行一個補償操作,將已經提交的事務A執行的操作作反操作,恢復到未執行前事務A的狀態。這樣的SAGA事務模型,是犧牲了一定的隔離性和一致性的,但是提高了long-running事務的可用性。

    目前的WCF中未實現WS-BusinessActivity,在WCF 4.0 beta2中也為實現,估計在WCF 4.0正式版中也不會實現WS-BusinessActivity協議。

    2、 事務管理器

    管理事務必須有相應的協議外,還必須有個事務管理器,事務管理器通過相應的事務協議對本機的事務進行管理。如果同一個事務需要跨機器,則每臺參與事務的機器的事務管理器之間進行相互協調共同完成一個分布式事務。

    2.1. LTM

    輕型事務管理器Lightweight Transaction Manager,只能管理本地事務,事務在一個AppDomain內。LTM使用Lightweight protocol管理兩階段提交的事務。LTM只能管理單一的可持久化的資源,如果有兩個以上的可持久化資源登記到事務中,LTM將被升級到DTC管理器。

    2.2. KTM

    Vistawindows2008引入了內核事務管理器Kernel Transaction Manager (KTM)

    Windows Vista中還引入了兩個主要的事務資源,事務NTFS和事務注冊表,稱作核心資源kernel resource managers (KRM)KTM可以管理這兩類資源。

    事務性 NTFS,也稱為 TxF,使用TxF可以將文件操作納入到事務管理中,在事務中的的文件操作將同事務中的其他事務資源一樣在事務前后保持一致性。

    同樣事務性注冊表,也稱作TxR,注冊表的操作也可以納入到事務管理中。

    KTMLTM一樣,使用Lightweight protocol管理兩階段提交的事務,只能管理本地事務,事務在一個AppDomain內,只能管理單一的可持久化的資源。

    2.3. DTC

    DTC可以管理任何跨越執行邊界的事務,跨AppDomain,跨進程,跨機器,跨服務。DTC可以使用OleTx 或者WSAT事務協議。

    DTC既可以管理本地事務,更重要的是它能夠管理跨邊界的服務。

    在使用WCF的場景下,每臺運行WCF服務的機器都默認使用DTCDTC建立一個新事務,并跨機器把事務傳播到其他機器,發起事務的機器上的事務為根事務,這個機器上的DTC就要負責這個分布式事務的協調任務,負責啟動事務,提交事務,和回滾事務。

    事務管理器可使用的事務協議:

    Protocal

    LTM

    KTM

    DTC

    Lightweight protocol

    Yes

    Yes

    No

    OleTx protocol

    No

    No

    Yes

    WS-Atomic Transaction

    No

    No

    Yes

    3、 事務資源

    在事務范圍內,可納入事務管理的資源,即可以在事務正常執行后提交生效,在事務失敗可以回滾恢復到事務啟動前狀態的資源成為事務資源。最常見的事務資源就是常用的數據庫操作。但是在vista開始引入了兩個核心事務資源:TxF事務文件和TxR事務注冊表。

    可用的事務資源:

    3.1. sql server事務資源

    Sql 2005sql 2008的事務資源是新sql serverLTM事務管理器可以管理這類事務。

    3.2. 核心事務資源

    Vista開始引入的TxF事務文件和TxR事務注冊表。可以對文件和注冊表進行事務性操作。KTM可以管理這類資源。

    3.3. 傳統事務資源

    SQL Server 2000, Oracle, DB2, MSMQ這類資源是傳統的事務資源,這些資源只能由DTC事務管理器進行管理。

    事務管理器可管理的事務資源:

    Resource

    LTM

    KTM

    DTC

    Sql Server事務資源

    Yes

    No

    Yes

    核心事務資源

    No

    Yes

    Yes

    傳統事務資源

    No

    No

    Yes

    4、 事務管理器的升級

    每個WCF中啟動的事務都是先由LTM事務管理器管理,一旦事務中出現現有事務管理器無法管理的資源或情況,WCF會提升事務管理器的級別。分別從LTM升級到KTM,最高級別升級到DTC。事務管理器可以多次升級,事務管理器一旦升級后不能降級。

    事務管理器的升級規則:

    image

    posted on 2012-03-30 00:20 paulwong 閱讀(1560) 評論(0)  編輯  收藏 所屬分類: WEBSERVICE

    主站蜘蛛池模板: 国产产在线精品亚洲AAVV| 亚洲精品无码久久久影院相关影片| 免费黄色福利视频| 蜜桃成人无码区免费视频网站 | 最新精品亚洲成a人在线观看| 免费一级成人毛片| 凹凸精品视频分类国产品免费| 国产美女无遮挡免费视频| 日韩一区二区三区免费体验| 日韩高清免费观看| 国产hs免费高清在线观看| 国产在线ts人妖免费视频| 四虎影院永久免费观看| 亚洲国产精品无码久久九九 | 日韩免费无码视频一区二区三区| av永久免费网站在线观看| 国产精品99久久免费观看| 97免费人妻在线视频| 国产在线观看麻豆91精品免费| 中文字幕影片免费在线观看| 最近中文字幕mv免费高清视频7| 免费看少妇作爱视频| 亚洲av无码成人精品区| 2048亚洲精品国产| 久久久久亚洲精品成人网小说| 亚洲一卡2卡三卡4卡有限公司| 亚洲二区在线视频| 亚洲欧美在线x视频| 九九全国免费视频| 久久久久国产免费| 日本阿v免费费视频完整版| 欧洲精品免费一区二区三区| 亚洲成av人片在线观看天堂无码 | 无人在线观看完整免费版视频| 免费爱爱的视频太爽了| 亚洲毛片网址在线观看中文字幕| 亚洲精品国产精品乱码不99| 亚洲成a人片在线观| 久久综合亚洲色hezyo| 特级毛片免费观看视频| 亚洲理论在线观看|