專利名稱:用于無縫主機遷移的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及網(wǎng)絡(luò)。更具體地,本發(fā)明涉及網(wǎng)絡(luò)中的數(shù)據(jù)分配 (data distribut ion)。
背景技術(shù):
網(wǎng)絡(luò)可以包括通過通信系統(tǒng)連接到 一起的計算設(shè)備的群組。網(wǎng)絡(luò)中 的計算機可以與網(wǎng)絡(luò)中的其它計算機通信、交換數(shù)據(jù)和共享資源。網(wǎng)絡(luò) 的示例包括個人區(qū)域網(wǎng)絡(luò)(PAN)、局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)。
在本領(lǐng)域中已知各種網(wǎng)絡(luò)配置。在圖1A中示出的傳統(tǒng)的客戶端 -服務(wù)器網(wǎng)絡(luò)包括連接到客戶端120A-D的主機110 。主機110建立網(wǎng) 絡(luò)會話130,控制哪些客戶端可以加入會話130和多少客戶端可以加入 會話130、以及一旦客戶端120A-D已加入會話130他們?nèi)绾伪舜私换ァ?因為主機110 —般具有大量帶寬和處理能力,主機110能夠在網(wǎng)絡(luò)會話 130中管理和分配去往和來自所有客戶端120A-D的數(shù)椐。在這樣一種配 置中,來自特定客戶端(例如,客戶端120D)的數(shù)椐可以通過主機110 被分配到其它客戶端(例如,客戶端120A-C)。例如,客戶端120D可 以傳輸數(shù)據(jù)到主機110。當(dāng)諸如客戶端120A的另一客戶端請求該數(shù)據(jù) 時,主機110傳輸該數(shù)椐到客戶端120A。
由于連接到主機,客戶端可以(經(jīng)由主機)僅請求該客戶端所需數(shù)
6據(jù),使得客戶端不必管理其他不需要的數(shù)椐。這樣一種布置在不具備有 效管理在網(wǎng)絡(luò)會話中交換的所有數(shù)據(jù)的能力的客戶端中是常見的。這些 客戶端可能需要主機來管理和分配數(shù)據(jù)。
在網(wǎng)絡(luò)會話中用主機管理和分配數(shù)據(jù)的缺點是,當(dāng)存在影響主機與 任何一個會話客戶端之間通信的連接性問題時,數(shù)據(jù)可能丟失。在這種 情況中,來自特定客戶端的數(shù)據(jù)不能被傳輸?shù)街鳈C。該數(shù)據(jù)對于網(wǎng)絡(luò)中
的其它客戶端也是不可用的。例如,客戶端120D可能突然與主機110 斷開連接??蛻舳?20D本應(yīng)發(fā)送到主機110的信息不能到達(dá)主機110, 結(jié)果,該信息不能被傳輸?shù)骄W(wǎng)絡(luò)的其它部分(例如,客戶端120A-C)。 丟失的信息可能導(dǎo)致網(wǎng)絡(luò)會話130的中斷,可能影響其它客戶端的操作。 尤其在交互式網(wǎng)絡(luò)游戲的情況下,更是如此。
因而,本領(lǐng)域中需要改進(jìn)的系統(tǒng)和方法用于網(wǎng)絡(luò)數(shù)據(jù)分配,其解決 涉及到網(wǎng)絡(luò)連接性和維持會話中不間斷數(shù)據(jù)交換的問題。
發(fā)明內(nèi)容
本發(fā)明的系統(tǒng)和方法為維持網(wǎng)絡(luò)數(shù)據(jù)分配做好了準(zhǔn)備,其允許網(wǎng)絡(luò) 會話經(jīng)受住主機與客戶端之間的中斷通信而沒有任何數(shù)據(jù)丟失。主機功 能無縫地遷移到客戶端且沒有顯著的數(shù)據(jù)丟失。本發(fā)明的實施例提供了 用作網(wǎng)絡(luò)會話的備用主機的一個或多個客戶端。當(dāng)其它客戶端傳輸數(shù)據(jù) 給主機時,它們也可以將該數(shù)據(jù)傳輸給一個或多個備用主機。例如,發(fā) 送數(shù)據(jù)到主機的客戶端在一定時間段內(nèi)可能沒有接收到數(shù)據(jù)的確認(rèn)。該 客戶端可以重新傳輸數(shù)據(jù)到主機,以及傳輸數(shù)據(jù)到備用主機。
本發(fā)明的各種實施例包括用于網(wǎng)絡(luò)數(shù)據(jù)分配的方法。這種方法包括 連接主機到客戶端,確定客戶端是否能夠用作備用主機,且如果能夠用 作備用主機,則向該客戶端傳輸允許該客戶端用作備用主機的一定信 息。用作備用主機包括當(dāng)那些其它客戶端不能與主機通信時接收來自其 它客戶端的信息。在本發(fā)明的某些實施例中,該方法還提供了指示主機 與客戶端之間的通信中斷、以及終止主機與特定客戶端之間的連接。
本發(fā)明的各種實施例包括用于網(wǎng)絡(luò)數(shù)據(jù)分配的系統(tǒng)。這種系統(tǒng)可以 包括主機、能夠用作備用主機的第一客戶端、和第二客戶端,其中當(dāng)主 機與第二客戶端之間的通信中斷時第二客戶端能夠傳輸數(shù)據(jù)到第 一客 戶端。在本發(fā)明的某些實施例中,第二客戶端也可以用作備用主機。本
7發(fā)明的某些實施例可以包括多個客戶端,每個客戶端被配置為用作備用 主機。
本發(fā)明的實施例還提供了 一種用于在網(wǎng)絡(luò)分配系統(tǒng)中使用的主機 系統(tǒng)。這種主機系統(tǒng)可以包括在接收到時確認(rèn)客戶端通信的確認(rèn)模塊、 協(xié)商特定客戶端是否能夠用作備用主機的協(xié)商模塊、和給客戶端傳遞提
供主機信息的應(yīng)用(application)的備用應(yīng)用模塊。本發(fā)明的某些實 施例還包括主機信息數(shù)據(jù)庫和計時器。
本發(fā)明的某些實施例包括用于網(wǎng)絡(luò)數(shù)據(jù)分配的指令和計算機存儲 介質(zhì)。這種指令可以提供將主機連接到客戶端、與能夠用作備用主機的 客戶端進(jìn)行協(xié)商、以及傳輸主機信息到客戶端從而使得其可以開始用作 備用主機。
圖U示出了如本領(lǐng)域中已知的客戶端-服務(wù)器網(wǎng)絡(luò)配置。 圖1B示出了具有一個備用主機的網(wǎng)絡(luò)數(shù)據(jù)分配的示例性系統(tǒng)。 圖1C示出了具有若干備用主機的網(wǎng)絡(luò)數(shù)據(jù)分配的示例性系統(tǒng)。 圖2示出了在網(wǎng)絡(luò)數(shù)據(jù)分配系統(tǒng)中提供無縫主機遷移(seamless host migration)的計算設(shè)備的示例性配置。
圖3A示出了網(wǎng)絡(luò)數(shù)據(jù)分配的示例性系統(tǒng)的實施方式。
圖3B示出了網(wǎng)絡(luò)數(shù)椐分配的示例性系統(tǒng)的替代實施方式。
圖4描繪了用于網(wǎng)絡(luò)數(shù)據(jù)分配的示例性方法。
具體實施例方式
本發(fā)明包括用于網(wǎng)絡(luò)數(shù)據(jù)分配的系統(tǒng)和方法。本發(fā)明的實施例可以 允許主機遷移無縫地發(fā)生。倘若在主機與客戶端之間的通信中斷,網(wǎng)絡(luò) 會話可以繼續(xù)而沒有顯著的數(shù)據(jù)丟失。網(wǎng)絡(luò)會話的主機可以連接到許多 客戶端。這些客戶端中的一個(或多個)可能能夠用作備用主機。與客 戶端協(xié)商備用可行性(backup viability)且主機信息被傳輸?shù)皆摽蛻?端,該客戶端然后可以充當(dāng)備用主機。備用主機然后可以連接到網(wǎng)絡(luò)會 話中的其它客戶端并從其它客戶端接收數(shù)據(jù)。其后,如果在主機與特定 客戶端之間的通信中斷,該特定客戶端可以傳輸其數(shù)據(jù)到備用主機,允 許網(wǎng)絡(luò)會話繼續(xù)而沒有任何數(shù)椐丟失。全文中指明的元件為示例性的且可以包括它們的各種備選物、等效 物、或派生物??梢岳糜布?、軟件、和計算機可執(zhí)行指令的各種組合。 程序模塊和引擎可以包括例程、程序、對象、組件、和數(shù)據(jù)結(jié)構(gòu),它們 在被處理器執(zhí)行時實現(xiàn)了特定任務(wù)的性能,所述處理器可以是通用或?qū)?用處理器。存儲在計算機可讀介質(zhì)中的計算機可執(zhí)行指令及相關(guān)聯(lián)的數(shù)
酉己置的考呈序i殳"i十方法(programming means)的夯J于。
在圖U中示出并在上面詳細(xì)討論的客戶端-服務(wù)器網(wǎng)絡(luò)配置中, 每個客戶端不必處理網(wǎng)絡(luò)會話中的所有數(shù)據(jù)。相反,每個客戶端僅接收
和處理該客戶端參與網(wǎng)絡(luò)會話所必需的數(shù)據(jù)。由于例如缺乏帶寬或缺乏 處理能力,某些客戶端不能夠有效地管理所有數(shù)據(jù)。然而,某些客戶端 的確具有管理網(wǎng)絡(luò)會話中所有數(shù)據(jù)的能力。這些特定的客戶端可以充當(dāng) 備用主機,存儲來自網(wǎng)絡(luò)會話的一些或所有數(shù)椐。
與圖1A的系統(tǒng)配置相反,圖1B示出了具有一個備用主機即客戶端 16OA的用于網(wǎng)絡(luò)數(shù)椐分配的示例性系統(tǒng)。備用主機可以是能夠執(zhí)行網(wǎng)絡(luò) 會話主機的某些或所有功能的任何客戶端。當(dāng)網(wǎng)絡(luò)會話150的主機140 不能或沒有完成任務(wù)時,某些或所有主機職責(zé)可以遷移到備用主機。為 了有資格作為備用主機,要求候選主機(客戶端)呈現(xiàn)出備用可行性。 呈現(xiàn)出備用可行性可以包括滿足關(guān)于例如帶寬、處理能力、存儲器、硬 件或軟件配置、或服務(wù)質(zhì)量的一個或多個要求。客戶端的備用可行性可 以通過與主機的協(xié)商確定。
在完成了關(guān)于備用可行性的協(xié)商和確認(rèn)備用可行性之后,可以通過 網(wǎng)絡(luò)會話150在主機140與客戶端160A之間傳輸主機佶息。該主機信 息可以包括網(wǎng)絡(luò)名、客戶端在網(wǎng)絡(luò)中的網(wǎng)際協(xié)議(IP)地址、防火墻信 息、和關(guān)于客戶端160A如果接管某些主機職責(zé)所需要的特殊職責(zé)的信 息。使用該主機信息,如果主機140與其它客戶端160B-D之間的一個 或多個連接變?yōu)橹袛?,則客戶端160A能夠充當(dāng)備用主機。例如,如果 客戶端160B與主機140斷開連接,則客戶端160B可以傳送數(shù)據(jù)到客戶 端160A,正如將在圖3A和3B的情況下示出的。通過將主機職責(zé)從主機 140遷移到客戶端160A,對于網(wǎng)絡(luò)會話150,來自客戶端160B的信息沒 有完全丟失。
在某些實施例中,超過一個客戶端可能能夠用作備用主機。圖1C示出了具有若干備用主機-即客戶端190A-D的用于網(wǎng)絡(luò)數(shù)據(jù)分配的示 例性系統(tǒng)。如果原始主機170變?yōu)椴豢捎?,則在圖1C的網(wǎng)絡(luò)會話180 中的每個客戶端可以擔(dān)負(fù)特定的備用主機職責(zé)。例如,客戶端190A可 以負(fù)責(zé)保持記錄(scorekeeping)而客戶端190B可以負(fù)責(zé)游戲環(huán)境中 的狀態(tài)改變??蛻舳?90C可以對準(zhǔn)入標(biāo)準(zhǔn)(admission criteria )(例 如,誰可以參與該游戲)負(fù)責(zé),而客戶端190D可以對聊天功能負(fù)責(zé)。 可選地,客戶端190A可以負(fù)責(zé)所有前迷任務(wù)且如果客戶端190A隨后發(fā) 生故障則客戶端190B-D接管那些任務(wù)。
圖2示出了用于在網(wǎng)絡(luò)數(shù)據(jù)分配系統(tǒng)中提供無縫主機遷移的計算設(shè) 備的示例性配置200 ??梢猿洚?dāng)網(wǎng)絡(luò)中的中央通信集線器 (communication hub)的主機200可以是諸如服務(wù)器之類的計算設(shè)備。 由于客戶端可能在某一時刻成為備用主機,通常為客戶端操作預(yù)留的計 算設(shè)備也可以呈現(xiàn)主機200的某些或所有配置。主機200可以包括網(wǎng)絡(luò) 接口 210、確認(rèn)模塊220、協(xié)商模塊230、主機信息數(shù)據(jù)庫240、備用應(yīng) 用模塊250、輪詢模塊260、和計時器27(K
本發(fā)明中所引用的模塊(或應(yīng)用)是執(zhí)行各種系統(tǒng)級功能的例程的 集合。模塊可以按需由硬件和設(shè)備驅(qū)動程序動態(tài)地加載和卸載。本文中 所述的模塊化軟件組件也可以作為更大軟件平臺的部分而合并,或作為 專用組件的部分而集成。
網(wǎng)絡(luò)接口 210可以是配置成允許主機與網(wǎng)絡(luò)中其它計算設(shè)備之間通 信的多種硬件和/或軟件組件的任意一種。網(wǎng)絡(luò)接口 210可以包括用于 通過有線、無線、和/或基于因特網(wǎng)的通信網(wǎng)絡(luò)的通信的組件。
確認(rèn)模塊220允許核實(verification)由客戶端傳輸?shù)男畔⒁驯?主機200接收。當(dāng)主機200經(jīng)由網(wǎng)絡(luò)接口 210接收來自客戶端的信息時, 確認(rèn)模塊220可以傳輸確認(rèn)接收(ACK)到發(fā)送該信息的客戶端。例如, 如果客戶端發(fā)送關(guān)于游戲狀態(tài)數(shù)據(jù)的變化的信息到主機200,確認(rèn)模塊 220可以傳輸ACK答復(fù)到該傳輸客戶端,表示信息已被接收。確認(rèn)模塊 220發(fā)送的該ACK答復(fù)可以進(jìn)一步包括接收了什么信息,和該信息的多 少被接收,和/或該信息是否被破壞的或不完全的指示。
傳輸客戶端沒有收到關(guān)于特定數(shù)據(jù)傳輸?shù)腁CK,可以表示該數(shù)據(jù)傳 輸從未被主機200接收。主機2QQ沒有收到該數(shù)據(jù)傳輸(或其部分)可 以指示主機200與發(fā)送該數(shù)據(jù)傳輸?shù)目蛻舳酥g的連接的問題或主機200中和其自身的問題。如果特定數(shù)目的數(shù)據(jù)傳輸未能接收到來自主機 200的ACK答復(fù),則傳輸客戶端可以調(diào)用遷移操作,由此某些或所有主 機功能被遷移到備用主機。
協(xié)商模塊230基于各種參數(shù)協(xié)商客戶端的備用可行性。例如,可能 要求可行的備用主機/客戶端候選具有一定量的可用帶寬??蛻舳说膸?寬可能需要足以允許客戶端管理網(wǎng)絡(luò)會話中的所有數(shù)據(jù)。備用可行性可 能要求客戶端符合各種服務(wù)質(zhì)量標(biāo)準(zhǔn),因為它們涉及到例如發(fā)送測試連 接性數(shù)據(jù)的速率(ping rate)、包丟失、可用存儲器、處理器速度等。
協(xié)商模塊2 30還可以確定客戶端候選是否能夠連接到網(wǎng)絡(luò)中其它客 戶端的每一個。可行的備用主機可能需要能夠連接到網(wǎng)絡(luò)中每個其它客 戶端并從所述其它客戶端接收信息。備用可行性的參數(shù)可以由網(wǎng)絡(luò)會話 的類型確定。例如,由于可能發(fā)生在游戲環(huán)境中的狀態(tài)改變數(shù),特定的 游戲網(wǎng)絡(luò)會話可能要求一定量的帶寬和處理器速度用于備用可行性。諸 如簡單文件傳送的較簡單的處理可能需要較少的帶寬和/或處理能力。
協(xié)商模塊230可以被配置為與多個客戶端協(xié)商備用可行性,由此產(chǎn) 生一系列的備用主機??蛇x地,協(xié)商模塊230可以被配置為在一組客戶 端中為特定任務(wù)分配備用職責(zé)。在網(wǎng)絡(luò)或主機/客戶端狀況保證時,通 過提供一系列備用主機,主控責(zé)任(hosting duty)可以無縫地從主機 遷移到第 一備用主機到笫二備用主機等等??梢曰诳蛻舳诉B接到主機 的次序分配備用主機職責(zé)和/或特定職責(zé)的次序??蛇x地,次序和/或職 責(zé)可以基于諸如帶寬或服務(wù)質(zhì)量之類的其它因素。
主機信息數(shù)據(jù)庫240可以存儲關(guān)于主機、客戶端、或網(wǎng)絡(luò)會話的信 息。存儲在主機信息數(shù)據(jù)庫240中的信息可以允許計算設(shè)備執(zhí)行某些主 控責(zé)任,諸如連接到網(wǎng)絡(luò)會話中的其它客戶端。這種主機信息可以包括 網(wǎng)絡(luò)名、網(wǎng)絡(luò)中客戶端的網(wǎng)際協(xié)議(IP)地址、和防火墻信息。當(dāng)諸如 客戶端從網(wǎng)絡(luò)斷開連接或新客戶端加入網(wǎng)絡(luò)這樣的事件發(fā)生時,主機信 息數(shù)據(jù)庫240可以被更新。例如,新客戶端的IP地址需要被添加到主 機信息數(shù)據(jù)庫240。
結(jié)合主機信息數(shù)據(jù)庫240操作,備用應(yīng)用模塊250產(chǎn)生可以在客戶 端下載、安裝和執(zhí)行的應(yīng)用。此應(yīng)用給客戶端提供了需要其具有的某些 操作功能,以便其除了滿足基本的可行性要求以外還用作備用主機。該 應(yīng)用可以配置客戶端以連接到網(wǎng)絡(luò)會話中的其它客戶端并與它們交換數(shù)據(jù)。
任選的輪詢模塊260可以配置為輪詢網(wǎng)絡(luò)會話中的所有客戶端。可 以使用輪詢模塊260來為連接性輪詢客戶端。對于連接性的輪詢可以包 括發(fā)送小數(shù)據(jù)包到網(wǎng)絡(luò)會話中的每個客戶端,從已接收到數(shù)據(jù)包的客戶 端接收答復(fù)/確認(rèn),以及確定哪些客戶端與主機200的通信有問題。
輪詢模塊260可以自動地以周期性時間間隔輪詢客戶端。輪詢模塊 260也可以被配置為在某些事件發(fā)生時輪詢客戶端,諸如在新客戶端加 入網(wǎng)絡(luò)會話或指示通信中斷(例如,客戶端沒有確認(rèn)由主機200發(fā)送的 數(shù)據(jù))時。輪詢模塊260的輪詢操作類似于周期性心跳,就像在美國專 利公開號2003-0204566中對于"Multi-user Application Program Interface"所描述的那樣,該專利公開先前已#_引入以供參考。
主機200還可以包括計時器270。計時器270可以被配置成測量在 事件之后已經(jīng)逝去多少時間。主機200可以使用計時器270確定像輪詢 模塊260所產(chǎn)生的數(shù)據(jù)傳輸與該數(shù)據(jù)傳輸?shù)拇_認(rèn)之間的時間。這種信息 可以用來確定是否終止到特定客戶端的連接。如果主機200在如計時器 270所測量的時間段內(nèi)沒有接收到來自特定客戶端的輪詢響應(yīng)或確認(rèn), 主才幾200可以終止與該客戶端的連接。
由備用應(yīng)用沖莫塊250產(chǎn)生的應(yīng)用還可以包括類似于輪詢;漠塊260和 計時器270的功能性的某些功能性。不同于可能設(shè)法確定是否從網(wǎng)絡(luò)會 話驅(qū)逐(eject)特定客戶端的主機200,被指定為備用主機的客戶端可 以使用此"心跳"功能性來確定主機200何時不再有能力或已經(jīng)連續(xù)地 未能完成某些主機責(zé)任。主機200無能力或未能完成某些責(zé)任可以由持 續(xù)沒有接收到由確認(rèn)模塊220產(chǎn)生的ACK或心跳來指示。
圖3A示出了用于網(wǎng)絡(luò)數(shù)據(jù)分配的示例性系統(tǒng).300的實施方式。主 機200連接到多個客戶端310A-D。客戶端310A已成功地與主機200協(xié) 商了備用可行性并通過連接320接收了主機信息。使用該主機信息,客 戶端310A連接到網(wǎng)絡(luò)中的其它客戶端,即客戶端310B-D。連接330允 許客戶端310B-D直接(即,不經(jīng)過主機200 )與客戶端310A通信。如 果每個相應(yīng)客戶端在傳輸數(shù)據(jù)到主機200時有困難,則客戶端310B-D 可以使用連接330與客戶端310A交換該數(shù)據(jù)??蛻舳?10B-D也可以自 動地傳輸數(shù)據(jù)到客戶端310A,而不管到主才幾200的數(shù)椐傳輸?shù)娜魏卫?難。圖3B示出了用于網(wǎng)絡(luò)數(shù)據(jù)分配的示例性系統(tǒng)的替代實施方式。特 別地,圖3B示出了用于網(wǎng)絡(luò)數(shù)據(jù)分配的示例性系統(tǒng),其中主機200與 客戶端310D之間的通信中斷。具體地,所示出的主機200與客戶端31OD 之間的數(shù)據(jù)傳輸340被圖示為不成功的。盡管客戶端310D試圖發(fā)送數(shù) 據(jù)傳輸340到主機200,但有故障的連接(faulty connection)阻止該 傳輸^皮主機2G()接收。
因為客戶端310A是用于網(wǎng)絡(luò)會話的備用主機,客戶端310D可以在 備用數(shù)據(jù)傳輸350中將打算給主機200的相同數(shù)據(jù)直接發(fā)送到客戶端 310A(即,不經(jīng)過主機200 )??蛻舳?10A然后可以在數(shù)據(jù)傳輸360中 將該數(shù)據(jù)發(fā)送到主機200。在此特定實施例中,由于有故障的連接分離 了客戶端310D與主機200,客戶端310A充當(dāng)客戶雄310D與主機200之 間的代理。主機200然后可以分配來自客戶端310D的數(shù)據(jù)到客戶端31OB 和310C,盡管該數(shù)據(jù)是經(jīng)過客戶端310A接收的??蛇x地,如果例如主 機200不能對抗僅是有缺陷的客戶端310D與主機200之間的連接而維 持主機責(zé)任,則客戶端310A可以發(fā)送數(shù)據(jù)到客戶端310B或310C。
因為主機200與客戶端310D之間的通信已被中斷,客戶端310D可 能需要通過客戶端310A獲得會話數(shù)據(jù)。除了代表任一個計算設(shè)備請求 數(shù)據(jù)外,客戶端310A可以相對于主機200和客戶端310D充當(dāng)用于接收 和傳輸數(shù)據(jù)的媒介。
圖4是描繪用于網(wǎng)絡(luò)數(shù)據(jù)分配的示例性方法400的流程圖。圖4中 標(biāo)明的步驟(及其順序)是示例性的且可以包括它的各種可選方案、等 效物或派生物,包括但不限于其執(zhí)行順序。圖4的過程的步驟(及其各 種可選方案)可以包含在包括機器可讀或計算機可讀存儲介質(zhì)(例如, 光盤、存儲卡、或硬盤驅(qū)動器)的硬件或軟件中,所述存儲介質(zhì)包括可 以由處理器執(zhí)行的指令。
在步驟410中,主機(例如,主機200 )建立網(wǎng)絡(luò)會話。主機可以 為誰可以加入網(wǎng)絡(luò)會話、以及網(wǎng)絡(luò)會話如何進(jìn)行的各方面設(shè)置某些參 數(shù)。主機可以建立僅某些客戶端或受邀請客戶端才可以加入的私人網(wǎng)絡(luò) 會話??蛇x地,主才幾可以建立對公眾開放且任何客戶端都可以加入的網(wǎng) 絡(luò)會話。
在步驟420中,多個客戶端通過連接到主機而加入該網(wǎng)絡(luò)會話。如 果主機已設(shè)置了關(guān)于誰可以加入網(wǎng)絡(luò)會話的某些參數(shù),則客戶端可能需
13要在被允許連接主機或參與網(wǎng)絡(luò)會話之前滿足那些參數(shù)。
在步驟430中,經(jīng)由圖2的協(xié)商模塊220協(xié)商備用可行性。 一個或 多個客戶端可以是具有能力和資源以用作備用主機的可行備用主機???戶端一加入網(wǎng)絡(luò)會話就可以協(xié)商備用可行性。包括帶寬和服務(wù)質(zhì)量的備 用可行性的各方面可以被評估以確定特定客戶端是否能夠用作備用主 機。取決于協(xié)商模塊220的要求,在網(wǎng)絡(luò)會話中的客戶端中可能有一個、 多于一個的可行備用主機、或沒有可行的備用主機。也可以分配備用職 責(zé)。
在步驟440中,分配備用職責(zé)。在有多個客戶端是可行備用主機的 情況下,可能需要在那些客戶端中關(guān)于次序和/或特定職責(zé)分配備用職 責(zé)。網(wǎng)絡(luò)會話中的客戶端可以傳輸它們的數(shù)據(jù)到已經(jīng)由主機所識別的第 一可行備用主機或通過廣播或其它通信所認(rèn)為的第一備用,如在美國專 利申請?zhí)?003-0217135 "Dynamic Player Management"中所例證的。 如果第一可行備用主機是、或變得不能夠用作備用主機,則其它客戶端 可以傳輸它們的數(shù)據(jù)到笫二可行備用主機以加入此網(wǎng)絡(luò)會話。利用本文 或前述的"Dynamic Player Management"申請所披露的手段,可以指 示與第二備用主機通信的需要。
在步驟450中,確定特定客戶端是否可以連接到網(wǎng)絡(luò)會話中的每個 其它客戶端。備用主機需要能夠連接到會話中的每個其它客戶端。如果 第 一客戶端不能連接到第二客戶端,則第 一客戶端不能用作網(wǎng)絡(luò)會話的 備用主機。例如,第一客戶端可能具有阻止笫一客戶端進(jìn)行某些類型連 接的防火墻問題。如果潛在的備用主機因為任何原因不能連接到另 一客 戶端,則該方法可以返回步驟440并重新分配備用職責(zé)。
所有其它客戶端,該方法前J到步驟460。在口步驟460中,i用信息被 下載到可行備用主機。通過提供備用信息給備用主機,主機可以退出網(wǎng) 絡(luò),且備用主機能夠提供網(wǎng)絡(luò)會話中的其它客戶端所需要的任何信息。 備用信息可以作為促進(jìn)無縫主機過渡的應(yīng)用下載和安裝的一部分而提 供,如在圖2的備用應(yīng)用;^莫塊250的情況下所討論的。
在步驟470中,網(wǎng)絡(luò)數(shù)據(jù)分配可以開始。如圖3A示出的,數(shù)據(jù)傳 輸可以發(fā)生在主機與客戶端之間。如圖3B進(jìn)一步示出的,數(shù)椐傳輸也 可以發(fā)生在兩個客戶端之間,從具有主機連接性問題的客戶端到能夠充
14當(dāng)備用主機的客戶端。此外,該備用主機可以應(yīng)請求轉(zhuǎn)送數(shù)據(jù)到主機或 直接到其它客戶端。無論數(shù)椐必須通過何種連接進(jìn)行傳遞,數(shù)據(jù)被提供 給需要該數(shù)據(jù)的那些計算設(shè)備。
盡管已經(jīng)參考示例性實施例描述了本發(fā)明,本領(lǐng)域技術(shù)人員將理解 可以作出各種改變且等效物可以替代其元件,而不脫離本發(fā)明的宗旨和
范圍。另外,可以作出修改而不偏離本發(fā)明的本質(zhì)教導(dǎo)??梢岳酶鞣N 可選系統(tǒng)來實施本文中所述的各種方法,且可以使用各種方法來實現(xiàn)源 自前述系統(tǒng)的某些結(jié)果。
權(quán)利要求
1. 一種用于維持網(wǎng)絡(luò)數(shù)據(jù)分配的方法,該方法包括建立主機與多個客戶端之間的連接,其中在接收時確認(rèn)在主機與該多個客戶端的每一個之間交換的數(shù)據(jù);協(xié)商來自該多個客戶端的第一客戶端的備用可行性;和傳輸主機信息到第一客戶端,其中第一客戶端至少基于該主機信息建立到來自該多個客戶端的所有其它客戶端的連接,并且如果主機與第二客戶端之間的通信中斷則第一客戶端從來自該多個客戶端的第二客戶端接收數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的方法,其中通過在第二客戶端傳輸數(shù)據(jù)到 主機之后的 一定時間內(nèi)沒有從主機到第二客戶端的確認(rèn),識別中斷的通信。
3. 根據(jù)權(quán)利要求1所述的方法,還包括輪詢該多個客戶端以確定主 機與該多個客戶端的每一個之間的連接性。
4. 根據(jù)權(quán)利要求3所述的方法,其中通過輪詢的結(jié)果指示中斷的通
5. 根據(jù)權(quán)利要求1所述的方法,還包括將關(guān)于中斷的通信的指示從 主機發(fā)送到該多個客戶端的每一個。
6. 根據(jù)權(quán)利要求1所述的方法,還包括基于中斷的通信終止主機與 第二客戶端之間的連接。
7. 根據(jù)權(quán)利要求1所述的方法,其中協(xié)商第一客戶端的備用可行性 包括確定第一客戶端的帶寬。
8. 根據(jù)權(quán)利要求1所述的方法,其中協(xié)商第一客戶端的備用可行性 包括確定第一客戶端是否能夠連接到來自該多個客戶端的其它客戶端 的每一個。
9. 根據(jù)權(quán)利要求1所述的方法,其中傳輸主機信息到第一客戶端包 括傳輸提供該主機信息的應(yīng)用。
10. 根據(jù)權(quán)利要求1所迷的方法,還包括 協(xié)商來自該多個客戶端的第三客戶端的備用可行性;和 傳輸主機信息到第三客戶端,從而使得笫三客戶端至少基于該主機信息連接到來自該多個客戶端的所有其它客戶端,且如果第一客戶端和 第二客戶端之間的通信中斷則第三客戶端接收來自第二客戶端的數(shù)據(jù)。
11. 根據(jù)權(quán)利要求IO所述的方法,其中第二客戶端還配置成至少基于與主機建立連接的次序在傳輸該數(shù)據(jù)到第三客戶端之前傳輸該數(shù)據(jù) 到第一客戶端。
12. 根據(jù)權(quán)利要求IO所述的系統(tǒng),其中第二客戶端還配置成至少基 于第一客戶端的帶寬和第三客戶端的帶寬在傳輸該數(shù)據(jù)到第三客戶端之前傳輸該數(shù)據(jù)到第 一客戶端。
13. —種用于維持網(wǎng)絡(luò)數(shù)據(jù)分配的系統(tǒng),包括主機,其配置成連接到多個客戶端,其中主機接收來自該多個客戶 端的每一個的數(shù)據(jù)并確認(rèn)該接收;第一客戶端,其配置成接收主機信息,其中第一客戶端至少基于該 主機信息連接到來自該多個客戶端的所有其它客戶端;和第二客戶端,其配置成如果主機與第二客戶端之間的通信中斷則傳輸數(shù)據(jù)到第一客戶端。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中藉由在第二客戶端傳輸數(shù)椐 到主機之后的一定時間內(nèi)沒有來自主機的確認(rèn),指示中斷的通信。
15. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中第二客戶端還配置成重新傳 輸該數(shù)據(jù)到主機。
16. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中第二客戶端還配置成通告該 多個客戶端的每一個關(guān)于主機與第二客戶端之間中斷的通信。
17. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中第二客戶端還配置成終止主 機與笫二客戶端之間的連接。
18. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中主機還配置成關(guān)于連接性輪 詢該多個客戶端。
19. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中主機還配置成通告該多個客 戶端的每一個關(guān)于主機與第二客戶端之間中斷的通信。
20. 根據(jù)權(quán)利要求19所述的系統(tǒng),其中主機還配置成終止主機與第 二客戶端之間的連接。
21. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中主機還配置成協(xié)商第一客戶 端的備用可行性。
22. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中主機基于第一客戶端的帶寬 協(xié)商備用可行性。
23. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中主機基于第一客戶端是否能夠連接到來自該多個客戶端的其它客戶端的每一個而協(xié)商備用可行性。
24. 根據(jù)權(quán)利要求13所迷的系統(tǒng),其中主機還配置成傳輸主機信息 到第一客戶端。
25. 根據(jù)權(quán)利要求24所迷的系統(tǒng),其中主機通過傳輸應(yīng)用來傳輸主 機信息,所述應(yīng)用配置成提供關(guān)于來自該多個客戶端的其它客戶端的每 一個的信息。
26. 根據(jù)權(quán)利要求13所迷的系統(tǒng),其中來自該多個客戶端的第三客 戶端配置成接收主機信息,從而使得第三客戶端至少基于該主機信息連 接到來自該多個客戶端的所有其它客戶端。
27. 根據(jù)權(quán)利要求26所迷的系統(tǒng),其中第二客戶端還配置成如果第 一客戶端與笫二客戶端之間的通信中斷則傳輸數(shù)據(jù)到第三客戶端。
28. 根據(jù)權(quán)利要求27所述的系統(tǒng),其中第二客戶端還配置成基于與 主機連接的次序在傳輸該數(shù)據(jù)到第三客戶端之前傳輸該數(shù)據(jù)到第一客 戶端。
29. 根據(jù)權(quán)利要求27所迷的系統(tǒng),其中笫二客戶端還配置成基于第 一客戶端的帶寬和第三客戶端的帶寬在傳輸數(shù)據(jù)到第三客戶端之前傳 輸該數(shù)據(jù)到第一客戶端。
30. —種用于維護網(wǎng)絡(luò)中的數(shù)據(jù)分配的計算設(shè)備,包括確認(rèn)模塊,其配置成傳輸確認(rèn)從客戶端接收到的數(shù)據(jù)的答復(fù);協(xié)商模塊,其配置成協(xié)商笫一客戶端的備用可行性;和.備用應(yīng)用模塊,其配置成傳輸提供主機信息的應(yīng)用到第 一客戶端,從而使得第 一客戶端至少基于該主機信息連接到來自該多個客戶端的所有其它客戶端并接收來自第二客戶端的數(shù)據(jù)。
31. 根據(jù)權(quán)利要求30所述的計算設(shè)備,還包括配置成存儲關(guān)于來自 多個客戶端之中的每個客戶端的信息的主機信息數(shù)據(jù)庫。
32. 根據(jù)權(quán)利要求31所迷的計算設(shè)備,其中主機信息數(shù)據(jù)庫還配置 成基于從該多個客戶端之中增加或移除客戶端來存儲經(jīng)更新的信息。
33. 根據(jù)權(quán)利要求30所迷的計算設(shè)備,還包括配置成測量在事件之 后已經(jīng)逝去多少時間的計時器。
34. —種計算機可讀存儲介質(zhì),其上已經(jīng)包含了程序,該程序可以由 處理器執(zhí)行以實施一種用于群組消息收發(fā)的方法,所述方法包括連接主機到多個客戶端,從而使得在接收到時確認(rèn)主機與該多個客戶端的每一個之間交換的數(shù)據(jù);協(xié)商來自該多個客戶端的第一客戶端的備用可行性;和 傳輸主機信息到第一客戶端,從而使得第一客戶端至少基于該主機信息而連接到來自該多個客戶端的所有其它客戶端,且第一客戶端從來自該多個客戶端的第二客戶端接收數(shù)據(jù)。
35.根據(jù)權(quán)利要求34所述的計算機可讀存儲介質(zhì),其中該程序還包括用于終止主機與第二客戶端之間連接的可執(zhí)行指令。
全文摘要
本發(fā)明涉及用于無縫主機遷移的系統(tǒng)和方法。提供了用于維持網(wǎng)絡(luò)數(shù)據(jù)分配的本發(fā)明的系統(tǒng)和方法??梢苑峙渚W(wǎng)絡(luò)數(shù)據(jù),以便允許網(wǎng)絡(luò)會話經(jīng)受住主機與客戶端之間中斷的通信而沒有顯著的數(shù)據(jù)丟失。本發(fā)明的實施例提供一個或多個客戶端用作網(wǎng)絡(luò)會話備用主機。當(dāng)其它客戶端傳輸數(shù)據(jù)到主機時,如果有中斷通信的任何指示,它們也可以傳輸數(shù)據(jù)到一個或多個備用主機。
文檔編號H04L12/56GK101483586SQ200810168739
公開日2009年7月15日 申請日期2008年9月28日 優(yōu)先權(quán)日2007年10月5日
發(fā)明者A·P·哈里斯, M·L·雅各布, R·J·羅伊 申請人:美國索尼電腦娛樂公司