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