專利名稱:動態(tài)帶寬控制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及計算機網(wǎng)絡(luò)并且,更具體地,涉及由多用戶在一個計算機網(wǎng)絡(luò)上執(zhí)行的應(yīng)用。
背景技術(shù):
計算機網(wǎng)絡(luò),如局域網(wǎng)和因特網(wǎng),正在越來越多地被用作團(tuán)體之間各種交易和交互的中樞。從其中銀行客戶可以在一個計算機網(wǎng)絡(luò)上啟動金融交易的在線銀行到其中游戲者可以在因特網(wǎng)上參與實時游戲的在線游戲,業(yè)務(wù)提供者正越來越多地在計算機網(wǎng)絡(luò)上支持多種業(yè)務(wù)。目前有多種不同的計算機網(wǎng)絡(luò)配置可以促進(jìn)交易和交互的發(fā)生。
許多在線應(yīng)用包括多用戶應(yīng)用,該應(yīng)用是在一個計算機系統(tǒng)上執(zhí)行的計算機程序并且允許多個地理上分開的參與者與計算機程序以及在一個應(yīng)用環(huán)境中的其他參與用戶進(jìn)行交互。例如,在線游戲是一個流行的多用戶應(yīng)用,該程序正在日益流行。一個在線飛行器模擬游戲可以使多個參與者能夠在一個虛擬的空間中駕駛他們各自的虛擬飛行器,并且可以使這些參與者能夠與在同一個空間中的在他們的飛行器中的其他參與者進(jìn)行交互。每個參與者擁有對他們各自的虛擬飛行器的飛行動作的控制。即每個參與者擁有包含一個飛行器的應(yīng)用對象的所有權(quán)。這樣,該在線飛行器游戲應(yīng)用提供一個單個的應(yīng)用環(huán)境或世界,其中多個參與者操作他們各自的對象。
在一個多用戶應(yīng)用環(huán)境中,如在線游戲,具有明顯的地理上分散的應(yīng)用用戶,如游戲參與者,每個參與者一般地負(fù)責(zé)一個或多個將被應(yīng)用的本地用戶修改或操作的數(shù)據(jù)對象。這些數(shù)據(jù)對象為“自有的”數(shù)據(jù)對象并且每個用戶與一個或多個這樣的相應(yīng)的應(yīng)用對象有關(guān)。
例如,在一個在線游戲環(huán)境中,每個參與者將一般地負(fù)責(zé)保持關(guān)于參與者的競爭者或登陸該游戲應(yīng)用環(huán)境的狀態(tài)數(shù)據(jù)。該參與者的游戲登陸典型地由一個數(shù)據(jù)對象來表示。在一個交易的多用戶環(huán)境中,一個用戶可能負(fù)責(zé)與一個賬目有關(guān)的數(shù)據(jù),該帳目由一個數(shù)據(jù)對象來表示。在兩個應(yīng)用環(huán)境中,各個用戶如上所述“擁有”所述數(shù)據(jù)對象,或者所述游戲參與對象或者所述交易帳目對象,因為該用戶負(fù)責(zé)更新在該應(yīng)用環(huán)境中的該用戶的數(shù)據(jù)對象。在一個游戲的關(guān)中,該用戶典型地?fù)碛袑τ螒驊?yīng)用的共享對象空間中的相應(yīng)的數(shù)據(jù)對象的運動的控制,并且典型地也負(fù)責(zé)保持關(guān)于該數(shù)據(jù)對象狀態(tài)的數(shù)據(jù)(并因此擁有該數(shù)據(jù)對象)。
為了支持多用戶應(yīng)用環(huán)境中的用戶間的實時交互,需要共享關(guān)于該應(yīng)用環(huán)境中的每個參與者的相應(yīng)的數(shù)據(jù)對象的信息。一個用戶的數(shù)據(jù)對象的狀態(tài)可以由數(shù)據(jù)域的一個集合來定義,該數(shù)據(jù)域的值在該用戶的交互過程中可以改變。例如,在一個游戲應(yīng)用中,一個用戶的所述數(shù)據(jù)對象在一個游戲環(huán)境中將改變位置,并且在一個交易應(yīng)用中,一個用戶的所述數(shù)據(jù)對象將具有改變的交易歷史和賬目結(jié)算。
為了共享網(wǎng)絡(luò)用戶中的用戶的數(shù)據(jù)對象的狀態(tài)信息,需要共享定義該數(shù)據(jù)對象的不同數(shù)據(jù)域的值。例如,在一個飛行器模擬多用戶應(yīng)用中,其中每個用戶由一個飛行器數(shù)據(jù)對象來表示,與飛行器的狀態(tài)信息有關(guān)的所述數(shù)據(jù)域可以包括飛行器大小、飛行器速度、三維空間中的高度、外形詳情(如戰(zhàn)斗損傷或控制外表位置)、虛擬環(huán)境詳情(如建筑、天氣、以及地形),等等。這樣的狀態(tài)信息允許在各參與者處的計算機適當(dāng)?shù)孛髁擞螒虻陌l(fā)展并且確定由每個其他參與者正在執(zhí)行的動作。這允許每個參與者在參與者的觀看顯示器上出示適當(dāng)?shù)爻蔬f的虛擬形象,并且允許其他的參與者也照樣做。在一個交易應(yīng)用環(huán)境中,所述數(shù)據(jù)域可能包括用戶名、賬目信息、賬目結(jié)算、等等。這樣的信息將允許多用戶確定有關(guān)一個特定交易的賬目的詳情。
一些在線多用戶應(yīng)用依照一個應(yīng)用更新時間間隔通過發(fā)送網(wǎng)絡(luò)更新消息給所有的用戶來傳達(dá)有關(guān)各個用戶應(yīng)用對象的狀態(tài)的詳情。對于一個在線游戲,一個作為游戲的參與者的用戶將負(fù)責(zé)為該網(wǎng)絡(luò)用戶所擁有的應(yīng)用對象保持一組最新的數(shù)據(jù)域。如果在該網(wǎng)絡(luò)用戶所擁有的所述應(yīng)用對象如一個模擬游戲中的一個飛行器的狀態(tài)中發(fā)生了變化,然后該自有用戶必須通過更新的消息傳達(dá)這些變化給其他的網(wǎng)絡(luò)參與者。這樣,每個擁有一個數(shù)據(jù)對象的網(wǎng)絡(luò)用戶將準(zhǔn)備和發(fā)送更新的消息給其他的網(wǎng)絡(luò)客戶機告知在他們的數(shù)據(jù)對象中的變化。以這種方式,來自每個自有用戶的更新的消息將傳達(dá)所述數(shù)據(jù)域中的變化給其他的網(wǎng)絡(luò)客戶機。這樣,所有的網(wǎng)絡(luò)用戶參與者將被告知精確的數(shù)據(jù)對象狀況信息。
不幸地是,通過所述更新的消息傳達(dá)的以及在所有參與者中共享的數(shù)據(jù)的數(shù)量可能是繁重的。如上所述,在一個飛行器模擬應(yīng)用中需要更新一個游戲參與者的應(yīng)用對象的虛擬形象的數(shù)據(jù)域可以包括信息如飛行器大小、速度、以及高度、外形詳情(如外部損傷或控制外表位置)、虛擬環(huán)境詳情(如建筑、天氣、以及地形),等等。必須在所有的應(yīng)用參與者中共享的信息的數(shù)量可以很大使得它可以導(dǎo)致帶寬飽和。即,一些用戶可能具有有限的網(wǎng)絡(luò)帶寬,并且可能難以通過由網(wǎng)絡(luò)應(yīng)用所生成的應(yīng)用環(huán)境足夠快地實時接收更新的消息而保持“在比賽中”。
一個允許具有有限的帶寬的用戶來參與多用戶應(yīng)用如在線游戲的方式為減少數(shù)據(jù)對象的數(shù)量,其中這些數(shù)據(jù)對象的詳情在所有的用戶中共享。這可以例如通過將應(yīng)用環(huán)境分割成興趣區(qū)域來取得,這樣在一個應(yīng)用環(huán)境興趣區(qū)域中的用戶不被提供關(guān)于其他應(yīng)用環(huán)境區(qū)域中的應(yīng)用對象的信息。一個擁有所述應(yīng)用環(huán)境的一個區(qū)域中的一個數(shù)據(jù)對象的用戶不必發(fā)送更新的數(shù)據(jù)域給所述應(yīng)用環(huán)境的其他區(qū)域中的用戶。這減少了各自有用戶在網(wǎng)絡(luò)上必須被發(fā)送的信息的數(shù)量。每個用戶不必下載各自的及每一個由網(wǎng)絡(luò)客戶機為該應(yīng)用傳送的更新的消息。這樣的一個系統(tǒng)例如被描述在由R.Waters與J.Allred申請的美國專利No.5,841,980分布式處理系統(tǒng)中。在適當(dāng)?shù)奈恢镁哂羞@樣的分布式處理,一個用戶可以省去為一個應(yīng)用對象下載和處理所有的更新消息。這意味著參與者的實時交互將不被更新消息的處理所減慢。
然而,即使具有一個有限的共享環(huán)境,與一個數(shù)據(jù)對象有關(guān)的數(shù)據(jù)域的數(shù)量可以充分地多或詳細(xì),這樣一個用戶的帶寬仍然可以根據(jù)與所有的在用戶的虛擬環(huán)境興趣區(qū)域中的應(yīng)用對象有關(guān)的處理的需要而被占用。事實上,所述用于同一個應(yīng)用環(huán)境區(qū)域中的應(yīng)用對象的更新消息可以包括許多數(shù)據(jù),所述數(shù)據(jù)從網(wǎng)絡(luò)客戶機的觀點看并不重要。這可以是這樣的情況,例如如果所述應(yīng)用對象更新消息包括用于詳細(xì)地呈遞所需的所有的繪圖信息,雖然該應(yīng)用對象并未與用戶看到詳情的觀察視野充分地近。并且,即使一個用戶具有保留的可用帶寬,如果網(wǎng)絡(luò)數(shù)據(jù)通信量確實不包括用于所有數(shù)據(jù)對象的所有數(shù)據(jù)域而不管每個參與的用戶處的需要,對于網(wǎng)絡(luò)運行更為有效。
這樣,當(dāng)前的多用戶應(yīng)用不是關(guān)于應(yīng)用對象更新的最高效率而配置的。即使在分割一個應(yīng)用環(huán)境為獨特的更新區(qū)域基礎(chǔ)上上的減少的數(shù)據(jù)傳送仍舊可以占用參與者的帶寬資源并且生成不需要的網(wǎng)絡(luò)數(shù)據(jù)通信量。這樣,需要一個改進(jìn)的更有效的在線多用戶應(yīng)用環(huán)境。本發(fā)明滿足了這一需要。
發(fā)明內(nèi)容
在一個計算機網(wǎng)絡(luò)上的與一個多用戶網(wǎng)絡(luò)應(yīng)用的一個數(shù)據(jù)對象有關(guān)的從一個擁有所述數(shù)據(jù)對象的網(wǎng)絡(luò)用戶到一個正在更新的用戶的數(shù)據(jù)傳送,通過定義該數(shù)據(jù)對象的數(shù)據(jù)域的一個子集的傳送來獲得,這樣該數(shù)據(jù)域的所述子集由所述正在更新的用戶來指定且小于或等于包含用于定義該數(shù)據(jù)對象的所有數(shù)據(jù)域的更新值的完全的更新傳送。因為每個數(shù)據(jù)對象由多個數(shù)據(jù)域來定義,該數(shù)據(jù)對象數(shù)據(jù)域的一個子集的傳送保證了為數(shù)據(jù)更新而被利用的網(wǎng)絡(luò)帶寬將從其中為一個正在被更新的對象的所有定義數(shù)據(jù)域在該網(wǎng)絡(luò)上被傳送的情形中減少。
根據(jù)本發(fā)明,一個數(shù)據(jù)更新請求消息從該正在更新的用戶發(fā)送到自有用戶,這樣該請求消息指定正在更新的用戶想要的更新數(shù)據(jù)的一個子集。該正在更新的用戶確定將被正在更新用戶處的網(wǎng)絡(luò)應(yīng)用的處理所需要的所述數(shù)據(jù)域子集。當(dāng)該指定的更新數(shù)據(jù)的子集由該正在更新用戶所接收,用于該應(yīng)用對象的由所述正在更新用戶保持的相應(yīng)的數(shù)據(jù)域用接收的子集數(shù)據(jù)來更新。這樣,不需要該正在更新用戶總是為定義該數(shù)據(jù)對象的所有數(shù)據(jù)域請求與接收更新數(shù)據(jù)。更確切地,該正在更新用戶可以請求用于該應(yīng)用對象的一個減少的更新數(shù)據(jù)的子集。這可以減少由正在更新用戶執(zhí)行多用戶網(wǎng)絡(luò)應(yīng)用以及更新該應(yīng)用對象的狀態(tài)所需的帶寬。
本發(fā)明的其他的特征和優(yōu)勢將在下面的優(yōu)選實施例的描述中顯而易見,所述優(yōu)選實施例通過示例的方式示出了本發(fā)明的原理。
本發(fā)明的目的、優(yōu)勢以及特征通過下面的結(jié)合附圖的詳細(xì)描述中更易于理解,其中圖1為根據(jù)本發(fā)明構(gòu)造的一個計算機網(wǎng)絡(luò)的一個圖;圖2示出了在圖1的系統(tǒng)中的一個正在更新用戶處的用來提供選擇性的應(yīng)用對象更新操作的處理的流程圖;圖3示出了一個請求一個應(yīng)用用戶指定連接速度從而顯示一個數(shù)據(jù)更新子集的顯示器屏幕選擇菜單;圖4示出了在圖1的系統(tǒng)中的一個對象自有用戶處的處理的流程圖;圖5示出了圖1所示的網(wǎng)絡(luò)中的一個計算機的硬件組成的一個框圖;圖6示出了圖1所示的所述網(wǎng)絡(luò)的一個網(wǎng)絡(luò)節(jié)點處的一個計算機娛樂系統(tǒng)的硬件組成的一個框圖。
具體實施例方式
圖1為根據(jù)本發(fā)明構(gòu)造的一個計算機網(wǎng)絡(luò)100的一個圖。多客戶機計算機102、104、106在一個網(wǎng)絡(luò)108上相互通信。一個或多個服務(wù)器計算機110也可以在網(wǎng)絡(luò)上與所述客戶機通信。所述計算機在網(wǎng)絡(luò)上相互通信并在一個多用戶應(yīng)用環(huán)境的處理中相互協(xié)作。所述計算機102、104、106可以包括例如計算機如傳統(tǒng)的桌上型個人計算機;娛樂控制臺裝置如日本東京的索尼計算機公司提供的“游戲站2”游戲控制臺系統(tǒng);或者其他的可以提供或參與到一個多用戶應(yīng)用程序設(shè)計環(huán)境中的計算機平臺。如圖1所示的三個客戶機只是用于說明的目的,但是系統(tǒng)100可以包括更大或更小數(shù)量的客戶機。應(yīng)該理解計算機在其上進(jìn)行通信的網(wǎng)絡(luò)108可以包括實現(xiàn)計算機102、104、106之間的數(shù)據(jù)通信的多種網(wǎng)絡(luò)配置。適合的網(wǎng)絡(luò)包括例如客戶機-服務(wù)器和對等的計算機網(wǎng)絡(luò)配置。
網(wǎng)絡(luò)客戶機102、104、106參與其中的所述應(yīng)用程序設(shè)計環(huán)境是一個其中每個客戶機負(fù)責(zé)至少一個應(yīng)用數(shù)據(jù)對象的環(huán)境。在一個在線游戲應(yīng)用的環(huán)境中,例如,每個客戶機可以對應(yīng)為一個游戲競爭者或在所述客戶機機器處作為用戶登陸。因此,每個客戶機將保持一個定義一個競爭者的數(shù)據(jù)對象。即,每個數(shù)據(jù)對象由一組數(shù)據(jù)域來定義,如熟悉這樣的對象導(dǎo)向程序設(shè)計概念的本領(lǐng)域的技術(shù)人員所理解的。該客戶機如上所述擁有所述數(shù)據(jù)對象的所有權(quán)。在一個商業(yè)應(yīng)用中,例如,每個數(shù)據(jù)對象可能對應(yīng)為一個交易或者一個用戶或客戶的商業(yè)賬目。
由用戶102、104、106為一個相應(yīng)的數(shù)據(jù)對象保持的數(shù)據(jù)將指定允許數(shù)據(jù)對象充分運行在所述多用戶應(yīng)用環(huán)境中所需的所有的參數(shù)。例如,在一個多游戲者飛行器模擬應(yīng)用中,每個用戶保持對應(yīng)于一個由用戶在各自的客戶機處操作的虛擬飛行器的一個(所述自有的)數(shù)據(jù)對象。完全地定義一個對應(yīng)每個用戶的飛行器的數(shù)據(jù)對象的數(shù)據(jù)域?qū)〝?shù)據(jù)域例如飛行器大小、速度、三維空間中的高度、外形詳情(如外部損傷或控制外表位置)、虛擬環(huán)境詳情(如建筑、天氣、以及地形),等等??赡苡糜诙x一個飛行模擬網(wǎng)絡(luò)應(yīng)用中的一個飛行器的所述數(shù)據(jù)域的一個例子如下面的表1中所提供的表1用于飛行器數(shù)據(jù)對象的數(shù)據(jù)域
其它數(shù)據(jù)域以及那些表1中所列出的數(shù)據(jù)域可能也被用于完整地定義一個飛行器,用于呈遞所述網(wǎng)絡(luò)應(yīng)用的一個適當(dāng)?shù)囊曨l形象,如光開或關(guān)、補燃器開/關(guān)、飛行員的身份,等等。
每個自有的用戶周期地更新定義其各自的應(yīng)用對象的所述數(shù)據(jù)域,并且各個自有用戶具有發(fā)送一個更新消息給正在執(zhí)行該網(wǎng)絡(luò)應(yīng)用的所有的其他網(wǎng)絡(luò)用戶的能力,這樣所述更新的消息包含由自有用戶所保持的數(shù)據(jù)。如下面進(jìn)一步描述的,系統(tǒng)100的處理可以是這樣的,每個正在更新網(wǎng)絡(luò)用戶(即,遠(yuǎn)離一個自有用戶的一個用戶)可以從各自的自有用戶請求減少數(shù)量的數(shù)據(jù)域用于一個對象的更新,從而減少用于保持關(guān)于所述應(yīng)用對象的本地數(shù)據(jù)的帶寬要求以及減少用于傳送更新數(shù)據(jù)的網(wǎng)絡(luò)通信量。
圖2示出了在圖1的系統(tǒng)中的一個更新用戶處的用來提供選擇性的應(yīng)用對象更新操作的處理的流程圖,其中在所述更新操作中一個正在更新的用戶可以為由另一個用戶所擁有的一個應(yīng)用對象請求所述數(shù)據(jù)域的一個更新子集。圖2所示的操作用一個網(wǎng)絡(luò)用戶的現(xiàn)點描述為根據(jù)一個由一個遠(yuǎn)端網(wǎng)絡(luò)用戶所擁有的應(yīng)用對象來請求一個來自所述遠(yuǎn)端網(wǎng)絡(luò)用戶的更新。然而,應(yīng)該理解到系統(tǒng)中的每個正在更新的用戶正在執(zhí)行類似的操作,并且對于系統(tǒng)中的任何特定的正在更新的用戶,所有的其他用戶對于所述正在更新的用戶來說是遠(yuǎn)端客戶機,并且所述特定的正在更新的網(wǎng)絡(luò)用戶被視為本地網(wǎng)絡(luò)客戶機。
在圖2的如流程圖邏輯框202所示的第一個操作中,一個多用戶網(wǎng)絡(luò)應(yīng)用在一個網(wǎng)絡(luò)用戶處開始,并且一個或多個應(yīng)用對象由該用戶所檢測。檢測到的數(shù)據(jù)對象由該網(wǎng)絡(luò)應(yīng)用的其他用戶所擁有。在所述計算機處理系統(tǒng)的一個示范性實施例中,一個應(yīng)用對象為根據(jù)所述網(wǎng)絡(luò)應(yīng)用保持在一個共享的目標(biāo)空間中的一個數(shù)據(jù)對象,這樣每個正在運行所述應(yīng)用的網(wǎng)絡(luò)用戶將被告知所述對象存在于所述共享的對象空間中。即,應(yīng)用數(shù)據(jù)對象將存在于一個共享的數(shù)據(jù)空間中,這樣所有的應(yīng)用用戶將被告知所述數(shù)據(jù)對象并且這樣這些數(shù)據(jù)對象可以通過數(shù)據(jù)更新消息和各用戶處的本地處理彼此交互。每個數(shù)據(jù)對象由一組包括參數(shù)和對象方法的數(shù)據(jù)域來定義,如本領(lǐng)域的技術(shù)人員所能理解的。定義一個飛行器對象的所述數(shù)據(jù)域的一個例子被提供在上面的表1中。
在一個多游戲者游戲應(yīng)用中,例如,一個如圖1所示的服務(wù)器可以為所述共享的數(shù)據(jù)空間保持所有應(yīng)用數(shù)據(jù)對象的一個集合,為每個用戶競爭者對應(yīng)一個對象,連同所述虛擬游戲世界中的相關(guān)條目的數(shù)據(jù)對象一起,其中所述虛擬游戲世界中的一個網(wǎng)絡(luò)客戶機處的每個用戶負(fù)責(zé)對應(yīng)于所述用戶的一個數(shù)據(jù)對象。應(yīng)用用戶可以從任一網(wǎng)絡(luò)服務(wù)器獲得對象更新,其中所述網(wǎng)絡(luò)服務(wù)器接收來自每個自有用戶(網(wǎng)絡(luò)客戶機)的更新。在另一個實施例中,每個網(wǎng)絡(luò)客戶機將為他們的相應(yīng)的用戶保持各自的數(shù)據(jù)對象,并且該網(wǎng)絡(luò)客戶機將交換直接來自于每個自有用戶的與他們的各自的應(yīng)用對象相關(guān)的數(shù)據(jù),將數(shù)據(jù)副本保持在他們各自的用戶機器中。
接下來,在流程圖的邏輯框204中,所述正在更新的用戶執(zhí)行操作來更新對應(yīng)所述正在更新用戶的所述應(yīng)用對象的當(dāng)前狀態(tài)。一個類似的更新操作在系統(tǒng)的每個網(wǎng)絡(luò)客戶機處局部地發(fā)生。這樣,每個各自的應(yīng)用數(shù)據(jù)對象的當(dāng)前狀態(tài)由擁有所述數(shù)據(jù)對象的網(wǎng)絡(luò)客戶機周期地更新。在邏輯框206中,所述正在更新的客戶機確定所述對于關(guān)于應(yīng)用數(shù)據(jù)對象的本地信息的更新要求而不是由所述正在更新的用戶所擁有的對象(即,遠(yuǎn)端自有用戶的數(shù)據(jù)對象)。根據(jù)本發(fā)明,一個正在更新的用戶不需要請求一個包含用于定義所述遠(yuǎn)端數(shù)據(jù)對象的所有數(shù)據(jù)域的數(shù)據(jù)的更新。
在一個傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用系統(tǒng)中,一個更新消息典型地包括用于定義一個數(shù)據(jù)對象的所有數(shù)據(jù)域的數(shù)據(jù)。在圖1所示的系統(tǒng)中,所述正在更新的用戶可以確定定義一個網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)對象的數(shù)據(jù)域的一個子集,這樣所述指定的從一個遠(yuǎn)端自有用戶接收的更新數(shù)據(jù)子集小于或等于包含所述應(yīng)用對象的完全更新數(shù)據(jù)消息的數(shù)據(jù)域的數(shù)目。這樣以來,一個正在更新的用戶具有對將從一個遠(yuǎn)端自有用戶發(fā)送的所述更新數(shù)據(jù)的控制,并且因此一個正在更新的用戶具有對高效地接收來自一個自有用戶的一個更新數(shù)據(jù)傳送所需的帶寬的控制。
要求的所述更新數(shù)據(jù)子集的確定可以是一個手工的用戶選擇的活動,或者該確定可以是所述網(wǎng)絡(luò)應(yīng)用的一個自動處理特征。例如,所述網(wǎng)絡(luò)應(yīng)用可以提供一個可選擇的菜單給一個正在更新的用戶,其中所述可選擇的菜單請求所述用戶手工地指定被請求的更新信息的范圍,如在一個完全更新和一個簡化的更新子集之間的選擇。所述用戶對于所述更新數(shù)據(jù)子集的選擇可以根據(jù)用戶的網(wǎng)絡(luò)連接帶寬給出。
來自可用的數(shù)據(jù)域組中的更新數(shù)據(jù)子集的選擇可以手工地選擇或可以由所述用戶計算機自動地確定與選擇,并且又可以被一次性地設(shè)置并且其后被保持用于所述網(wǎng)絡(luò)應(yīng)用的執(zhí)行,或者可以在所述應(yīng)用第一次被啟動時被初始地設(shè)置并且在其后的網(wǎng)絡(luò)運行操作期間被周期地調(diào)整。例如,所述網(wǎng)絡(luò)應(yīng)用可以獲得所述用戶網(wǎng)絡(luò)連接所述用戶操作系統(tǒng)的帶寬速度并且可以在該應(yīng)用啟動時自動地確定合適的數(shù)據(jù)子集選擇。其后,該網(wǎng)絡(luò)應(yīng)用可以根據(jù)本地(正在更新的用戶)應(yīng)用對正在更新的數(shù)據(jù)對象的需要或興趣程度在每次請求更新的時候或根據(jù)一個不同的應(yīng)用更新時間表動態(tài)地確定所述更新數(shù)據(jù)子集。所述興趣程度可以是所述正在更新的用戶與所述數(shù)據(jù)對象交互的一種活動。
所述動態(tài)確定在例如下面的情況中尤為有用,其中所述正在更新的用戶的交互很強烈,如當(dāng)飛行器在一組要求更完整的數(shù)據(jù)域的興趣增加的區(qū)域(封閉形式)中,或者飛行器在一個對于所述網(wǎng)絡(luò)應(yīng)用來說更為有限的數(shù)據(jù)子集是足夠的興趣減少的區(qū)域(在一個遙遠(yuǎn)的空間中飛行)中時。在這兩個示范性飛行器模擬情形中,正在更新的用戶的興趣程度依賴于數(shù)據(jù)對象對虛擬應(yīng)用空間中的正在更新的用戶的接近。在數(shù)據(jù)對象中的用戶興趣程度可以由下面的來指示,例如應(yīng)用空間中的正在更新的用戶相對于所述數(shù)據(jù)對象(如在視覺上清楚的或模糊的)的位置、在所述應(yīng)用中的分組或聯(lián)系(如同盟或敵人),或所述網(wǎng)絡(luò)應(yīng)用的目的或目標(biāo)(從而基于應(yīng)用目標(biāo)確定相對于自有用戶的興趣程度)。其它的標(biāo)準(zhǔn)可以根據(jù)正在執(zhí)行的網(wǎng)絡(luò)應(yīng)用被用于確定正在更新的用戶的興趣程度。
一個根據(jù)連接帶寬在一個更新子集中選擇數(shù)據(jù)域的數(shù)目的例子如圖3所描述的,其中示出了所述網(wǎng)絡(luò)應(yīng)用的一個顯示器屏幕選擇菜單302,要求用戶指定連接速度,或者一個模擬的調(diào)制解調(diào)器連接速度,或者幾種寬帶連接速度中的一個。當(dāng)該用戶選擇一種連接速度時,在本地客戶機處的網(wǎng)絡(luò)應(yīng)用將用一個相應(yīng)的更新數(shù)據(jù)子集來生成更新請求消息。例如,對于一個T1連接,所述應(yīng)用將自動地選擇來自自有用戶的完全的更新數(shù)據(jù)消息,但對于一個模擬調(diào)制解調(diào)器連接,所述應(yīng)用將自動地選擇來自自有用戶的減少數(shù)量的數(shù)據(jù)。作為一個例子,所述自動確定可以根據(jù)通過所述客戶機操作系統(tǒng)獲知的系統(tǒng)信息被執(zhí)行。其它的選擇被請求的信息的范圍的方案將會由本領(lǐng)域的技術(shù)人員所想到。不管使用的確定技術(shù)是什么,根據(jù)本發(fā)明的處理提供了一個具有指定數(shù)據(jù)域的數(shù)目的能力的本地客戶機,它將從一個遠(yuǎn)端客戶機請求與一個應(yīng)用數(shù)據(jù)對象有關(guān)的數(shù)據(jù)更新。這樣以來,本地客戶機不被要求為所有的正在定義的數(shù)據(jù)域請求與接受更新數(shù)據(jù),所述所有的正在定義的數(shù)據(jù)域否則為一個應(yīng)用數(shù)據(jù)對象被提供在一個更新數(shù)據(jù)消息中。
所述數(shù)據(jù)子集選擇的間隔尺寸可以包括一個逐數(shù)據(jù)域的選擇以包含所述更新數(shù)據(jù)子集,或可以來自一組預(yù)定的數(shù)據(jù)域子集集合中。例如,圖3的用戶菜單可以提供數(shù)據(jù)域子集的菜單。在其中數(shù)據(jù)域子集的選擇由所述網(wǎng)絡(luò)應(yīng)用自動地確定的情況中,該子集可以包括幾個數(shù)據(jù)域子集中的一個。例如,在一個飛行器飛行模擬的網(wǎng)絡(luò)應(yīng)用中,完整地定義一個飛行器對象的所述數(shù)據(jù)域可能對應(yīng)上面表1所列的域。對于一個具有56K的模擬調(diào)制解調(diào)器連接的用戶(圖3的窗口顯示中的第一個按鈕),所述網(wǎng)絡(luò)應(yīng)用可以自動地選擇如下表2所列的參數(shù)的一個簡化的數(shù)據(jù)域子集(稱作子集1)。
表2用于飛行器數(shù)據(jù)對象的數(shù)據(jù)域的子集1
對于一個具有線纜調(diào)制解調(diào)器或DSL連接(圖3的窗口顯示中的第二個按鈕)的用戶,所述網(wǎng)絡(luò)應(yīng)用可以自動地選擇如下面表3所列的參數(shù)的一個簡化的數(shù)據(jù)域子集(稱作子集2)。
表3用于飛行器數(shù)據(jù)時象的數(shù)據(jù)域的子集2
這樣,可用的更新數(shù)據(jù)子集的子集2包括比子集1更多的數(shù)據(jù)域,但不如一個完全的更新消息一樣多的數(shù)據(jù)域,所述完全的更新消息將包括表1中所列的對于所有的對象定義的數(shù)據(jù)域的當(dāng)前數(shù)據(jù)域值。其它的按鈕和數(shù)據(jù)子集可以為其它的如無線LAN連接、無線因特網(wǎng)蜂窩連接,等等連接帶寬所包括。在一個類似的方式中,其它的數(shù)據(jù)域更新子集可以被提供來根據(jù)可用的用戶帶寬提供用于選擇更新子集的不同的間隔尺寸。提供的間隔尺寸可以由本領(lǐng)域的技術(shù)人員根據(jù)提供的網(wǎng)絡(luò)應(yīng)用來確定。
返回圖2,在由邏輯框208指定的下一個操作中,本地客戶機發(fā)送所述更細(xì)請求消息給遠(yuǎn)端客戶機。所述更細(xì)請求消息的格式取決于正在由所有的客戶機102、104、106(圖1)正在操作的所述網(wǎng)絡(luò)應(yīng)用。一個自有用戶更新它的數(shù)據(jù)對象常規(guī)的做法是使用一個更新廣播時間表(本地更新)。在所示系統(tǒng)中,每個正在更新的用戶(遠(yuǎn)離自有用戶)可以產(chǎn)生一個指定應(yīng)用對象數(shù)據(jù)域的一個更新子集的遠(yuǎn)端對象廣播時間表。這樣以來,自有用戶(本地客戶機)知道所述正在更新客戶機正在請求什么信息,以及所述更新消息的其他的詳情(如更新頻率、帶寬設(shè)置,等等)。
根據(jù)本發(fā)明,所述更新請求消息將包含一個將被遠(yuǎn)端正在更新的客戶機所識別的與一個完全的或完整的數(shù)據(jù)更新消息相比作為指定更新數(shù)據(jù)的一個子集的域或參數(shù)。如上所述,所述更新數(shù)據(jù)組可以為完全的更新組(即,一個具有一個數(shù)據(jù)對象的所有的定義域的值的更新消息),或者所述更新數(shù)據(jù)組可以為一個減少數(shù)量的數(shù)據(jù)域,該數(shù)據(jù)域為包含完全數(shù)據(jù)更新消息的數(shù)據(jù)域的一個子集。在任一情況中,從正在更新客戶機接收更新數(shù)據(jù)請求消息的遠(yuǎn)端客戶機(所述數(shù)據(jù)對象自有的客戶機)將通過提供所述請求的數(shù)據(jù)量來響應(yīng)。正在更新用戶然后將從所述自有用戶接收所述更新數(shù)據(jù)子集消息,如流程圖中邏輯框210所示。
在由邏輯框212所示的最后一個更新處理操作中,所述更新請求用戶將所述更新的數(shù)據(jù)合并到本地對象數(shù)據(jù)空間用于相應(yīng)的應(yīng)用對象。該操作可以包括例如更新有關(guān)自有客戶機的數(shù)據(jù)對象的本地客戶機的數(shù)據(jù),以及可以包括更新一個示出了自有客戶機的應(yīng)用對象的虛擬顯示形象。其他的網(wǎng)絡(luò)應(yīng)用的處理然后可以繼續(xù)。
圖4示出了根據(jù)在運行該網(wǎng)絡(luò)應(yīng)用的其他(遠(yuǎn)端)網(wǎng)絡(luò)客戶機處正在更新用戶在圖1的系統(tǒng)中的一個數(shù)據(jù)對象自有客戶機處的處理的流程圖。自有用戶將更新由自有用戶擁有的所述數(shù)據(jù)對象的數(shù)據(jù)域并且接收來自網(wǎng)絡(luò)應(yīng)用的其他用戶的更新請求消息。在由流程圖的邏輯框402所示的第一個操作中,包括在一個自有用戶處啟動多用戶網(wǎng)絡(luò)應(yīng)用環(huán)境。如上所述,所述網(wǎng)絡(luò)應(yīng)用可以包括一個在線游戲關(guān)、一個交易導(dǎo)向關(guān)、或任何其他的支持一個多用戶共享的對象數(shù)據(jù)空間的應(yīng)用。
在所述共享的對象數(shù)據(jù)空間中,每個參與的用戶擁有一個或多個應(yīng)用對象的所有權(quán)。例如,在一個在線游戲關(guān)的環(huán)境中,每個對象自有用戶具有一個表示該應(yīng)用環(huán)境中的自有用戶競爭者的應(yīng)用對象的所有權(quán)。每個自有用戶必須為擁有的應(yīng)用對象周期地執(zhí)行一個更新操作,其中所述應(yīng)用對象的狀態(tài)根據(jù)定義數(shù)據(jù)對象的數(shù)據(jù)域被更新。該更新操作如圖4中的邏輯框404所示。
因為每個自有用戶在所述網(wǎng)絡(luò)應(yīng)用的共享對象數(shù)據(jù)空間中操作,每個自有用戶知道也在共享對象數(shù)據(jù)空間中操作的其他的用戶(網(wǎng)絡(luò)的節(jié)點,或客戶機)。根據(jù)所述網(wǎng)絡(luò)應(yīng)用,每個參與的用戶將周期地生成一個更新數(shù)據(jù)請求消息。該更新數(shù)據(jù)請求消息被發(fā)送到每個遠(yuǎn)端自有用戶。如上所述,根據(jù)所述網(wǎng)絡(luò)應(yīng)用的配置,更新數(shù)據(jù)請求消息可以被發(fā)送到一個中心應(yīng)用服務(wù)器,該服務(wù)器根據(jù)消息中指定的數(shù)據(jù)子集響應(yīng)每個更新消息。在任一情況中,在邏輯框406中,更新數(shù)據(jù)請求消息在一個存儲對應(yīng)于一個數(shù)據(jù)對象的所有定義數(shù)據(jù)域的數(shù)據(jù)的網(wǎng)絡(luò)客戶機處被接收,這樣所述更新數(shù)據(jù)請求消息請求一個更新數(shù)據(jù)子集。在邏輯框408中,更新數(shù)據(jù)子集被傳送到在所述更新數(shù)據(jù)請求消息中識別的正在更新的用戶。
上面的操作被描述在一個示范性的在線游戲應(yīng)用的環(huán)境中,如一個飛行器飛行模擬。這樣的一個應(yīng)用可以包括例如包括三個用戶的一個共享的對象空間,所述三個用戶在一個網(wǎng)絡(luò)游戲應(yīng)用中合作操作三個相應(yīng)的同盟飛行器,而三個其它的用戶在他們自己中合作操作三個相應(yīng)的敵方飛行器。每個用戶將個別地更新定義他們各自的飛行器的所有的數(shù)據(jù)域,如上面表1所列的數(shù)據(jù)域。在三個同盟飛行器的情況中,如果該三個同盟飛行器操作在封閉的形式(根據(jù)三維虛擬空間)下,那么對于三個同盟飛行器的每個用戶來說接收完全的數(shù)據(jù)更新非常重要。例如,三個封閉形式的同盟飛行器中的一個決定著陸,那么,對于各同盟飛行器用戶的計算機處適當(dāng)?shù)奶摂M形象而言,知道著陸飛行器的表1數(shù)據(jù)域的阻力板位置、副翼位置、著陸攔阻裝置位置的狀態(tài)很重要。在位于所述應(yīng)用虛擬空間中的一個更遠(yuǎn)的位置的三個敵方飛行器的情況中,只有興趣數(shù)據(jù)域?qū)⒖赡苁歉鶕?jù)位置X、位置Y、位置Z以及相應(yīng)的速度信息的范圍數(shù)據(jù)。顯然這組減少的對象數(shù)據(jù)域可以由表2的子集1分組來提供。顯然,表2具有比用于傳送完全的數(shù)據(jù)更新域(表1)需要更少的帶寬。
本領(lǐng)域的技術(shù)人員可以理解其它的網(wǎng)絡(luò)應(yīng)用也可以由上面所描述的數(shù)據(jù)更新子集特征來提供。例如,相對更大帶寬要求的流數(shù)據(jù)應(yīng)用可以利用所述數(shù)據(jù)更新子集特征,所述特征包括傳送包含圖像、聲音、音頻數(shù)據(jù)的流數(shù)據(jù)并且可以由網(wǎng)絡(luò)用戶動態(tài)的請求的應(yīng)用。這樣,網(wǎng)絡(luò)應(yīng)用用戶、流數(shù)據(jù)、以及多邊(形)數(shù)據(jù)可以構(gòu)成一個虛擬世界。每個應(yīng)用用戶具有對預(yù)定的數(shù)據(jù)對象(即,由一組預(yù)定的數(shù)據(jù)域定義的數(shù)據(jù)對象)的網(wǎng)絡(luò)控制。每個網(wǎng)絡(luò)應(yīng)用用戶將因此為用戶對其具有所有權(quán)的對象進(jìn)行更新。在更新一個流對象如一個圖像流對象的用戶的情況中,該圖像流將對于一些應(yīng)用對象是可見的,為伴隨語音或聲音的面孔,而對于其它應(yīng)用用戶,該圖像流將被看到只是屏幕上的噪聲。即,一些正在更新的用戶可以僅指定包含音頻數(shù)據(jù)的數(shù)據(jù)域,而其它正在更新的用戶可以指定包含圖像數(shù)據(jù)而不包含音頻數(shù)據(jù)的數(shù)據(jù)域,或其它的根據(jù)可用帶寬或本地用戶興趣或其它參數(shù)定義所述流對象的數(shù)據(jù)域的組合。這樣,根據(jù)本發(fā)明,每個應(yīng)用用戶將從正在接收的每個圖像流(以及其它數(shù)據(jù))指定想要的分辨率,并且將具有對所接收的遠(yuǎn)端更新消息的控制。所述控制圖像流的網(wǎng)絡(luò)用戶(客戶機和服務(wù)器)僅發(fā)送由每個正在更新的用戶所請求的適當(dāng)?shù)母聰?shù)據(jù)子集。如上所述,每個正在更新的用戶可以根據(jù)它的操作情況確定想要的更新數(shù)據(jù)子集。
應(yīng)該理解到如上所述的“自有用戶”可以包含在所述網(wǎng)絡(luò)共享對象空間中負(fù)責(zé)一個或多個對象的任何的網(wǎng)絡(luò)用戶(節(jié)點)。即,該網(wǎng)絡(luò)應(yīng)用可以被配置,這樣單個用戶擁有該應(yīng)用的所有對象。這可以是這樣的情況,例如,當(dāng)一個服務(wù)器擁有該應(yīng)用空間中的所有對象,并且與請求數(shù)據(jù)更新的客戶機機器進(jìn)行通信。在那樣的情況中,所有的網(wǎng)絡(luò)應(yīng)用客戶機然后變成正在更新的用戶,該用戶從所述網(wǎng)絡(luò)應(yīng)用的自有用戶(服務(wù)器)請求對象更新。這樣,所述網(wǎng)絡(luò)應(yīng)用可以被配置,這樣一個自有用戶包含一個網(wǎng)絡(luò)節(jié)點處的一個客戶機機器,并且每個客戶機在所述應(yīng)用的共享對象空間中,擁有一個或多個相應(yīng)的對象,或者該網(wǎng)絡(luò)應(yīng)用可以被配置,這樣,對一個應(yīng)用有一個自有用戶,如一個應(yīng)用服務(wù)器,該服務(wù)器為網(wǎng)絡(luò)應(yīng)用的所有其它用戶提供對象更新。
本領(lǐng)域的技術(shù)人員將理解如何在對于網(wǎng)絡(luò)應(yīng)用有一個自有用戶如一個應(yīng)用服務(wù)器的情況中實施上面所述的動態(tài)帶寬控制。如上所述,對于一個網(wǎng)絡(luò)應(yīng)用,一個自有用戶是一個負(fù)責(zé)保持關(guān)于一個用戶與網(wǎng)絡(luò)應(yīng)用交互的狀態(tài)數(shù)據(jù)的用戶。這樣,如果對于所述網(wǎng)絡(luò)應(yīng)用只有一個自有用戶,那么該用戶(服務(wù)器)將負(fù)責(zé)保持對應(yīng)于每個應(yīng)用用戶的對象有關(guān)的狀態(tài)信息。例如,在一個網(wǎng)絡(luò)游戲關(guān)中,一個客戶機用戶可以控制共享對象空間中的用戶運動,但是該服務(wù)器將擁有該對象并且因此將保持與共享空間中的客戶機用戶的相應(yīng)對象有關(guān)的狀態(tài)數(shù)據(jù)。這樣,每個客戶機用戶將從自有用戶(服務(wù)器)請求更新。
這樣,網(wǎng)絡(luò)應(yīng)用的每個用戶可以擁有網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的一個相應(yīng)的數(shù)據(jù)對象的所有權(quán),或者,網(wǎng)絡(luò)應(yīng)用的一個單個網(wǎng)絡(luò)節(jié)點可以擁有對對應(yīng)于用戶的網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的所有數(shù)據(jù)對象的所有權(quán)。在單個的對象自有節(jié)點的情況中,該節(jié)點典型地被引作一個應(yīng)用服務(wù)器。根據(jù)圖1,在該段的第一關(guān)中,客戶機節(jié)點102、104、106擁有他們各自的數(shù)據(jù)對象。在該段第二關(guān)中,單個用戶(服務(wù)器)110擁有對代表每個客戶機102、104、106的數(shù)據(jù)對象的所有權(quán)。
下面提到的操作可以根據(jù)網(wǎng)絡(luò)應(yīng)用執(zhí)行,作為安裝在合適的網(wǎng)絡(luò)計算設(shè)備上。圖5和圖6是根據(jù)一個本發(fā)明的適合于如上所述的操作的網(wǎng)絡(luò)計算設(shè)備的框圖。
如圖1的框圖所示的網(wǎng)絡(luò)計算設(shè)備(客戶機和服務(wù)器)包含一個計算機網(wǎng)絡(luò)系統(tǒng)100的節(jié)點。圖5是圖1的系統(tǒng)100中的一個計算機的框圖,示出了包括在提供所述服務(wù)器和客戶機的功能體的一個計算機中的硬件組成。本領(lǐng)域的技術(shù)人員將能夠理解到圖1所示的服務(wù)器和客戶機可以具有一個類似的計算機結(jié)構(gòu),或者可以具有與能力和這里所描述的各自的功能一致的可替換的結(jié)構(gòu)。圖5結(jié)構(gòu)尤為適合圖1所示的服務(wù)器計算機110。
圖5示出了示范性的計算機500,該計算機例如可能包含任何一個網(wǎng)絡(luò)計算機102、104、106、110。每個計算機500在一個中央處理單元(CPU)502的控制下運作,如可以從美國的加利福尼亞的SantaClara的Intel公司獲得的一個奔騰微處理器以及相關(guān)的集成電路芯片。一個計算機用戶可以從一個鍵盤和計算機鼠標(biāo)504輸入指令或數(shù)據(jù),并且可以在顯示器506處看到輸入和計算機輸出。該顯示器典型地為一個圖像監(jiān)控器或平面顯示器。該計算機500也包括一個直接存取存儲設(shè)備(DASD)508,如一個硬盤驅(qū)動器。存儲器510典型地包括易失半導(dǎo)體隨機訪問存儲器(RAM)。每個計算機優(yōu)選地包括一個接受一個程序產(chǎn)品存儲設(shè)備514的程序產(chǎn)品閱讀器512,所述程序產(chǎn)品閱讀器可以從設(shè)備514中閱讀數(shù)據(jù)(以及隨意地向其寫入數(shù)據(jù))。所述程序產(chǎn)品閱讀器可以包括例如一個磁盤驅(qū)動器,并且該程序產(chǎn)品存儲設(shè)備可以包含可移動的存儲介質(zhì)如軟磁盤、一個CD-R光盤、一個CD-RW光盤、或DVD光盤。
每個計算機500可以與計算機網(wǎng)絡(luò)502(如因特網(wǎng)或一個企業(yè)內(nèi)部互聯(lián)網(wǎng))上的其它的計算機通過一個網(wǎng)絡(luò)接口518進(jìn)行通信,所述網(wǎng)絡(luò)接口518能夠在網(wǎng)絡(luò)520與所述計算機之間通過一個連接522進(jìn)行通信。該網(wǎng)絡(luò)接口518典型地包含例如一個網(wǎng)絡(luò)接口卡(NIC)以及一個允許在多個網(wǎng)絡(luò)上進(jìn)行通信的調(diào)制解調(diào)器。
所述CPU502在暫時存儲在所述計算機500的存儲器510中的程序設(shè)計步驟的控制下運行。當(dāng)執(zhí)行所述程序設(shè)計步驟時,該計算機執(zhí)行它的功能。這樣,所述程序設(shè)計步驟實現(xiàn)所述各自的客戶機或服務(wù)器的功能體。該程序設(shè)計步驟可以通過所述程序產(chǎn)品存儲設(shè)備514或通過所述網(wǎng)絡(luò)連接522從DASD508處接收。所述程序產(chǎn)品存儲驅(qū)動器512可以接收一個在上面記錄閱讀程序設(shè)計步驟的程序產(chǎn)品514,并且傳送所述程序設(shè)計步驟到存儲器510中用于CPU502的執(zhí)行。如上所述,所述程序產(chǎn)品存儲設(shè)備可以包含已經(jīng)記錄計算機可讀指令的任何一個多樣可移動介質(zhì),該多樣可移動介質(zhì)包括軟磁盤和CD-ROM存儲光盤。其他合適的程序產(chǎn)品存儲設(shè)備可以包括磁帶和半導(dǎo)體存儲芯片。這樣以來,根據(jù)本發(fā)明的用于操作所需的所述處理步驟可以被收錄在一個程序產(chǎn)品上。
可選地,所述程序步驟可以通過網(wǎng)絡(luò)520接收到所述運行存儲器510中。在該網(wǎng)絡(luò)方法中,所述計算機在網(wǎng)絡(luò)通信由熟知的方法已經(jīng)在網(wǎng)絡(luò)連接522上建立之后通過所述網(wǎng)絡(luò)接口518接收包括程序步驟的數(shù)據(jù)到所述存儲器510中,其中所述熟知的方法為本領(lǐng)域的技術(shù)人員所理解而不需進(jìn)一步的解釋。程序步驟然后由CPU502所執(zhí)行因而包含一個計算機處理。
應(yīng)該理解到如圖1所示的網(wǎng)絡(luò)系統(tǒng)100的所有網(wǎng)絡(luò)計算機可以具有一個與圖5所示的類似的結(jié)構(gòu),這樣根據(jù)圖5的計算機500描述的詳情將被理解應(yīng)用到系統(tǒng)100的所有的計算機上。應(yīng)該理解任何一個網(wǎng)絡(luò)計算機可以具有一個可選的結(jié)構(gòu),只要該計算機可以與圖1所示的其他的計算機通信并且可以支持這里描述的功能體。
例如,圖1的客戶機計算機102、104、106的任何一個可以包括一個計算機娛樂系統(tǒng),如圖6所示的一個圖像游戲控制臺系統(tǒng)600。圖6是所述圖像游戲控制臺系統(tǒng)600的示范性的硬件配置的一個框圖。
所述圖像游戲控制臺系統(tǒng)600包括一個與一個主存儲器605有關(guān)的中央處理單元(CPU)601。該CPU601在存儲在OS-ROM660或從一個游戲程序存儲介質(zhì)到所述主存儲器605傳送的程序設(shè)計步驟的控制下運行。該CPU601被配置來處理信息并且根據(jù)所述程序設(shè)計步驟執(zhí)行指令。
該CPU601通過一個專用總線625被通信地耦合到一個輸入/輸出處理器(IOP)620。該IOP620耦合該CPU601到所述OS-ROM660,所述OS-ROM660由存儲程序指令的非易失存儲器組成,如一個操作系統(tǒng)。所述指令在主單元600的啟動時優(yōu)選地通過所述IOP620傳送到所述CPU。
該CPU601通過一個專用總線615被通信地耦合到一個圖形處理單元(GPU)610。該GPU610是一個被配置來執(zhí)行制圖處理和根據(jù)從CPU610接收的指令程序設(shè)計圖像的制圖處理器。例如,所述GPU610可以基于由所述CPU601生成并從CPU601接收的顯示列表呈遞一個圖形圖像。所述GPU可以包括一個用于存儲圖像數(shù)據(jù)的緩存器。該GPU610輸出圖像到一個連接到所述控制臺系統(tǒng)600的A/V輸出設(shè)備690。
所述IOP620根據(jù)存儲在一個IOP存儲器630中的指令來控制所述CPU601和多數(shù)外圍設(shè)備之間的數(shù)據(jù)交換。外圍設(shè)備可以包括一個或多個輸入控制器622、一個存儲卡640、一個USB645,以及一個IEEE1394串行總線650。此外,總線655被通信地耦合到所述IOP620??偩€655被連結(jié)到幾個附加設(shè)備,包括所述OS-ROM660、一個聲音處理單元(SPU)665、一個光盤控制單元670,以及一個硬盤驅(qū)動器(HDD)680。
所述SPU665根據(jù)從所述CPU601和IOP620接收的指令被配置用來生成聲音,如音樂、聲音效果,以及語音。該SPU665可以包括一個存儲波形數(shù)據(jù)的聲音緩存器。所述SPU665生成聲音信號并且傳送該信號給揚聲器。
所述光盤控制單元670被配置來控制一個程序閱讀器,該程序閱讀器可以包括例如一個光盤驅(qū)動器,該光盤驅(qū)動器接受可移動存儲介質(zhì)如軟磁盤、CD-ROM光盤、CD-R光盤、CD-RW光盤、DVD光盤,等等。
存儲卡640可以包括一個所述CPU601可以寫和存儲數(shù)據(jù)的存儲介質(zhì)。優(yōu)選地,所述存儲卡640可以被插入IOP620或從IOP620移除。一個用戶可以使用存儲卡640存儲或保存數(shù)據(jù)。而且,所述視頻游戲系統(tǒng)600優(yōu)選地被提供至少一個硬盤驅(qū)動器(HDD)680給要寫入和存儲的數(shù)據(jù)。
一個數(shù)據(jù)I/O接口,如IEEE1394串行總線650或通用串行總線(USB)645接口,被優(yōu)選地通信耦合到所述IOP620上用來允許數(shù)據(jù)被傳入和傳出所述視頻游戲系統(tǒng)600,如圖1所示的網(wǎng)絡(luò)。
這樣,如上所述的實施例提供了在一個計算機網(wǎng)絡(luò)上從一個遠(yuǎn)端客戶機到一個本地客戶機用于一個多用戶網(wǎng)絡(luò)應(yīng)用的改進(jìn)的數(shù)據(jù)傳送。所述改進(jìn)的數(shù)據(jù)傳送通過為所述遠(yuǎn)端客戶機的一個網(wǎng)絡(luò)應(yīng)用對象確定指定數(shù)量的更新數(shù)據(jù)來處理,這樣指定的數(shù)量小于或等于用于所述應(yīng)用對象的一個完全更新數(shù)據(jù)消息。一個請求消息從本地客戶機發(fā)送到要求來自遠(yuǎn)端客戶機的指定數(shù)量的更新數(shù)據(jù)的所述遠(yuǎn)端客戶機。當(dāng)所述指定數(shù)量的更新數(shù)據(jù)在本地客戶機處接收時,用于所述應(yīng)用對象的本地客戶機數(shù)據(jù)狀態(tài)由所接收的更新數(shù)據(jù)更新。具有這些操作,不需要本地客戶機總是請求來自遠(yuǎn)端客戶機的所有應(yīng)用對象上的完全的更新數(shù)據(jù)消息,但相反本地客戶機可以請求用于一個應(yīng)用對象的狀態(tài)的減少數(shù)量的更新數(shù)據(jù)。這可以減小本地客戶機執(zhí)行多用戶網(wǎng)絡(luò)應(yīng)用和更新應(yīng)用對象的數(shù)據(jù)狀態(tài)所要求的帶寬。
本發(fā)明根據(jù)當(dāng)前優(yōu)選實施例描述如上,這樣本發(fā)明的理解可以被傳達(dá)。然而,有許多用于本系統(tǒng)并且這里并非特定描述的但對本發(fā)明很適用的應(yīng)用的配置。本發(fā)明因此不應(yīng)該被視作局限于這里所描述的特定實施例,但更適合地,應(yīng)該理解本發(fā)明關(guān)于多用戶應(yīng)用具有廣泛的可用性。在附屬權(quán)力要求的范圍內(nèi)的所有的修改、變化、或相當(dāng)?shù)呐渲靡约皥?zhí)行應(yīng)該因此為視為在本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種計算機網(wǎng)絡(luò)數(shù)據(jù)傳送的方法,該方法包括確定一個與一個應(yīng)用數(shù)據(jù)對象有關(guān)的更新數(shù)據(jù)子集,所述數(shù)據(jù)對象由一個自有網(wǎng)絡(luò)的用戶保持在一個多用戶網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間中,這樣所述更新數(shù)據(jù)子集指定小于或等于用于所述應(yīng)用對象的完全的數(shù)據(jù)更新的一組數(shù)據(jù)域;從一個保持對應(yīng)于所述數(shù)據(jù)對象的本地副本的一個正在更新用戶發(fā)送一個請求來自自有用戶的指定的更新數(shù)據(jù)子集的一個網(wǎng)絡(luò)數(shù)據(jù)更新請求消息;并且接收數(shù)據(jù)對象的更新數(shù)據(jù),該更新數(shù)據(jù)包含由所述更新數(shù)據(jù)子集指定的一組數(shù)據(jù)域。
2.如權(quán)利要求1所述的方法,進(jìn)一步包括在所述正在更新的用戶處用接收的更新數(shù)據(jù)子集更新所述數(shù)據(jù)對象的本地副本。
3.如權(quán)利要求1所述的方法,其中確定所述更新數(shù)據(jù)子集包含確定一個可用的網(wǎng)絡(luò)帶寬和根據(jù)可用帶寬選擇一個指定數(shù)量。
4.如權(quán)利要求3所述的方法,其中確定可用的帶寬包括接收一個用戶選擇的帶寬值。
5.如權(quán)利要求3所述的方法,其中確定可用的帶寬包括從本地客戶機的一個操作系統(tǒng)接收系統(tǒng)資源信息。
6.如權(quán)利要求1所述的方法,其中確定所述更新數(shù)據(jù)子集包括根據(jù)一個正在更新的用戶對數(shù)據(jù)對象的興趣程度確定所述更新數(shù)據(jù)子集的一組數(shù)據(jù)域。
7.如權(quán)利要求6所述的方法,其中所述正在更新的用戶的興趣程度由所述正在更新用戶與所述共享數(shù)據(jù)空間中的數(shù)據(jù)對象的交互確定。
8.如權(quán)利要求1所述的方法,其中所述請求的消息指定一個小于為所述網(wǎng)絡(luò)應(yīng)用完整定義數(shù)據(jù)對象的數(shù)據(jù)域的更新數(shù)據(jù)子集。
9.如權(quán)利要求1所述的方法,其中所述更新用于所述應(yīng)用對象的本地客戶機數(shù)據(jù)狀態(tài)包括呈遞一個包括所述更新的應(yīng)用對象數(shù)據(jù)的形象的虛擬顯示。
10.如權(quán)利要求1所述的方法,其中所述應(yīng)用包括在網(wǎng)絡(luò)上傳送流數(shù)據(jù)。
11.如權(quán)利要求1所述的方法,其中所述網(wǎng)絡(luò)應(yīng)用的每個用戶具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的一個相應(yīng)的數(shù)據(jù)對象的所有權(quán)。
12.如權(quán)利要求1所述的方法,其中所述網(wǎng)絡(luò)應(yīng)用的一個單個網(wǎng)絡(luò)節(jié)點具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的所有用戶相應(yīng)數(shù)據(jù)對象的所有權(quán)。
13.一種網(wǎng)絡(luò)計算機設(shè)備,包括一個網(wǎng)絡(luò)通信接口,用于支持所述計算設(shè)備與一個網(wǎng)絡(luò)之間的數(shù)據(jù)傳送;以及一個中央處理單元,用于執(zhí)行程序指令來提供一個多用戶網(wǎng)絡(luò)應(yīng)用,該應(yīng)用用于確定與一個應(yīng)用數(shù)據(jù)對象有關(guān)的一個更新數(shù)據(jù)子集,所述數(shù)據(jù)對象由一個自有的網(wǎng)絡(luò)用戶保持在一個多用戶網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間中,這樣所述更新數(shù)據(jù)子集指定小于或等于用于所述應(yīng)用對象的完全的數(shù)據(jù)更新的一組數(shù)據(jù)域;從一個被保持的對應(yīng)于所述數(shù)據(jù)對象的本地數(shù)據(jù)對象副本有關(guān)的請求來自自有用戶的指定的更新數(shù)據(jù)子集的一個網(wǎng)絡(luò)數(shù)據(jù)更新請求消息;并且接收數(shù)據(jù)對象的更新數(shù)據(jù),該更新數(shù)據(jù)包含由所述更新數(shù)據(jù)子集指定的一組數(shù)據(jù)域。
14.如權(quán)利要求13所述的設(shè)備,其中所述設(shè)備用接收的更新數(shù)據(jù)子集更新所述數(shù)據(jù)對象的本地副本。
15.如權(quán)利要求13所述的設(shè)備,其中所述設(shè)備通過確定一個可用的網(wǎng)絡(luò)帶寬和根據(jù)可用帶寬選擇一個指定數(shù)量來確定更新數(shù)據(jù)子集。
16.如權(quán)利要求15所述的設(shè)備,其中所述設(shè)備通過接收一個用戶選擇的帶寬值確定可用的帶寬。
17.如權(quán)利要求15所述的設(shè)備,其中所述設(shè)備通過從本地客戶機的一個操作系統(tǒng)接收系統(tǒng)資源信息來確定可用的帶寬。
18.如權(quán)利要求13所述的設(shè)備,其中所述設(shè)備通過根據(jù)一個正在更新的用戶對數(shù)據(jù)對象的興趣程度確定所述更新數(shù)據(jù)子集的一組數(shù)據(jù)域來確定更新數(shù)據(jù)子集。
19.如權(quán)利要求18所述的設(shè)備,其中所述正在更新的用戶的興趣程度取決于正在更新用戶與共享數(shù)據(jù)空間中的數(shù)據(jù)對象的交互。
20.如權(quán)利要求13所述的設(shè)備,其中所述請求消息指定一個小于為所述網(wǎng)絡(luò)應(yīng)用完整定義數(shù)據(jù)對象的數(shù)據(jù)域的更新數(shù)據(jù)子集。
21.如權(quán)利要求13所述的設(shè)備,其中為所述應(yīng)用對象更新本地客戶機數(shù)據(jù)狀態(tài)包含呈遞一個包括所述更新的應(yīng)用對象數(shù)據(jù)的形象的虛擬顯示。
22.如權(quán)利要求13所述的設(shè)備,其中所述應(yīng)用包括在網(wǎng)絡(luò)上傳送流數(shù)據(jù)。
23.如權(quán)利要求13所述的設(shè)備,其中所述網(wǎng)絡(luò)應(yīng)用的每個用戶具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的一個相應(yīng)的數(shù)據(jù)對象的所有權(quán)。
24.如權(quán)利要求13所述的設(shè)備,其中所述網(wǎng)絡(luò)應(yīng)用的一個單個網(wǎng)絡(luò)節(jié)點具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的所有用戶的相應(yīng)數(shù)據(jù)對象的所有權(quán)。
25.一種在計算機網(wǎng)絡(luò)上從一個數(shù)據(jù)對象自有用戶到一個正在更新的用戶傳送數(shù)據(jù)的方法,該方法包括在自有用戶處為定義一個多用戶網(wǎng)絡(luò)應(yīng)用中的一個應(yīng)用對象的一組數(shù)據(jù)域確定更新數(shù)據(jù);在所述正在更新用戶處確定一個為所述多用戶網(wǎng)絡(luò)應(yīng)用指定一個與一個應(yīng)用數(shù)據(jù)對象有關(guān)的一個更新數(shù)據(jù)子集的一個更新數(shù)據(jù)消息,這樣所述更新數(shù)據(jù)子集指定小于或等于包含由自有用戶確定的所述更新數(shù)據(jù)的數(shù)據(jù)域的數(shù)目的數(shù)據(jù)對象的數(shù)據(jù)域;并且從一個正在更新用戶發(fā)送一個更新數(shù)據(jù)消息給所述自有用戶。
26.一種用于計算機設(shè)備上的程序產(chǎn)品,用來執(zhí)行記錄在一個計算機可讀介質(zhì)上的程序指令來執(zhí)行一種用于在一個計算機網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)傳送的方法,該程序產(chǎn)品包括一個可記錄介質(zhì);以及多個計算機可讀指令,可由所述計算機設(shè)備執(zhí)行的來執(zhí)行一個方法,該方法包括確定一個與一個應(yīng)用數(shù)據(jù)對象有關(guān)的更新數(shù)據(jù)子集,所述數(shù)據(jù)對象由一個自有網(wǎng)絡(luò)用戶保持在一個多用戶網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間中,這樣所述更新數(shù)據(jù)子集指定小于或等于用于所述應(yīng)用對象的完全的數(shù)據(jù)更新的一組數(shù)據(jù)域;從一個被所述計算機設(shè)備保持的對應(yīng)于所述數(shù)據(jù)對象的本地數(shù)據(jù)對象副本有關(guān)的一個請求來自自有用戶的指定的更新數(shù)據(jù)子集的網(wǎng)絡(luò)數(shù)據(jù)更新請求消息;并且接收數(shù)據(jù)對象的更新數(shù)據(jù),該更新數(shù)據(jù)包含由所述更新數(shù)據(jù)子集指定的一組數(shù)據(jù)域。
27.如權(quán)利要求26所述的程序產(chǎn)品,其中該計算機設(shè)備用接收的更新數(shù)據(jù)子集更新所述數(shù)據(jù)對象的本地副本。
28.如權(quán)利要求26所述的程序產(chǎn)品,其中該計算機設(shè)備通過確定一個可用的網(wǎng)絡(luò)帶寬和根據(jù)可用帶寬選擇一個指定數(shù)量來確定所述更新數(shù)據(jù)子集。
29.如權(quán)利要求28所述的程序產(chǎn)品,其中該計算機設(shè)備通過接收一個用戶選擇的帶寬值確定可用的帶寬。
30.如權(quán)利要求28所述的程序產(chǎn)品,其中該計算機設(shè)備通過從該計算機設(shè)備的一個操作系統(tǒng)接收系統(tǒng)資源信息來確定可用的帶寬。
31.如權(quán)利要求26所述的程序產(chǎn)品,其中該計算機設(shè)備根據(jù)一個計算機設(shè)備正在更新的用戶對數(shù)據(jù)對象的興趣程度通過確定所述更新數(shù)據(jù)子集的一組數(shù)據(jù)域來確定更新數(shù)據(jù)子集。
32.如權(quán)利要求31所述的程序產(chǎn)品,其中正在更新的用戶的興趣程度取決于正在更新用戶與共享數(shù)據(jù)空間中的數(shù)據(jù)對象的交互。
33.如權(quán)利要求26所述的程序產(chǎn)品,其中所述請求的消息指定一個小于為所述網(wǎng)絡(luò)應(yīng)用完整定義數(shù)據(jù)對象的數(shù)據(jù)域的更新數(shù)據(jù)子集。
34.如權(quán)利要求27所述的程序產(chǎn)品,其中該計算機設(shè)備通過呈遞一個包括所述更新的應(yīng)用對象數(shù)據(jù)的形象的虛擬顯示來更新所述應(yīng)用對象的本地副本。
35.如權(quán)利要求26所述的程序產(chǎn)品,其中所述網(wǎng)絡(luò)應(yīng)用包括在網(wǎng)絡(luò)上傳送流數(shù)據(jù)。
36.如權(quán)利要求26所述的程序產(chǎn)品,其中網(wǎng)絡(luò)應(yīng)用的每個用戶具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的一個相應(yīng)的數(shù)據(jù)對象的所有權(quán)。
37.如權(quán)利要求26所述的程序產(chǎn)品,其中所述網(wǎng)絡(luò)應(yīng)用的一個單個網(wǎng)絡(luò)節(jié)點具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的所有的用戶相應(yīng)的數(shù)據(jù)對象的所有權(quán)。
38.一種網(wǎng)絡(luò)計算機設(shè)備,用于在計算機網(wǎng)絡(luò)上傳送數(shù)據(jù),該計算機設(shè)備包括一個處理器,用于執(zhí)行一個多用戶網(wǎng)絡(luò)應(yīng)用,這樣該計算機設(shè)備包括所述網(wǎng)絡(luò)應(yīng)用的一個本地客戶機;確定裝置,用于確定一個與一個應(yīng)用數(shù)據(jù)對象有關(guān)的更新數(shù)據(jù)子集,所述數(shù)據(jù)對象由一個自有的網(wǎng)絡(luò)用戶保持在一個多用戶網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間中,這樣所述更新數(shù)據(jù)子集指定小于或等于用于所述應(yīng)用對象的完全的數(shù)據(jù)更新的一組數(shù)據(jù)域;通信裝置,用于從一個保持對應(yīng)于所述數(shù)據(jù)對象的本地副本的一個正在更新用戶發(fā)送一個網(wǎng)絡(luò)數(shù)據(jù)更新請求消息,該網(wǎng)絡(luò)數(shù)據(jù)更新請求消息請求來自自有用戶的指定的更新數(shù)據(jù)子集;并且接收裝置,用于接收數(shù)據(jù)對象的更新數(shù)據(jù),該更新數(shù)據(jù)包含由所述更新數(shù)據(jù)子集指定的一組數(shù)據(jù)域。
39.如權(quán)利要求38所述的計算機設(shè)備,其中所述處理器用接收的更新數(shù)據(jù)子集更新所述數(shù)據(jù)對象的本地副本。
40.如權(quán)利要求38所述的計算機設(shè)備,其中所述確定裝置確定一個可用的網(wǎng)絡(luò)帶寬并且根據(jù)可用帶寬選擇一個指定數(shù)量。
41.如權(quán)利要求38所述的計算機設(shè)備,其中所述確定裝置通過接收一個用戶選擇的帶寬值確定可用的網(wǎng)絡(luò)帶寬。
42.如權(quán)利要求41所述的計算機設(shè)備,其中所述確定裝置通過從本地客戶機的一個操作系統(tǒng)接收系統(tǒng)資源信息來確定可用的帶寬。
43.如權(quán)利要求38所述的計算機設(shè)備,其中所述確定裝置通過根據(jù)一個正在更新的用戶對數(shù)據(jù)對象的興趣程度確定所述更新數(shù)據(jù)子集的一組數(shù)據(jù)域來確定更新數(shù)據(jù)子集。
44.如權(quán)利要求43所述的計算機設(shè)備,其中所述確定裝置根據(jù)正在更新用戶與共享數(shù)據(jù)空間中的數(shù)據(jù)對象的交互來確定正在更新的用戶的興趣程度。
45.如權(quán)利要求38所述的計算機設(shè)備,其中所述請求的消息指定一個小于為所述網(wǎng)絡(luò)應(yīng)用完整定義數(shù)據(jù)對象的數(shù)據(jù)域的更新數(shù)據(jù)子集。
46.如權(quán)利要求38所述的計算機設(shè)備,其中所述處理器通過呈遞一個包括所述更新的應(yīng)用對象數(shù)據(jù)的形象的虛擬顯示為所述應(yīng)用對象更新本地客戶機數(shù)據(jù)狀態(tài)。
47.如權(quán)利要求38所述的計算機設(shè)備,其中所述應(yīng)用包括在網(wǎng)絡(luò)上傳送流數(shù)據(jù)。
48.如權(quán)利要求38所述的計算機設(shè)備,其中所述網(wǎng)絡(luò)應(yīng)用的每個用戶具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的一個相應(yīng)的數(shù)據(jù)對象的所有權(quán)。
49.如權(quán)利要求38所述的計算機設(shè)備,其中所述網(wǎng)絡(luò)應(yīng)用的一個單個網(wǎng)絡(luò)節(jié)點具有所述網(wǎng)絡(luò)應(yīng)用共享數(shù)據(jù)空間的所有用戶的相應(yīng)的數(shù)據(jù)對象的所有權(quán)。
全文摘要
與一個多用戶網(wǎng)絡(luò)應(yīng)用有關(guān)的在一個計算機網(wǎng)絡(luò)上從一個擁有所述數(shù)據(jù)對象的網(wǎng)絡(luò)用戶到一個正在更新的用戶的數(shù)據(jù)傳送,通過定義所述數(shù)據(jù)對象的數(shù)據(jù)域的一個子集的傳送來得到,這樣所述數(shù)據(jù)域的子集由所述正在更新的用戶來指定,并且小于或等于包括為所有數(shù)據(jù)域定義所述數(shù)據(jù)對象的更新值的究全的更新傳送。每個數(shù)據(jù)對象由多個數(shù)據(jù)域來定義,這樣所述數(shù)據(jù)對象數(shù)據(jù)域的一個子集的傳送保證了數(shù)據(jù)更新所利用的網(wǎng)絡(luò)帶寬將從其中用于一個正在被更新的對象的所有定義的數(shù)據(jù)域通過網(wǎng)絡(luò)被傳送的情況減少。
文檔編號A63F13/12GK1695134SQ03805935
公開日2005年11月9日 申請日期2003年8月4日 優(yōu)先權(quán)日2003年1月9日
發(fā)明者G·范達(dá)塔 申請人:美國索尼電腦娛樂公司