亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

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

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


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