(57)【要約】本発明は、様々なネットワーク通信で動作するように構成され、アプリケーションのオンラインセッション中に通信構成を動的に変更できるマルチユーザアプリケーション（４４０）に関する。通信構成の１つは、少なくとも１つずつのサーバコンピュータ（４２０）とクライアントコンピュータ（４１２）がアプリケーションのオンラインセッションに参加するクライアント−サーバ型構成である。サーバコンピュータ（４２０）は、アプリケーションに関するデータをオンラインセッション中にクライアントコンピュータ（４１２）へ提供する。別の通信構成では、ネットワークコンピュータは、オンラインセッションに参加中のネットワークコンピュータとの間でデータを送受信できるピア・ツー・ピア型構成で動作する。本アプリケーションは、オンラインセッション中にこれらの通信構成の間で切り換えし、どのコンピュータも一方又は他方の構成に限定されるものではない。
2005524920.tif 000002
【特許請求の範囲】
【請求項１】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
マルチユーザアプリケーションのオンラインセッションを確立することを含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも２つのコンピュータを含み、
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定することと、
上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第１の構成から、上記第１の通信構成とは異なる第２の通信構成に変更することとを含む方法。
【請求項２】
上記第１の通信構成はクライアント−サーバ型の構成である請求項１記載の方法。
【請求項３】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項１記載の方法。
【請求項４】
上記マルチユーザアプリケーションの実行に関連付けられた機能に対する責務を、上記オンラインセッションに参加している第１のコンピュータに割り当てることと、
次に、上記オンラインセッションにおける状況の変化に基づいて、上記機能に対する責務を第２のコンピュータに再割り当てすることとをさらに含む請求項１記載の方法。
【請求項５】
上記オンラインセッションにおける状況の変化は上記オンラインセッションの上記通信構成の変化を含む請求項４記載の方法。
【請求項６】
上記マルチユーザアプリケーションの実行に関連付けられた他の機能に対する責務を、上記オンラインセッションに参加している第２のコンピュータに割り当てることをさらに含む請求項４記載の方法。
【請求項７】
上記オンラインセッションは、上記コンピュータネットワークに通信可能にリンクされる専用のサーバコンピュータを介して確立される請求項１記載の方法。
【請求項８】
上記オンラインセッションには複数のコンピュータが含まれ、上記コンピュータの少なくとも１つはピア・ツー・ピア型の通信構成を用いて他のコンピュータと通信し、上記コンピュータの少なくとも１つはクライアント−サーバ型の通信構成を用いて他のコンピュータと通信している請求項１記載の方法。
【請求項９】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
第１のコンピュータ上でソフトウェアアプリケーションの第１のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立することと、
第２のコンピュータ上で上記ソフトウェアアプリケーションの第２のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加することと、
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第１のコンピュータに割り当てることと、
上記所定の機能を実行する責務を上記第１のコンピュータ以外のコンピュータに再割り当てすることとを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づく方法。
【請求項１０】
上記ソフトウェアアプリケーションの上記オンラインセッションにおける上記状況の変化は、上記第１のコンピュータが上記オンラインセッションを終了して退出することを含む請求項９記載の方法。
【請求項１１】
上記第２のコンピュータが上記機能に対する責務を負うことを記録する記録を上記アプリケーションが保持することをさらに含む請求項９記載の方法。
【請求項１２】
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する他の機能を実行する責務を、上記第２のコンピュータに割り当てることをさらに含む請求項９記載の方法。
【請求項１３】
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定することと、
上記オンラインセッションの通信構成を、上記第１の構成から、上記第１の通信構成とは異なる第２の通信構成に変更することとをさらに含む請求項９記載の方法。
【請求項１４】
上記第１の通信構成はクライアント−サーバ型の構成である請求項１３記載の方法。
【請求項１５】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項１４記載の方法。
【請求項１６】
コンピュータネットワーク上で動作するマルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも２つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立することと、
上記コンピュータの１つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定することと、
上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出することと、
第２のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第２のコンピュータが負うように、上記セッションマスタコンピュータとして指定することとを含む方法。
【請求項１７】
上記第１のコンピュータと上記第２のコンピュータとはまずクライアント−サーバ型の通信構成で配置され、上記第１のコンピュータはサーバコンピュータであり、かつ上記第２のコンピュータは上記第１のコンピュータに関連したクライアントコンピュータである請求項１６記載の方法。
【請求項１８】
上記アプリケーションはまた、上記第２のコンピュータと第３のコンピュータがピア・ツー・ピア型の通信構成になるように、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を上記第２のコンピュータと共有するセッションマスタコンピュータとして上記第３のコンピュータを指定する請求項１６記載の方法。
【請求項１９】
マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは、複数のプログラム命令を実行しかつデータセットを受信する１つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
マルチユーザアプリケーションのオンラインセッションを確立する動作を含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも２つのコンピュータを含み、
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定する動作と、
上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第１の構成から、上記第１の通信構成とは異なる第２の通信構成に変更する動作とを含む、複数の動作を上記システムに実行させるシステム。
【請求項２０】
上記第１の通信構成はクライアント−サーバ型の構成である請求項１９記載のシステム。
【請求項２１】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項１９記載のシステム。
【請求項２２】
上記システムは、上記オンラインセッションに含まれる複数のコンピュータを含み、上記コンピュータの少なくとも１つはピア・ツー・ピア型の通信構成を用いて他のコンピュータと通信し、上記コンピュータの少なくとも１つはクライアント−サーバ型の通信構成を用いて他のコンピュータと通信している請求項１９記載のシステム。
【請求項２３】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
マルチユーザアプリケーションのオンラインセッションを確立することを含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも２つのコンピュータを含み、
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定することと、
上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第１の構成から、上記第１の通信構成とは異なる第２の通信構成に変更することとを含むプログラム製品。
【請求項２４】
上記第１の通信構成はクライアント−サーバ型の構成である請求項２３記載のプログラム製品。
【請求項２５】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項２３記載のプログラム製品。
【請求項２６】
マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは、複数のプログラム命令を実行しかつデータセットを受信する１つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
第１のコンピュータ上でソフトウェアアプリケーションの第１のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立する動作と、
第２のコンピュータ上で上記ソフトウェアアプリケーションの第２のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加する動作と、
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第１のコンピュータに割り当てる動作と、
上記所定の機能を実行する責務を上記第１のコンピュータ以外のコンピュータに再割り当てする動作とを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づく、複数の動作を上記システムに実行させるシステム。
【請求項２７】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
第１のコンピュータ上でソフトウェアアプリケーションの第１のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立することと、
第２のコンピュータ上で上記ソフトウェアアプリケーションの第２のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加することと、
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第１のコンピュータに割り当てることと、
上記所定の機能を実行する責務を上記第１のコンピュータ以外のコンピュータに再割り当てすることとを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づくプログラム製品。
【請求項２８】
マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは複数のプログラム命令を実行しかつデータセットを受信する１つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも２つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立する動作と、
上記コンピュータの１つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定する動作と、
上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出する動作と、
第２のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第２のコンピュータが負うように、上記セッションマスタコンピュータとして指定する動作とを含む、複数の動作を上記システムに実行させるシステム。
【請求項２９】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも２つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立することと、
上記コンピュータの１つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定することと、
上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出することと、
第２のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第２のコンピュータが負うように、上記セッションマスタコンピュータとして指定することとを含むプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータネットワークに関し、特に、ネットワーク通信のコンピュータ構成に関する。
【背景技術】
【０００２】
ローカルエリアネットワークやインターネットのようなコンピュータネットワークは、複数の当事者間における様々なトランザクション及びインタラクション（対話）のためのバックボーンとしてますます使用されるようになってきている。サービスプロバイダはますます、銀行の顧客らがコンピュータネットワーク上で金融取引を開始できるオンラインバンキング（オンラインの銀行取引）から、ゲームをする人たちがインターネットを介した様々なゲームに参加できるオンラインゲームにいたるまで、様々なサービスをコンピュータネットワークを介して提供している。現時点では、実行されるトランザクション及びインタラクションを促進する様々な異なるコンピュータネットワークの構成が存在する。
【０００３】
構成の１つのタイプは、図１に示したような古典的なクライアント−サーバ型の構成である。この構成では、専用サーバコンピュータ１１０が、ネットワークを介して、例えばインターネットを介して、１つ又は複数のクライアントコンピュータ１２０に対して通信可能であるようにリンクされている。クライアントコンピュータ１２０は、サーバコンピュータ１１０にサービス要求を行い、サーバコンピュータ１１０は、要求側のクライアントコンピュータ１２０へネットワークを介してデータを送信することによってその要求に応える。サーバコンピュータ１１０は、データ記憶装置へ、又はクライアントコンピュータとサーバコンピュータとの間のトランザクションを促進する他のコンピュータ装置へ接続されることが可能である。クライアント−サーバ型の構成の１つの特徴は、クライアントコンピュータはサーバコンピュータとの間で通信するように制限されているので、複数のクライアントコンピュータが互いに直接的に通信できないということにある。
【０００４】
例えば、オンラインゲームを行う環境においてクライアント−サーバ型の構成が動作される場合、サーバコンピュータ１１０は、オンラインゲームに関連付けられた様々な状態を保持することの責務を有する可能性がある。サーバコンピュータは、ゲームの１つ又は複数のインスタンスを保持するメモリエンジン１４０のような他のコンピュータに接続されることが可能であるとともに、サーバコンピュータ１１０は、プレーヤ（遊技者）のマッチング及びアカウント管理等の、運営又は管理上の事柄を管理する。クライアントコンピュータ１２０上のゲームプレーヤはサーバコンピュータ１１０にログオンし、利用可能なゲーム及び参加しているプレーヤらのリストを受信することができる。プレーヤは、開始するか又は参加するゲームを選択し、これにより、当該プレーヤのコンピュータがクライアント−サーバ型の接続を確立する際に使用するメモリエンジンを識別する。このようにして、サーバコンピュータ１１０及びメモリエンジン１４０はともに、１つ又は複数のクライアントコンピュータ１２０のためにゲームを行う環境を運営し、又は管理する。
【０００５】
もう１つのタイプの構成は、図２に示したような統合化されたサーバの構成と呼ばれるものである。この構成は、専用サーバコンピュータ１１０と、コンピュータネットワークを介してそれぞれサーバコンピュータ１１０に接続されている１つ又は複数のクライアントコンピュータ１２０とを含む。先に説明した構成の場合と同様に、サーバコンピュータ１１０はクライアントコンピュータ１２０へデータを提供する。しかしながら、クライアントコンピュータ１２０の１つ、例えばクライアントコンピュータ１２０ａは、このクライアントコンピュータ１２０ａが他のクライアントコンピュータ１２０へデータを提供することができるという点で統合型のサーバとして機能する。これにより、クライアントコンピュータ１２０ａは、オンライン環境を保持することに関連付けられた処理負荷のいく分かを共有することができる。例えば、オンラインゲームを行う環境においては、サーバコンピュータ１１０は、プレーヤのマッチング、アカウントの管理及びチャットルームの管理といった運営機能を実行可能である一方、クライアントコンピュータ／統合化されたサーバ１２０ａは、先に説明したメモリエンジンの機能を実行することができる。
【０００６】
さらにもう１つのタイプの通信構成では、図３に示したように、様々なコンピュータがピア・ツー・ピア構成で配置される。ピア・ツー・ピア構成では、各々のコンピュータが他のコンピュータと通信できるので、すべてのコンピュータが「ピア」として機能する。ピア・ツー・ピア構成の一形態においては、専用サーバ１１０が、ネットワークを介して複数のクライアントコンピュータ１２０に通信可能であるように接続される。オンラインセッションはまず、クライアントコンピュータ１２０のそれぞれがサーバコンピュータ１１０等の運営コンピュータに接続することによって確立される。次いで、複数のクライアントコンピュータ１２０は、クライアントコンピュータ１２０のそれぞれが、他の任意のクライアントコンピュータ１２０にデータを提供することと、他の任意のクライアントコンピュータ１２０からデータを受信することとの両方の能力を有するように、互いに通信可能であるように接続される。さらに、各クライアントコンピュータ１２０は、専用サーバ１１０との間で、クライアント−サーバの関係で動作することができる。当業者には、上述の構成に加えて他の通信構成も存在するということが理解されるであろう。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
異なる通信構成には、その各々に関連付けられる複数の優位点と複数の不利な点とがある。例えば、クライアント−サーバ型の構成は、高性能なコンピュータを専用サーバとして使用することを可能にするが、このことは、サーバコンピュータによる大量のデータ処理が必要とされる場合には優位点となりうる。これに対して、高性能な専用サーバコンピュータを使用することはサーバのオペレータにとって不経済である可能性があり、また、そのような処理能力を必要としない状況においてもサーバが使用される場合には過剰な処理またはやりすぎとなる可能性もある。ピア・ツー・ピア型構成の優位点は、複数のクライアントコンピュータがサーバを介してそれらのデータを共用するのではなく互いに直接的にデータを共用するということに起因した、より高速な通信速度にある。このことは、接続されたネットワークを介して生じるデータ転送の量を削減する。ただし残念ながら、クライアントコンピュータのうちの１つが大きな通信帯域幅を持たない場合には、ピア・ツー・ピア型通信における通信は遅くなる可能性がある。
【０００８】
オンラインゲームを行う環境においては、異なる通信構成の様々な優位点及び不利な点に係るいくつかの特定の例を見ることができる。単一のゲームインスタンスに参加している何百名ものプレーヤを関与させる場合がしばしばあるアクションゲーム及びロールプレイングゲームのような所定のタイプのゲームは、同時に存在する多数のプレーヤを関与させ、ゲーム環境を保持するために大量の集中的なデータ処理を必要とする。このようなゲームは、データ処理のために高性能な専用サーバを使用可能なクライアント−サーバ型の構成に、より適している可能性がある。一方、クライアント−サーバ型の構成は、それほど高性能なデータ処理を必要としない他のタイプのゲームにとっては、サーバのリソースが十分には活用されないので理想的なものにはならないであろう。このことは、ゲームのインスタンスにつき数名のプレーヤのみを含むような場合の多いスポーツゲームのようなゲームにおいてしばしば当てはまる。このようなゲーム環境には、ピア・ツー・ピア型構成の方がより適している可能性があり、その場合、ゲームに参加している複数のコンピュータの間でデータ処理がより容易に割り当てられることが可能であり、また、ゲーム環境を保持するために集中化されたサーバが必要とされない。
【０００９】
残念ながら、オンラインのマルチユーザアプリケーションを提供する現行のネットワークシステムは、上述の構成の一方においてのみ動作するようにセットアップされている。例えば、アクションゲーム又はロールプレイングゲーム（role playing game：ＲＰＧ）のようなマルチユーザアプリケーションは、古典的なクライアント−サーバ型構成において動作する可能性があり、セッションが継続している間はその構成で動作するように制限される。アプリケーションは、正当な事情があっても、例えばプレーヤ数がスポーツゲーム並の人数にまで減少されても、別の構成に切り換わることができない。
【００１０】
さらに、ネットワーキングのためのいくつかの構成要素は、ネットワークの制限事項に起因して特定の構成でのみ動作する。これらの制限事項は、所定のクライアントがクライアント−サーバ型の環境で接続される一方、他のものはピア・ツー・ピア型構成で接続されることを要求する可能性がある。
【課題を解決するための手段】
【００１１】
本発明に係る動作するマルチユーザアプリケーションは様々なネットワーク通信構成において動作することが可能であり、かつこのアプリケーションのオンラインセッションの間に通信構成を動的に変更することが可能である。ネットワーク通信構成の１つはクライアント−サーバ型の構成であり、ここでは、少なくとも１つのサーバコンピュータと、クライアントコンピュータとして動作する少なくとも１つのコンピュータとを含む複数のネットワークコンピュータが、このアプリケーションのオンラインセッションに参加する。クライアント−サーバ型の構成では、サーバコンピュータは、オンラインセッションの間に、アプリケーションに関連したデータをクライアントコンピュータの各々へ提供する。本マルチユーザアプリケーションに係るもう１つの通信構成では、複数のネットワークコンピュータはピア・ツー・ピア型の構成において動作し、ここでは、ネットワークコンピュータは、このアプリケーションのオンラインセッションに参加している他のネットワークコンピュータのうちの任意のものに対してデータを提供し、かつ当該他のネットワークコンピュータのうちの任意のものからデータを受信する能力を有している。従って、本アプリケーションは、オンラインセッションの間に通信構成を切り換えることができる。
【００１２】
本マルチユーザアプリケーションは、アプリケーションを実行するコンピュータのうちのいくつかがクライアント−サーバ型構成で通信している一方、他のコンピュータはピア・ツー・ピア型構成で通信しているように動作することができる。本アプリケーションは、一方の構成からもう一方の構成へいつ変更するのかを決定することができる。例えば、本マルチユーザアプリケーションは、エンドユーザアプリケーションにとって最適である適切な通信構成（クライアント−サーバ型又はピア・ツー・ピア型）を決定することができるようなネットワーク通信マネージャであって、ユーザが他のエンドユーザアプリケーションへのアクセスを得るために登録する際に使用するネットワーク通信マネージャを備えることが可能である。それに代わって、本アプリケーションは、利用可能な帯域幅に従って適切な通信構成を決定することもできる。こうして、本アプリケーションは、オンラインセッションに比較的少数のユーザが関与している場合にはピア・ツー・ピア型の通信構成を選択することができ、より多数のユーザが関与する場合にはクライアント−サーバ型の通信構成を選択することができる。
【００１３】
本発明のある態様において、マルチユーザアプリケーションは、ネットワークコンピュータの１つを、このアプリケーションのオンラインセッションの保持に関する所定の機能を実行することに責務を有するセッションマスタとして指定する。本アプリケーションは、オンラインセッションに参加している特定のコンピュータにセッションマスタの機能が固定的に割り当てられる専用モードで動作することが可能である。本アプリケーションはまた、セッションマスタの機能がオンラインセッションに参加している１つのネットワークコンピュータから別のネットワークコンピュータへ移ることができる移動モードで動作することも可能である。従って、セッションマスタの機能は、最初にセッションマスタとして割り当てられたネットワークコンピュータがオンラインセッションを終了して退出するときに、１つのネットワークコンピュータから別のネットワークコンピュータへ移動することができる。それに加えて、セッションマスタの機能は、オンラインセッションにおけるネットワークコンピュータのうちの２つ以上の間に分散されることが可能である。
【００１４】
本発明の他の特徴及び優位点は、本発明の原理を例示的に示す好適な実施形態に関する以下の説明から明らかとなるであろう。
【発明を実施するための最良の形態】
【００１５】
本発明の目的、優位点及び特徴は、添付の図面に関連する以下の詳細な説明を読むことにより、さらに容易に理解されるであろう。
【００１６】
図４は、１つ又は複数のクライアントコンピュータ４１０，４１２と、１つ又は複数の専用サーバコンピュータ４２０，４２２とを含む１つ又は複数のネットワーク装置で構成される、コンピュータネットワークシステム４００のブロック図である。上記ネットワーク装置は、コンピュータネットワーク４３０のノードである。従って、ネットワークコンピュータのいくつかはサーバとして構成され、いくつかはクライアントとして構成される。コンピュータネットワーク４３０は、インターネットのような相互に接続された複数のネットワークの集合体を含んでもよく、ノード４１０，４１２，４２０，４２２の各々において１つ又は複数のローカルエリアネットワークを含んでもよい。ここで使用しているように、「インターネット」という用語は、標準的な通信プロトコルのセットによりともにリンクされてグローバルな分散型ネットワークを形成する、相互に接続された（公衆の、及び／又は専用の）複数のネットワークの集合体を示す。
【００１７】
クライアントコンピュータ４１０，４１２は、ネットワーク４３０を介してクライアントコンピュータへ公知の方法でデータを提供するように構成されたサーバコンピュータ４２０，４２２の一方へ、ネットワーク４３０を介してデータ要求を送信することが可能である。サーバコンピュータ４２０，４２２は、当業者には認識されるように、データベースサーバ及び／又はアプリケーションサーバのような他のサーバを含む場合もあり、あるいは、互いに通信可能な方式でリンクされかつ上記他のサーバに通信可能な方式でリンクされる場合もある。図４は２つのクライアントコンピュータ４１０，４１２及び２つのサーバコンピュータ４２０，４２２のみを示しているが、ネットワークシステム４００は任意個数のクライアントコンピュータ４１０，４１２及びサーバコンピュータ４２０，４２２を含んでもよいということは理解される必要がある。ここでは、サーバコンピュータ４２０，４２２及びクライアントコンピュータ４１０，４１２を時として集合的にネットワークコンピュータと呼んでいる。
【００１８】
ネットワークシステム４００は、所定のコンピュータプログラムで構成されるマルチユーザアプリケーション４４０をサポートし、上記マルチユーザアプリケーション４４０により、複数のユーザは、コンピュータネットワーク４３０にリンクされた複数のネットワーク装置（クライアントコンピュータ４１０，４１２等）を用いてオンラインセッションで対話することができる。アプリケーション４４０はクライアントコンピュータの各々にインストールされるが、このことは、このアプリケーションの動作上のインスタンスが、アプリケーション４４０を走らせる（実行する）クライアントコンピュータ４１０，４１２の各々のメモリに格納されるということを意味する。マルチユーザアプリケーションのオンラインセッションに参加しようとしている各サーバコンピュータもまた、アプリケーション４４０のインスタンスを格納する。これを説明するために、サーバ４２０，４２２の両方を、インストールされたアプリケーション４４０とともに図示しているが、第１のサーバコンピュータ４２０は、クライアントマシン４１０，４１２によって実行されているマルチユーザアプリケーションのためのサーバであるということを仮定している。データの交換は、実行中にアプリケーション４４０のインスタンス間で発生し、ネットワークコンピュータのそれぞれにおけるネットワークソケット４４５の確立によって有効化される（イネーブルにされる）。ソケットは、図４では個々のネットワークコンピュータにおけるボックスとして表示されている。当業者は、ネットワークソケットが、ネットワークシステム４００上で実行される２つ以上のプログラム間の多元（マルチウェイ）通信リンクの一方の端末であるということを理解するであろう。
【００１９】
アプリケーション４４０は、様々な通信構成に従うネットワークシステム４００のネットワーク装置上で実行されることが可能であり、様々なアプリケーションに関連した処理に対する責務は、詳細後述するように、ネットワーク４３０の異なる複数の計算装置に割り当てられることが可能である。アプリケーション４４０を開発するためには、同じく詳細後述するように、好適にはアプリケーション開発インターフェースが使用される。アプリケーションは、関連付けられたネットワークコンピュータが、図１、図２及び図３に示した通信モードのうちの任意のものを実装する通信構成を使用できるように動作可能である。
【００２０】
マルチユーザアプリケーション４４０は、コンピュータネットワーク４３０にリンクされたネットワークコンピュータ上でユーザが実行できる、任意のタイプのアプリケーションであることが可能である。アプリケーション４４０がクライアントコンピュータ４１０，４１２上で実行されるとき、ユーザは、同じくアプリケーション４４０を実行している他のネットワークコンピュータを介して他のユーザと対話することができる。サーバコンピュータ４２０は、中央ネットワークの「ミーティングポイント（集合地点）」として機能することが可能であり、ユーザらは、この「ミーティングポイント」により、コンタクトを確立し、データを保持し、アプリケーション４４０のオンラインセッションを開始することができる。典型的には、アプリケーション４４０は、当該アプリケーション４４０が内部で動作しているネットワーク装置に、装置４１０，４１２，４２０等の他のネットワーク装置との通信を確立させ、これによりオンラインセッションを開始する。オンラインセッションの間、複数のネットワークコンピュータは、アプリケーション４４０のプログラミングされた機能に従って対話しかつデータを交換する。
【００２１】
アプリケーション４４０が起動され、適切に構成されたコンピュータ間にオンラインセッションが確立されるとき、本アプリケーションは、これらのコンピュータが様々な通信構成で対話することを可能にする。この説明を通じていくつかの場合に、複数のユーザがクライアントコンピュータ４１０，４１２を用いてアクセスしかつ実行することのできるコンピュータゲームをアプリケーション４４０が備えた、オンラインゲームを行うシナリオにおいてアプリケーション４４０を説明する。このような場合、アプリケーション４４０は、ネットワークコンピュータが参加するゲームで構成されるオンラインセッションを確立する。しかしながら、アプリケーション４４０は、コンピュータネットワーク上の複数のコンピュータ間のインタラクションを伴う、例えばオンラインバンキング又はオンラインの旅行計画立案のようなゲーム以外の他のシナリオに関連していてもよいということは理解される必要がある。
【００２２】
マルチユーザアプリケーション４４０は、アプリケーション４１０、４１２を実行するクライアントコンピュータのうちのいくつかがクライアント−サーバ型の構成で通信し、その一方で他のコンピュータがピア・ツー・ピア型の構成で通信するように動作することができる。本アプリケーションは、一方の構成からもう１つの構成へいつ変更するのかを決定することができる。さらに、マルチユーザアプリケーション４４０は、ゲーム等のエンドユーザアプリケーションや又はエンドユーザプログラムへのアクセスを許可する、ゲームのポータル又はプログラムのポータルのようなネットワーク通信マネージャとして構成されることが可能である。それに代わって、通信管理機能とエンドユーザプログラムとがマルチユーザアプリケーション４４０に統合化されることも可能である。いずれの状況においても、マルチユーザアプリケーション４４０は、エンドユーザアプリケーションにとって最適である（クライアント−サーバ型又はピア・ツー・ピア型のような）適切な通信構成を決定することができる。例えば、決まった人数のユーザ又は６名のユーザを含むグループがあるゲームに参加している場合のように、比較的少数のユーザがオンラインセッションに参加している場合には、本アプリケーションはピア・ツー・ピア型の通信構成を選択することができ、何百名ものプレーヤを包含する大規模なオンラインセッション又はロールプレイングゲームのように、より多数のユーザが関与する場合には、本アプリケーションはクライアント−サーバ型の通信構成を選択することができる。それに代わって、小規模なユーザグループであってもクライアント−サーバ型の構成に最適であるという可能性もあるので、本アプリケーションは、利用可能な帯域幅に従って適切な通信構成を決定することも可能である。限られた帯域幅を有するあるユーザがクライアント−サーバ型構成におけるクライアントの役割に制限される可能性がある一方で他のユーザがピア・ツー・ピア方式で動作するように、利用可能な帯域幅の選択基準は、所望されれば、個別のレベルで適用されることが可能である。
【００２３】
アプリケーション４４０が実行されるとき、これはセッションマスタを識別する。セッションマスタとは、オンラインセッションの間に発生するコンピュータ間のインタラクションに関して、本アプリケーションのための様々な管理者及び運営機能を実行するネットワークコンピュータである。本アプリケーションのオンラインセッションは、ユーザ識別等の情報を含むデータ記憶装置に対する登録又はログオン処理を使用する。ログオン処理は、アプリケーションのネットワーク環境におけるさらなる参加を認証する。好適には、セッションマスタのこの機能は、アプリケーション４４０を実行するクライアントコンピュータ４１０等のクライアントコンピュータがサーバコンピュータ４２０にログオンしてオンラインセッションを開始するときに割り当てられる。しかしながら、このような割り当てが行われる場合と方法に関する詳細はアプリケーション自体によって決定されるので、本発明が教示する内容を逸脱することなく、様々なセッションマスタ割り当て方式を実装することができる。
【００２４】
本アプリケーションのオンラインセッションを開始する、クライアントコンピュータ４１０上でのアプリケーションの動作するインスタンスは、ホストコンピュータと呼ばれる。ホストコンピュータにおけるアプリケーションは、セッションマスタの機能をサーバコンピュータ４２０又はホストコンピュータ４１０のいずれかに割り当てる。新しいクライアントコンピュータがサーバコンピュータ４２０にログオンして（登録して）オンラインセッションに参加すると、サーバコンピュータ４２０は、既に割り当てられているセッションマスタコンピュータの識別情報を、この新しいクライアントに通知する。
【００２５】
詳細後述するように、セッションマスタの機能は、アプリケーション４４０が動作可能である様々なネットワークの通信構成間での、滑らかな遷移を可能にする。セッションマスタの機能はまた、アプリケーション４４０が、アプリケーションに関連したタスクに対する責務をある特定のネットワークコンピュータに集中させたり、又は、このような責務を２つ以上のネットワークコンピュータの間で分散させたりすることを可能にする。タスクの割り当ては、ネットワークコンピュータのうちの１つの上におけるアプリケーション４４０のインスタンスにより、セッションマスタの機能の割り当てと同時に実行されることが可能であり、また、セッションマスタのタスクは、必須の機能を提供するためにネットワーク４３０上のコンピュータのうちの１つ又は複数に対して割り当てられることが可能である。ここでは、セッションマスタの責務の割り当てを受ける１つ又は複数のコンピュータを、個々のセッションマスタの機能の「所有者」と呼ぶ。複数のコンピュータが集合的にセッションマスタの機能を実行している場合には、単独のセッションマスタに言及している場合であっても、上記複数のコンピュータからなるグループに適用されるものとして理解されたい。従って、セッションマスタのタスクの割り当ては、アプリケーションの開発者の指示に従い、アプリケーションによって指定される方法で実行される。
【００２６】
上述のように、セッションマスタは動作上の複数の優位点を提供するが、そのうちの１つは、オンラインセッションに参加している複数のコンピュータ間で所定の責務を分散させることにある。例えば、アプリケーション４４０に関連付けられた所定のタスクは、１つのネットワークコンピュータに係る大量の処理能力を消費する可能性のある、大規模なデータ処理の必要条件を有することがある。ネットワークコンピュータのうちの１つにおけるアプリケーション４４０のインスタンスは、これらのタスクのうちのあるものをセッションマスタへ割り当て、セッションマスタの所有権を、そのタスクにとってより適すると思われる特定のコンピュータへ割り当てることができる。アプリケーション４４０はまた、オンラインセッションに関する所定のタスクがそれぞれ割り当てられたいくつかのコンピュータ間で、複数のセッションマスタを保持することも可能である。このようにして、単一のコンピュータがすべてのタスクの責務による過剰な負担を負うことのないように、タスクは複数のコンピュータ間に分散されることが可能である。
【００２７】
また、セッションマスタの機能は、詳細後述するように、メッセージをフィルタリングする責務を用いることによってネットワーク帯域幅の効率的な利用をもたらす。さらに、セッションマスタの機能を所有するネットワークコンピュータがオンラインセッションから離脱するとき、残りのネットワークコンピュータのうちの１つにおけるアプリケーション４４０のインスタンスは、以前のセッションマスタコンピュータに係るセッションマスタの責務を、別のネットワークコンピュータへ再割り当てしてもよく、これにより、セッションマスタによって実行される動作を混乱させることのない、オンラインセッションにおける円滑な移行（切り換え）が可能になる。また、これにより、アプリケーション４４０は、セッションマスタの責務を１つのコンピュータから別のコンピュータへ再割り当てすることにより、例えばオンラインセッションの間にサーバ４２０からクライアントコンピュータ４１０へ再割り当てすることにより、通信構成をオンザフライで（直接的に）切り換えることが可能になる。このようにして、アプリケーション４４０は、クライアント−サーバ型構成からピア・ツー・ピア型構成へ切り換え、またこの反対に切り換えるなど、オンラインセッション中に複数の通信構成の間で動的に切り換わる。
【００２８】
セッションマスタに割り当てられる責務に係る１つのカテゴリーは、特定のタイプのアプリケーション４４０に特有の機能である、アプリケーションに固有の機能に関連している。例えば、アプリケーション４４０がゲームタイプのアプリケーションであれば、セッションマスタ、又はセッションマスタのグループは、ゲームのスコアやゲームの残り時間等のゲームタイプのデータを追跡することが可能であり、かつ、ゲームが終了したときにセッションを終了させること等のゲーム機能を実行することができる。また、セッションマスタには、フットボール、海、樹木などのゲーム環境におけるオブジェクトの状態のような、特定のゲームデータの追跡を割り当てることもできる。これらの責務は、単一のセッションマスタに集中化されることが可能であり、あるいは、いくつかのセッションマスタ間で分割されることも可能である。古典的なクライアント−サーバ型の構成では、オンラインセッションの間、専用サーバに１つ又は複数のセッションマスタの所有権を割り当てることができる。すると、ネットワークコンピュータの１つにおけるアプリケーション４４０のインスタンスは、詳細後述する通り、構成がピア・ツー・ピア型に切り換わるように、セッションマスタの所有権を専用サーバからクライアントコンピュータの１つへ再割り当てすることができる。
【００２９】
セッションマスタの責務に係るもう１つのカテゴリーは、メッセージのフィルタリングである。オンラインセッションの過程において、アプリケーション４４０は、オンラインセッションの様々な態様に関する通信メッセージの送信をネットワークコンピュータに実行させることができる。メッセージは変化する可能性があり、例えば、オンラインセッションの状態を記述するメッセージ、ユーザ間のチャットメッセージ、及びゲーム時間を更新するタイミングメッセージに関連するものである可能性がある。メッセージはまた、ネットワークコンピュータが他のネットワークコンピュータに送信して送信側のコンピュータがまだオンラインセッションに参加していることを知らせる更新メッセージを含む場合もある。
【００３０】
所定のインスタンスでは、セッションマスタは、ネットワークコンピュータのうちの所定のものに通信情報が送信されるべきか否かを決定するフィルタを保持する。アプリケーション４４０は、メッセージのいくつか又はすべてが、まずフィルタ解析のためにセッションマスタコンピュータへ送信されるように構成される。セッションマスタは、好適にはフィルタを保持し、適当な場合に通信情報が送信されることを防止する。セッションマスタは、好適には、メッセージの送信をフィルタリングするためにセッションマスタが参照するフィルタリストを保持する。フィルタリストは、所定のメッセージタイプについて、どのコンピュータがそのメッセージを受信すべきでないかということについて指定する。
【００３１】
例えば、あるオンラインゲームを行う環境において、各クライアントコンピュータは、仮想世界で動き回るキャラクタを担当することが可能であり、ここでは、その仮想世界におけるアイテムの状態に関するデータを含むメッセージが送信される。メッセージが、所定のキャラクタによって認識される範囲の外側にあるアイテムに関連していれば、そのキャラクタに関連付けられたネットワークコンピュータを更新する必要性はないであろう。こうした場合、セッションマスタはメッセージをフィルタリングしてそのメッセージがコンピュータに送信されないようにすることが望ましいであろう。これにより、送信される必要のあるメッセージだけが送信されるような効率的な帯域幅利用がもたらされる。
【００３２】
ホストコンピュータは、オンラインセッションに参加しているコンピュータに関する管理者機能を実行する。例えば、あるネットワークコンピュータがアプリケーション４４０のオンラインセッションに参加するときはいつでも、ホストコンピュータは、セッションに参加するコンピュータに識別インデックス番号を割り当てる。ホストコンピュータは、識別インデックス番号と、これらに関連付けられたネットワークコンピュータとのリストを保持する。このインデックス番号はメッセージを送信する際に使用され、かつセッションマスタの機能に関する所有権の記録を保持するためにも使用される。
【００３３】
上述のように、オンラインセッションには複数のセッションマスタが存在する可能性がある。セッションマスタを割り当てる方法は、アプリケーションによって、アプリケーションの動作に従って決定されることが可能である。アプリケーション４４０はまた、オンラインセッションに参加しているすべてのネットワークコンピュータの状態に関して複数のネットワークコンピュータを更新するための更新メッセージを送り出すことに関する責務を、セッションマスタに割り当てることもできる。この責務に伴ってセッションマスタは、詳細後述するように、新しいネットワークコンピュータがオンラインセッションに参加したとき、又は現在の参加者がアプリケーション４４０のオンラインセッションを終了して退出したときに、参加しているネットワークコンピュータに通知する。
【００３４】
また、上述のインデックス番号を各コンピュータに割り当てるホストコンピュータは、オンラインセッションに参加しているすべてのネットワークコンピュータのリストを保持する。よって、アプリケーション４４０は、コンピュータに割り当てられたインデックス番号に従ってセッションマスタの所有権を追跡する。インデックス番号及び責務の割り当てを追跡するために、アプリケーション４４０は、ネットワークコンピュータのインデックスのリストで構成された、図５に示したテーブル５００のようなテーブルの形式等で、データ構造を保持することができる。テーブル５００は、オンラインセッションに参加している各ネットワークコンピュータに関連付けられたインデックス番号を含み、かつまた当該ネットワークコンピュータがセッションマスタの機能を所有するか否かについての表示を含む。また、テーブル５００を備えたインデックスのリストのデータ構造は、好適には、各ネットワークコンピュータのために使用されている通信プロトコルを特定する。図５は、異なるセッションマスタのタスク（Ｃ１，Ｃ２，Ｃ３）が異なるネットワークコンピュータによって所有されてもよいということを示している。
【００３５】
データ構造は、通信プロトコルを特定することに加えて、各ネットワークコンピュータについて通信プロトコルが関連付けられるポートをも特定する。アプリケーション４４０の各インスタンスは、オンラインセッションに参加している関連付けられたネットワークコンピュータが、各ポートが特定の通信プロトコルに関連付けられている状態で複数の通信ポートを開くことを可能にする。ネットワークコンピュータは、図５に示したテーブル５００で構成されるデータ構造において特定された特定のポート及び特定のプロトコルを用いて、他のネットワークコンピュータと通信する。ポートは、アプリケーション４４０のインスタンスがネットワークを介して通信する際に使用するネットワークソケットを備えることができる。ネットワークコンピュータは、好適には、ネットワークを介して互いに通信メッセージを定期的に送信することにより、ポート／プロトコル情報を伝送するとともに、インデックスのリストに含まれる他の情報を伝送する。
【００３６】
ネットワークコンピュータがサーバコンピュータ４２０に接続してオンラインセッションを確立するとき、図８を参照して詳細後述するように、ネットワークコンピュータ上のアプリケーション４４０のインスタンスは、セッションマスタの所有権をネットワークコンピュータの１つに割り当てることができる。この点に関して、各ネットワークコンピュータ上のアプリケーション４４０のインスタンスは、好適には、オンラインセッションに参加している全ネットワークコンピュータのリストを保持し、また前述のインデックス番号をコンピュータの各々に関連付ける。アプリケーション４４０は次に、コンピュータに割り当てられたインデックス番号に従ってセッションマスタの所有権を追跡する。
【００３７】
ネットワークコンピュータは、ネットワークコンピュータのインデックスのリストで構成された、図５に示したテーブル５００のようなテーブルの形式でデータ構造を保持することが可能であり、テーブルは、オンラインセッションに参加している各ネットワークコンピュータに関連付けられたインデックス番号を含むとともに、そのコンピュータが１つ又は複数のセッションマスタの機能を所有するか否かについての表示を含む。また、インデックスのリストのデータ構造は、好適には、各ネットワークコンピュータに対して使用される通信プロトコルを特定する。好適には、オンラインセッションに参加しているすべてのコンピュータは、テーブル５００に係るインデックスのリストのコピーを保持する。テーブル５００が単に例示的なものであるということと、アプリケーション４４０が、ネットワークコンピュータのインデックス番号、通信構成、及びセッションマスタの所有権を、広範な種類にわたるデータ構造フォーマットを用いる他の方法で追跡できるということとは理解される必要がある。
【００３８】
本アプリケーションは、オンラインセッションの間に通信構成及びプロトコルを変更することができる。上述のように、どの通信構成を使用するかということについての決定は、アプリケーションの性質（例えば、１対１のゲームか、それに対して大規模なロールプレイングゲームか）に、又はオンラインセッションへの参加者数に、もしくは利用可能な帯域幅に依存する可能性がある。例えば、オンラインセッションへの参加者が比較的少数であればピア・ツー・ピア型の構成が最適である可能性があるが、オンラインセッションに何百名ものユーザが関与するアプリケーション環境であればクライアント−サーバ型の通信構成が実際的な唯一の状況となる可能性がある。他方の通信構成ではなく一方の通信構成を選択するための実際的な決定パラメータは、アプリケーションによるリソースの必要条件に依存して変わるが、アプリケーション開発者には既知のものである。
【００３９】
アプリケーション４４０は、異なる方式に従って、又は複数の方式の組み合わせに従ってセッションマスタの所有権を割り当てることができる。図６に示した第１の方式では、アプリケーション４４０は、セッションマスタ６００の所有権を、専用サーバコンピュータ４２０のような単一のコンピュータに割り当てている。セッションマスタ６００の所有権が割り当てられたコンピュータは、アプリケーション４４０に命令される、セッションマスタ６００に関連付けられたすべての機能に対する責務を負う。この例では、専用サーバコンピュータ４２０がセッションマスタを所有する。従って、各ネットワークコンピュータにおけるアプリケーション４４０は、セッションマスタの機能に関してクライアント−サーバ型の通信構成で動作し、サーバコンピュータ４２０は、複数のクライアントコンピュータ４１０へセッションマスタの責務に関するデータを提供する。
【００４０】
図６では点線を用いて示したセッションマスタ６００ａをクライアントコンピュータ４１０が所有するように図示した場合のように、アプリケーション４４０のオンラインセッションに参加しているコンピュータはいずれも、セッションの所有権を有することも可能であるということが理解される必要がある。さらに、アプリケーション４４０は、セッションマスタのいくつかのインスタンスを保持し、ここで、各セッションマスタに特定の責務が割り当てられ、かつ各セッションマスタが異なる複数のネットワークコンピュータに又は同一のコンピュータに割り当てられることが可能である。例えば図６は、２つのセッションマスタ６００及び６００ａが存在し、その各々にアプリケーション４４０のオンラインセッションに関する所定の機能に対する責務が割り当てられているという状況を示している。セッションマスタ６００ａを有するクライアント４１０は、統合化されたサーバとして動作する。
【００４１】
図７に示したもう１つの方式では、アプリケーション４４０は、セッションマスタ６００の所有権をいくつかのコンピュータの間に分散させている。図示された例では、クライアントコンピュータ４１０の両方がセッションマスタ６００の所有権を共有している。このような場合では、両方のコンピュータが、セッションマスタに関連付けられた機能を実行することが可能であり、そのため、図６における複数のネットワークコンピュータはピア・ツー・ピア型の構成になる。従って、コンピュータの１つがオンラインセッションを終了して退出した場合でも、セッションマスタコンピュータの終了及び退出の結果としてセッション自体が終了することはない。
【００４２】
セッションマスタはまた、アプリケーション４４０によって決定されたときに、異なるモードで動作することもできる。専用モードと呼ばれる第１のモードでは、アプリケーション４４０は、セッションマスタの所有権を特定のネットワークコンピュータへ固定的に割り当てる。セッションマスタに関連付けられたアプリケーション機能は、そのコンピュータにより、かつそのコンピュータのみによって保持される。従って、この専用のセッションマスタを所有していたコンピュータが故障したとき又は電源を切ったとき、セッションマスタに関連付けられたタスクは実行されなくなる。例えば、セッションマスタが、あるオンラインゲームを行う環境の所定の態様を保持することに責務を負う場合、セッションマスタの専用の所有権を有するコンピュータがオンラインセッションから離脱すれば当該環境のこれらの態様は終わりになる。
【００４３】
移動モードと呼ばれるもう１つのモードでは、セッションマスタの所有権は、１つのネットワークコンピュータから、オンラインセッションに参加している１つ又は複数の他のネットワークコンピュータへ移動することができる。例えば、セッションマスタは、アプリケーション４４０のオンラインセッションがセッションマスタの責務に関してクライアント−サーバ型構成であるように、当初はサーバコンピュータ４２０によって所有されてもよい。図６にはこのことが示され、ここでは、セッションマスタ６００はサーバコンピュータ４２０に設けられた実線のボックスとして図示されている。所定の状況が発生したとき、例えば、サーバコンピュータ４２０が電源を切ったとき、アプリケーション４４０は、セッションマスタ６００の所有権を、クライアントコンピュータのうちの１つのような別のコンピュータへ移動させることができる。例えばこのようにして、セッションマスタ６００は、図６に示す古典的なクライアント−サーバ型の通信構成で保持され、次いで状況に応じて別の構成へ変わることが可能である。例えば、セッションマスタ６００を所有するコンピュータがセッションを終了すると、セッションマスタ６００の所有権は別のコンピュータへ移動することが可能であり、又は複数のコンピュータ間で共用されることが可能である。
【００４４】
図８に示したフローチャートは、この処理において発生する動作を表す。本処理は、アプリケーション４４０のインスタンスを実行しているクライアントコンピュータ４１０の観点から説明されている。８０５の番号を有するフロー図ボックスが表す最初の動作では、コンピュータ４１０は、コンピュータネットワークを介してサーバコンピュータ４２０に接続する。コンピュータ４１０は、これによりアプリケーション４４０のオンラインセッションを確立する。この開始する側のコンピュータは、ホストコンピュータと呼ばれる。好適には、ホストコンピュータのアプリケーション４４０は、識別の目的で、それ自体にインデックス番号を割り当てる。同じくアプリケーション４４０を実行していてかつ次にサーバコンピュータ４２０に接続するもう１つのネットワークコンピュータも、アプリケーション４４０のオンラインセッションに参加することができる。
【００４５】
次の動作では、８１０の番号を有するフロー図ボックスが表すように、セッションマスタの所有権が１つ又は複数のネットワークコンピュータへ割り当てられる。ホストであるクライアントコンピュータ４１０は、それがオンラインセッションを確立したコンピュータであるので、当該クライアントコンピュータ４１０自体をセッションマスタとして指定することができる。それに代わって、サーバコンピュータ４２０がセッションマスタとして指定されてもよい。アプリケーションは、それ自体で、セッションマスタの機能が割り当てられる方法を決定し、ゆえに、本発明の教示する内容を逸脱することなく、セッションマスタの様々な割り当て方式を実装可能である。サーバコンピュータ４２０及び／又はクライアントコンピュータ４１０は、セッションマスタの機能の割り当てを受ける１つ又は複数のコンピュータを識別する記録を保持する。他のネットワークコンピュータがオンラインセッションに参加するためにサーバコンピュータ４２０に接続すると、セッションマスタコンピュータは、コンピュータのインデックス番号を用いて、他のコンピュータにセッションマスタの識別情報を通知する。
【００４６】
８２０の番号を有するフロー図ボックスが表す次の動作では、オンラインセッションの間に、セッションマスタコンピュータがセッションマスタに関連付けられた複数の機能を実行する。これらの機能は、クライアントの調停と、メッセージのフィルタリングと、オンラインゲームを行う環境の状態を保持することのような、アプリケーションに固有の機能とを含む、先に述べた責務のうちの任意のものを含むことが可能である。
【００４７】
次の動作は、８３０の番号を有する決定ボックスによって表され、ここでは、アプリケーション４４０は、セッションマネージャの所有権を変えるべきか否かを決定する。言い換えれば、アプリケーション４４０は、セッションマスタの所有権の移動が、セッションに参加しているネットワークコンピュータの間で生じるべきか否かを決定する。サーバコンピュータ４２０上のアプリケーション４４０のインスタンスは、好適には、この決定を行うことと、次いで、オンラインセッションに参加している他のネットワークコンピュータに通知することとの責務を有する。
【００４８】
セッションマスタの機能の所有権の変更は、現時点でセッションマスタを所有するコンピュータが、オンラインセッションを終了して退出した場合、例えば当該コンピュータがシャットダウンしたか又は故障した場合にも、発生する可能性がある。セッションマスタがオンラインセッションを終了して退出したと決定することは、ネットワークコンピュータのいずれかがセッションマスタコンピュータから通信メッセージを受信しているか否かに基づくことが可能である。予め決められた時間内に通信メッセージが受信されていない場合、又は予め決められた時間内にセッションマスタが通信メッセージに応答しない場合には、セッションマスタコンピュータはオンラインセッションを終了して退出したものとされる。このような場合、サーバコンピュータ４２０は、オンラインセッションに参加しているコンピュータに通知を送る。この状況では、決定ボックス８３０の結果は「ＹＥＳ」になる。
【００４９】
ボックス８３０において「ＹＥＳ」であるとき、システムの処理は、８４０の番号を有するフロー図ボックスが表す動作へ進み、ここで、サーバコンピュータ４２０は、そのアプリケーション４４０のインスタンスを用いて、セッションマスタの所有権（及び関連付けられたセッションマスタの機能に対する責務）を、異なるネットワークコンピュータへ再割り当てする。このようにして、セッションマスタの所有権とその関連付けられた責務とは別のネットワークコンピュータへと移動し、そのため、オンラインセッションは、以前のセッションマスタコンピュータの退出によって終了するのではなく、継続する。サーバコンピュータ４２０上のアプリケーション４４０は、広範な種類の方法で所有権を再割り当てするように構成されることが可能である。例えば、アプリケーション４４０は、セッションマスタの所有権を、単にコンピュータのインデックスのリストにおける次のネットワークコンピュータへ割り当てることができる。それに代わって、本アプリケーションは、予め決められた優先度の方式に従って特定のコンピュータにセッションマスタの所有権が割り当てられるように構成されることも可能である。
【００５０】
８３０の番号を有する決定ボックスを再び参照すると、所有権の変更が必要でなければ、結果は「ＮＯ」になる。この場合、現時点でセッションマスタを所有するネットワークコンピュータは、フロー図ボックス８２０が表す動作に従って、単にそのセッションマスタの所有権に係る機能を実行し続ける。この処理は、オンラインセッションが終了するまで、又は所有権の変更が発生するまで続く。
【００５１】
先述のように、通信構成はオンラインセッションの間に変更可能である。従って、セッションは、ピア・ツー・ピア型の通信構成で開始し、次にクライアント−サーバ型の構成へ変わることができる。各構成が適切である場合を決定するためのパラメータは、必要とされるリソースに依存し、アプリケーション４４０の開発者には既知であるが、例えば、オンラインセッションにおけるユーザ数、アプリケーションの必要条件、又は特定のユーザの利用可能な帯域幅を含む可能性がある。
【００５２】
図１２は、通信構成を変更するアプリケーションの動作を示す。本動作は、アプリケーション４４０のインスタンスを実行しているクライアントコンピュータ４１０の観点から説明されている。１２０５の番号を有するフロー図ボックスが表す最初の動作では、コンピュータ４１０は、コンピュータネットワークを介してサーバコンピュータ４２０に接続する。コンピュータ４１０は、これによりアプリケーション４４０のオンラインセッションを確立する。この開始する側のコンピュータは、ホストコンピュータと呼ばれる。上述のように、ホストコンピュータのアプリケーション４４０は、好適には、識別を目的としてそれ自体にインデックス番号を割り当てる。同じくアプリケーション４４０を実行していてかつ次にサーバコンピュータ４２０に接続するもう１つのネットワークコンピュータも、アプリケーション４４０のオンラインセッションに参加することが可能であり、ホストコンピュータによってインデックス番号の割り当てを受ける。
【００５３】
次の動作では、１２１０の番号を有するフロー図ボックスが表すように、通信構成が決定される。この決定は、典型的にはオンラインセッションの参加者数の関数であるが、動作に対するアプリケーションの必要条件によって、又はアプリケーションが利用可能な通信帯域幅によって決定される場合もある。アプリケーションは次に、ユーザがオンラインセッションを終了してアプリケーションを終えるまでその動作を実行する。この継続される動作は、１２２０の番号を有するフロー図ボックスによって表されている。
【００５４】
１２３０の番号を有する決定ボックスは、通信構成の変化をチェックすることを表す。このチェックは、アプリケーションが利用可能な帯域幅をチェックする場合のように定期的な基準で実行される場合もあれば、あるいは、所望に応じてオンラインセッションの開始時に実行される場合もある。さらに、チェックは、オンラインセッションの間に受信される要求又はコマンドによって開始されることが可能である。どの方式を使用しまたどの決定パラメータを適用するのかということについての選択は、アプリケーション開発者によって行われる。
【００５５】
通信構成の変更が必要とされず、決定ボックス１２３０の結果が「ＮＯ」になると、ボックス１２２０へ戻る矢印が示すように、現行の通信構成におけるアプリケーションの動作が継続される。構成の変更が要求され、決定ボックス１２３０の結果が「ＹＥＳ」になると、ボックス１２４０で通信構成の変更が実施され、次いで１２２０でアプリケーションの動作が継続される。この処理は、オンラインセッションが終了するまで、又は通信構成が次にチェックされて変更されるまで続く。通信構成を変更する機構は、ネットワークコンピュータにより使用されるオペレーティングシステムに依存する。当業者は、さらなる説明なしに、通信構成の変更を達成する方法を理解するであろう。
【００５６】
アプリケーション４４０は、好適には、アプリケーション４４０で使用されるオブジェクト及び通信メッセージの定義のライブラリを提供するソフトウェア開発キット（software develop kit：ＳＤＫ）を用いて開発される。ソフトウェア開発キットは所定のアプリケーションインターフェースを含み、このアプリケーションインターフェースを介して、アプリケーションはＳＤＫを用いて開発され、ネットワークシステム４００等のネットワークシステム上で動作可能になる。アプリケーションインターフェースは、サーバ４２０等の中央のネットワークサーバ内に存在することが可能であり、アプリケーション４４０を有するネットワークコンピュータは、アプリケーションのオンラインセッションを動作させるために、この中央のネットワークサーバにログオンすることができる。ＳＤＫによって提供されるオブジェクト及びメッセージのタイプを用いることにより、アプリケーション４４０は、上述の機能を包含するように開発されることが可能である。ＳＤＫは、好適にはオブジェクト定義の構造を含み、このオブジェクト定義の構造は、アプリケーション４４０によって利用されるオブジェクトの、クライアントに基づく定義を提供する。オブジェクト定義は、各オブジェクトに関連付けられる複数の特性であって、コンピュータネットワークを介してクライアントとのインタラクションを実行するためにアプリケーションによって利用される特性を含む。
【００５７】
ＳＤＫを用いてアプリケーション４４０が開発されると、アプリケーション４４０は１つ又は複数のネットワークコンピュータへロードされることが可能になり、オンラインセッションは図９に示した動作に従って確立できるようになる。９１０の番号を有するフロー図ボックスが表す第１の動作では、アプリケーション４４０がロードされているネットワークコンピュータが、そのアプリケーションインターフェースソフトウェアをメモリに含むネットワークコンピュータに接続する。例えば、図４に示したネットワークシステム４００のうちの１つ又は複数のクライアントコンピュータ４１０，４１２は、それらの各メモリにロードされたアプリケーション４４０を有することが可能であり、サーバコンピュータ４２０は、アプリケーションインターフェースを含むことが可能である。このような場合、クライアントコンピュータ４１０，４１２は、ネットワーク４３０を介してサーバコンピュータ４２０との通信接続を確立する。
【００５８】
９２０の番号を有するフロー図ボックスが表す次の動作では、アプリケーション４４０は、アプリケーションインターフェースのライブラリにおいて利用可能なオブジェクト定義に従って、複数のオブジェクトを登録する。アプリケーション４４０はまた、９２０の番号を有するフロー図ボックスが表すように、オンラインセッションの間に利用される任意の複数のメッセージフィルタも登録する。
【００５９】
９５０の番号を有するフロー図ボックスが表す次の動作では、アプリケーション４４０はセッションマスタを定義し、セッションマスタの所有権をネットワークコンピュータの１つに割り当てる。セッションマスタの所有権は、１つのコンピュータに割り当てられることも可能であり、あるいは複数のコンピュータに割り当てられることも可能である。アプリケーション４４０はまた、セッションマスタの所有権が特定のコンピュータ専用のものとなるのか否か、又は図８を参照して上述した方法で所有権が他のコンピュータに対して移動される（マイグレーションされる）場合があるか否かについて指定する。
【００６０】
この動作の間、アプリケーション４４０は、オンラインセッションに参加するネットワークコンピュータの各々にクライアントインデックスを割り当て、また、上述されたインデックスのテーブルも確立する。アプリケーション４４０は、サーバコンピュータへログオンする第１のネットワークコンピュータがセッションマスタとなりかつまた１又はゼロのインデックスを受け取るように構成されることが可能である。その後で、ログオンする後続のネットワークコンピュータは、利用可能な次に続くインデックスを受け取る。１つ又は複数のセッションマスタの所有権が確立された後で、９５０の番号を有するフロー図ボックスが表すように、アプリケーション４４０のオンラインセッションが開始される。
【００６１】
先に述べた通り、図４のブロック図に示したネットワークコンピュータは、コンピュータネットワークシステム４００のノードを構成する。図１０は、図１のシステム４００における１つのコンピュータのブロック図であり、コンピュータの１つに含まれるハードウェア構成要素を示している。当業者は、装置４１０及び４２０がすべて同様のコンピュータの構造を有することが可能であるということ、あるいはここに記述された能力と整合性のある代替の構造を有することが可能であるということを理解するであろう。
【００６２】
図１０は、ネットワークコンピュータのうちの任意のものを構成することも可能であるような、例示的なコンピュータ１０００を示している。各コンピュータ１０００は、米国カリフォルニア州サンタクララのインテル  コーポレーション（Intel Corporation）から入手可能な「ペンティアム（Pentium）」マイクロプロセッサと関連付けられた集積回路チップとのような、中央処理装置（central processor unit：ＣＰＵ）１００２の制御下で動作する。コンピュータのユーザは、キーボード及びコンピュータマウス１００４からコマンド及びデータを入力することができ、ディスプレイ１００６において入力及びコンピュータの出力を見ることができる。ディスプレイは、典型的にはビデオモニタ又はフラットパネルディスプレイである。コンピュータ１０００はまた、ハードディスクドライブ等の直接アクセス記憶装置（direct access storage device：ＤＡＳＤ）１００８を含む。メモリ１０１０は、典型的には揮発性半導体ランダムアクセスメモリ（ＲＡＭ）を備える。各コンピュータは、好適には、プログラム製品記憶装置１０１４を受容するプログラム製品読取装置１０１２を含み、プログラム製品読取装置１０１２はこのプログラム製品記憶装置１０１４からデータを読み取ることができる（また、オプションで、プログラム製品読取装置１０１２はこのプログラム製品記憶装置１０１４にデータを書き込むことができる）。プログラム製品読取装置は、例えばディスクドライブを備えることが可能であり、プログラム製品記憶装置は、磁気フロッピーディスク、ＣＤ−Ｒディスク、ＣＤ−ＲＷディスク又はＤＶＤディスク等の、着脱可能な記憶媒体を備えることが可能である。
【００６３】
各コンピュータ１０００は、ネットワーク１０２０とコンピュータとの間の接続１０２２を介した通信を可能にするネットワークインターフェース１０１８を用いて、（インターネット又はイントラネットのような）コンピュータネットワーク１０２０を介して他のコンピュータと通信することができる。ネットワークインターフェース１０１８は、典型的には、例えばネットワークインターフェースカード（ＮＩＣ）を備えるか、あるいは様々なネットワークを介した通信を可能にするモデムを備えている。
【００６４】
ＣＰＵ１００２は、コンピュータ１０００のメモリ１０１０に一時的に記憶される複数のプログラミングステップの制御下で動作する。上記プログラミングステップが実行されると、コンピュータはその機能を実行する。このように、プログラミングステップは、アプリケーション４４０の機能を実施する。プログラミングステップは、ＤＡＳＤ１００８から受信されること、プログラム製品記憶装置１０１４を介して受信されること、又はネットワーク接続１０２２を介して受信されることが可能である。プログラム製品記憶装置ドライブ１０１２はプログラム製品１０１４を収容し、そこに記録された複数のプログラミングステップを読み取り、そのプログラミングステップを、ＣＰＵ１００２による実行のためにメモリ１０１０へ転送することができる。先に述べた通り、プログラム製品記憶装置は、磁気フロッピーディスク及びＣＤ−ＲＯＭ記憶ディスクを含む、コンピュータが読み取り可能な複数の命令を記憶している複数の着脱可能な媒体のうちの任意のものを備えることが可能である。他の適切なプログラム製品記憶装置は、磁気テープ及び半導体メモリチップを含むことが可能である。このようにして、本発明による動作に必要な処理ステップは、プログラム製品上に具現されることが可能である。
【００６５】
それに代わって、プログラムステップは、ネットワーク１０２０を介して受信され、動作メモリ１０１０の中に格納されることが可能である。このネットワークの方法では、コンピュータは、当業者にはさらなる説明なしに理解されるであろう公知の方法によって、ネットワーク接続１０２２を介してネットワーク通信が確立された後に、ネットワークインターフェース１０１８を介して、プログラムステップを含むデータを受信してメモリ１０１０の中に格納する。次いで、上記プログラムステップはＣＰＵ１００２によって実行され、これにより、コンピュータ処理が構成される。
【００６６】
図４に示したネットワークシステム４００のうちのネットワークコンピュータはすべて、図１０に示したものと同様の構造を有することが可能であり、よって、図１０のコンピュータ１０００に関して説明された詳細事項が、システム４００のすべてのコンピュータに当てはまるように解釈されるものであるということは、理解される必要がある。コンピュータが図４に示した他のコンピュータと通信できかつここに記述された機能をサポートできる限り、ネットワークコンピュータはいずれも代替の構造を有することが可能であるということは理解される必要がある。
【００６７】
例えば、図１１を参照すると、クライアントコンピュータ４２０は、ビデオゲームシステム１１００のようなコンピュータエンタテインメントシステムを備えることが可能である。図１１は、ビデオゲームシステム１１００の例示的なハードウェア構成のブロック図である。
【００６８】
ビデオゲームシステム１１００は、メインメモリ１１０５に関連付けられた中央処理装置（central processing unit：ＣＰＵ）１１００を含む。ＣＰＵ１１００は、ＯＳ−ＲＯＭ１１６０に記憶された複数のプログラミングステップ、又はゲームプログラム記憶媒体からメインメモリ１１０５へ転送された複数のプログラミングステップの制御下で動作する。ＣＰＵ１１００は、これらのプログラミングステップに従って情報を処理しかつ複数の命令を実行するように構成される。
【００６９】
ＣＰＵ１１００は、専用バス１１２５を介して入力／出力プロセッサ（input/output processor：ＩＯＰ）１１２０と通信可能であるように接続される。ＩＯＰ１１２０は、オペレーティングシステム等の複数のプログラム命令を記憶する不揮発性メモリで構成されたＯＳ  ＲＯＭ１１６０に、ＣＰＵ１１００を接続する。上記命令は、好適には、メインユニット１１０の起動時にＩＯＰ１１２０を介してＣＰＵに転送される。
【００７０】
ＣＰＵ１１００は、専用バス１１１５を介してグラフィックス処理装置（graphics processing unit：ＧＰＵ）１１１０と通信可能であるように接続される。ＧＰＵ１１１０は、ＣＰＵ１１００から受信される複数の命令に従って描画処理を実行しかつ画像を形成する（定式化する）ように構成された描画プロセッサである。例えば、ＧＰＵ１１１０は、ＣＰＵ１１００によって生成されかつＣＰＵ１１００から受信されるディスプレイリストに基づいてグラフィックス画像をレンダリングすることができる。ＧＰＵは、グラフィックスデータを記憶するためのバッファを含んでもよい。ＧＰＵ１１１０は、画像をＡＶ出力装置１７５へ出力する。
【００７１】
ＩＯＰ１１２０は、ＩＯＰメモリ１１３０に記憶された複数の命令に従って、ＣＰＵ１１００と複数の周辺の構成要素との間におけるデータの交換を制御する。上記周辺の構成要素は、１つ又は複数の入力コントローラ１１２２、メモリカード１１４０、ＵＳＢ１１４５、及びＩＥＥＥ１３９４シリアルバス１１５０を含んでもよい。さらに、バス１１５５が、ＩＯＰ１１２０と通信可能であるように接続される。バス１１５５は、ＯＳ  ＲＯＭ１１６０、サウンドプロセッサ装置（sound processor unit：ＳＰＵ）１１６５、光ディスク制御装置１１７５、及びハードディスクドライブ（ＨＤＤ）１１８０を含む、いくつかの追加の構成要素にリンクされる。
【００７２】
ＳＰＵ１１６５は、ＣＰＵ１１００及びＩＯＰ１１２０から受信されるコマンドに従って、音楽、音響効果及び音声等のサウンドを生成するように構成される。ＳＰＵ１１６５は、波形データを記憶するサウンドバッファを含んでいてもよい。ＳＰＵ１１６５はサウンド信号を生成し、かつ当該信号をスピーカに送信する。
【００７３】
ディスク制御ユニット１１７５は、例えば、磁気フロッピーディスク、光ＣＤ−ＲＯＭディスク、ＣＤ−Ｒディスク、ＣＤ−ＲＷディスク、ＤＶＤディスク又はこれらに類似するもの等の、着脱可能な記憶媒体を受容する光ディスクドライブを備えることが可能な、プログラム読取装置を制御するように構成される。
【００７４】
メモリカード１１４０は、ＣＰＵ１１００がデータを書き込んで記憶することのできる記憶媒体を備えることが可能である。好適には、メモリカード１１４０はＩＯＰ１１２０に対して抜き差しされることが可能である。ユーザは、メモリカード１１４０を用いてデータを記憶するか又は保存することができる。さらに、ビデオゲームシステム１１００には、好適には、データを書き込んで記憶することのできる少なくとも１つのハードディスクドライブ（ＨＤＤ）１１８０が設けられる。
【００７５】
ＩＥＥＥ１３９４シリアルバス１１５０又はユニバーサルシリアルバス（ＵＳＢ）１１４５インターフェース等のデータＩ／Ｏインターフェースは、好適には、ＩＯＰ１１２０と通信可能であるように接続され、そのため、図４のネットワーク４３０に対するようなビデオゲームシステム１１００へデータが転送されかつこのビデオゲームシステム１１００からデータが転送されることを可能にする。
【産業上の利用可能性】
【００７６】
以上、マルチユーザのネットワークアプリケーションに対する動的な構成切り換え方式のためのシステム及び方法について説明した。本方式は、ネットワーク化されたコンピュータ間におけるピア・ツー・ピア型の通信関係は、クライアント−サーバ型のネットワーク通信に比べてより高速な通信の優位点をもたらすという事実を利用しているが、その一方で、本方式によれば、ピア・ツー・ピア型の関係において、大規模なゲームを行うことのようないくつかのアプリケーションは、ピア・ツー・ピアを非実用的にするほどの帯域幅を必要とするものがあるということも認識される。例えば、１ゲームにつきおそらくは３名乃至６名以下だけ存在する競争者によるスポーツゲームは、ピア・ツー・ピア型のモードに適する可能性があるが、何百名ものプレーヤを含む可能性のあるロールプレイングゲーム又はアクションゲームは、ピア・ツー・ピア型には不向きであり、クライアント−サーバ型のモードで実行されなければならない。本発明の構成切り換え機能は、ユーザがアプリケーションのオンラインセッションのためのアプリケーションサーバにログオンされた状態で、ピア・ツー・ピア型アーキテクチャとクライアント−サーバ型アーキテクチャとの間での動的な変更を許容する。
【００７７】
例えば、あるゲームに参加しているゲームプレーヤはすべて、ゲーム管理のためにゲームサーバと通信することができ、また、ゲームデータ及びプレーヤデータを共有するために他のゲームプレーヤらと通信する。ゲームプレイの間、プレーヤらは、ピア・ツー・ピア型の通信とクライアント−サーバ型の通信とを切り換えて、他のゲームプレーヤらとの間で情報を伝送することができる。上述のように、ゲーム構成は、このような方法で、ゲームを行うクライアントの１つがゲームサーバ機能を実行している統合化されたサーバと、ゲームプレーヤらの各々がゲーム状態の情報を格納して他のゲームプレーヤらと通信するピア・ツー・ピアとの間で切り換えることが可能である。また本システムは、ピア・ツー・ピアと、統合化されたサーバと、ゲームサーバの構成との間で切り換えることもできる。これにより、ネットワークの帯域幅及びゲームアプリケーションが適切であればピア・ツー・ピア型によるより高速な通信を使用し、ネットワーク状況が必要とする場合はクライアント−サーバ型を使用することができる。
【００７８】
以上、本発明の意味するところを伝えることができるように、本発明を現時点での好適な実施形態に関して説明した。しかしながら、ここには特に記載していないが本発明を適用可能なシステム及びアプリケーションに対する多数の構成が存在する。従って、本発明はここに記載された特定の実施形態に限定されて捉えられるべきものではなく、本発明は、一般にマルチユーザアプリケーションに関する広範な適用可能性を有するということは理解される必要がある。よって、添付の請求の範囲内にある変更物、変形物又は等価な配置及び実装は、すべて本発明の範囲内にあるものとされる必要がある。
【図面の簡単な説明】
【００７９】
【図１】クライアント−サーバ型ネットワークの通信構成で配置されたコンピュータネットワークを示す図である。
【図２】統合化されたネットワーク通信サーバの構成で配置されたコンピュータネットワークを示す図である。
【図３】ピア・ツー・ピア型ネットワークの通信構成で配置されたコンピュータネットワークを示す図である。
【図４】本発明に係る構成されたマルチユーザアプリケーションが実行されるコンピュータネットワークシステムを示す図である。
【図５】図４に示すように構成されたマルチユーザアプリケーション用のコンピュータのインデックス及びセッションマスタ情報を含むデータ構造を示す図である。
【図６】サーバコンピュータ又はクライアントコンピュータがセッションマスタとして指定される第１のタイプの通信構成でマルチユーザアプリケーションが構成されるコンピュータネットワークシステムを示す図である。
【図７】複数のクライアントコンピュータがセッションマスタとして指定されるもう１つのタイプの通信構成でマルチユーザアプリケーションが構成されるコンピュータネットワークシステムを示す図である。
【図８】セッションマスタの所有権を再割り当てするマルチユーザアプリケーションに関連付けられた動作を示すフロー図である。
【図９】マルチユーザアプリケーションがオンラインセッションを確立することに関連付けられた動作ステップを示すフロー図である。
【図１０】図４に示したネットワークにおけるコンピュータの、ハードウェア構成要素を示すブロック図である。
【図１１】図４に示したネットワークにおけるコンピュータエンタテインメントシステムの、ハードウェア構成要素を示すブロック図である。
【図１２】アプリケーションの通信構成を変更するシステムの動作を示すフロー図である。
【図１】
2005524920.tif 000003
【図２】
2005524920.tif 000004
【図３】
2005524920.tif 000005
【図４】
2005524920.tif 000006
【図５】
2005524920.tif 000007
【図６】
2005524920.tif 000008
【図７】
2005524920.tif 000009
【図８】
2005524920.tif 000010
【図９】
2005524920.tif 000011
【図１０】
2005524920.tif 000012
【図１１】
2005524920.tif 000013
【図１２】
2005524920.tif 000014
【手続補正書】
【提出日】平成16年11月9日(2004.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
マルチユーザアプリケーションのオンラインセッションを確立することを含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも２つのコンピュータを含み、
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定することと、
上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第１の通信構成から、上記第１の通信構成とは異なる第２の通信構成に変更することとを含む方法。
【請求項２】
上記第１の通信構成はクライアント−サーバ型の構成である請求項１記載の方法。
【請求項３】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項１記載の方法。
【請求項４】
上記マルチユーザアプリケーションの実行に関連付けられた機能に対する責務を、上記オンラインセッションに参加している第１のコンピュータに割り当てることと、
次に、上記オンラインセッションにおける状況の変化に基づいて、上記機能に対する責務を第２のコンピュータに再割り当てすることとをさらに含む請求項１記載の方法。
【請求項５】
上記オンラインセッションにおける状況の変化は上記オンラインセッションの上記通信構成の変化を含む請求項４記載の方法。
【請求項６】
上記マルチユーザアプリケーションの実行に関連付けられた他の機能に対する責務を、上記オンラインセッションに参加している第２のコンピュータに割り当てることをさらに含む請求項４記載の方法。
【請求項７】
上記オンラインセッションは、上記コンピュータネットワークに通信可能にリンクされる専用のサーバコンピュータを介して確立される請求項１記載の方法。
【請求項８】
上記オンラインセッションには複数のコンピュータが含まれ、上記コンピュータの少なくとも１つはピア・ツー・ピア型の通信構成を用いて他のコンピュータと通信し、上記コンピュータの少なくとも１つはクライアント−サーバ型の通信構成を用いて他のコンピュータと通信している請求項１記載の方法。
【請求項９】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
第１のコンピュータ上でソフトウェアアプリケーションの第１のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立することと、
第２のコンピュータ上で上記ソフトウェアアプリケーションの第２のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加することと、
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第１のコンピュータに割り当てることと、
上記所定の機能を実行する責務を上記第１のコンピュータ以外のコンピュータに再割り当てすることとを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づく方法。
【請求項１０】
上記ソフトウェアアプリケーションの上記オンラインセッションにおける上記状況の変化は、上記第１のコンピュータが上記オンラインセッションを終了して退出することを含む請求項９記載の方法。
【請求項１１】
上記第２のコンピュータが上記機能に対する責務を負うことを記録する記録を上記アプリケーションが保持することをさらに含む請求項９記載の方法。
【請求項１２】
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する他の機能を実行する責務を、上記第２のコンピュータに割り当てることをさらに含む請求項９記載の方法。
【請求項１３】
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定することと、
上記オンラインセッションの通信構成を、上記第１の通信構成から、上記第１の通信構成とは異なる第２の通信構成に変更することとをさらに含む請求項９記載の方法。
【請求項１４】
上記第１の通信構成はクライアント−サーバ型の構成である請求項１３記載の方法。
【請求項１５】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項１３記載の方法。
【請求項１６】
コンピュータネットワーク上で動作するマルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも２つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立することと、
上記コンピュータの１つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定することと、
上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出することと、
第２のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第２のコンピュータが負うように、上記セッションマスタコンピュータとして指定することとを含む方法。
【請求項１７】
上記第１のコンピュータと上記第２のコンピュータとはまずクライアント−サーバ型の通信構成で配置され、上記第１のコンピュータはサーバコンピュータであり、かつ上記第２のコンピュータは上記第１のコンピュータに関連したクライアントコンピュータである請求項１６記載の方法。
【請求項１８】
上記アプリケーションはまた、上記第２のコンピュータと第３のコンピュータがピア・ツー・ピア型の通信構成になるように、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を上記第２のコンピュータと共有するセッションマスタコンピュータとして上記第３のコンピュータを指定する請求項１６記載の方法。
【請求項１９】
マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは、複数のプログラム命令を実行しかつデータセットを受信する１つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
マルチユーザアプリケーションのオンラインセッションを確立する動作を含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも２つのコンピュータを含み、
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定する動作と、
上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第１の通信構成から、上記第１の通信構成とは異なる第２の通信構成に変更する動作とを含む、複数の動作を上記システムに実行させるシステム。
【請求項２０】
上記第１の通信構成はクライアント−サーバ型の構成である請求項１９記載のシステム。
【請求項２１】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項１９記載のシステム。
【請求項２２】
上記システムは、上記オンラインセッションに含まれる複数のコンピュータを含み、上記コンピュータの少なくとも１つはピア・ツー・ピア型の通信構成を用いて他のコンピュータと通信し、上記コンピュータの少なくとも１つはクライアント−サーバ型の通信構成を用いて他のコンピュータと通信している請求項１９記載のシステム。
【請求項２３】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
マルチユーザアプリケーションのオンラインセッションを確立することを含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも２つのコンピュータを含み、
上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第１の通信構成に設定することと、
上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第１の通信構成から、上記第１の通信構成とは異なる第２の通信構成に変更することとを含むプログラム製品。
【請求項２４】
上記第１の通信構成はクライアント−サーバ型の構成である請求項２３記載のプログラム製品。
【請求項２５】
上記第１の通信構成はピア・ツー・ピア型の構成である請求項２３記載のプログラム製品。
【請求項２６】
マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは、複数のプログラム命令を実行しかつデータセットを受信する１つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
第１のコンピュータ上でソフトウェアアプリケーションの第１のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立する動作と、
第２のコンピュータ上で上記ソフトウェアアプリケーションの第２のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加する動作と、
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第１のコンピュータに割り当てる動作と、
上記所定の機能を実行する責務を上記第１のコンピュータ以外のコンピュータに再割り当てする動作とを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づく、複数の動作を上記システムに実行させるシステム。
【請求項２７】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
第１のコンピュータ上でソフトウェアアプリケーションの第１のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立することと、
第２のコンピュータ上で上記ソフトウェアアプリケーションの第２のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加することと、
上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第１のコンピュータに割り当てることと、
上記所定の機能を実行する責務を上記第１のコンピュータ以外のコンピュータに再割り当てすることとを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づくプログラム製品。
【請求項２８】
マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは複数のプログラム命令を実行しかつデータセットを受信する１つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも２つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立する動作と、
上記コンピュータの１つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定する動作と、
上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出する動作と、
第２のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第２のコンピュータが負うように、上記セッションマスタコンピュータとして指定する動作とを含む、複数の動作を上記システムに実行させるシステム。
【請求項２９】
マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも２つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立することと、
上記コンピュータの１つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定することと、
上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出することと、
第２のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第２のコンピュータが負うように、上記セッションマスタコンピュータとして指定することとを含むプログラム製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
マルチユーザアプリケーション４４０は、アプリケーション４１０、４１２を実行するクライアントコンピュータのうちのいくつかがクライアント−サーバ型の構成で通信し、その一方で他のコンピュータがピア・ツー・ピア型の構成で通信するように動作することができる。本アプリケーションは、一方の構成からもう１つの構成へいつ変更するのかを決定することができる。さらに、マルチユーザアプリケーション４４０は、ゲーム等のエンドユーザアプリケーションや又はエンドユーザプログラムへのアクセスを許可する、ゲームのポータル又はプログラムのポータルのようなネットワーク通信マネージャとして構成されることが可能である。それに代わって、通信管理機能とエンドユーザプログラムとがマルチユーザアプリケーション４４０に統合化されることも可能である。いずれの状況においても、マルチユーザアプリケーション４４０は、エンドユーザアプリケーションにとって最適である（クライアント−サーバ型又はピア・ツー・ピア型のような）適切な通信構成を決定することができる。例えば、５名又は６名のユーザを含むグループがあるゲームに参加している場合のように、比較的少数のユーザがオンラインセッションに参加している場合には、本アプリケーションはピア・ツー・ピア型の通信構成を選択することができ、何百名ものプレーヤを包含する大規模なオンラインセッション又はロールプレイングゲームのように、より多数のユーザが関与する場合には、本アプリケーションはクライアント−サーバ型の通信構成を選択することができる。それに代わって、小規模なユーザグループであってもクライアント−サーバ型の構成に最適であるという可能性もあるので、本アプリケーションは、利用可能な帯域幅に従って適切な通信構成を決定することも可能である。限られた帯域幅を有するあるユーザがクライアント−サーバ型構成におけるクライアントの役割に制限される可能性がある一方で他のユーザがピア・ツー・ピア方式で動作するように、利用可能な帯域幅の選択基準は、所望されれば、個別のレベルで適用されることが可能である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
所定のインスタンスでは、セッションマスタは、ネットワークコンピュータのうちの所定のものに通信情報が送信されるべきか否かを決定するフィルタを保持する。アプリケーション４４０は、メッセージのいくつか又はすべてが、まずフィルタ解析のためにセッションマスタコンピュータへ送信されるように構成される。セッションマスタは、好適にはフィルタを保持し、不適切な場合に通信情報が送信されることを防止する。セッションマスタは、好適には、メッセージの送信をフィルタリングするためにセッションマスタが参照するフィルタリストを保持する。フィルタリストは、所定のメッセージタイプについて、どのコンピュータがそのメッセージを受信すべきでないかということについて指定する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
ネットワークコンピュータがサーバコンピュータ４２０に接続してオンラインセッションを確立するとき、図５を参照して詳細後述するように、ネットワークコンピュータ上のアプリケーション４４０のインスタンスは、セッションマスタの所有権をネットワークコンピュータの１つに割り当てることができる。この点に関して、各ネットワークコンピュータ上のアプリケーション４４０のインスタンスは、好適には、オンラインセッションに参加している全ネットワークコンピュータのリストを保持し、また前述のインデックス番号をコンピュータの各々に関連付ける。アプリケーション４４０は次に、コンピュータに割り当てられたインデックス番号に従ってセッションマスタの所有権を追跡する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
図７に示したもう１つの方式では、アプリケーション４４０は、セッションマスタ６００の所有権をいくつかのコンピュータの間に分散させている。図示された例では、クライアントコンピュータ４１０の両方がセッションマスタ６００の所有権を共有している。このような場合では、両方のコンピュータが、セッションマスタに関連付けられた機能を実行することが可能であり、そのため、図７における複数のネットワークコンピュータはピア・ツー・ピア型の構成になる。従って、コンピュータの１つがオンラインセッションを終了して退出した場合でも、セッションマスタコンピュータの終了及び退出の結果としてセッション自体が終了することはない。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
９２０の番号を有するフロー図ボックスが表す次の動作では、アプリケーション４４０は、アプリケーションインターフェースのライブラリにおいて利用可能なオブジェクト定義に従って、複数のオブジェクトを登録する。アプリケーション４４０はまた、９３０の番号を有するフロー図ボックスが表すように、オンラインセッションの間に利用される任意の複数のメッセージフィルタも登録する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
９４０の番号を有するフロー図ボックスが表す次の動作では、アプリケーション４４０はセッションマスタを定義し、セッションマスタの所有権をネットワークコンピュータの１つに割り当てる。セッションマスタの所有権は、１つのコンピュータに割り当てられることも可能であり、あるいは複数のコンピュータに割り当てられることも可能である。アプリケーション４４０はまた、セッションマスタの所有権が特定のコンピュータ専用のものとなるのか否か、又は図８を参照して上述した方法で所有権が他のコンピュータに対して移動される（マイグレーションされる）場合があるか否かについて指定する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
先に述べた通り、図４のブロック図に示したネットワークコンピュータは、コンピュータネットワークシステム４００のノードを構成する。図１０は、図４のシステム４００における１つのコンピュータのブロック図であり、コンピュータの１つに含まれるハードウェア構成要素を示している。当業者は、装置４１０及び４２０がすべて同様のコンピュータの構造を有することが可能であるということ、あるいはここに記述された能力と整合性のある代替の構造を有することが可能であるということを理解するであろう。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
ＣＰＵ１００２は、コンピュータ１０００のメモリ１０１０に一時的に記憶される複数のプログラミングステップの制御下で動作する。上記プログラミングステップが実行されると、コンピュータはその機能を実行する。このように、プログラミングステップは、アプリケーション４４０の機能を実施する。プログラミングステップは、ＤＡＳＤ１００８から受信されること、プログラム製品記憶装置１０１４を介して受信されること、又はネットワーク接続１０２２を介して受信されることが可能である。プログラム製品読取装置１０１２はプログラム製品１０１４を収容し、そこに記録された複数のプログラミングステップを読み取り、そのプログラミングステップを、ＣＰＵ１００２による実行のためにメモリ１０１０へ転送することができる。先に述べた通り、プログラム製品記憶装置は、磁気フロッピーディスク及びＣＤ−ＲＯＭ記憶ディスクを含む、コンピュータが読み取り可能な複数の命令を記憶している複数の着脱可能な媒体のうちの任意のものを備えることが可能である。他の適切なプログラム製品記憶装置は、磁気テープ及び半導体メモリチップを含むことが可能である。このようにして、本発明による動作に必要な処理ステップは、プログラム製品上に具現されることが可能である。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
例えば、図１１を参照すると、クライアントコンピュータ４１０は、ビデオゲームシステム１１００のようなコンピュータエンタテインメントシステムを備えることが可能である。図１１は、ビデオゲームシステム１１００の例示的なハードウェア構成のブロック図である。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
ビデオゲームシステム１１００は、メインメモリ１１０５に関連付けられた中央処理装置（central processing unit：ＣＰＵ）１１０１を含む。ＣＰＵ１１０１は、ＯＳ−ＲＯＭ１１６０に記憶された複数のプログラミングステップ、又はゲームプログラム記憶媒体からメインメモリ１１０５へ転送された複数のプログラミングステップの制御下で動作する。ＣＰＵ１１０１は、これらのプログラミングステップに従って情報を処理しかつ複数の命令を実行するように構成される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
ＣＰＵ１１０１は、専用バス１１２５を介して入力／出力プロセッサ（input/output processor：ＩＯＰ）１１２０と通信可能であるように接続される。ＩＯＰ１１２０は、オペレーティングシステム等の複数のプログラム命令を記憶する不揮発性メモリで構成されたＯＳ  ＲＯＭ１１６０に、ＣＰＵ１１０１を接続する。上記命令は、好適には、メインユニット１１００の起動時にＩＯＰ１１２０を介してＣＰＵに転送される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
ＣＰＵ１１０１は、専用バス１１１５を介してグラフィックス処理装置（graphics processing unit：ＧＰＵ）１１１０と通信可能であるように接続される。ＧＰＵ１１１０は、ＣＰＵ１１０１から受信される複数の命令に従って描画処理を実行しかつ画像を形成する（定式化する）ように構成された描画プロセッサである。例えば、ＧＰＵ１１１０は、ＣＰＵ１１０１によって生成されかつＣＰＵ１１０１から受信されるディスプレイリストに基づいてグラフィックス画像をレンダリングすることができる。ＧＰＵは、グラフィックスデータを記憶するためのバッファを含んでもよい。ＧＰＵ１１１０は、画像をオーディオ−ビジュアル出力装置へ出力する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
ＩＯＰ１１２０は、ＩＯＰメモリ１１３０に記憶された複数の命令に従って、ＣＰＵ１１０１と複数の周辺の構成要素との間におけるデータの交換を制御する。上記周辺の構成要素は、１つ又は複数の入力コントローラ１１２２、メモリカード１１４０、ＵＳＢ１１４５、及びＩＥＥＥ１３９４シリアルバス１１５０を含んでもよい。さらに、バス１１５５が、ＩＯＰ１１２０と通信可能であるように接続される。バス１１５５は、ＯＳ  ＲＯＭ１１６０、サウンドプロセッサ装置（sound processor unit：ＳＰＵ）１１６５、光ディスク制御装置１１７５、及びハードディスクドライブ（ＨＤＤ）１１８０を含む、いくつかの追加の構成要素にリンクされる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
ＳＰＵ１１６５は、ＣＰＵ１１０１及びＩＯＰ１１２０から受信されるコマンドに従って、音楽、音響効果及び音声等のサウンドを生成するように構成される。ＳＰＵ１１６５は、波形データを記憶するサウンドバッファを含んでいてもよい。ＳＰＵ１１６５はサウンド信号を生成し、かつ当該信号をスピーカに送信する。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００７４
【補正方法】変更
【補正の内容】
【００７４】
メモリカード１１４０は、ＣＰＵ１１０１がデータを書き込んで記憶することのできる記憶媒体を備えることが可能である。好適には、メモリカード１１４０はＩＯＰ１１２０に対して抜き差しされることが可能である。ユーザは、メモリカード１１４０を用いてデータを記憶するか又は保存することができる。さらに、ビデオゲームシステム１１００には、好適には、データを書き込んで記憶することのできる少なくとも１つのハードディスクドライブ（ＨＤＤ）１１８０が設けられる。
【手続補正１７】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2005524920.tif 000015
【国際調査報告】
2005524920.tif 000016
2005524920.tif 000017