欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

消息交換協(xié)議擴(kuò)展協(xié)商的制作方法

文檔序號(hào):7627095閱讀:138來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):消息交換協(xié)議擴(kuò)展協(xié)商的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)技術(shù);尤其涉及用于協(xié)商消息交換協(xié)議的擴(kuò)展的機(jī)制。
背景技術(shù)
計(jì)算技術(shù)已經(jīng)改變了我們工作和娛樂(lè)的方式。計(jì)算系統(tǒng)如今表現(xiàn)為各種形式,包括臺(tái)式計(jì)算機(jī)、膝上計(jì)算機(jī)、圖形輸入板PC、個(gè)人數(shù)字助理(PDA)、家用設(shè)備、等等。在其最基本的形式中,計(jì)算系統(tǒng)包括系統(tǒng)存儲(chǔ)器以及一個(gè)或多個(gè)處理器。系統(tǒng)存儲(chǔ)器中的軟件可由處理器執(zhí)行以指導(dǎo)計(jì)算系統(tǒng)中的其它硬件執(zhí)行所需的功能。
網(wǎng)絡(luò)技術(shù)使計(jì)算系統(tǒng)甚至能夠跨越極大距離進(jìn)行通信,由此擴(kuò)展了計(jì)算機(jī)的功能性。例如,網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)諸如電子郵件、網(wǎng)絡(luò)瀏覽、文件傳輸、即時(shí)消息通信、電子白板、網(wǎng)絡(luò)合作等應(yīng)用程序。由此,計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)分布廣泛的通信和信息訪問(wèn)。
網(wǎng)絡(luò)通信協(xié)議常常定義可用于完成特定活動(dòng)的消息交換的模式。消息模式可以簡(jiǎn)單到單個(gè)消息的單向傳輸,或可以復(fù)雜到涉及許多消息和許多通信節(jié)點(diǎn)。無(wú)論其復(fù)雜程度如何,在本文中此類(lèi)網(wǎng)絡(luò)通信協(xié)議將被稱(chēng)為“消息交換協(xié)議”。
消息交換協(xié)議明確地定義有關(guān)要被交換的消息的類(lèi)型和形式、交換中各消息的順序、在發(fā)送或接收某些消息類(lèi)型中特定通信節(jié)點(diǎn)的任務(wù)等的規(guī)則。除了這些規(guī)則以外,消息交換協(xié)議常常允許與基本消息交換協(xié)議一致、但未被基本協(xié)議明確定義的其它規(guī)則被定義。在本文中這些其它規(guī)則可被稱(chēng)為基本消息交換協(xié)議的“擴(kuò)展”。
較復(fù)雜的消息交換協(xié)議的示例是Web服務(wù)協(xié)調(diào)(WS-協(xié)調(diào))和Web服務(wù)原子事務(wù)(WS-AT),它們利用常被稱(chēng)為“SOAP隧穿”的方法,使用簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)外殼,甚至越過(guò)傳輸層障礙來(lái)交換消息。例如,一超文本傳輸協(xié)議(HTTP)計(jì)算系統(tǒng)可向另一HTTP計(jì)算系統(tǒng)發(fā)送HTTP消息內(nèi)的SOAP外殼。但是,沿此路徑,SOAP外殼可能被放到遵守不同傳輸協(xié)議的其它消息中,諸如消息隊(duì)列(MQ)、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)、CORBA/IIOP等等。因此,SOAP消息被視為是相對(duì)傳輸不可知的。
WS-協(xié)調(diào)描述一種用于提供協(xié)調(diào)各分布式應(yīng)用程序的動(dòng)作的協(xié)議的可擴(kuò)展框架。此類(lèi)協(xié)調(diào)協(xié)議被用于支持若干應(yīng)用程序,包括那些需要就各分布式行為的結(jié)果達(dá)成一致協(xié)定的應(yīng)用程序。WS-協(xié)調(diào)使應(yīng)用程序服務(wù)能夠創(chuàng)建將活動(dòng)向其它服務(wù)傳播以及注冊(cè)協(xié)調(diào)協(xié)議所需的上下文。該框架使現(xiàn)有事務(wù)處理、工作流程、以及其它用于協(xié)調(diào)的系統(tǒng)能夠隱藏它們私有的協(xié)議,并能夠在不同種類(lèi)的環(huán)境中操作。
圖4A示出其中可使用WS-協(xié)調(diào)的網(wǎng)絡(luò)環(huán)境400。圖示出4個(gè)計(jì)算實(shí)體;發(fā)起器401、與發(fā)起器相關(guān)聯(lián)的事務(wù)管理器402(也稱(chēng)為T(mén)M1)、遠(yuǎn)程應(yīng)用程序411、以及與遠(yuǎn)程應(yīng)用程序相關(guān)聯(lián)的事務(wù)管理器412(也稱(chēng)為T(mén)M2)。圖4B示出時(shí)間線圖420,該圖顯示根據(jù)一種典型WS-協(xié)調(diào)消息交換模式的一次消息交換。
發(fā)起器401要發(fā)起一個(gè)活動(dòng),該活動(dòng)要求發(fā)起器401、遠(yuǎn)程應(yīng)用程序411、及其各自的事務(wù)管理器402和412的合作交互。為此目的,發(fā)起器向其事務(wù)管理器TM1發(fā)送CreateCoordinationContext(創(chuàng)建協(xié)調(diào)上下文)消息,如圖4B中的箭頭421所示。此消息可包括一端點(diǎn)引用,它包括事務(wù)管理器TM1正確地定址發(fā)起器處的請(qǐng)求服務(wù)所需的所有定址信息。“端點(diǎn)引用”由稱(chēng)為WS-定址的Web服務(wù)協(xié)議定義。
響應(yīng)于此,事務(wù)管理器TM1向發(fā)起器發(fā)送CreateCoordinationContextResponse(創(chuàng)建協(xié)調(diào)上下文響應(yīng)),如箭頭422所示。響應(yīng)422包括為事務(wù)管理器TM1所用的所謂協(xié)調(diào)上下文(由圖4B中的CC1標(biāo)識(shí))。協(xié)調(diào)上下文CC1包括計(jì)算實(shí)體注冊(cè)到該活動(dòng)中所需的所有信息。該響應(yīng)還可包括一端點(diǎn)引用,該端點(diǎn)引用包括發(fā)起器定址事務(wù)管理器TM1處的注冊(cè)服務(wù)所需的所有定址信息。
發(fā)起器401使用協(xié)調(diào)上下文CC1來(lái)構(gòu)造注冊(cè)請(qǐng)求,然后將注冊(cè)請(qǐng)求發(fā)送到事務(wù)管理器TM1,如箭頭423所示。此注冊(cè)請(qǐng)求包括對(duì)發(fā)起器401處的協(xié)議服務(wù)的端點(diǎn)引用。一將發(fā)起器401注冊(cè)到該活動(dòng)中,事務(wù)管理器TM1即向發(fā)起器401發(fā)送RegistrationResponse(注冊(cè)響應(yīng)),如箭頭424所示。此響應(yīng)包括對(duì)事務(wù)管理器TM1處的協(xié)議服務(wù)的端點(diǎn)引用。由此,一接收到RegistrationResponse,發(fā)起器和事務(wù)管理器TM1即可交換協(xié)議層消息。
對(duì)于分布式活動(dòng),發(fā)起器可能希望其它遠(yuǎn)程應(yīng)用程序(諸如圖4A和4B中的遠(yuǎn)程應(yīng)用程序411等)也注冊(cè)到活動(dòng)中。發(fā)起器401因而向任何此類(lèi)遠(yuǎn)程應(yīng)用程序411發(fā)送為事務(wù)管理器TM1所用的協(xié)調(diào)上下文CC1,如箭頭425所示。為清楚起見(jiàn),僅描述該活動(dòng)中所涉及的一個(gè)遠(yuǎn)程應(yīng)用程序411,盡管WS-協(xié)調(diào)允許多個(gè)遠(yuǎn)程應(yīng)用程序以和為遠(yuǎn)程應(yīng)用程序411所描述的相同方式的注冊(cè)。
遠(yuǎn)程應(yīng)用程序411隨即向其事務(wù)管理器TM2發(fā)送CreateCoordinationContext請(qǐng)求,如箭頭426所示。該遠(yuǎn)程應(yīng)用程序還提供向事務(wù)管理器TM1注冊(cè)到該活動(dòng)中所需的協(xié)調(diào)上下文CC1。此請(qǐng)求可包括對(duì)遠(yuǎn)程應(yīng)用程序中的請(qǐng)求服務(wù)的端點(diǎn)引用。
事務(wù)管理器TM2用一CreateCoordinationContextResponse來(lái)響應(yīng),如箭頭427所示。此響應(yīng)可包括另一協(xié)調(diào)上下文CC2,所述協(xié)調(diào)上下文CC2包括向事務(wù)管理器TM2注冊(cè)所需的信息。該響應(yīng)還可包括對(duì)事務(wù)管理器TM2內(nèi)的注冊(cè)服務(wù)的端點(diǎn)引用。
遠(yuǎn)程應(yīng)用程序411使用協(xié)調(diào)上下文CC2來(lái)構(gòu)造Register(注冊(cè))請(qǐng)求,然后將注冊(cè)請(qǐng)求發(fā)送到事務(wù)管理器TM2,如箭頭428所示。此請(qǐng)求可包括對(duì)遠(yuǎn)程應(yīng)用程序411上的協(xié)議服務(wù)的端點(diǎn)引用。
認(rèn)識(shí)到遠(yuǎn)程應(yīng)用程序已提供了為第一事務(wù)管理器TM1所用的協(xié)調(diào)上下文CC1,第二事務(wù)管理器TM2知道要代表遠(yuǎn)程應(yīng)用程序向第一事務(wù)管理器TM1注冊(cè)。第二事務(wù)管理器TM2因而使用協(xié)調(diào)上下文CC1來(lái)構(gòu)造Register請(qǐng)求,然后將Register請(qǐng)求發(fā)送到第一事務(wù)管理器TM1,如箭頭429所示。此請(qǐng)求包括對(duì)事務(wù)管理器TM2所提供的協(xié)議服務(wù)的端點(diǎn)引用。
第一事務(wù)管理器TM1將第二事務(wù)管理器TM2注冊(cè)到該活動(dòng)中,然后向第二事務(wù)管理器TM2提供一RegistrationResponse消息,如箭頭430所示。RegistrationResponse消息包括對(duì)事務(wù)管理器TM1所提供的協(xié)議服務(wù)的端點(diǎn)引用。一接收到此響應(yīng),事務(wù)管理器TM1和TM2即可向彼此發(fā)送注冊(cè)后協(xié)議層消息。
第二事務(wù)管理器TM2隨即向遠(yuǎn)程應(yīng)用程序發(fā)送RegistrationResponse消息,如箭頭431所示。此響應(yīng)包括對(duì)事務(wù)管理器TM2所提供的協(xié)議服務(wù)的端點(diǎn)引用。一接收到此響應(yīng),事務(wù)管理器TM2和遠(yuǎn)程應(yīng)用程序411即可彼此交換注冊(cè)后協(xié)議層消息。
在此交互之后,三個(gè)協(xié)調(diào)者/參與者關(guān)系已被創(chuàng)建。關(guān)系是通過(guò)發(fā)送和接收Register請(qǐng)求來(lái)定義的。在關(guān)系中,發(fā)送Register請(qǐng)求的計(jì)算實(shí)體是“參與者”,而接收注冊(cè)請(qǐng)求的計(jì)算實(shí)體是“協(xié)調(diào)者”。由此,在第一關(guān)系中,發(fā)起器401是參與者,事務(wù)管理器TM1是協(xié)調(diào)者。在第二關(guān)系中,遠(yuǎn)程應(yīng)用程序411是參與者,事務(wù)管理器TM2是協(xié)調(diào)者。在第三關(guān)系中,事務(wù)管理器TM2是參與者,事務(wù)管理器TM1是協(xié)調(diào)者。此第三關(guān)系涉及最復(fù)雜的交互,因此將是現(xiàn)在將要提供的WS-原子事務(wù)概述的焦點(diǎn)所在。
WS-原子事務(wù)被用于協(xié)調(diào)具有很短持續(xù)時(shí)間并在有限信任域中被執(zhí)行的若干活動(dòng)。它們被稱(chēng)為原子事務(wù),因?yàn)樗鼈兙哂小叭炕驔](méi)有”屬性。尤其,WS-原子事務(wù)定義一種兩階段提交協(xié)議,該兩階段提交協(xié)議允許事務(wù)在第一階段中被準(zhǔn)備,接下來(lái)在第二階段中提交。
在上述基于消息通信交換的WS-協(xié)調(diào)之后,發(fā)起器401和遠(yuǎn)程應(yīng)用程序411可進(jìn)行完成特定事務(wù)的若干應(yīng)用程序?qū)酉⒔粨Q。當(dāng)雙方都已完成消息交換以及相關(guān)聯(lián)的處理時(shí),發(fā)起器401將請(qǐng)求事務(wù)管理器TM1使該事務(wù)被完成。圖5示出時(shí)間圖500,該圖顯示然后將在兩個(gè)事務(wù)管理器TM1和TM2之間發(fā)生以完成該事務(wù)的兩階段提交消息交換。
第一事務(wù)管理器TM1首先向第二事務(wù)管理器TM2發(fā)送準(zhǔn)備消息,如箭頭501所示。一接收到此消息,事務(wù)管理器TM2即執(zhí)行得到適當(dāng)指令即原子地提交該事務(wù)所需的所有處理。然后事務(wù)管理器TM2向第一事務(wù)管理器TM1發(fā)送準(zhǔn)備就緒消息,如箭頭502所示,由此完成兩階段提交模式的第一階段。事務(wù)管理器TM2然后進(jìn)入存疑狀態(tài)505,意即事務(wù)管理器TM2不知道該事務(wù)將被提交或中止。
如果第一事務(wù)管理器TM1選擇提交該事務(wù),則第一事務(wù)管理器TM1隨即向第二事務(wù)管理器TM2發(fā)送一提交消息,如箭頭504所示。第二事務(wù)管理器TM2隨即提交該事務(wù),并向第一事務(wù)管理器TM1發(fā)送提交完畢消息,由此通知第一事務(wù)管理器TM1該事務(wù)完成。
WS-協(xié)調(diào)和WS-原子事務(wù)規(guī)范是非常強(qiáng)有力的,因?yàn)樗鼈冊(cè)试S任何數(shù)量的分布式應(yīng)用程序注冊(cè)并合作交互以完成特定活動(dòng)。此外,活動(dòng)可作為事務(wù)被完成,從而避免活動(dòng)中各方之間狀態(tài)的不一致。
盡管WS-協(xié)調(diào)和WS-原子事務(wù)規(guī)范是強(qiáng)有力的,但它們是不完善的。雖然WS-協(xié)調(diào)和WS-原子事務(wù)規(guī)范是可擴(kuò)展的,但是它們不提供任何被具體表達(dá)的手段來(lái)協(xié)商協(xié)議擴(kuò)展以改進(jìn)基本W(wǎng)S-協(xié)調(diào)和WS-原子事務(wù)協(xié)議。
因此,用于協(xié)商消息交換協(xié)議擴(kuò)展的機(jī)制將是有利的,無(wú)論這些消息交換協(xié)議是涉及諸如WS-協(xié)調(diào)或WS-AT等Web服務(wù)協(xié)議還是其它消息交換協(xié)議。如果在萬(wàn)一各方中的一方或數(shù)方不知道協(xié)商機(jī)制的情況下將基本消息交換協(xié)議作為后退運(yùn)行來(lái)使用將是更有利的,因?yàn)橐恍┯?jì)算實(shí)體(特別是在分布式環(huán)境中)可能實(shí)現(xiàn)本文中所描述的擴(kuò)展協(xié)商程序,而其它計(jì)算實(shí)體則可能沒(méi)有。

發(fā)明內(nèi)容
現(xiàn)有技術(shù)的前述問(wèn)題為本發(fā)明的原理所克服,本發(fā)明針對(duì)用于在兩個(gè)計(jì)算實(shí)體之間進(jìn)行特定消息交換時(shí)協(xié)商消息交換協(xié)議的擴(kuò)展的機(jī)制。如果協(xié)商是不可能的,則不實(shí)現(xiàn)擴(kuò)展而使用基本消息交換協(xié)議。由此,如果擴(kuò)展的有效協(xié)商是可能的,則可實(shí)現(xiàn)與那些擴(kuò)展相關(guān)聯(lián)的改善的性能、效率或正確性。另一方面,如果協(xié)商是不可能的,計(jì)算實(shí)體仍可通過(guò)使用基本消息交換協(xié)議通信。在一個(gè)實(shí)施例中,可能的擴(kuò)展可支持WS-協(xié)調(diào)或WS-AT協(xié)議,盡管這并非必需。
兩個(gè)計(jì)算實(shí)體中的一個(gè)(稱(chēng)為“第一”計(jì)算實(shí)體,以簡(jiǎn)單地區(qū)別一個(gè)計(jì)算實(shí)體和另一個(gè)計(jì)算實(shí)體)構(gòu)造一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)第一計(jì)算實(shí)體在與另一計(jì)算實(shí)體(稱(chēng)為“第二計(jì)算實(shí)體”)的消息交換中通信時(shí)能夠?qū)崿F(xiàn)的一個(gè)或多個(gè)擴(kuò)展。這些一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)在本文中還可被稱(chēng)為“第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”或簡(jiǎn)稱(chēng)“第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”。類(lèi)似地,這一個(gè)或多個(gè)擴(kuò)展在本文中可被稱(chēng)為“第一組一個(gè)或多個(gè)擴(kuò)展”或“第一擴(kuò)展”。然后第一計(jì)算實(shí)體構(gòu)造包括第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的消息(本文中稱(chēng)為“第一消息”)。第一計(jì)算系統(tǒng)隨即向第二計(jì)算實(shí)體發(fā)送第一消息。
一接收到此第一消息,如果第二計(jì)算實(shí)體支持此協(xié)商程序,則第二計(jì)算實(shí)體可同樣地構(gòu)造一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)第二計(jì)算實(shí)體在與第一計(jì)算實(shí)體的消息交換中通信時(shí)能夠?qū)崿F(xiàn)的一個(gè)或多個(gè)擴(kuò)展。這些一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)在本文中也可被稱(chēng)為“第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”或簡(jiǎn)稱(chēng)“第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”。類(lèi)似地,這一個(gè)或多個(gè)擴(kuò)展在本文中可被稱(chēng)為“第二組一個(gè)或多個(gè)擴(kuò)展”或“第二擴(kuò)展”。第二計(jì)算設(shè)備隨即構(gòu)造包括第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的第二消息,并向第一計(jì)算實(shí)體發(fā)送第二消息。
第二計(jì)算實(shí)體還從第一消息中讀出第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),并基于第一計(jì)算實(shí)體所支持的第一擴(kuò)展和第二計(jì)算實(shí)體所支持的第二擴(kuò)展來(lái)標(biāo)識(shí)在消息交換中實(shí)際要被使用的一個(gè)或多個(gè)擴(kuò)展。
同時(shí),一接收到第二消息,第一計(jì)算實(shí)體從第二消息中讀出第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),并基于第一計(jì)算實(shí)體所支持的第一擴(kuò)展和第二計(jì)算實(shí)體所支持的第二擴(kuò)展來(lái)標(biāo)識(shí)在消息交換中實(shí)際要被使用的一個(gè)或多個(gè)擴(kuò)展。
以此方式,兩個(gè)計(jì)算實(shí)體可協(xié)商許多不同的可能的擴(kuò)展(如果兩個(gè)計(jì)算實(shí)體都能夠進(jìn)行此類(lèi)協(xié)商),從而提供消息交換模式的改良實(shí)現(xiàn)。另一方面,如果第二計(jì)算實(shí)體不能夠進(jìn)行此類(lèi)協(xié)商,那么這兩個(gè)計(jì)算實(shí)體簡(jiǎn)單地使用基本消息交換協(xié)議進(jìn)行通信。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在以下描述中闡述,并且部分地將從該描述中變得顯而易見(jiàn),或可通過(guò)實(shí)施本發(fā)明而被習(xí)得。本發(fā)明的特征和優(yōu)點(diǎn)可通過(guò)所附權(quán)利要求書(shū)中特別指出的各種手段及其組合來(lái)仍是和獲得。本發(fā)明的這些及其它特征將從以下描述和所附權(quán)利要求書(shū)中變得更充分清楚,或可通過(guò)按下文所闡述地實(shí)施本發(fā)明來(lái)習(xí)得。


為了描述可獲得本發(fā)明上述及其它優(yōu)點(diǎn)和特征的方式,將參考在附圖中示出的本發(fā)明的若干具體實(shí)施例來(lái)呈現(xiàn)以上簡(jiǎn)述的本發(fā)明的更具體的描述。應(yīng)理解這些附圖僅描繪了本發(fā)明的典型實(shí)施例,因此不應(yīng)被視為限制其范圍,將通過(guò)使用附圖更具體和詳細(xì)地描述和解釋本發(fā)明,附圖中圖1示出可實(shí)現(xiàn)本發(fā)明各個(gè)特征的合適的計(jì)算系統(tǒng);圖2圖示出其中相對(duì)傳輸不可知的通信協(xié)議可被協(xié)商以完成分布式活動(dòng)的網(wǎng)絡(luò)環(huán)境;圖3A根據(jù)本發(fā)明的原理示出一種用于協(xié)商消息交換模式的擴(kuò)展的方法的流程圖;圖3B示出一種第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu);圖3C示出包括第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的第一消息;圖3D示出一種第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu);圖3E示出包括第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的第二消息;圖4A示出其中可實(shí)現(xiàn)Web服務(wù)協(xié)調(diào)協(xié)議的常規(guī)網(wǎng)絡(luò)環(huán)境;圖4B示出一時(shí)序圖,該圖根據(jù)常規(guī)Web服務(wù)協(xié)調(diào)(WS-協(xié)調(diào))協(xié)議示出各消息流程的時(shí)序;以及圖5示出一時(shí)序圖,該圖示出與常規(guī)Web服務(wù)原子事務(wù)(WS-AT)協(xié)議所定義的兩階段提交事務(wù)模型相關(guān)聯(lián)的各消息流程的時(shí)序圖。
具體實(shí)施例方式
本發(fā)明的原理涉及用于協(xié)商在完成分布式活動(dòng)中是否要使用消息交換協(xié)議的擴(kuò)展(以及什么擴(kuò)展)的機(jī)制。萬(wàn)一消息交換的各方中的一方不知道該擴(kuò)展協(xié)商機(jī)制,則該協(xié)議機(jī)制后退到基本消息交換協(xié)議??赡芤?jīng)受協(xié)商的消息交換協(xié)議可能是例如,Web服務(wù)協(xié)調(diào)(WS-協(xié)調(diào))或Web服務(wù)原子事務(wù)(WS-AT)的擴(kuò)展。所協(xié)商的協(xié)議擴(kuò)展可被選擇以改善性能,并可按現(xiàn)有需要和能力定制修改。此外,事務(wù)管理器可為不同事務(wù)使用不同擴(kuò)展。
在描述本發(fā)明的細(xì)節(jié)之前,首先參考圖1描述可用于實(shí)現(xiàn)本發(fā)明的原理的合適的計(jì)算體系結(jié)構(gòu)。然后參考圖2描述可在其中實(shí)現(xiàn)本發(fā)明的合適的網(wǎng)絡(luò)環(huán)境??筛鶕?jù)本發(fā)明的原理的協(xié)商機(jī)制描述參考圖3A的流程圖和圖2的網(wǎng)絡(luò)環(huán)境。最后,將描述可使用此機(jī)制來(lái)協(xié)商的各種功能的示例。
在以下描述中,除非另外標(biāo)識(shí),則參考一個(gè)或多個(gè)計(jì)算機(jī)所執(zhí)行的動(dòng)作以及操作的符號(hào)標(biāo)識(shí)來(lái)描述本發(fā)明的各實(shí)施例。同樣,可以理解,不時(shí)作為正被計(jì)算機(jī)執(zhí)行的動(dòng)作和操作而引用的這些動(dòng)作和操作包括計(jì)算機(jī)處理單元對(duì)以結(jié)構(gòu)化形式表示數(shù)據(jù)的電信號(hào)的操縱。此操縱在計(jì)算機(jī)存儲(chǔ)器系統(tǒng)中的各個(gè)位置處轉(zhuǎn)換數(shù)據(jù)或維護(hù)數(shù)據(jù),從而以本領(lǐng)域技術(shù)人員所公知的方式重新配置或改變計(jì)算機(jī)的操作。數(shù)據(jù)結(jié)構(gòu),即數(shù)據(jù)被維護(hù)的所在,是存儲(chǔ)器中的物理位置,所述數(shù)據(jù)結(jié)構(gòu)具有由數(shù)據(jù)的格式所定義的特定屬性。但是,盡管是在前述上下文中描述本發(fā)明的原理,但是它并不意圖限制,如本領(lǐng)域技術(shù)人員將會(huì)理解,以下所描述的動(dòng)作和操作中的一部分還可在硬件中實(shí)現(xiàn)。
現(xiàn)在轉(zhuǎn)到附圖,其中相同的標(biāo)號(hào)指相同的元素,圖示本發(fā)明的原理是在合適的計(jì)算環(huán)境中實(shí)現(xiàn)的。以下描述是基于本發(fā)明的圖示實(shí)施例,考慮到未在本文中明確描述的各種替換實(shí)施例,以下描述不應(yīng)被視為對(duì)本發(fā)明有所限制。
圖1示出可為這些設(shè)備使用的示例性計(jì)算機(jī)體系結(jié)構(gòu)的示意圖。為描述目的,所描繪的體系結(jié)構(gòu)只是合適的環(huán)境的一個(gè)例子,并不試圖對(duì)本發(fā)明的使用范圍或功能提出任何限制。也不應(yīng)將該計(jì)算系統(tǒng)解釋為具有涉及圖1中所示組件中任何一個(gè)或其組合的任何依賴(lài)關(guān)系或要求。
本發(fā)明的原理適用于許多其它通用或?qū)S糜?jì)算或通信環(huán)境或配置。適用于本發(fā)明的公知計(jì)算系統(tǒng)、環(huán)境和配置的示例包括,但不限于,移動(dòng)電話、袖珍計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、服務(wù)器、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、小型計(jì)算機(jī)、大型計(jì)算機(jī)、以及包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境。
在其最基本的配置中,計(jì)算系統(tǒng)100通常包括至少一個(gè)處理單元102和存儲(chǔ)器104。存儲(chǔ)器104可為易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)、或兩者的某種組合。此最基本的配置在圖1中由虛線106示出。在此描述和所附權(quán)利要求書(shū)中,“計(jì)算系統(tǒng)”被定義為能夠執(zhí)行軟件、固件或微代碼以執(zhí)行功能的任何硬件組件或若干硬件組件的組合。甚至可分布計(jì)算系統(tǒng)以完成分布式功能。
存儲(chǔ)介質(zhì)設(shè)備可具有其它特征和功能。例如,它們可包括其它存儲(chǔ)(可移動(dòng)和不可移動(dòng)的),包括但不限于,PCMCIA卡、磁盤(pán)和光盤(pán)、以及磁帶。這些其它存儲(chǔ)在圖1中由可移動(dòng)存儲(chǔ)108和不可移動(dòng)存儲(chǔ)110示出。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。存儲(chǔ)器104、可移動(dòng)存儲(chǔ)108和不可移動(dòng)存儲(chǔ)110都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存、其它存儲(chǔ)器技術(shù),CD-ROM、數(shù)字多功能盤(pán)、其它光存儲(chǔ),磁帶盒、磁帶、磁盤(pán)存儲(chǔ)、其它存儲(chǔ)設(shè)備,以及可用于存儲(chǔ)所需信息并可由計(jì)算系統(tǒng)訪問(wèn)的任何其它介質(zhì)。
如本文中所使用,術(shù)語(yǔ)“模塊”或“組件”可指在計(jì)算系統(tǒng)上執(zhí)行的軟件對(duì)象或例程。本文中所描述的不同組件、模塊、引擎和服務(wù)可被實(shí)現(xiàn)為在計(jì)算系統(tǒng)上執(zhí)行的對(duì)象或進(jìn)程(例如,實(shí)現(xiàn)為單獨(dú)的線程)。盡管較佳的是在軟件中實(shí)現(xiàn)本文中所描述的系統(tǒng)和方法,但是在軟件和硬件,或在硬件中實(shí)現(xiàn)也是可能的并已被構(gòu)想。
計(jì)算系統(tǒng)100還可包含信道112,它允許主機(jī)通過(guò)例如網(wǎng)絡(luò)120與其它系統(tǒng)和設(shè)備通信。通信信道112是通信介質(zhì)的示例。通信介質(zhì)通常在諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)中具體化計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)和直接連線連接等有線介質(zhì),和諸如聲學(xué)、無(wú)線電、紅外和其它無(wú)線介質(zhì)等無(wú)線介質(zhì)。如本文中所使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”包括存儲(chǔ)介質(zhì)和通信介質(zhì)兩者。
計(jì)算系統(tǒng)100還可具有諸如鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入組件、觸摸式輸入設(shè)備等輸入組件114。輸出組件116包括屏幕顯示器、揚(yáng)聲器、打印機(jī)等、以及用于驅(qū)動(dòng)它們的呈現(xiàn)模塊(常被稱(chēng)為“適配器”)。計(jì)算系統(tǒng)100有電源118。所有這些組件在本領(lǐng)域中是公知的,無(wú)須在此詳細(xì)討論。
圖2示出包括發(fā)起分布式活動(dòng)的發(fā)起器計(jì)算實(shí)體201的網(wǎng)絡(luò)環(huán)境200,該分布式活動(dòng)由傳輸不可知的協(xié)調(diào)協(xié)議、與發(fā)起器201相關(guān)聯(lián)的第一事務(wù)管理器202、參與該分布式活動(dòng)的遠(yuǎn)程應(yīng)用程序計(jì)算實(shí)體211、以及與遠(yuǎn)程應(yīng)用程序211相關(guān)聯(lián)的第二事務(wù)管理器212協(xié)調(diào)。此環(huán)境特別適用于WS-協(xié)調(diào)和WS-AT,盡管本發(fā)明的原理不限于這些特定消息交換協(xié)議。圖2的網(wǎng)絡(luò)環(huán)境200類(lèi)似于圖4A的現(xiàn)有技術(shù)網(wǎng)絡(luò)環(huán)境400,后者被標(biāo)為“現(xiàn)有技術(shù)”。但是,圖2并不被標(biāo)為“現(xiàn)有技術(shù)”,因?yàn)楦鱾€(gè)計(jì)算實(shí)體201、202、211和212被修改成執(zhí)行本發(fā)明的原理,因而不是常規(guī)計(jì)算實(shí)體。
在此描述及在所附權(quán)利要求書(shū)中,“計(jì)算實(shí)體”被定義為任何計(jì)算系統(tǒng)或者在計(jì)算系統(tǒng)上運(yùn)行的一個(gè)或多個(gè)軟件組件?!坝?jì)算系統(tǒng)”被定義為能夠執(zhí)行軟件的任何硬件組件或硬件組件的組合。計(jì)算系統(tǒng)可被分布,在此情形中,計(jì)算系統(tǒng)可包括也落入如本文中所寬泛定義的計(jì)算系統(tǒng)的定義之內(nèi)的多個(gè)計(jì)算系統(tǒng)。已參考圖1描述了計(jì)算系統(tǒng)的一個(gè)示例。但是如本文中所闡述的計(jì)算系統(tǒng)的定義不受此限制。參考圖2,各計(jì)算實(shí)體中的任何一個(gè)或其組合(或甚至所有計(jì)算實(shí)體)可在單個(gè)計(jì)算系統(tǒng)上運(yùn)行。但是,在一種可能的網(wǎng)絡(luò)環(huán)境中,發(fā)起器計(jì)算實(shí)體201和事務(wù)管理器計(jì)算實(shí)體202在一個(gè)計(jì)算系統(tǒng)上運(yùn)行,而遠(yuǎn)程應(yīng)用程序計(jì)算實(shí)體211和事務(wù)管理器計(jì)算實(shí)體212在另一個(gè)計(jì)算系統(tǒng)上運(yùn)行。
參考圖2所示出的各個(gè)計(jì)算實(shí)體201、202、211和212可遵守諸如以上所簡(jiǎn)述的WS-協(xié)調(diào)和WS-AT等常規(guī)的傳輸不可知的協(xié)調(diào)和事務(wù)協(xié)議。如本文中所使用,術(shù)語(yǔ)“WS-協(xié)調(diào)”指微軟公司在2004年11月所公布的Web服務(wù)協(xié)調(diào)(WS-協(xié)調(diào))規(guī)范。如本文中所使用,術(shù)語(yǔ)“WS-原子事務(wù)”、“WS-AT”指微軟公司在2004年11月所公布的Web服務(wù)原子事務(wù)(WS-原子事務(wù))規(guī)范。
但是,圖2中的各個(gè)計(jì)算實(shí)體201、202、211和212可不僅能使用諸如WS-協(xié)調(diào)和WS-AT等基本消息交換協(xié)議來(lái)通信,而且還能實(shí)現(xiàn)這些基本消息交換協(xié)議的一個(gè)或多個(gè)擴(kuò)展。在發(fā)起器201注冊(cè)到分布式活動(dòng)中的同時(shí)或之前,發(fā)起器201和事務(wù)管理器202可協(xié)商WS-協(xié)調(diào)和WS-AT的適當(dāng)擴(kuò)展,以在完成該分布式活動(dòng)中使用。
圖3根據(jù)本發(fā)明的原理示出發(fā)起器201和事務(wù)管理器202用于協(xié)商消息交換協(xié)議的擴(kuò)展的方法300的流程圖。由發(fā)起器201執(zhí)行的動(dòng)作在圖3左邊一列的“發(fā)起器”標(biāo)題下列出。由事務(wù)管理器202執(zhí)行的動(dòng)作在圖3右邊一列的“事務(wù)管理器”標(biāo)題下列出。但是,本發(fā)明的原理超出WS-協(xié)調(diào)和WS-AT擴(kuò)展的協(xié)商,而是適用于所有可擴(kuò)展消息交換協(xié)議的擴(kuò)展的協(xié)商。因此,為演示此一般性,可更一般地稱(chēng)發(fā)起器為“第一計(jì)算實(shí)體”,并將事務(wù)管理器改稱(chēng)為“第二計(jì)算實(shí)體”。如現(xiàn)在將要描述的,萬(wàn)一各計(jì)算實(shí)體中的一個(gè)不能夠協(xié)商擴(kuò)展,則此協(xié)商程序后退到無(wú)擴(kuò)展的基本消息交換協(xié)議。由此,即使不使用擴(kuò)展,仍可完成分布式活動(dòng)。
按照?qǐng)D3中所示的方法300,發(fā)起器201(為一般化,本文中也稱(chēng)為“第一計(jì)算實(shí)體”)首先構(gòu)造一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)(本文中也稱(chēng)為“第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”或簡(jiǎn)稱(chēng)為“第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”)(圖3A中的動(dòng)作301),這些數(shù)據(jù)結(jié)構(gòu)包括標(biāo)識(shí)第一計(jì)算實(shí)體在與第二計(jì)算實(shí)體的消息交換模式中通信時(shí)能夠?qū)崿F(xiàn)的一個(gè)或多個(gè)擴(kuò)展(本文中也稱(chēng)為“第一組一個(gè)或多個(gè)擴(kuò)展”或“第一擴(kuò)展”)。第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的標(biāo)識(shí)示為圖3B中的組件300B?!皵U(kuò)展標(biāo)識(shí)”數(shù)據(jù)結(jié)構(gòu)僅僅是包括足夠信息以使第二計(jì)算實(shí)體可以(如果第二計(jì)算實(shí)體被配置成協(xié)商擴(kuò)展)解釋第一計(jì)算實(shí)體能夠使用的擴(kuò)展的任何數(shù)據(jù)結(jié)構(gòu)。此解釋可基于第一消息中所標(biāo)識(shí)的擴(kuò)展,和/或基于第二計(jì)算系統(tǒng)已知的信息。此數(shù)據(jù)結(jié)構(gòu)確切的物理結(jié)構(gòu)對(duì)于本發(fā)明的原理而言是無(wú)關(guān)緊要的。
第一計(jì)算實(shí)體隨即構(gòu)造包括第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的第一消息(動(dòng)作302)。此第一消息的示例性數(shù)據(jù)結(jié)構(gòu)在圖3C中示為第一消息300C,圖示該第一消息300C包括第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)300B。在第一計(jì)算實(shí)體是圖2的發(fā)起器201且第二計(jì)算實(shí)體是圖2的事務(wù)管理器202的一個(gè)實(shí)施例中,此第一消息是由WS-協(xié)調(diào)協(xié)議所定義的創(chuàng)建協(xié)調(diào)上下文請(qǐng)求,但還要外加并非由WS-協(xié)調(diào)規(guī)范定義的第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),在該創(chuàng)建協(xié)調(diào)上下文請(qǐng)求中,發(fā)起器發(fā)起分布式活動(dòng)。如WS-協(xié)調(diào)協(xié)議所定義,該消息還可以是創(chuàng)建協(xié)調(diào)上下文響應(yīng)、或注冊(cè)請(qǐng)求。在另一個(gè)實(shí)施例中,此消息早在分布式活動(dòng)之前已被生成,并可從由WS-協(xié)調(diào)所管理的任何消息交換中頻帶外地獲得。
第一計(jì)算實(shí)體隨即向第二計(jì)算系統(tǒng)提供第一消息(動(dòng)作303),于是第二計(jì)算實(shí)體接收第一消息(動(dòng)作311)。如果第一計(jì)算實(shí)體和第二計(jì)算實(shí)體位于不同的計(jì)算機(jī)中,那么這可經(jīng)由消息通信或遠(yuǎn)程功能調(diào)用來(lái)完成。如果第一和第二計(jì)算實(shí)體位于同一計(jì)算機(jī)上,則這可經(jīng)由本地應(yīng)用程序接口(API)來(lái)完成。
如果第二計(jì)算實(shí)體能夠根據(jù)本發(fā)明的原理協(xié)商消息交換協(xié)議擴(kuò)展,則第二計(jì)算實(shí)體隨即從第一消息中讀出第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)(動(dòng)作312),然后可基于第一擴(kuò)展以及基于能由第二計(jì)算實(shí)體實(shí)現(xiàn)(并愿意被提供的)的擴(kuò)展(本文中也稱(chēng)為“第二組一個(gè)或多個(gè)擴(kuò)展”或簡(jiǎn)稱(chēng)為“第二擴(kuò)展”)來(lái)標(biāo)識(shí)在消息交換中實(shí)際將被使用的一個(gè)或多個(gè)擴(kuò)展(動(dòng)作313)。
第一和第二計(jì)算實(shí)體在作此確定時(shí)可遵守一組具體的規(guī)律。例如,如果第一擴(kuò)展所支持的協(xié)議版本新于第二擴(kuò)展所支持的協(xié)議版本,則事務(wù)管理器可回到第二計(jì)算實(shí)體所支持的最新版本的協(xié)議。另一方面,如果第一擴(kuò)展支持的協(xié)議版本早于第二計(jì)算系統(tǒng)所支持的協(xié)議版本,則第二計(jì)算系統(tǒng)可簡(jiǎn)單地使用與較早版本的協(xié)議相關(guān)聯(lián)的擴(kuò)展。
兩者選一地,第二計(jì)算實(shí)體可決定實(shí)際要使用的擴(kuò)展將僅包括第一一個(gè)或多個(gè)擴(kuò)展中第二計(jì)算實(shí)體所支持的那些擴(kuò)展。第二計(jì)算實(shí)體還可出于任何理由拒絕第一計(jì)算實(shí)體所期望的某些擴(kuò)展,即使第二計(jì)算實(shí)體可支持這些擴(kuò)展。
第二計(jì)算實(shí)體構(gòu)造一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)(動(dòng)作314),這些數(shù)據(jù)結(jié)構(gòu)包括標(biāo)識(shí)第二計(jì)算實(shí)體所支持的消息交換協(xié)議的擴(kuò)展(本文中也稱(chēng)為“第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”或“第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”)的信息。第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的標(biāo)識(shí)示為圖3D中的組件300D。“第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)”僅僅是包括足夠信息以使第一計(jì)算系統(tǒng)可解釋第二計(jì)算實(shí)體所支持并愿意提供的擴(kuò)展的任何數(shù)據(jù)結(jié)構(gòu)。此解釋可基于第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)內(nèi)的信息,或基于第一計(jì)算實(shí)體已知的信息。此數(shù)據(jù)結(jié)構(gòu)的確切物理結(jié)構(gòu)對(duì)本發(fā)明的原理而言是無(wú)關(guān)緊要的。
第二計(jì)算實(shí)體隨即構(gòu)造包括第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的第二消息(動(dòng)作315)。此第二消息的示例性數(shù)據(jù)結(jié)構(gòu)在圖3E中被示為第二消息300E,該第二消息300E被圖示為包括第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)300D。在第一計(jì)算實(shí)體是圖2的發(fā)起器201且第二計(jì)算實(shí)體是圖2的事務(wù)管理器202的一個(gè)實(shí)施例中,此消息是由WS-協(xié)調(diào)協(xié)議所定義的創(chuàng)建協(xié)調(diào)上下文響應(yīng),但還外加并非由WS-協(xié)調(diào)規(guī)范所定義的第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),在該創(chuàng)建協(xié)調(diào)上下文響應(yīng)中,事務(wù)管理器響應(yīng)于發(fā)起器所提供的創(chuàng)建協(xié)調(diào)上下文請(qǐng)求。在另一個(gè)實(shí)施例中,此第二消息早在分布式活動(dòng)之前已被生成,并可從由WS-協(xié)調(diào)所管理的任何消息交換中頻帶外地獲得。
第二計(jì)算實(shí)體隨即向第一計(jì)算實(shí)體提供第二消息(動(dòng)作316),于是第一計(jì)算實(shí)體接收第二消息(動(dòng)作304)。
第一計(jì)算實(shí)體從第二消息中讀出第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)(動(dòng)作305),然后基于第一計(jì)算實(shí)體所支持的第一擴(kuò)展和第二計(jì)算實(shí)體所支持的第二擴(kuò)展來(lái)標(biāo)識(shí)實(shí)際要使用的擴(kuò)展(動(dòng)作306)。
因此,如果第二計(jì)算實(shí)體能夠根據(jù)本發(fā)明的原理協(xié)商消息交換協(xié)議擴(kuò)展,則第一和第二計(jì)算實(shí)體可就消息交換協(xié)議的一個(gè)或多個(gè)擴(kuò)展取得一致,并使用這一個(gè)或多個(gè)擴(kuò)展,從而提高消息交換的性能。另一方面,如果第二計(jì)算實(shí)體不能夠根據(jù)本發(fā)明的原理協(xié)商擴(kuò)展,則第二計(jì)算實(shí)體將簡(jiǎn)單地忽略第一擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),并簡(jiǎn)單地響應(yīng)第一消息,而響應(yīng)中不包括第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)。第一計(jì)算實(shí)體隨即可解釋缺少此類(lèi)第二擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),以意味著第二計(jì)算實(shí)體根本不支持?jǐn)U展,因而第一計(jì)算實(shí)體將簡(jiǎn)單地后退到無(wú)擴(kuò)展的基本消息交換協(xié)議。由此,即使并非消息交換的所有各方都能夠協(xié)商消息交換協(xié)議的擴(kuò)展,仍可啟用后等級(jí)的消息交換。通過(guò)在端點(diǎn)引用中提供擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),在第二計(jì)算系統(tǒng)不能夠解釋這些數(shù)據(jù)結(jié)構(gòu)的情況下,第二計(jì)算系統(tǒng)可正當(dāng)?shù)睾雎赃@些數(shù)據(jù)結(jié)構(gòu)。在此情形中,第二計(jì)算實(shí)體仍可使用基本消息交換協(xié)議與第一計(jì)算實(shí)體交互。
在一個(gè)實(shí)施例中,所協(xié)商的擴(kuò)展是允許提高性能、正確性和互用性的WS-協(xié)調(diào)和WS-原子事務(wù)的非常規(guī)擴(kuò)展。在該情形中,參考圖3A所描述的第一計(jì)算實(shí)體可為發(fā)起器201,參考圖3A所描述的第二計(jì)算實(shí)體可為事務(wù)管理器202。在此情形中,任何時(shí)候如WS-協(xié)調(diào)協(xié)議所定義地建立起參與者-協(xié)調(diào)者關(guān)系,參與者和協(xié)調(diào)者即可協(xié)商WS-協(xié)調(diào)或WS-AT的不同擴(kuò)展。這允許各方以適應(yīng)其能力的不同方式優(yōu)化消息交換協(xié)議和各計(jì)算實(shí)體之間的鏈路?,F(xiàn)在將描述WS-協(xié)調(diào)和WS-AT這些擴(kuò)展的若干示例。
擴(kuò)展#1WS-協(xié)調(diào)指定兩輪往返以首先在發(fā)起器及其事務(wù)管理器之間建立分布式活動(dòng)。具體而言,發(fā)起器向事務(wù)管理器發(fā)送CreateCoordinationContext請(qǐng)求。事務(wù)管理器隨即向發(fā)起器發(fā)送CreateCoordinationContextResponse。第一輪往返完成事務(wù)的建立。然后發(fā)起器向事務(wù)管理器發(fā)送Register請(qǐng)求。事務(wù)管理器隨即向發(fā)起器返回RegistrationResponse。此第二輪往返將發(fā)起器注冊(cè)為在事務(wù)中具有某個(gè)任務(wù)。這兩輪往返可能顯著消耗時(shí)間。
根據(jù)可使用以上參考圖3所描述的方法來(lái)協(xié)商的WS-協(xié)調(diào)的一個(gè)擴(kuò)展,發(fā)起器和事務(wù)管理器可將此消息交換縮減至一輪往返。具體而言,發(fā)起器可將注冊(cè)信息改為包括到CreateCoordinationContext請(qǐng)求中(一般包括在Register消息中)。類(lèi)似地,事務(wù)管理器可將注冊(cè)響應(yīng)信息改為包括到CreateCoordinationContextResponse消息中(一般包括在RegistrationResponse)中。這將顯著減少注冊(cè)到分布式活動(dòng)中的等待時(shí)間,從而提高性能。
擴(kuò)展#2在第二示例擴(kuò)展中,與WS-AT所指定的常規(guī)的兩階段準(zhǔn)備提交事務(wù)相關(guān)聯(lián)的兩輪往返(見(jiàn)圖5的消息流程)可改為減少到一輪往返。參考圖5,從事務(wù)管理器TM2接收到準(zhǔn)備消息的時(shí)候起直至事務(wù)管理器TM2接收到提交消息的時(shí)候?yàn)橹梗闯R?guī)事務(wù)管理器TM2進(jìn)入存疑階段505。
但是在一些情形中,事務(wù)管理器TM2可能是事務(wù)中唯一實(shí)際關(guān)心事務(wù)結(jié)果的一方。例如,可能與事務(wù)管理器TM2相關(guān)聯(lián)的遠(yuǎn)程應(yīng)用程序是事務(wù)中除發(fā)起器以外的唯一一方。在該情形中,此第二示例擴(kuò)展可根據(jù)參考圖3所描述的方法來(lái)協(xié)商。
在此第二示例性擴(kuò)展中,準(zhǔn)備消息501(或本文中稱(chēng)為單階段提交消息的一些其它消息)被事務(wù)管理器TM2解釋為對(duì)是要提交該事務(wù)還是中止該事務(wù)的決策的委托。事務(wù)管理器TM2可向事務(wù)管理器TM1報(bào)告它是提交了還是中止了該事務(wù)。但是,除此以外,將由事務(wù)管理器TM1完成該事務(wù)。第二事務(wù)管理器TM2將不會(huì)期待來(lái)自TM1的執(zhí)行信息。更進(jìn)一步地,除了內(nèi)部確定是提交還是中止事務(wù)所占去第二事務(wù)管理器TM2的時(shí)間以外,第二事務(wù)管理器TM2不會(huì)進(jìn)入明顯的存疑階段。因?yàn)榇嬉呻A段被消除或至少縮短,所以事務(wù)性能被提高。
擴(kuò)展#3第三示例性在協(xié)調(diào)者(例如,第一事務(wù)管理器TM1)如在上述擴(kuò)展#2中所示地將決定要提交還是中止事務(wù)的責(zé)任委托給參與者(即,第二事務(wù)管理器TM2)時(shí)適用。如以上就擴(kuò)展#2所提及的,這可使用單階段提交消息來(lái)完成。在此第三示例性擴(kuò)展中,參與者(例如,第二事務(wù)管理器TM2)可使用存疑消息等來(lái)響應(yīng)單階段提交消息,以向第一事務(wù)管理器TM1指示第一事務(wù)管理器TM1對(duì)該事務(wù)是被提交還是被中止感到懷疑。例如,假設(shè)第二事務(wù)管理器TM2還將為要提交還是中止事務(wù)決策制定委托給又一個(gè)計(jì)算實(shí)體,且第二事務(wù)管理器TM2從未從第三方接收到該事務(wù)要被提交還是被中止的指示,則第二事務(wù)管理器TM2在一段時(shí)間以后可向第一事務(wù)管理器TM1發(fā)送存疑消息。
擴(kuò)展#4如果第二事務(wù)管理器TM2在某種程度上會(huì)失去關(guān)于事務(wù)的狀態(tài)信息的線索,或是失去事務(wù)已被提交還是被中止的線索,則第二事務(wù)管理器TM2可通過(guò)向第一事務(wù)管理器TM1發(fā)送Replay(重放)消息來(lái)遵守常規(guī)WS-AT協(xié)議。第一事務(wù)管理器TM1隨即可在該事務(wù)處于打開(kāi)狀態(tài)的情況下提供該事務(wù)的任何狀態(tài)信息,或者在該事務(wù)不在進(jìn)行中的情況下提供關(guān)于該事務(wù)被提交還是被中止的決定。
但是,此常規(guī)Replay消息僅允許標(biāo)識(shí)一個(gè)事務(wù)。如果第二事務(wù)管理器TM2有許多需要重放的不同事務(wù),則要為每個(gè)事務(wù)發(fā)送一個(gè)Replay消息。此第四示例性擴(kuò)展允許單個(gè)Replay消息包括一個(gè)以上事務(wù)的標(biāo)識(shí)。因而第一事務(wù)管理器TM1將為每個(gè)事務(wù)發(fā)送適當(dāng)?shù)臓顟B(tài)或狀況信息。Replay消息甚至可僅指示在某個(gè)時(shí)間段內(nèi)對(duì)所有打開(kāi)的事務(wù)都期望重放。此擴(kuò)展提高復(fù)原期間的性能,特別是在可能有多個(gè)并發(fā)事務(wù)的情況下。
擴(kuò)展#5第五示例性擴(kuò)展補(bǔ)充可包括在CreateCoordinationContext消息中的信息。該消息可被擴(kuò)展成包括對(duì)事務(wù)有用的任何信息。例如,CreateCoordinationContext消息可包括人類(lèi)可讀的信息,管理員可訪問(wèn)該信息以獲取有關(guān)該事務(wù)的信息。CreateCoordinationContext還可包括一隔離等級(jí)參數(shù),該參數(shù)表示當(dāng)多個(gè)事務(wù)并發(fā)地訪問(wèn)資源時(shí),資源管理器(諸如數(shù)據(jù)庫(kù))應(yīng)如何鎖定資源,以及資源應(yīng)如何反應(yīng)。
此擴(kuò)展還可允許此類(lèi)事務(wù)專(zhuān)屬的信息被包括到CoordinationContext(協(xié)調(diào)上下文)對(duì)象中。這將允許一般能解釋CoordinationContext對(duì)象的任何計(jì)算實(shí)體也能訪問(wèn)該事務(wù)專(zhuān)屬信息。
此類(lèi)事務(wù)專(zhuān)屬信息甚至可包括允許計(jì)算實(shí)體注冊(cè)到由除WS-AT以外的事務(wù)協(xié)議所管理的事務(wù)中的機(jī)制或綁定。此類(lèi)綁定可包括,例如OleTx或TIP。協(xié)調(diào)上下文對(duì)象的接收者隨即不僅可使用CoordinationContext對(duì)象中所提供的綁定來(lái)注冊(cè)到事務(wù)中,還可使用這些綁定來(lái)選擇完成該事務(wù)中所要使用的事務(wù)協(xié)議。
擴(kuò)展#6另一個(gè)擴(kuò)展允許端點(diǎn)引用內(nèi)的上下文信息隨有關(guān)該事務(wù)是否被正確終止(例如,通過(guò)被提交或中止)的信息包括其它信息,諸如當(dāng)前事務(wù)的標(biāo)識(shí)和/或進(jìn)行中的其它事務(wù)的標(biāo)識(shí)。端點(diǎn)引用是由WS-定址規(guī)范所定義的,并被包括在WS-協(xié)調(diào)協(xié)議所定義的所有CreateCoordinationContextResponse、Register和RegistrationResponse消息中。此信息將允許參與者或協(xié)調(diào)者檢測(cè)有關(guān)事務(wù)的“記憶丟失”。
即使最可靠的計(jì)算實(shí)體也總是可能會(huì)丟失事務(wù)的線索。為了檢測(cè)出記憶丟失,需要在未來(lái)檢測(cè)記憶丟失的計(jì)算實(shí)體可將有關(guān)事務(wù)的信息插入到存儲(chǔ)在WS-定址所定義的端點(diǎn)引用中的ReferenceParameters(引用參數(shù))對(duì)象中。在未來(lái)涉及該事務(wù)的通信中,此狀態(tài)信息將在“ReplyTo(回復(fù)給)”頭部中被返回給該計(jì)算實(shí)體。該計(jì)算實(shí)體隨即可使用此信息來(lái)識(shí)別該計(jì)算實(shí)體是否知道該事務(wù);如果該計(jì)算實(shí)體不知道該事務(wù),可使用此信息來(lái)識(shí)別認(rèn)知缺失是由于該事務(wù)的正確終止,還是由于進(jìn)行中非本意地遺忘了該事務(wù)(即,記憶丟失)。如果發(fā)生了記憶丟失,則該計(jì)算實(shí)體隨即可采取適當(dāng)行動(dòng)(諸如通知用戶或管理員該記憶丟失)來(lái)復(fù)原。
擴(kuò)展#7另一個(gè)擴(kuò)展通過(guò)向當(dāng)前不由WS-AT所管理的事務(wù)提供標(biāo)識(shí)符來(lái)允許生成CoordinationContext。例如,假設(shè)現(xiàn)有OleTx事務(wù)在進(jìn)行中。現(xiàn)在假設(shè)該事務(wù)中的一個(gè)參與者想要使用WS-AT來(lái)擴(kuò)展該事務(wù)。為此,該參與者需要一CoordinationContext對(duì)象來(lái)傳遞給其它預(yù)期的參與者。該參與者可為這一CoordinationContext對(duì)象生成一個(gè)請(qǐng)求(可選地,該請(qǐng)求可為CreateCoordinationContext請(qǐng)求)。CoordinationContext對(duì)象被返回,于是它被傳遞給也要參與該事務(wù)的任何遠(yuǎn)程應(yīng)用程序。其它參與者隨即可使 用該CoordinationContext對(duì)象來(lái)注冊(cè)到該事務(wù)中。
由此,本發(fā)明的原理允許有效地協(xié)商要被用來(lái)完成分布式活動(dòng)的傳輸不可知的協(xié)調(diào)協(xié)議。本發(fā)明的原理還提供現(xiàn)有WS-協(xié)調(diào)和WS-AT的一些有利擴(kuò)展,這些擴(kuò)展提供提高的性能、正確性和互用性。
本發(fā)明能以其它具體形式具體化,而不會(huì)偏離本發(fā)明的精神或本質(zhì)特征。從所有意義上來(lái)說(shuō),所描述的各個(gè)實(shí)施例都只是示例性而不是限制性的。因此,本發(fā)明的范圍是由所附說(shuō)明書(shū)來(lái)指示,而不是由前述描述來(lái)指示。所有落入所附權(quán)利要求書(shū)的等效方案的意義和范圍之內(nèi)的改變將被包括到所附權(quán)利要求書(shū)的范圍之內(nèi)。
權(quán)利要求
1.在包括能使用可擴(kuò)展的消息交換協(xié)議彼此通信的第一計(jì)算實(shí)體和第二計(jì)算實(shí)體的環(huán)境中,一種用于使所述第一計(jì)算實(shí)體與所述第二計(jì)算實(shí)體協(xié)商要在使用消息交換的通信中使用的所述消息交換協(xié)議的一個(gè)或多個(gè)擴(kuò)展的方法,所述方法包括以下動(dòng)作所述第一計(jì)算實(shí)體構(gòu)造第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作,所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)所述第一計(jì)算實(shí)體在所述消息交換模式中與所述第二計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第一組一個(gè)或多個(gè)擴(kuò)展;所述第一計(jì)算實(shí)體構(gòu)造第一消息的動(dòng)作,所述第一消息包括所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu);所述第一計(jì)算實(shí)體將所述第一消息提供給所述第二計(jì)算實(shí)體的動(dòng)作;所述第一計(jì)算實(shí)體從所述第二計(jì)算實(shí)體接收第二消息的動(dòng)作;確定所述第二消息中是否包括第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作,所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)所述第二計(jì)算實(shí)體在所述消息交換模式中與所述第一計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第二組一個(gè)或多個(gè)擴(kuò)展;或確定所述第二組一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)是否存在;以及所述第一計(jì)算實(shí)體在所述第二組一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)不存在的情況下標(biāo)識(shí)將在所述消息交換協(xié)議中使用無(wú)擴(kuò)展的消息交換模式,或在所述第二消息中存在所述第二組一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的情況下基于所述第一一個(gè)或多個(gè)擴(kuò)展和所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)在所述消息交換中實(shí)際要使用的第三一個(gè)或多個(gè)擴(kuò)展的動(dòng)作。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一消息還包括發(fā)起分布式活動(dòng)的請(qǐng)求,且所述第二消息還包括對(duì)所述發(fā)起分布式活動(dòng)的請(qǐng)求的響應(yīng)。
3.如權(quán)利要求2所述的方法,其特征在于,所述請(qǐng)求是如WS-協(xié)調(diào)協(xié)議所定義的CreateCoordinationContext(創(chuàng)建協(xié)調(diào)上下文)請(qǐng)求,且所述響應(yīng)是如WS-協(xié)調(diào)協(xié)議所定義的CreateCoordinationContextResponse(創(chuàng)建協(xié)調(diào)上下文響應(yīng))消息。
4.如權(quán)利要求3所述的方法,其特征在于,所述消息交換協(xié)議允許在端點(diǎn)端點(diǎn)引用中包括允許信息和管理所述分布式活動(dòng)的事務(wù)、或所述事務(wù)中的具體參與之間的相關(guān)的信息。
5.如權(quán)利要求3所述的方法,其特征在于,所述消息交換協(xié)議允許在端點(diǎn)端點(diǎn)引用中包括標(biāo)識(shí)一個(gè)或多個(gè)當(dāng)前未決的事務(wù)的信息。
6.如權(quán)利要求3所述的方法,其特征在于,所述消息交換協(xié)議允許在CreateCoordinationContext請(qǐng)求中包括其它信息。
7.如權(quán)利要求6所述的方法,其特征在于,所述其它信息包括要對(duì)所述分布式活動(dòng)應(yīng)用的隔離參數(shù)。
8.如權(quán)利要求3所述的方法,其特征在于,所述消息交換協(xié)議允許在CreateCoordinationContextResponse消息中提供的CoordinationContext(協(xié)調(diào)上下文)消息中包括其它信息。
9.如權(quán)利要求8所述的方法,其特征在于,所述其它信息包括對(duì)除WS-AT以外的事務(wù)協(xié)議的綁定。
10.如權(quán)利要求9所述的方法,其特征在于,所述除WS-AT以外的事務(wù)協(xié)議是OleTx。
11.如權(quán)利要求10所述的方法,其特征在于,所述除WS-AT以外的事務(wù)協(xié)議是TIP。
12.如權(quán)利要求3所述的方法,其特征在于,所述請(qǐng)求還包括注冊(cè)信息,所述注冊(cè)信息通常被包括在如WS-協(xié)調(diào)協(xié)議所定義的Register(注冊(cè))請(qǐng)求內(nèi),且所述響應(yīng)包括注冊(cè)響應(yīng)信息,所述注冊(cè)響應(yīng)信息被包括在如WS-協(xié)調(diào)協(xié)議所定義的RegistrationResponse(注冊(cè)響應(yīng))消息內(nèi)。
13.如權(quán)利要求2所述的方法,其特征在于,所述消息交換協(xié)議或者允許兩階段準(zhǔn)備/提交事務(wù),或者允許對(duì)用于提交所述事務(wù)的決策制定的委托。
14.如權(quán)利要求13所述的方法,其特征在于,所述消息交換協(xié)議允許第二事務(wù)管理器響應(yīng)于所述第一管理器指示所述第二事務(wù)管理器準(zhǔn)備所述事務(wù)然后提交所述事務(wù),向所述第一事務(wù)管理器指示所述第二事務(wù)管理器對(duì)所述事務(wù)的狀態(tài)感到懷疑。
15.如權(quán)利要求2所述的方法,其特征在于,所述信息交換協(xié)議準(zhǔn)許來(lái)自所述第二事務(wù)管理器的單個(gè)重放消息標(biāo)識(shí)期望重放的多個(gè)事務(wù)。
16.如權(quán)利要求2所述的方法,其特征在于,所述請(qǐng)求是如WS-協(xié)調(diào)協(xié)議所定義的CreateCoordinationContextResponse消息。
17.如權(quán)利要求2所述的方法,其特征在于,所述請(qǐng)求是如WS-協(xié)調(diào)協(xié)議所定義的Register請(qǐng)求。
18.如權(quán)利要求1所述的方法,其特征在于,所述消息交換協(xié)議允許基于實(shí)現(xiàn)除WS-AT以外的事務(wù)協(xié)議的現(xiàn)有事務(wù)生成CoordinationContext對(duì)象。
19.在包括能使用可擴(kuò)展的消息交換協(xié)議彼此通信的第一計(jì)算實(shí)體和第二計(jì)算實(shí)體的環(huán)境中,一種用于使所述第二計(jì)算實(shí)體與所述第一計(jì)算實(shí)體協(xié)商要在使用消息交換的通信中使用的所述消息交換協(xié)議的一個(gè)或多個(gè)擴(kuò)展的方法,所述方法包括以下動(dòng)作所述第二計(jì)算實(shí)體從所述第一計(jì)算實(shí)體接收第一消息的動(dòng)作,所述第一消息包括第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)包括標(biāo)識(shí)所述第二計(jì)算實(shí)體在所述消息交換模式中與所述第一計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第一組一個(gè)或多個(gè)擴(kuò)展的信息;第一事務(wù)管理器構(gòu)造第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作,所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)所述第二計(jì)算實(shí)體在所述消息交換模式中與所述第一計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第二組一個(gè)或多個(gè)擴(kuò)展;所述第二計(jì)算實(shí)體構(gòu)造第二消息的動(dòng)作,所述第二消息包括所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu);所述第二計(jì)算實(shí)體將所述第二消息提供給所述第一計(jì)算實(shí)體的動(dòng)作;所述第二計(jì)算實(shí)體從所述第一消息中讀出所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作;以及所述第二計(jì)算實(shí)體基于所述第一一個(gè)或多個(gè)擴(kuò)展和第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)標(biāo)識(shí)在所述消息交換中實(shí)際要使用的一個(gè)或多個(gè)擴(kuò)展的動(dòng)作。
20.一種可在包括能夠使用可擴(kuò)展的消息交換協(xié)議彼此通信的第一計(jì)算實(shí)體和第二計(jì)算實(shí)體的環(huán)境中使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括一個(gè)或多個(gè)其上具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),所述計(jì)算機(jī)可執(zhí)行指令使所述第一計(jì)算實(shí)體執(zhí)行一種用于使所述第一計(jì)算實(shí)體與所述第二計(jì)算實(shí)體協(xié)商要在使用消息交換的通信中使用的所述消息交換協(xié)議的一個(gè)或多個(gè)擴(kuò)展的方法,所述方法包括以下動(dòng)作所述第一計(jì)算實(shí)體構(gòu)造第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作,所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)所述第一計(jì)算實(shí)體在所述消息交換模式中與所述第二計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第一組一個(gè)或多個(gè)擴(kuò)展;所述第一計(jì)算實(shí)體構(gòu)造第一消息的動(dòng)作,所述第一消息包括所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu);所述第一計(jì)算實(shí)體將所述第一消息提供給所述第二計(jì)算實(shí)體的動(dòng)作;所述第一計(jì)算實(shí)體從所述第二計(jì)算實(shí)體接收第二消息的動(dòng)作;確定所述第二消息中是否包括第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作,所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)所述第二計(jì)算實(shí)體在所述消息交換模式中與所述第一計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第二組一個(gè)或多個(gè)擴(kuò)展;或者確定是否缺少第二組一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作;以及所述第一計(jì)算實(shí)體在所述第二組一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)不存在的情況下標(biāo)識(shí)將在所述消息交換協(xié)議中使用無(wú)擴(kuò)展的所述消息交換模式,或者在所述第二消息中存在所述第二組一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的情況下基于所述第一一個(gè)或多個(gè)擴(kuò)展和第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)在所述消息交換中實(shí)際要使用的第三一個(gè)或多個(gè)擴(kuò)展的動(dòng)作。
21.一種可在包括能夠使用可擴(kuò)展的消息交換協(xié)議彼此通信的第一計(jì)算實(shí)體和第二計(jì)算實(shí)體的環(huán)境中使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括一個(gè)或多個(gè)其上具有計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)由一個(gè)或多個(gè)處理器執(zhí)行時(shí),所述計(jì)算機(jī)可執(zhí)行指令使所述第二計(jì)算實(shí)體實(shí)現(xiàn)一種使所述第二計(jì)算系統(tǒng)與所述第一計(jì)算系統(tǒng)協(xié)商在使用消息交換的通信中要使用的消息交換協(xié)議的一個(gè)或多個(gè)擴(kuò)展的方法,所述方法包括以下動(dòng)作所述第二計(jì)算實(shí)體從所述第一計(jì)算實(shí)體接收第一消息的動(dòng)作,所述第一消息包括第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu),所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)所述第二計(jì)算實(shí)體在所述消息交換模式中與所述第一計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第一組一個(gè)或多個(gè)擴(kuò)展;第一事務(wù)管理器構(gòu)造第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作,所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)所述第二計(jì)算實(shí)體在所述消息交換模式中與所述第一計(jì)算實(shí)體通信時(shí)能夠?qū)崿F(xiàn)的第二組一個(gè)或多個(gè)擴(kuò)展;所述第二計(jì)算實(shí)體構(gòu)造第二消息的動(dòng)作,所述第二消息包括所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu);所述第二計(jì)算實(shí)體將所述第二消息提供給所述第一計(jì)算實(shí)體的動(dòng)作;所述第二計(jì)算實(shí)體從所述第一消息中讀出所述第一一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)數(shù)據(jù)結(jié)構(gòu)的動(dòng)作;以及所述第二計(jì)算實(shí)體基于所述第一一個(gè)或多個(gè)擴(kuò)展和所述第二一個(gè)或多個(gè)擴(kuò)展標(biāo)識(shí)在所述消息交換中實(shí)際要使用的一個(gè)或多個(gè)擴(kuò)展的動(dòng)作。
全文摘要
一種在完成分布式活動(dòng)中可使用的、用于協(xié)商相對(duì)傳輸不可知的通信協(xié)議的機(jī)制??赡芙?jīng)受協(xié)商的協(xié)議可以是例如Web服務(wù)協(xié)調(diào)的擴(kuò)展。在該情形中,當(dāng)發(fā)起器創(chuàng)建一事務(wù),該發(fā)起器還與其事務(wù)管理器協(xié)商期望的協(xié)議。事務(wù)管理器及事務(wù)中其它參與者隨即在與該事務(wù)管理器通信時(shí)將遵守所協(xié)商的協(xié)議。協(xié)議可被選擇以改善性能,并可按現(xiàn)有需要和能力定制修改。
文檔編號(hào)H04L12/56GK1832472SQ20051011887
公開(kāi)日2006年9月13日 申請(qǐng)日期2005年11月3日 優(yōu)先權(quán)日2004年12月3日
發(fā)明者D·E·朗沃斯, J·E·約漢森, J·D·多荻, M·A·菲恩古爾德, M·R·克拉科 申請(qǐng)人:微軟公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
无棣县| 通海县| 北海市| 安塞县| 正蓝旗| 珠海市| 建阳市| 井陉县| 鲁甸县| 平昌县| 内江市| 建始县| 射阳县| 嵩明县| 长子县| 长乐市| 镇雄县| 汨罗市| 抚州市| 呼和浩特市| 都江堰市| 光山县| 深州市| 饶平县| 沁源县| 辉县市| 蛟河市| 迁西县| 高密市| 泾阳县| 黔南| 成都市| 津市市| 新平| 南乐县| 昌乐县| 阿城市| 长春市| 新河县| 乌海市| 赤城县|