新四季網

通信網中的方法和設備的製作方法

2023-08-11 17:03:46 1

專利名稱:通信網中的方法和設備的製作方法
技術領域:
本發明涉及通信網,具體地,涉及在這種網絡中的應用的幾個用戶之間的實時通信。
相關技術描述當前正在開發例如用於多用戶的遊戲的多用戶通信應用。這樣的遊戲可以由連接到同一個LAN(區域網)或甚至更大的網絡(諸如網際網路)的不同的部分的多個用戶參加。對於這樣的應用,使用三個主要模型客戶機-伺服器同步,對等體到對等體的同步,或廣播同步。今天在網際網路上的某些多用戶遊戲涉及多達100 000個參加者,其中的幾千人可同時參加遊戲。今天使用的所有的同步方法都會造成相當長的延時。所以,今天在網際網路上進行的多用戶遊戲都是那些速度不是關鍵性問題的遊戲。例如,對於快速動作的遊戲(諸如賽車遊戲或戰鬥遊戲,其中用戶必須對在幾分之一秒內發生的事情作出反應),就不能通過使用任何標準同步方法並以可接受的質量來玩遊戲。
撥號接入網絡典型地使用客戶機-伺服器同步。在這種情形下,伺服器接收來自所有的遊戲者的數據。它必須找出每個遊戲者需要的信息以及發送這些信息。中央伺服器是系統中明顯的瓶頸。中央客戶機-伺服器遊戲可以支持2-250個遊戲者。較高的數目要涉及到更新速率低到2Hz的伺服器。中央伺服器會附加上等待時間是因為增加的輸送距離和在伺服器中的處理與安排延時。例如考慮一種情形,其中客戶機在美國西海岸而伺服器在美國東海岸。將會由客戶機-伺服器的運行模式造成約80ms的輸送等待時間和至少10ms的處理等待時間。
所以,客戶機-伺服器同步不適用於其中延時是關鍵性的、具有大量遊戲者的實時應用。
對等體到對等體同步是指所有的客戶機把應用數據直接發送到所有其它的客戶機。這種模型常常被使用於在公共網際網路上參加的遊戲。遊戲開發者提供一個免費應用接待廳伺服器,在其中使得遊戲者相遇建立遊戲以及參加正在進行的遊戲。一旦遊戲開始,它以同級模式進行,而不從遊戲開發者場地提取任何資源。
對等體到對等體同步具有明顯的可縮放性問題,因為網絡負載正比於遊戲者數目的平方;客戶機接入帶寬和CPU功率要求正比於遊戲者的數目。在每個分組中的有用負載是10-40位元組,這意味著協議附加開銷通常是大於50%。小的遊戲分組給出大的協議附加開銷。然而,通過標題壓縮方法,這個附加開銷可被大大地減小。在網際網路上的同級遊戲受到不可預測的延時,以及常常因為同步的丟失而中斷。
由此看到,對等體到對等體同步也最好地適用於小的網絡,在相當短的距離上以及在有限數目的用戶之間進行通信。
廣播同步可以被區域網(LAN)上有限數目的用戶使用,但不適合於較大的網絡。
因為受同步方法施加的限制,以當前的技術達到具有良好實時特性的多個參加者的通信是不可能的。
通過多點傳播(multicast),必須在網絡中進行發送的信息可被大大地減少,因為信息只需要發送到每個多點傳播伺服器一次,而不是發送給每個用戶一次。每個多點傳播伺服器然後複製該信息以及把它發送到所連接的用戶。可以選擇每個用戶需要接收的信息。這可以減小伺服器之間的和每個伺服器與它的用戶之間的業務量。用於遊戲的這樣的解決方案在美國專利5,841,980中被揭示。
在美國專利5,841,980中所揭示的系統中,每個用戶只具有與遊戲部分有關的信息,這個信息是與當前情形中的用戶有關的,例如,有關他所處在的地理區域的信息。如果環境改變,例如,如果用戶移動到另一個房間,則在新的環境中的重要信息將不提供給用戶。
發明目的本發明的一個目的是改進在通信網中的實時性能,特別是對於在大量參加者之間共同進行的通信。
發明概要按照本發明,這個目的是通過一種在通信網中使用的伺服器單元而達到的,所述伺服器單元包括接收裝置,用於接收來自至少第一客戶機單元的信息,所述信息包括至少一部分有關分布互動應用的狀態信息,所述伺服器單元的特徵在於,它包括-狀態信息存儲裝置,用於存儲被包括在通過接收裝置從所述第一和第二客戶機單元之一接收的信息中的應用狀態信息,-第一發送裝置,用於把從所述至少第一客戶機單元接收的狀態信息轉發到網絡中的至少另一個節點,-第二發送裝置,用於把被存儲在所述狀態信息存儲裝置中的至少一部分信息發送到所述至少一個客戶機單元。
這使得能夠把應用的整個狀態保持在網絡中的一個或多個單元中,這樣就消除了每個客戶機存儲整個狀態的需要,由此減小每個客戶機處的存儲器容量的需要以及對於與每個客戶機進行通信所需要的帶寬。如果應用狀態的每個部分被存儲在一個以上的網絡節點或客戶機中,則有利於實現備份。
按照本發明,這個目的是通過在通信網中的終端中使用的客戶機單元達到的,包括用於分布互動應用的應用軟體,該客戶機單元的特徵在於,它包括-至少一個輸入裝置,用於讀出來自所述終端的輸入,所述輸入至少構成用於分布互動應用的應用狀態信息,-發送裝置,用於把應用狀態信息發送到應用接入伺服器,-接收裝置,用於從所述應用接入伺服器至少接收用於分布互動應用的應用狀態信息,-用於顯示所述狀態信息的裝置。
按照本發明的方法和設備對於分布互動應用特別有用的,特別是涉及到實時通信的情況下。
優選地,所述伺服器裝置的接收裝置適用於-接收來自至少所述第一客戶機的預約信息,所述預約信息標識這樣一些分布互動應用對象,其中所述第一客戶機希望接收有關於這些對象的信息。
-根據從該客戶機單元接收的預約信息,發送信息到所述至少一個客戶機單元,-所述伺服器單元還包括至少一個客戶機預約表,用於存儲所述預約信息。
因此,所述客戶機單元還包括用於設置預約信息以便規定應當由其中接收可供使用的信息的分布互動應用的至少一個對象的裝置;以及用於發送所述預約信息到所述應用接入伺服器的裝置。
這減小了要被發送到每個用戶的信息量,由此,減小傳輸延時,並且也有助於每個用戶分析信息,因為只有對於特定用戶最重要的信息才顯示給該用戶。每個客戶機能夠為自己決定哪些是重要的信息。
在一個優選實施例中,接收裝置用來從至少第二客戶機接收有關所述第一客戶機的緊急信息。緊急信息可被發送到第一客戶機,或有關所述第二客戶機的應用狀態信息可以根據所述緊急信息而被轉發到至少所述第一客戶機。緊急信息也可被使用來指示某個應用狀態信息不應當被轉發到所述第一客戶機。緊急信息可被使用來改變客戶機預約。
在所述優選實施例中,客戶機單元還包括用於設置緊急數據以便規定應當儘可能快地接收來自該客戶機的狀態信息的至少一個其它客戶機的裝置。
有利地,用於發送應用狀態信息的客戶機單元的發送裝置被用來在把對象信息分組發送到伺服器單元之前安排該對象信息分組中的信息,其中與一個對象有關的分組構成了應用的一部分,以及所述接收裝置被用來從伺服器單元接收的分組中提取信息。
應用接入伺服器系統與應用無關,所以,它可以支持很寬範圍的不同的應用。
共同工作的應用接入伺服器可以在優選地提供保留的或被管理的傳輸容量的網絡上進行通信。應用的集合的帶寬要求可以由網絡管理系統來估值,以及足夠的網絡資源可被分配給正在連接應用接入伺服器單元的保留的網絡。新的應用只有在資源是可提供時才是允許的。網絡管理也控制應用接入伺服器單元的重新發送和複製政策。多點傳播和資源保留協議可被使用於各個應用接入伺服器單元之間的集合的數據流。這個系統的優點在於,在遊戲者級別上的資源保留是不必要的。如果總的統計性能是良好的話,應用客戶機通常可管理偶爾丟失的分組。使用按照本發明的應用接入伺服器將意味著遊戲客戶機決不會永久地失去同步,因為應用接入伺服器單元總是保持遊戲狀態。
附圖簡述下面將參照附圖更詳細地描述按照本發明的設備和方法,其中

圖1顯示按照本發明的網絡的實施例;
圖2顯示按照本發明的第一實施例的應用接入伺服器;圖3顯示按照本發明的應用狀態記錄的實施例;圖4顯示按照本發明的一個實施例的應用客戶機;圖5顯示按照本發明的一個實施例使用的通信堆棧;圖6顯示按照本發明的應用接入伺服器的第二實施例;圖7顯示在應用接入伺服器的第二實施例中使用的應用路由器;圖8是在本發明的實施例中使用的應用接入伺服器的分級結構的示意性代表。
實施例詳細描述圖1顯示按照本發明的通信網的一個實施例。按照本發明,網絡包括至少一個應用接入伺服器。在圖1上,顯示第一1、第二3和第三5應用接入伺服器,通過網絡7(例如保留的電信網)而互相連接。它也可以是任何其它類型的網絡,然而,那些不可能預約網絡資源的網絡(諸如網際網路)如果負載很重,則可能會提供較低的質量。多個客戶機11、12、13、14、15也被連接到網絡7。客戶機可以以技術上已知的任何方式連接到適當的應用接入伺服器1、3或5,正如下面更詳細地描述的。
客戶機可以通過用於運行分布互動應用的應用接入伺服器互相通信,其中大量參加者同時對應用(例如,實時多用戶遊戲)的狀態起作用和影響該狀態。在每個客戶機和與其相連接的應用接入伺服器之間,通常將會有低容量連接,諸如數據機連接。另一方面,在兩個應用接入伺服器之間,高的和可變的網絡容量是可提供的。所以,按照本發明的應用接入伺服器適用於這樣地處理有關應用狀態的信息,以便通過只把與該客戶機最相關的信息發送到每個客戶機從而減小發送到每個客戶機的信息量。在應用接入伺服器之間,傳輸容量通常將不是問題,所以,在應用接入伺服器之間可以傳輸更多的信息。
在網絡中也可以存在一個或多個其本身已知的種類的應用接待廳伺服器21。這些伺服器典型地包括允許客戶機登錄特種類型的業務的功能、處理收費功能等等。
按照本發明,對於應用所需要的軟體在客戶機11、12、13、14、15處找到。為了使用按照本發明的通信功能,用戶必須確保他具有所需要的應用軟體。應用軟體可以以技術上已知的任何方式被檢索,例如,從網際網路下載或從CD-ROM上安裝。如果應用需要,他也必須向應用接待廳伺服器登錄。典型地,應用接待廳伺服器21將提供一個或多個應用接入伺服器1、3、5的地址(通常是IP位址)和埠號碼,但這個地址也可以以任何其它方式得出。
用戶以技術上通用的方式,通常是通過輸入應用接入伺服器或應用接入伺服器的庫的IP位址而連接到應用接入伺服器。存在幾個算法,可用於選擇由同一個地址所識別的、網絡中多個節點中的適當的節點。應用接入伺服器接收來自用戶的信息,以及開始發送信息給用戶,正如下面更詳細地描述的。替代將客戶機登錄到應用接入伺服器,應用接待廳伺服器也可以把客戶機網絡地址發送到應用接入伺服器。
假定應用包含一組由參加者控制的對象。一個對象是由參加人控制的或在客戶機處產生的應用中的一個項目,以及不能在每個應用客戶機處被局部地重新產生,例如,受隨機數產生器或其它不能預測的計算處理過程的控制。應用對象可以是參加者直覺地認作為對象或遊戲圖形的事物,但它們也可以是背景數據結構,諸如由遊戲者控制的環境變量。應用對象由一個或幾個遊戲者控制。每個對象典型地具有一組性質和屬性,它們在應用運行的同時可以被改變。在遊戲中,這些性質可以是角色的力量和其它能力,或汽車的最大速度,以及屬性可以是由角色所集合成的項目。
從用戶處接收的信息,除了信令附加開銷以外,通常將包括三種不同類型的信息狀態信息、預約信息、控制數據和緊急信息。狀態信息是關於由用戶控制的對象的信息,它應當被分配給應用的其它用戶。預約信息列出有關由應用接入伺服器提供的不同的應用對象的客戶機優先級。例如,有關某個對象組的信息在它成為可提供時應當立即或儘可能經常地被接收,而來自另一組對象的信息不是緊急的。在缺乏帶寬的情形下,可以以可接受的延時或領先的方式設置幾個優先級級別。由客戶機產生的緊急信息可被使用來超越或改變另一個客戶機的預約,以使得其它的客戶機接受有關那些沒有被包括在它的預約中的對象的信息,或確保客戶機不接收某些信息。下面更詳細地討論所有三種類型的信息。
作為一個例子,將描述由大量用戶參加的實時遊戲的應用。這樣的遊戲今天由位於區域網(LAN)中互相很靠近的、有限數目的遊戲者參加。在廣域網上進行的這樣的遊戲在將來可以涉及典型地分布在大的遊戲區或虛擬的地理區域的幾千個遊戲者。對於現有技術的方法,這將不可能具有可接受的質量,正如上面討論的。
每個遊戲者只是立即被在虛擬遊戲區域中在他附近發生的事情影響。另一個遊戲者離得越遠,這個遊戲者的變化影響就越小。例如,一個遊戲者可能介入與第一敵方遊戲者打仗,一個友方遊戲者可能正在過來救助,以及第二敵方遊戲者可能正在嘗試製止該友方遊戲者。同時,其它的遊戲者正在做在以後的時間變成為有趣的事情,但是目前遊戲者的主要關心的問題是在戰鬥中存活下來。所以,第一敵方遊戲者的運動必須立即被顯示。該友方遊戲者和第二敵方遊戲者的運動也應當給予高的優先級,而離得較遠的地方發生的事情應當給予低的優先級。
在上面討論的例子中,顯然,遊戲者的配置將改變,以使得在另一個時間,來自其它遊戲者的信息將具有最高的優先級,這裡通常是指那些在任何給定的時間位於用戶附近的遊戲者。
應用接入伺服器可處理與應用客戶機的通信。它接收有關影響應用狀態的客戶機的行動的信息和其它信息。它也按照參加者的預約把來自其它參加者的應用狀態信息發送給參加者。每個應用客戶機設置關於要接收的應用信息的預約,以及把有關這些預約的信息發送給應用接入伺服器。應用接入伺服器存儲和更新由應用接入伺服器提供服務的客戶機的預約的記錄。每個客戶機的預約被使用來確定哪些數據要被發送給這個客戶機。客戶機也可以設置對於另一個客戶機的預約。在一個運行模式下,主客戶機可以設置所有其它的客戶機的預約。
客戶機被連接到的應用接入伺服器是客戶機的本地的應用接入伺服器,以及該客戶機被稱為該應用接入伺服器的本地客戶機。
應用接入伺服器也保持客戶機權限表。每個客戶機具有改變一個或多個遊戲對象的狀態的權利。客戶機權限表對於每個客戶機具有一個項目,在其中存儲由客戶機控制的對象的識別號。應用接入伺服器在每次從客戶機處接收對象狀態信息時檢驗合法性。遊戲狀態只在信息分組中找到的識別號與在權限表中對於客戶機的項目中的一個號碼相匹配的情況下才被更新,否則該信息被忽略。從其它應用接入伺服器單元送來的對象狀態信息不被驗證,因為發送的應用接入伺服器已檢驗合法性。
每個應用接入伺服器也與其它應用接入伺服器單元通信、發送應用狀態信息和可任選地聚集的預約給它們、以及接收來自它們的相同類型的信息。通常,要被發送到其它應用接入伺服器的信息按照適當的協議被打包以及被發送,而並不以任何方式被附加優先級或被存儲。當然,有可能根據它的本地客戶機的用戶預約來選擇要被發送到每個應用接入伺服器的信息。聚集的預約是來自屬於給定的應用接入伺服器的客戶機的所有的應用對象請求的總和。例如,應用接入伺服器可以使用至其它應用接入伺服器單元的多點傳播方式。這確保每個應用接入伺服器單元接收所有的需要的更新,以及遊戲狀態被有效地分配在應用接入伺服器單元上。
緊急數據由一個客戶機設置,如果數據對於另一個客戶機是重要的話,但另一個客戶機不知道這一情況,所以,不能設置他自己的預約。所以,緊急情況由發送的客戶機規定,以及它對於不同的接收客戶機可以是不同的。如果正在等待緊急數據,則應用接入伺服器提醒正在接收的客戶機。緊急信息也可以被使用來禁止某些信息轉發到一個或多個客戶機。
每個應用接入伺服器也存儲和更新應用狀態的全部的或部分的副本。那些被分配給通信進程的應用接入伺服器單元必須在它們之間存儲完整的應用狀態。在最簡單的情形下,每個應用接入伺服器存儲完整的應用狀態,但也有可能在應用接入伺服器之間分割信息,從而使它們帶有或不帶有重疊的信息。重要的解決方案協議特別的軟體來處理把適當的數據分布到每個應用接入伺服器。
應用接入伺服器與應用接待廳伺服器進行通信,以便建立該應用,從而在正在運行應用和處理錯誤和網絡故障的同時,添加和去除參加者。
圖2顯示按照本發明的一個實施例的應用接入伺服器以及其它的功能實體。這個應用接入伺服器可以用硬體或軟體來實施。在圖2上,只給出一般的描述。後面將討論適當的格式和協議。
應用接入伺服器通過輸入緩存器51來接收來自網絡的每個客戶機的數據,以及來自其它單元(諸如其它應用接入伺服器)的數據。對於每個客戶機,遠端應用接入伺服器和應用接待廳伺服器各有一個輸入緩存器,雖然在圖2上為了簡明起見只顯示了一個輸入緩存器。
每個本地參加者的動作作為到達與這個客戶機有關的應用接入伺服器的輸入緩存器的應用對象分組中的有用負載而被發送。這些應用對象分組可以更新由參加者控制的應用對象。應用對象分組通過一組插入規則而被寫入到應用狀態記錄。
從客戶機處接收到的數據可以包括三種類型的數據有關應用的狀態的數據(狀態數據)、有關客戶機的預約的數據(優先級數據)和其它控制信息,諸如對於時間基準、其它客戶機的狀態和來自系統的其它信息的請求。狀態數據通過應用對象分組流水線53被傳送到應用狀態記錄55。應用狀態記錄55保持對於所有的相關的對象的所有的狀態數據,諸如將在下面更詳細地討論的那樣。應用狀態記錄也保持如上所述的緊急數據。
客戶機組可以被加以規定,所述客戶機組包括在一個工作組中的參加者,或在遊戲的情形下是同一個隊中的參加者。在這種情形下,預約和或緊急數據也可以是針對用戶組規定的,而不僅僅對於單獨的用戶。
控制數據,特別是不必實時處理的數據(諸如關於添加上和去除掉應用對象的信息)從輸入緩存器51被傳送到應用接入伺服器控制單元57。在硬體實施方案中,控制單元57可以是微處理器。由控制單元處理的控制數據可以涉及創建和取消遊戲者和對象以及遊戲者組和對象組。
預約通過應用優先級控制協議消息流水線59被傳送到客戶機優先級清單(CPL)61,後者包含由應用接入伺服器支持的每個客戶機的預約。預約可以由客戶機和由應用接入伺服器控制單元來更新。控制單元可以根據從另一個客戶機處接收的緊急消息來決定更新客戶機的預約。
幾個不同的優先級策略可以通過應用接入伺服器系統而被應用客戶機採用。一種簡單的方法是應用客戶機把對象的已列舉的清單發送到CPL 61。在這種情形下,當在清單上的所有的對象被更新時,沒有在清單上的對象可以以循環方式被更新。如果在清單上的所有的對象被更新,則其餘對象可以以循環方式被更新。特定的客戶機的預約包括由該客戶機設置預約的所有對象的清單。此外,被存儲在應用接入伺服器中的清單優選地包括對於每個對象的標誌,表示是否接收到對於該對象的新的信息。標誌被使用來確定關於某個對象的信息是否需要被發送到客戶機。當信息被發送到客戶機時,標誌被復位。當由應用接入伺服器接收到對於對象的新的更新時,標誌再次被設置。
客戶機預約也可以用與每個對象有關的時間間隔來規定。客戶機然後發送一系列以下格式的請求object number(對象號碼),object priority(對象優先級),object update time interval(對象更新時間間隔),flag(標誌)。簡單的清單可以只有格式object number,objectpriority。應用接入伺服器將試圖發送更新給客戶機,以使得每個對象在每個時間間隔期間以按照在請求中的object priority域給定的優先級至少被更新一次。無窮大符號可被使用來使得某些對象完全不被更新。可以設置一個特別的「只發送新的完整的對象狀態」標誌。這個任選方案在客戶機想要接收對於具有長的時間間隔(幾秒)的對象的更新時被使用。如果想要的時間解析度長於狀態刷新時間間隔,發送增量更新是浪費的。
輸出流水線63接收來自客戶機優先級清單的預約信息,以及使用這個信息來搜索應用狀態記錄55,從而通過使用上述的適當的算法尋找要被發送到所討論到的客戶機的信息。選擇的狀態信息從應用狀態記錄55通過輸出流水線63傳送到輸出緩存器65,以及從輸出緩存器傳送到客戶機。例如,控制單元57發送控制消息給客戶機和遠端伺服器以便使時鐘與客戶機同步或提供等待時間估值給客戶機。
雖然圖2所示的應用接入伺服器被顯示為只有一個每種類型的單元,但優選地,應用接入伺服器對於應用接入伺服器與其交換信息的網絡中每個客戶機和每個其它伺服器,都包括一個輸入緩存器51、一條應用對象分組輸入流水線53、一條優先級消息流水線55、以及一條輸出處理流水線63和一個輸出緩存器65。替換地,一組客戶機或一組伺服器可共享一個輸入緩存器51、一條應用對象分組輸入流水線53、一條優先級消息流水線55、以及一條輸出處理流水線63和一個輸出緩存器65。應用接入伺服器也包括對於每個客戶機、伺服器等的一個客戶機優先級清單。
從其它應用接入伺服器接收的數據包括來自其它客戶機的對象狀態數據。它也可包括來自這些客戶機的優先級信息,該信息優選地以這樣的方式被聚集,以使得每個對象在優先級清單上只出現一次。在這種情形下,信息將被打包,這樣,對於每個應用接入伺服器有一個優先級清單,也就是,每個應用接入伺服器像一個客戶機那樣被處理。從另一個應用接入伺服器接收的信息以與從客戶機接收的信息相同的方式被對待,除非輸入和輸出緩存器51,65也必須執行一定的協議處理,正如下面將討論的。替換地,從其它應用接入伺服器沒有接收預約信息,在這種情形下,所有的狀態信息將被發送到這些應用接入伺服器。
應用接入伺服器也可以處理任選的公正遊戲(fairplay)模式,在其中所有的遊戲者同時被更新(見下面)。
如上所述,一個或多個其本身已知的種類的應用接待廳伺服器(圖1上的21)可以存在於網絡中。應用接待廳伺服器負責更新在遊戲期間的配置數據,從而提供以下的數據給應用接入伺服器·進入遊戲的、新的應用接入伺服器單元的IP位址或其它網絡地址·標識由應用接入伺服器服務的參加者的、更新的網絡地址清單。這使得新的參加者能夠參加正在進行的應用。
·更新的已列舉的遊戲對象清單。對於每個對象,規定哪個應用接入伺服器負責存儲狀態,如果狀態被分布在應用接入伺服器之間的話。也可以規定誰被許可來更新狀態。這使得能夠創建、取消和改變遊戲對象的控制。客戶機也可以創建和取消遊戲對象。
·新的完整的或局部的遊戲狀態。這使得當應用接入伺服器系統拋棄遊戲狀態時能夠在遊戲中暫停或失敗後恢復。
圖3顯示按照本發明的應用接入伺服器中使用的應用狀態記錄的例子每個應用對象的狀態被存儲在應用狀態記錄中作為一組已列舉的應用對象狀態AOS1-AOS4。每個應用對象狀態分別包含一系列應用對象分組AOP11-AOP13、AOP21-AOP24、AOP31和AOP41-AOP42。對象分組是用於對象數據的容器。從應用發送到遠端應用客戶機或伺服器的所有的數據被打包在應用對象分組中,這樣,它可以由應用接入伺服器系統來處理。
由應用接入伺服器從它連接到的所有的其它應用接入伺服器處接收的信息被使用來更新在應用狀態記錄中的應用對象信息。優選地,有兩種類型的應用對象分組(1)參考應用對象分組,包括有關對象的所有的當前的數據,以及(2)增量分組,只包括有關自從由增量分組涉及到的APO的時間印記給出的時間以來已改變的內容的信息。在AOS中的第一AOP必須是參考分組,後面跟隨一組增量分組或一個參考分組。某些遊戲只嘗試參考分組。
應用狀態記錄也保存那些需要被傳送到其它應用接入伺服器單元的應用對象分組的記錄。這可以通過使用數據結構new_client_data被完成,該數據結構可被實施為矩陣new_client_data(i,k),其中每個元素是一個標誌。參量i是客戶機號碼,以及參量k是應用接入伺服器號碼。如果應用對象分組應當被傳送到外部應用接入伺服器,則該標誌被設置,圖3顯示應用對象狀態AOS1,作為應用對象狀態可以被怎樣使用來描述應用對象的例子。這個對象可以描述在賽車遊戲中汽車的位置。汽車的位置(x1,y1)首先作為在參考應用對象分組AOP11中的遊戲有用負載在遊戲時間t1而被發送。為了節省帶寬,在遊戲時間t2位置的相對改變(Δx2,Δy2)被發送作為增量應用對象分組AOP12。增量應用對象分組AOP12指向參考應用對象分組AOP11以作為參考。在遊戲時間t3,新的增量位置在第三應用對象分組AOP13中被發送。第三應用對象分組AOP13以第二應用對象分組AOP12作為參考。在接收所有三個應用對象分組AOP11、AOP12、AOP13後,客戶機可以按照(Δx1+Δx2+Δx3,Δy1+Δy2+Δy3)計算在時間t3時汽車的位置。
當新的參考應用對象分組針對特定的對象而被接收時,應用狀態記錄可以刪除屬於對象的所有以前的分組,以及正好存儲新的參考分組。注意,遊戲有用負載的句法和語義學只能被運行在客戶機終端的遊戲應用所理解。應用應當經常發送參考分組,以便避免由丟失的數據造成的長的中斷。
編碼應用的另一個方式是讓第三應用對象分組AOP13在時間t3使用參考應用對象分組AOP11作為參考,以及只說明相對於(x1,y1)的位置改變δx,δy。這將節省應用接入伺服器存儲器,因為只要第三應用對象分組AOP13一到達,第二應用對象分組AOP12就可在時間t2被刪除。客戶機現在可以按照(x1+δx3,y1+δy3)計算在時間t3時汽車的位置。應用接入伺服器使用在應用對象分組標題中的信息,以便確定先前的應用對象分組是否滿時以及可被刪除。在圖3上,AOS2包含三個應用對象分組AOP21、AOP22、AOP23和AOP24,其中第一個應用對象分組AOP21是參考分組,以及三個後面的應用對象分組AOP22、AOP23和AOP24是增量的。最後的增量具有時間印記t8。AOS2因此描述對象2的狀態直到遊戲時間t8為止。圖3上的AOS 3隻包含一個參考應用對象分組AOP31,這對於描述對象是足夠的。
在允許新的客戶機開始向該應用廣播之前,按照優選實施例,應用接入伺服器可以估計所需要的增量帶寬,確保這個帶寬在網絡中是可提供的。用於做到這一點的方法在技術上是熟知的。如果沒有預見容量問題,則不需要這個步驟。
圖4顯示按照本發明的客戶機正在其上運行的計算機的實施例。計算機包括處理單元101,在其中運行程序,例如是按照本發明的應用程式103。處理單元還藉助於通信軟體105與應用接入伺服器(未示出)通信,以及可能與網絡中的其它單元通信。應用程式103通過網絡應用接口107與通信軟體105通信。網絡應用接口具有用於發送和接收來自應用程式的應用數據的功能。
計算機還包括屏幕109以用於顯示有關應用的數據(例如,對參加者立即感興趣的遊戲的一部分的總貌)。為了輸入數據到應用,計算機可以具有鍵盤111、滑鼠113和/或被連接到計算機的遊戲棒115,藉助於它們,遊戲中的對象可被移動,或可以輸入其它類型的改變。
客戶機應用103接收所述輸入,對其進行處理以及把它的結果顯示在屏幕109上,和/或藉助於揚聲器和或觸覺顯示裝置。它也根據所述輸入把應用狀態數據轉發到網絡應用接口107,再從後者把數據轉發到應用接入伺服器。
通過通信軟體105和網絡應用接口107,應用103也從遊戲接入伺服器接收有關其它對象的應用狀態信息,對其進行處理,以及把結果顯示在屏幕105上。
在本實施例中,網絡應用接口107包括兩個部分應用保持接口107A和應用接入接口(AAI)107B。這個解決方案被選擇來啟動對標準程序模塊(諸如微軟的DirectPlay)的使用,以便實施網絡AAI107B,正如下面討論的。
應用接入接口(AAI)107B是在客戶機終端處的軟體模塊。它是在網絡接口與網絡API 107A之間的中間模塊。應用接入接口107B接收和終結應用對象分組和控制消息,以及在應用對象分組有用負載被傳送到網絡應用接口107之前去除應用對象分組標題。它也轉譯控制消息以及把它們傳送到API 107A,或直接處理它們。AAI 107B處理對於與應用接入伺服器通信所需要的功能,起到在客戶機應用程式中不能實施的功能。所以,它對於已被開發用於按照本發明的應用接入伺服器的客戶機不一定必要。例如,AAI可以控制時鐘,使得將時間印記安排在應用對象分組上,如果客戶機沒有這方面的功能的話。
在上遊方向,AAI 107B接收來自API的消息和對象。來自客戶機的、有關應用對象的數據被變換成應用對象分組格式。應用對象分組在通信鏈路上被發送到應用接入伺服器。
AAI 107B也產生上遊應用控制協議消息,特別是應用控制協議預約消息。對於建立預約所需要的信息和其它應用控制協議信息必須通過網絡API從應用中提取,以及從應用接入伺服器的緊急名單消息中提取。
實際的客戶機(例如遊戲控制臺)可以參與幾個遊戲,或招待在同一個遊戲中的幾個遊戲者。每個實際應用客戶機可以運行幾個邏輯應用客戶機,其中邏輯應用客戶機相應於被連接到一個應用接入接口事例的一個應用事例。這個文件中的應用客戶機對應於邏輯應用客戶機。一個指向邏輯應用客戶機的網絡地址可以包含與應用接入接口的埠號相組合的物理客戶機的IP位址。
如果在開發應用程式時考慮應用接入伺服器系統,則可以達到最好的性能。用於確定表示接收數據的優選的次序的預約的功能可被包括在應用程式中。如果從運行中的情形看到接收的遊戲者不能預測消息的高的優先級,則消息可以以高的緊急度直接傳送給共同遊戲者。例如,考慮遊戲中的一種情形,其中遊戲者1正在與遊戲者2對峙。突然,遊戲者2受到遊戲者1的攻擊,而不作任何警告。遊戲者2不能設置來自遊戲者1的消息的正確的優先級,但遊戲者1可以發送高度的緊急消息給遊戲者2。
對於開發網絡API,例如,可以使用微軟DirectPlay API。然後,需要AAI來格式化輸出,諸如ACP和AOP,以及可被寫作為DirectPlay業務提供者。
通過使用微軟DirectPlay API,至少有兩種不同的提取預約的方式。注意,預約應當表明本地參加者接收有關列舉的應用對象的更新的優先級。在本文件中的應用對象是與DirectPlay註解中的「遊戲者」相同的,因為DirectPlay「遊戲者」是可以發送和接收消息的應用實體。DirectPlay「遊戲者」可以由遊戲者控制,或它可以是自主的遊戲對象。
在第一種方法中,使用從DirectPlay的接收方法中得到的信息。通過設置DPRECEIVE_FROMPLAYER標誌和適當地規定lpidFrom參量,該方法可以從由lpidFrom參量所標識的「遊戲者」中檢索第一消息。這個信息可被應用接入接口使用來作出預約。如果在DirectPlay消息隊列中沒有來自標識的「遊戲者」的消息可供使用,則合理地把被標識的應用對象放置在優先級清單的頂部。
在第二種方法中,使用DirectPlay的發送方法,在其中idTo參量標識應當接收消息的「遊戲者」或遊戲者組。可以合理地假定接收經常消息的「遊戲者」與本地遊戲者當前正在與之進行交互的應用對象有關。AAI因而能預約由idTo參量標識的「遊戲者」。
圖5顯示可以按照本發明被使用的通信堆棧的例子。一個通信堆棧被使用於在諸如圖4所示的客戶機與應用接入伺服器之間的通信。客戶機和應用接入伺服器實際上包括相同類型的堆棧。在客戶機處,堆棧的最高層與圖4的應用接入接口層10通信,以及在應用接入伺服器處,也顯示了堆棧與應用接入伺服器軟體通信。圖5也顯示在應用接入伺服器與網絡的另一個單元之間使用的通信堆棧。這另一個單元可以是另一個應用接入伺服器或是應用接待廳伺服器。所使用的通信堆棧遵從OSI模型。
客戶機通信堆棧與客戶機處的應用編程接口107通信。堆棧的最高級別是ACP/AOP層109。這個級別由圖4上的應用接入接口107處理。
包含諸如應用對象數據的信息或預約信息的ACP/AOP分組從ACP/AOP層109被傳送到鏈路層111。鏈路協議可以是例如PPP。在相反方向,ACP/AOP層109從應用接入伺服器接收的信息分組中去除標題信息,以及把應用狀態信息轉發到客戶機應用。ACP分組可以終結在AAI處。如果客戶機包括用於處理預約的功能,則預約本身可以由客戶機本身處理。
最低層是信道層113,它包括信道編碼和實際的物理連接。
應用接入伺服器實際上包括用於與客戶機通信的相同類型的堆棧信道層113』相應於客戶機的信道層。信道層113』通過鏈路層111』被連接到AOP/ACP層109』。
應用接入伺服器中的AOP/ACP層109』直接與被安排來處理AOP和ACP信息的應用接入伺服器軟體115通信。
應用接入伺服器可以被構建成帶有去向許多不同的客戶機鏈路協議的接口。理想地,應用接入伺服器應當能夠處理任何鏈路協議,包括UDP、TCP和RTP。RTP是特別為傳輸話音和視頻數據而開發的協議。
鏈路協議應當被設計成使得從應用接入伺服器到客戶機的鏈路上的協議附加開銷保持為低的。這可以通過例如使用適當的鏈路協議(其中沒有使用IP/UDP/RTP)或通過有效的IP/UDP/RTP標題壓縮來完成。鏈路層應當進一步減小等待時間,以及提供有關鏈路的性質的信息給應用接入伺服器。這樣的信息可包括預期的帶寬、誤碼率和鏈路等待時間。
適當的輸送協議(這裡稱為應用輸送協議ATP)應當被使用在鏈路上,但應用對象分組和應用控制分組信息也可以通過鏈路協議被直接發送。
對於在兩個或多個應用接入伺服器之間的通信,IP分組流從本地應用接入伺服器的輸出緩存器65(見圖2)被發送到參加正在進行的應用的一個或多個遠端應用接入伺服器單元。每個IP分組包含TCP或UDP分組,以及TCP或UDP有用負載是應用輸送協議(ATP)分組。
用於在兩個應用接入伺服器之間的通信的通信堆棧的最高協議層是類似於在客戶機通信堆棧中使用的那種的AOP/ACP層117。應用對象分組可以相當小,也就是,約40位元組或更小。為了使得在兩個應用接入伺服器之間的通信更有效,把幾個應用對象分組聚集在一個應用輸送協議(ATP)層119中。下一個層是TCP或UDP層121,以及最低層是IP層123,這兩個層121、123在本領域是熟知的。信息分組從IP層被發送到遠端應用接入伺服器單元。輸出緩存器單元(圖2上的65)保持一組分類緩存器,用於收集將成為ATP有用負載的應用對象分組。這些緩存器的結構取決於分布策略。對於每個遠端應用接入伺服器可以有一個分類緩存器。
應用對象分組可以包括一個用於列舉出應當得到更新的客戶機的域。這個域被變換成那些應當接收應用對象分組的應用接入伺服器單元的名單。應用接入伺服器保持一個表,它使得客戶機數目與應用接入伺服器數目相匹配。這意味著,所有的有關的應用接入伺服器單元最終將得到更新。應用接入伺服器單元然後把應用對象分組分配到它們的本地客戶機。簡單的可任選的工作模式是所有的應用接入伺服器單元接收所有的應用數據。
本地應用接入伺服器識別那些需要通過遠端應用接入伺服器單元被發送的應用對象分組。本地應用接入伺服器的應用狀態接收機因而被加以掃描,從而可尋找到帶有new_client_data(新客戶機數據)標誌的應用對象分組。應用對象分組標題包括接收者組域,它列出應用對象分組應當被發送到的一個或多個客戶機地址。這個接收者組域被檢驗。客戶機地址被轉換成遠端應用接入伺服器地址,以及應用對象分組的副本被放置在對應於接收者應用接入伺服器單元的分類緩存器中。該接收者組域針對每個應用對象分組副本而被更新,這樣,只有屬於接收的應用接入伺服器或應用接入伺服器組的接收者客戶機才保留。new_client_data標誌被復位。
應用對象分組包含來自遊戲應用的有用負載。應用接入伺服器系統不能讀出遊戲的內部有用負載格式。所以這樣的消息被打包在應用對象分組(AOP)中。AOP的標題可以被應用接入伺服器系統讀出。它被使用來添加那些對於及時傳遞遊戲有用負載所需要的信息。
在這裡討論的實施例中,除了標準網際網路協議(諸如IP、TCP、UDP和RTP)以外,還使用三個非標準協議·應用對象分組(AOP)是用於遊戲數據的容器。從遊戲應用發送到遠端遊戲客戶機或伺服器的所有的數據被打包在AOP中,這樣,它可以被應用接入伺服器系統處理。
·應用控制協議(ACP)被使用來發送控制消息。控制消息在應用接入伺服器單元、客戶機和應用接待廳伺服器之間進行發送。
·應用輸送協議(ATP)被使用來在應用接入伺服器單元之間和可任選地也在應用接入伺服器與客戶機之間發送聚集的遊戲數據。
應用對象分組包含來自遊戲應用的消息。應用接入伺服器系統不能讀出遊戲的內部消息格式。這樣的消息因而被打包在應用對象分組(AOP)中。AOP的標題可以被應用接入伺服器系統讀出。它被使用來添加那些對於定時傳遞遊戲有用負載所需要的信息。
應用消息可完整地規定應用對象的狀態,或它們可替換地相對於參考狀態來描述應用對象。AOP因而具有兩種類型參考分組(BP)和增量分組(IP)。
應用對象分組包含標題,其後面跟隨遊戲特定的有用負載可被使用於AOP的標題域包括(1)應用對象號碼。
(2)時間印記,用於表示當AOP被產生時遊戲中的時間。
(3)可任選的分組號碼。通過與對象號和時間印記相組合,它創建分組的獨特的識別號。分組號碼只在屬於同一個遊戲對象的幾個AOP具有相同的時間印記時才被使用。
(4)如果話音和或視頻信息可被發送,則可以包括表示分組是否包含這種類型的信息的標誌。
(5)表示AOP是參考分組還是增量分組的標誌。
(6)如果AOP是遞增的,則指針指向參考AOP。這個指針可包含時間印記和參考AOP的分組數目。參考AOP可以是基本AOP或是增量AOP。
(7)用於描述應當接收消息的客戶機的記錄。這可以通過列出客戶機或使用預定的客戶機組而完成。預設是所有的客戶機接收數據。緊急域與每個接收的客戶機或客戶機組有關。這個域被使用來提醒接收機該消息是否緊急。三個緊急標題將是足夠的。
可被設置在緊急區域的標誌是ForbiddenAOP不應當被分布給客戶機或客戶機組Fair_Play使用公正遊戲模式(見下面)
Very_Urgent超越客戶機優先級Urgent客戶機將被提醒Normal按照客戶機優先級而傳遞Not_Urgent最盡力地傳遞簡單的格式可以是number of entriesclient 1urgency for client 1client2urgency for client 2...
在列表中後面的項目超越前面的項目。該域2,all Forbidden,client_3 Urgent是指所有的客戶機被禁止接收AOP,除了在緊急模式中將得到AOP的客戶機號3以外。
(8)有用負載的規模應用控制協議(ACP)被使用來在遊戲客戶機、應用接入伺服器單元和應用接待廳伺服器(ALS)之間發送控制消息。在這裡提供ACP的概況。每個ACP分組包含標題和消息體。
ACP消息可以包括以下的域(1)ACP消息類型。
(2)時間印記,表示當消息被產生時遊戲中的時間。
(3)消息的規模。
(4)消息體。
注意,消息源由更高的協議級別來標識。在下面,將概述可以通過使用ACP發送的消息。
從客戶機到應用接入伺服器的ACP消息可包括以下項目·終結客戶機。應用接入伺服器管理系統去除來自所有的記錄的客戶機,以及通知應用接待廳伺服器(ALS)。客戶機負責通知ALS它是否正在離開遊戲。ALS負責通過發送最後的得分和通知其它遊戲者而最終與終結的客戶機接觸。
·預約。
·添加遊戲對象。新的遊戲對象號由應用接入伺服器產生,以及應用接入伺服器存儲器被分配用於接收來自客戶機的對象狀態信息。
·去除遊戲對象。在所有的客戶機和遠端應用接入伺服器單元已接收上一個更新後,該對象從所有的應用接入伺服器存儲器中被去除。
·發送對於對象的估計的等待時間。這個請求包括對象號碼清單。應用接入伺服器通過發送對於對象的估計的端到端等待時間來作出應答。客戶機應用使用對於等待時間隱蔽的估值。
·定義對象組。對象組對於那些否則將必須在客戶機鏈路上被發送的長的對象號碼清單給予短的名字時是有用的。Direct-Play處理分級結構「遊戲者」組,這樣,遊戲API將能夠提供有用的組定義。應用接入伺服器存儲對象組信息,以及作為對於對象清單的同義名來對待對象組。消息可以具有以下格式消息類型=定義對象組;object group name(對象組名稱)list ofobject(對象清單)
·定義客戶機組。客戶機組對於那些否則將必須在AOP域中在客戶機鏈路上被發送的長的客戶機號碼清單上設置短的名字時是有用的。應用接入伺服器存儲客戶機組信息,以及作為對於客戶機清單的同義名來對待客戶機組。該消息可以具有以下格式消息類型=定義客戶機組client group name(客戶機組名稱)listof client(客戶機清單)
·發送時間參考。這個消息被使用來從應用接入伺服器下載參考時間。
從應用接入伺服器到客戶機的ACP消息可包括以下項目·緊急清單。如果緊急的未讀出的AOP正在等待,這個消息被使用來提醒客戶機。應用接入伺服器掃描在AOP接收者清單上所有的具有現在的客戶機的未讀出的AOP。緊急清單可以具有以下格式urgency class 1list of object numbers(對象號碼清單)urgency class 2list of object numbers等·等待時間估計。這包含按照以下格式的項目組game object number(遊戲對象號碼)upstream latencyupstream latency variancedownstream latencydownstreamlatency variance
「不知道」符號可被使用於任何域(除了第一域以外)。
·確認對象組號碼。應用接入伺服器從客戶機接收「定義對象組」消息。它確認全部對象組號碼已被分配。消息體將包括global object group numberclient’s object group name
用於分配對象號的簡單的方法將是假定N個應用接入伺服器單元的總數是有效的。計數所有的有效的應用接入伺服器單元。如果應用接入伺服器號k請求新的對象號,它從序列{k,N+k,2N+k,3N+k,...}中分配最低的自由對象號。
·確認客戶機組號碼。應用接入伺服器從客戶機接收「定義客戶機組消息」。它確認全部客戶機組號碼已被分配。消息體將包括global client group numberclient’s client group name
用於分配全部對象組名稱的相同的算法可被使用來分配客戶機組名稱。
·時鐘同步。應用接入伺服器按照下式發送時間參考client time=time+client link latency
客戶機具有一個用於按照一系列接收時鐘同步消息來調節本地時鐘的算法。
從一個應用接入伺服器到另一個應用接入伺服器的ACP消息包括·集合的預約。集合的優先級清單顯示那些屬於發送應用接入伺服器的客戶機需要看到的對象,也就是,那些其信息應當被發送的發送應用接入伺服器的對象。該清單具有與簡單的客戶機優先級清單相同的格式。它是通過添加所有的合法的本地客戶機優先級清單和去除重複的內容而構建的。
·重新發送請求。這個消息具有與簡單的優先級清單相同的格式,以及被解譯為對於重新發送列出的對象的狀態的請求。
·定義對象組。對象組定義可被分布在應用接入伺服器之間。使用對於對象號碼的長的清單的完全的名稱有助於減小業務量。
·定義客戶機組。客戶機組定義可被分布在應用接入伺服器之間。
從應用接入伺服器到應用接待廳伺服器的ACP消息包括
·客戶機已被終結。這個消息在客戶機自願從遊戲斷開時被發送。
·客戶機超時。如果客戶機在長的時間內是靜默的或如果通向客戶機的鏈路被關閉,應用接入伺服器可以發送一個消息給ALS。該ALS決定另一個行動,諸如從遊戲中去除該客戶機。
ALS可以起到客戶機的作用。ALS可以控制保持遊戲的得分的遊戲對象。ALS的埠然後被連接到作為使用「鏈路」協議(諸如TCP/IP)的客戶機的AAS。ALS因而可以使用與客戶機相同的消息。其它的ALS或AAS消息在這裡被列出應用建立信息,它包括·包括標識ALS的埠號碼的網絡地址。
·獨特地標識遊戲的URL。
·參加遊戲的其它應用接入伺服器單元的IP位址。
·包括用於標識客戶機的應用埠號碼的網絡地址的清單。
·可任選地,已列舉的遊戲對象的清單。對於每個對象,規定哪個應用接入伺服器負責存儲該狀態。也可以規定誰被許可去更新該狀態。
·可任選地,要被存儲的初始遊戲狀態。
·任選的規定控制策略(諸如超時)的數據。
·添加上應用接入伺服器。規定新的應用接入伺服器的網絡地址、數目和客戶機清單。
·去除應用接入伺服器。規定要被去除的應用接入伺服器的數目。
·添加客戶機。這包括新的客戶機的網絡地址;可任選地,由新的客戶機控制的新遊戲對象的初始狀態。
·去除客戶機。應用接入伺服器系統從遊戲中去除客戶機。
·已修改的客戶機狀態。這個消息改變客戶機控制遊戲對象的權限或把客戶機與不同的應用接入伺服器相聯繫。格式可以是client number(客戶機號)application access servernumber(應用接入伺服器號)object number(對象號)其中對象號表示由客戶機控制的遊戲對象。
應用輸送協議(ATP)被使用來輸送應用對象分組(AOP)和應用控制協議(ACP)消息。ATP具有在有用負載中的一系列AOP和ACP消息,以及主要被使用來在應用接入伺服器單元之間發送聚集的數據。應用接入伺服器單元典型地通過使用協議堆棧IP/UDP/ATP通信。ATP因而處在與RTP協議相同的邏輯級別。
ATP標題包括·用於標識遊戲的URL。
·最早的AOP或ACP時間印記。
·最遲的AOP或ACP時間印記。
·AOP和ACP消息的數目。
ATP通常只被使用於在應用接入伺服器之間的通信,正如所顯示的。如果在客戶機與應用伺服器之間的連接的帶寬是足夠大的,則它可被使用於這些連接。
傳統的協議(諸如TCP/IP和或UDP/IP)被使用於與應用接待廳伺服器和其它應用接入伺服器單元的通信。由於以下的原因,TCP/IP應當被使用來建立遊戲、以及UDP/IP應當被使用來發送實時遊戲數據對於遊戲應用,TCP重新發送和記錄是太慢和太複雜。
TCP重新排序可能延遲對最近的更新的傳遞,以便傳遞太老的數據。對不再需要的數據的重新發送顯然是很浪費。應用接入伺服器單元知道精確的優先級,以及如果需要的話,可以請求從幾個源重新發送。
RTP可被使用來發送時間印記,但RTP被設計用於音頻和視頻流,以及不太適合於遊戲數據流。然而,RTP可被使用來載送與遊戲有關的音頻和視頻流。
「公正遊戲模式」也可以在系統中被實施。在這種模式下,應用接入伺服器單元對關鍵的應用信息的傳遞進行同步,這樣,這些更新被所有有關的客戶機同時接收。這個模式可被使用於各種競賽。
應用接待廳伺服器在建立應用的同時判定公正遊戲模式是否可提供的。如果允許公正遊戲模式,則發送的客戶機針對每個發送的AOP來判定是否應當使用公正遊戲傳遞。這是通過在AOP的緊急域中設置Fair_Play標誌而完成的。應用接入伺服器系統現在負責把AOP「同時地」傳遞到所有的客戶機。這個要求超越所有其它客戶機優先級。
對於這一點的可能的技術解決方案是「存儲桶(bucket)同步」方法。應用接入伺服器單元一致地以固定的絕對延時來更新客戶機。那些較早到達的更新必須等待一致的時隙。這個方法具有增加系統的總延時的缺點。公正遊戲模式可替換地由遊戲應用來進行處理。在這個模式下,客戶機應用通過使用每個遊戲對象的時間印記把一致的延時施加到接收的遊戲數據上,以便計算分組應當被延時多久從而便可得到一致的絕對延時。
圖6顯示按照本發明的應用接入伺服器150的另一個實施例。除了這裡所說到的,這個實施例類似於以上討論的實施例。在本實施例中,應用接入伺服器的通信功能在一個或多個應用路由器152與應用伺服器154之間進行劃分。應用伺服器154包括應用狀態記錄155和客戶機優先級清單161,諸如結合圖1描述的。應用路由器152通過客戶機應用編程接口API 172(這將在下面更詳細地討論)與一個或多個客戶機170通信。每個應用接入伺服器150包括一個應用伺服器154,後者服務於一個或多個應用路由器152。應用路由器152也與網絡中其它節點(諸如與在其它應用接入伺服器中的應用路由器(未示出))通信。優選地,應用伺服器154和應用路由器152被實施為分開的硬體單元,以使得其每個相對於它們的特定的功能最佳化。替換地,它們可以具有已分配給它們的分開的處理器資源。特別是,應用路由器必須不中斷地運行,因為中斷會負面地影響客戶機應用的實時性能。
正如前面那樣,與客戶機相連接的應用接入伺服器是該客戶機的本地應用接入伺服器,以及客戶機是該應用接入伺服器的本地客戶機。同樣地,服務於客戶機的應用伺服器和應用路由器是客戶機的本地應用伺服器和應用路由器。
應用伺服器通過應用路由器接收包含基本對象的ATP分組(見下面)和來自客戶機的控制消息。在通過把基本對象放置在它的應用狀態資料庫來處理基本對象以前,應用伺服器檢驗發送的客戶機是否被允許更新對象。如果不許可該客戶機更新對象,則對象被拒絕,以及發送的客戶機可能接收錯誤的消息。在處理控制消息以前,應用伺服器檢驗發送的客戶機是否被允許請求所被指示的操作,以及如果沒有,則拒絕控制消息和任選地把錯誤消息發送返回給正在發送的客戶機。考慮當發送的客戶機請求刪除一個對象組時的情形。這個組可以由內容伺服器創建,它是特別的客戶機,負責管理遊戲狀態和通過標準客戶機API與應用接入伺服器進行通信。內容伺服器把鑑權規則上載給禁止客戶機刪除對象組的遊戲接入伺服器。在這種情形下,應用伺服器將拒絕那個請求刪除對象組的控制消息。
這個合法性檢驗是通過使用鑑權規則表來執行的,鑑權規則表表明客戶機被允許執行的操作的種類。鑑權規則表由客戶機或控制單元通過使用初始化文件來建立。
客戶機如果被許可這樣做的話,就請求創建對象組。客戶機也可以添加成員、去除成員和刪除對象組。對象組的成員是對象或對象組。對於對象組的任何的這樣的操作的請求由客戶機作為控制消息而被發送,這些控制消息由應用路由器廣播到參加該進程的所有的應用伺服器。對象組由具有與對象識別符相同的格式的識別符標識。每個應用伺服器包括對象組資料庫162,它為每個應用進程存儲在進程期間創建的對象組。對象組資料庫162為每個對象組至少存儲以下的域(1)對象組識別符,(2)對象組的成員名單,(3)對象組的母成員名單。對象組A的母成員是具有作為其成員的對象組A的對象組。對象資料庫被組織成為先前的實施例中的對象資料庫,但對於每個對象,有一個對於對象是母成員的對象組名單。
從客戶機和從其它應用接入伺服器接收的對象應當構成應用狀態的一部分,該狀態被從應用路由器152轉發到應用伺服器154,以及被存儲在應用狀態記錄155。從客戶機和從其它應用接入伺服器接收的預約信息被轉發到應用伺服器154,以及被存儲在客戶機優先級清單161中。
站址管理器174優選地通過連接到應用路由器152控制一個或多個應用接入伺服器150的功能。每個應用接入伺服器包括一個或多個應用路由器152和應用伺服器154。站址管理器也可使用標準協議SNMP(簡單網絡管理協議)來控制站址。
所以,一個站址包括一個站址管理器和被一個站址管理器174控制的多個應用接入伺服器150。站址管理器174的主要任務是連接管理、客戶機連接、資源管理、應用伺服器和路由器的配置、許可控制、客戶機的鑑權、對於站址的時間同步、網絡管理以及應用伺服器和應用路由器的負載和狀態的監管。
站址管理器可任選地接收應用輸送協議(ATP)分組,其中包含來自客戶機的控制消息。應當指出,在本實施例中的ATP不同於在以前的實施例中描述的ATP,以及將在下面描述。在處理控制消息之前,SM檢驗正在發送的客戶機是否被許可請求所指示的運行,如果不許可,則控制消息被拒絕,以及正在發送的客戶機接收任選的錯誤消息。這個合法性檢驗是通過使用鑑權規則表來執行的,鑑權規則表表明客戶機被允許執行的操作的種類。鑑權規則表由客戶機或接待廳接入伺服器178通過使用初始化文件來建立。
一個或多個接待廳接入伺服器178被提供來連接到應用接待廳伺服器176、一個或多個接待廳接入伺服器178。應用接待廳伺服器在圖2中被討論。接待廳接入伺服器178被連接到站址管理器174。接待廳接入伺服器處理來自接待廳伺服器的遊戲進程請求,以及安排和管理遊戲進程。這包括接待廳伺服器的登錄和鑑權、以及計費。它也把有關遊戲和接待廳伺服器的信息保存到資料庫。中央控制單元(未示出)可被使用來監管和保持應用通信系統。
應用通信系統包括一個或多個互聯的站址和接待廳接入伺服器。中央控制單元(未示出)可被使用來監管和保持應用通信系統。
接待廳接入伺服器178可包括或被連接到資料庫180,後者包括有關在網絡中存在的應用接待廳伺服器的信息,諸如哪些應用接待廳伺服器被允許把客戶機添加到特定的允許或特定的應用接入伺服器。應用接待廳伺服器176可包括或被連接到資料庫182,後者包括客戶機數據,諸如對於每個客戶機的鑑權資料。
在站址管理器和它控制的應用伺服器之間的通信包括添加和去除進程,以及從進程中添加和去除客戶機。在站址管理器和應用路由器之間的通信包括與以上相同的部分,以及對於客戶機的登錄許可。另外,錯誤消息從應用伺服器或應用路由器發送到站址管理器。
優選地,本地應用路由器152可以處理從客戶機、其它應用路由器或網絡中的其它單元接收的數據流對象和基本對象。客戶機將基本對象的每個更新的一個副本發送到本地應用接入伺服器。對象包含遊戲者的化身的狀態。基本對象被轉發到進程中所有的相關的應用伺服器。由應用路由器從客戶機或其它應用接入伺服器單元接收的基本對象被存儲在相關的應用伺服器的應用狀態記錄中。想要接收數據流對象的遊戲者向本地應用伺服器發布預約。應用伺服器按照預約的參量發送來自本地應用狀態的一系列對象更新。數據流對象不存儲在應用伺服器中。基本對象和數據流對象將在下面更詳細地討論。應用路由器從客戶機、本地應用伺服器、從其它應用路由器、以及可任選地從本地站址管理器接收應用輸送協議(ATP)分組。ATP分組通過其它網絡協議(諸如UDP/IP)而被輸送。其它應用路由器是遠端的(屬於遠端應用接入伺服器)或是本地的(屬於與應用路由器相同的應用接入伺服器)。接收的ATP分組具有三種不同的類型在應用對象分組(AOP)中的基本對象和數據流對象、在應用控制分組(ACP)中的控制數據、以及在客戶機消息分組(CMP)中的客戶機消息。ATP分組被刪除掉,或者通過單一廣播或多址傳播而傳送到正在接收的客戶機、應用路由器、本地應用路由器、或傳送到本地站址管理器。不同的路由情況被顯示在表上。那些被尋址到正在接收的應用路由器的控制分組將被終結以及不被路由。
下面的表中顯示應用路由器的路由表



數據流對象不存儲在應用伺服器中。客戶機典型地將它們用於發送移動項目在虛擬世界中的位置。它們可以在網絡中非常快速地輸送。只有數據流對象的最近的版本被假定為對正在接收的客戶機是重要的。對數據流對象進行處理典型地是不可靠的,因為它們可以由用於流程控制的應用路由器被謹慎地除去。由應用路由器接收的所有的數據流對象被轉發到已預約數據流對象或預約包括數據流對象的數據流對象組的所有的本地客戶機。應用路由器152還包括對於數據流對象的優先級或預約信息,因為這些對象不被應用伺服器處理,正如下面將討論的。
典型地,想要參加應用進程(例如特定的正在進行的多遊戲者進程)的客戶機通過網際網路而連接到應用接待廳伺服器176。應用接待廳伺服器提供有關正在進行的應用進程的信息,以及通常也允許客戶機創建新的進程以及邀請其它客戶機參加。客戶機可以發送一個請求給應用接待廳伺服器176,以便創建、刪除、參加或離開應用進程。如果應用接待廳伺服器接受任何這樣的進程控制請求,則它把請求轉發到接待廳接入伺服器178。如果請求創建一個進程,則接待廳接入伺服器178通過發出應用進程識別符來進行應答。對於諸如請求刪除進程或添加或去除客戶機那樣的請求,應用接待廳伺服器176把應用進程識別符包括在一個被發送到接待廳接入伺服器178的請求中。接待廳接入伺服器178以調查在應用接入伺服器系統中是否可提供匹配於被請求的運行的資源來作為對它的應答。如果資源是可提供的,則接待廳接入伺服器178將執行請求的運行。
如果請求創建一個進程,則接待廳接入伺服器178將選擇一組服務於該進程的站址,以及發送包括進程識別符的控制消息給相關的站址管理器174,以便請求在適當的應用接入伺服器150上發起該進程。
如果是請求刪除一個進程,則接待廳接入伺服器178將發送包括進程識別符的控制消息給正在運行該進程的站址的站址管理器174,請求刪除該進程。
如果請求客戶機參加,則應用接待廳伺服器176至少把客戶機170的網絡地址、進程識別符和任選地站址識別符包括在控制消息中以便送到接待廳接入伺服器178。網絡地址可以是IP位址和客戶機應用處理過程的埠號碼。接待廳接入伺服器178選擇適當的站址以及把控制消息發送到那個請求客戶機170參加遊戲進程的站址的站址管理器174。這個控制消息至少包括客戶機170的網絡地址和進程識別符,該控制消息送到該站址的站址管理器174。站址管理器選擇在負責服務於客戶機的該單元內的適當的應用接入伺服器和適當的應用路由器,以及發送控制消息給客戶機,邀請客戶機參加遊戲。將要服務於客戶機的應用路由器的網絡地址和密碼被包括在該消息中。客戶機170聯繫相關的應用接入伺服器150,把密碼包括在控制消息中。應用接入伺服器150把客戶機170包括在本地客戶機資料庫中,以及客戶機可以進行發送和接收遊戲數據。
替換地,站址管理器174可以把將服務於客戶機170的應用路由器152的網絡地址發送到接待廳接入伺服器178,接待廳接入伺服器178將把網絡地址和密碼轉發到應用接入伺服器150。應用接待廳伺服器176將把網絡地址和密碼轉發到如上所述的、與相關的應用接入伺服器相聯繫的請求的客戶機170。
雖然圖6上未顯示緩存器、軟體處理等等,但本領域技術人員將會看到,可能需要它們來實施本發明的應用接入伺服器。
客戶機170、應用接入伺服器150和站址管理器174通過使用應用輸送協議(ATP)進行通信。ATP分組典型地作為UDP分組中的有用負載被載送,正如先前的實施例中討論的。本實施例中應用的ATP將在下面討論。應用輸送協議(ATP)包括兩個協議級別(1)複合ATP分組,(2)常規ATP分組。
複合ATP分組包括一個源標題和幾個常規的ATP分組。源標題包括以下的域(1)應用進程識別符。
(2)表示正在發送的客戶機的客戶機識別符。
(3)由協議使用的、用於被保證的傳輸的可任選的域,其中包括應答域和分組計數。
常規的ATP分組(在以下也稱為「ATP分組」)包含ATP標題、ATP任選的標題、任選的ATP目標標題和ATP內容分組。
ATP標題可以包括以下域(1)類型域,它是一組標誌,表示內容分組的類型和在內容分組中任選域的存在。內容分組類型是控制消息、客戶機消息、基本對象或數據流對象。該消息的預期的接收者可以在類型域中被表示。
(2)表示ATP分組究竟是在可靠的還是非可靠的模式下發送的標誌。
(3)表示是否存在目標標題的標誌。
(4)表示ATP任選的標題的存在和內容的一組標誌。
(5)表示內容分組的尺寸的域。
ATP任選的標題包含以下的任選的域(1)進程識別符。
(2)客戶機識別符。
(3)對象識別符。
ATP任選的標題被使用來標識內容分組。與基本對象有關的應用有用負載可以在內容分組中被發送。ATP任選的標題被使用來通過利用下面描述的相對尋址系統來標識基本對象。
ATP目標標題TH被使用來直接尋址ATP分組。接收機的ATP地址被表示在ATP目標標題中。TH中的第一位置是保持TH的尺寸的字節。TH包含一系列動態地址域(它是客戶機識別符清單,表示消息的預期的接收者,或是數據流對象密鑰清單)。密鑰是可由發送者設置的、數據流對象的屬性。客戶機可預約那些載送特定的密鑰的數據流對象,而不必知道想要的數據流對象的對象識別符。在像Quake那樣的遊戲中,密鑰可被使用來選擇屬於不同的房間的數據流對象。數據流對象被使用來發送化身在遊戲中的位置。密鑰被分配給遊戲中的每個房間。正在發送數據流對象的遊戲者添加相應於其中化身所位於的房間的密鑰。正在接收數據的遊戲者通過相應於他們感興趣的房間的密鑰預約數據流對象。數據流對象密鑰可替換地被使用來標識一個團隊或用來對對象進行分類,例如分類為危險的。在本地應用接入伺服器中的數據流對象過濾器接收遊戲者對於數據流對象密鑰的預約以及確保遊戲者通過請求的密鑰而得到數據流對象。
ATP內容分組(CP)可以具有以下類型中的任一種類型(1)基本對象,(2)數據流對象,(3)控制消息(4),客戶機消息。基本對象、數據流對象和客戶機消息CP包括應用有用負載。控制消息包括消息類型和消息參量。應用控制協議規定消息類型域的格式和每個消息的參量。
進程識別符、客戶機識別符和對象識別符是動態地址域,正如下面描述的。客戶機組和對象組分別具有與客戶機和對象相同的識別符格式。
以下的名稱和定義被使用於本文件中。應用對象分組是包含內容分組中的應用對象的ATP分組。應用控制協議分組是包含內容分組中的控制消息的ATP分組。發送基本對象、數據流對象或客戶機消息的過程總是意味著發送帶有適當的類型的內容分組的ATP分組。客戶機消息分組是包含接收機地址和內容分組中的客戶機消息的ATP分組。
ATP用法的例子包括以下情形(A)客戶機正在發送基本對象到本地應用伺服器。把對象識別符而不是客戶機識別符或進程識別符放置在ATP任選的標題中。不需要ATP目標標題。對象有用負載被放置在內容分組中。任選的標題和動態地址域的使用意味著標題附加開銷可以小到四個字節。這是重要的,因為對象常常通過低的帶寬連接而被發送。
(B)客戶機正在發送客戶機消息給另一個客戶機。對象識別符和發送到客戶機的客戶機識別符被放置在ATP任選的標題中。不需要進程識別符。使用了包含正在接收的客戶機的客戶機識別符的對象標題。消息有用負載被放置在內容分組中。在發送一側的應用路由器的輸入過濾器把進程識別符添加到對象標題中。在把分組轉發到正在接收的客戶機之前,在接收一側的應用路由器的輸出過濾器去除進程識別符。
ATP使用動態地址域。動態地址域是可變長度前綴碼。前綴碼是一種其中比特流中每個代碼域可以唯一地被解碼而不用參考先前的碼字的代碼。簡單的例子是數字電碼{10,110,1110,...}。Huffman碼是對於符號的給定的統計分布的最佳(最短的預期長度)前綴碼。
動態地址域的另一種格式是動態尺寸整數。動態尺寸整數在計算機科學中是熟知的。動態尺寸整數被使用在無論何時小的數值是最普通的、但大的數值必須是可能的時。對於2-字節動態尺寸整數,最高位說明整數的尺寸,1是指一個字節,以及0是指兩個字節。對於4位元組動態尺寸整數,兩個最高位說明整數的尺寸,01指一個字節,10指兩個字節,11指3個字節以及00指4個字節。
動態地址域可以按照以下兩個方法之一被使用在第一個方法中,ATP具有用於三個不同的識別符的域(1)應用進程識別符,(2)客戶機識別符,和(3)對象識別符。應用識別符是全局唯一的,以及由中央權力機構(諸如網絡管理器或接待廳接入伺服器)進行分配。每個客戶機、應用路由器、應用伺服器和任選地站址管理器具有客戶機識別符,以及在下面被稱為節點。客戶機組識別符具有客戶機識別符的格式。
客戶機識別符只在特定的應用進程中是獨特的。中央權力機構(諸如接待廳接入伺服器或中央控制單元)分配客戶機識別符。客戶機識別符只在應用進程識別符已知時才標識該節點。ATP把客戶機識別符存儲在動態域。應用進程中的每個節點被分配以帶有儘可能少的比特的客戶機識別符。常常使用的客戶機識別符可以按照Huffman編碼程序過程被分配最短的代碼。
對象識別符對於給定的進程中的給定的客戶機是唯一的。客戶機分配對象識別符。對象識別符只在進程識別符和客戶機識別符是已知時才標識該對象。ATP把對象識別符存儲在動態域中。每個對象被分配以帶有儘可能少的比特的對象識別符。經常使用的對象識別符可以按照Huffman編碼程序過程被分配最短的代碼。
第二方法除了以下的不同之外,是與第一方法相同的。客戶機識別符包含兩個動態域。第一域是正在服務於客戶機的應用路由器的識別符。第二動態域是客戶機索引。這個索引被選擇為儘可能短,以及在給定應用進程識別符和本地應用路由器客戶機識別符是已知時,對於客戶機是唯一的。本地應用伺服器的客戶機識別符替換地可被使用來代替本地應用路由器的客戶機識別符。
使用動態地址域和如上所述地相對尋址的優點在於帶寬使用和延時被最小化。只有相關的地址域才被發送。這方面的例子是(1)一個客戶機只參加一個應用進程。含有來自客戶機的對象的ATP分組只包含對象識別符。應用進程識別符和客戶機識別符不被發送,因為應用路由器隱含地知道它。
(2)含有從本地應用伺服器發送到客戶機的對象的ATP分組只需要包括對象識別符和擁有該對象的客戶機的客戶機識別符。
(3)一個創建新的對象的客戶機可立即分配對象識別符。完全獨特的對象識別符的集中的分配在新的對象可被創建之前需要與中央權力機構通信。
客戶機組尋址按照以下方式被處理客戶機組在ATP中由客戶機識別符來標識。識別符通過使用與對於其它客戶機識別符相同的方法而被創建。在應用進程期間由客戶機來請求創建客戶機組,或者客戶機組的創建是作為進程的初始化的一部分來執行。
每個ATP分組包括ATP標題中的類型域。類型域標識內容的性質。類型域中不同的代碼表示內容是基本對象、數據流對象、控制分組或客戶機消息。應用路由器在某些情形下可以把類型域用於預設路由,而不必讀出和分析地址域。基於類型域的預設路由的例子是(1)所有的基本對象被路由到本地應用伺服器。(2)帶有類型域中一個特定的代碼的控制分組被路由到本地應用伺服器,以及帶有類型域中另一個特定的代碼的控制分組被路由到本地站址管理器。
圖7顯示在圖6上討論的實施例中使用的應用路由器152,以及ATP分組如何流過應用路由器。應用路由器152包含一組輸入過濾器190和192、路由器核心194,和一組輸出過濾器196,198。應用路由器對於與它通信的每個節點具有一個輸入過濾器和一個輸出過濾器。路由器核心194包括多個路由表199,用於執行ATP分組的路由。
分組來自於三種類型的源來自同一個應用接入伺服器的應用伺服器,以及其它類似的單元(例如站址管理器)來自於其它應用路由器;以及來自被連接到這個應用路由器的應用客戶機。對於所有三種類型具有不同的路由表199。對於到另一個應用路由器或應用客戶機的每個連接有一個進入過濾器190、192和一個外出過濾器196、198。對於到應用伺服器的連接,不需要輸入或輸出過濾器。過濾器實施把幾個應用分組組裝成輸送數據包,以及對於可靠的分組還進行重新發送。應用客戶機輸出過濾器196、198去除在客戶機線上的冗餘的信息,以及對於到應用客戶機170的下行鏈路還提供負載平衡。
與輸出過濾器有關的客戶機170或任何其它被鑑權的客戶機,可以發送對於數據流對象或數據流對象密鑰的預約給正在接收的客戶機的輸出過濾器。預約作為控制消息被發送,表示預約的內容和正在接收的客戶機的客戶機識別符。輸出過濾器將對到達應用路由器的數據流對象進行掃描。與該預約相匹配的數據流對象被發送到客戶機,這多半是發生在應用丟失率(drop rate)後。如果數據流對象的對象識別符等於在預約中給定的對象識別符、或如果由數據流對象載送的數據流對象密鑰與在預約中給定的數據流對象密鑰相匹配,則數據流對象與預約相匹配。
考慮當客戶機(它與輸出過濾器有關)已預約數據流對象和從發送的客戶機接收到數據流對象時的情形。被鑑權的該客戶機或任何其它客戶機可以設置與給定的數據流對象有關的丟失率。這個丟失率在控制消息中被發送到本地應用路由器。如果丟失率被設置為數值0≤R≤1,則輸出過濾器將謹慎地刪除一部分(R)的數據流對象。例如如果R=0.9,只有到達的分組中的10%被允許傳送到客戶機。
輸出過濾器將刪除不需要被發送到客戶機的ATP標題域。來自另一個客戶機的直接尋址的消息在標題中包含應用進程識別符和正在接收的客戶機的客戶機識別符。這個信息對於正在接收的客戶機是沒有用的,因而被應用路由器輸出過濾器刪除。
對於特定的節點(諸如客戶機)的輸入過濾器接收ATP分組,這其中包含數據流對象、基本對象、控制消息和來自節點的直接尋址客戶機消息。在把ATP分組發送到路由核心之前,執行以下的操作(1)輸入過濾器檢驗客戶機是否被許可更新數據流對象或基本對象,或檢驗發送客戶機是否被許可把直接尋址消息發送到那個在消息中被表示的客戶機。這個合法性檢驗是通過使用鑑權表來執行的,鑑權表表示客戶機被許可執行哪種操作。鑑權表由客戶機或由LAS使用初始化文件通過站址管理器來建立。
(2)輸入過濾器把發送的客戶機的地址加到適當的ATP域。這個地址不在正在發送的客戶機與應用路由器之間的通信鏈路上進行發送,以便節省帶寬。
(3)應用路由器存儲客戶機組清單。這樣的清單把表示客戶機組的客戶機識別符與表示客戶機的客戶機識別符清單相聯繫。客戶機組清單由客戶機或由LAS通過站址管理器來建立。如果在接收者地址域中帶有客戶機組的ATP分組被輸入過濾器接收,它將執行以下的三個可替換的操作之一(A)找到屬於客戶機組的客戶機識別符清單。找到應當接收ATP分組的至少一個副本的應用路由器的數目N。做出被放置在到每個正在接收的應用路由器的輸出過濾器之中的ATP分組的N個副本。在ATP標題中可以有這樣一個標誌,它表示該內容不應當被分配給任何遠端接收機,而是只分配給本地客戶機。這個標誌被設置在每個輸出分組。這是優選的工作模式。
(4)找到屬於客戶機組的客戶機識別符清單。找到那些應當接收ATP分組的至少一個副本的應用路由器的數目N。做出被放置在到每個接收的應用路由器的輸出過濾器中的ATP分組的N個副本。在每個分組中用正在接收的客戶機清單來代替客戶機組識別符,其中該清單只包括客戶機組的成員,它們對於正在接收的應用路由器是本地客戶機。複製ATP分組,以使得在每個複製中客戶機組識別符被一個獨特的客戶機識別符所代替,這個客戶機識別符表示在與客戶機組有關的客戶機識別符清單中的一個客戶機。
(5)預設的標題被輸入過濾器存儲起來,以便用於與輸入過濾器有關的客戶機正在發送的每個數據流對象。這個預設的標題包含與數據流對象有關的數據流對象密鑰。如果客戶機發送一個包含數據流對象密鑰的明顯的標題,這個標題將代替被輸入過濾器存儲的預設的標題。如果客戶機發送不帶有包含數據流對象密鑰的標題的數據流對象,則輸入過濾器在發送它到路由器核心之前把預設標題添加到數據流對象上。這意味著正在發送的客戶機不必對於數據流對象的每個副本發送數據流對象密鑰的一個副本。在每次密鑰改變時和數據流對象第一次被發送時,發送包含數據流對象密鑰的標題就足夠了。
常規ATP分組載送這樣一個內容,該內容是應用對象(數據流對象或基本對象)、控制消息、或客戶機消息。複合的ATP分組包含可任選的小的複合標題以及至少一個和通常是幾個常規ATP分組。複合ATP分組作為標準輸送協議中的有用負載被發送。通常複合ATP分組作為UDP分組中的有用負載被發送。
用於收集複合ATP分組中常規ATP分組的方法對於達到在帶寬效率與低的等待時間之間的正確的平衡是很重要的。大的複合ATP分組給出高的傳輸等待時間和低的標題附加開銷,從而給出的是有效的帶寬利用。在該系統的幾個模塊中把常規ATP分組聚集到複合ATP分組中。
對於在應用客戶機中用於發送到本地應用路由器的聚集,可以使用兩個替換的方法在第一方法中,聚集是在應用程式的直接控制下進行的。常規的ATP分組被發送到輸出緩存器。應用程式判決緩存器的內容何時被放置在複合ATP分組中以及被發送到本地應用路由器。在第二方法中,聚集是通過客戶機處的自動算法執行的。常規的ATP分組由該應用程式發送到輸出緩存器。算法判決緩存器的內容何時被放置在複合ATP分組中以及被發送到本地應用路由器。一種適當的算法的例子是如果緩存器尺寸超過給定的尺寸S,則複合分組被發送。如果自從複合分組的上一次傳輸之後已超過了給定的時間間隔T,則複合分組被發送。參量S和T由應用程式設置。
對於在應用路由器中用於發送到客戶機的聚集,可以使用與第二方法相同的算法。
對於在應用路由器中用於發送到應用路由器的聚集,發送被下一個協議級別(例如UDP)許可的最大尺寸的ATP複合分組通常是效果很好的,因為在應用路由器之間的通信鏈路可被假定為非常快速,因而常規分組很頻繁地被發送。
如果帶寬受限制或ATP分組不是頻繁地被發送,則對於應用客戶機中的聚集,建議使用與前一節的方法2中相同的算法。
尺寸(以比特計)應當被選擇為S<V*TO,其中V是在兩個應用路由器之間的鏈路的通信速度,以每秒的比特數計,並且TO是允許的傳輸等待時間,通常為1-10ms。時間間隔T應當是在1-10ms。
客戶機可以把對於基本對象的預約作為控制消息發送到本地應用路由器。預約規定了正在接收的客戶機、預約的對象和預約參量。預約是要求應用伺服器發送一系列基本對象給接收客戶機的指令。每個基本對象的一系列更新按照預約的參量以及根據基本對象的源如何更新它而進行發送。
發送預約的客戶機通常是正在接收的客戶機,但客戶機也可以代表另一個客戶機進行預約。在客戶機組中所有的客戶機然後就接收到預約的結果。
預約的目標是按照ATP協議由對象識別符標識的一組基本對象。該對象可以由以下識別符描述(1)對象識別符,(2)對象識別符的集合,(3)對象組識別符,(4)對象識別符與對象組識別符的混合的集合,(5)通用的布爾表示式,其中包括對象組和作為操作數的對象以及邏輯算子AND(與)、OR(或)和NOT(非)。正確地規定的目標表示式由應用伺服器通過使用對象資料庫和對象組資料庫中的信息來進行估值。這個估值的結果常常是一個有限的基本對象集合。
預約參量可被使用來規定預約的內容將按怎樣的頻度傳遞、傳遞多少次和傳遞多長時間。這可以被規定為應當接收對象的更新版本所採取的最大速率。如果對象的擁有者以較慢的速率更新它,則每個新的版本在它一傳遞就被接收。如果對象以快於所選擇的最大速率被更新,則這些更新將精確地以所選擇的速率被接收。某些中間的版本在這種情形下將不被接收。
內容伺服器或主客戶機可能最好地知道遊戲的狀態。所以,由主客戶機代表對象客戶機預約基本對象,可能是適合的。主客戶機然後建立預約並將其提交給系統。本地應用接入伺服器把在預約中請求的基本對象直接傳遞給對象客戶機或對象客戶機組。
預約屬於客戶機或客戶機組,預約是指一組遊戲對象。這組對象可被表示為包括對象組和對象在內的通用布爾表示式。
應用接入伺服器單元(AAS)試圖以預約頻率傳遞對象。傳遞時間是預約頻率的倒數。在發出預約時存在於資料庫中的對象將在傳遞時間內被傳遞。如果在預約有效的同時資料庫中的對象被修改,則AAS將嘗試在傳遞時間內傳遞它。
預約類別是一個正整數。這裡描述按照預約類別傳遞數據的兩個方法。
方法1具有最高類別的預約首先被完全滿足。接著,AAS將嘗試完全滿足在次最高類別中的預約。這意味著,在較低的類別這的預約可能決不被滿足。如果帶寬不夠因而不能用於以請求的頻率去傳遞預約類別內的對象,則AAS將變換類別內的所有頻率的比例,以使得變成為易於傳遞給客戶機。
方法2使用三種不同的類別。不同的類別被稱為1=高,2=中等,3=低。對於類別1,對象總是以最大速率被發送到預約用戶,直至緩存器充滿和速率降低到零為止。對於類別2,對象發送到預約用戶的速率正比於緩存器負載。緩存器容量越小,速率越低。對於類別3,對象只在緩存器中沒有其它對象時才被發送到預約用戶。
在一個特定的實施方案中,應用對象分組可以包括幾個已列舉的有用負載。在這種情形下,預約具有任選的權因子參量。權因子參量是整數。權因子=n意味著在對象中的前n個有用負載被傳遞。
某些對象不是按常規時間間隔被更新,而是按精確的次數被更新。所以,有可能請求對於特定的對象的特定的更新次數。應用伺服器然後把與對象有關的計數值設置為在預約中所規定的一個整數值。每次對象被傳遞時,計數值被遞減一個單位。如果計數值=0,預約被去除。
客戶機可以請求對象按請求的頻率來發送,即使以前已發送過同一個更新。這是通過設置「強制發送」FS標誌而完成的。
另外,為了防止與老的預約有關的信息使網絡過載,應當設置預約的存活時間或持續時間。在預約存活時間到期後,預約被去除。
數據流對象通過使用以下的一種方法在應用路由器之間被分配方法(1),由一個應用路由器接收的數據流對象被複製,以及被發送到那些參加應用進程的所有其它的應用路由器。這可以通過把那些參與應用進程的所有的應用路由器與IP多址傳播地址相聯繫而有效地完成。
方法(2),每個應用路由器從本地客戶機那裡接收對於數據流對象和數據流對象密鑰的一組預約。所有這樣的預約被聚集到一個包括那些被本地客戶機預定的所有數據流對象和數據流對象密鑰的聯合預約,而不用作任何複製。數據流對象(但不是由本地客戶機產生的數據流對象密鑰)將從集中的預約中被去除。聚集的預約被發送到所有其它的應用路由器。一個可接收來自另一個應用路由器的聚集的預約、和發現在聚集的預約中任何數據流對象和數據流對象密鑰的來源是在本地客戶機中間的應用路由器將把該部分預約發送到預約的應用路由器。
方法(3),每個應用路由器準備一個像方法2那樣的聚集的預約組。聚集的預約被發送到一個已被站址管理器分配的母應用路由器。母應用路由器把可提供的聚集預約子組傳遞到第一母應用路由器,該子組包括被發送到已被分配的母應用路由器的、它自己的聚集的預約中的剩餘部分。這假定管理系統已組構了一個用於應用進程的應用路由器的分級結構。
基本對象被分布在應用伺服器之間。應用伺服器總是通過它的相關的本地應用路由器之一而達到。當應用伺服器發送基本對象到另一個應用伺服器時,第一應用伺服器總是把帶有在ATP分組的接收者地址域中的第二應用伺服器的識別符的基本對象發送到一個本地應用路由器。這個應用路由器將會把對象發送到第二應用伺服器的本地應用路由器。第二應用伺服器的本地應用路由器把對象發送到第二應用伺服器。
基本對象通過使用以下的一種方法在應用伺服器之間進行分配方法(1),由一個應用伺服器接收到的基本對象將被複製以及被發送到參與應用進程的所有其它的應用伺服器。這可以任選地通過把參與應用進程的每個應用伺服器與IP多址傳播地址相聯繫而有效地完成。
方法(2),每個應用伺服器從本地客戶機處接收對於基本對象的一組預約。所有這樣的預約被聚集到一個包括本地客戶機預定的所有基本對象的聯合預約,而不需要任何預約參量。由本地客戶機產生的基本對象從聚集的預約中被去除。聚集的預約被發送到所有其它的應用伺服器。接收來自另一個應用伺服器的聚集的預約、和發現在聚集的預約中任何基本對象的來源是處在本地客戶機之中的應用路由器將把這樣的對象立即發送到預約的應用伺服器以及存儲該預約的相關的部分。相關的對象的任何進一步的更新也將立即被發送到預約的應用伺服器。
方法(3),每個應用伺服器準備一個像方法2那樣的聚集的預約組。聚集的預約被發送到一個已被站址管理器分配的母應用伺服器。母應用路由器把可提供的聚集的預約子組傳遞到第一母應用伺服器,該子組包括被發送到已被分配的母應用伺服器的、它自己的聚集的預約中的其餘部分。這裡假定管理系統已經組構了用於應用進程的應用伺服器的分級結構。
那些需要被分配在參與進程的所有的應用接入伺服器之中的控制數據包括例如客戶機參加和離開以及創建和破壞客戶機組。這樣的控制數據應當被多址傳播到在進程中的所有應用路由器。應用路由器將終結控制消息,或者把它轉發到本地應用伺服器或站址管理器(如有需要的話)。
某些客戶機可以作為監視者被登錄到應用接入伺服器。監視者不被許可上載應用動作,但他們可上載取決於監視者在遊戲中的觀點的預約。
按照本發明的應用接入伺服器也可被使用於分級結構系統。圖8顯示這樣的結構的例子,其中較高級別的應用接入伺服器201服務於其它應用接入伺服器單元203、205、207,後者又服務於應用客戶機209。較高級別的應用接入伺服器201從被認為是「客戶機」的下遊應用接入伺服器單元處接收帶有遊戲數據和聚集的預約的ATP分組。較高級別的應用接入伺服器單元201與其它同級應用接入伺服器單元通信,以及在可能情況下與處在分級結構中更高級別的應用接入伺服器單元通信。分級結構應用接入伺服器系統被使用來創建遊戲狀態的分級結構分布的代表物,以用於涉及數目很大的客戶機的應用。
遠端應用接入伺服器單元可被組織成一個多址傳播樹形結構,在這種情形中,每個多址傳播組有一個分類緩存器。可以使用一種其中所有的信息被發送到所有的遠端應用接入伺服器單元的簡單分配策略。在這種情況下,只有一個緩存器。
應用客戶機組可以具有提供低的等待時間接入的寬帶連接,這樣,不需要任何應用接入伺服器。典型的例子是所有的遊戲者處在同一個LAN中。如果遊戲應用和API仍舊期望一個應用接入伺服器,則有可能以軟體形式在客戶機的機器上運行應用接入伺服器功能。
應用接入伺服器單元也可以位於網絡中的任何中間的位置。這意味著,在客戶機與應用接入伺服器之間的「鏈路」協議可任選地是UDP/IP或TCP/IP。替換地,運行撥號遊戲業務的中央遊戲伺服器可以把應用接入伺服器單元作為部件使用。中央站址然後包含一組數據機庫,後者被連接到應用接入伺服器單元和應用接待廳伺服器。這將是用於構建中央站址的有效而且可縮放的結構,但它將不具有早期聚集遊戲業務量的優點。
權利要求
1.可連接到至少一個第一和第二客戶機單元的伺服器單元,它用來使能在第一和第二客戶機單元之間通過該伺服器單元的通信,以便運行具有可由第一和第二客戶機單元來同時影響和貢獻的狀態的分布互動應用,該伺服器單元的特徵在於,它包括-第一接收裝置,用於從所述至少第一客戶機單元接收有關該應用狀態的應用狀態信息;-狀態信息存儲裝置,用於存儲應用狀態信息;-第二接收裝置,用於從所述至少第一客戶機單元接收關於要被發送到第一客戶機單元的應用狀態信息的優先級信息;-優先級信息存儲裝置,用於存儲所接收的優先級信息;-第一發送裝置,它與狀態信息存儲裝置合作,以便根據優先級信息把應用狀態信息發送到第一客戶機單元;-至少一個應用路由器,它包括該第一和第二發送裝置與該第一和第二接收裝置,和一個包括了該信息存儲裝置的應用伺服器。
2.按照權利要求1的伺服器單元,其中應用伺服器和所述至少一個應用路由器被實施為分開的硬體單元。
3.按照權利要求1的伺服器單元,其中應用伺服器和所述至少一個應用路由器用軟體實施,該軟體、該與應用伺服器有關的軟體和至少一個應用路由器分別具有保留的計算資源。
4.按照權利要求1-3的任一項的伺服器單元,其中應用伺服器用來接收流對象和將其發送到至少一個其它應用接入伺服器。
5.按照權利要求3的伺服器單元,其中應用路由器被安排來將流對象廣播給通信進程中涉及的所有其它應用接入伺服器。
6.按照權利要求1-5的任一項的伺服器單元,其中應用路由器被安排來接收基本對象和把它轉發到至少一個應用伺服器以便貯存在應用伺服器的資料庫中,以及從應用伺服器接收有關基本對象的已尋址的數據分組和把它轉發到客戶機單元和/或至少一個其它的伺服器單元。
7.按照權利要求1-6的任一項的伺服器單元,其中應用路由器被安排來從應用伺服器接收控制信息和把它轉發到客戶機和/或至少一個其它伺服器單元和/或站址管理器。
8.一種通信網,其特徵在於它包括按照權利要求1-7的任一項的至少一個伺服器單元和至少一個客戶機單元。
9.按照權利要求8的通信網,還包括至少第二應用接入伺服器和一個連接所述第一與第二應用接入伺服器的連接裝置,其中通信資源可以被保留在所述連接裝置中。
10.按照權利要求8或9的任一項的通信網,還包括被安排來控制至少一個應用接入伺服器的至少一個站址管理器。
11.按照權利要求10的通信網,還包括,一個被安排來構成在至少一個應用接待廳伺服器與所述至少一個站址管理器之間的接口的接待廳接入伺服器。
全文摘要
藉助於伺服器單元可以改進在通信網中的實時性能,特別是在大量參加者之間的通信,該伺服器單元包括接收裝置,用於接收來自至少一個客戶機單元的信息,所述信息包括至少一部分有關分布互動應用的狀態信息,所述伺服器單元包括狀態信息存儲裝置,用於存儲從至少一個所述客戶機單元接收的應用狀態信息,發送裝置,用於把從所述客戶機單元接收的狀態信息轉發到網絡中的至少一個其它的節點,以及用於把被存儲在所述狀態信息存儲裝置中的至少一部分信息發送到所述至少一個客戶機單元。這樣,該應用的整個狀態被保持在網絡中的一個或多個單元中,它去除每個客戶機存儲整個狀態的需要,由此減小每個客戶機處的存儲器和帶寬的需要。
文檔編號G06F19/00GK1728712SQ20051009107
公開日2006年2月1日 申請日期2000年5月10日 優先權日1999年5月10日
發明者T·布蘭德特, P·海格布拉德, J·榮松, M·延德爾, K·卡爾松, R·卡爾松, E·盧恩貝裡, S·奧斯博尼, M·斯滕霍夫 申請人:艾利森電話股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀