JP2002544689A - 通信ネットワークにおける方法及び装置 - Google Patents

通信ネットワークにおける方法及び装置

Info

Publication number
JP2002544689A
JP2002544689A JP2000616572A JP2000616572A JP2002544689A JP 2002544689 A JP2002544689 A JP 2002544689A JP 2000616572 A JP2000616572 A JP 2000616572A JP 2000616572 A JP2000616572 A JP 2000616572A JP 2002544689 A JP2002544689 A JP 2002544689A
Authority
JP
Japan
Prior art keywords
application
client
server
information
access server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000616572A
Other languages
English (en)
Other versions
JP4463999B2 (ja
JP2002544689A5 (ja
Inventor
トニ ブランドト,
ペル ヘッグブラド,
ヨナス ヨンソン,
マグヌス イェンデル,
クリステル カールッソン,
ロランド カールッソン,
エマヌエル レンベルイ,
ステュアルト オスボルネ,
マルティン ステンホフ,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from SE9901694A external-priority patent/SE521442C2/sv
Priority claimed from US09/307,712 external-priority patent/US6763371B1/en
Application filed by テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2002544689A publication Critical patent/JP2002544689A/ja
Publication of JP2002544689A5 publication Critical patent/JP2002544689A5/ja
Application granted granted Critical
Publication of JP4463999B2 publication Critical patent/JP4463999B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

(57)【要約】 特に多数の参加者間での通信ネットワークのリアルタイム性能が、少なくとも1つのクライアント・ユニットから情報を受信する受信手段を備えたサーバ・ユニットであって、前記情報が、配布されたインタラクティブ・アプリケーションについての状態情報の一部を少なくとも含んでおり、前記サーバ・ユニットが、前記クライアント・ユニットの少なくとも1つから受信したアプリケーションの状態情報を格納する状態情報格納手段と、前記クライアントから受信した状態情報を、ネットワーク内の少なくとも1つの他のノードに送り、前記状態情報格納手段に格納された情報の少なくとも一部を、前記少なくとも1つのクライアントに送信する送信手段と、を備えている、サーバ・ユニットによって改善される。このようにしてアプリケーションの状態の全部が、ネットワーク内の1つ以上のユニットによって保持され得、これは各クライアントが状態全部を格納する必要をなくし、そのため各クライアントについてのメモリ及び帯域幅の要件を低減する。

Description

【発明の詳細な説明】
【0001】 [技術分野] 本発明は通信ネットワークに関し、より詳細には、そのようなネットワークの
アプリケーションのいくつかのユーザ間のリアルタイム通信に関する。
【0002】 [従来技術の説明] マルチユーザ通信のアプリケーションは、例えば、マルチユーザのゲームのた
めに、現在開発されている。このようなゲームは、同じLANあるいはインター
ネットなどの大きなネットワークの異なった部分に接続された数人のユーザによ
ってプレーされるであろう。そのようなアプリケーションに対しては、3つの主
な同期モデルが使用される。すなわち、クライアント−サーバ同期、ピアツーピ
ア同期あるいはブロードキャスト同期である。インターネット上のいくつかのマ
ルチユーザ・ゲームには、今日100000人に達するプレーヤが係わり、その
数千人は同時にプレーすることがある。現在使用される全ての同期方法はかなり
長い遅延を生ずる。従って、現在インターネットによってプレーされるマルチユ
ーザ・ゲームは、速度が重要でないゲームである。例えば、数分の1秒以内に起
こったことにユーザが反応しなければならない、カー・レーシング・ゲームや対
戦ゲームのような高速アクション・ゲームは、あらゆる標準的な同期方法を使用
しても許容できる品質でプレーできない。
【0003】 ダイヤルイン・ネットワークは通常クライアント−サーバ同期を使用する。こ
の場合、サーバは全てのプレーヤからデータを受信する。サーバは、各プレーヤ
が必要とする情報を理解し送信しなければならない。このシステムでは中央サー
バが明らかにボトルネックとなる。中央クライアント−サーバ型ゲームは、2〜
250のプレーヤをサポートできる。サービスする数が増えると更新レートは2
Hz程度まで遅くなる。中央サーバは、転送距離の増大とサーバ内の処理及びス
ケジューリングの遅延との両方の理由でレイテンシ(待ち時間)を付加する。例
えば、クライアントが米国の西海岸におり、サーバが米国の東海岸にある状況に
ついて考える。クライアント−サーバ・モードの動作により、約80msの転送
のレイテンシと少なくとも数10msの処理のレイテンシが生じる。
【0004】 従って、クライアント−サーバ同期は、遅延が重要である多数のプレーヤでの
リアルタイムのアプリケーションに適していない。
【0005】 ピアツーピア同期は、全てのクライアントが他の全てのクライアントにアプリ
ケーション・データを直接送ることを意味する。このモデルは公共的なインター
ネットによってプレーされるゲームに、しばしば使用される。ゲームの開発者は
、プレーヤがゲームの設定及び実行中のゲームに参加するために集まる、フリー
・アプリケーション・ロビー・サーバを提供する。ゲームは一旦開始すると、ゲ
ーム開発者のサイトからは何のリソースも使用せずに、ピアツーピア・モードで
プレーされる。
【0006】 ピアツーピア同期は明らかにスケーラビリティに問題がある、なぜならネット
ワークの負荷はプレーヤの数の二乗に比例するからである。すなわち、クライア
ントのアクセス帯域幅とCPU能力の要件はプレーヤの数に比例する。各パケッ
トのペイロードは10〜40バイトであり、これはプロトコルのオーバヘッドが
通常50%より多いことを意味する。ゲームの小さなパケットはプロトコルのオ
ーバヘッドを大きくする。しかしながら、ヘッダ圧縮方法でこのオーバヘッドは
かなり小さくできる。インターネットによるピアツーピアのゲームは、予期でき
ない遅延及び同期の喪失により頻発する崩壊(collapses)で損なわれる。
【0007】 続けると、ピアツーピア同期はまた、距離が比較的短くユーザの数が限定され
た通信を行う小さなネットワークに最も良く適合する。
【0008】 ブロードキャスト同期は、ローカル・エリア・ネットワーク(LAN)での限
定された数のプレーヤには使用できるが、大きなネットワークには適していない
【0009】 同期方法によって課せられた制限のため、現在の技術では良好なリアルタイム
特性を有する参加者が多数の通信は実現できない。
【0010】 各ユーザに一度送信する代わりに、各マルチキャスト・サーバに一度だけ情報
を送信すればよい点で、マルチキャストによりネットワーク内で送信すべき情報
はかなり削減できる。各マルチキャスト・サーバは、情報をコピーしてそれを接
続されたユーザに送信する。各ユーザが受信する必要のある情報が選択されるで
あろう。これはサーバ間及び各サーバとそのユーザ間の両方のトラフィックを減
少するであろう。このような解決策をゲームに適用することが、米国特許番号5
,841,980に開示されている。
【0011】 米国特許番号5,841,980に開示されたシステムでは、各ユーザはユー
ザが現在の状況において関連するゲームの部分に関する情報、例えば、ユーザが
現在いる地理的領域に関する情報だけを有している。状況が変わると、例えば、
ユーザが別の部屋に入ると、新たな状況で重要な情報をユーザは入手できないで
あろう。
【0012】 [発明の目的] 本発明の目的は、通信ネットワーク、特に多数の参加者間での協働的通信にお
けるリアルタイム性能を改善することである。
【0013】 [発明の概要] 上記目的は、通信ネットワークで使用されるサーバ・ユニットによる本発明に
よって達成され、前記サーバ・ユニットは、少なくとも第1のクライアント・ユ
ニットから情報を受信する受信手段を備えており、前記情報が、配布されたイン
タラクティブ・アプリケーションについての状態情報を少なくとも含んでおり、
前記サーバ・ユニットが、 −前記第1及び第2のクライアント・ユニットから受信手段によって受信した
情報に含まれる、アプリケーションの状態情報を格納する状態情報格納手段と、 −前記少なくとも第1のクライアント・ユニットから受信した状態情報を、ネ
ットワーク内の少なくとも1つの他のノードに送る第1の送信手段と、 −前記状態情報格納手段に格納された情報の少なくとも一部を、前記少なくと
も1つのクライアント・ユニットに送信する第2の送信手段と、を備えることを
特徴とする。
【0014】 これにより、ネットワーク内の1つ以上のユニットのアプリケーションの全て
の状態を保つことが可能となり、これは各クライアントが全体の状態を格納する
必要をなくし、このため各クライアントで必要なメモリ容量と各クライアントで
との通信に必要な帯域幅とが削減される。アプリケーションの状態の各部分が1
つ以上のネットワーク・ノードに格納されれば、バックアップ機能が達成される
【0015】 上記目的は、通信ネットワークの端末で使用されるクライアント・ユニットに
よる本発明によって達成され、該クライアント・ユニットは、配布されたインタ
ラクティブ・アプリケーション・ソフトウェアを備えており、 −前記端末からの入力を読み取る少なくとも1つの入力手段であって、前記入
力は配布されたインタラクティブ・アプリケーションのアプリケーション状態情
報を構成する、入力手段と、 −アプリケーション状態情報をアプリケーション・アクセス・サーバに送信す
る送信手段と、 −前記アプリケーション・アクセス・サーバから配布されたインタラクティブ
・アプリケーションの少なくともアプリケーション状態情報を受信する受信手段
と、 −前記状態情報を表示する手段と、を備えることを特徴とする。
【0016】 本発明による方法及び装置は、特にリアルタイム通信に係る、配布されたイン
タラクティブ・アプリケーションに有用である。
【0017】 好ましくは、前記サーバ手段の受信手段は、 −前記第1のクライアントが受信を望む情報について配布されたインタラクテ
ィブ・アプリケーションのオブジェクトを識別するサブスクリプション情報を、
少なくとも前記第1のクライアントから受信し、 −少なくとも1つのクライアント・ユニットに該クライアントユニットから受
信したサブスクリプション情報に応じて情報を送信し、 −前記サーバ・ユニットが前記サブスクリプション情報を格納する少なくとも
1つのクライアント・サブスクリプション・リストを更に備える、ように構成さ
れる。
【0018】 このため、前記クライアント・ユニットは、入手可能な情報をそこから受信す
べき、配布されたインタラクティブ・アプリケーションの少なくとも1つのオブ
ジェクトを指定する、サブスクリプション情報を設定する手段と、前記サブスク
リプション情報を前記アプリケーション・アクセス・サーバに送信する手段とを
備える。
【0019】 これにより、各ユーザに送信されるべき情報の量が減少し、このため伝送遅延
が減少し、特定のユーザにとって最も重要な情報だけがそのユーザに示されるの
で、各ユーザが情報を分析するのを助長する。各クライアントはどれが重要なの
かを自身で決定できる。
【0020】 好適な実施形態では、受信手段は、少なくとも第2のクライアントから前記第
1のクライアントに関する緊急情報を受信するよう構成される。緊急情報が第1
のクライアントに送信されてもよく、あるいは前記第2のクライアントに関する
アプリケーション状態情報が、前記緊急情報に応じて少なくとも前記第1のクラ
イアントに送られてもよい。緊急情報はまた、あるアプリケーション状態情報が
前記第1のクライアントに送られるべきでないことを示すのに使用されてもよい
。緊急情報はクライアントのサブスクリプションを変更するのに使用されてもよ
い。
【0021】 前記好適な実施形態では、クライアント・ユニットは、該クライアントから状
態情報をできるだけ速く受信すべき、少なくとも1つの他のクライアントを特定
するための、緊急データを設定する手段を更に備える。
【0022】 有利なことには、アプリケーション状態情報を送信するクライアント・ユニッ
トの送信手段が、パケットがサーバ・ユニットに送信される前に、各パケットが
アプリケーションの一部を構成するオブジェクトに関連するように、オブジェク
ト情報パケット内の情報を配置するように構成され、前記受信手段が、サーバ・
ユニットから受信したパケットから情報を抽出するように構成される。
【0023】 アプリケーション・アクセス・サーバ・システムは、アプリケーションから独
立しており、そのため広い範囲の異なったアプリケーションをサポートできる。
【0024】 一緒に動作するアプリケーション・アクセス・サーバ・ユニットは、好ましく
は確保されたあるいは管理された伝送容量を提供する、ネットワークによって通
信するかもしれない。アプリケーションの合計した帯域幅の要件は、ネットワー
ク管理システムによって推定することができ、アプリケーション・アクセス・サ
ーバ・ユニットを接続する確保されたネットワークに、十分なネットワーク・リ
ソースが割り当てられ得る。リソースが利用可能であるときだけ、新たなアプリ
ケーションが許可される。ネットワーク管理は、アプリケーション・アクセス・
サーバの再送及び複製の方針も制御する。マルチキャスト及びリソース予約プロ
トコルを、アプリケーション・アクセス・サーバ間の合計したストリームに使用
できる。このシステムの利点は、プレーヤ・レベルでのリソース予約が必要で無
いことである。アプリケーションのクライアントは通常、全体の統計的性能が良
好であれば、偶発的に失ったパケットを処理する。本発明によるアプリケーショ
ン・アクセス・サーバを使用することは、アプリケーション・アクセス・サーバ
が常にゲームの状態を維持するので、ゲームのクライアントが同期を失うことが
永久にないことを意味する。
【0025】 [実施形態の詳細な説明] 本発明による装置及び方法を、添付図面を参照してより詳細に説明する。
【0026】 図1は本発明による通信ネットワークの実施形態を示している。本発明によれ
ば、ネットワークは少なくとも1つのアプリケーション・アクセス・サーバを備
えている。図1では、第1(1)、第2(3)及び第3(5)のアプリケーショ
ン・アクセス・サーバが示されており、これらは例えば、確保された電気通信ネ
ットワークなどのネットワーク7によって互いに接続されている。他のあらゆる
タイプのネットワークでも良いが、インターネットなどのネットワーク・リソー
スを確保することができないネットワークでは、負荷が重くなると品質が低下す
るであろう。いくつかのクライアント11、12、13、14、15もネットワ
ーク7に接続されている。クライアントはアプリケーション・アクセス・サーバ
1、3、又は5に、以下で詳細に説明するように、当該技術分野で知られている
あらゆる方法で接続することができる。
【0027】 参加者の多くのメンバーが同時にアプリケーションの状態に影響を及ぼし関与
する、例えば、リアルタイムのマルチユーザ・ゲームなどの、配布されたインタ
ラクティブ・アプリケーションを実行する目的で、クライアントはアプリケーシ
ョン・アクセス・サーバを通して互いに通信する。各クライアントと該クライア
ントと接続されているアプリケーション・アクセス・サーバとの間の接続は、通
常、モデム接続などの容量の小さな接続である。一方、2つのアプリケーション
・アクセス・サーバ間では、大きくかつ可変のネットワーク容量が利用できる。
従って、本発明によるアプリケーション・アクセス・サーバは、各クライアント
にそのクライアントに最も関係のある情報だけを送信することにより、各クライ
アントに送信される情報が減少されるような方法で、アプリケーションの状態に
ついての情報を処理するように構成されている。アプリケーション・アクセス・
サーバ間では、伝送容量は通常問題とならず、そのためアプリケーション・アク
セス・サーバ間でより多くの情報を送信することができる。
【0028】 それ自体は既知の種類のアプリケーション・ロビー・サーバが、1つ以上ネッ
トワーク内にあってもよい。これらのサーバは、通常、クライアントが、課金機
能などを処理する、特定のタイプのサーバへ登録するのを許可する機能を有して
いる。
【0029】 本発明によれば、アプリケーションに必要なソフトウェアは、クライアント1
1、12、13、14、15内にある。従って、本発明による通信機能を使用す
るためには、ユーザは自分が必要とするアプリケーション・ソフトウェアを持っ
ていることを確かめる必要がある。例えば、インターネットからのダウンロード
あるいはCD−ROMからのインストールなどのこの技術分野で既知のあらゆる
方法で、アプリケーション・ソフトウェアが獲得される。アプリケーションにと
って必要であれば、ユーザはアプリケーションをロビー・サーバに登録する必要
がある。一般に、アプリケーション・ロビー・サーバ21は、通常はIPアドレ
スなどのアドレスと、1つ以上のアプリケーション・アクセス・サーバ1、3、
5のポート番号を提供するが、このアドレスは他のあらゆる方法で獲得されても
よい。
【0030】 ユーザはこの技術分野で一般的な方法で、通常は1つのアプリケーション・ア
クセス・サーバあるいはアプリケーション・アクセス・サーバのプール(pool)
のIPアドレスを入力することによってアプリケーション・アクセス・サーバに
接続する。同じアドレスで識別されるネットワーク内のいくつかのノードの適切
な1つを選択するのに、いくつかのアルゴリズムが存在する。アプリケーション
・アクセス・サーバは、以下でより詳細に説明するように、ユーザから情報を受
信して、ユーザへの情報の送信を開始する。クライアントがアプリケーション・
アクセス・サーバにログインする代わりに、アプリケーション・ロビー・サーバ
がクライアントのネットワーク・アドレスをアプリケーション・アクセス・サー
バに送信することもできる。
【0031】 アプリケーションが、参加者によって制御されるオブジェクトのセットからな
ると想定する。オブジェクトは、人間の参加者によって制御されるかクライアン
トで生成されるアプリケーションのエンティティであり、例えば、乱数発生器や
他の予測できない計算処理によって制御されて、各アプリケーション・クライア
ントで局所的に再生されるものではない。アプリケーション・オブジェクトは、
参加者が直感的にオブジェクトとして認識するもの、あるいはゲームのフィギュ
アであるが、プレーヤによって制御される環境変数などのバックグランド・デー
タの構成物であってもよい。各オブジェクトは通常、アプリケーションの実行中
に変更され得る、特性のセットと属性を有している。ゲームにおいてこれらの特
性は、キャラクタの強さ及び他の能力、あるいは車の最大速度であり、属性は、
例えば、キャラクタによって制御されるアイテム等であろう。
【0032】 ユーザから受信した情報は通常、シグナリング・オーバヘッドに加えて3つの
異なったタイプの情報を含み、それらは、状態情報、サブスクリプション情報、
制御データ及び緊急情報である。状態情報は、オブジェクトあるいはユーザによ
って制御されるオブジェクトについての情報であり、アプリケーションの他のユ
ーザにも分配されるべきものである。サブスクリプション情報は、アプリケーシ
ョン・アクセス・サーバによって提供される異なったアプリケーション・オブジ
ェクトに関するユーザの優先度をリストで表わす。例えば、あるオブジェクトの
グループに関する情報は、利用可能となったときに一度に、あるいはできるだけ
頻繁に受信されるべきであるが、別のオブジェクトのグループからの情報は急を
要するものではない。例えば、帯域幅が足りない場合、許容可能な遅延や優先順
位の形式で、いくつかの優先度レベルが設定されるであろう。クライアントによ
って生成される緊急情報は、他のクライアントが自身のサブスクリプションに含
まれていないオブジェクトについての情報を受信するように、別のクライアント
のサブスクリプションを変更あるいはオーバーライドするため、あるいはクライ
アントがある種の情報を受信していないのを確かめるために使用される。3つの
タイプの情報全てについて以下でより詳細に検討する。
【0033】 例として、多数のユーザによってプレーされるリアルタイムのゲームのアプリ
ケーションを説明する。このようなゲームは現在は、例えば、ローカル・エリア
・ネットワーク(LAN)内などの、互いに極めて近くに位置する限定された数
のユーザでプレーされる。広域ネットワークでプレーされれば、そのようなゲー
ムには将来は、通常は大きなゲーム・フィールドあるいは仮想的図形領域にわた
って分布する数千のプレーヤが係わるであろう。上記で検討したように、従来の
技術では、許容できる品質でこれを実現するのは可能ではない。
【0034】 各プレーヤは、仮想ゲーム領域において彼の近くで起こることによってのみ、
すぐに影響を受ける。遠く離れた別のプレーヤは、このプレーヤより変更が重要
ではない。例えば、プレーヤが第1の敵対するプレーヤと戦うと、仲間のプレー
ヤがが助けに来るかもしれず、第2の敵対するプレーヤが仲間のプレーヤを止め
ようとするかもしれない。同時に、他のプレーヤは後で重要となるかもしれない
ことを行うであろが、プレーヤは戦いを勝ち抜くことに主に専念する。従って、
第1の敵対するプレーヤの動きは、ただちに表示されなければならない。仲間の
プレーヤ及び第2の敵対するプレーヤの動きにも高い優先度を与えるべきであり
、遠く離れて起こることには低い優先度を与えるべきである。
【0035】 上記で説明した例では、明らかに、別の時点では他のプレーヤ、通常はいずれ
か所与の時点でユーザの近くに位置するプレーヤが最も高い優先度を持つので、
プレーヤの構成は変化するであろう。
【0036】 アプリケーション・アクセス・サーバは、アプリケーション・クライアントと
の通信を扱う。該サーバは、アプリケーションの状態に影響を与えるクライアン
トの動作に関する情報と他の情報とを受信する。該サーバはまた、他の参加者か
らのアプリケーション状態情報を、参加者のサブスクリプションに従って参加者
に送信する。各アプリケーション・クライアントは、受信するアプリケーション
情報に関するサブスクリプションを設定し、これらサブスクリプションに関する
情報をアプリケーション・アクセス・サーバに送信する。アプリケーション・ア
クセス・サーバは、アプリケーション・アクセス・サーバによってサービスされ
るクライアントのサブスクリプションの記録を格納し更新する。各クライアント
のサブスクリプションは、どのデータをこのクライアントに送信すべきかを決定
するのに使用される。クライアントは、別のクライアントに対するサブスクリプ
ションも設定してもよい。ある一つの動作モードでは、マスター・クライアント
が例えば、他の全てのクライアントのサブスクリプションを設定してもよい。
【0037】 あるクライアントが関係するアプリケーション・アクセス・サーバは、そのク
ライアントのローカル・アプリケーション・アクセス・サーバであり、そのクラ
イアントは、そのアプリケーション・アクセス・サーバのローカル・クライアン
トと呼ばれる。
【0038】 アプリケーション・アクセス・サーバはまた、クライアント権限リストを保持
する。各クライアントは、1つ以上のゲーム・オブジェクトの状態を変更する権
利を持っている。クライアント権限リストは、各クライアントに対して1つのエ
ントリを有し、そこにはクライアントによって制御されるオブジェクトの識別子
が格納される。アプリケーション・アクセス・サーバは、クライアントからオブ
ジェクト状態情報を受信する度に権限をチェックする。ゲームの状態は、情報パ
ケット内にある識別子が権限リストのクライアントに対するエントリ内の数と一
致したときだけ更新され、そうでなければその情報は無視される。他アプリケー
ション・アクセス・サーバから来たオブジェクト状態情報は、送信したアプリケ
ーション・アクセス・サーバが権限を既にチェックしたので照合されない。
【0039】 アプリケーション・アクセス・サーバはまた、アプリケーション状態情報と、
選択的にはそれらに対して集められたサブスクリプションとを送信し、同じタイ
プの情報をそれらから受信する、他のアプリケーション・アクセス・サーバ・ユ
ニットと通信する。通常、他のアプリケーション・アクセス・サーバに送信すべ
き情報は、いずれの方法でも優先順位を付けたり格納されたりせずに、適切なプ
ロトコルに従ってパッケージ化される。ローカル・クライアントのユーザのサブ
スクリプションに応じて、各アプリケーション・アクセス・サーバに送信すべき
情報を選択することももちろん可能であろう。集められたサブスクリプションは
、所与のアプリケーション・アクセス・サーバに属するクライアントからの全て
のアプリケーション・オブジェクト要求の合計である。例えば、アプリケーショ
ン・アクセス・サーバは、他のアプリケーション・アクセス・サーバに対してマ
ルチキャストを使用してもよい。これは各アプリケーション・アクセス・サーバ
・ユニットが必要な全ての更新を受信し、アプリケーション・アクセス・サーバ
によってゲーム状態が効率的に配布されることを保証する。
【0040】 緊急データは、そのデータが別のクライアントにとって重要であるが、他のク
ライアントがこのことに気付いておらず、従って自身のサブスクリプションを設
定できない場合に、クライアントによって設定される。従って、緊急度は送信す
るクライアントによって定義され、受信するクライアントそれぞれで異なってい
るかもしれない。アプリケーション・アクセス・サーバは、緊急データが待機し
ていれば受信するクライアントに気を配る。緊急情報は、ある種の情報が1つ以
上のクライアントに送られるのを禁止するのにも使用されてもよい。
【0041】 各アプリケーション・アクセス・サーバはまた、アプリケーション状態の完全
なあるいは部分的なコピーを格納し更新する。それらの間で、通信セッションに
割り当てられたアプリケーション・アクセス・サーバ・ユニットは、完全なアプ
リケーション状態を格納しなければならない。最も単純な場合には、全てのアプ
リケーション・アクセス・サーバが完全なアプリケーション状態を格納するが、
アプリケーション・アクセス・サーバ間で、オーバーラップする情報を持つ又は
持たないように情報を分離することも可能である。そのような解決策は、各アプ
リケーション・アクセス・サーバへの適切なデータの配布を処理するのに、特別
なソフトウェアを必要とする。
【0042】 アプリケーション・アクセス・サーバは、アプリケーションを設定し、アプリ
ケーションの実行中に参加者を追加しかつ削除し、エラーやネットワークの故障
を処理するために、アプリケーション・ロビー・サーバと通信する。
【0043】 図2は、本発明の実施形態によるアプリケーション・アクセス・サーバ50を
その機能的エンティティで示している。このアプリケーション・アクセス・サー
バは、ハードウェアあるいはソフトウェアで実現できる。図2に関しては、概略
的説明だけをする。適切なフォーマット及びプロトコルについては後述する。
【0044】 アプリケーション・アクセス・サーバは、ネットワーク内の各クライアントか
ら、及び他のアプリケーション・アクセス・サーバなどの他のユニットから、入
力バッファ51によってデータを受信する。クライアント、リモート・アプリケ
ーション・アクセス・サーバ及びアプリケーション・ロビー・サーバのそれぞれ
には1つの入力バッファがあるが、図2では簡潔にするため1つの入力バッファ
だけが示されている。
【0045】 ローカルな参加者それぞれの動作は、そのクライアントに関連するアプリケー
ション・アクセス・サーバの入力バッファに到着する、アプリケーション・オブ
ジェクト・パケットのペイロードとして送信される。これらアプリケーション・
オブジェクト・パケットは、参加者によって制御されるアプリケーション・オブ
ジェクトを更新する。アプリケーション・オブジェクト。パケットは、1組の挿
入規則を用いてアプリケーション状態レコードに書き込まれる。
【0046】 クライアントから受信したデータは、3つのタイプのデータ、すなわち、アプ
リケーションの状態についてのデータ(状態データ)、クライアントのサブスク
リプションについてのデータ(優先度データ)及び他のクライアントの時間基準
状態に対する要求及びシステムからの他の情報などの他の制御情報、を含んでい
てもよい。状態データは、アプリケーション・オブジェクト・パイプライン53
を通ってアプリケーション状態レコード55に渡される。アプリケーション状態
レコード55は、以下でより詳細に説明するように、関連する全てのオブジェク
トに対する全ての状態データを保持する。アプリケーション状態レコードは、上
記で説明した緊急データも保持する。
【0047】 クライアントのグループが定義されてもよく、このグループは例えば、作業グ
ループの参加者や、ゲームの場合には同じチームの参加者を含んでいる。この場
合、サブスクリプション及び/又は緊急データもまた、個々のユーザについてだ
けではなく、ユーザのグループについて指定されてもよい。
【0048】 制御データ、特に、アプリケーション・オブジェクトについて追加されるある
いは削除される、リアルタイムで処理される必要のないデータは、入力バッファ
51からアプリケーション・アクセス・サーバ制御ユニット57に渡される。ハ
ードウェアによる実施では、制御ユニット57はマイクロプロセッサであろう。
制御ユニットによって処理される制御データは、例えば、プレーヤ及びオブジェ
クトの生成及び破壊と、プレーヤ及びオブジェクトのグループに関連するもので
あり得る。
【0049】 サブスクリプションは、アプリケーション優先度制御プロトコル・メッセージ
・パイプライン59を通って、アプリケーション・アクセス・サーバによってサ
ポートされる各クライアントのサブスクリプションを含んでいる、クライアント
優先度リスト(CPL)61に渡される。サブスクリプションは、クライアント
及びアプリケーション・アクセス・サーバ制御ユニットによって更新され得る。
制御ユニットは、例えば、別のクライアントから受信した緊急メッセージに応じ
て、クライアントのサブスクリプションを更新するのを決定できる。
【0050】 アプリケーション・アクセス・サーバ・システムを用いるアプリケーション・
クライアントによって、いくつかの異なった優先順位付け方法が用いられてもよ
い。簡単な方法は、アプリケーション・クライアントがオブジェクトを列挙した
リストをCPL61に送ることである。この場合、例えば、ラウンドロビン・モ
ードで、リスト上の全てのオブジェクトが更新されたときに、リストに載ってい
ないオブジェクトが更新され得る。例えば、ラウンドロビン・モードでは、リス
トの全てのオブジェクトが更新されたら、残りのオブジェクトが更新され得る。
特定のクライアントのサブスクリプションは、このクライアントによって設定さ
れたサブスクリプションについての全てのオブジェクトのリストを含んでいる。
アプリケーション・アクセス・サーバに格納されたリストに加え、各オブジェク
トについて新たな情報が受信されたかどうかを示すフラグを含んでいるのが好ま
しい。このフラグは、あるオブジェクトについての情報をクライアントに送信す
る必要があるかどうかを判定するのに使用される。情報がクライアントに送信さ
れたとき、フラグはリセットされる。アプリケーション・アクセス・サーバから
オブジェクトについての新たな更新を受信したとき、フラグが再度設定される。
【0051】 クライアントのサブスクリプションはまた、各オブジェクトに関連した時間間
隔と共に定義され得る。そしてクライアントは、例えば、<オブジェクト番号>
,<オブジェクト優先度>,<オブジェクト更新時間間隔>,<フラグ>、とい
うフォーマットで一連の要求を送信する。簡単なリストは、<オブジェクト番号
>,<オブジェクト優先度>という簡単なフォーマットであってもよい。アプリ
ケーション・アクセス・サーバは、要求内の<オブジェクト優先度>フィールド
に従って与えられた優先度で、各時間間隔中に各オブジェクトが少なくとも1度
更新されるように、クライアントに更新を送信する。いくつかのオブジェクトを
全く更新しないように、無限大記号が使用されてもよい。特別な、「新たな完全
なオブジェクト状態の送信」フラグが設定されてもよい。このオプションは、ク
ライアントがオブジェクトに対する更新を長い間隔(数秒)で望むときに使用さ
れる。所望する時間解像度が状態リフレッシュ間隔よりも長いと、増分による更
新の送信は無駄が多くなるだろう。
【0052】 出力パイプライン63は、クライアント優先度リスト61からサブスクリプシ
ョン情報を受信し、上記で説明した適切なアルゴリズムを用いて、当該クライア
ントに送信すべき情報をアプリケーション状態レコード55から探すために、こ
の情報を使用する。選択された状態情報は、アプリケーション状態レコード55
から出力パイプライン63を通って出力バッファ65に渡され、出力バッファか
らクライアントに渡される。制御ユニット57は、例えば、クロックを同期させ
るため、あるいはレイテンシの推定値をクライアントに提供するために、制御メ
ッセージをクライアント及びリモード・サーバに送信する。
【0053】 図2に示したアプリケーション・アクセス・サーバは各タイプのユニットを1
つだけ有するように示されているが、好ましくはアプリケーション・アクセス・
サーバは、アプリケーション・アクセス・サーバが情報を交換するネットワーク
内の各クライアント及び他のサーバ等のそれぞれに対して、1つの入力バッファ
51、1つのアプリケーション・オブジェクト・パケット入力パイプライン53
、1つの優先度メッセージ・パイプライン55、及び1つの出力処理パイプライ
ン63及び1つの出力バッファ65を備えている。代替的に、クライアント又は
サーバのグループが、1つの入力バッファ51、1つのアプリケーション・オブ
ジェクト・パケット入力パイプライン53、1つの優先度メッセージ・パイプラ
イン55、及び1つの出力処理パイプライン63及び1つの出力バッファ65を
共用してもよい。アプリケーション・アクセス・サーバはまた、各クライアント
、サーバ等に対して、1つのクライアント優先度リスト61を備えている。
【0054】 他のアプリケーション・アクセス・サーバから受信したデータは、他のクライ
アントからのオブジェクト状態データを含んでいる。それがまた好ましくは各オ
ブジェクトが優先度リストに1度現れるような方法で集められた、これらクライ
アントからの優先度情報を含んでいてもよい。この場合、各アプリケーション・
アクセス・サーバに対して1つの優先度リストが存在し、すなわち、各アプリケ
ーション・アクセス・サーバがクライアントのように取り扱われるように、情報
がパッケージ化される。別のアプリケーション・アクセス・サーバから受信した
情報は、以下で説明するように、いずれもあるプロトコル処理を実施する必要の
ある入力及び出力バッファ51、65を除いて、クライアントから受信した情報
と同様に取り扱われる。代替的には、他のアプリケーション・アクセス・サーバ
からサブスクリプション情報は全く送信されず、この場合、全ての状態情報がこ
れらアプリケーション・アクセス・サーバに送信される。
【0055】 アプリケーション・アクセス・サーバは、全てのプレーヤが同時に更新される
、オプションのフェアプレイ・モードを処理する(下記参照)。
【0056】 上述のように、ネットワーク内にはそれ自体は既知の種類の1つ以上のアプリ
ケーション・ロビー・サーバ(図1の21)が存在している。アプリケーション
・ロビー・サーバは、ゲーム中に構成データを更新するのを受け持ち、アプリケ
ーション・アクセス・サーバに、以下のようなデータを提供する。 ・ゲームに参加する新たなアプリケーション・アクセス・サーバ・ユニットの
IPアドレス又は他のネットワーク・アドレス。 ・アプリケーション・アクセス・サーバによってサービスされる参加者を識別
するネットワーク・アドレスの更新されたリスト。これにより新たな参加者が進
行中のアプリケーションに参加できる。 ・列挙されたゲーム・オブジェクトの更新されたリスト。各オブジェクトに対
して、状態がアプリケーション・アクセス・サーバ間で配布された場合に、どの
アプリケーション・アクセス・サーバがその状態を格納するのを受け持つかが指
定される。状態を更新するのを誰が認可されているのかが指定されていてもよい
。これにより、ゲーム・オブジェクトの生成、破壊及び制御の変更が可能となる
。クライアントもゲーム・オブジェクトの生成及び破壊ができる。 ・新たな完全なあるいは部分的なゲーム状態。これにより、アプリケーション
・アクセス・サーバがゲーム状態を廃棄したとき、ゲームの中断や故障の後の回
復が可能となる。
【0057】 図3は、本発明によるアプリケーション・アクセス・サーバで使用されるアプ
リケーション状態レコードの例を示している。各アプリケーション・オブジェク
トの状態は、アプリケーション状態レコード内に列挙されたアプリケーション・
オブジェクト状態AOS1〜AOS4として格納される。各アプリケーション・
オブジェクト状態は、それぞれ一連のアプリケーション・オブジェクト・パケッ
トAOP11〜AOP13、AOP21〜AOP24、AOP31及びAOP4
1〜AOP42からなる。オブジェクト・パケットは、オブジェクト・データ用
の入れ物である。アプリケーションからリモート・アプリケーション・クライア
ント又はサーバに送信された全てのデータは、アプリケーション・アクセス・サ
ーバ・システムによって処理できるように、アプリケーション・オブジェクト・
パッケージに包含される。
【0058】 アプリケーション・アクセス・サーバによって受信された、接続されている他
の全てのアプリケーション・アクセス・サーバからの情報は、アプリケーション
状態レコード内のアプリケーション・オブジェクト情報を更新するのに使用され
る。好ましくは、2つのタイプのアプリケーション・オブジェクト・パケットが
ある。すなわち、1)オブジェクトについての現在のデータ全てを含む基準アプ
リケーション・オブジェクト・パケット、及び2)参照するAPOのタイムスタ
ンプによって求められる時間から何が変わったかについての情報だけを含む増分
パケット、である。AOS内の第1のAOPは基準パケットである必要があり、
その後に増分パケットあるいは基準パケットの組が続くであろう。あるゲームで
は基準パケットだけが生成されるであろう。
【0059】 アプリケーション状態レコードはまた、他のアプリケーション・アクセス・サ
ーバ・ユニットに配信される必要のあるアプリケーション・オブジェクト・パケ
ットの記録をとる。これは、各要素がフラグのマトリクス、new_cliant_data(i,
k)として実現されるデータ構造、new_cliant_dataを用いて行われる。パラメー
タiはクライアント番号であり、パラメータkはアプリケーション・アクセス・
サーバ番号である。アプリケーション・オブジェクト・パケットが、外部のアプ
リケーション・アクセス・サーバに配信されるべきであれば、フラグが設定され
る。
【0060】 アプリケーション・オブジェクトを表わすのに、アプリケーション・オブジェ
クト状態がどのように使用されるのかの例として、図3は、アプリケーション・
オブジェクト状態AOS1を示している。このオブジェクトがレーシング・ゲー
ムにおける乗り物の位置を示しているとする。乗り物の位置(x1,y1)が、
ゲーム時間t1で基準アプリケーション・オブジェクト・パケットAOP11の
ゲームのペイロードとして最初に送信される。帯域幅を節約するために、増分ア
プリケーション・オブジェクト・パケットAOP12として、ゲーム時間t2で
位置の相対的変化(Δx2,Δy2)が送信される。増分アプリケーション・オ
ブジェクト・パケットAOP12は、基準として基準アプリケーション・オブジ
ェクト・パケットAOP11を指し示している。ゲーム時間t3で、新たな増分
位置(Δx3,Δy3)が第3のアプリケーション・オブジェクト・パケットA
OP13で送信される。第3のアプリケーション・オブジェクト・パケットAO
P13は、基準として第2のアプリケーション・オブジェクト・パケットAOP
12を有している。3つのアプリケーション・オブジェクト・パケットAOP1
1、AOP12、AO13の全てを受信した後に、クライアントは時間t3での
乗り物の位置を、(x1+Δx2+Δx3,y1+Δy2+Δy3)によって計
算できる。
【0061】 特定のオブジェクトに対して新たなアプリケーション・オブジェクト・パケッ
トが受信されたとき、アプリケーション状態レコードは、そのオブジェクトに属
する前のパケット全てを削除し、新たな基準パケットだけを格納してもよい。ゲ
ームのペイロードの構文及び意味は、クライアント端末で実行中のゲームのアプ
リケーションによってのみ理解されることに注意されたい。データの喪失によっ
て生じる長期の中断を避けるために、アプリケーションは基準パケットを頻繁に
送るべきである。
【0062】 アプリケーションをコーディングする代替的方法は、時間t3でのアプリケー
ション・オブジェクト・パケットAOP13を、基準としてアプリケーション・
オブジェクト・パケットAOP11を用い、(x1,y1)に対する位置の変化
δx,δyを表わすようにすることであろう。これは、第3のアプリケーション
・オブジェクト・パケットAOP13が到着するとすぐに第2のアプリケーショ
ン・オブジェクト・パケットAOP12を削除できるので、アプリケーション・
アクセス・サーバのメモリを節約できるだろう。ここでクライアントは、時間t
3での乗り物の位置を、(x1+δx3,y1+δy3)によって計算する。ア
プリケーション・アクセス・サーバはアプリケーション・オブジェクト・パケッ
トのヘッダ内の情報を、前のアプリケーション・オブジェクト・パケットの期限
が切れ削除できるかどうかを判定するのに使用する。図3では、AOS2は4つ
のアプリケーション・オブジェクト・パケットAOP21、AOP22、AOP
23及びAOP24からなり、ここで最初のAOP21は基準パケットであり続
く3つのアプリケーション・オブジェクト・パケットAOP22、AOP23、
AO24は増分パケットである。最後の増分はタイムスタンプt8を有している
。このようにAOS2は、ゲーム時間t8迄のオブジェクト2の状態を記載して
いる。図3のAOS3は、オブジェクトを記載するのに十分な1つの基準アプリ
ケーション・オブジェクト・パケットAOP31からなる。
【0063】 新たなクライアントが入って来るのを許可する前に、アプリケーション・アク
セス・サーバは、好適な実施形態によれば、必要な地域幅の増加を見積もり、ネ
ットワーク内でこの帯域幅が利用できることを保証するのがよい。このようにす
る方法は当該技術分野では周知である。容量の問題が全く予期されなければ、こ
のステップは必要ではない。
【0064】 図4は、本発明によるクライアントを実行するコンピュータの実施形態を示し
ている。コンピュータは、例えば、本発明によるアプリケーション・プログラム
103などのプログラムが実行される処理ユニット101を備えている。処理ユ
ニットはまた、アプリケーション・アクセス・サーバ(不図示)及びもしあれば
ネットワーク内の他のユニットと、通信ソフトウェア105によって通信する。
アプリケーション・プログラム103は、ネットワーク・アプリケーション・イ
ンタフェース107によって通信ソフトウェア105と通信する。ネットワーク
・アプリケーション・インタフェースは、アプリケーション・プログラムからの
アプリケーション・データを送信し受信する機能を有している。
【0065】 コンピュータはまた、参加者が現在関係するゲームの一部の外観などのアプリ
ケーションについてのデータを表示する、画面109を備えている。アプリケー
ションにデータを入力するために、例えば、コンピュータにはキーボード111
、マウス113及び/又はジョイスティック115が接続されているのがよく、
それによりゲーム中のオブジェクトを移動させたり他のタイプの変更を入力でき
る。
【0066】 クライアント・アプリケーション103は前記入力を受信し、それを処理して
その結果を画面109で、及び/又は例えばスピーカ及び/又は触覚型の(hapt
ic)表示手段によって表わす。またアプリケーションは、アプリケーション状態
データを前記入力に基づいてネットワーク・アプリケーション・インタフェース
107に送り、そこから該データはアプリケーション・アクセス・サーバに送ら
れる。
【0067】 通信ソフトウェア105及びネットワーク・アプリケーション・インタフェー
ス107によって、アプリケーション103は、ゲーム・アクセス・サーバから
他のオブジェクトに関するアプリケーション状態情報も受信し、それを処理して
結果を画面109に表示する。
【0068】 この実施形態では、ネットワーク・アプリケーション・インタフェース107
は2つの部分、すなわち、アプリケーション・プログラミング・インタフェース
107Aとアプリケーション・アクセス・インタフェース(AAI)107Bを
含んでいる。このやり方は、以下で検討するように、ネットワークAAI 10
7Bを実現するのに、マイクロソフト DirectPlayなどの標準的プログラム・モ
ジュールの使用を可能とする。
【0069】 アプリケーション・アクセス・インタフェース(AAI)107Bは、クライ
アント端末のソフトウェア・モジュールである。これはネットワーク・インタフ
ェースとネットワークAPI 107Aとの間の中間モジュールである。アプリ
ケーション・アクセス・インタフェース107Bは、アプリケーション・オブジ
ェクト・パケットと制御メッセージとを受信して終了し、アプリケーション・オ
ブジェクト・パケットのペイロードがネットワーク・アプリケーション・インタ
フェースに渡される前に、アプリケーション・オブジェクト・パケットのヘッダ
を削除する。該インタフェース107Bはまた、制御メッセージを解釈してそれ
らをAPI 107Aに渡すか又は直接処理する。AAI 107Bは、アプリ
ケーション・アクセス・サーバとの通信に必要であるが、クライアント・アプリ
ケーション・プログラム内では実施しない機能を働かせるよう処理する。従って
、本発明によるアプリケーション・アクセス・サーバとの使用のために開発され
たクライアントにとっては、それは必要ではないだろう。例えば、クライアント
がアプリケーション・オブジェクト・パケットにタイムスタンプを押す機能を有
していなければ、AAIがタイムスタンプを押すクロックを扱ってもよい。
【0070】 アップストリーム方向において、AAI 107Bは、API 107Aから
メッセージ及びオブジェクトを受信する。クライアントからのアプリケーション
・オブジェクトに関するデータは、アプリケーション・オブジェクト・パケット
形式に変換される。アプリケーション・オブジェクト・パケットは、アプリケー
ション・アクセス・サーバへの通信リンクによって送信される。
【0071】 AAI 107Bはまた、アップストリーム・アプリケーション制御プロトコ
ル・メッセージ、特に、アプリケーション制御プロトコル・サブスクリプション
・メッセージを生成する。サブスクリプション及び他のアプリケーション制御プ
ロトコル・メッセージを設定するのに必要な情報は、ネットワークAPIを介し
てアプリケーションから、及びアプリケーション・アクセス・サーバからの緊急
リスト・メッセージから抽出する必要がある。
【0072】 物理的クライアント、例えばゲーム・コンソールが、いくつかのゲーム又はホ
スト、同じゲームにおいて数人の人間のプレーヤに関与してもよい。論理的アプ
リケーション・クライアントが、アプリケーション・アクセス・インタフェース
の1つのインスタンスに接続されたアプリケーションの1つのインスタンスに対
応するとき、各物理的アプリケーション・クライアントは、いくつかの論理的ア
プリケーション・クライアントを実行できる。本明細書におけるアプリケーショ
ン・クライアントは、論理的アプリケーション・クライアントに相当する。論理
的アプリケーション・クライアントを指し示すネットワーク・アドレスは、物理
的クライアントのIPアドレスにアプリケーション・アクセス・インタフェース
のポート番号を組合せたものとできる。
【0073】 アプリケーション・プログラムが開発されるときにアプリケーション・アクセ
ス・サーバ・システムが考慮されると、最高の性能が発揮される。そうすれば、
データ受信の好ましい順番を示すサブスクリプションを決定する機能を、アプリ
ケーション・プログラムに含められる。ゲーム内での状況から、受信するプレー
ヤがメッセージの高い優先度を予測できないことが明らかであれば、メッセージ
が高い緊急度でコプレーヤ(co-player)に直接送られてもよい。例えば、ゲー
ムでプレーヤ1がプレーヤ2を追い回す状況を考える。プレーヤ2は何も警告無
しに突然プレーヤ1に攻撃される。プレーヤ2はプレーヤ1からのメッセージに
対して正しい優先度を設定することができないが、プレーヤ1は高い緊急メッセ
ージをプレーヤ2に送信できる。
【0074】 ネットワークAPIを開発するのに、例えば、マイクロソフト DirectPlay
APIを使用してもよい。そしてAPIは、出力をACP及びAOP等にフォー
マットするよう要求され、DirectPlay サービス・プロバイダとして表わされて
もよい。マイクロソフト DirectPlay APIを使用して、サブスクリプション
を抽出する異なった方法が、少なくとも2つある。サブスクリプションが、ロー
カルな参加者が列挙されたアプリケーション・オブジェクトについての更新を受
信する優先度を表わすべきものであることに注意されたい。DirectPlayの「プレ
ーヤ」はメッセージの送信及び受信ができるアプリケーション・エンティティで
あるので、本明細書でのアプリケーション・オブジェクトは、DirectPlayの表記
では「プレーヤ」と同様である。DirectPlayの「プレーヤ」は、人間のプレーヤ
によって制御されてもよく、あるいは自立型のゲーム・オブジェクトであっても
よい。
【0075】 第1の方法では、DirectPlayの受信方法によって得られた情報が使用される。
DPRECEIVE_FROMPLAYERフラグを設定し、lpidFromパラメータを適切に指定するこ
とにより、この方法でlpidFromパラメータによって識別される「プレーヤ」から
の第1のメッセージを回収することができる。この情報はサブスクリプションを
作成するのにアプリケーション・アクセス・インタフェースによって使用され得
る。DirectPlay メッセージのキューに識別された「プレーヤ」からの入手可能
なメッセージが何もなければ、識別されたアプリケーション・オブジェクトを優
先度リストの最上位にすることは合理的であろう。
【0076】 第2の方法ではDirectPlay送信方法が使用され、idToパラメータがメッセージ
を受信すべき「プレーヤ」又はプレーヤのグループを識別する。頻繁にメッセー
ジを受信する「プレーヤ」が、ローカルなプレーヤが現在対話しているアプリケ
ーション・オブジェクトに関連しているとみなすのが合理的である。
【0077】 図5は、本発明により使用され得る通信スタックの例を示している。1つの通
信スタックが、図4に示したようなクライアントとアプリケーション・アクセス
・サーバとの間の通信に使用される。クライアント及びアプリケーション・アク
セス・サーバは、基本的に同じタイプのスタックを備えている。クライアントで
は最上位層のスタックが図4のアプリケーション・アクセス・インタフェース層
と通信し、アプリケーション・アクセス・サーバではアプリケーション・アクセ
ス・サーバ・ソフトウェアと通信するスタックが示されている。図5は、アプリ
ケーション・アクセス・サーバとネットワーク内の別のユニットとの間で使用す
る通信スタックも示している。この他のユニットは、例えば、別のアプリケーシ
ョン・アクセス・サーバ、あるいはアプリケーション・ロビー・サーバであり得
る。通信スタックはOSIモデルに適合するように使用される。
【0078】 クライアントの通信スタックは、クライアント内のアプリケーションプログラ
ミング・インタフェース107と通信する。最上位レベルのスタックは、ACP
/AOP層109である。このレベルは、図4のアプリケーション・アクセス・
インタフェース107によって処理される。
【0079】 ACP/AOP層109から、アプリケーション・オブジェクト・データ又は
サブスクリプション情報等の情報を含む、ACP/AOPパケットがリンク層1
11に配信される。リンク・プロトコルは、例えばPPPであり得る。反対方向
では、ACP/AOP層109は、アプリケーション・アクセス・サーバから受
信した情報パケットからヘッダ情報を削除し、アプリケーション状態をクライア
ント・アプリケーションに送る。ACPパケットはAAI内で終結され得る。サ
ブスクリプション自身は、クライアントがサブスクリプションを処理する機能を
有していればクライアント自身で処理される。
【0080】 最下位の層はチャネル層113であり、チャネル・コーディング及び実際の物
理的接続を含んでいる。
【0081】 アプリケーション・アクセス・サーバは、クライアントとの通信のために基本
的に同じタイプのスタックを含んでおり、チャネル層113’はクライアントの
チャネル層に相当する。チャネル層113’は、リンク層111’によってAC
P/AOP層109’に接続されている。
【0082】 アプリケーション・アクセス・サーバのACP/AOP層109’は、AOP
及びACP情報を処理するように構成されているアプリケーション・アクセス・
サーバ・ソフトウェアと直接通信する。
【0083】 アプリケーション・アクセス・サーバは、多くの異なったリンク・プロトコル
に対するインタフェースと共に形成され得る。理想的には、アプリケーション・
アクセス・サーバは、UDP、TCP及びRTPを含むあらゆるリンク・プロト
コルを処理できるべきである。RTPは、音声及びビデオ・データの送信のため
に特別に開発されたプロトコルである。
【0084】 リンク・プロトコルは、アプリケーション・アクセス・サーバからクライアン
トへのリンク上でのオーバヘッドが低く保たれるように設計されるべきである。
これは、例えば、IP/UDP/RTPが使用されない適切なリンク・プロトコ
ルを用いること、あるいはIP/UDP/RTPヘッダの効率的な圧縮によって
行われ得る。リンク層は、レイテンシをより最小化し、アプリケーション・アク
セス・サーバにリンクの特性の情報を提供する必要がある。そのような情報には
、予期される帯域幅、ビット誤り率及びリンク・レイテンシが含まれる。
【0085】 ここではアプリケーション転送プロトコルと呼ぶ、適切な転送プロトコル、A
TPがリンクで使用されるべきであるが、アプリケーション・オブジェクト・パ
ケット及びアプリケーション制御パケットが、リンク・プロトコルを介して直接
送信されてもよい。
【0086】 2つ以上のアプリケーション・アクセス・サーバ間での通信のために、IPパ
ケットのストリームが、ローカル・アプリケーション・アクセス・サーバの出力
バッファ65(図2参照)から、実行中のアプリケーションに参加している1つ
以上のリモート・アプリケーション・アクセス・サーバに送信される。TCP又
はUDPパケットとTCP又はUDPペイロードとを含む各IPパケットは、ア
プリケーション転送プロトコル(ATP)パケットである。
【0087】 2つのアプリケーション・アクセス・サーバ間での通信のための通信スタック
の最上位のプロトコル層は、クライアントの通信スタックで使用されるものと同
様なAOP/ACP層117である。アプリケーション・オブジェクト・パケッ
トは、極めて小さい、すなわち、40バイト以下であるかもしれない。2つのア
プリケーション・アクセス・サーバ間での通信をより効率的にするため、いくつ
かのアプリケーション・オブジェクト・パケットはアプリケーション転送プロト
コル(ATP)層に集められる。次の層はTCP又はUDP層121であり、最
下位層はIP層123であるが、121、123の両方は当技術分野では周知で
ある。IP層から情報パケットがリモート・アプリケーション・アクセス・サー
バ・ユニットに送信される。出力バッファ・ユニット(図2の65)は、ATP
ペイロードとなるアプリケーション・オブジェクト・パケットを集めるソーティ
ング・バッファの組を有する。これらバッファの構造は、配布の方針によって決
定される。リモートアプリケーション・アクセス・サーバのそれぞれに対して、
1つのソーティング・バッファがあるかもしれない。
【0088】 アプリケーション・オブジェクト・パケットは、更新すべきクライアントをリ
ストで表わすフィールドを含んでいてもよい。このフィールドは、アプリケーシ
ョン・オブジェクト・パケットを受信すべきアプリケーション・アクセス・サー
バ・ユニットのリストに変換される。アプリケーション・アクセス・サーバは、
クライアント番号をアプリケーション・アクセス・サーバの番号とを突き合わせ
るテーブルを有している。これは、全ての関連するアプリケーション・アクセス
・サーバ・ユニットが、結局は更新されることを意味する。そしてアプリケーシ
ョン・アクセス・サーバ・ユニットは、アプリケーション・オブジェクト・パケ
ットをそれらのローカル・クライアントに発送する。簡単なオプションの動作モ
ードとしては、全てのアプリケーション・アクセス・サーバ・ユニットが全ての
アプリケーション・データを受信する。
【0089】 ローカル・アプリケーション・アクセス・サーバは、リモート・アプリケーシ
ョン・アクセス・サーバを介してリモート・クライアントに送信する必要がある
、アプリケーション・オブジェクト・パケットを識別する。このため、ローカル
・アプリケーション・アクセス・サーバのアプリケーション状態レシーバがスキ
ャンされ、new_client_dataフラグが設定されたアプリケーション・オブジェク
ト・パケットが見つけられる。アプリケーション・オブジェクト・パケット・ヘ
ッダは、そのアプリケーション・オブジェクト・パケットが送信されるべき1つ
以上のクライアント・アドレスをリストで表わす受信者グループ・フィールドを
含んでいる。この受信者グループ・フィールドが検査される。クライアント・ア
ドレスは、リモート・アプリケーション・アクセス・サーバのアドレスに変換さ
れ、アプリケーション・オブジェクト・パケットのコピーが、受信者であるアプ
リケーション・アクセス・サーバ・ユニットに対応するソーティング・バッファ
に挿入される。受信しているアプリケーション・アクセス・サーバあるいはアプ
リケーション・アクセス・サーバのグループに属する受信者としてのクライアン
トだけが残るように、受信者グループ・フィールドが各アプリケーション・オブ
ジェクト・パケットのコピーに対して変更される。新たなnew_client_dataフラ
グが設定される。
【0090】 アプリケーション・オブジェクト・パケットは、ゲーム・アプリケーションか
らのペイロードを含んでいる。アプリケーション・アクセス・サーバ・システム
は、内部のゲームのペイロード・フォーマットは読み取れない。従ってこのよう
なメッセージはアプリケーション・オブジェクト・パケット(AOP)内に包含
される。AOPのヘッダは、アプリケーション・アクセス・サーバ・システムで
読み取られる。これはゲーム・ペイロードのタイムリーな配信のために必要な情
報を付加するのに使用される。
【0091】 ここで検討した実施形態では、IP、TCP、UDP及びRTPなどの標準的
インターネット・プロトコルに加え、以下の3つの非標準的プロトコルを使用す
る。 ・アプリケーション・オブジェクト・パケット(AOP)は、ゲーム・データ
のコンテナである。ゲーム・アプリケーションからリモート・ゲーム・クライア
ント又はサーバに送信される全てのデータは、アプリケーション・アクセス・サ
ーバ・システムによって処理されるように、AOPに包含される。 ・アプリケーション制御プロトコル(ACP)は、制御メッセージを送信する
のに使用される。制御メッセージは、アプリケーション・アクセス・サーバ・ユ
ニット、クライアント及びアプリケーション・ロビー・サーバの間で送信される
。 ・アプリケーション転送プロトコル(ATP)は、アプリケーション・アクセ
ス・サーバ・ユニット間及びオプションとしてアプリケーション・アクセス・サ
ーバとクライアントの間で、集められたゲーム・データを送信するのに使用され
る。
【0092】 アプリケーション・オブジェクト・パケットは、ゲーム・アプリケーションか
らのメッセージを含んでいる。アプリケーション・アクセス・サーバ・システム
は、ゲームの内部メッセージ・フォーマットは読み取れない。従ってこのような
メッセージは、アプリケーション・オブジェクト・パケット(AOP)に包含さ
れる。AOPのヘッダは、アプリケーション・アクセス・サーバ・システムで読
み取られる。これはゲーム・ペイロードのタイムリーな配信のために必要な情報
を付加するのに使用される。
【0093】 アプリケーション・メッセージは、アプリケーション・オブジェクトの状態を
完全に定義できるか、そうでなければ基準状態に対するアプリケーション・オブ
ジェクトを表わすことができる。従ってAOPは、基準パケット(BP)と増分
パケット(IP)の2つのタイプがある。
【0094】 アプリケーション・オブジェクト・パケットは、ヘッダと後続するゲームに特
定のペイロードからなり、AOPで使用されるヘッダ・フィールドは以下を含む
。 1)アプリケーション・オブジェクト番号 2)AOPが生成されたときのゲームにおける時願を示すタイムスタンプ 3)オプションのパケット番号。オブジェクト番号及びタイムスタンプと組み
合わされて、パケットにユニークな識別子を形成する。同じゲーム・オブジェク
トに属するいくつかのAOPが、同じタイムスタンプを有するときにだけ、パケ
ット番号が使用される。 4)例えば、音声及び/又はビデオ情報が送信される場合、パケットがこのタ
イプの情報を含むかどうかを示すフラグが含まれ得る。 5)AOPが基準パケットか増分パケットかを示すフラグ 6)AOPが増分パケットである場合、基準AOPへのポインタ。このポイン
タは、タイムスタンプと基準AOPのパケット番号から構成され得る。基準AO
Pは基本AOP又は増分AOPのいずれでもよい。 7)メッセージを受信すべきクライアントを表わすレコード。これは、クライ
アントをリストで表わすこと、あるいは予め定められたクライアント・グループ
を使用することで行われる。デフォルトでは全てのクライアントがデータを受信
する。緊急フィールドは、各受信クライアントあるいはグループ・クライアント
に関連する。このフィールドは、メッセージが緊急である場合に、受信者を警告
するのに使用される。3つの緊急ビットで十分であろう。 なお、緊急フィールドに設定され得るフラグは、 Forbidden:AOPはクライアント又はライアント・グループに送信すべき
でない Fair_Play:フェア・プレイ・モードを使用(下記) Very_Urgent:クライアントの優先度をオーバーライド Urgent:クライアントが警告される Normal:クライアントの優先度に従って配信される Not_Urgent:ベスト・エフォートで配信される 簡単なフォーマットとしては、 <エントリ数><クライアント1><クライアント1への緊急度> <クライアント2><クライアント2への緊急度>… であり、リスト内の後の項目は前の項目をオーバーライドする。 例えば、2,all Forbidden,client_3 Urgent というフィールドは、全てのクライアントはAOPの受信を禁止されるが、
例外としてクライアント番号3はUrgentモードでAOPを得ることを意味する。 8)ペイロードのサイズ。
【0095】 アプリケーション制御プロトコル(ACP)は、ゲーム・クライアント、アプ
リケーション・アクセス・サーバ・ユニット及びアプリケーション・ロビー・サ
ーバ(ALS)の間で制御メッセージを送信するのに使用される。ACPの概要
をここで説明する。ACPパケットはヘッダとメッセージ本体からなる。
【0096】 ACPメッセージは以下のフィールドを含み得る。 1)ACPメッセージ・タイプ 2)メッセージが生成されたときのゲームにおける時間を示すタイムスタンプ 3)メッセージのサイズ 4)メッセージ本体 メッセージの送信元は高位のプロトコル・レベルで識別されることに注意され
たい。以下において、ACPを用いて送信されるメッセージの概要を説明する。
【0097】 クライアントからアプリケーション・アクセス・サーバへのACPメッセージ
は以下のものを含み得る。 ・クライアント終了。アプリケーション・アクセス・サーバ管理システムは、
全てのレコードからそのクライアントを削除し、アプリケーション・ロビー・サ
ーバ(ALS)に通知する。ゲームをやめていたら、クライアントはALSへ通
知するのを受け持つ。ALSは、例えば、最終スコアを送信して他のプレーヤに
通知することによって、終了したクライアントとの接続を終了させるのを受け持
つ。 ・サブスクリプション ・ゲーム・オブジェクト追加。新たなゲーム・オブジェクト番号がアプリケー
ション・アクセス・サーバで生成され、アプリケーション・アクセス・サーバの
メモリがクライアントからオブジェクト状態情報を受信するために割り当てられ
る。 ・ゲーム・オブジェクト削除。更新を受信するリストに記された、全てのクラ
イアント及びアプリケーション・アクセス・サーバ・ユニットが最後の更新を受
信した後に、全てのアプリケーション・アクセス・サーバのメモリからオブジェ
クトが削除される。 ・オブジェクトの推定レイテンシ送信。この要求はオブジェクト番号のリスト
を含む。アプリケーション・アクセス・サーバは、オブジェクトに対してエンド
ツーエンドで推定されたレイテンシを送信することで応答する。クライアント・
アプリケーションは、レイテンシを隠すのに推定値を使用する。 ・オブジェクト・グループの定義。そうでなければAOPフィールド内のクラ
イアントとのリンクによって送信しなければならない、オブジェクト番号の長い
リストに短い名前を付けられるので、オブジェクト・グループは有用である。ア
プリケーション・アクセス・サーバは、クライアント・グループ情報を格納し、
クライアント・グループをクライアントのリストのエイリアス(別名)として扱
う。メッセージのフォーマットは、 メッセージ・タイプ=クライアント・グループ定義<クライアント・グルー
プ名><クライアントのリスト> などでよい。 ・時間基準送信。このメッセージは、アプリケーション・アクセス・サーバか
ら基準時間をダウンロードするのに使用される。
【0098】 アプリケーション・アクセス・サーバからクライアントへのACPメッセージ
は、以下のものを含み得る。 ・緊急リスト。このメッセージは、未読の緊急AOPが残っている場合、クラ
イアントを警告するのに使用される。アプリケーション・アクセス・サーバは、
AOP受信者リスト上に現在のクライアントを有する、全ての未読AOPをスキ
ャンする。緊急リストのフォーマットは、 <緊急クラス 1><オブジェクト番号のリスト><緊急クラス 2><オ
ブジェクト番号のリスト>…以下同様、などでよい。 ・レイテンシ推定。これは以下のようなエントリのセットからなる。すなわち
、 <ゲーム・オブジェクト番号><アップストリーム・レイテンシ><アップ
ストリーム・レイテンシ変数><ダウンストリーム・レイテンシ><ダウンスト
リーム・レイテンシ変数> である。「不明」の記号を最初以外のフィールドに
使用できる。 ・オブジェクト・グループ番号確認。アプリケーション・アクセス・サーバは
、クライアントから「オブジェクト・グループ定義」メッセージを既に受信して
いる。これでグローバル・オブジェクト番号が割り当てられたのを確認する。メ
ッセージ本体は、 <グローバル・オブジェクト・グループ番号><クライアントのオブジェク
ト・グループ名> を含むであろう。 オブジェクト番号を割り当てる簡単な方法は以下のようなものである。 合計でN個のアプリケーション・アクセス・サーバ・ユニットが動作中であると
想定する。全てのアプリケーション・アクセス・サーバ・ユニットを列挙する。
番号kのアプリケーション・アクセス・サーバが新たなオブジェクト番号を要求
したら、{k,N+k,2N+k,3N+k,…}から最も小さい未使用のオブ
ジェクト番号を割り当てる。 ・クライアント・グループ番号確認。アプリケーション・アクセス・サーバは
、クライアントから「クライアント・グループ定義メッセージを既に受信してい
る。これでグローバル・クライアント・グループ番号が割り当てられたのを確認
する。メッセージ本体は、 <グルーバル・クライアント・グループ番号><クライアントのクライアン
ト・グループ名> を含むであろう。 クライアント・グループ番号を割り当てるのに、グローバル・オブジェクト・
グループ番号を割り当てるのと同じアルゴリズムが使用できる。 ・クロック同期。アプリケーション・アクセス・サーバは、以下のフォーマッ
トに従って時間基準を送信する。すなわち、 <クライアント時間>=<時間>+<クライアントのクロックのレイテンシ
> である。 クライアントは、受信した一連のクロック同期メッセージに従って、ローカル
・クロックを調整するアルゴリズムを有している。
【0099】 あるアプリケーション・アクセス・サーバから別のサーバへのACPは以下の
ものを含み得る。 ・集められたサブスクリプション。送信するアプリケーション・アクセス・サ
ーバに属するクライアントが見る必要のあるオブジェクト、すなわち、送信する
アプリケーション・アクセス・サーバに情報が送信されるべきオブジェクト、を
示す集められた優先度リスト。このリストは単純なクライアント優先度リストと
同様なフォーマットである。これは有効なローカル・クライアント優先度リスト
を合算し、重複部分を削除することで組み立てられる。 ・再送要求。このメッセージは、単純な優先度リストと同様なフォーマットで
あり、リストに示されたオブジェクトの状態を再送する要求であると解釈される
。 ・オブジェクト・グループ定義。オブジェクト・グループ定義は、アプリケー
ション・アクセス・サーバ間で配布され得る。オブジェクト番号の長いリストに
対してグローバルな名前を使用することで、トラフィックを削減するのを助長す
る。 ・クライアント・グループ定義。クライアント・グループ定義は、アプリケー
ション・アクセス・サーバ間で配布され得る。
【0100】 アプリケーション・アクセス・サーバからアプリケーション・ロビー・サーバ
へのACPメッセージは以下のものを含み得る。 ・クライアントが終了した。このメッセージは、クライアントが自発的にゲー
ムから抜けたときに送信される。 ・クライアントのタイムアウト。クライアントとの通信が長時間ないとき、あ
るいはクライアントへのリンクが閉鎖されたときに、アプリケーション・アクセ
ス・サーバはALSにメッセージを送信し得る。ALSは、ゲームからのクライ
アントの削除などの更なる動作を決定する。
【0101】 ALSはクライアントとして動作できる。ALSは例えば、ゲームのスコアを
維持するゲーム・オブジェクトを制御するかもしれない。ALSのポートは、T
CP/IPなどの「リンク」プロトコルを使用するクライアントとして、AAS
に接続される。従ってALSは、クライアントと同じメッセージを使用できる。
ALSからAASへの他のメッセージを以下にリストする。 以下のものを含むアプリケーション設定情報。 ・ALSを識別するポート番号を含むネットワーク・アドレス ・ゲームをユニークに識別するURL ・ゲームに参加している他のアプリケーション・アクセス・サーバ・ユニット
のIPアドレス ・オプションとして、列挙されたゲーム・オブジェクトのリスト。各オブジェ
クトに対して、状態を格納するのを受け持つアプリケーション・アクセス・サー
バが指定される。誰が状態を更新するのを認可されたかも指定されてもよい。 ・オプションとして、格納すべき最初のゲーム状態。 ・タイムアウトなどのオプションのデータ指定制御方針。 ・アプリケーション・アクセス・サーバ追加。新たなアプリケーション・アク
セス・サーバのネットワーク・アドレス、番号及びクライアント・リストが指定
される。 ・アプリケーション・アクセス・サーバ削除。削除すべきアプリケーション・
アクセス・サーバの番号が指定される。 ・クライアント追加。これは新たなクライアントのネットワーク・アドレスを
含み、オプションとして、新たなクライアントによって制御される新たなゲーム
・オブジェクトの初期状態も含まれる。 ・クライアント削除。アプリケーション・アクセス・サーバ・システムは、ゲ
ームからクライアントを削除する。 ・クライアント状態変更。このメッセージは、ゲーム・オブジェクトを制御す
るクライアントの権限を変更するか、あるいはクライアントを別のアプリケーシ
ョン・アクセス・サーバと結びつける。フォーマットは、 <クライアント番号><アプリケーション・アクセス・サーバ番号><オブ
ジェクト番号> などであり得、ここでオブジェクト番号は、クライアントによ
って制御されるゲーム・オブジェクトを示す。
【0102】 アプリケーション転送プロトコル(ATP)は、アプリケーション・オブジェ
クト・パケット(AOP)及びアプリケーション制御プロトコル(ACP)メッ
セージを転送するのに使用される。ATPは、ペイロードに一連のAOP及びA
CPメッセージを有し、アプリケーション・アクセス・サーバ・ユニット間で集
められたデータを送信するのに主に使用される。アプリケーション・アクセス・
サーバ・ユニットは、通常はIP/UPD/ATPのプロトコル・スタックを用
いて通信する。このためATPはRTPプロトコルと論理レベルが同じである。
【0103】 ATPヘッダは、 ・ゲームを識別するURL、 ・AOPあるいはACPの最先のタイムスタンプ、 ・AOPあるいはACPの最後のタイムスタンプ、 ・AOP及びATPメッセージの数、を含んでいる。
【0104】 ATPは通常、説明したように、アプリケーション・アクセス・サーバ間での
通信にのみ使用される。クライアントとアプリケーション・アクセス・サーバと
の間の接続の帯域幅が十分に大きければ、これらの接続にも使用され得る。
【0105】 TCP/IP及び/又はUPD/IPなどの従来のプロトコルは、アプリケー
ション・ロビー・サーバ及び他のアプリケーション・アクセス・サーバ・ユニッ
トとの通信に使用される。以下に示す理由で、TCP/IPはゲームを設定する
のに使用される必要があり、UDP/IPはリアルタイムのゲーム・データを送
信するのに使用される必要がある。すなわち、TCPの再送及び再発注は遅すぎ
てゲーム・アプリケーションには複雑である。TCPの再発注は、古すぎるデー
タを配信する目的のため、直近の更新の配信が遅延するかもしれない。も早必要
でないデータの再送は明らかに無駄である。アプリケーション・アクセス・サー
バ・ユニットは、正確な優先度を知っており、必要であればいくつかの送信元か
らの再送を要求できる。
【0106】 タイムスタンプを送信するのにRTPが使用されてもよいが、RTPは音声及
びビデオ・ストリームのために設計されておりゲームのストリームには最適では
ない。しかしながらRTPは、ゲームに関連する音声及びビデオ・ストリームを
運ぶのには使用できる。
【0107】 「フェアプレイ・モード」をシステムで実施することもできる。このモードで
は、アプリケーション・アクセス・サーバ・ユニットは、重要なアプリケーショ
ン情報の配信を同期させ、そのためこれらの更新は関連する全てのクライアント
で同時に受信される。このモードは競争に使用できる。
【0108】 アプリケーション・ロビー・サーバは、アプリケーションを設定する間に、フ
ェアプレイ・モードが利用可能かどうか決定する。フェアプレイ・モードが許可
されたら、送信クライアントは、送信されたAOPそれぞれについて、フェアプ
レイ配信を使用すべきかどうか決定する。これはAOPの緊急フィールド内のFa
ir_Playフラグを設定することにより行われる。アプリケーション・アクセス・
サーバ・システムはここで、AOPを全てのクライアントに「同時に」配信する
のを受け持つ。この要件は他の全てのクライアント優先度をオーバーライドする
【0109】 これに対する技術的解決策は、「バケット同期(bucket synchronization)」
方法である。複数のアプリケーション・アクセス・サーバ・ユニットが、クライ
アントを固定の絶対遅延で更新するよう合意する。速く到着した更新は、合意し
たタイムスロットまで待たねばならない。この方法は、システム内の全体の遅延
が増加するという欠点がある。フェアプレイ・モードが、代替的にゲーム・アプ
リケーションで処理されてもよい。このモードでは、クライアント・アプリケー
ションは、合意した絶対遅延を達成するのにパケットをどれだけ遅延させるべき
かを計算するのに各ゲーム・オブジェクトのタイムスタンプを用いて、受信した
ゲーム・データに合意した遅延を適用する。
【0110】 図6は、本発明によるアプリケーション・アクセス・サーバ150の別の実施
形態を示している。特に言及しない限り、この実施形態は上記で検討したものと
同様である。この実施形態では、アプリケーション・アクセス・サーバの通信機
能は、1つ以上のアプリケーション・ルータ152とアプリケーション・サーバ
154とに分離されている。アプリケーション・サーバ154は、図1に関して
説明したような、アプリケーション状態レコード155及びクライアント優先度
リスト161を備えている。アプリケーション・ルータ152は、以下でより詳
細に説明する、クライアントのアプリケーション・プログラミング・インタフェ
ース(API)172によって1つ以上のクライアントと通信する。各アプリケ
ーション・アクセス・サーバ150は、1つ以上のアプリケーション・ルータ1
52をサービスする1つのアプリケーション・サーバ154を備えている。アプ
リケーション・ルータ152も、別のアプリケーション・アクセス・サーバ(不
図示)内のアプリケーション・ルータなどのネットワーク内の他のノードと通信
する。好ましくは、アプリケーション・サーバ154及びアプリケーション・ル
ータ152は、各々をそれらの特定の機能について最適化すべく、別々のハード
ウェアとして実現される。代替的には、それらに割り当てられた別々のプロセッ
サ・リソースを有していてもよい。特に、アプリケーション・ルータは、中断は
クライアント・アプリケーションのリアルタイム性能を悪化させるよう影響する
ので、中断せずに動作することが必要である。
【0111】 上記では、あるクライアントに接続されたアプリケーション・アクセス・サー
バをそのクライアントのローカル・アプリケーション・アクセス・サーバとし、
そのクライアントをアプリケーション・アクセス・サーバのローカル・クライア
ントとした。同様に、クライアントをサービスするアプリケーション・サーバ及
びアプリケーション・ルータを、クライアントのローカルなアプリケーション・
サーバ及びアプリケーション・ルータとする。
【0112】 アプリケーション・サーバは、クライアントからアプリケーション・ルータを
通じて基本オブジェクト(下記参照)と制御メッセージを含むATPパケットを
受信する。基本オブジェクトを、例えば、アプリケーション状態データベースに
入れることによって処理する前に、アプリケーション・サーバは送信クライアン
トがそのオブジェクトを更新するのを許可されていることをチェックする。クラ
イアントがオブジェクトを更新するのを認可されていない場合、そのオブジェク
トは拒絶され、送信クライアントはエラー・メッセージを受信するであろう。制
御メッセージを処理する前に、アプリケーション・サーバは、送信クライアント
が示された動作を要求するのを許可されていることをチェックし、そうでなけれ
ば制御メッセージを拒絶し、オプションとしてエラー・メッセージを送信クライ
アントに返す。例えば、送信クライアントがオブジェクト・グループの削除を要
求した場合を考える。このグループはコンテント・サーバによって作成されたも
のかも知れないが、該コンテント・サーバは、ゲーム状態の管理と標準的クライ
アントAPIによるアプリケーション・アクセス・サーバとの通信とを受け持つ
、特別なクライアントである。コンテント・サーバは、ゲーム・アクセス・サー
バにクライアントがオブジェクト・グループを削除するのを禁止する認可規則を
アップロードした。この場合、アプリケーション・サーバは、オブジェクト・グ
ループの削除を要求する制御メッセージを拒絶するであろう。
【0113】 この認可チェックは、クライアントが実行を許可された動作の種類を示す、認
可規則のテーブルを用いて実行される。認可テーブルはクライアントあるいは初
期化ファイルを使用する制御ユニットによって設定される。
【0114】 もしそのように認可されていれば、クライアントは、オブジェクト・グループ
の作成を要求できる。クライアントはまた、メンバーの追加、メンバーの削除及
びオブジェクト・グループの削除を行える。オブジェクト・グループのメンバー
は、オブジェクトとオブジェクト・グループである。オブジェクト・グループに
ついてのそのような動作の要求は、アプリケーション・ルータからセッションに
参加している全てのアプリケーション・サーバにブロードキャストされる制御メ
ッセージとして、クライアントによって送信される。オブジェクト・グループは
、オブジェクト識別子と同じフォーマットを有する識別子によって識別される。
各アプリケーション・サーバは、各アプリケーション・セッションについて、そ
のセッションの間に作成されたオブジェクト・グループを格納する、オブジェク
ト・グループ・データベース162を含んでいる。オブジェクト・グループ・デ
ータベース162は、各オブジェクト・グループに対して、少なくとも以下のフ
ィールドを格納する。すなわち、1)オブジェクト・グループ識別子、2)オブ
ジェクト・グループのメンバーのリスト、3)オブジェクト・グループの親のリ
スト、である。オブジェクト・グループAの親は、メンバーとしてオブジェクト
・グループAを持つオブジェクト・グループである。オブジェクト・データベー
スは、前の実施形態におけるオブジェクト・データベースとして構築されるが、
各オブジェクトについて、そのオブジェクトに対する親であるオブジェクト・グ
ループのリストがある。
【0115】 アプリケーション状態の一部を形成すべき、クライアントから又は他のアプリ
ケーション・アクセス・サーバから受信したオブジェクトは、アプリケーション
・ルータ152からアプリケーション・サーバ154に送られ、アプリケーショ
ン状態レコード155に格納される。クライアントから又は他のアプリケーショ
ン・アクセス・サーバから受信したサブスクリプション情報は、アプリケーショ
ン・サーバ154に送られ、クライアント優先度リスト161に格納される。
【0116】 サイト・マネージャ174は、1つ以上のアプリケーション・ルータ152及
びアプリケーション・サーバ154をそれぞれ備える、1つ以上のアプリケーシ
ョン・アクセス・サーバの機能を、好ましくはアプリケーション・ルータ152
への接続を通じて制御する。サイト・マネージャはまた、サイトを制御するのに
標準的プロトコルSNMP(簡易網管理プロトコル)を使用できる。
【0117】 従って、1つのサイトは、1つのサイト・マネージャと1つのサイト・マネー
ジャによって制御されるいくつかのアプリケーション・アクセス・サーバ150
とを備えている。サイト・マネージャ174のメイン・タスクは、接続管理、ク
ライアント接続、リソース管理、アプリケーション・サーバ及びルータの構成、
許可制御、クライアントの認可、サイトの時間同期、ネットワーク管理と、負荷
、アプリケーションサーバ及びアプリケーション・ルータの状態の監視である。
【0118】 サイト・マネージャはオプションとして、クライアントからの制御メッセージ
を含むアプリケーション転送プロトコル(ATP)パケットを受信する。この実
施形態におけるATPは、以下で説明するが、先の実施形態に関して説明したA
TPとは異なっていることに注意されたい。制御メッセージを処理する前に、S
Mは送信クライアントが示された動作を要求するのを許可されていることをチェ
ックし、もしそうでなければ制御メッセージは拒絶され、送信クライアントはオ
プションのエラー・メッセージを受信する。この認可チェックは、クライアント
が行うのを許可された動作の種類を示す、認可規則のテーブルを用いて実行され
る。認可テーブルは、クライアントあるいは初期化ファイルを使用するロビー・
アクセス・サーバ178によって設定される。
【0119】 アプリケーション・ロビー・サーバ176及び1つ以上のロビー・アクセス・
サーバ178への接続に、1つ以上のアクセス・ロビー・サーバ178が提供さ
れる。アプリケーション・ロビー・サーバは、図2に関して検討した。1つある
いは複数のロビー・アクセス・サーバ178は、サイト・マネージャ174に接
続されている。ロビー・アクセス・サーバは、ロビー・サーバからのゲーム・セ
ッションを処理し、ゲーム・セッションをアレンジし管理する。これにはロビー
・サーバの登録及び認可並びに清算を含む。該サーバはまた、データベース内に
ゲーム及びロビー・サーバについての情報を保持する。アプリケーション通信シ
ステムの監視及び保全に、中央制御ユニット(不図示)が使用されてもよい。
【0120】 アプリケーション通信システムは、1つ以上の相互接続されたサイト及びロビ
ー・アクセス・サーバを備えている。アプリケーション通信システムの監視及び
保全に、中央制御ユニット(不図示)が使用されてもよい。
【0121】 ロビー・アクセス・サーバ178は、どのアプリケーション・ロビー・サーバ
が、特定のゲームあるいは特定のアプリケーション・アクセス・サーバにクライ
アントを追加するのを許可されているのか、などのネットワーク内にあるアプリ
ケーション・ロビー・サーバについての情報を含む、データベース180を備え
ている、あるいはそれに接続されている。アプリケーション・ロビー・サーバ1
76は、各クライアントについての認可プロファイルなどのクライアント・デー
タを含む、データベース182を備えて、あるいはそれに接続されていてもよい
【0122】 サイト・マネージャと1つ又は複数のアプリケーション・サーバとの間の通信
は、セッションの追加及び削除、セッションについてのクライアントの追加及び
削除を含む制御を行う。サイト・マネージャと1つ又は複数のアプリケーション
・ルータとの間の通信は、上記並びにクライアントに対するログイン許可と同様
である。また、エラー・メッセージは、アプリケーション・サーバ又はアプリケ
ーション・ルータからサイト・マネージャに送信される。
【0123】 好ましくは、ローカル・アプリケーション・ルータ152は、クライアント、
ネットワーク内の他のアプリケーション・ルータ又は他のユニットから受信した
、ストリーム・オブジェクト及び基本オブジェクトの両方を扱える。クライアン
トは、基本オブジェクトの更新それぞれのコピー1つを、ローカル・アプリケー
ション・アクセス・サーバに送信する。オブジェクトは例えば、プレーヤのアバ
ター(化身)の状態を含んでいる。基本オブジェクトは、セッションに関係する
全てのアプリケーション・サーバに送られる。クライアント又は他のアプリケー
ション・アクセス・サーバからのアプリケーション・ルータによって受信された
基本オブジェクトは、関連するアプリケーション・サーバのアプリケーション状
態レコードに格納される。ストリーム・オブジェクトの受信望むプレーヤは、ロ
ーカル・アプリケーション・サーバにサブスクリプションを発信する。アプリケ
ーション・サーバは、サブスクリプションのパラメータに従って、ローカル・ア
プリケーション状態レコードから一連のオブジェクトの更新を送信する。ストリ
ーム・オブジェクトは、アプリケーション・サーバに格納されていない。基本オ
ブジェクト及びストリーム・オブジェクトについて以下でより詳細に検討する。
アプリケーション・ルータは、アプリケーション転送プロトコル(ATP)パケ
ットを、クライアント、ローカル・アプリケーション・サーバ、他のアプリケー
ション・ルータ及びオプションでローカル・サイト・マネージャから受信する。
ATPパケットは、UDP/IPなどの他のネットワーク・プロトコルによって
転送される。他のアプリケーション・ルータは、リモート(リモート・アプリケ
ーション・アクセス・サーバに属している)か、ローカル(アプリケーション・
ルータと同じアプリケーション・アクセス・サーバに属している)のいずれかで
ある。受信されたATPパケットには異なる3つのタイプがある。すなわち、ア
プリケーション・オブジェクト・パケット(AOP)の基本オブジェクト及びス
トリーム・オブジェクト、アプリケーション制御パケット(ACP)の制御デー
タ、及びクライアント・メッセージ・パケット(CMP)のクライアント・メッ
セージである。ATPパケットは、ユニキャスト又はマルチキャストによって、
受信クライアント、アプリケーション・ルータ、ローカル・アプリケーション・
サーバあるいはローカル・サイト・マネージャにルーティングされるか又は削除
される。異なったルーティングの場合を表に示す。受信するアプリケーション・
ルータに宛てられた制御パケットは、ルーティングされない。
【0124】 アプリケーション・ルータのルーティング・テーブルを以下に示す。
【0125】
【0126】 ストリーム・オブジェクトは、アプリケーション・サーバには格納されない。
クライアントは通常、それらを仮想世界において移動するアイテムの位置を送信
するのに使用する。それらはネットワークを通じて非常に高速で転送され得る。
ストリーム・オブジェクトの直近のバージョンだけが、受信クライアントにとっ
て重要であると想定される。ストリーム・オブジェクトの処理は、フロー制御の
ためにアプリケーション・ルータによって意図的に抜かされることがあるので、
通常は当てにならない。アプリケーション・ルータによって受信された全てのス
トリーム・オブジェクトは、そのストリーム・オブジェクトを申込んだ全てのロ
ーカル・クライアント、又はそのストリーム・オブジェクトを含むストリーム・
オブジェクト・グループに送られる。以下で検討するように、これらのオブジェ
クトはアプリケーション・サーバで処理されないので、アプリケーション・ルー
タ152も、優先度又はサブスクリプション情報を備えている。
【0127】 通常、例えば、実行中の特定のマルチプレーヤ・セッションなどのセッション
に加わるのを望むクライアントは、アプリケーション・ロビー・サーバ176に
インターネットによって接続する。アプリケーション・ロビー・サーバは、実行
中のアプリケーション・セッションについての情報を提供し、普通はクライアン
トに新たなセッションを作成することを許可し、加入するように他のクライアン
トを招待する。クライアントは、アプリケーション・ロビー・サーバ176に、
セッションの作成、削除、加入又はやめる要求を送信できる。アプリケーション
・ロビー・サーバは、そのようなセッション制御要求を受け取ると、その要求を
ロビー・アクセス・サーバ178に送る。セッションの作成が要求されると、ロ
ビー・アクセス・サーバ178は、アプリケーション・セッション識別子を発信
することにより応答する。セッションを削除したりクライアントの加入又は削除
などの要求に対しては、アプリケーション・ロビー・サーバ176は、ロビー・
アクセス・サーバ178に送信される要求にアプリケーション・セッション識別
子を含める。ロビー・アクセス・サーバ178は、アプリケーション・アクセス
・サーバ・システム内で要求された動作に合うリソースが使用可能であるかを調
査することによって応答する。リソースが使用可能であれば、ロビー・アクセス
・サーバ178は要求された動作を実行する。
【0128】 セッションの作成が要求されたら、ロビー・アクセス・サーバ178は、セッ
ションをサービスするサイトのセットを選択し、関連するサイト・マネージャ1
74に、セッション識別子を含み、適切なアプリケーション・アクセス・サーバ
150でセッションが開始されることを要求する制御メッセージを送信する。
【0129】 セッションの削除が要求されたら、ロビー・アクセス・サーバ178は、セッ
ションを実行しているサイトのサイト・マネージャ174に、セッション識別子
を含み、セッションが削除されることを要求する制御メッセージを送信する。
【0130】 クライアントの加入が要求されたら、アプリケーション・ロビー・サーバ17
6は、少なくともクライアント170のネットワーク・アドレス、セッション識
別子、及びオプションとしてサイト識別子を、ロビー・アクセス・サーバ178
への制御メッセージに含める。ネットワーク・アドレスは、例えば、クライアン
ト・アプリケーション処理のIPアドレス及びポート番号でよい。ロビー・アク
セス・サーバ178は、適切なサイトを選択し、サイトのサイト・マネージャ1
74に、クライアント170がゲーム・セッションに加わることを要求する制御
メッセージを送信する。この制御メッセージは、クライアント170のネットワ
ーク・アドレスと、サイトのサイト・マネージャ174へのセッション識別子と
を少なくとも含んでいる。サイト・マネージャは、適切なアプリケーション・ア
クセス・サーバと、適切なアプリケーション・ルータとを、クライアントをサー
ビスするのを受け持つべきユニット内で選択し、クライアントをゲームに加入す
るよう招待する制御メッセージをクライアントに送信する。クライアントをサー
ビスするアプリケーション・ルータのネットワーク・アドレスとパスワードとが
、そのメッセージには含まれている。クライアント170は、パスワードを含む
制御メッセージで関連するアプリケーション・アクセス・サーバ150に連絡す
る。アプリケーション・アクセス・サーバ150は、ローカル・クライアント・
データベースにクライアント170を含め、クライアントはゲームデータを送信
及び受信して処理を続行することができる。
【0131】 代替的には、サイト・マネージャ174は、ロビー・アクセス・サーバ178
にクライアント170をサービスするアプリケーション・ルータ152のネット
ワーク・アドレスを送信することができ、ロビー・アクセス・サーバ178は、
アプリケーション・ロビー・サーバ176にネットワーク・アドレスとパスワー
ドとを送る。アプリケーション・ロビー・サーバ178は、ネットワーク・アド
レスとパスワードとを、上記で説明したように、関連するアプリケーション・ア
クセス・サーバに接続する、要求クライアントに送る。
【0132】 図6には、バッファ、ソフトウェア処理等が何も示されていないが、本発明の
アプリケーション・アクセス・サーバを実現するためにはそれらが必要なことは
当業者には理解できるであろう。
【0133】 クライアント170、アプリケーション・アクセス・サーバ150及びサイト
・マネージャ174は、アプリケーション転送プロトコル(ATP)を用いて通
信する。ATPパケットは通常、先の実施形態で検討したように、UDPパケッ
トのペイロードとして運ばれる。この実施形態で使用されるATPを以下で説明
する。アプリケーション転送プロトコルは、1)複合(コンパウンド)ATPパ
ケット、2)標準ATPパケット2つのプロトコル・レベルを含んでいる。
【0134】 複合ATPパケットは、ソース・ヘッダといくつかの標準ATPパケットを含
んでいる。ソース・ヘッダは以下のようなフィールドを含んでいる。 1)アプリケーション・セッション識別子、 2)送信クライアントを含むクライアント識別子、 3)保証された送信のプロトコルで使用され、確認フィールドとパケット・カ
ウンタを含む、オプション・フィールド。
【0135】 標準ATPパケット(以下では「ATPパケット」とも呼ぶ)は、ATPヘッ
ダ、ATPオプション・ヘッダ、オプションのATPターゲット・ヘッダ及びA
TPコンテント・パケットからなる。
【0136】 ATPヘッダは、以下のフィールドを含み得る。 1)コンテント・パケットのタイプとコンテント・パケット内のオプション。
フィールドの存在を示すフラグのセットである、タイプ・フィールド。コンテン
ト・パケットのタイプは、制御メッセージ、クライアント・メッセージ、基本オ
ブジェクトあるいはストリーム・オブジェクトである。メッセージの意図した受
信者を、タイプ・フィールドに示し得る。 2)ATPパケットが信頼できる又は信頼できないモードで送られたのかを示
すフラグ、 3)ターゲット・ヘッダが存在するかを示すフラグ、 4)ATPオプション・ヘッダの存在及び内容を示すフラグのセット、 5)コンテント・パケットのサイズを示すフラグ。
【0137】 ATPオプション・ヘッダは、以下のオプション・フィールドからなる。 1)セッション識別子、 2)クライアント識別子、 3)オブジェクト識別子。
【0138】 ATPオプション・ヘッダは、コンテント・パケットを識別するのに使用され
る。基本オブジェクトに関連するアプリケーション・ペイロードは、例えば、コ
ンテント・パケットで送信されてもよい。ATPオプション・ヘッダは、以下で
説明する相対アドレッシング・システムを使用する基本オブジェクトを識別する
のに使用される。
【0139】 ATPターゲット・ヘッダTHは、ATPパケットの直接アドレッシングに使
用される。受信者のATPアドレスは、ATPターゲット・ヘッダに示されてい
る。THの最初の位置はTHのサイズを保持するバイトである。THは、メッセ
ージの意図する受信者を示すクライアント識別子のリスト、あるいはストリーム
・オブジェクト・キーのリストのいずれかである、動的アドレス・フィールドの
アレイからなる。キーは、送信者によって送信され得るストリーム・オブジェク
トの属性である。クライアントは、所望するストリーム・オブジェクトのオブジ
ェクト識別子がわからなくても、特定のキーを運ぶ所望するストリーム・オブジ
ェクトを申込むことができる。クェーク(Quake)のようなゲームでは、異なっ
た部屋に属するストリーム・オブジェクトを選択するのにキーを使用できる。ス
トリーム・オブジェクトは、ゲームにおけるアバターの位置を送信するのに使用
される。ゲームの各部屋にキーが割り当てられている。ストリーム・オブジェク
トを送信しているプレーヤは、アバターが位置する部屋に対応するキーを加える
。データを受信しているプレーヤは、彼らが興味を持つ部屋に対応するキーと共
にストリーム・オブジェクトを申込む。ストリーム・オブジェクト・キーは、代
替的に、例えば、危険であるとして、チームを識別したりオブジェクトを分類す
るのに使用され得る。ローカル・アプリケーション・アクセス・サーバのストリ
ーム・オブジェクト・フィルタは、プレーヤのストリーム・オブジェクトに対す
るサブスクリプションを受信して、プレーヤがストリーム・オブジェクトを要求
したキーで得るのを保証する。
【0140】 ATPコンテント・パケット(CP)は、1)基本オブジェクト、2)ストリ
ーム・オブジェクト、3)制御メッセージ、4)クライアント・メッセージ、の
いずれのタイプでもよい。基本オブジェクト、ストリーム・オブジェクト及びク
ライアント・メッセージのCPは、アプリケーション・ペイロードを含んでいる
。制御メッセージは、メッセージ・タイプとメッセージ・パラメータを含んでい
る。アプリケーション制御プロトコルは、メッセージ・タイプ・フィールド及び
各メッセージのパラメータのフォーマットを指定する。
【0141】 セッション識別子、クライアント識別子及びオブジェクト識別子は、以下で説
明するような動的アドレス・フィールドである。クライアント・グループ及びオ
ブジェクト・グループは、クライアント及びオブジェクトのそれぞれと識別子の
フォーマットが同じである。
【0142】 本明細書においては以下の名前及び定義を使用している。アプリケーション・
オブジェクト・パケットとは、コンテント・パケットにアプリケーション・オブ
ジェクトを含むATPパケットである。アプリケーション制御プロトコル・パケ
ットとは、コンテント・パケットに制御メッセージを含むATPパケットである
。基本オブジェクト、ストリーム・オブジェクトあるいはクライアント・メッセ
ージの送信は、常に、適切なタイプのコンテント・パケットを有するATPパケ
ットが送信されることを意味する。クライアント・メッセージ・パケットとは、
コンテント・パケットに受信者アドレス及びクライアント・メッセージを含むA
TPパケットである。
【0143】 ATP使用例は以下を含む。 A)クライアントは、基本オブジェクトをローカル・アプリケーション・サー
バに送信している。クライアント識別子でなくオブジェクト識別子又はセッショ
ン識別子がATPオプション・ヘッダに入れられる。ATPターゲット・ヘッダ
は全く必要ない。オブジェクト・ペイロードはコンテント・パケットに入れられ
る。オプション・ヘッダと動的アドレス・フィールドの使用は、ヘッダ・オーバ
ヘッドが4バイトまで小さくできることを意味する。オブジェクトはしばしば狭
い帯域幅の接続で送られるので、これは重要である。
【0144】 B)クライアントは、クライアント・メッセージを別のクライアントに送信し
ている。オブジェクト識別子と送信クライアントのクライアント識別子がATP
オプション・ヘッダに入れられる。セッション識別子は全く必要ない。メッセー
ジ・ペイロードはコンテント・パケットに入れられる。送信側のアプリケーショ
ン・ルータの入力フィルタは、ターゲット・ヘッダにセッション識別子を加える
。受信側のアプリケーション・ルータの出力フィルタは、パケットを受信クライ
アントに送る前にセッション識別子を削除する。
【0145】 ATPは動的アドレス・フィールドを使用する。動的フィールドは可変長プレ
フィクス・コードである。プレフィクス・コードは、前のコード・ワードを参照
せずに、ビット・フィールド内の各コード・フィールドが一意に復号され得るコ
ードである。単純な例は、アルファベット、{10,110,1110,…}で
ある。ハフマン符号は、シンボルの統計的分布について最適な(最小期待長)プ
レフィクス・コードである。動的アドレス・フィールドの代替的フォーマットは
、動的サイズ整数(dynamic size integer)である。動的サイズ整数は、コンピ
ュータ・サイエンスにおいては周知である。動的サイズ整数は、小さな値が最も
多いときには常に使用されるが、大きな値が可能でなければならない。2バイト
の動的サイズ整数では、最上位ビットは整数のサイズを表し、1は1バイトを意
味し、0は2バイトを意味する。4バイトの動的サイズ整数では、最上位の2ビ
ットは整数のサイズを表し、01は1バイトを意味し、10は2バイトを意味し
、11は3バイトを意味し、00は4バイトを意味する。
【0146】 動的アドレス・フィールドは、以下の2つの方法に従って使用できる。 第1の方法では、ATPは、1)アプリケーション・セッション識別子、2)
クライアント識別子、3)オブジェクト識別子、の3つの異なった識別子のため
のフィールドを有している。アプリケーション・セッション識別子は、グローバ
ルにユニークのものであり、ネット・マネージャあるいはロビー・アクセス・サ
ーバなどの中央機関によって割り当てられる。クライアント、アプリケーション
・ルータ、アプリケーション・サーバ及びオプションとしてサイト・マネージャ
のそれぞれは、クライアント識別子を有し、以下のノード内にある。クライアン
ト・グループ識別子は、クライアント識別子のフォーマットを有している。
【0147】 クライアント識別子は、特定のアプリケーション・セッションにおいてのみユ
ニークなものである。ロビー・アクセス・サーバ又は中央制御ユニットなどの中
央機関が、クライアント識別子を割り当てる。アプリケーション・セッション識
別子が既知であるときだけ、クライアント識別子でノードが識別される。ATP
は動的フィールドにクライアント識別子を格納する。アプリケーション・セッシ
ョンの各ノードには、クライアント識別子ができるだけ少ないビットで割り当て
られる。頻繁に使用されるクライアント識別子には、例えば、ハフマン符号化手
順に従って、最短のコードが割り当てられるであろう。
【0148】 オブジェクト識別子は、所与のセッションで所与のクライアントにユニークで
ある。クライアントがオブジェクト識別子を割り当てる。セッション識別子及び
クライアント識別子が既知であるときだけ、オブジェクト識別子によってオブジ
ェクトが識別される。ATPはオブジェクト識別子を動的フィールドに格納する
。各オブジェクトには、オブジェクト識別子ができるだけ少ないビットで割り当
てられる。頻繁に使用されるオブジェクト識別子には、例えば、ハフマン符号化
手順に従って、最短のコードが割り当てられるであろう。
【0149】 第2の方法は、以下の点を除いて第1の方法と同様である。クライアント識別
子は2つの動的フィールドからなる。第1のフィールドは、クライアントをサー
ビスしているアプリケーション・ルータの識別子である。第2の動的フィールド
は、クライアント・インデックスである。このインデックスは、できるだけ短く
なり、かつアプリケーション・セッション識別子が与えられたときにローカル・
アプリケーション・ルータ・クライアント識別子が既知のクライアントにユニー
クとなるように選択される。ローカル・アプリケーション・サーバのクライアン
ト識別子は、代替的に、ローカル・アプリケーション・ルータのクライアント識
別子の代わりに使用できる。
【0150】 上記のような動的アドレス・フィールドと相対的アドレッシングを使用する利
点は、使用する帯域幅と遅延が最小となることである。関連するアドレス・フィ
ールドだけが送信される。この例は以下のようなものである。 1)クライアントは1つのアプリケーション・セッションだけに係わる。クラ
イアントからのオブジェクトを含むATPパケットは、オブジェクト識別子だけ
を含んでいる。アプリケーション・セッション識別子及びクライアント識別子は
、アプリケーション・ルータは事実上知っているので送信されない。 2)ローカル・アプリケーション・サーバからクライアントへ送信されたオブ
ジェクトを含むATPパケットは、オブジェクト識別子とそのオブジェクトを所
有するクライアントのクライアント識別子だけを含んでいればよい。 3)新たなオブジェクトを作成するクライアントは、すぐにオブジェクト識別
子を割り当てる。グローバルにユニークなオブジェクト識別子の集中的割り当て
は、新たなオブジェクトが作成される前に中央機関との通信を必要とする。
【0151】 クライアント・グループ・アドレッシングは、以下に従って処理される。AT
Pのクライアント・グループが、クライアント識別子によって識別される。他の
クライアント識別子についてと同様な方法を用いて識別子が作成される。アプリ
ケーション・セッションの間にクライアントによってクライアント・グループの
裂くせいが要求されるか、あるいはセッションの初期化の一部としてクライアン
ト・グループの作成が実行される。
【0152】 各ATPパケットはATPヘッダにタイプ・フィールドを含んでいる。タイプ
・フィールドはコンテントの性質を表わしている。タイプ・フィールドの異なっ
たコードは、例えば、コンテントが、基本オブジェクト、ストリーム・オブジェ
クト、制御パケットあるいはクライアント・メッセージであることを示す。アプ
リケーション・ルータは、アドレス・フィールドの読み取りや解析をしないある
種の場合におけるデフォルトのルーティングのために、タイプ・フィールドを使
用できる。タイプ・フィールドに基づいたデフォルトのルーティングの例は以下
のようなものである。 1)全ての基本オブジェクトはローカル・アプリケーション・サーバに送られ
る、2)タイプ・フィールドに特定の1つのコードがある制御パケットは、ロー
カル・アプリケーション・サーバに送られ、タイプ・フィールドに別の特定の1
つのコードがある制御パケットは、ローカル・サイト・マネージャに送られる。
【0153】 図7は、図6に関して検討した実施形態で使用されるアプリケーション・ルー
タ152と、ATPパケットがどのようにアプリケーション・ルータを通って行
くのかを示している。アプリケーション・ルータ152は、入力フィルタのセッ
ト190、192と、ルータ・コア194と、出力フィルタのセット196、1
98とからなる。アプリケーション・ルータは、通信する各ノードに対して、入
力及び出力フィルタを有している。ルータ・コア194は、ATPパケットのル
ーティングを実行するために、いくつかのルーティング・テーブル199を含ん
でいる。
【0154】 パケットは3つのタイプの送信源、すなわち、同じアプリケーション・アクセ
ス・サーバのアプリケーション・サーバ及び、例えばサイト・マネージャなどの
他の同様なユニットからと、他のアプリケーション・ルータからと、このアプリ
ケーション・ルータに接続されたアプリケーション・クライアントから来る。別
のアプリケーション・ルータあるいはアプリケーション・クライアントへの全て
の接続に対して、1つの入力フィルタ190、192と1つの出力フィルタ19
6、198がある。アプリケーション・サーバへの接続に対しては、入力又は出
力フィルタは全く必要ない。フィルタはいくつかのアプリケーション・パケット
の転送パッケージへの組立を実施し、信頼できるパケットの再送も扱う。アプリ
ケーション・クライアント出力フィルタ196、198は、クライアント回線上
の冗長な情報を削除し、アプリケーション・クライアント170へのダウンリン
クについての負荷バランスも取る。
【0155】 出力フィルタに接続されたクライアント170、あるいは認可されたあらゆる
他のクライアントは、受信クライアントの出力フィルタに、ストリーム・オブジ
ェクト又はストリーム・オブジェクト・キーのサブスクリプションを送信できる
。サブスクリプションは、サブスクリプションのコンテントと受信クライアント
のクライアント識別子を示す制御メッセージとして送信される。出力フィルタは
、アプリケーション・ルータに到着するストリーム・オブジェクトをスキャンす
る。サブスクリプションに合うストリーム・オブジェクトは、おそらくドロップ
レートを適用した後でクライアントに送信される。ストリーム・オブジェクトが
サブスクリプションと合うのは、ストリーム・オブジェクトのオブジェクト識別
子がサブスクリプションにあるオブジェクト識別子と等しい場合、あるいはスト
リーム・オブジェクトで運ばれたストリーム・オブジェクト・キーがサブスクリ
プションにあるストリーム・オブジェクト・キーと合った場合のいずれかである
【0156】 (出力フィルタに接続された)クライアントが、ストリーム・オブジェクトを
申込み、ストリーム・オブジェクトを送信クライアントから受信するときを考え
る。そのクライアントあるいは他の認可されたあらゆるクライアントは、所与の
ストリーム・オブジェクトに関連してドロップレートを設定できる。このドロッ
プレートはローカル・アプリケーション・ルータに制御メッセージで送信される
。ドロップレートが、0≦R≦1の値に設定されていれば、出力フィルタはスト
リーム・オブジェクトの比率Rを意図的に削除する。例えば、R=0.9である
と、到着パケットの10%だけがクライアントへ渡されるのを許可される。
【0157】 出力フィルタは、クライアントに送信される必要のないATPヘッダ・フィー
ルドを削除する。別のクライアントから直接アドレス指定されたメッセージは、
例えば、アプリケーション・セッション識別子と受信クライアントのクライアン
ト識別子をヘッダに含んでいる。この情報を受信クライアントには有用ではなく
、このためアプリケーション・ルータの出力フィルタで削除される。
【0158】 クライアントなどの特定のノードに対する入力フィルタは、ストリーム・オブ
ジェクト、基本オブジェクト、制御メッセージ及び直接アドレス指定されたクラ
イアント・メッセージを含むATPパケットをノードから受信する。ATPパケ
ットをルーティング・コアに送信する前に、以下の動作が実行される。 1)入力フィルタは、クライアントがストリーム・オブジェクト又は基本オブ
ジェクトを更新するのを許可されているか、あるいは送信クライアントがメッセ
ージ内に示されるクライアントに直接アドレス指定されたメッセージを送信する
のを許可されているかをチェックする。この認可チェックは、クライアントがど
のような種類の動作の実行を許可されたのかを示す、認可テーブルを参照して実
行される。認可テーブルは、クライアント又は初期化ファイルを使用するサイト
・マネージャを介してLASによって設定される。 2)入力フィルタは送信クライアントのアドレスを適切なATPヘッダに追加
する。このアドレスは、帯域幅を節約するため、送信クライアントとアプリケー
ション・ルータとの間の通信リンクには送信されない。 3)アプリケーション・ルータはクライアント・グループのリストを格納する
。このようなリストは、クライアント・グループを示すクライアント識別子を、
クライアントを示すクライアント識別子のリストに結びつける。クライアント・
グループのリストは、クライアント又はサイト・マネージャを介してLASによ
って設定される。受信者のアドレス・フィールド内のクライアント・グループを
有するATPパケットが入力フィルタに受信されると、以下の3つの代替的オプ
ションの1つを行う。A)クライアント・グループに属するクライアント識別子
のリストを見つける。ATPパケットのコピーを少なくとも1つ受信すべきアプ
リケーション・ルータの数Nを見つける。受信アプリケーション・ルータそれぞ
れに対する出力フィルタに入れるATPパケットをN個コピーする。ATPヘッ
ダには、コンテントをローカル・クライアントだけに配布し、あらゆるリモート
受信者に配布すべきでないことを示すフラグがある。このフラグは各出力パケッ
トで設定される。これは好ましい動作モードである。 4)クライアント・グループに属するクライアント識別子のリストを見つける
。ATPパケットのコピーを少なくとも1つ受信すべきアプリケーション・ルー
タの数Nを見つける。受信アプリケーション・ルータそれぞれに対する出力フィ
ルタに入れるATPパケットをN個コピーする。各パケットにおいて、クライア
ント・グループ識別子を、受信アプリケーション・ルータのローカル・クライア
ントであるクライアント・グループのメンバーだけを含む受信クライアントのリ
ストに置き換える。ATPパケットを複製して、その結果、各複製でクライアン
ト・グループ識別子を、クライアント・グループに関連するクライアント識別子
リスト内のクライアント1つを示す、1つのユニークなクライアント識別子に置
き換える。 5)そのクライアントが入力フィルタが送信しているクライアントに関連する
として、各ストリーム・オブジェクトについてデフォルト・ヘッダが入力フィル
タによって格納される。このデフォルト・ヘッダは、ストリーム・オブジェクト
に関連したストリーム・オブジェクト・キーを含んでいる。クライアントが明ら
かにストリーム・オブジェクトを含んでいるヘッダを送信したら、このヘッダが
入力フィルタによって格納されたデフォルト・ヘッダに置き換わる。クライアン
トが、ストリーム・オブジェクトを含んでいるヘッダなしにストリーム・オブジ
ェクトを送信したら、入力フィルタはストリームオブジェクトがルータ・コアに
送信される前にデフォルト・ヘッダを追加する。これは送信クライアントが、ス
トリーム・オブジェクトの各コピーと共にストリーム・オブジェクト・キーのコ
ピー1つを送信する必要が無いことを意味する。キーが変わる度とストリーム・
オブジェクトが最初に送信されるときに、ストリーム・オブジェクト・キーを含
んでいるヘッダを送信すれば十分である。
【0159】 標準的ATPパケットは、アプリケーション・オブジェクト(ストリーム又は
基本)、制御メッセージ又はクライアント・メッセージのいずれかであるコンテ
ントを運ぶ。複合ATPパケットは、オプションの小さな複合ヘッダと、少なく
とも1つで普通はいくつかの標準的ATPパケットからなる。複合ATPパケッ
トは、標準的転送プロトコルのペイロードとして送信される。普通は複合ATP
パケットはUDPパケットのペイロードとして送信される。
【0160】 複合ATPパケット内に標準的ATPパケットを集める方法は、帯域幅の効率
と小さなレイテンシとの間の正しいバランスを達成するためには重要である。大
きな複合ATPパケットは伝送のレイテンシを大きくするが、ヘッダのオーバヘ
ッドを小さくし、そのため帯域幅を効率的に利用する。標準的ATPパケットの
複合ATPパケットへの集結は、システムのいくつかのモジュールで行われる。
【0161】 ローカル・アプリケーション・ルータに送信するアプリケーション・クライア
ントでの集結には、2つの代替的方法が使用され得る。第1の方法では、集結は
アプリケーション・プログラムの直接制御下にある。標準的ATPパケットは出
力バッファに送信される。アプリケーション・プログラムが、バッファのコンテ
ントが複合ATPパケットに入れられて、ローカル・アプリケーション・ルータ
に送信されるときを決定する。第2の方法では、集結はクライアント内の自動的
アルゴリズムによって実行される。標準的ATPパケットはアプリケーション・
プログラムによって出力バッファに送信される。アルゴリズムが、バッファのコ
ンテントが複合ATPパケットに入れられて、ローカル・アプリケーション・ル
ータに送信されるときを決定する。好ましいアルゴリズムの例は、バッファ・サ
イズが所与のサイズSを越えたら複合パケットが送信される。複合パケットの最
後の送信からの時間が所与の時間間隔Tを越えたら複合パケットが送信される。
パラメータS及びTはアプリケーション・プログラムによって設定される。
【0162】 クライアントに送信するアプリケーション・ルータでの集結には、例えば、上
記第2の方法と同様なアルゴリズムが使用され得る。アプリケーション・ルータ
に送信するアプリケーション・ルータでの集結には、アプリケーション・ルータ
間のリンクは非常に高速であると想定でき、標準的パケットは非常に頻繁に送信
されるので、次のプロトコル・レベル、例えばUDP、によって許可される最大
サイズのATP複合パケットを送信するのが通常は良好に動作する。
【0163】 帯域幅が制限されたりATPパケットがまれにしか送信されなければ、アプリ
ケーション・クライアントでの集結について先に述べた第2の方法と同様なアル
ゴリズムを使用するのを勧める。
【0164】 サイズS(ビット)は、Vがビット/秒で測定した2つのアプリケーション・
ルータ間の通信速度であり、T0が普通は1〜10msの許される伝送のレイテ
ンシであるとき、S<V*T0となるように選択される。時間間隔Tは1〜10
msの間とすべきである。
【0165】 クライアントは、基本オブジェクトに対するサブスクリプションを、ローカル
アプリケーション・サーバへの制御メッセージとして送信できる。サブスクリプ
ションは、受信クライアント、サブスクリプションのターゲット及びサブスクリ
プション・パラメータを指定する。サブスクリプションは、アプリケーション・
サーバに対して、一連の基本オブジェクトを受信クライアントに送信させる命令
である。各オブジェクトの一連の更新は、サブスクリプションのパラメータに従
って、かつ基本オブジェクトのソースがどのように変更されたかに応じて送信さ
れる。
【0166】 サブスクリプションを送信するクライアントは、通常受信クライアントである
が、クライアントは別のクライアントに代わってサブスクリプションを作成する
かもしれない。サブスクリプションはまた、クライアント・グループに代わって
発行され得る。クライアント・グループの全てのクライアントは、サブスクリプ
ションの結果を受信する。
【0167】 サブスクリプションのターゲットは、ATPプロトコルに従ってオブジェクト
識別子によって識別される基本オブジェクトのセットである。ターゲットは、1
)オブジェクト識別子、2)オブジェクト識別子のセット、3)オブジェクト・
グループ識別子、4)オブジェクト識別子とオブジェクト・グループ識別子の混
ざったセット、5)オペランドとしてのオブジェクト・グループ及びオブジェク
トと論理演算子AND、OR及びNOTとを含む一般的ブール論理式、で記述さ
れ得る。正しく定義されたターゲットの表現は、オブジェクト・データベース及
びオブジェクト・グループ・データベースの情報を用いて、アプリケーション・
サーバで見積もられる。この見積もりの結果は常に、基本オブジェクトの有限セ
ットとなる。
【0168】 サブスクリプション・パラメータは、サブスクリプションのコンテントが、ど
れだけの頻繁で、何回、及びどれだけ長く配信されるのかを特定するのに使用さ
れ得る。これは、オブジェクトの更新されたバージョンが受信されるべき最大レ
ートとして特定され得る。オブジェクトの所有者が低いレートでオブジェクトを
更新すると、新たなバージョン各々は配信されるとすぐに受信されるであろう。
オブジェクトが選択された最大レートより速く更新されると、更新は正に選択さ
れたレートで受信されるであろう。この場合、中間のバージョンのいくつかは受
信されないであろう。
【0169】 コンテント・サーバあるいはマスター・クライアントは、ゲームの状態につい
てより多くの情報を持っているであろう。従って、マスター・クライアントがタ
ーゲット・クライアントの代わりに基本オブジェクトを申込むのは好ましいであ
ろう。マスター・クライアントは、システムに対してサブスクリプションを構成
して提出する。ローカル・アプリケーション・アクセス・サーバは、サブスクリ
プションで要求された基本オブジェクトを、ターゲットのクライアント又はクラ
イアント・グループに直接配信する。
【0170】 サブスクリプションは、クライアント又はクライアント・グループに帰属する
。サブスクリプションはゲーム・オブジェクトのセットを参照する。このセット
は、オブジェクト・グループ及びオブジェクトを含む一般的ブール論理式で表わ
され得る。
【0171】 アプリケーション・アクセス・サーバ(AAS)は、オブジェクトをサブスク
リプション周波数で配信しようとする。配信時間は、サブスクリプション周波数
の逆数である。サブスクリプションが発信されるときにデータベース内にあるオ
ブジェクトは、配信時間内に配信される。サブスクリプションが有効である間に
データベース内のオブジェクトが変更されると、AASはそれを配信時間内に配
信しようとする。
【0172】 サブスクリプション・クラスは正の整数である。サブスクリプション・クラス
に従ってデータを配信する2つの方法をここで説明する。
【0173】 方法1:最も大きなクラスのサブスクリプションが、最初に完全に履行される
。次に、AASは次に大きなクラスのサブスクリプションを完全に履行しようと
する。これは、小さなクラスのサブスクリプションは、決して履行されないかも
しれないことを意味する。サブスクリプション・クラス内のオブジェクトを要求
された周波数で配信するのに帯域幅が不十分であれば、クライアントへの配信が
容易となるように、AASはクラス内の全ての周波数を上げる。
【0174】 方法2:3つの異なったクラスが使用される。異なったクラスは、1=高、2
=中、3=低、と呼ばれる。クラス1のオブジェクトは、バッファがフルでレー
トがゼロに落ちるまで、常に最大レートで申込者に送信される。クラス2のオブ
ジェクトの申込者への送信レートは、バッファの負荷に比例する。バッファの容
量が小さくなるとレートが低くなる。クラス3のオブジェクトは、バッファ内に
他のオブジェクトが何も無ければ申込者に送信される。
【0175】 1つの特定の実施態様では、アプリケーション・オブジェクト・パケットは、
いくつかの列挙されたペイロードを含み得る。この場合、サブスクリプションは
、オプションの加重パラメータを有している。加重パラメータは整数である。加
重=nは、オブジェクトの最初のn個のペイロードが配信されることを意味する
【0176】 いくつかのオブジェクトは通常の間隔では更新されないかもしれないが、代わ
りに正確な回数だけ更新される。従って、特定のオブジェクトに関して指定数の
更新を要求することができる。アプリケーション・サーバは、そのオブジェクト
に関してカウンタをサブスクリプションで指定された整数値に設定する。オブジ
ェクトが配信される度にカウンタは1づつデクリメントされる。カウンタ=0と
なるとサブスクリプションは削除される。
【0177】 クライアントは、同じ更新が前に送信された場合であっても、要求した周波数
でオブジェクトが送信されるのを要求できる。これは「強制送信」FSフラグを
設定することで行われる。
【0178】 また、古いサブスクリプションに関するデータでネットワークが過負荷となる
のを防止するため、サブスクリプションの寿命、あるいは持続期間が設定される
べきである。サブスクリプションの寿命が過ぎた後に、サブスクリプションは削
除される。
【0179】 ストリーム・オブジェクトは、アプリケーション・ルータ間で以下の方法の1
つを用いて配布される。 方法1)1つのアプリケーション・ルータによって受信されたストリーム・オ
ブジェクトは、複製されてアプリケーション・セッションに参加している全ての
他のアプリケーション・ルータに送信される。これは、例えば、アプリケーショ
ン・セッションに参加している全てのアプリケーション・ルータを、IPマルチ
キャスト・アドレスに関連付けることによって効率的に行われ得る。 方法2)各アプリケーション・ルータは、ストリーム・オブジェクト及びスト
リーム・オブジェクト・キーに対するサブスクリプションのセットをローカル・
クライアントから受信する。そのようなサブスクリプション全ては、ローカル・
クライアントが申込んでいるストリーム・オブジェクト及びストリーム・オブジ
ェクト・キーを少しの重複もなしにすべて含む、ジョイント・サブスクリプショ
ンに集められる。ローカル・クライアントで生成されたストリーム・オブジェク
ト・キーでなくてストリーム・オブジェクトは、集められたサブスクリプション
から削除される。集められたサブスクリプションは、他の全てのアプリケーショ
ン・ルータに送信される。ローカル・クライアントの中で、別のアプリケーショ
ン・ルータから集められたサブスクリプションを受信し、集められたサブスクリ
プションのストリーム・オブジェクト及びストリーム・オブジェクト・キーに対
するいずれかの発信源を知るアプリケーション・ルータは、申込んでいるアプリ
ケーション・ルータにサブスクリプションの一部を送信する。 方法3)各アプリケーション・ルータは、方法2と同様にサブスクリプション
の集められたセットを用意する。集められたサブスクリプションは、サイト・マ
ネージャに任命された親のアプリケーション・ルータに送信される。親のアプリ
ケーション・ルータは、入手可能であり、最初に親のアプリケーション・ルータ
と任命された親のアプリケーション・ルータに送信された自身の集めたサブスク
リプションの残りを含む、集められたサブスクリプションのサブセットを配信す
る。これは管理システムが、アプリケーション・セッションについてのアプリケ
ーション・ルータの階層を構築したとみなされる。
【0180】 基本オブジェクトはアプリケーション・サーバ間で配布される。アプリケーシ
ョン・サーバには、常に関連するローカル・アプリケーション・ルータの1つを
介して届けられる。アプリケーション・サーバが、基本オブジェクトを別のアプ
リケーション・サーバに送信するとき、最初のアプリケーション・サーバは、第
2のアプリケーション・サーバの識別子をATPパケットの受信アドレス・フィ
ールドに入れて、基本オブジェクトをローカル・アプリケーション・ルータの1
つに送信する。このアプリケーション・ルータは、オブジェクトを第2のアプリ
ケーション・サーバのローカル・アプリケーション・ルータに送信する。第2の
アプリケーション・サーバのローカル・アプリケーション・ルータは、オブジェ
クトを第2のアプリケーション・サーバに送信する。
【0181】 基本オブジェクトは、アプリケーション・サーバ間で以下の方法の1つを用い
て配布される。 方法1)1つのアプリケーション・サーバによって受信された基本オブジェク
トは、複製されてアプリケーション・セッションに参加している全ての他のアプ
リケーション・サーバに送信される。これは、オプションとして、例えば、アプ
リケーション・セッションに参加している全てのアプリケーション・サーバを、
IPマルチキャスト・アドレスに関連付けることによって効率的に行われ得る。 方法2)各アプリケーション・サーバは、基本オブジェクトに対するサブスク
リプションのセットをローカル・クライアントから受信する。そのようなサブス
クリプション全ては、ローカル・クライアントが申込んでいる基本オブジェクト
をすべて含んでいるがサブスクリプション・パラメータを含んでいない、ジョイ
ント・サブスクリプションに集められる。集められたサブスクリプションは、他
の全てのアプリケーション・サーバに送信される。ローカル・クライアントの中
で、別のアプリケーション・サーバから集められたサブスクリプションを受信し
、集められたサブスクリプションの基本オブジェクトに対するいずれかの発信源
を知るアプリケーション・サーバは、申込んでいるアプリケーション・サーバに
そのようなオブジェクトをすぐに送信し、サブスクリプションの関連する部分を
格納する。関連するオブジェクトのそれ以降の更新も、申込んでいるアプリケー
ション・サーバにすぐに送信される。 方法3)各アプリケーション・サーバは、方法2と同様にサブスクリプション
の集められたセットを用意する。集められたサブスクリプションは、サイト・マ
ネージャに任命された親のアプリケーション・サーバに送信される。親のアプリ
ケーション・サーバは、入手可能であり、最初に親のアプリケーション・サーバ
と任命された親のアプリケーション・サーバに送信された自身の集めたサブスク
リプションの残りを含む、集められたサブスクリプションのサブセットを配信す
る。これは管理システムが、アプリケーション・セッションについてのアプリケ
ーション・サーバの階層を構築したとみなされる。
【0182】 セッションに参加している全てのアプリケーション・アクセス・サーバに配布
される必要のある制御データは、例えば、クライアントの加入及び脱退並びにク
ライアント・グループの作成及び破壊を含んでいる。そのような制御データは、
セッションの全てのアプリケーション・ルータにマルチキャストされるべきであ
る。アプリケーション・ルータは、制御メッセージを終了させるか、それを要求
に応じてローカル・アプリケーション・サーバ又はサイト・マネージャに送る。
【0183】 いくつかのクライアントが、観戦者としてアプリケーション・アクセス・サー
バに登録されてもよい。観戦者はアプリケーションの動作を更新することは許可
されないが、ゲーム内での観戦者の視点に応じてサブスクリプションを更新する
ことができる。
【0184】 本発明によるアプリケーション・アクセス・サーバは、階層的システムでも使
用できる。図8はそのような構成の例を示しており、ここで高レベルのアプリケ
ーション・アクセス・サーバ201は他のアプリケーション・アクセス・サーバ
・ユニット203、205、207をサービスし、そしてこれらはアプリケーシ
ョン・クライアント209をサービスする。高レベルのアプリケーション・アク
セス・サーバ201は、ATPパケットをゲームデータ及び集められたサブスク
リプションと共に、「クライアント」とみなされる下流のアプリケーション・ア
クセス・サーバ・ユニットから受信する。高レベルのアプリケーション・アクセ
ス・サーバ201は、他のピア・アプリケーション・アクセス・サーバ・ユニッ
ト及びもしあれば階層でより高いレベルのアプリケーション・アクセス・サーバ
・ユニットと通信する。階層的アプリケーション・アクセス・サーバ・システム
は、多数のクライアントが関係するアプリケーションのためのゲーム状態の階層
的分散表示を作成するのに使用される。
【0185】 リモート・アプリケーション・アクセス・サーバ・ユニットは、マルチキャス
ト型のツリーに構成されてもよく、その場合、マルチキャスト・グループ毎に1
つのソーティング・バッファがあるであろう。全ての情報が全てのリモート・ア
プリケーション・アクセス・サーバ・ユニットに送信される、簡単な配布方式が
使用されてもよい。この場合バッファはただ1つである。
【0186】 アプリケーション・クライアントのセットが、小さなレイテンシをもたらすブ
ロードバンド接続を有していてもよく、その場合はアプリケーション・アクセス
・サーバは全く必要ない。典型的な例としては、全てのプレーヤが同じLANに
つながっているものである。ゲームのアプリケーションやAPIが依然としてア
プリケーション・アクセス・サーバを予期したものである場合、クライアントの
装置でソフトウェアでアプリケーション・アクセス・サーバ機能を実行すること
が可能であろう。
【0187】 アプリケーション・アクセス・サーバ・ユニットは、ネットワーク内のあらゆ
る中間的位置に配置されてもよい。これはクライアントとアプリケーション・ア
クセス・サーバとの間の「リンク」プロトコルが、オプションとしてUDP/I
P又はTCP/IPであり得ることを意味する。代替的に、ダイヤル・インのゲ
ーム・サービスを実行中の中央のゲーム・サーバが、部品としてアプリケーショ
ン・アクセス・サーバ・ユニットを使用することもできる。ここで中央のサイト
は、アプリケーション・アクセス・サーバ・ユニット及びアプリケーション・ロ
ビー・サーバに接続されたモデム・プールのセットから構成されるだろう。これ
は中央のサイトを構築するのに効率的で規模が変更可能であるが、ゲーム・トラ
フィックを早期に集めるという利点はないだろう。
【図面の簡単な説明】
【図1】 本発明によるネットワークの実施形態を示す図である。
【図2】 本発明の第1の実施形態によるアプリケーション・アクセス・サーバを示す図
である。
【図3】 本発明によるアプリケーション状態レコードの実施形態を示す図である。
【図4】 本発明の実施形態によるアプリケーション・クライアントを示す図である。
【図5】 本発明の実施形態によって使用される通信スタックを示す図である。
【図6】 本発明のアプリケーション・アクセス・サーバの第2の実施形態を示す図であ
る。
【図7】 アプリケーション・アクセス・サーバの第2の実施形態で使用されるアプリケ
ーション・ルータを示す図である。
【図8】 本発明の実施形態で使用されるアプリケーション・アクセス・サーバの階層構
造を表わす図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年8月7日(2001.8.7)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AG,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,DZ,EE ,ES,FI,GB,GD,GE,GH,GM,HR, HU,ID,IL,IN,IS,JP,KE,KG,K P,KR,KZ,LC,LK,LR,LS,LT,LU ,LV,MA,MD,MG,MK,MN,MW,MX, NO,NZ,PL,PT,RO,RU,SD,SE,S G,SI,SK,SL,TJ,TM,TR,TT,TZ ,UA,UG,UZ,VN,YU,ZA,ZW (72)発明者 ヨンソン, ヨナス スウェーデン国 エケリュ エス−178 32, ヒョートヴェーゲン 26 (72)発明者 イェンデル, マグヌス スウェーデン国 ウップランズ ヴェスビ ュ エス−194 60, ヴォルヴェーゲン 10 (72)発明者 カールッソン, クリステル スウェーデン国 ストックホルム エス− 112 43, リンドハーゲンスガタン 69 (72)発明者 カールッソン, ロランド スウェーデン国 ストックホルム エス− 117 21, ドラケンベルイスグ. 3 イーヴェ (72)発明者 レンベルイ, エマヌエル スウェーデン国 ウプサラ エス−754 23, ディエクネグ. 19:510 (72)発明者 オスボルネ, ステュアルト スウェーデン国 ヘゲルステン エス− 122 63, セデルグレンスヴ. 27 (72)発明者 ステンホフ, マルティン スウェーデン国 スポンガ エス−163 56, ソルヘムス ハグヴェグ 90 Fターム(参考) 5K030 GA02 HA08 HB07 HB17 HB21 HD03 JA10 KA01 KA04 KA06 LA03 LA19 LB18 LC09 LD08 5K047 AA02 BB15 GG57

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 通信ネットワークで使用するサーバ・ユニットであって、前
    記サーバ・ユニットが、少なくとも1つの第1のノードから情報を受信する受信
    手段を備えており、第1のノード各々がクライアント・ユニットと呼ばれ、前記
    情報が、配布されたインタラクティブ・アプリケーションについての状態情報の
    少なくとも一部を含んでおり、前記サーバ・ユニットが、 −前記第1のノードから受信手段によって受信した情報に含まれる、アプリケ
    ーションの状態情報を格納する状態情報格納手段と、 −前記状態情報格納手段から情報の少なくとも一部を、ネットワーク内の少な
    くとも1つの第2のノードに送る第1の送信手段と、 −前記状態情報格納手段に格納された情報の少なくとも一部を、前記少なくと
    も1つの第1のノードに送信する第2の送信手段と、を備えることを特徴とする
    サーバ・ユニット。
  2. 【請求項2】 前記少なくとも1つの第1のノードから受信手段によって受
    信した優先度情報を格納する優先度リストを更に備え、前記優先度情報は、前記
    第1のノードの第1のクライアントが受信を望む情報について配布されたインタ
    ラクティブ・アプリケーションのオブジェクトを識別し、第1のノードが受信を
    望むオブジェクトの好ましい順番を識別し、前記第2の送信手段が、第1のノー
    ドから受信した優先度情報に応じて、前記状態情報格納手段から前記少なくとも
    1つのクライアントへ情報を送信するように構成されていることを特徴とする請
    求項1に記載のサーバ・ユニット。
  3. 【請求項3】 前記少なくとも1つの第1のノードから前記受信手段によっ
    て受信したサブスクリプション情報を格納するサブスクリプション・リストを更
    に備え、前記サブスクリプション情報が、あるオブジェクトに関連する情報が前
    記第1のノードでどのような頻度で受信されるべきかを識別することを特徴とす
    る請求項1に記載のサーバ・ユニット。
  4. 【請求項4】 前記少なくとも1つの第1のノードから前記受信手段によっ
    て受信したサブスクリプション情報を格納するサブスクリプション・リストを更
    に備え、前記サブスクリプション情報が、あるオブジェクトに関連する情報が前
    記第1のノードで受信されるべき回数を識別することを特徴とする請求項1又は
    3に記載のサーバ・ユニット。
  5. 【請求項5】 前記受信手段が、クライアント・ノードと呼ばれる少なくと
    も第3のノードからの前記第1のノードに関する優先度情報を受信し、前記第3
    のノードで生じたアプリケーション状態情報を、前記緊急情報に応じて、少なく
    とも前記第1のノードに送るか又は送らないように構成されていることを特徴と
    する請求項1から4のいずれか1項に記載のサーバ・ユニット。
  6. 【請求項6】 前記受信手段が、少なくとも第3のノードからの前記第1の
    ノードに関する優先度情報を受信し、前記第1のノードに該優先度情報を通知す
    るように構成されていることを特徴とする請求項1から5のいずれか1項に記載
    のサーバ・ユニット。
  7. 【請求項7】 前記状態情報格納手段が、所定の時間間隔の後に格納した状
    態情報を破棄するように構成されていることを特徴とする請求項1から6のいず
    れか1項に記載のサーバ・ユニット。
  8. 【請求項8】 前記少なくとも1つの第1のノードに送信される情報が、少
    なくとも1つの他のノードで受信された状態情報であることを特徴とする請求項
    1から7のいずれか1項に記載のサーバ・ユニット。
  9. 【請求項9】 前記状態情報格納手段が、オブジェクトの特性に関してアプ
    リケーション状態情報を格納するように構成されており、前記オブジェクトがア
    プリケーション状態を構成することを特徴とする請求項1から8のいずれか1項
    に記載のサーバ・ユニット。
  10. 【請求項10】 前記状態情報格納手段が、所与の時点でのオブジェクトの
    状態を記述する、基準パケットあるいはデータグラムを格納するように構成され
    ていることを特徴とする請求項9に記載のサーバ・ユニット。
  11. 【請求項11】 前記状態情報格納手段が、以前の特定のパケットからのオ
    ブジェクトの状態の変化を記述する増分パケットと、前記以前のパケットを識別
    する情報とを格納するように構成されていることを特徴とする請求項10に記載
    のサーバ・ユニット。
  12. 【請求項12】 前記少なくとも1つの第1のノードに対する認可情報を登
    録する登録手段を更に備え、前記認可情報は、前記第1のノードが変更を認可さ
    れたアプリケーション状態オブジェクトを示していることを特徴とする請求項1
    から11のいずれか1項に記載のサーバ・ユニット。
  13. 【請求項13】 前記第1及び第2の送信手段と前記受信手段とを有する少
    なくとも1つのアプリケーション・ルータと、 前記情報格納手段を有するアプリケーション・サーバと、を備えることを特徴
    とする請求項1から12のいずれか1項に記載のサーバ・ユニット。
  14. 【請求項14】 前記アプリケーション・サーバと前記少なくとも1つのア
    プリケーション・ルータとが、別々のハードウェア・ユニットで実現されている
    ことを特徴とする請求項13に記載のサーバ・ユニット。
  15. 【請求項15】 前記アプリケーション・サーバと前記少なくとも1つのア
    プリケーション・ルータとがソフトウェアによって実現されており、前記アプリ
    ケーション・サーバと前記少なくとも1つのアプリケーション・ルータとに関す
    るそれぞれのソフトウェアが、確保されたコンピュータ・リソースを有すること
    を特徴とする請求項13に記載のサーバ・ユニット。
  16. 【請求項16】 アプリケーション・ルータが、ストリーム・オブジェクト
    を受信し、それを少なくとも1つの他のアプリケーション・アクセス・サーバに
    送信するように構成されていることを特徴とする請求項13から15のいずれか
    1項に記載のサーバ・ユニット。
  17. 【請求項17】 アプリケーション・ルータが、通信セッションに関係する
    他の全てのアプリケーション・アクセス・サーバに、ストリーム・オブジェクト
    をブロードキャストするように構成されていることを特徴とする請求項14に記
    載のサーバ・ユニット。
  18. 【請求項18】 アプリケーション・ルータが、基本オブジェクトを受信し
    、それを少なくとも1つのアプリケーション・サーバのデータベースへの格納の
    ためにアプリケーション・サーバに送り、アプリケーション・サーバから基本オ
    ブジェクトに関するアドレス指定されたデータ・パケットを受信し、それをクラ
    イアント及び/又は少なくとも1つの他のサーバ・ユニットに送るように構成さ
    れていることを特徴とする請求項13から17のいずれか1項に記載のサーバ・
    ユニット。
  19. 【請求項19】 アプリケーション・ルータが、アプリケーション・サーバ
    から制御情報を受信し、それをクライアント及び/又は少なくとも1つの他のサ
    ーバ・ユニット、及び/又はサイト・マネージャに送るように構成されているこ
    とを特徴とする請求項13から18のいずれか1項に記載のサーバ・ユニット。
  20. 【請求項20】 通信ネットワークの端末に使用するクライアント・ユニッ
    トであって、配布されたインタラクティブ・アプリケーションのアプリケーショ
    ン・ソフトウェアを備えており、前記クライアント・ユニットが、 −前記端末からの入力を読み取る少なくとも1つの入力手段であって、前記入
    力が、少なくとも配布されたインタラクティブ・アプリケーションのアプリケー
    ション状態情報を構成する、入力手段と、 −アプリケーション状態情報を、前記通信ネットワーク内のアプリケーション
    ・アクセス・サーバに送信する送信手段と、 −前記アプリケーション・アクセス・サーバから前記配布されたインタラクテ
    ィブ・アプリケーションの少なくともアプリケーション状態情報を受信する受信
    手段と、 −前記受信手段によって受信された前記状態情報を表示する手段と、を備える
    ことを特徴とするクライアント・ユニット。
  21. 【請求項21】 できるだけ早く受信すべき入手可能な情報について、少な
    くとも1つの他のアプリケーション状態オブジェクトを指定する、優先度情報を
    設定する優先度設定手段と、前記優先度設定手段からの前記優先度情報を、前記
    アプリケーション・アクセス・サーバに送信する送信手段と、を更に備えること
    を特徴とする請求項20に記載のクライアント・ユニット。
  22. 【請求項22】 該クライアントから状態情報をできるだけ早く受信すべき
    少なくとも1つの他のノードを指定する、優先度データを設定する優先度データ
    手段を更に備えることを特徴とする請求項20又は21に記載のクライアント・
    ユニット。
  23. 【請求項23】 アプリケーション状態情報を送信する前記送信手段が、各
    々がアプリケーションの一部を構成する1つのオブジェクトに関連している、ア
    プリケーション・オブジェクト・パケットの情報を、該パケットをアクセス・サ
    ーバに送信する前にアレンジするように構成されており、前記受信手段が、アク
    セス・サーバから受信したパケットからアプリケーション・オブジェクトについ
    ての情報を抽出するように構成されていることを特徴とする請求項20から22
    のいずれか1項に記載のクライアント・ユニット。
  24. 【請求項24】 請求項1から19のいずれか1項に記載のサーバ・ユニッ
    トを少なくとも1つ備えることを特徴とする通信ネットワーク。
  25. 【請求項25】 請求項20から23のいずれか1項に記載のクライアント
    ・ユニットを少なくとも1つ更に備えることを特徴とする請求項24に記載の通
    信ネットワーク。
  26. 【請求項26】 少なくとも1つの第2のアプリケーション・アクセス・サ
    ーバと、前記第1及び第2のアプリケーション・アクセス・サーバを接続する接
    続手段とを更に備え、通信リソースが前記接続手段に確保され得ることを特徴と
    する請求項24又は25に記載の通信ネットワーク。
  27. 【請求項27】 ネットワーク内にアプリケーション・アクセス・サーバの
    階層が構築されるような方法で、前記第1のアプリケーション・アクセス・サー
    バとは通信するが前記第2のアプリケーション・アクセス・サーバとは通信しな
    い、少なくとも1つの第3のアプリケーション・アクセス・サーバを更に備える
    ことを特徴とする請求項24から26のいずれか1項に記載の通信ネットワーク
  28. 【請求項28】 少なくとも1つのアプリケーション・アクセス・サーバを
    制御するように構成されたサイト・マネージャを更に備えることを特徴とする請
    求項24から27のいずれか1項に記載の通信ネットワーク。
  29. 【請求項29】 少なくとも1つのアプリケーション・ロビー・サーバと前
    記少なくとも1つのサイト・マネージャとの間のインタフェースを形成するよう
    に構成された、ロビー・アクセス・サーバを更に備えることを特徴とする請求項
    28に記載の通信ネットワーク。
JP2000616572A 1999-05-10 2000-05-10 通信ネットワークにおける方法及び装置 Expired - Lifetime JP4463999B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
SE9901694A SE521442C2 (sv) 1999-05-10 1999-05-10 Server för att möjliggöra kommunikation mellan klientenheter genom att köra en distribuerad tillämpning vars tillstånd kan ändras av klientenheterna
US09/307,712 US6763371B1 (en) 1999-05-10 1999-05-10 Method and apparatus for collaborative communication in a communication network
US09/307,712 1999-05-10
US9901694-1 1999-05-10
PCT/SE2000/000932 WO2000068864A1 (en) 1999-05-10 2000-05-10 Method and apparatus in a communication network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007226573A Division JP2008022573A (ja) 1999-05-10 2007-08-31 通信ネットワークにおける方法及び装置

Publications (3)

Publication Number Publication Date
JP2002544689A true JP2002544689A (ja) 2002-12-24
JP2002544689A5 JP2002544689A5 (ja) 2007-10-18
JP4463999B2 JP4463999B2 (ja) 2010-05-19

Family

ID=26663568

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000616572A Expired - Lifetime JP4463999B2 (ja) 1999-05-10 2000-05-10 通信ネットワークにおける方法及び装置
JP2007226573A Withdrawn JP2008022573A (ja) 1999-05-10 2007-08-31 通信ネットワークにおける方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2007226573A Withdrawn JP2008022573A (ja) 1999-05-10 2007-08-31 通信ネットワークにおける方法及び装置

Country Status (9)

Country Link
EP (1) EP1194876B1 (ja)
JP (2) JP4463999B2 (ja)
KR (1) KR100741463B1 (ja)
CN (1) CN1222902C (ja)
AT (1) ATE516539T1 (ja)
AU (1) AU770710C (ja)
IL (3) IL146348A0 (ja)
NO (2) NO319874B1 (ja)
WO (1) WO2000068864A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004093406A1 (ja) * 2003-04-16 2004-10-28 Sony Computer Entertainment Inc. データ伝送装置、データ伝送方法、ゲーム機およびゲームシステム
JP2007135977A (ja) * 2005-11-21 2007-06-07 Namco Bandai Games Inc 通信ゲーム装置、システム、方法およびプログラム

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002157206A (ja) 2000-11-17 2002-05-31 Square Co Ltd 電子会議参加方法およびそのシステム
US7657628B1 (en) 2000-11-28 2010-02-02 Verizon Business Global Llc External processor for a distributed network access system
US8180870B1 (en) 2000-11-28 2012-05-15 Verizon Business Global Llc Programmable access device for a distributed network access system
US7046680B1 (en) 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US8185615B1 (en) 2000-11-28 2012-05-22 Verizon Business Global Llc Message, control and reporting interface for a distributed network access system
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
US7711847B2 (en) * 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US20030217135A1 (en) 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
ES2298336T3 (es) * 2002-07-22 2008-05-16 Motorola, Inc. Aplicacion de persistencia en un sistema de comunicaciones inalambricas.
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US8560707B2 (en) 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US7127655B2 (en) * 2004-01-20 2006-10-24 Qualcomm, Inc. Methods and apparatus to optimize delivery of multicast content using probabilistic feedback
JP2009512019A (ja) 2005-10-06 2009-03-19 ヴェルジェンス エンターテインメント エルエルシー, ア カリフォルニア リミテッド ライアビリティー カンパニー 実質的に同時のアラートと、間欠的なコンテストにおけるその利用
CN100444548C (zh) * 2005-12-28 2008-12-17 腾讯科技(深圳)有限公司 一种加载的方法及客户端
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
JP2012205131A (ja) * 2011-03-25 2012-10-22 Toshiba Corp 通信装置
US9017170B2 (en) * 2012-05-23 2015-04-28 King.Com Limited Method and apparatus for interactive gameplay across multiple computing platforms
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions
IL294222A (en) 2020-01-02 2022-08-01 Gabriel Lavi Method and system for supporting multiple users in wireless communication in a local area network
CN115943619B (zh) * 2021-06-14 2024-05-28 株式会社软技 信息处理装置、记录介质、数据同步方法、数据同步系统以及终端装置
JP7148941B1 (ja) 2021-06-14 2022-10-06 株式会社ソフトギア 情報処理装置、データ同期プログラム、データ同期方法、データ同期システム及び端末装置
GB202216515D0 (en) * 2022-11-07 2022-12-21 Krause ltd System

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2471995A (en) * 1994-05-05 1995-11-29 Catapult Entertainment, Inc. Network architecture for real-time video games
US5846132A (en) * 1996-04-10 1998-12-08 William W. Junkin Trust Interactive system allowing simulated or real time participation in a league
US5890963A (en) 1996-09-30 1999-04-06 Yen; Wei System and method for maintaining continuous and progressive game play in a computer network
US6025801A (en) * 1996-10-01 2000-02-15 Philips Electronics North America Corporation Video game with local updates mitigates latency effects in wide area network
US5899810A (en) * 1997-01-24 1999-05-04 Kaon Interactive Corporation Distributed game architecture to overcome system latency
US6006254A (en) * 1997-08-29 1999-12-21 Mitsubishi Electric Information Technology Center America, Inc. System for the reliable, fast, low-latency communication of object state updates over a computer network by combining lossy and lossless communications

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004093406A1 (ja) * 2003-04-16 2004-10-28 Sony Computer Entertainment Inc. データ伝送装置、データ伝送方法、ゲーム機およびゲームシステム
JP2007135977A (ja) * 2005-11-21 2007-06-07 Namco Bandai Games Inc 通信ゲーム装置、システム、方法およびプログラム

Also Published As

Publication number Publication date
AU2004202290A1 (en) 2004-06-17
KR20020010913A (ko) 2002-02-06
NO20015499D0 (no) 2001-11-09
KR100741463B1 (ko) 2007-07-20
IL146348A0 (en) 2002-07-25
CN1222902C (zh) 2005-10-12
EP1194876A1 (en) 2002-04-10
IL179054A (en) 2007-07-24
EP1194876B1 (en) 2011-07-13
AU770710C (en) 2005-03-10
JP4463999B2 (ja) 2010-05-19
JP2008022573A (ja) 2008-01-31
IL146348A (en) 2007-03-08
CN1350677A (zh) 2002-05-22
WO2000068864A1 (en) 2000-11-16
AU770710B2 (en) 2004-02-26
NO20015499L (no) 2001-11-09
NO20051907D0 (no) 2005-04-19
NO20051907L (no) 2001-11-09
NO319874B1 (no) 2005-09-26
ATE516539T1 (de) 2011-07-15
AU4794000A (en) 2000-11-21

Similar Documents

Publication Publication Date Title
JP4463999B2 (ja) 通信ネットワークにおける方法及び装置
US6763371B1 (en) Method and apparatus for collaborative communication in a communication network
US8732236B2 (en) Managing network communications between network nodes and stream transport protocol
JP4499716B2 (ja) ピアツーピアネットワークにおけるアプリケーションの実行
JP3956365B2 (ja) 分散コンピュータ・ネットワーク内の資源要求に応答するシステムおよび方法
US7660864B2 (en) System and method for user notification
JP3927908B2 (ja) マルチユーザー用データ処理システム
JP4017037B2 (ja) 適応性のあるインフラストラクチャの構成
JP3495234B2 (ja) ネットワーク・コンピュータ・システム上のサーバ負荷低減方法およびシステム
JPH09511115A (ja) スケーラブル分散計算環境
JP2004532471A (ja) 分散コンピュータ・ネットワークのスケーラブルなリソース・ディスカバリおよび再構成
US20060098668A1 (en) Managing membership within a multicast group
JP2003501881A (ja) マルチキャストする方法および装置
AU2001296186A1 (en) Communication infrastructure arrangement for multiuser
KR20030079922A (ko) 분산된 멀티-유저 애플리케이션에서 애플리케이션 이름을태그 값으로 맵핑하기 위한 서버
JP2004505550A (ja) ブロードキャストネットワーク
JP2007207013A (ja) 情報処理装置、情報共有プログラム
Duarte et al. A case study on event dissemination in an active overlay network environment
KR100562145B1 (ko) 네트워크 그룹핑을 통한 네트워크 간의 정보 전송 방법
WO2006051379A1 (en) Managing membership within a multicast group
JP2002259251A (ja) 意味情報ネットワークを用いたグループメンバ間情報配信方法とシステムおよび送信端末と受信端末
JP2002185945A (ja) 放送コンテンツ配信方法、システム、放送コンテンツ提供者端末、および放送受信者端末
Kilian Providing Efficient Networking for Distributed Virtual Reality Using CoRgi
JP2002312396A (ja) 意味情報ネットワークを用いた会員サービス提供方法および提供システム、送信端末、受信端末、意味情報ネットワーク
JP2002183197A (ja) 意味情報ネットワークを用いた情報検索方法とシステム、情報提供方法とシステムおよび送信端末と受信端末

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4463999

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140226

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term