專利名稱:通信網(wǎng)中的方法和設備的制作方法
技術領域:
本發(fā)明涉及通信網(wǎng),具體地,涉及在這種網(wǎng)絡中的應用的幾個用戶之間的實時通信。
相關技術描述當前正在開發(fā)例如用于多用戶的游戲的多用戶通信應用。這樣的游戲可以由連接到同一個LAN(局域網(wǎng))或甚至更大的網(wǎng)絡(諸如互聯(lián)網(wǎng))的不同的部分的多個用戶參加。對于這樣的應用,使用三個主要模型客戶機-服務器同步,對等體到對等體的同步,或廣播同步。今天在互聯(lián)網(wǎng)上的某些多用戶游戲涉及多達100 000個參加者,其中的幾千人可同時參加游戲。今天使用的所有的同步方法都會造成相當長的延時。所以,今天在互聯(lián)網(wǎng)上進行的多用戶游戲都是那些速度不是關鍵性問題的游戲。例如,對于快速動作的游戲(諸如賽車游戲或戰(zhàn)斗游戲,其中用戶必須對在幾分之一秒內(nèi)發(fā)生的事情作出反應),就不能通過使用任何標準同步方法并以可接受的質(zhì)量來玩游戲。
撥號接入網(wǎng)絡典型地使用客戶機-服務器同步。在這種情形下,服務器接收來自所有的游戲者的數(shù)據(jù)。它必須找出每個游戲者需要的信息以及發(fā)送這些信息。中央服務器是系統(tǒng)中明顯的瓶頸。中央客戶機-服務器游戲可以支持2-250個游戲者。較高的數(shù)目要涉及到更新速率低到2Hz的服務器。中央服務器會附加上等待時間是因為增加的輸送距離和在服務器中的處理與安排延時。例如考慮一種情形,其中客戶機在美國西海岸而服務器在美國東海岸。將會由客戶機-服務器的運行模式造成約80ms的輸送等待時間和至少10ms的處理等待時間。
所以,客戶機-服務器同步不適用于其中延時是關鍵性的、具有大量游戲者的實時應用。
對等體到對等體同步是指所有的客戶機把應用數(shù)據(jù)直接發(fā)送到所有其它的客戶機。這種模型常常被使用于在公共互聯(lián)網(wǎng)上參加的游戲。游戲開發(fā)者提供一個免費應用接待廳服務器,在其中使得游戲者相遇建立游戲以及參加正在進行的游戲。一旦游戲開始,它以同級模式進行,而不從游戲開發(fā)者場地提取任何資源。
對等體到對等體同步具有明顯的可縮放性問題,因為網(wǎng)絡負載正比于游戲者數(shù)目的平方;客戶機接入帶寬和CPU功率要求正比于游戲者的數(shù)目。在每個分組中的有用負載是10-40字節(jié),這意味著協(xié)議附加開銷通常是大于50%。小的游戲分組給出大的協(xié)議附加開銷。然而,通過標題壓縮方法,這個附加開銷可被大大地減小。在互聯(lián)網(wǎng)上的同級游戲受到不可預測的延時,以及常常因為同步的丟失而中斷。
由此看到,對等體到對等體同步也最好地適用于小的網(wǎng)絡,在相當短的距離上以及在有限數(shù)目的用戶之間進行通信。
廣播同步可以被局域網(wǎng)(LAN)上有限數(shù)目的用戶使用,但不適合于較大的網(wǎng)絡。
因為受同步方法施加的限制,以當前的技術達到具有良好實時特性的多個參加者的通信是不可能的。
通過多點傳播(multicast),必須在網(wǎng)絡中進行發(fā)送的信息可被大大地減少,因為信息只需要發(fā)送到每個多點傳播服務器一次,而不是發(fā)送給每個用戶一次。每個多點傳播服務器然后復制該信息以及把它發(fā)送到所連接的用戶。可以選擇每個用戶需要接收的信息。這可以減小服務器之間的和每個服務器與它的用戶之間的業(yè)務量。用于游戲的這樣的解決方案在美國專利5,841,980中被揭示。
在美國專利5,841,980中所揭示的系統(tǒng)中,每個用戶只具有與游戲部分有關的信息,這個信息是與當前情形中的用戶有關的,例如,有關他所處在的地理區(qū)域的信息。如果環(huán)境改變,例如,如果用戶移動到另一個房間,則在新的環(huán)境中的重要信息將不提供給用戶。
發(fā)明目的本發(fā)明的一個目的是改進在通信網(wǎng)中的實時性能,特別是對于在大量參加者之間共同進行的通信。
發(fā)明概要按照本發(fā)明,這個目的是通過一種在通信網(wǎng)中使用的服務器單元而達到的,所述服務器單元包括接收裝置,用于接收來自至少第一客戶機單元的信息,所述信息包括至少一部分有關分布互動應用的狀態(tài)信息,所述服務器單元的特征在于,它包括-狀態(tài)信息存儲裝置,用于存儲被包括在通過接收裝置從所述第一和第二客戶機單元之一接收的信息中的應用狀態(tài)信息,-第一發(fā)送裝置,用于把從所述至少第一客戶機單元接收的狀態(tài)信息轉(zhuǎn)發(fā)到網(wǎng)絡中的至少另一個節(jié)點,-第二發(fā)送裝置,用于把被存儲在所述狀態(tài)信息存儲裝置中的至少一部分信息發(fā)送到所述至少一個客戶機單元。
這使得能夠把應用的整個狀態(tài)保持在網(wǎng)絡中的一個或多個單元中,這樣就消除了每個客戶機存儲整個狀態(tài)的需要,由此減小每個客戶機處的存儲器容量的需要以及對于與每個客戶機進行通信所需要的帶寬。如果應用狀態(tài)的每個部分被存儲在一個以上的網(wǎng)絡節(jié)點或客戶機中,則有利于實現(xiàn)備份。
按照本發(fā)明,這個目的是通過在通信網(wǎng)中的終端中使用的客戶機單元達到的,包括用于分布互動應用的應用軟件,該客戶機單元的特征在于,它包括-至少一個輸入裝置,用于讀出來自所述終端的輸入,所述輸入至少構(gòu)成用于分布互動應用的應用狀態(tài)信息,-發(fā)送裝置,用于把應用狀態(tài)信息發(fā)送到應用接入服務器,-接收裝置,用于從所述應用接入服務器至少接收用于分布互動應用的應用狀態(tài)信息,-用于顯示所述狀態(tài)信息的裝置。
按照本發(fā)明的方法和設備對于分布互動應用特別有用的,特別是涉及到實時通信的情況下。
優(yōu)選地,所述服務器裝置的接收裝置適用于-接收來自至少所述第一客戶機的預約信息,所述預約信息標識這樣一些分布互動應用對象,其中所述第一客戶機希望接收有關于這些對象的信息。
-根據(jù)從該客戶機單元接收的預約信息,發(fā)送信息到所述至少一個客戶機單元,-所述服務器單元還包括至少一個客戶機預約表,用于存儲所述預約信息。
因此,所述客戶機單元還包括用于設置預約信息以便規(guī)定應當由其中接收可供使用的信息的分布互動應用的至少一個對象的裝置;以及用于發(fā)送所述預約信息到所述應用接入服務器的裝置。
這減小了要被發(fā)送到每個用戶的信息量,由此,減小傳輸延時,并且也有助于每個用戶分析信息,因為只有對于特定用戶最重要的信息才顯示給該用戶。每個客戶機能夠為自己決定哪些是重要的信息。
在一個優(yōu)選實施例中,接收裝置用來從至少第二客戶機接收有關所述第一客戶機的緊急信息。緊急信息可被發(fā)送到第一客戶機,或有關所述第二客戶機的應用狀態(tài)信息可以根據(jù)所述緊急信息而被轉(zhuǎn)發(fā)到至少所述第一客戶機。緊急信息也可被使用來指示某個應用狀態(tài)信息不應當被轉(zhuǎn)發(fā)到所述第一客戶機。緊急信息可被使用來改變客戶機預約。
在所述優(yōu)選實施例中,客戶機單元還包括用于設置緊急數(shù)據(jù)以便規(guī)定應當盡可能快地接收來自該客戶機的狀態(tài)信息的至少一個其它客戶機的裝置。
有利地,用于發(fā)送應用狀態(tài)信息的客戶機單元的發(fā)送裝置被用來在把對象信息分組發(fā)送到服務器單元之前安排該對象信息分組中的信息,其中與一個對象有關的分組構(gòu)成了應用的一部分,以及所述接收裝置被用來從服務器單元接收的分組中提取信息。
應用接入服務器系統(tǒng)與應用無關,所以,它可以支持很寬范圍的不同的應用。
共同工作的應用接入服務器可以在優(yōu)選地提供保留的或被管理的傳輸容量的網(wǎng)絡上進行通信。應用的集合的帶寬要求可以由網(wǎng)絡管理系統(tǒng)來估值,以及足夠的網(wǎng)絡資源可被分配給正在連接應用接入服務器單元的保留的網(wǎng)絡。新的應用只有在資源是可提供時才是允許的。網(wǎng)絡管理也控制應用接入服務器單元的重新發(fā)送和復制政策。多點傳播和資源保留協(xié)議可被使用于各個應用接入服務器單元之間的集合的數(shù)據(jù)流。這個系統(tǒng)的優(yōu)點在于,在游戲者級別上的資源保留是不必要的。如果總的統(tǒng)計性能是良好的話,應用客戶機通常可管理偶爾丟失的分組。使用按照本發(fā)明的應用接入服務器將意味著游戲客戶機決不會永久地失去同步,因為應用接入服務器單元總是保持游戲狀態(tài)。
附圖簡述下面將參照附圖更詳細地描述按照本發(fā)明的設備和方法,其中
圖1顯示按照本發(fā)明的網(wǎng)絡的實施例;
圖2顯示按照本發(fā)明的第一實施例的應用接入服務器;圖3顯示按照本發(fā)明的應用狀態(tài)記錄的實施例;圖4顯示按照本發(fā)明的一個實施例的應用客戶機;圖5顯示按照本發(fā)明的一個實施例使用的通信堆棧;圖6顯示按照本發(fā)明的應用接入服務器的第二實施例;圖7顯示在應用接入服務器的第二實施例中使用的應用路由器;圖8是在本發(fā)明的實施例中使用的應用接入服務器的分級結(jié)構(gòu)的示意性代表。
實施例詳細描述圖1顯示按照本發(fā)明的通信網(wǎng)的一個實施例。按照本發(fā)明,網(wǎng)絡包括至少一個應用接入服務器。在圖1上,顯示第一1、第二3和第三5應用接入服務器,通過網(wǎng)絡7(例如保留的電信網(wǎng))而互相連接。它也可以是任何其它類型的網(wǎng)絡,然而,那些不可能預約網(wǎng)絡資源的網(wǎng)絡(諸如互聯(lián)網(wǎng))如果負載很重,則可能會提供較低的質(zhì)量。多個客戶機11、12、13、14、15也被連接到網(wǎng)絡7。客戶機可以以技術上已知的任何方式連接到適當?shù)膽媒尤敕掌?、3或5,正如下面更詳細地描述的。
客戶機可以通過用于運行分布互動應用的應用接入服務器互相通信,其中大量參加者同時對應用(例如,實時多用戶游戲)的狀態(tài)起作用和影響該狀態(tài)。在每個客戶機和與其相連接的應用接入服務器之間,通常將會有低容量連接,諸如調(diào)制解調(diào)器連接。另一方面,在兩個應用接入服務器之間,高的和可變的網(wǎng)絡容量是可提供的。所以,按照本發(fā)明的應用接入服務器適用于這樣地處理有關應用狀態(tài)的信息,以便通過只把與該客戶機最相關的信息發(fā)送到每個客戶機從而減小發(fā)送到每個客戶機的信息量。在應用接入服務器之間,傳輸容量通常將不是問題,所以,在應用接入服務器之間可以傳輸更多的信息。
在網(wǎng)絡中也可以存在一個或多個其本身已知的種類的應用接待廳服務器21。這些服務器典型地包括允許客戶機登錄特種類型的業(yè)務的功能、處理收費功能等等。
按照本發(fā)明,對于應用所需要的軟件在客戶機11、12、13、14、15處找到。為了使用按照本發(fā)明的通信功能,用戶必須確保他具有所需要的應用軟件。應用軟件可以以技術上已知的任何方式被檢索,例如,從互聯(lián)網(wǎng)下載或從CD-ROM上安裝。如果應用需要,他也必須向應用接待廳服務器登錄。典型地,應用接待廳服務器21將提供一個或多個應用接入服務器1、3、5的地址(通常是IP地址)和端口號碼,但這個地址也可以以任何其它方式得出。
用戶以技術上通用的方式,通常是通過輸入應用接入服務器或應用接入服務器的庫的IP地址而連接到應用接入服務器。存在幾個算法,可用于選擇由同一個地址所識別的、網(wǎng)絡中多個節(jié)點中的適當?shù)墓?jié)點。應用接入服務器接收來自用戶的信息,以及開始發(fā)送信息給用戶,正如下面更詳細地描述的。替代將客戶機登錄到應用接入服務器,應用接待廳服務器也可以把客戶機網(wǎng)絡地址發(fā)送到應用接入服務器。
假定應用包含一組由參加者控制的對象。一個對象是由參加人控制的或在客戶機處產(chǎn)生的應用中的一個項目,以及不能在每個應用客戶機處被局部地重新產(chǎn)生,例如,受隨機數(shù)產(chǎn)生器或其它不能預測的計算處理過程的控制。應用對象可以是參加者直覺地認作為對象或游戲圖形的事物,但它們也可以是背景數(shù)據(jù)結(jié)構(gòu),諸如由游戲者控制的環(huán)境變量。應用對象由一個或幾個游戲者控制。每個對象典型地具有一組性質(zhì)和屬性,它們在應用運行的同時可以被改變。在游戲中,這些性質(zhì)可以是角色的力量和其它能力,或汽車的最大速度,以及屬性可以是由角色所集合成的項目。
從用戶處接收的信息,除了信令附加開銷以外,通常將包括三種不同類型的信息狀態(tài)信息、預約信息、控制數(shù)據(jù)和緊急信息。狀態(tài)信息是關于由用戶控制的對象的信息,它應當被分配給應用的其它用戶。預約信息列出有關由應用接入服務器提供的不同的應用對象的客戶機優(yōu)先級。例如,有關某個對象組的信息在它成為可提供時應當立即或盡可能經(jīng)常地被接收,而來自另一組對象的信息不是緊急的。在缺乏帶寬的情形下,可以以可接受的延時或領先的方式設置幾個優(yōu)先級級別。由客戶機產(chǎn)生的緊急信息可被使用來超越或改變另一個客戶機的預約,以使得其它的客戶機接受有關那些沒有被包括在它的預約中的對象的信息,或確保客戶機不接收某些信息。下面更詳細地討論所有三種類型的信息。
作為一個例子,將描述由大量用戶參加的實時游戲的應用。這樣的游戲今天由位于局域網(wǎng)(LAN)中互相很靠近的、有限數(shù)目的游戲者參加。在廣域網(wǎng)上進行的這樣的游戲在將來可以涉及典型地分布在大的游戲區(qū)或虛擬的地理區(qū)域的幾千個游戲者。對于現(xiàn)有技術的方法,這將不可能具有可接受的質(zhì)量,正如上面討論的。
每個游戲者只是立即被在虛擬游戲區(qū)域中在他附近發(fā)生的事情影響。另一個游戲者離得越遠,這個游戲者的變化影響就越小。例如,一個游戲者可能介入與第一敵方游戲者打仗,一個友方游戲者可能正在過來救助,以及第二敵方游戲者可能正在嘗試制止該友方游戲者。同時,其它的游戲者正在做在以后的時間變成為有趣的事情,但是目前游戲者的主要關心的問題是在戰(zhàn)斗中存活下來。所以,第一敵方游戲者的運動必須立即被顯示。該友方游戲者和第二敵方游戲者的運動也應當給予高的優(yōu)先級,而離得較遠的地方發(fā)生的事情應當給予低的優(yōu)先級。
在上面討論的例子中,顯然,游戲者的配置將改變,以使得在另一個時間,來自其它游戲者的信息將具有最高的優(yōu)先級,這里通常是指那些在任何給定的時間位于用戶附近的游戲者。
應用接入服務器可處理與應用客戶機的通信。它接收有關影響應用狀態(tài)的客戶機的行動的信息和其它信息。它也按照參加者的預約把來自其它參加者的應用狀態(tài)信息發(fā)送給參加者。每個應用客戶機設置關于要接收的應用信息的預約,以及把有關這些預約的信息發(fā)送給應用接入服務器。應用接入服務器存儲和更新由應用接入服務器提供服務的客戶機的預約的記錄。每個客戶機的預約被使用來確定哪些數(shù)據(jù)要被發(fā)送給這個客戶機??蛻魴C也可以設置對于另一個客戶機的預約。在一個運行模式下,主客戶機可以設置所有其它的客戶機的預約。
客戶機被連接到的應用接入服務器是客戶機的本地的應用接入服務器,以及該客戶機被稱為該應用接入服務器的本地客戶機。
應用接入服務器也保持客戶機權(quán)限表。每個客戶機具有改變一個或多個游戲?qū)ο蟮臓顟B(tài)的權(quán)利??蛻魴C權(quán)限表對于每個客戶機具有一個項目,在其中存儲由客戶機控制的對象的識別號。應用接入服務器在每次從客戶機處接收對象狀態(tài)信息時檢驗合法性。游戲狀態(tài)只在信息分組中找到的識別號與在權(quán)限表中對于客戶機的項目中的一個號碼相匹配的情況下才被更新,否則該信息被忽略。從其它應用接入服務器單元送來的對象狀態(tài)信息不被驗證,因為發(fā)送的應用接入服務器已檢驗合法性。
每個應用接入服務器也與其它應用接入服務器單元通信、發(fā)送應用狀態(tài)信息和可任選地聚集的預約給它們、以及接收來自它們的相同類型的信息。通常,要被發(fā)送到其它應用接入服務器的信息按照適當?shù)膮f(xié)議被打包以及被發(fā)送,而并不以任何方式被附加優(yōu)先級或被存儲。當然,有可能根據(jù)它的本地客戶機的用戶預約來選擇要被發(fā)送到每個應用接入服務器的信息。聚集的預約是來自屬于給定的應用接入服務器的客戶機的所有的應用對象請求的總和。例如,應用接入服務器可以使用至其它應用接入服務器單元的多點傳播方式。這確保每個應用接入服務器單元接收所有的需要的更新,以及游戲狀態(tài)被有效地分配在應用接入服務器單元上。
緊急數(shù)據(jù)由一個客戶機設置,如果數(shù)據(jù)對于另一個客戶機是重要的話,但另一個客戶機不知道這一情況,所以,不能設置他自己的預約。所以,緊急情況由發(fā)送的客戶機規(guī)定,以及它對于不同的接收客戶機可以是不同的。如果正在等待緊急數(shù)據(jù),則應用接入服務器提醒正在接收的客戶機。緊急信息也可以被使用來禁止某些信息轉(zhuǎn)發(fā)到一個或多個客戶機。
每個應用接入服務器也存儲和更新應用狀態(tài)的全部的或部分的副本。那些被分配給通信進程的應用接入服務器單元必須在它們之間存儲完整的應用狀態(tài)。在最簡單的情形下,每個應用接入服務器存儲完整的應用狀態(tài),但也有可能在應用接入服務器之間分割信息,從而使它們帶有或不帶有重疊的信息。重要的解決方案協(xié)議特別的軟件來處理把適當?shù)臄?shù)據(jù)分布到每個應用接入服務器。
應用接入服務器與應用接待廳服務器進行通信,以便建立該應用,從而在正在運行應用和處理錯誤和網(wǎng)絡故障的同時,添加和去除參加者。
圖2顯示按照本發(fā)明的一個實施例的應用接入服務器以及其它的功能實體。這個應用接入服務器可以用硬件或軟件來實施。在圖2上,只給出一般的描述。后面將討論適當?shù)母袷胶蛥f(xié)議。
應用接入服務器通過輸入緩存器51來接收來自網(wǎng)絡的每個客戶機的數(shù)據(jù),以及來自其它單元(諸如其它應用接入服務器)的數(shù)據(jù)。對于每個客戶機,遠端應用接入服務器和應用接待廳服務器各有一個輸入緩存器,雖然在圖2上為了簡明起見只顯示了一個輸入緩存器。
每個本地參加者的動作作為到達與這個客戶機有關的應用接入服務器的輸入緩存器的應用對象分組中的有用負載而被發(fā)送。這些應用對象分組可以更新由參加者控制的應用對象。應用對象分組通過一組插入規(guī)則而被寫入到應用狀態(tài)記錄。
從客戶機處接收到的數(shù)據(jù)可以包括三種類型的數(shù)據(jù)有關應用的狀態(tài)的數(shù)據(jù)(狀態(tài)數(shù)據(jù))、有關客戶機的預約的數(shù)據(jù)(優(yōu)先級數(shù)據(jù))和其它控制信息,諸如對于時間基準、其它客戶機的狀態(tài)和來自系統(tǒng)的其它信息的請求。狀態(tài)數(shù)據(jù)通過應用對象分組流水線53被傳送到應用狀態(tài)記錄55。應用狀態(tài)記錄55保持對于所有的相關的對象的所有的狀態(tài)數(shù)據(jù),諸如將在下面更詳細地討論的那樣。應用狀態(tài)記錄也保持如上所述的緊急數(shù)據(jù)。
客戶機組可以被加以規(guī)定,所述客戶機組包括在一個工作組中的參加者,或在游戲的情形下是同一個隊中的參加者。在這種情形下,預約和或緊急數(shù)據(jù)也可以是針對用戶組規(guī)定的,而不僅僅對于單獨的用戶。
控制數(shù)據(jù),特別是不必實時處理的數(shù)據(jù)(諸如關于添加上和去除掉應用對象的信息)從輸入緩存器51被傳送到應用接入服務器控制單元57。在硬件實施方案中,控制單元57可以是微處理器。由控制單元處理的控制數(shù)據(jù)可以涉及創(chuàng)建和取消游戲者和對象以及游戲者組和對象組。
預約通過應用優(yōu)先級控制協(xié)議消息流水線59被傳送到客戶機優(yōu)先級清單(CPL)61,后者包含由應用接入服務器支持的每個客戶機的預約。預約可以由客戶機和由應用接入服務器控制單元來更新??刂茊卧梢愿鶕?jù)從另一個客戶機處接收的緊急消息來決定更新客戶機的預約。
幾個不同的優(yōu)先級策略可以通過應用接入服務器系統(tǒng)而被應用客戶機采用。一種簡單的方法是應用客戶機把對象的已列舉的清單發(fā)送到CPL 61。在這種情形下,當在清單上的所有的對象被更新時,沒有在清單上的對象可以以循環(huán)方式被更新。如果在清單上的所有的對象被更新,則其余對象可以以循環(huán)方式被更新。特定的客戶機的預約包括由該客戶機設置預約的所有對象的清單。此外,被存儲在應用接入服務器中的清單優(yōu)選地包括對于每個對象的標志,表示是否接收到對于該對象的新的信息。標志被使用來確定關于某個對象的信息是否需要被發(fā)送到客戶機。當信息被發(fā)送到客戶機時,標志被復位。當由應用接入服務器接收到對于對象的新的更新時,標志再次被設置。
客戶機預約也可以用與每個對象有關的時間間隔來規(guī)定。客戶機然后發(fā)送一系列以下格式的請求<object number(對象號碼)>,<object priority(對象優(yōu)先級)>,<object update time interval(對象更新時間間隔)>,<flag(標志)>。簡單的清單可以只有格式<object number>,<objectpriority>。應用接入服務器將試圖發(fā)送更新給客戶機,以使得每個對象在每個時間間隔期間以按照在請求中的<object ptiority>域給定的優(yōu)先級至少被更新一次。無窮大符號可被使用來使得某些對象完全不被更新??梢栽O置一個特別的“只發(fā)送新的完整的對象狀態(tài)”標志。這個任選方案在客戶機想要接收對于具有長的時間間隔(幾秒)的對象的更新時被使用。如果想要的時間分辨率長于狀態(tài)刷新時間間隔,發(fā)送增量更新是浪費的。
輸出流水線63接收來自客戶機優(yōu)先級清單的預約信息,以及使用這個信息來搜索應用狀態(tài)記錄55,從而通過使用上述的適當?shù)乃惴▽ふ乙话l(fā)送到所討論到的客戶機的信息。選擇的狀態(tài)信息從應用狀態(tài)記錄55通過輸出流水線63傳送到輸出緩存器65,以及從輸出緩存器傳送到客戶機。例如,控制單元57發(fā)送控制消息給客戶機和遠端服務器以便使時鐘與客戶機同步或提供等待時間估值給客戶機。
雖然圖2所示的應用接入服務器被顯示為只有一個每種類型的單元,但優(yōu)選地,應用接入服務器對于應用接入服務器與其交換信息的網(wǎng)絡中每個客戶機和每個其它服務器,都包括一個輸入緩存器51、一條應用對象分組輸入流水線53、一條優(yōu)先級消息流水線55、以及一條輸出處理流水線63和一個輸出緩存器65。替換地,一組客戶機或一組服務器可共享一個輸入緩存器51、一條應用對象分組輸入流水線53、一條優(yōu)先級消息流水線55、以及一條輸出處理流水線63和一個輸出緩存器65。應用接入服務器也包括對于每個客戶機、服務器等的一個客戶機優(yōu)先級清單。
從其它應用接入服務器接收的數(shù)據(jù)包括來自其它客戶機的對象狀態(tài)數(shù)據(jù)。它也可包括來自這些客戶機的優(yōu)先級信息,該信息優(yōu)選地以這樣的方式被聚集,以使得每個對象在優(yōu)先級清單上只出現(xiàn)一次。在這種情形下,信息將被打包,這樣,對于每個應用接入服務器有一個優(yōu)先級清單,也就是,每個應用接入服務器像一個客戶機那樣被處理。從另一個應用接入服務器接收的信息以與從客戶機接收的信息相同的方式被對待,除非輸入和輸出緩存器51,65也必須執(zhí)行一定的協(xié)議處理,正如下面將討論的。替換地,從其它應用接入服務器沒有接收預約信息,在這種情形下,所有的狀態(tài)信息將被發(fā)送到這些應用接入服務器。
應用接入服務器也可以處理任選的公正游戲(fairplay)模式,在其中所有的游戲者同時被更新(見下面)。
如上所述,一個或多個其本身已知的種類的應用接待廳服務器(圖1上的21)可以存在于網(wǎng)絡中。應用接待廳服務器負責更新在游戲期間的配置數(shù)據(jù),從而提供以下的數(shù)據(jù)給應用接入服務器·進入游戲的、新的應用接入服務器單元的IP地址或其它網(wǎng)絡地址·標識由應用接入服務器服務的參加者的、更新的網(wǎng)絡地址清單。這使得新的參加者能夠參加正在進行的應用。
·更新的已列舉的游戲?qū)ο笄鍐?。對于每個對象,規(guī)定哪個應用接入服務器負責存儲狀態(tài),如果狀態(tài)被分布在應用接入服務器之間的話。也可以規(guī)定誰被許可來更新狀態(tài)。這使得能夠創(chuàng)建、取消和改變游戲?qū)ο蟮目刂?。客戶機也可以創(chuàng)建和取消游戲?qū)ο蟆?br>
·新的完整的或局部的游戲狀態(tài)。這使得當應用接入服務器系統(tǒng)拋棄游戲狀態(tài)時能夠在游戲中暫停或失敗后恢復。
圖3顯示按照本發(fā)明的應用接入服務器中使用的應用狀態(tài)記錄的例子每個應用對象的狀態(tài)被存儲在應用狀態(tài)記錄中作為一組已列舉的應用對象狀態(tài)AOS1-AOS4。每個應用對象狀態(tài)分別包含一系列應用對象分組AOP11-AOP13、AOP21-AOP24、AOP31和AOP41-AOP42。對象分組是用于對象數(shù)據(jù)的容器。從應用發(fā)送到遠端應用客戶機或服務器的所有的數(shù)據(jù)被打包在應用對象分組中,這樣,它可以由應用接入服務器系統(tǒng)來處理。
由應用接入服務器從它連接到的所有的其它應用接入服務器處接收的信息被使用來更新在應用狀態(tài)記錄中的應用對象信息。優(yōu)選地,有兩種類型的應用對象分組(1)參考應用對象分組,包括有關對象的所有的當前的數(shù)據(jù),以及(2)增量分組,只包括有關自從由增量分組涉及到的APO的時間印記給出的時間以來已改變的內(nèi)容的信息。在AOS中的第一AOP必須是參考分組,后面跟隨一組增量分組或一個參考分組。某些游戲只嘗試參考分組。
應用狀態(tài)記錄也保存那些需要被傳送到其它應用接入服務器單元的應用對象分組的記錄。這可以通過使用數(shù)據(jù)結(jié)構(gòu)new_client_data被完成,該數(shù)據(jù)結(jié)構(gòu)可被實施為矩陣new_client_data(i,k),其中每個元素是一個標志。參量i是客戶機號碼,以及參量k是應用接入服務器號碼。如果應用對象分組應當被傳送到外部應用接入服務器,則該標志被設置,圖3顯示應用對象狀態(tài)AOS1,作為應用對象狀態(tài)可以被怎樣使用來描述應用對象的例子。這個對象可以描述在賽車游戲中汽車的位置。汽車的位置(x1,y1)首先作為在參考應用對象分組AOP11中的游戲有用負載在游戲時間t1而被發(fā)送。為了節(jié)省帶寬,在游戲時間t2位置的相對改變(Δx2,Δy2)被發(fā)送作為增量應用對象分組AOP12。增量應用對象分組AOP12指向參考應用對象分組AOP11以作為參考。在游戲時間t3,新的增量位置在第三應用對象分組AOP13中被發(fā)送。第三應用對象分組AOP13以第二應用對象分組AOP12作為參考。在接收所有三個應用對象分組AOP11、AOP12、AOP13后,客戶機可以按照(Δx1+Δx2+Δx3,Δy1+Δy2+Δy3)計算在時間t3時汽車的位置。
當新的參考應用對象分組針對特定的對象而被接收時,應用狀態(tài)記錄可以刪除屬于對象的所有以前的分組,以及正好存儲新的參考分組。注意,游戲有用負載的句法和語義學只能被運行在客戶機終端的游戲應用所理解。應用應當經(jīng)常發(fā)送參考分組,以便避免由丟失的數(shù)據(jù)造成的長的中斷。
編碼應用的另一個方式是讓第三應用對象分組AOP13在時間t3使用參考應用對象分組AOP11作為參考,以及只說明相對于(x1,y1)的位置改變δx,δy。這將節(jié)省應用接入服務器存儲器,因為只要第三應用對象分組AOP13一到達,第二應用對象分組AOP12就可在時間t2被刪除??蛻魴C現(xiàn)在可以按照(x1+δx3,y1+δy3)計算在時間t3時汽車的位置。應用接入服務器使用在應用對象分組標題中的信息,以便確定先前的應用對象分組是否滿時以及可被刪除。在圖3上,AOS2包含三個應用對象分組AOP21、AOP22、AOP23和AOP24,其中第一個應用對象分組AOP21是參考分組,以及三個后面的應用對象分組AOP22、AOP23和AOP24是增量的。最后的增量具有時間印記t8。AOS2因此描述對象2的狀態(tài)直到游戲時間t8為止。圖3上的AOS 3只包含一個參考應用對象分組AOP31,這對于描述對象是足夠的。
在允許新的客戶機開始向該應用廣播之前,按照優(yōu)選實施例,應用接入服務器可以估計所需要的增量帶寬,確保這個帶寬在網(wǎng)絡中是可提供的。用于做到這一點的方法在技術上是熟知的。如果沒有預見容量問題,則不需要這個步驟。
圖4顯示按照本發(fā)明的客戶機正在其上運行的計算機的實施例。計算機包括處理單元101,在其中運行程序,例如是按照本發(fā)明的應用程序103。處理單元還借助于通信軟件105與應用接入服務器(未示出)通信,以及可能與網(wǎng)絡中的其它單元通信。應用程序103通過網(wǎng)絡應用接口107與通信軟件105通信。網(wǎng)絡應用接口具有用于發(fā)送和接收來自應用程序的應用數(shù)據(jù)的功能。
計算機還包括屏幕109以用于顯示有關應用的數(shù)據(jù)(例如,對參加者立即感興趣的游戲的一部分的總貌)。為了輸入數(shù)據(jù)到應用,計算機可以具有鍵盤111、鼠標113和/或被連接到計算機的游戲棒115,借助于它們,游戲中的對象可被移動,或可以輸入其它類型的改變。
客戶機應用103接收所述輸入,對其進行處理以及把它的結(jié)果顯示在屏幕109上,和/或借助于揚聲器和或觸覺顯示裝置。它也根據(jù)所述輸入把應用狀態(tài)數(shù)據(jù)轉(zhuǎn)發(fā)到網(wǎng)絡應用接口107,再從后者把數(shù)據(jù)轉(zhuǎn)發(fā)到應用接入服務器。
通過通信軟件105和網(wǎng)絡應用接口107,應用103也從游戲接入服務器接收有關其它對象的應用狀態(tài)信息,對其進行處理,以及把結(jié)果顯示在屏幕105上。
在本實施例中,網(wǎng)絡應用接口107包括兩個部分應用保持接口107A和應用接入接口(AAI)107B。這個解決方案被選擇來啟動對標準程序模塊(諸如微軟的DirectPlay)的使用,以便實施網(wǎng)絡AAI107B,正如下面討論的。
應用接入接口(AAI)107B是在客戶機終端處的軟件模塊。它是在網(wǎng)絡接口與網(wǎng)絡API 107A之間的中間模塊。應用接入接口107B接收和終結(jié)應用對象分組和控制消息,以及在應用對象分組有用負載被傳送到網(wǎng)絡應用接口107之前去除應用對象分組標題。它也轉(zhuǎn)譯控制消息以及把它們傳送到API 107A,或直接處理它們。AAI 107B處理對于與應用接入服務器通信所需要的功能,起到在客戶機應用程序中不能實施的功能。所以,它對于已被開發(fā)用于按照本發(fā)明的應用接入服務器的客戶機不一定必要。例如,AAI可以控制時鐘,使得將時間印記安排在應用對象分組上,如果客戶機沒有這方面的功能的話。
在上游方向,AAI 107B接收來自API的消息和對象。來自客戶機的、有關應用對象的數(shù)據(jù)被變換成應用對象分組格式。應用對象分組在通信鏈路上被發(fā)送到應用接入服務器。
AAI 107B也產(chǎn)生上游應用控制協(xié)議消息,特別是應用控制協(xié)議預約消息。對于建立預約所需要的信息和其它應用控制協(xié)議信息必須通過網(wǎng)絡API從應用中提取,以及從應用接入服務器的緊急名單消息中提取。
實際的客戶機(例如游戲控制臺)可以參與幾個游戲,或招待在同一個游戲中的幾個游戲者。每個實際應用客戶機可以運行幾個邏輯應用客戶機,其中邏輯應用客戶機相應于被連接到一個應用接入接口事例的一個應用事例。這個文件中的應用客戶機對應于邏輯應用客戶機。一個指向邏輯應用客戶機的網(wǎng)絡地址可以包含與應用接入接口的端口號相組合的物理客戶機的IP地址。
如果在開發(fā)應用程序時考慮應用接入服務器系統(tǒng),則可以達到最好的性能。用于確定表示接收數(shù)據(jù)的優(yōu)選的次序的預約的功能可被包括在應用程序中。如果從運行中的情形看到接收的游戲者不能預測消息的高的優(yōu)先級,則消息可以以高的緊急度直接傳送給共同游戲者。例如,考慮游戲中的一種情形,其中游戲者1正在與游戲者2對峙。突然,游戲者2受到游戲者1的攻擊,而不作任何警告。游戲者2不能設置來自游戲者1的消息的正確的優(yōu)先級,但游戲者1可以發(fā)送高度的緊急消息給游戲者2。
對于開發(fā)網(wǎng)絡API,例如,可以使用微軟DirectPlay API。然后,需要AAI來格式化輸出,諸如ACP和AOP,以及可被寫作為DirectPlay業(yè)務提供者。
通過使用微軟DirectPlay API,至少有兩種不同的提取預約的方式。注意,預約應當表明本地參加者接收有關列舉的應用對象的更新的優(yōu)先級。在本文件中的應用對象是與DirectPlay注解中的“游戲者”相同的,因為DirectPlay“游戲者”是可以發(fā)送和接收消息的應用實體。DirectPlay“游戲者”可以由游戲者控制,或它可以是自主的游戲?qū)ο蟆?br>
在第一種方法中,使用從DirectPlay的接收方法中得到的信息。通過設置DPRECEIVE_FROMPLAYER標志和適當?shù)匾?guī)定lpidFrom參量,該方法可以從由lpidFrom參量所標識的“游戲者”中檢索第一消息。這個信息可被應用接入接口使用來作出預約。如果在DirectPlay消息隊列中沒有來自標識的“游戲者”的消息可供使用,則合理地把被標識的應用對象放置在優(yōu)先級清單的頂部。
在第二種方法中,使用DirectPlay的發(fā)送方法,在其中idTo參量標識應當接收消息的“游戲者”或游戲者組??梢院侠淼丶俣ń邮战?jīng)常消息的“游戲者”與本地游戲者當前正在與之進行交互的應用對象有關。AAI因而能預約由idTo參量標識的“游戲者”。
圖5顯示可以按照本發(fā)明被使用的通信堆棧的例子。一個通信堆棧被使用于在諸如圖4所示的客戶機與應用接入服務器之間的通信??蛻魴C和應用接入服務器實際上包括相同類型的堆棧。在客戶機處,堆棧的最高層與圖4的應用接入接口層10通信,以及在應用接入服務器處,也顯示了堆棧與應用接入服務器軟件通信。圖5也顯示在應用接入服務器與網(wǎng)絡的另一個單元之間使用的通信堆棧。這另一個單元可以是另一個應用接入服務器或是應用接待廳服務器。所使用的通信堆棧遵從OSI模型。
客戶機通信堆棧與客戶機處的應用編程接口107通信。堆棧的最高級別是ACP/AOP層109。這個級別由圖4上的應用接入接口107處理。
包含諸如應用對象數(shù)據(jù)的信息或預約信息的ACP/AOP分組從ACP/AOP層109被傳送到鏈路層111。鏈路協(xié)議可以是例如PPP。在相反方向,ACP/AOP層109從應用接入服務器接收的信息分組中去除標題信息,以及把應用狀態(tài)信息轉(zhuǎn)發(fā)到客戶機應用。ACP分組可以終結(jié)在AAI處。如果客戶機包括用于處理預約的功能,則預約本身可以由客戶機本身處理。
最低層是信道層113,它包括信道編碼和實際的物理連接。
應用接入服務器實際上包括用于與客戶機通信的相同類型的堆棧信道層113’相應于客戶機的信道層。信道層113’通過鏈路層111’被連接到AOP/ACP層109’。
應用接入服務器中的AOP/ACP層109’直接與被安排來處理AOP和ACP信息的應用接入服務器軟件115通信。
應用接入服務器可以被構(gòu)建成帶有去向許多不同的客戶機鏈路協(xié)議的接口。理想地,應用接入服務器應當能夠處理任何鏈路協(xié)議,包括UDP、TCP和RTP。RTP是特別為傳輸話音和視頻數(shù)據(jù)而開發(fā)的協(xié)議。
鏈路協(xié)議應當被設計成使得從應用接入服務器到客戶機的鏈路上的協(xié)議附加開銷保持為低的。這可以通過例如使用適當?shù)逆溌穮f(xié)議(其中沒有使用IP/UDP/RTP)或通過有效的IP/UDP/RTP標題壓縮來完成。鏈路層應當進一步減小等待時間,以及提供有關鏈路的性質(zhì)的信息給應用接入服務器。這樣的信息可包括預期的帶寬、誤碼率和鏈路等待時間。
適當?shù)妮斔蛥f(xié)議(這里稱為應用輸送協(xié)議ATP)應當被使用在鏈路上,但應用對象分組和應用控制分組信息也可以通過鏈路協(xié)議被直接發(fā)送。
對于在兩個或多個應用接入服務器之間的通信,IP分組流從本地應用接入服務器的輸出緩存器65(見圖2)被發(fā)送到參加正在進行的應用的一個或多個遠端應用接入服務器單元。每個IP分組包含TCP或UDP分組,以及TCP或UDP有用負載是應用輸送協(xié)議(ATP)分組。
用于在兩個應用接入服務器之間的通信的通信堆棧的最高協(xié)議層是類似于在客戶機通信堆棧中使用的那種的AOP/ACP層117。應用對象分組可以相當小,也就是,約40字節(jié)或更小。為了使得在兩個應用接入服務器之間的通信更有效,把幾個應用對象分組聚集在一個應用輸送協(xié)議(ATP)層119中。下一個層是TCP或UDP層121,以及最低層是IP層123,這兩個層121、123在本領域是熟知的。信息分組從IP層被發(fā)送到遠端應用接入服務器單元。輸出緩存器單元(圖2上的65)保持一組分類緩存器,用于收集將成為ATP有用負載的應用對象分組。這些緩存器的結(jié)構(gòu)取決于分布策略。對于每個遠端應用接入服務器可以有一個分類緩存器。
應用對象分組可以包括一個用于列舉出應當?shù)玫礁碌目蛻魴C的域。這個域被變換成那些應當接收應用對象分組的應用接入服務器單元的名單。應用接入服務器保持一個表,它使得客戶機數(shù)目與應用接入服務器數(shù)目相匹配。這意味著,所有的有關的應用接入服務器單元最終將得到更新。應用接入服務器單元然后把應用對象分組分配到它們的本地客戶機。簡單的可任選的工作模式是所有的應用接入服務器單元接收所有的應用數(shù)據(jù)。
本地應用接入服務器識別那些需要通過遠端應用接入服務器單元被發(fā)送的應用對象分組。本地應用接入服務器的應用狀態(tài)接收機因而被加以掃描,從而可尋找到帶有new_client_data(新客戶機數(shù)據(jù))標志的應用對象分組。應用對象分組標題包括接收者組域,它列出應用對象分組應當被發(fā)送到的一個或多個客戶機地址。這個接收者組域被檢驗。客戶機地址被轉(zhuǎn)換成遠端應用接入服務器地址,以及應用對象分組的副本被放置在對應于接收者應用接入服務器單元的分類緩存器中。該接收者組域針對每個應用對象分組副本而被更新,這樣,只有屬于接收的應用接入服務器或應用接入服務器組的接收者客戶機才保留。new_client_data標志被復位。
應用對象分組包含來自游戲應用的有用負載。應用接入服務器系統(tǒng)不能讀出游戲的內(nèi)部有用負載格式。所以這樣的消息被打包在應用對象分組(AOP)中。AOP的標題可以被應用接入服務器系統(tǒng)讀出。它被使用來添加那些對于及時傳遞游戲有用負載所需要的信息。
在這里討論的實施例中,除了標準互聯(lián)網(wǎng)協(xié)議(諸如IP、TCP、UDP和RTP)以外,還使用三個非標準協(xié)議·應用對象分組(AOP)是用于游戲數(shù)據(jù)的容器。從游戲應用發(fā)送到遠端游戲客戶機或服務器的所有的數(shù)據(jù)被打包在AOP中,這樣,它可以被應用接入服務器系統(tǒng)處理。
·應用控制協(xié)議(ACP)被使用來發(fā)送控制消息??刂葡⒃趹媒尤敕掌鲉卧?、客戶機和應用接待廳服務器之間進行發(fā)送。
·應用輸送協(xié)議(ATP)被使用來在應用接入服務器單元之間和可任選地也在應用接入服務器與客戶機之間發(fā)送聚集的游戲數(shù)據(jù)。
應用對象分組包含來自游戲應用的消息。應用接入服務器系統(tǒng)不能讀出游戲的內(nèi)部消息格式。這樣的消息因而被打包在應用對象分組(AOP)中。AOP的標題可以被應用接入服務器系統(tǒng)讀出。它被使用來添加那些對于定時傳遞游戲有用負載所需要的信息。
應用消息可完整地規(guī)定應用對象的狀態(tài),或它們可替換地相對于參考狀態(tài)來描述應用對象。AOP因而具有兩種類型參考分組(BP)和增量分組(IP)。
應用對象分組包含標題,其后面跟隨游戲特定的有用負載可被使用于AOP的標題域包括(1)應用對象號碼。(2)時間印記,用于表示當AOP被產(chǎn)生時游戲中的時間。(3)可任選的分組號碼。通過與對象號和時間印記相組合,它創(chuàng)建分組的獨特的識別號。分組號碼只在屬于同一個游戲?qū)ο蟮膸讉€AOP具有相同的時間印記時才被使用。(4)如果話音和或視頻信息可被發(fā)送,則可以包括表示分組是否包含這種類型的信息的標志。(5)表示AOP是參考分組還是增量分組的標志。(6)如果AOP是遞增的,則指針指向參考AOP。這個指針可包含時間印記和參考AOP的分組數(shù)目。參考AOP可以是基本AOP或是增量AOP。(7)用于描述應當接收消息的客戶機的記錄。這可以通過列出客戶機或使用預定的客戶機組而完成。缺省是所有的客戶機接收數(shù)據(jù)。緊急域與每個接收的客戶機或客戶機組有關。這個域被使用來提醒接收機該消息是否緊急。三個緊急標題將是足夠的。可被設置在緊急區(qū)域的標志是ForbiddenAOP不應當被分布給客戶機或客戶機組Fair_Play使用公正游戲模式(見下面)
Very_Urgent超越客戶機優(yōu)先級Urgent客戶機將被提醒Normal按照客戶機優(yōu)先級而傳遞Not_Urgent最盡力地傳遞簡單的格式可以是<number of entries><clientl><urgency for client l><client2><urgency for client 2>…在列表中后面的項目超越前面的項目。該域2,all Forbidden,client_3 Urgent是指所有的客戶機被禁止接收AOP,除了在緊急模式中將得到AOP的客戶機號3以外。(8)有用負載的規(guī)模應用控制協(xié)議(ACP)被使用來在游戲客戶機、應用接入服務器單元和應用接待廳服務器(ALS)之間發(fā)送控制消息。在這里提供ACP的概況。每個ACP分組包含標題和消息體。
ACP消息可以包括以下的域(1)ACP消息類型。(2)時間印記,表示當消息被產(chǎn)生時游戲中的時間。(3)消息的規(guī)模。(4)消息體。
注意,消息源由更高的協(xié)議級別來標識。在下面,將概述可以通過使用ACP發(fā)送的消息。
從客戶機到應用接入服務器的ACP消息可包括以下項目·終結(jié)客戶機。應用接入服務器管理系統(tǒng)去除來自所有的記錄的客戶機,以及通知應用接待廳服務器(ALS)。客戶機負責通知ALS它是否正在離開游戲。ALS負責通過發(fā)送最后的得分和通知其它游戲者而最終與終結(jié)的客戶機接觸。
·預約。
·添加游戲?qū)ο蟆P碌挠螒驅(qū)ο筇栍蓱媒尤敕掌鳟a(chǎn)生,以及應用接入服務器存儲器被分配用于接收來自客戶機的對象狀態(tài)信息。
·去除游戲?qū)ο?。在所有的客戶機和遠端應用接入服務器單元已接收上一個更新后,該對象從所有的應用接入服務器存儲器中被去除。
·發(fā)送對于對象的估計的等待時間。這個請求包括對象號碼清單。應用接入服務器通過發(fā)送對于對象的估計的端到端等待時間來作出應答??蛻魴C應用使用對于等待時間隱蔽的估值。
·定義對象組。對象組對于那些否則將必須在客戶機鏈路上被發(fā)送的長的對象號碼清單給予短的名字時是有用的。Direct-Play處理分級結(jié)構(gòu)“游戲者”組,這樣,游戲API將能夠提供有用的組定義。應用接入服務器存儲對象組信息,以及作為對于對象清單的同義名來對待對象組。消息可以具有以下格式消息類型=定義對象組;><object group name(對象組名稱)><list ofobject(對象清單)>
·定義客戶機組??蛻魴C組對于那些否則將必須在AOP域中在客戶機鏈路上被發(fā)送的長的客戶機號碼清單上設置短的名字時是有用的。應用接入服務器存儲客戶機組信息,以及作為對于客戶機清單的同義名來對待客戶機組。該消息可以具有以下格式消息類型=定義客戶機組<client group name(客戶機組名稱)><listof client(客戶機清單)>
·發(fā)送時間參考。這個消息被使用來從應用接入服務器下載參考時間。
從應用接入服務器到客戶機的ACP消息可包括以下項目·緊急清單。如果緊急的未讀出的AOP正在等待,這個消息被使用來提醒客戶機。應用接入服務器掃描在AOP接收者清單上所有的具有現(xiàn)在的客戶機的未讀出的AOP。緊急清單可以具有以下格式<urgency class 1><list of object numbers(對象號碼清單)><urgency class 2><list of object numbers>等·等待時間估計。這包含按照以下格式的項目組<game object number(游戲?qū)ο筇柎a)><upstream latency><upstream latency variance><downstream latency><downstreamlatency variance>
“不知道”符號可被使用于任何域(除了第一域以外)。
·確認對象組號碼。應用接入服務器從客戶機接收“定義對象組”消息。它確認全部對象組號碼已被分配。消息體將包括<global object group number><client’s object group name>
用于分配對象號的簡單的方法將是假定N個應用接入服務器單元的總數(shù)是有效的。計數(shù)所有的有效的應用接入服務器單元。如果應用接入服務器號k請求新的對象號,它從序列{k,N+k,2N+k,3N+k,...}中分配最低的自由對象號。
·確認客戶機組號碼。應用接入服務器從客戶機接收“定義客戶機組消息”。它確認全部客戶機組號碼已被分配。消息體將包括<global client group number><client’s client group name>
用于分配全部對象組名稱的相同的算法可被使用來分配客戶機組名稱。
·時鐘同步。應用接入服務器按照下式發(fā)送時間參考<client time>=<time>+<client link latency>
客戶機具有一個用于按照一系列接收時鐘同步消息來調(diào)節(jié)本地時鐘的算法。
從一個應用接入服務器到另一個應用接入服務器的ACP消息包括·集合的預約。集合的優(yōu)先級清單顯示那些屬于發(fā)送應用接入服務器的客戶機需要看到的對象,也就是,那些其信息應當被發(fā)送的發(fā)送應用接入服務器的對象。該清單具有與簡單的客戶機優(yōu)先級清單相同的格式。它是通過添加所有的合法的本地客戶機優(yōu)先級清單和去除重復的內(nèi)容而構(gòu)建的。
·重新發(fā)送請求。這個消息具有與簡單的優(yōu)先級清單相同的格式,以及被解譯為對于重新發(fā)送列出的對象的狀態(tài)的請求。
·定義對象組。對象組定義可被分布在應用接入服務器之間。使用對于對象號碼的長的清單的完全的名稱有助于減小業(yè)務量。
·定義客戶機組??蛻魴C組定義可被分布在應用接入服務器之間。
從應用接入服務器到應用接待廳服務器的ACP消息包括
·客戶機已被終結(jié)。這個消息在客戶機自愿從游戲斷開時被發(fā)送。
·客戶機超時。如果客戶機在長的時間內(nèi)是靜默的或如果通向客戶機的鏈路被關閉,應用接入服務器可以發(fā)送一個消息給ALS。該ALS決定另一個行動,諸如從游戲中去除該客戶機。
ALS可以起到客戶機的作用。ALS可以控制保持游戲的得分的游戲?qū)ο蟆LS的端口然后被連接到作為使用“鏈路”協(xié)議(諸如TCP/IP)的客戶機的AAS。ALS因而可以使用與客戶機相同的消息。其它的ALS或AAS消息在這里被列出應用建立信息,它包括·包括標識ALS的端口號碼的網(wǎng)絡地址。
·獨特地標識游戲的URL。
·參加游戲的其它應用接入服務器單元的IP地址。
·包括用于標識客戶機的應用端口號碼的網(wǎng)絡地址的清單。
·可任選地,已列舉的游戲?qū)ο蟮那鍐?。對于每個對象,規(guī)定哪個應用接入服務器負責存儲該狀態(tài)。也可以規(guī)定誰被許可去更新該狀態(tài)。
·可任選地,要被存儲的初始游戲狀態(tài)。
·任選的規(guī)定控制策略(諸如超時)的數(shù)據(jù)。
·添加上應用接入服務器。規(guī)定新的應用接入服務器的網(wǎng)絡地址、數(shù)目和客戶機清單。
·去除應用接入服務器。規(guī)定要被去除的應用接入服務器的數(shù)目。
·添加客戶機。這包括新的客戶機的網(wǎng)絡地址;可任選地,由新的客戶機控制的新游戲?qū)ο蟮某跏紶顟B(tài)。
·去除客戶機。應用接入服務器系統(tǒng)從游戲中去除客戶機。
·已修改的客戶機狀態(tài)。這個消息改變客戶機控制游戲?qū)ο蟮臋?quán)限或把客戶機與不同的應用接入服務器相聯(lián)系。格式可以是<client number(客戶機號)><application access servernumber(應用接入服務器號)><object number(對象號)>其中對象號表示由客戶機控制的游戲?qū)ο蟆?br>
應用輸送協(xié)議(ATP)被使用來輸送應用對象分組(AOP)和應用控制協(xié)議(ACP)消息。ATP具有在有用負載中的一系列AOP和ACP消息,以及主要被使用來在應用接入服務器單元之間發(fā)送聚集的數(shù)據(jù)。應用接入服務器單元典型地通過使用協(xié)議堆棧IP/UDP/ATP通信。ATP因而處在與RTP協(xié)議相同的邏輯級別。
ATP標題包括·用于標識游戲的URL。
·最早的AOP或ACP時間印記。
·最遲的AOP或ACP時間印記。
·AOP和ACP消息的數(shù)目。
ATP通常只被使用于在應用接入服務器之間的通信,正如所顯示的。如果在客戶機與應用服務器之間的連接的帶寬是足夠大的,則它可被使用于這些連接。
傳統(tǒng)的協(xié)議(諸如TCP/IP和或UDP/IP)被使用于與應用接待廳服務器和其它應用接入服務器單元的通信。由于以下的原因,TCP/IP應當被使用來建立游戲、以及UDP/IP應當被使用來發(fā)送實時游戲數(shù)據(jù)對于游戲應用,TCP重新發(fā)送和記錄是太慢和太復雜。
TCP重新排序可能延遲對最近的更新的傳遞,以便傳遞太老的數(shù)據(jù)。對不再需要的數(shù)據(jù)的重新發(fā)送顯然是很浪費。應用接入服務器單元知道精確的優(yōu)先級,以及如果需要的話,可以請求從幾個源重新發(fā)送。
RTP可被使用來發(fā)送時間印記,但RTP被設計用于音頻和視頻流,以及不太適合于游戲數(shù)據(jù)流。然而,RTP可被使用來載送與游戲有關的音頻和視頻流。
“公正游戲模式”也可以在系統(tǒng)中被實施。在這種模式下,應用接入服務器單元對關鍵的應用信息的傳遞進行同步,這樣,這些更新被所有有關的客戶機同時接收。這個模式可被使用于各種競賽。
應用接待廳服務器在建立應用的同時判定公正游戲模式是否可提供的。如果允許公正游戲模式,則發(fā)送的客戶機針對每個發(fā)送的AOP來判定是否應當使用公正游戲傳遞。這是通過在AOP的緊急域中設置Fair_Play標志而完成的。應用接入服務器系統(tǒng)現(xiàn)在負責把AOP“同時地”傳遞到所有的客戶機。這個要求超越所有其它客戶機優(yōu)先級。
對于這一點的可能的技術解決方案是“存儲桶(bucket)同步”方法。應用接入服務器單元一致地以固定的絕對延時來更新客戶機。那些較早到達的更新必須等待一致的時隙。這個方法具有增加系統(tǒng)的總延時的缺點。公正游戲模式可替換地由游戲應用來進行處理。在這個模式下,客戶機應用通過使用每個游戲?qū)ο蟮臅r間印記把一致的延時施加到接收的游戲數(shù)據(jù)上,以便計算分組應當被延時多久從而便可得到一致的絕對延時。
圖6顯示按照本發(fā)明的應用接入服務器150的另一個實施例。除了這里所說到的,這個實施例類似于以上討論的實施例。在本實施例中,應用接入服務器的通信功能在一個或多個應用路由器152與應用服務器154之間進行劃分。應用服務器154包括應用狀態(tài)記錄155和客戶機優(yōu)先級清單161,諸如結(jié)合圖1描述的。應用路由器152通過客戶機應用編程接口API 172(這將在下面更詳細地討論)與一個或多個客戶機170通信。每個應用接入服務器150包括一個應用服務器154,后者服務于一個或多個應用路由器152。應用路由器152也與網(wǎng)絡中其它節(jié)點(諸如與在其它應用接入服務器中的應用路由器(未示出))通信。優(yōu)選地,應用服務器154和應用路由器152被實施為分開的硬件單元,以使得其每個相對于它們的特定的功能最佳化。替換地,它們可以具有已分配給它們的分開的處理器資源。特別是,應用路由器必須不中斷地運行,因為中斷會負面地影響客戶機應用的實時性能。
正如前面那樣,與客戶機相連接的應用接入服務器是該客戶機的本地應用接入服務器,以及客戶機是該應用接入服務器的本地客戶機。同樣地,服務于客戶機的應用服務器和應用路由器是客戶機的本地應用服務器和應用路由器。
應用服務器通過應用路由器接收包含基本對象的ATP分組(見下面)和來自客戶機的控制消息。在通過把基本對象放置在它的應用狀態(tài)數(shù)據(jù)庫來處理基本對象以前,應用服務器檢驗發(fā)送的客戶機是否被允許更新對象。如果不許可該客戶機更新對象,則對象被拒絕,以及發(fā)送的客戶機可能接收錯誤的消息。在處理控制消息以前,應用服務器檢驗發(fā)送的客戶機是否被允許請求所被指示的操作,以及如果沒有,則拒絕控制消息和任選地把錯誤消息發(fā)送返回給正在發(fā)送的客戶機。考慮當發(fā)送的客戶機請求刪除一個對象組時的情形。這個組可以由內(nèi)容服務器創(chuàng)建,它是特別的客戶機,負責管理游戲狀態(tài)和通過標準客戶機API與應用接入服務器進行通信。內(nèi)容服務器把鑒權(quán)規(guī)則上載給禁止客戶機刪除對象組的游戲接入服務器。在這種情形下,應用服務器將拒絕那個請求刪除對象組的控制消息。
這個合法性檢驗是通過使用鑒權(quán)規(guī)則表來執(zhí)行的,鑒權(quán)規(guī)則表表明客戶機被允許執(zhí)行的操作的種類。鑒權(quán)規(guī)則表由客戶機或控制單元通過使用初始化文件來建立。
客戶機如果被許可這樣做的話,就請求創(chuàng)建對象組。客戶機也可以添加成員、去除成員和刪除對象組。對象組的成員是對象或?qū)ο蠼M。對于對象組的任何的這樣的操作的請求由客戶機作為控制消息而被發(fā)送,這些控制消息由應用路由器廣播到參加該進程的所有的應用服務器。對象組由具有與對象識別符相同的格式的識別符標識。每個應用服務器包括對象組數(shù)據(jù)庫162,它為每個應用進程存儲在進程期間創(chuàng)建的對象組。對象組數(shù)據(jù)庫162為每個對象組至少存儲以下的域(1)對象組識別符,(2)對象組的成員名單,(3)對象組的母成員名單。對象組A的母成員是具有作為其成員的對象組A的對象組。對象數(shù)據(jù)庫被組織成為先前的實施例中的對象數(shù)據(jù)庫,但對于每個對象,有一個對于對象是母成員的對象組名單。
從客戶機和從其它應用接入服務器接收的對象應當構(gòu)成應用狀態(tài)的一部分,該狀態(tài)被從應用路由器152轉(zhuǎn)發(fā)到應用服務器154,以及被存儲在應用狀態(tài)記錄155。從客戶機和從其它應用接入服務器接收的預約信息被轉(zhuǎn)發(fā)到應用服務器154,以及被存儲在客戶機優(yōu)先級清單161中。
站址管理器174優(yōu)選地通過連接到應用路由器152控制一個或多個應用接入服務器150的功能。每個應用接入服務器包括一個或多個應用路由器152和應用服務器154。站址管理器也可使用標準協(xié)議SNMP(簡單網(wǎng)絡管理協(xié)議)來控制站址。
所以,一個站址包括一個站址管理器和被一個站址管理器174控制的多個應用接入服務器150。站址管理器174的主要任務是連接管理、客戶機連接、資源管理、應用服務器和路由器的配置、許可控制、客戶機的鑒權(quán)、對于站址的時間同步、網(wǎng)絡管理以及應用服務器和應用路由器的負載和狀態(tài)的監(jiān)管。
站址管理器可任選地接收應用輸送協(xié)議(ATP)分組,其中包含來自客戶機的控制消息。應當指出,在本實施例中的ATP不同于在以前的實施例中描述的ATP,以及將在下面描述。在處理控制消息之前,SM檢驗正在發(fā)送的客戶機是否被許可請求所指示的運行,如果不許可,則控制消息被拒絕,以及正在發(fā)送的客戶機接收任選的錯誤消息。這個合法性檢驗是通過使用鑒權(quán)規(guī)則表來執(zhí)行的,鑒權(quán)規(guī)則表表明客戶機被允許執(zhí)行的操作的種類。鑒權(quán)規(guī)則表由客戶機或接待廳接入服務器178通過使用初始化文件來建立。
一個或多個接待廳接入服務器178被提供來連接到應用接待廳服務器176、一個或多個接待廳接入服務器178。應用接待廳服務器在圖2中被討論。接待廳接入服務器178被連接到站址管理器174。接待廳接入服務器處理來自接待廳服務器的游戲進程請求,以及安排和管理游戲進程。這包括接待廳服務器的登錄和鑒權(quán)、以及計費。它也把有關游戲和接待廳服務器的信息保存到數(shù)據(jù)庫。中央控制單元(未示出)可被使用來監(jiān)管和保持應用通信系統(tǒng)。
應用通信系統(tǒng)包括一個或多個互聯(lián)的站址和接待廳接入服務器。中央控制單元(未示出)可被使用來監(jiān)管和保持應用通信系統(tǒng)。
接待廳接入服務器178可包括或被連接到數(shù)據(jù)庫180,后者包括有關在網(wǎng)絡中存在的應用接待廳服務器的信息,諸如哪些應用接待廳服務器被允許把客戶機添加到特定的允許或特定的應用接入服務器。應用接待廳服務器176可包括或被連接到數(shù)據(jù)庫182,后者包括客戶機數(shù)據(jù),諸如對于每個客戶機的鑒權(quán)資料。
在站址管理器和它控制的應用服務器之間的通信包括添加和去除進程,以及從進程中添加和去除客戶機。在站址管理器和應用路由器之間的通信包括與以上相同的部分,以及對于客戶機的登錄許可。另外,錯誤消息從應用服務器或應用路由器發(fā)送到站址管理器。
優(yōu)選地,本地應用路由器152可以處理從客戶機、其它應用路由器或網(wǎng)絡中的其它單元接收的數(shù)據(jù)流對象和基本對象??蛻魴C將基本對象的每個更新的一個副本發(fā)送到本地應用接入服務器。對象包含游戲者的化身的狀態(tài)。基本對象被轉(zhuǎn)發(fā)到進程中所有的相關的應用服務器。由應用路由器從客戶機或其它應用接入服務器單元接收的基本對象被存儲在相關的應用服務器的應用狀態(tài)記錄中。想要接收數(shù)據(jù)流對象的游戲者向本地應用服務器發(fā)布預約。應用服務器按照預約的參量發(fā)送來自本地應用狀態(tài)的一系列對象更新。數(shù)據(jù)流對象不存儲在應用服務器中?;緦ο蠛蛿?shù)據(jù)流對象將在下面更詳細地討論。應用路由器從客戶機、本地應用服務器、從其它應用路由器、以及可任選地從本地站址管理器接收應用輸送協(xié)議(ATP)分組。ATP分組通過其它網(wǎng)絡協(xié)議(諸如UDP/IP)而被輸送。其它應用路由器是遠端的(屬于遠端應用接入服務器)或是本地的(屬于與應用路由器相同的應用接入服務器)。接收的ATP分組具有三種不同的類型在應用對象分組(AOP)中的基本對象和數(shù)據(jù)流對象、在應用控制分組(ACP)中的控制數(shù)據(jù)、以及在客戶機消息分組(CMP)中的客戶機消息。ATP分組被刪除掉,或者通過單一廣播或多址傳播而傳送到正在接收的客戶機、應用路由器、本地應用路由器、或傳送到本地站址管理器。不同的路由情況被顯示在表上。那些被尋址到正在接收的應用路由器的控制分組將被終結(jié)以及不被路由。
下面的表中顯示應用路由器的路由表
數(shù)據(jù)流對象不存儲在應用服務器中??蛻魴C典型地將它們用于發(fā)送移動項目在虛擬世界中的位置。它們可以在網(wǎng)絡中非常快速地輸送。只有數(shù)據(jù)流對象的最近的版本被假定為對正在接收的客戶機是重要的。對數(shù)據(jù)流對象進行處理典型地是不可靠的,因為它們可以由用于流程控制的應用路由器被謹慎地除去。由應用路由器接收的所有的數(shù)據(jù)流對象被轉(zhuǎn)發(fā)到已預約數(shù)據(jù)流對象或預約包括數(shù)據(jù)流對象的數(shù)據(jù)流對象組的所有的本地客戶機。應用路由器152還包括對于數(shù)據(jù)流對象的優(yōu)先級或預約信息,因為這些對象不被應用服務器處理,正如下面將討論的。
典型地,想要參加應用進程(例如特定的正在進行的多游戲者進程)的客戶機通過互聯(lián)網(wǎng)而連接到應用接待廳服務器176。應用接待廳服務器提供有關正在進行的應用進程的信息,以及通常也允許客戶機創(chuàng)建新的進程以及邀請其它客戶機參加。客戶機可以發(fā)送一個請求給應用接待廳服務器176,以便創(chuàng)建、刪除、參加或離開應用進程。如果應用接待廳服務器接受任何這樣的進程控制請求,則它把請求轉(zhuǎn)發(fā)到接待廳接入服務器178。如果請求創(chuàng)建一個進程,則接待廳接入服務器178通過發(fā)出應用進程識別符來進行應答。對于諸如請求刪除進程或添加或去除客戶機那樣的請求,應用接待廳服務器176把應用進程識別符包括在一個被發(fā)送到接待廳接入服務器178的請求中。接待廳接入服務器178以調(diào)查在應用接入服務器系統(tǒng)中是否可提供匹配于被請求的運行的資源來作為對它的應答。如果資源是可提供的,則接待廳接入服務器178將執(zhí)行請求的運行。
如果請求創(chuàng)建一個進程,則接待廳接入服務器178將選擇一組服務于該進程的站址,以及發(fā)送包括進程識別符的控制消息給相關的站址管理器174,以便請求在適當?shù)膽媒尤敕掌?50上發(fā)起該進程。
如果是請求刪除一個進程,則接待廳接入服務器178將發(fā)送包括進程識別符的控制消息給正在運行該進程的站址的站址管理器174,請求刪除該進程。
如果請求客戶機參加,則應用接待廳服務器176至少把客戶機170的網(wǎng)絡地址、進程識別符和任選地站址識別符包括在控制消息中以便送到接待廳接入服務器178。網(wǎng)絡地址可以是IP地址和客戶機應用處理過程的端口號碼。接待廳接入服務器178選擇適當?shù)恼局芬约鞍芽刂葡l(fā)送到那個請求客戶機170參加游戲進程的站址的站址管理器174。這個控制消息至少包括客戶機170的網(wǎng)絡地址和進程識別符,該控制消息送到該站址的站址管理器174。站址管理器選擇在負責服務于客戶機的該單元內(nèi)的適當?shù)膽媒尤敕掌骱瓦m當?shù)膽寐酚善鳎约鞍l(fā)送控制消息給客戶機,邀請客戶機參加游戲。將要服務于客戶機的應用路由器的網(wǎng)絡地址和密碼被包括在該消息中??蛻魴C170聯(lián)系相關的應用接入服務器150,把密碼包括在控制消息中。應用接入服務器150把客戶機170包括在本地客戶機數(shù)據(jù)庫中,以及客戶機可以進行發(fā)送和接收游戲數(shù)據(jù)。
替換地,站址管理器174可以把將服務于客戶機170的應用路由器152的網(wǎng)絡地址發(fā)送到接待廳接入服務器178,接待廳接入服務器178將把網(wǎng)絡地址和密碼轉(zhuǎn)發(fā)到應用接入服務器150。應用接待廳服務器176將把網(wǎng)絡地址和密碼轉(zhuǎn)發(fā)到如上所述的、與相關的應用接入服務器相聯(lián)系的請求的客戶機170。
雖然圖6上未顯示緩存器、軟件處理等等,但本領域技術人員將會看到,可能需要它們來實施本發(fā)明的應用接入服務器。
客戶機170、應用接入服務器150和站址管理器174通過使用應用輸送協(xié)議(ATP)進行通信。ATP分組典型地作為UDP分組中的有用負載被載送,正如先前的實施例中討論的。本實施例中應用的ATP將在下面討論。應用輸送協(xié)議(ATP)包括兩個協(xié)議級別(1)復合ATP分組,(2)常規(guī)ATP分組。
復合ATP分組包括一個源標題和幾個常規(guī)的ATP分組。源標題包括以下的域(1)應用進程識別符。
(2)表示正在發(fā)送的客戶機的客戶機識別符。
(3)由協(xié)議使用的、用于被保證的傳輸?shù)目扇芜x的域,其中包括應答域和分組計數(shù)。
常規(guī)的ATP分組(在以下也稱為“ATP分組”)包含ATP標題、ATP任選的標題、任選的ATP目標標題和ATP內(nèi)容分組。
ATP標題可以包括以下域(1)類型域,它是一組標志,表示內(nèi)容分組的類型和在內(nèi)容分組中任選域的存在。內(nèi)容分組類型是控制消息、客戶機消息、基本對象或數(shù)據(jù)流對象。該消息的預期的接收者可以在類型域中被表示。
(2)表示ATP分組究竟是在可靠的還是非可靠的模式下發(fā)送的標志。
(3)表示是否存在目標標題的標志。
(4)表示ATP任選的標題的存在和內(nèi)容的一組標志。
(5)表示內(nèi)容分組的尺寸的域。
ATP任選的標題包含以下的任選的域(1)進程識別符。
(2)客戶機識別符。
(3)對象識別符。
ATP任選的標題被使用來標識內(nèi)容分組。與基本對象有關的應用有用負載可以在內(nèi)容分組中被發(fā)送。ATP任選的標題被使用來通過利用下面描述的相對尋址系統(tǒng)來標識基本對象。
ATP目標標題TH被使用來直接尋址ATP分組。接收機的ATP地址被表示在ATP目標標題中。TH中的第一位置是保持TH的尺寸的字節(jié)。TH包含一系列動態(tài)地址域(它是客戶機識別符清單,表示消息的預期的接收者,或是數(shù)據(jù)流對象密鑰清單)。密鑰是可由發(fā)送者設置的、數(shù)據(jù)流對象的屬性??蛻魴C可預約那些載送特定的密鑰的數(shù)據(jù)流對象,而不必知道想要的數(shù)據(jù)流對象的對象識別符。在像Quake那樣的游戲中,密鑰可被使用來選擇屬于不同的房間的數(shù)據(jù)流對象。數(shù)據(jù)流對象被使用來發(fā)送化身在游戲中的位置。密鑰被分配給游戲中的每個房間。正在發(fā)送數(shù)據(jù)流對象的游戲者添加相應于其中化身所位于的房間的密鑰。正在接收數(shù)據(jù)的游戲者通過相應于他們感興趣的房間的密鑰預約數(shù)據(jù)流對象。數(shù)據(jù)流對象密鑰可替換地被使用來標識一個團隊或用來對對象進行分類,例如分類為危險的。在本地應用接入服務器中的數(shù)據(jù)流對象過濾器接收游戲者對于數(shù)據(jù)流對象密鑰的預約以及確保游戲者通過請求的密鑰而得到數(shù)據(jù)流對象。
ATP內(nèi)容分組(CP)可以具有以下類型中的任一種類型(1)基本對象,(2)數(shù)據(jù)流對象,(3)控制消息(4),客戶機消息?;緦ο?、數(shù)據(jù)流對象和客戶機消息CP包括應用有用負載??刂葡ㄏ㈩愋秃拖⒘俊每刂茀f(xié)議規(guī)定消息類型域的格式和每個消息的參量。
進程識別符、客戶機識別符和對象識別符是動態(tài)地址域,正如下面描述的。客戶機組和對象組分別具有與客戶機和對象相同的識別符格式。
以下的名稱和定義被使用于本文件中。應用對象分組是包含內(nèi)容分組中的應用對象的ATP分組。應用控制協(xié)議分組是包含內(nèi)容分組中的控制消息的ATP分組。發(fā)送基本對象、數(shù)據(jù)流對象或客戶機消息的過程總是意味著發(fā)送帶有適當?shù)念愋偷膬?nèi)容分組的ATP分組??蛻魴C消息分組是包含接收機地址和內(nèi)容分組中的客戶機消息的ATP分組。
ATP用法的例子包括以下情形(A)客戶機正在發(fā)送基本對象到本地應用服務器。把對象識別符而不是客戶機識別符或進程識別符放置在ATP任選的標題中。不需要ATP目標標題。對象有用負載被放置在內(nèi)容分組中。任選的標題和動態(tài)地址域的使用意味著標題附加開銷可以小到四個字節(jié)。這是重要的,因為對象常常通過低的帶寬連接而被發(fā)送。
(B)客戶機正在發(fā)送客戶機消息給另一個客戶機。對象識別符和發(fā)送到客戶機的客戶機識別符被放置在ATP任選的標題中。不需要進程識別符。使用了包含正在接收的客戶機的客戶機識別符的對象標題。消息有用負載被放置在內(nèi)容分組中。在發(fā)送一側(cè)的應用路由器的輸入過濾器把進程識別符添加到對象標題中。在把分組轉(zhuǎn)發(fā)到正在接收的客戶機之前,在接收一側(cè)的應用路由器的輸出過濾器去除進程識別符。
ATP使用動態(tài)地址域。動態(tài)地址域是可變長度前綴碼。前綴碼是一種其中比特流中每個代碼域可以唯一地被譯碼而不用參考先前的碼字的代碼。簡單的例子是數(shù)字電碼{10,110,1110,...}。Huffman碼是對于符號的給定的統(tǒng)計分布的最佳(最短的預期長度)前綴碼。
動態(tài)地址域的另一種格式是動態(tài)尺寸整數(shù)。動態(tài)尺寸整數(shù)在計算機科學中是熟知的。動態(tài)尺寸整數(shù)被使用在無論何時小的數(shù)值是最普通的、但大的數(shù)值必須是可能的時。對于2-字節(jié)動態(tài)尺寸整數(shù),最高位說明整數(shù)的尺寸,1是指一個字節(jié),以及0是指兩個字節(jié)。對于4字節(jié)動態(tài)尺寸整數(shù),兩個最高位說明整數(shù)的尺寸,01指一個字節(jié),10指兩個字節(jié),11指3個字節(jié)以及00指4個字節(jié)。
動態(tài)地址域可以按照以下兩個方法之一被使用在第一個方法中,ATP具有用于三個不同的識別符的域(1)應用進程識別符,(2)客戶機識別符,和(3)對象識別符。應用識別符是全局唯一的,以及由中央權(quán)力機構(gòu)(諸如網(wǎng)絡管理器或接待廳接入服務器)進行分配。每個客戶機、應用路由器、應用服務器和任選地站址管理器具有客戶機識別符,以及在下面被稱為節(jié)點??蛻魴C組識別符具有客戶機識別符的格式。
客戶機識別符只在特定的應用進程中是獨特的。中央權(quán)力機構(gòu)(諸如接待廳接入服務器或中央控制單元)分配客戶機識別符。客戶機識別符只在應用進程識別符已知時才標識該節(jié)點。ATP把客戶機識別符存儲在動態(tài)域。應用進程中的每個節(jié)點被分配以帶有盡可能少的比特的客戶機識別符。常常使用的客戶機識別符可以按照Huffman編碼程序過程被分配最短的代碼。
對象識別符對于給定的進程中的給定的客戶機是唯一的??蛻魴C分配對象識別符。對象識別符只在進程識別符和客戶機識別符是已知時才標識該對象。ATP把對象識別符存儲在動態(tài)域中。每個對象被分配以帶有盡可能少的比特的對象識別符。經(jīng)常使用的對象識別符可以按照Huffman編碼程序過程被分配最短的代碼。
第二方法除了以下的不同之外,是與第一方法相同的??蛻魴C識別符包含兩個動態(tài)域。第一域是正在服務于客戶機的應用路由器的識別符。第二動態(tài)域是客戶機索引。這個索引被選擇為盡可能短,以及在給定應用進程識別符和本地應用路由器客戶機識別符是已知時,對于客戶機是唯一的。本地應用服務器的客戶機識別符替換地可被使用來代替本地應用路由器的客戶機識別符。
使用動態(tài)地址域和如上所述地相對尋址的優(yōu)點在于帶寬使用和延時被最小化。只有相關的地址域才被發(fā)送。這方面的例子是(1)一個客戶機只參加一個應用進程。含有來自客戶機的對象的ATP分組只包含對象識別符。應用進程識別符和客戶機識別符不被發(fā)送,因為應用路由器隱含地知道它。
(2)含有從本地應用服務器發(fā)送到客戶機的對象的ATP分組只需要包括對象識別符和擁有該對象的客戶機的客戶機識別符。
(3)一個創(chuàng)建新的對象的客戶機可立即分配對象識別符。完全獨特的對象識別符的集中的分配在新的對象可被創(chuàng)建之前需要與中央權(quán)力機構(gòu)通信。
客戶機組尋址按照以下方式被處理客戶機組在ATP中由客戶機識別符來標識。識別符通過使用與對于其它客戶機識別符相同的方法而被創(chuàng)建。在應用進程期間由客戶機來請求創(chuàng)建客戶機組,或者客戶機組的創(chuàng)建是作為進程的初始化的一部分來執(zhí)行。
每個ATP分組包括ATP標題中的類型域。類型域標識內(nèi)容的性質(zhì)。類型域中不同的代碼表示內(nèi)容是基本對象、數(shù)據(jù)流對象、控制分組或客戶機消息。應用路由器在某些情形下可以把類型域用于缺省路由,而不必讀出和分析地址域。基于類型域的缺省路由的例子是(1)所有的基本對象被路由到本地應用服務器。(2)帶有類型域中一個特定的代碼的控制分組被路由到本地應用服務器,以及帶有類型域中另一個特定的代碼的控制分組被路由到本地站址管理器。
圖7顯示在圖6上討論的實施例中使用的應用路由器152,以及ATP分組如何流過應用路由器。應用路由器152包含一組輸入過濾器190和192、路由器核心194,和一組輸出過濾器196,198。應用路由器對于與它通信的每個節(jié)點具有一個輸入過濾器和一個輸出過濾器。路由器核心194包括多個路由表199,用于執(zhí)行ATP分組的路由。
分組來自于三種類型的源來自同一個應用接入服務器的應用服務器,以及其它類似的單元(例如站址管理器)來自于其它應用路由器;以及來自被連接到這個應用路由器的應用客戶機。對于所有三種類型具有不同的路由表199。對于到另一個應用路由器或應用客戶機的每個連接有一個進入過濾器190、192和一個外出過濾器196、198。對于到應用服務器的連接,不需要輸入或輸出過濾器。過濾器實施把幾個應用分組組裝成輸送數(shù)據(jù)包,以及對于可靠的分組還進行重新發(fā)送。應用客戶機輸出過濾器196、198去除在客戶機線上的冗余的信息,以及對于到應用客戶機170的下行鏈路還提供負載平衡。
與輸出過濾器有關的客戶機170或任何其它被鑒權(quán)的客戶機,可以發(fā)送對于數(shù)據(jù)流對象或數(shù)據(jù)流對象密鑰的預約給正在接收的客戶機的輸出過濾器。預約作為控制消息被發(fā)送,表示預約的內(nèi)容和正在接收的客戶機的客戶機識別符。輸出過濾器將對到達應用路由器的數(shù)據(jù)流對象進行掃描。與該預約相匹配的數(shù)據(jù)流對象被發(fā)送到客戶機,這多半是發(fā)生在應用丟失率(drop rate)后。如果數(shù)據(jù)流對象的對象識別符等于在預約中給定的對象識別符、或如果由數(shù)據(jù)流對象載送的數(shù)據(jù)流對象密鑰與在預約中給定的數(shù)據(jù)流對象密鑰相匹配,則數(shù)據(jù)流對象與預約相匹配。
考慮當客戶機(它與輸出過濾器有關)已預約數(shù)據(jù)流對象和從發(fā)送的客戶機接收到數(shù)據(jù)流對象時的情形。被鑒權(quán)的該客戶機或任何其它客戶機可以設置與給定的數(shù)據(jù)流對象有關的丟失率。這個丟失率在控制消息中被發(fā)送到本地應用路由器。如果丟失率被設置為數(shù)值0≤R≤1,則輸出過濾器將謹慎地刪除一部分(R)的數(shù)據(jù)流對象。例如如果R=0.9,只有到達的分組中的10%被允許傳送到客戶機。
輸出過濾器將刪除不需要被發(fā)送到客戶機的ATP標題域。來自另一個客戶機的直接尋址的消息在標題中包含應用進程識別符和正在接收的客戶機的客戶機識別符。這個信息對于正在接收的客戶機是沒有用的,因而被應用路由器輸出過濾器刪除。
對于特定的節(jié)點(諸如客戶機)的輸入過濾器接收ATP分組,這其中包含數(shù)據(jù)流對象、基本對象、控制消息和來自節(jié)點的直接尋址客戶機消息。在把ATP分組發(fā)送到路由核心之前,執(zhí)行以下的操作(1)輸入過濾器檢驗客戶機是否被許可更新數(shù)據(jù)流對象或基本對象,或檢驗發(fā)送客戶機是否被許可把直接尋址消息發(fā)送到那個在消息中被表示的客戶機。這個合法性檢驗是通過使用鑒權(quán)表來執(zhí)行的,鑒權(quán)表表示客戶機被許可執(zhí)行哪種操作。鑒權(quán)表由客戶機或由LAS使用初始化文件通過站址管理器來建立。
(2)輸入過濾器把發(fā)送的客戶機的地址加到適當?shù)腁TP域。這個地址不在正在發(fā)送的客戶機與應用路由器之間的通信鏈路上進行發(fā)送,以便節(jié)省帶寬。
(3)應用路由器存儲客戶機組清單。這樣的清單把表示客戶機組的客戶機識別符與表示客戶機的客戶機識別符清單相聯(lián)系??蛻魴C組清單由客戶機或由LAS通過站址管理器來建立。如果在接收者地址域中帶有客戶機組的ATP分組被輸入過濾器接收,它將執(zhí)行以下的三個可替換的操作之一(A)找到屬于客戶機組的客戶機識別符清單。找到應當接收ATP分組的至少一個副本的應用路由器的數(shù)目N。做出被放置在到每個正在接收的應用路由器的輸出過濾器之中的ATP分組的N個副本。在ATP標題中可以有這樣一個標志,它表示該內(nèi)容不應當被分配給任何遠端接收機,而是只分配給本地客戶機。這個標志被設置在每個輸出分組。這是優(yōu)選的工作模式。
(4)找到屬于客戶機組的客戶機識別符清單。找到那些應當接收ATP分組的至少一個副本的應用路由器的數(shù)目N。做出被放置在到每個接收的應用路由器的輸出過濾器中的ATP分組的N個副本。在每個分組中用正在接收的客戶機清單來代替客戶機組識別符,其中該清單只包括客戶機組的成員,它們對于正在接收的應用路由器是本地客戶機。復制ATP分組,以使得在每個復制中客戶機組識別符被一個獨特的客戶機識別符所代替,這個客戶機識別符表示在與客戶機組有關的客戶機識別符清單中的一個客戶機。
(5)缺省的標題被輸入過濾器存儲起來,以便用于與輸入過濾器有關的客戶機正在發(fā)送的每個數(shù)據(jù)流對象。這個缺省的標題包含與數(shù)據(jù)流對象有關的數(shù)據(jù)流對象密鑰。如果客戶機發(fā)送一個包含數(shù)據(jù)流對象密鑰的明顯的標題,這個標題將代替被輸入過濾器存儲的缺省的標題。如果客戶機發(fā)送不帶有包含數(shù)據(jù)流對象密鑰的標題的數(shù)據(jù)流對象,則輸入過濾器在發(fā)送它到路由器核心之前把缺省標題添加到數(shù)據(jù)流對象上。這意味著正在發(fā)送的客戶機不必對于數(shù)據(jù)流對象的每個副本發(fā)送數(shù)據(jù)流對象密鑰的一個副本。在每次密鑰改變時和數(shù)據(jù)流對象第一次被發(fā)送時,發(fā)送包含數(shù)據(jù)流對象密鑰的標題就足夠了。
常規(guī)ATP分組載送這樣一個內(nèi)容,該內(nèi)容是應用對象(數(shù)據(jù)流對象或基本對象)、控制消息、或客戶機消息。復合的ATP分組包含可任選的小的復合標題以及至少一個和通常是幾個常規(guī)ATP分組。復合ATP分組作為標準輸送協(xié)議中的有用負載被發(fā)送。通常復合ATP分組作為UDP分組中的有用負載被發(fā)送。
用于收集復合ATP分組中常規(guī)ATP分組的方法對于達到在帶寬效率與低的等待時間之間的正確的平衡是很重要的。大的復合ATP分組給出高的傳輸?shù)却龝r間和低的標題附加開銷,從而給出的是有效的帶寬利用。在該系統(tǒng)的幾個模塊中把常規(guī)ATP分組聚集到復合ATP分組中。
對于在應用客戶機中用于發(fā)送到本地應用路由器的聚集,可以使用兩個替換的方法在第一方法中,聚集是在應用程序的直接控制下進行的。常規(guī)的ATP分組被發(fā)送到輸出緩存器。應用程序判決緩存器的內(nèi)容何時被放置在復合ATP分組中以及被發(fā)送到本地應用路由器。在第二方法中,聚集是通過客戶機處的自動算法執(zhí)行的。常規(guī)的ATP分組由該應用程序發(fā)送到輸出緩存器。算法判決緩存器的內(nèi)容何時被放置在復合ATP分組中以及被發(fā)送到本地應用路由器。一種適當?shù)乃惴ǖ睦邮侨绻彺嫫鞒叽绯^給定的尺寸S,則復合分組被發(fā)送。如果自從復合分組的上一次傳輸之后已超過了給定的時間間隔T,則復合分組被發(fā)送。參量S和T由應用程序設置。
對于在應用路由器中用于發(fā)送到客戶機的聚集,可以使用與第二方法相同的算法。
對于在應用路由器中用于發(fā)送到應用路由器的聚集,發(fā)送被下一個協(xié)議級別(例如UDP)許可的最大尺寸的ATP復合分組通常是效果很好的,因為在應用路由器之間的通信鏈路可被假定為非??焖?,因而常規(guī)分組很頻繁地被發(fā)送。
如果帶寬受限制或ATP分組不是頻繁地被發(fā)送,則對于應用客戶機中的聚集,建議使用與前一節(jié)的方法2中相同的算法。
尺寸(以比特計)應當被選擇為S<V*TO,其中V是在兩個應用路由器之間的鏈路的通信速度,以每秒的比特數(shù)計,并且T0是允許的傳輸?shù)却龝r間,通常為1-10ms。時間間隔T應當是在1-10ms。
客戶機可以把對于基本對象的預約作為控制消息發(fā)送到本地應用路由器。預約規(guī)定了正在接收的客戶機、預約的對象和預約參量。預約是要求應用服務器發(fā)送一系列基本對象給接收客戶機的指令。每個基本對象的一系列更新按照預約的參量以及根據(jù)基本對象的源如何更新它而進行發(fā)送。
發(fā)送預約的客戶機通常是正在接收的客戶機,但客戶機也可以代表另一個客戶機進行預約。在客戶機組中所有的客戶機然后就接收到預約的結(jié)果。
預約的目標是按照ATP協(xié)議由對象識別符標識的一組基本對象。該對象可以由以下識別符描述(1)對象識別符,(2)對象識別符的集合,(3)對象組識別符,(4)對象識別符與對象組識別符的混合的集合,(5)通用的布爾表示式,其中包括對象組和作為操作數(shù)的對象以及邏輯算子AND(與)、OR(或)和NOT(非)。正確地規(guī)定的目標表示式由應用服務器通過使用對象數(shù)據(jù)庫和對象組數(shù)據(jù)庫中的信息來進行估值。這個估值的結(jié)果常常是一個有限的基本對象集合。
預約參量可被使用來規(guī)定預約的內(nèi)容將按怎樣的頻度傳遞、傳遞多少次和傳遞多長時間。這可以被規(guī)定為應當接收對象的更新版本所采取的最大速率。如果對象的擁有者以較慢的速率更新它,則每個新的版本在它一傳遞就被接收。如果對象以快于所選擇的最大速率被更新,則這些更新將精確地以所選擇的速率被接收。某些中間的版本在這種情形下將不被接收。
內(nèi)容服務器或主客戶機可能最好地知道游戲的狀態(tài)。所以,由主客戶機代表對象客戶機預約基本對象,可能是適合的。主客戶機然后建立預約并將其提交給系統(tǒng)。本地應用接入服務器把在預約中請求的基本對象直接傳遞給對象客戶機或?qū)ο罂蛻魴C組。
預約屬于客戶機或客戶機組,預約是指一組游戲?qū)ο?。這組對象可被表示為包括對象組和對象在內(nèi)的通用布爾表示式。
應用接入服務器單元(AAS)試圖以預約頻率傳遞對象。傳遞時間是預約頻率的倒數(shù)。在發(fā)出預約時存在于數(shù)據(jù)庫中的對象將在傳遞時間內(nèi)被傳遞。如果在預約有效的同時數(shù)據(jù)庫中的對象被修改,則AAS將嘗試在傳遞時間內(nèi)傳遞它。
預約類別是一個正整數(shù)。這里描述按照預約類別傳遞數(shù)據(jù)的兩個方法。
方法1具有最高類別的預約首先被完全滿足。接著,AAS將嘗試完全滿足在次最高類別中的預約。這意味著,在較低的類別這的預約可能決不被滿足。如果帶寬不夠因而不能用于以請求的頻率去傳遞預約類別內(nèi)的對象,則AAS將變換類別內(nèi)的所有頻率的比例,以使得變成為易于傳遞給客戶機。
方法2使用三種不同的類別。不同的類別被稱為1=高,2=中等,3=低。對于類別1,對象總是以最大速率被發(fā)送到預約用戶,直至緩存器充滿和速率降低到零為止。對于類別2,對象發(fā)送到預約用戶的速率正比于緩存器負載。緩存器容量越小,速率越低。對于類別3,對象只在緩存器中沒有其它對象時才被發(fā)送到預約用戶。
在一個特定的實施方案中,應用對象分組可以包括幾個已列舉的有用負載。在這種情形下,預約具有任選的權(quán)因子參量。權(quán)因子參量是整數(shù)。權(quán)因子=n意味著在對象中的前n個有用負載被傳遞。
某些對象不是按常規(guī)時間間隔被更新,而是按精確的次數(shù)被更新。所以,有可能請求對于特定的對象的特定的更新次數(shù)。應用服務器然后把與對象有關的計數(shù)值設置為在預約中所規(guī)定的一個整數(shù)值。每次對象被傳遞時,計數(shù)值被遞減一個單位。如果計數(shù)值=0,預約被去除。
客戶機可以請求對象按請求的頻率來發(fā)送,即使以前已發(fā)送過同一個更新。這是通過設置“強制發(fā)送”FS標志而完成的。
另外,為了防止與老的預約有關的信息使網(wǎng)絡過載,應當設置預約的存活時間或持續(xù)時間。在預約存活時間到期后,預約被去除。
數(shù)據(jù)流對象通過使用以下的一種方法在應用路由器之間被分配方法(1),由一個應用路由器接收的數(shù)據(jù)流對象被復制,以及被發(fā)送到那些參加應用進程的所有其它的應用路由器。這可以通過把那些參與應用進程的所有的應用路由器與IP多址傳播地址相聯(lián)系而有效地完成。
方法(2),每個應用路由器從本地客戶機那里接收對于數(shù)據(jù)流對象和數(shù)據(jù)流對象密鑰的一組預約。所有這樣的預約被聚集到一個包括那些被本地客戶機預定的所有數(shù)據(jù)流對象和數(shù)據(jù)流對象密鑰的聯(lián)合預約,而不用作任何復制。數(shù)據(jù)流對象(但不是由本地客戶機產(chǎn)生的數(shù)據(jù)流對象密鑰)將從集中的預約中被去除。聚集的預約被發(fā)送到所有其它的應用路由器。一個可接收來自另一個應用路由器的聚集的預約、和發(fā)現(xiàn)在聚集的預約中任何數(shù)據(jù)流對象和數(shù)據(jù)流對象密鑰的來源是在本地客戶機中間的應用路由器將把該部分預約發(fā)送到預約的應用路由器。
方法(3),每個應用路由器準備一個像方法2那樣的聚集的預約組。聚集的預約被發(fā)送到一個已被站址管理器分配的母應用路由器。母應用路由器把可提供的聚集預約子組傳遞到第一母應用路由器,該子組包括被發(fā)送到已被分配的母應用路由器的、它自己的聚集的預約中的剩余部分。這假定管理系統(tǒng)已組構(gòu)了一個用于應用進程的應用路由器的分級結(jié)構(gòu)。
基本對象被分布在應用服務器之間。應用服務器總是通過它的相關的本地應用路由器之一而達到。當應用服務器發(fā)送基本對象到另一個應用服務器時,第一應用服務器總是把帶有在ATP分組的接收者地址域中的第二應用服務器的識別符的基本對象發(fā)送到一個本地應用路由器。這個應用路由器將會把對象發(fā)送到第二應用服務器的本地應用路由器。第二應用服務器的本地應用路由器把對象發(fā)送到第二應用服務器。
基本對象通過使用以下的一種方法在應用服務器之間進行分配方法(1),由一個應用服務器接收到的基本對象將被復制以及被發(fā)送到參與應用進程的所有其它的應用服務器。這可以任選地通過把參與應用進程的每個應用服務器與IP多址傳播地址相聯(lián)系而有效地完成。
方法(2),每個應用服務器從本地客戶機處接收對于基本對象的一組預約。所有這樣的預約被聚集到一個包括本地客戶機預定的所有基本對象的聯(lián)合預約,而不需要任何預約參量。由本地客戶機產(chǎn)生的基本對象從聚集的預約中被去除。聚集的預約被發(fā)送到所有其它的應用服務器。接收來自另一個應用服務器的聚集的預約、和發(fā)現(xiàn)在聚集的預約中任何基本對象的來源是處在本地客戶機之中的應用路由器將把這樣的對象立即發(fā)送到預約的應用服務器以及存儲該預約的相關的部分。相關的對象的任何進一步的更新也將立即被發(fā)送到預約的應用服務器。
方法(3),每個應用服務器準備一個像方法2那樣的聚集的預約組。聚集的預約被發(fā)送到一個已被站址管理器分配的母應用服務器。母應用路由器把可提供的聚集的預約子組傳遞到第一母應用服務器,該子組包括被發(fā)送到已被分配的母應用服務器的、它自己的聚集的預約中的其余部分。這里假定管理系統(tǒng)已經(jīng)組構(gòu)了用于應用進程的應用服務器的分級結(jié)構(gòu)。
那些需要被分配在參與進程的所有的應用接入服務器之中的控制數(shù)據(jù)包括例如客戶機參加和離開以及創(chuàng)建和破壞客戶機組。這樣的控制數(shù)據(jù)應當被多址傳播到在進程中的所有應用路由器。應用路由器將終結(jié)控制消息,或者把它轉(zhuǎn)發(fā)到本地應用服務器或站址管理器(如有需要的話)。
某些客戶機可以作為監(jiān)視者被登錄到應用接入服務器。監(jiān)視者不被許可上載應用動作,但他們可上載取決于監(jiān)視者在游戲中的觀點的預約。
按照本發(fā)明的應用接入服務器也可被使用于分級結(jié)構(gòu)系統(tǒng)。圖8顯示這樣的結(jié)構(gòu)的例子,其中較高級別的應用接入服務器201服務于其它應用接入服務器單元203、205、207,后者又服務于應用客戶機209。較高級別的應用接入服務器201從被認為是“客戶機”的下游應用接入服務器單元處接收帶有游戲數(shù)據(jù)和聚集的預約的ATP分組。較高級別的應用接入服務器單元201與其它同級應用接入服務器單元通信,以及在可能情況下與處在分級結(jié)構(gòu)中更高級別的應用接入服務器單元通信。分級結(jié)構(gòu)應用接入服務器系統(tǒng)被使用來創(chuàng)建游戲狀態(tài)的分級結(jié)構(gòu)分布的代表物,以用于涉及數(shù)目很大的客戶機的應用。
遠端應用接入服務器單元可被組織成一個多址傳播樹形結(jié)構(gòu),在這種情形中,每個多址傳播組有一個分類緩存器??梢允褂靡环N其中所有的信息被發(fā)送到所有的遠端應用接入服務器單元的簡單分配策略。在這種情況下,只有一個緩存器。
應用客戶機組可以具有提供低的等待時間接入的寬帶連接,這樣,不需要任何應用接入服務器。典型的例子是所有的游戲者處在同一個LAN中。如果游戲應用和API仍舊期望一個應用接入服務器,則有可能以軟件形式在客戶機的機器上運行應用接入服務器功能。
應用接入服務器單元也可以位于網(wǎng)絡中的任何中間的位置。這意味著,在客戶機與應用接入服務器之間的“鏈路”協(xié)議可任選地是UDP/IP或TCP/IP。替換地,運行撥號游戲業(yè)務的中央游戲服務器可以把應用接入服務器單元作為部件使用。中央站址然后包含一組調(diào)制解調(diào)器庫,后者被連接到應用接入服務器單元和應用接待廳服務器。這將是用于構(gòu)建中央站址的有效而且可縮放的結(jié)構(gòu),但它將不具有早期聚集游戲業(yè)務量的優(yōu)點。
權(quán)利要求
1.在通信網(wǎng)中使用的服務器單元,所述服務器單元包括接收裝置,用于接收來自至少第一節(jié)點的信息,每個第一節(jié)點被表示為第一客戶機單元,所述信息包括至少一部分有關分布互動應用的狀態(tài)信息,所述服務器單元的特征在于,它包括-狀態(tài)信息存儲裝置,用于存儲被包括在通過接收裝置從所述第一節(jié)點接收的信息中的應用狀態(tài)信息,-第一發(fā)送裝置,用于把來自狀態(tài)信息存儲裝置的至少一部分信息發(fā)送到網(wǎng)絡中的至少一個第二節(jié)點,-第二發(fā)送裝置,用于把被存儲在所述狀態(tài)信息存儲裝置中的至少一部分信息發(fā)送到所述至少第一節(jié)點。
2.按照權(quán)利要求1的服務器單元,還包括客戶機優(yōu)先級清單,用于存儲通過接收裝置從所述至少一個第一節(jié)點接收的優(yōu)先級信息,所述優(yōu)先級信息標識分布互動應用的對象,有關這些對象的信息是所述第一節(jié)點處的第一客戶機希望接收的,以及標識第一節(jié)點希望接收這些對象的優(yōu)選的次序,第二發(fā)送裝置用來根據(jù)從該第一節(jié)點接收的優(yōu)先級信息發(fā)送來自所述狀態(tài)信息存儲裝置的信息到所述至少一個客戶機單元。
3.按照權(quán)利要求1的服務器單元,還包括一個預約清單,用于存儲通過接收裝置從所述至少一個第一節(jié)點接收的預約信息,所述預約信息標識在第一節(jié)點中要以怎樣的頻度來接收有關某個對象的信息。
4.按照權(quán)利要求1或3的服務器單元,還包括一個預約清單,用于存儲通過接收裝置從所述至少一個第一節(jié)點接收的預約信息,所述預約信息標識在第一節(jié)點中要接收有關某個對象的信息的次數(shù)。
5.按照前述的權(quán)利要求的任一項的服務器單元,其中接收裝置用來至少從被表示為一個客戶機節(jié)點的第三節(jié)點接收有關所述第一節(jié)點的優(yōu)先級信息,以及根據(jù)所述緊急信息轉(zhuǎn)發(fā)或不轉(zhuǎn)發(fā)在所述第三節(jié)點發(fā)起的應用狀態(tài)信息到至少所述第一節(jié)點。
6.按照前述的權(quán)利要求的任一項的服務器單元,其中接收裝置用來從至少第三節(jié)點接收有關所述第一節(jié)點的優(yōu)先級信息,以及把優(yōu)先級信息通知所述第一節(jié)點。
7.按照前述的權(quán)利要求的任一項的服務器單元,其中狀態(tài)信息存儲裝置用來在預定的時間間隔后丟棄存儲的狀態(tài)信息。
8.按照前述的權(quán)利要求的任一項的服務器單元,其中發(fā)送到所述至少第一節(jié)點的信息是從至少一個其它節(jié)點接收的狀態(tài)信息。
9.按照前述的權(quán)利要求的任一項的服務器單元,其中所述狀態(tài)信息存儲裝置用來存儲有關對象的性質(zhì)的應用狀態(tài)信息,所述對象構(gòu)成應用狀態(tài)。
10.按照權(quán)利要求9的服務器單元,其中所述狀態(tài)信息存儲裝置用來存儲描述在給定的時間時的對象的狀態(tài)的參考分組或數(shù)據(jù)報。
11.按照權(quán)利要求10的服務器單元,其中所述狀態(tài)信息存儲裝置用來存儲描述自從特定的先前的分組以來對象狀態(tài)的改變的增量分組,以及標識所述先前的分組的信息。
12.按照前述的權(quán)利要求的任一項的服務器單元,還包括登錄裝置,用于登錄對于所述至少一個第一節(jié)點的鑒權(quán)信息,所述鑒權(quán)信息標識所述第一節(jié)點被許可改變的應用狀態(tài)對象。
13.按照前述的權(quán)利要求的任一項的服務器單元,包括至少一個應用路由器,它包括第一和第二發(fā)送裝置和接收裝置,應用服務器,包括信息存儲裝置。
14.按照權(quán)利要求13的服務器單元,其中應用服務器和所述至少一個應用路由器被實施為分開的硬件單元。
15.按照權(quán)利要求13的服務器單元,其中應用服務器和所述至少一個應用路由器用軟件實施,所述軟件分別與應用服務器和至少一個應用路由器有關的軟件,具有保留計算資源。
16.按照權(quán)利要求13-15的任一項的服務器單元,其中應用路由器用來接收數(shù)據(jù)流對象和將其發(fā)送到至少一個其它應用接入服務器。
17.按照權(quán)利要求14的服務器單元,其中應用路由器被安排來數(shù)據(jù)流對象廣播到通信進程中涉及的所有其它應用接入服務器。
18.按照權(quán)利要求13-17的任一項的服務器單元,其中應用路由器被安排來接收基本對象和把它轉(zhuǎn)發(fā)到至少一個應用服務器,以便貯存在應用服務器的數(shù)據(jù)庫中,以及從應用服務器接收有關基本對象的已尋址的數(shù)據(jù)分組和把它轉(zhuǎn)發(fā)到客戶機和/或至少一個其它的應用服務器。
19.按照權(quán)利要求13-18的任一項的服務器單元,其中應用路由器被安排來從應用服務器接收控制信息和把它轉(zhuǎn)發(fā)到客戶機和/或至少一個其它服務器單元和/或站址管理器。
20.在通信網(wǎng)中的終端中使用的客戶機單元,包括用于分布互動應用的應用軟件,所述客戶機單元的特征在于,它包括-至少一個輸入裝置,用于讀出來自所述終端的輸入,所述輸入構(gòu)成用于分布互動應用的至少的應用狀態(tài)信息,-發(fā)送裝置,用于把應用狀態(tài)信息發(fā)送到通信網(wǎng)中的應用接入服務器,-接收裝置,用于從所述應用接入服務器接收對于分布互動應用的至少的應用狀態(tài)信息,-用于顯示由所述接收裝置接收的所述狀態(tài)信息的裝置。
21.按照權(quán)利要求20的客戶機單元,還包括優(yōu)先級設置裝置,用于設置優(yōu)先級信息,以便規(guī)定其可提供的信息應當盡可能快地被接收的至少一個其它應用狀態(tài)對象,以及發(fā)送裝置,用于把來自所述優(yōu)先級設置裝置的所述優(yōu)先級信息發(fā)送到所述應用接入服務器。
22.按照權(quán)利要求20或21的客戶機單元,還包括優(yōu)先級數(shù)據(jù)裝置,用于設置優(yōu)先級數(shù)據(jù),以便規(guī)定應當盡可能快地從客戶機接收狀態(tài)信息的至少一個其它節(jié)點。
23.按照權(quán)利要求20-22的任一項的客戶機單元,其中用于發(fā)送應用狀態(tài)信息的所述發(fā)送裝置被用來在把分組發(fā)送到接入服務器之前安排在應用對象分組中的信息,每個分組與應用的一個對象組成部分有關,以及所述接收裝置用來從接入服務器接收的分組中提取有關應用對象的信息。
24.一種通信網(wǎng),其特征在于它包括按照權(quán)利要求1-19的任一項的至少一個服務器單元。
25.按照權(quán)利要求24的通信網(wǎng),還包括按照權(quán)利要求20到23的任一項的至少一個客戶機單元。
26.按照權(quán)利要求24-25的任一項的通信網(wǎng),還包括至少第二應用接入服務器和連接所述第一與第二應用接入服務器的連接裝置,其中通信資源可以被保留在所述連接裝置。
27.按照權(quán)利要求24-26的任一項的通信網(wǎng),還包括至少第三應用接入服務器,它與所述第一應用接入服務器通信但不與所述第二應用接入服務器通信,從而使得在網(wǎng)絡中實現(xiàn)應用接入服務器的分級結(jié)構(gòu)。
28.按照權(quán)利要求24-27的任一項的通信網(wǎng),還包括至少一個站址管理器,它被安排來控制至少一個應用接入服務器。
29.按照權(quán)利要求28的通信網(wǎng),還包括接待廳接入服務器,它被安排來構(gòu)成在至少一個應用接待廳服務器與至少一個站址管理器之間的接口。
全文摘要
借助于服務器單元可以改進在通信網(wǎng)中的實時性能,特別是在大量參加者之間的通信,該服務器單元包括接收裝置,用于接收來自至少一個客戶機單元的信息,所述信息包括至少一部分有關分布互動應用的狀態(tài)信息,所述服務器單元包括:狀態(tài)信息存儲裝置,用于存儲從至少一個所述客戶機單元接收的應用狀態(tài)信息,發(fā)送裝置,用于把從所述客戶機單元接收的狀態(tài)信息轉(zhuǎn)發(fā)到網(wǎng)絡中的至少一個其它的節(jié)點,以及用于把被存儲在所述狀態(tài)信息存儲裝置中的至少一部分信息發(fā)送到所述至少一個客戶機單元。這樣,該應用的整個狀態(tài)被保持在網(wǎng)絡中的一個或多個單元中,它去除每個客戶機存儲整個狀態(tài)的需要,由此減小每個客戶機處的存儲器和帶寬的需要。
文檔編號H04L12/56GK1350677SQ0080738
公開日2002年5月22日 申請日期2000年5月10日 優(yōu)先權(quán)日1999年5月10日
發(fā)明者T·布蘭德特, P·海格布拉德, J·榮松, M·延德爾, K·卡爾松, R·卡爾松, E·盧恩貝里, S·奧斯博尼, M·斯滕霍夫 申請人:艾利森電話股份有限公司