專利名稱:角色獨(dú)立的上下文交換的制作方法
角色獨(dú)立的上下文交換
背景技術(shù):
網(wǎng)絡(luò),特別是因特網(wǎng)的出現(xiàn)導(dǎo)致在線服務(wù)變得常見(jiàn)。這種在線服務(wù)通常是通過(guò)在網(wǎng)絡(luò)上傳遞消息的某些形式被訪問(wèn)。在兩個(gè)參與方之間的相關(guān)的消息的持續(xù)交換通常要求這些參與方維護(hù)有關(guān)會(huì)話的歷史信息(會(huì)話狀態(tài)),并且要求這些參與方具有一種標(biāo)識(shí)可能相關(guān)的消息的機(jī)制。
發(fā)明內(nèi)容
下面提供本發(fā)明的簡(jiǎn)要概述以便向讀者提供基本的理解。本概述不是本發(fā)明的詳盡概觀,并且既不標(biāo)識(shí)本發(fā)明的關(guān)鍵/重要元素,也不描繪本發(fā)明的范圍。其唯一目的是以簡(jiǎn)化形式提供在此公開(kāi)一些概念作為稍后提供的更詳細(xì)描述的序言。本示例提供了用于多個(gè)參與方之間的會(huì)話的技術(shù),所述會(huì)話包括可被持久保存的上下文信息,以用于在所述參與方或與其通信的通信介質(zhì)間歇工作時(shí)來(lái)維持所述會(huì)話。在這樣的會(huì)話中,任意參與方可以將其對(duì)上下文的觀點(diǎn)嵌入到消息中,并且,任意參與方可以在不考慮角色(role)和底層網(wǎng)絡(luò)、傳輸或應(yīng)用程序消息交換模式的情況下發(fā)送下一消息。 這些技術(shù)提供了持久的服務(wù)。許多附帶特征將隨著參考下面的詳細(xì)描述并結(jié)合附圖進(jìn)行理解而得到更好的認(rèn)識(shí)。
結(jié)合附圖考慮以下詳細(xì)描述,將更好地理解本說(shuō)明書(shū),在附圖中圖1是示出通過(guò)各種通信介質(zhì)耦合通信的示例參與方的框圖。圖2是示出示例參與方和示例會(huì)話的示例消息序列的框圖。圖3是示出其中可以實(shí)現(xiàn)此處所描述的技術(shù)的示例計(jì)算環(huán)境的框圖。附圖中使用相同的附圖標(biāo)記來(lái)指代相同的部分。
具體實(shí)施例方式下面結(jié)合附圖所提供的詳細(xì)描述旨在作為對(duì)本發(fā)明各示例的描述,而非表示用于構(gòu)造或利用本發(fā)明各示例的唯一形式。本說(shuō)明書(shū)闡明各示例的功能和/或用于構(gòu)造和操作各示例的步驟序列的至少某一些。然而,相同或等效的功能與序列可由不同的示例來(lái)實(shí)現(xiàn)。雖然在本文中將本發(fā)明的示例描述并示出為在計(jì)算和聯(lián)網(wǎng)環(huán)境中實(shí)現(xiàn),但是所描述的技術(shù)只是作為示例而非限制來(lái)提供。本領(lǐng)域的技術(shù)人員將會(huì)認(rèn)識(shí)到,本發(fā)明的示例適于在各種不同類型的計(jì)算和聯(lián)網(wǎng)環(huán)境和系統(tǒng)中應(yīng)用。圖1是示出通過(guò)各種通信介質(zhì)耦合通信的示例參與方110和120的框圖。示例參與方110被示為通過(guò)因特網(wǎng)130、示例消息隊(duì)列140和示例網(wǎng)絡(luò)150與示例參與方120耦合,所述網(wǎng)絡(luò)150可以是局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)或任何其他類型的網(wǎng)絡(luò)或網(wǎng)絡(luò)的組合。參與方110和/或120可以通過(guò)任意其他的介質(zhì)、技術(shù)、手段等等(在此共同地或單獨(dú)地被稱為“通信介質(zhì)”并包括結(jié)合圖3所描述的內(nèi)容)被另外地或替換地通信耦合。 參與方110和/或120可以包括多個(gè)網(wǎng)絡(luò)接口卡等等,每個(gè)網(wǎng)絡(luò)接口卡耦合到不同的網(wǎng)絡(luò)寸寸。在該示例中,通信介質(zhì)130、140和150是“通信上不同的”或簡(jiǎn)單地是“不同的”。 就是說(shuō),參與方110和120中的每個(gè)通過(guò)一個(gè)耦合(未示出,例如網(wǎng)絡(luò)接口卡(“NIC”等)) 耦合到通信介質(zhì)150,并通過(guò)另一個(gè)不同的耦合(未示出)耦合到通信介質(zhì)140,并通過(guò)又一個(gè)不同的耦合(未示出)耦合到通信介質(zhì)130。這樣,參與方110不能在其到通信介質(zhì) 150的耦合上通過(guò)因特網(wǎng)(通信介質(zhì)130)與參與方120進(jìn)行通信,因?yàn)楦鞣N的通信介質(zhì)是不同的。這些通信介質(zhì)可以共享硬件、網(wǎng)絡(luò)、鏈接等,但它們還是通信上不同的或是不同的。 例如,在因特網(wǎng)上建立的虛擬個(gè)人網(wǎng)絡(luò)(“VPN”)典型地與其工作的因特網(wǎng)是通信上不同的。在另一個(gè)示例中,到特定參與方的LAN連接可以與到同一參與方的WAN連接或另一不同的LAN在通信上不同。在另一個(gè)示例中,可以在因特網(wǎng)上或LAN上建立消息隊(duì)列,這樣, 該消息隊(duì)列不同于所述因特網(wǎng)或LAN。許多其他的通信上不同的通信介質(zhì)的示例對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)是公知的,并且可以被本發(fā)明所利用。如果保證在會(huì)話中的兩個(gè)參與方,例如參與方110和120,連續(xù)工作,則消息交換可以在將信息駐留在這兩個(gè)參與方的非持久保存的存儲(chǔ)器中的情況下進(jìn)行。例如,這可以是在一系列消息已經(jīng)在LAN之上的同一傳輸控制協(xié)議(“TCP”)連接上交換的情況。然而, 對(duì)于應(yīng)用來(lái)說(shuō),需要參與方之一或兩者都間歇性工作和/或與它們耦合的通信介質(zhì)間歇性工作的情況是常見(jiàn)的。而且,允許用于在參與方之間交換消息的特定通信介質(zhì)隨時(shí)間改變, 甚至隨一消息到下一消息而改變是有價(jià)值的。在此使用的術(shù)語(yǔ)“參與方”或“多個(gè)參與方”通常指代某些形式的計(jì)算系統(tǒng)或設(shè)備或能夠與另一參與方通信的類似物。參與方通常在此被命名為“系統(tǒng)”。這種計(jì)算系統(tǒng)可以由結(jié)合圖3所描述的計(jì)算環(huán)境來(lái)提供。參與方可以被認(rèn)為是客戶機(jī)和/或服務(wù)器和/或服務(wù)。參與方可以是“持久服務(wù)”,持久保存會(huì)話狀態(tài)的服務(wù),使得所述服務(wù)可以在不丟失會(huì)話狀態(tài)的情況下關(guān)閉并重啟。參與方可以由通過(guò)網(wǎng)絡(luò)、總線或其他通信手段等耦合的計(jì)算系統(tǒng)集合來(lái)構(gòu)成。在此使用的術(shù)語(yǔ)“會(huì)話消息”和“消息”通常指代可以包括幾個(gè)部分(典型地包括主體和一個(gè)或多個(gè)標(biāo)題)的自包含的數(shù)據(jù)單元。這種消息可以在一個(gè)或多個(gè)數(shù)據(jù)分組中傳輸,所述一個(gè)或多個(gè)數(shù)據(jù)分組可使用任意適合的傳輸協(xié)議被傳輸給另一參與方。在此使用的術(shù)語(yǔ)“會(huì)話”通常指代在參與方之間的某些消息交換,并且每個(gè)發(fā)送的消息可以涉及通過(guò)傳輸協(xié)議的在參與方之間的簡(jiǎn)單的或復(fù)雜的分組交換,傳輸協(xié)議可諸如例如超文本傳輸協(xié)議(“HTTP”)或以前稱為“簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議”的SOAP。會(huì)話可以是短持續(xù)時(shí)間的或在例如數(shù)月、數(shù)年或更長(zhǎng)的一個(gè)很長(zhǎng)的持續(xù)時(shí)間中進(jìn)行。會(huì)話可以由僅幾個(gè)消息(伴隨單個(gè)回應(yīng)的單個(gè)請(qǐng)求)或許多消息構(gòu)成。會(huì)話可以利用多個(gè)通信介質(zhì),并且這些介質(zhì)可以在會(huì)話生存期上變化。會(huì)話可以在即使參與方、通信介質(zhì)、傳輸和或涉及的類似物意外地或有意地停止工作一段時(shí)間并隨后再次工作的情況下保持。可以在不考慮分配給參與方的任何一個(gè)或多個(gè)角色的情況下由任一參與方開(kāi)始會(huì)話。任一參與方可以同時(shí)涉及一個(gè)或多個(gè)會(huì)話中。在此使用的術(shù)語(yǔ)“通信介質(zhì)”通常指代物理連接性和/或協(xié)議連接性和這兩者的任意組合等等。物理連接性的通信介質(zhì)的示例包括特定網(wǎng)絡(luò)、串行總線、紅外線鏈接等等。 協(xié)議連接性的通信介質(zhì)的示例包括包括在某些物理連接性上的各種傳輸協(xié)議,例如消息隊(duì)列、TCP、簡(jiǎn)單郵件傳輸協(xié)議(“SMTP”)、S0AP(以前稱為“簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議”)或HTTP。協(xié)議連接性可提供直接連接(例如TCP)或去耦合連接(例如消息隊(duì)列)。在一些情況中,不同的傳輸協(xié)議可以使用同一的物理連接性。例如,消息隊(duì)列和TCP連接都能在同一網(wǎng)絡(luò)上工作。而且,在另一示例中,消息隊(duì)列可以使用TCP來(lái)實(shí)現(xiàn)。每個(gè)會(huì)話消息典型地具有與其相關(guān)聯(lián)的(包括的和/或參考的)會(huì)話上下文,所述會(huì)話上下文表示會(huì)話的狀態(tài)、發(fā)送會(huì)話的參與方的地址以及接收會(huì)話的參與方的地址。 消息的格式可以隨意構(gòu)建。在一個(gè)示例中,使用可擴(kuò)展標(biāo)記語(yǔ)言(“XML”)以及所述地址和上下文分段來(lái)格式化消息。在另一個(gè)示例中,消息中的會(huì)話的上下文是一上下文屬性列表, 每個(gè)上下文屬性具有給定的名字和對(duì)應(yīng)的值,所述值是文本串。在另一個(gè)示例中,將上下文和/或地址加入到消息標(biāo)題。在又一個(gè)示例中,使用會(huì)話的兩個(gè)參與方之間的預(yù)先安排的協(xié)定從消息主體的內(nèi)容中推斷出上下文和/或地址。圖2是示出示例參與方110和120與示例會(huì)話的示例消息序列200的框圖。參與方110和120類似于圖中的那些參與方。示出的示例參與方120包括示例發(fā)送器123、示例接收器124以及示例存儲(chǔ)器125。發(fā)送器123典型地包括用于生成并發(fā)送消息的消息處理管道。接收器1 典型地包括用于接收并處理消息的消息處理管道。存儲(chǔ)器125典型地包括用于存儲(chǔ)消息上下文等的非易失存儲(chǔ)機(jī)制。參與方110和在會(huì)話中涉及的其他參與方典型地包括類似的、可兼容的發(fā)送器、接收器和存儲(chǔ)器。圖2示出經(jīng)由地址M 111處的接口和通信介質(zhì)250與經(jīng)由地址A 121處的接口的示例參與方120耦合的示例參與方110。示例參與方110進(jìn)一步被示出經(jīng)由地址N 112處的另一接口和通信介質(zhì)260與經(jīng)由地址B 122處的另一接口的示例參與方120耦合。通信介質(zhì)250和260彼此在通信上不同。就是說(shuō),例如,參與方110不能從地址M 111與地址B 122處的參與方120通信,因?yàn)樵诘刂稭 111與地址B 122之間并不存在提供通信路徑的通信介質(zhì)。換句話說(shuō),參與方110不能在通信介質(zhì)250上與地址B 122處的參與方120通信。 因此,可以將地址認(rèn)為是“非可達(dá)的”或“不可達(dá)的”。此處所使用的這個(gè)術(shù)語(yǔ)典型地指代不能將消息明確定向到的地址。在一些情況中,如上針對(duì)通信上不同的兩個(gè)通信介質(zhì)等所述的,由于網(wǎng)絡(luò)拓?fù)涞纫蛩?,地址?duì)于一個(gè)特定發(fā)送地址是不可達(dá)的。不可達(dá)地址的其他示例包括典型地指示沒(méi)有提供地址的 < 無(wú) > 地址等以及典型地指示可以接收消息但不能為其計(jì)算或解釋可用地址的參與方的 < 匿名 > 地址。匿名地址的示例包括HTTP和TCP連接的反向連接。圖2還在步驟210、220和230中示出示例通信序列。在該示例中,步驟210典型地指示在通信介質(zhì)250上從參與方120發(fā)送到參與方110的消息-會(huì)話消息A。在該示例中,會(huì)話消息指示下述信息
權(quán)利要求
1.一種系統(tǒng),包括耦合到多個(gè)通信上不同的通信介質(zhì)的發(fā)送器,其中,所述發(fā)送器在操作上通過(guò)所述多個(gè)通信上不同的通信介質(zhì)中的第一通信介質(zhì)生成并發(fā)送第一消息給另一個(gè)系統(tǒng),所述第一消息包括應(yīng)用回應(yīng)地址,所述第一消息與會(huì)話相關(guān)聯(lián),并且其中,所述第一消息包括會(huì)話狀態(tài),所述會(huì)話狀態(tài)包括第一上下文信息和第一會(huì)話回應(yīng)地址,其中所述第一會(huì)話回應(yīng)地址不同于所述應(yīng)用回應(yīng)地址;以及存儲(chǔ)器,其中存儲(chǔ)了所述會(huì)話狀態(tài)的至少一部分。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所存儲(chǔ)的會(huì)話狀態(tài)表示了足以在所述系統(tǒng)的關(guān)閉和重啟的會(huì)話狀態(tài)期間維護(hù)所述會(huì)話。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,進(jìn)一步包括耦合到所述多個(gè)通信上不同的通信介質(zhì)的接收器,其中,所述接收器在操作上通過(guò)所述多個(gè)通信上不同的通信介質(zhì)中的第二通信介質(zhì)從另一參與方接收并處理第二消息,所述第二消息包括第二上下文信息,并且其中所述第二上下文信息的至少一部分將所述第二消息與所述會(huì)話相關(guān)聯(lián)。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述接收器在操作上通過(guò)所述第二通信介質(zhì)從所述另一參與方處接收并處理第三消息,其中所述第三消息是獨(dú)立于所述會(huì)話的應(yīng)用回應(yīng)。
5.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述第二通信介質(zhì)不同于所述第一通信介質(zhì)。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第二上下文信息包括所述會(huì)話狀態(tài)的至少一部分。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述會(huì)話回應(yīng)地址是所述發(fā)送器的地址。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述會(huì)話回應(yīng)地址是另一參與方的地址。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,不能經(jīng)由所述第一通信介質(zhì)到達(dá)所述會(huì)話回應(yīng)地址。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述會(huì)話回應(yīng)地址是缺少了發(fā)送會(huì)話消息所需的物理地址信息中的某個(gè)部分的邏輯地址,其中,缺少的物理地址信息可從外部服務(wù)獲得。
11.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述應(yīng)用回應(yīng)地址不是可到達(dá)的地址。
12.一種用于生成并發(fā)送會(huì)話消息的方法,所述方法包括 確定會(huì)話的上下文;將所述上下文加入到所述消息; 將與所述上下文相關(guān)聯(lián)的應(yīng)用操作加入到所述消息;將會(huì)話回應(yīng)地址加入到所述消息中,其中會(huì)話狀態(tài)包括所述會(huì)話的上下文以及會(huì)話回應(yīng)地址;以及通過(guò)第一通信介質(zhì)將所述消息發(fā)送給另一參與方,其中,不能經(jīng)由所述第一介質(zhì)到達(dá)所述會(huì)話回應(yīng)地址。
13.如權(quán)利要求12所述的方法,其特征在于,進(jìn)一步包括存儲(chǔ)所述會(huì)話狀態(tài)。
14.如權(quán)利要求13所述的方法,其特征在于,所存儲(chǔ)的會(huì)話狀態(tài)足以維護(hù)所述會(huì)話在系統(tǒng)的關(guān)閉和重啟期間維護(hù)所述會(huì)話。
15.如權(quán)利要求12所述的方法,其特征在于,所述消息包括應(yīng)用回應(yīng)地址字段,其中, 所述應(yīng)用回應(yīng)地址不同于所述會(huì)話回應(yīng)地址。
16.如權(quán)利要求12所述的方法,其特征在于,使用可擴(kuò)展標(biāo)記語(yǔ)言(“XML”)來(lái)格式化所述消息。
17.如權(quán)利要求12所述的方法,其特征在于,所述會(huì)話回應(yīng)地址是缺少了發(fā)送會(huì)話消息所需的物理地址信息中的某個(gè)部分的邏輯地址,其中,缺少的物理地址信息可從外部服務(wù)獲得。
18.如權(quán)利要求15所述的方法,其特征在于,所述應(yīng)用回應(yīng)地址不是可到達(dá)的地址。
19.一種包括計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀媒體,由處理器執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令以執(zhí)行一種用于生成并發(fā)送會(huì)話消息的方法,所述方法包括確定會(huì)話上下文;將所述上下文加入到所述消息;將與所述上下文相關(guān)聯(lián)的應(yīng)用操作加入到所述消息;將會(huì)話回應(yīng)地址加入到所述消息中,其中會(huì)話狀態(tài)包括所述會(huì)話的上下文以及會(huì)話回應(yīng)地址;將應(yīng)用回應(yīng)地址加入到所述消息中,其中,所述應(yīng)用回應(yīng)地址不同于所述會(huì)話回應(yīng)地址;以及通過(guò)第一通信介質(zhì)將所述消息發(fā)送給另一參與方,其中,不能經(jīng)由所述第一介質(zhì)到達(dá)所述會(huì)話回應(yīng)地址。
20.如權(quán)利要求19所述的計(jì)算機(jī)可讀媒體,其特征在于,所述會(huì)話回應(yīng)地址是缺少了發(fā)送會(huì)話消息所需的物理地址信息中的某個(gè)部分的邏輯地址,其中,缺少的物理地址信息可從外部服務(wù)獲得。
全文摘要
用于多個(gè)參與方之間的會(huì)話的技術(shù),所述會(huì)話包括可被持久保存的上下文信息,以用于在所述參與方或與其通信的通信介質(zhì)間歇工作時(shí)來(lái)維持所述會(huì)話。在這樣的會(huì)話中,任意參與方可以將其對(duì)上下文的觀點(diǎn)嵌入到消息中,并且,任意參與方可以在不考慮角色和底層網(wǎng)絡(luò)、傳輸或應(yīng)用程序消息交換模式的情況下發(fā)送下一消息。這些技術(shù)提供了持久的服務(wù)。
文檔編號(hào)G06Q50/00GK102165484SQ200980139423
公開(kāi)日2011年8月24日 申請(qǐng)日期2009年9月15日 優(yōu)先權(quán)日2008年9月30日
發(fā)明者E·S·V·平特, N·A·艾倫, S·J·米利特, T·R·維什瓦納坦 申請(qǐng)人:微軟公司