(57)【要約】ネットワークアプリケーション（４４０）は、マルチユーザ（４１０，４１２）環境及び種々のネットワーク通信構成で動作する。アプリケーション（４４０）は、マルチユーザアプリケーションのオンラインセッションに参加しているネットワークコンピュータ（４２０）について通信ポートと関連する通信プロトコルの選択を制御する。アプリケーションを実行しているネットワークコンピュータ（４２０）は、それを解してアプリケーションが通信信号をオンラインセッションに参加している他のコンピュータに送信可能な多数の通信ポートを開く。次に、ネットワークコンピュータ（４２０）は、アプリケーションが送信及び受信する通信信号が通信ポートに適合するように、開いている個々の通信ポートを通信プロトコルに関連づける。次に、ネットワークコンピュータは、それを介してアプリケーションが第１のコンピュータについて通信信号の送信及び受信を行うアクティブ通信ポートを指定する。次に、ネットワークコンピュータは、オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信し、第１のコンピュータ（４２０）についてアクティブ通信ポートと関連するプロトコルを識別する。
2005520264.tif 000002
【特許請求の範囲】
【請求項１】
マルチユーザアプリケーションのオンラインセッションのための通信ポートの制御方法であって、
前記アプリケーションを実行している第１のネットワークコンピュータの多数の通信ポートを開き、前記アプリケーションはこれらの通信ポートを介して前記オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信可能であり、
前記第１のネットワークコンピュータの個々の通信ポートにプロトコルを関連づけ、前記アプリケーションが送信及び受信する通信信号が前記通信ポートの前記プロトコルに適合するようにし、
前記アプリケーションがそれを介して前記第１のコンピュータに対して通信信号を送信及び受信するアクティブ通信ポートを指定し、
前記オンラインセッションに参加している他の１つ又は複数のネットワークコンピュータに通信信号を送信し、前記通信信号は前記第１のコンピュータについて前記アクティブ通信ポートと関連する前記プロトコルとを示す、方法。
【請求項２】
前記オンラインセッションの通信構成の変更に応じて、前記第１のネットワークコンピュータの前記アクティブ通信ポートを変更する、請求項１に記載の方法。
【請求項３】
前記通信構成は、ピア・ツー・ピアの構成からクライアント・サーバの構成に変更される、請求項２に記載の方法。
【請求項４】
前記通信構成は、クライアント・サーバの構成からピア・ツー・ピアの構成に変更される、請求項１に記載の方法。
【請求項５】
前記オンラインセッションに参加している第２のネットワークコンピュータから通信信号を受信し、前記通信信号は前記第２のネットワークコンピュータについてアクティブ通信ポートと関連する通信プロトコルを示す、請求項１に記載の方法。
【請求項６】
前記オンラインセッションに参加している他の１つ又は複数のネットワークコンピュータへの通信信号の送信は、新たな通信信号を生成するための前記第２のネットワークコンピュータから受信した前記通信信号へのアクティブポート及びプロトコルのデータの追加と、前記オンラインセッションに参加している他の１つのネットワークコンピュータへの前記新たな通信信号の送信とを含む、請求項５に記載の方法。
【請求項７】
前記オンラインセッションに参加している他のネットワークコンピュータについての前記アクティブ通信ポート及び関連する通信プロトコルを示す記録を保持する、請求項１に記載の方法。
【請求項８】
前記オンラインセッションに参加している他の１つのネットワークコンピュータに通信構成変更信号を送信し、前記通信構成変更信号は前記オンラインセッションの前記通信構成が変更されたことの通知を含む、請求項２に記載の方法。
【請求項９】
マルチユーザアプリケーションのオンラインセッションのための通信ポートの切り換えの制御方法であって、
第１のネットワークコンピュータの多数の通信ポートを開き、前記アプリケーションはこれらの通信ポートを介して前記オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信可能であり、
前記第１のネットワークコンピュータの個々の通信ポートにプロトコルを関連づけ、前記アプリケーションが送信及び受信する通信信号が前記通信ポートの前記プロトコルに適合するようにし、
前記アプリケーションがそれを介して前記第１のコンピュータに対して通信信号を送信及び受信するアクティブ通信ポートを指定し、
前記オンラインセッションに参加している前記他のネットワークコンピュータに通信信号を送信し、前記通信信号は前記第１のコンピュータについて前記アクティブ通信ポートと関連し、
前記オンラインセッションに参加している他の１つのコンピュータから構成変更メッセージを受信し、前記構成変更メッセージは、前記オンラインセッションの通信構成が変更されたことを示し、
前記オンラインセッションの前記新たな通信構成に基づいて、新たなアクティブ通信ポートを指定する、方法。
【請求項１０】
前記構成変更メッセージは、前記通信構成がピア・ツー・ピアの構成からクライアント・サーバの構成に変更されたことの通知を含む、請求項９に記載の方法。
【請求項１１】
前記構成変更メッセージは、前記通信構成がクライアント・サーバの構成からピア・ツー・ピアの構成に変更されたことの通知を含む、請求項９に記載の方法。
【請求項１２】
前記オンラインセッションに参加している第２のネットワークコンピュータから通信信号を受信し、前記通信信号は前記第２のネットワークコンピュータについてのアクティブポートと関連する通信プロトコルを示す、請求項１に記載の方法。
【請求項１３】
前記オンラインセッションに参加している他の１つの又は複数のネットワークコンピュータへの通信信号の送信は、新たな通信信号を生成するための前記第２のネットワークコンピュータから受信した前記通信信号へのアクティブポート及びプロトコルのデータの追加と、前記オンラインセッションに参加している他の１つのネットワークコンピュータへの前記新たな通信信号の送信とを含む、請求項１２に記載の方法。
【請求項１４】
前記オンラインセッションに参加している他の１つのネットワークコンピュータに前記構成変更メッセージを送信する、請求項９に記載の方法。
【請求項１５】
前記オンラインセッションに参加している他のネットワークコンピュータについての前記アクティブ通信ポート及び関連する通信プロトコルを示す記録を保持する、請求項９に記載の方法。
【請求項１６】
マルチユーザアプリケーションのオンラインセッションのための通信ポートの切り換えを制御するシステムであって、前記システムはプログラム命令とデータセットの受信を実行する１つ又は複数のプロセッサを備え、前記プログラム命令は前記システムに、
第１のネットワークコンピュータの多数の通信ポートを開き、前記アプリケーションはこれらの通信ポートを介して前記オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信可能であり、
前記第１のネットワークコンピュータの個々の通信ポートにプロトコルを関連づけ、前記アプリケーションが送信及び受信する通信信号が前記通信ポートの前記プロトコルに適合するようにし、
前記アプリケーションがそれを介して前記第１のコンピュータに対して通信信号を送信及び受信するアクティブ通信ポートを指定し、
前記オンラインセッションに参加している他の１つ又は複数のネットワークコンピュータに通信信号を送信し、前記通信信号は前記第１のコンピュータについて前記アクティブ通信ポートと関連する前記プロトコルとを示すものである動作を実行させる、システム。
【請求項１７】
前記プログラム命令は、前記オンラインセッションの通信構成の変更に基づいて、前記第１のコンピュータについてのアクティブポートの変更を、前記システムに実行させる、請求項１６に記載のシステム。
【請求項１８】
前記プログラム命令は、前記オンラインセッションに参加している第２のネットワークコンピュータからの通信信号の受信を、前記システムに実行させ、前記通信信号は前記第２のネットワークコンピュータについてのアクティブ通信ポート及び関連する通信プロトコルを示す、請求項１６に記載のシステム。
【請求項１９】
前記オンラインセッションに参加している他の１つの又は複数のネットワークコンピュータへの通信信号の送信は、新たな通信信号を生成するための前記第２のネットワークコンピュータから受信した前記通信信号へのアクティブポート及びプロトコルのデータの追加と、前記オンラインセッションに参加している他の１つのネットワークコンピュータへの前記新たな通信信号の送信とを含む、請求項１８に記載のシステム。
【請求項２０】
コンピュータ読み取り可能な媒体に記憶されたプログラムステップを実行し、マルチユーザアプリケーションのオンラインセッションのための通信ポートの制御方法を実行する、コンピュータシステムで使用するためのプログラムプロダクトであって、
プログラム命令を記憶可能な媒体と、
前記媒体に記憶されたコンピュータ読み取り可能な複数の命令であって、
第１のネットワークコンピュータの多数の通信ポートを開き、前記アプリケーションはこれらの通信ポートを介して前記オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信可能であり、
前記第１のネットワークコンピュータの個々の通信ポートにプロトコルを関連づけ、前記アプリケーションが送信及び受信する通信信号が前記通信ポートの前記プロトコルに適合するようにし、
前記アプリケーションがそれを介して前記第１のコンピュータに対して通信信号を送信及び受信するアクティブ通信ポートを指定し、
前記オンラインセッションに参加している他の１つ又は複数のネットワークコンピュータに通信信号を送信し、前記通信信号は前記第１のコンピュータについて前記アクティブ通信ポートと関連する前記プロトコルとを示すものである方法をコンピュータにより実行可能である命令とを備えるプログラムプロダクト。
【請求項２１】
マルチユーザアプリケーションのオンラインセッションのための通信ポートの切り換えを制御するシステムであって、前記システムはプログラム命令とデータセットの受信を実行する１つ又は複数のプロセッサを備え、前記プログラム命令は前記システムに、
第１のネットワークコンピュータの多数の通信ポートを開き、前記アプリケーションはこれらの通信ポートを介して前記オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信可能であり、
前記第１のネットワークコンピュータの個々の通信ポートにプロトコルを関連づけ、前記アプリケーションが送信及び受信する通信信号が前記通信ポートの前記プロトコルに適合するようにし、
前記アプリケーションがそれを介して前記第１のコンピュータに対して通信信号を送信及び受信するアクティブ通信ポートを指定し、
前記オンラインセッションに参加している前記他のネットワークコンピュータに通信信号を送信し、前記通信信号は前記第１のコンピュータについて前記アクティブ通信ポートと関連し、
前記オンラインセッションに参加している他の１つのコンピュータから構成変更メッセージを受信し、前記構成変更メッセージは、前記オンラインセッションの通信構成が変更されたことを示し、
前記オンラインセッションの前記新たな通信構成に基づいて、新たなアクティブ通信ポートを指定するものである動作を実行させる、システム。
【請求項２２】
コンピュータ読み取り可能な媒体に記憶されたプログラムステップを実行し、マルチユーザアプリケーションのオンラインセッションのための通信ポートの制御方法を実行する、コンピュータシステムで使用するためのプログラムプロダクトであって、
プログラム命令を記憶可能な媒体と、
前記媒体に記憶されたコンピュータ読み取り可能な複数の命令であって、
第１のネットワークコンピュータの多数の通信ポートを開き、前記アプリケーションはこれらの通信ポートを介して前記オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信可能であり、
前記第１のネットワークコンピュータの個々の通信ポートにプロトコルを関連づけ、前記アプリケーションが送信及び受信する通信信号が前記通信ポートの前記プロトコルに適合するようにし、
前記アプリケーションがそれを介して前記第１のコンピュータに対して通信信号を送信及び受信するアクティブ通信ポートを指定し、
前記オンラインセッションに参加している他のネットワークコンピュータに通信信号を送信し、前記通信信号は前記第１のコンピュータについて前記アクティブ通信ポートと関連する前記プロトコルとを示すものであり、
前記オンラインセッションに参加している他の１つのコンピュータから構成変更メッセージを受信し、前記構成変更メッセージは、前記オンラインセッションの通信構成が変更されたことを示し、
前記オンラインセッションの前記新たな通信構成に基づいて、新たなアクティブ通信ポートを指定するものである方法をコンピュータにより実行可能である命令とを備えるプログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してコンピュータネットワークに関し、さらに詳しくはマルチユーザのソフトウエアプリケーションに関する。
【背景技術】
【０００２】
ローカルエリアネットワークやインターネットのようなコンピュータネットワークは、
種々の当事者間の取引及び対話のための基幹回線としての利用が広がっている。コンピュータネットワーク上で銀行の顧客が金融取引を開始できるオンラインバンキングから、ゲーマーがインターネットを介して種々のゲームに参加することができるオンラインゲームまで、サービスプロバイダによるコンピュータネットワークを介した種々のサービスの提供が広がっている。現在、発生する取引及び対話を容易にする種々の異なるコンピュータネットワークが存在する。
【０００３】
コンフィギュレーションないしは構成（configuration）の一種として、図１に図示するような典型的なクライアント・サーバ構成がある。この構成では、専用のサーバコンピュータ１１０が、１つ又は複数のクライアントコンピュータ１２０にインターネットのようなネットワークを介して通信可能に接続されている。ネットワークは、接続の矢印で表されている。クライアントコンピュータ１２０はサーバコンピュータ１１０にサービスを要求し、サーバコンピュータ１１０はネットワークを介して要求を行っているクライアントコンピュータ１２０に対してデータを送信することで、当該要求を充足する。サーバコンピュータ１１０は、データ記憶装置やクライアントコンピュータとサーバコンピュータ間のトランザクションを容易にする他のコンピュータ装置に接続可能である。このクライアント・サーバ構成の１つの特徴は、クライアントコンピュータの通信はサーバコンピュータに制限されるので、クライアントコンピュータどうしが直接的に互いに接続することはできないことである。
【０００４】
例えば、クライアント・サーバ構成がオンラインゲーム環境で動作している場合、サーバコンピュータ１１０はオンラインゲームに関連する種々の状態に関与できる。サーバコンピュータはプレーヤのマッチング及びアカウント管理のような運用事項を管理するが、１つ又は複数のゲームの例を保持するメモリエンジン１４０のような他のコンピュータに接続可能である。クライアントコンピュータ１２０のゲームプレーヤは、サーバコンピュータ１１０に登録又はログインし、参加可能なゲームと参加しているプレーヤのリストを受け取ることができる。プレーヤは開始ないしは参加するゲームを選択し、それによってプレーヤのコンピュータがクライアント・サーバ接続を確立するメモリエンジンを特定する。この態様では、サーバコンピュータ１１０とメモリエンジン１４０は、１つ又は複数のクライアントコンピュータ１２０のためのゲーム環境を、適正に運用することができる。
【０００５】
他の種類の構成は、図２に示すように、統合サーバ構成（integrated server configuration）と呼ばれている。この構成は、専用のサーバコンピュータ１１０と、コンピュータネットワークを介してそれぞれサーバコンピュータ１１０に接続された１つ又は複数のクライアントコンピュータ１２０を含む。前述の構成と同様に、サーバコンピュータ１１０は、クライアントコンピュータ１２０にデータを供給する。しかしながら、クライアントコンピュータ１２０ａのようなあるクライアントコンピュータは、当該クラアントコンピュータ１２０ａが他のクライアントコンピュータ１２０に対してデータを供給できる統合サーバとして機能する。オンラインゲーム環境において、サーバコンピュータ１１０はプレーヤのマッチング、アカウント管理、及びチャットルーム管理のような運用機能を実行するが、クライアントコンピュータ／統合サーバ１２０ａは、前述のメモリエンジンの機能を果たす。これによってゲームプロバイダが別途に供給しなければならない計算資源を低減することができる。
【０００６】
通信構成のさらに他の種類では、図３に示すように、種々のコンピュータがピア・ツー・ピアの構成で配置される。ピア・ツー・ピアのネットワーク構成では、個々のコンピュータは他のコンピュータと通信可能であり、すべてのネットワークコンピュータが「ピア（peers）」として機能する。ピア・ツー・ピアの構成の一形態では、専用のサーバ１１０がネットワークを介して複数のクライアントコンピュータ１２０に通信可能に接続される。個々のクライアントコンピュータ１２０がサーバコンピュータ１１０のような管理コンピュータに接続することで、最初にオンラインセッションが確立される。次に、クライアントコンピュータ１２０があらゆる他のクライアントコンピュータ１２０に対してデータの供給と受け取りが可能となるように、クライアントコンピュータ１２０が互いに通信可能に接続される。また、各クライアントコンピュータ１２０は専用のサーバ１１０とクライアント・サーバの関係で動作できる。前述の構成以外に他の通信構成が存在することは、当業者にとって当然である。
【０００７】
前述の種々の構成により、ゲームのプレーヤがコンピュータネットワークを介してコンピュータゲームをプレーできるオンラインゲーム環境等において、コンピュータのユーザはコンピュータネットワークを介して対話が可能となる。このようなモデルでは、プレーヤの数の調整、ゲーム状態の履歴ないしは軌跡の保持、ゲーム状態に関係するユーザへの更新の送信のような、ゲームの種々の側面を管理する管理者として、少なくとも１つのコンピュータが機能する。仮にこれらの側面を管理するコンピュータがオンラインセッションを離脱すると、他のゲームの参加者にとってはゲーム環境が突然消滅することになる。これによってゲームのプレーが突然停止することになる。
【０００８】
一般に、ゲームを管理するコンピュータがオンラインゲームセッションを離脱する場合、セッションを抜けたゲームマネージャないしはゲーム管理者ではない他のコンピュータのような、適正な媒体を介して残りの参加者が通信するように、通信環境を再構成する必要がある。残念ながら、このような変化はゲーム環境にとって煩雑で破壊的である。
【０００９】
以上の観点から、ユーザ間の通信構成の変化を適正に管理することができるオンラインのマルチユーザアプリケーションに対する要求がある。
【発明の開示】
【課題を解決するための手段】
【００１０】
本発明は、マルチユーザ環境及び種々のネットワーク通信構成において動作するネットワークアプリケーションに関する。アプリケーションは、通信ポートと、マルチユーザアプリケーションのオンラインセッションに参加しているネットワークコンピュータのための関連する通信プロトコルの選択を制御する。アプリケーションのオンラインセッション中、アプリケーションがネットワークコンピュータで実行されていると、アプリケーションはそのネットワークコンピュータの多数の通信ポートを開き、その通信ポートを介してアプリケーションはオンラインセッションに参加している他のコンピュータに通信信号を送ることができる。次に、ネットワークコンピュータのアプリケーションは、アプリケーションが送信及び受信する通信信号が通信ポートの関連するプロトコルと適合するように、個々の開いている通信ポートを通信プロトコルと関連付ける。次に、ネットワークアプリケーションは、それを介して信号が送信及び受信されるアクティブの通信ポートを指定する。ネットワークコンピュータのアプリケーションによって通信信号がオンラインセッションに参加している他のコンピュータに送信され、アクティブの通信ポート及びネットワークコンピュータのための関連する通信プロトコルを特定する。
【００１１】
オンラインセッション中、ネットワークコンピュータはオンラインセッションに参加している他のコンピュータから構成変更メッセージを受信可能である。この構成変更メッセージがオンラインセッションの通信構成が変更されたことを示す場合、ネットワークコンピュータは、新たに受信されたオンラインセッションの通信構成に基づいて新たなアクティブ通信ポートを指定することで、この構成変更に反応する。また、ネットワークコンピュータは、このような変更が適正である時点と、構成変更の開始が可能であるかを決定する。
【００１２】
本発明の他の特徴及び利点は、後述の好適な実施形態の説明により明らかとなり、この実施形態は例示として本発明の原理を説明するものである。
【００１３】
本発明の目的、利点、及び特徴は、添付図面と関連した以下の詳細な説明により容易に明らかとなる。
【発明を実施するための最良の形態】
【００１４】
図４は、１つ又は複数のクライアントコンピュータ４１０，４１２と、１つ又は複数の専用のサーバコンピュータ４２０，４２２を含む１つ又は複数のネットワーク装置とを備えるコンピュータネットワークシステム４００であり、これらのネットワーク装置はコンピュータネットワーク４３０の端末ないしはノード（node）である。従って、ネットワークコンピュータのいくつかはサーバとして構成され、いくつかはクライアントとして構成されている。コンピュータネットワーク４３０は、インターネットのような相互接続ネットワークの集合を備えていてもよく、各ノード４１０，４１２，４２０，４２２に１つ又は複数のローカルエリアネットワークを含んでもよい。ここで使用するときには、「インターネット（Internet）」という用語は、グローバルな分散ネット型ネットワークを形成するように標準通信プロトコルによって相互接続された（公衆及び／又はプライベートの）ネットワークの集合をいう。
【００１５】
クライアントコンピュータ４１０，４１２はネットワーク４３０を介してデータ要求をサーバコンピュータ４２０，４２２に送信し、サーバコンピュータ４２０，４２２は周知の方法でネットワーク４３０を介してクライアントコンピュータに対してデータを供給するように構成されている。当業者に知られているように、サーバコンピュータ４２０，４２２は、データベースサーバ及び／又はアプリケーションサーバのような他のサーバを含んでもよく、互いに及び他のサーバに対して通信可能にリンクされてもよい。図４では、２つのクライアントコンピュータ４１０，４１２と２つのサーバコンピュータ４２０，４２２のみを図示しているが、いかなる個数のクライアントコンピュータ４１０，４１２及びサーバコンピュータ４２０，４２２をネットワークスシステム４００が含んでいてもよいことは当然である。以後、クライアントコンピュータ４１０，４１２及びサーバコンピュータ４２０，４２２をまとめてネットワークコンピュータという場合がある。
【００１６】
ネットワークシステム４００は、マルチユーザアプリケーション４４０をサポートしており、このマルチユーザアプリケーション４４０は、コンピュータネットワーク４３０に接続された（クライアントコンピュータ４１０，４１２のような）ネットワークデバイスを使用するオンラインセッションにおいて多数のユーザの対話が可能であるコンピュータプログラムを備える。アプリケーション４４０は個々のクライアントコンピュータにインストールされ、このことはアプリケーション４４０を動作させる（実行する）個々のクライアントコンピュータのメモリに、このアプリケーションの動作要求ないしはオペレーションインスタンス（operation instance）が記憶されていることを意味する。マルチユーザアプリケーションのオンラインセッションに参加する各サーバコンピュータも、このアプリケーション４４０のインスタンスを記憶する。説明のために両方のサーバ４２０，４２２についてインストールされたアプリケーション４４０が図示されているが、第１のサーバコンピュータ４２０がクライアントマシン４１０，４１２により実行されているマルチユーザアプリケーションのためのサーバであると想定する。データの交換は実行中にアプリケーション４４０のインスタンス間で生じ、個々のネットワークコンピュータのネットワークソケット（network socket）４４５の確立により可能となる。これらのソケットは、図４において各ネットワークコンピュータ中にボックスとして図示されている。ネットワークソケットがネットワークシステム４００で実行される２つ以上のプログラム間の多方向通信リンク（multi-way communication link）の一端であることは、当業者の理解しているところである。
【００１７】
アプリケーション４４０は、種々の通信構成に従ってネットワークシステム４００のネットワーク装置上で動作し、後に詳述するように、種々のアプリケーション関連プロセス（application-related processes）についての負担ないしは責任（responsibilities）はネットワーク４３０の異なる計算装置に割り当てることができる。後に詳述するように、アプリケーション４４０を開発するために、アプリケーション開発インターフェイス（Application Development Interface）を使用することが好ましい。アプリケーションは、関連するネットワークコンピュータが図１、図２、及び図３に図示する通信モードのいずれかを実行する通信構成を使用可能であるように動作することができる。
【００１８】
マルチユーザアプリケーション４４０は、コンピュータネットワーク４３０に接続されたネットワークコンピュータでユーザが動作させることができるいかなるタイプのアプリケーションであってもよい。アプリケーション４４０がクライアントコンピュータ４１０，４１２上で実行されると、ユーザはアプリケーション４４０を実行中の他のネットワークコンピュータを介して他のユーザと対話することができる。サーバ４２０は、ユーザがそれによって連絡ないしは交信（contact）を確立し、データを保持し、かつアプリケーション４４０のオンラインセッションを開始する、セントラルネットワークの「ミーティングポイント（meeting point）」としても機能する。一般に、アプリケーション４４０は、それが動作しているネットワーク装置に、装置４１０，４１２，４２０のような他のネットワーク装置との通信を確立させ、それによってオンラインセッションを開始する。オンラインセッション中、ネットワークコンピュータは、アプリケーション４４０のプログラムされた特徴に従って、対話及びデータの交換を行う。
【００１９】
アプリケーション４４０が立ち上げられ、好適に構成されたコンピュータ間でオンラインセッションが確立されると、アプリケーションによりコンピュータが種々の構成で対話可能となる。この説明を通じ、アプリケーション４４０はオンラインゲームをモデルとして説明する場合があり、アプリケーションはクライアントコンピュータ４１０，４１２を使用して多数のユーザがアクセスして実行できるコンピュータゲームを備える。このような場合、アプリケーション４４０は、ネットワークコンピュータが参加するゲームを含むオンラインセッションを確立する。しかしながら、アプリケーション４４０は、例えばオンラインバンキングやオンライントラベルプランニングのような、コンピュータネットワーク上での多数のコンピュータ間の対話を伴うゲーム以外の他のモデルにも関連している。
【００２０】
アプリケーション４４０が実行されると、アプリケーション４４０はセッションマスタを特定し、このセッションマスタは、オンラインセッション中に生じるコンピュータ間の対話に関し、アプリケーションについての種々の管理上及び運用の機能を実行するネットワークコンピュータである。アプリケーションのオンラインセッションは、ユーザ識別のような情報を格納するデータ記憶装置への登録又はログオンプロセスを使用する。ログオンプロセスは、アプリケーションのネットワーク環境への追加の参加者を許可する。好適には、クライアントコンピュータ４１０のようなアプリケーション４４０を実行するコンピュータがオンラインセッションを開始するためにサーバコンピュータ４２０にログオンしたときに、セッションマスタ機能が割り当てられることが好ましい。しかしながら、アプリケーション自体がそのような割り当てが何時及びどのようになされるかの詳細を決定し、本発明の教示から離れることなく種々のセッションマスタ割り当てスキームが実行可能である。
【００２１】
アプリケーションのオンラインセッションを開始するクライアントコンピュータ４１０におけるアプリケーションのオペレーティングインスタンス（operating instance）は、ホストコンピュータと呼ばれる。ホストコンピュータのアプリケーションは、セッションマスタ機能をサーバコンピュータ４２０又はホストコンピュータ４１０のいずれかに割り当てる。新たなクライアントコンピュータがオンラインセッションに参加するためにサーバコンピュータ４２０にログオン（登録）すると、サーバコンピュータ４２０は新たなクライアントに、既に割り当てられているセッションマスタコンピュータの識別（identity）を通知する。
【００２２】
以下に詳細に説明するように、セッションマスタ機能により、アプリケーション４４０が実行可能な種々のネットワーク通信構成間で円滑な移行が可能である。また、セッションマスタ機能により、アプリケーション４４０が特定のネットワークコンピュータにおけるアプリケーション関連タスクについての責任に集中することが可能であり、あるいはアプリケーション４４０がそのような責任を２以上のネットワークコンピュータに分散することが可能である。タスクの割り当ては、セッションマスタ機能の割り当てと同時の１つのネットワークのアプリケーション４４０のインスタンスにより可能となり、必須の機能を提供するためにネットワーク４３０の１又は複数のコンピュータに対してセッションマスタタスクを割り当て可能である。セッションマスタの責任が割り当てられた１又は複数のコンピュータは、ここでは個々のセッション機能の「オーナー（owners）」と呼ぶ。単独のセッョンマスタに対する言及は、それらのコンピュータが適正にセッションマスタ機能を実行していれば、一群のコンピュータに対しても当てはまるものと理解される。よって、セッションマスタタスクの割り当ては、アプリケーション開発者の指図に従って、アプリケーションによって特定される態様で実行される。
【００２３】
セッションマスタに対して割り当てられる責任のカテゴリーの１つはアプリケーション特有の機能であり、それらは実行されている特定の種類のアプリケーション４４０に特有の機能である。例えば、アプリケーション４４０がゲーム型のアプリケーションであれば、１つのセッションマスタ又は一群のセッションマスタは、ゲームソース及びゲーム中の残りの時間のような、ゲーム型データの軌跡を保持することができ、ゲーム終了時のオンラインセッションの終了のようなゲーム機能を実行することができる。フットボール、航空機、大洋、木その他のようなゲーム環境中のオブジェクトの状態の特定のゲームデータの軌跡の保持の責任を、セッョンマスタコンピュータに割り当てることができる。アプリケーションの動作に応じて、これらの責任の個々を、単一のセッションマスタコンピュータに集中させることも、数個のセッョンマスタコンピュータに配分することもできる。
【００２４】
ホストコンピュータは、オンラインセッションに参加しているコンピュータに関する管理機能を実行する。例えば、ネットワークコンピュータがアプリケーション４４０のオンラインセッションに参加すると、ホストコンピュータはセッションに参加するコンピュータに識別表示番号ないしは識別インデックス番号（identification index number）を割り当てる。ホストコンピュータは識別インデックス番号とそれらに関連するネットワークコンピュータのリストを保持する。インデックス番号はメッセージの送信に使用されると共に、セッションマスタ機能に関するオーナーシップの記録の保持に使用される。
【００２５】
前述のように、オンラインセッションには複数のセッションマスタが存在し得る。セッションマスタを割り当てる方法は、アプリケーションの動作に応じて、アプリケーションが決定することができる。また、アプリケーション４４０は、オンラインセッションに参加しているすべてのネットワークコンピュータの状態に関してネットワークコンピュータを更新するための更新メッセージを送信する責任を、セッションコンピュータに割り当てることができる。後に詳述するように、この責任は、新たなネットワークコンピュータがオンラインセッションに参加したとき、又は現在参加しているコンピュータがアプリケーション４４０のオンラインセッションを抜けるときに、セッションマスタが参加しているネットワークコンピュータに通知することを含む。
【００２６】
前述のインデックス番号を個々のコンピュータに割り当てたホストコンピュータは、オンラインセッションに参加しているネットワークコンピュータのリストも保持する。また、アプリケーション４４０は、コンピュータに割り当てられたインデックス番号に従って、セッションマスタオーナーシップの軌跡を保持する。インデックス番号の軌跡及び責任割り当てを保持するために、アプリケーション４４０は、図５に示す表５００のようなネットワークコンピュータインデックスリストを含むテーブルの形態のデータ構造を維持してもよい。表５００は、オンラインセッションに参加している個々のネットワークコンピュータに関連する表示番号を含み、ネットワークコンピュータがセッションマスタ機能を有するか否かの表示を含んでもよい。テーブル５００を含むデータ構造のインデックスリストが、個々のネットワークコンピュータについて使用されている通信プロトコルも特定することが好ましい。図５は、異なるネットワークコンピュータにより異なるセッションマスタタスク（Ｃ１，Ｃ２，Ｃ３）を所有し得ることを示す。
【００２７】
データ構造は、通信プロトコルの特定に加え、個々のネットワークコンピュータについて、通信プロトコルが割り当てられるポートも特定する。アプリケーション４４０の個々のインスタンスは、オンラインセッションに参加している関連するネットワークコンピュータの多数の通信ポートを開かせることができ、各ポートは特定の通信プロトコルに割り当てられている。ネットワークコンピュータは、特定のポート及び特定のプロトコルを使用して他のネットワークコンピュータと通信し、特定のプロトコルは図５に示すテーブル５００に含まれるデータ構造により特定される。ポートは、アプリケーション４４０の要求がそれを介してネットワークに通信されるネットワークソケットを含んでいてもよい。ネットワークコンピュータは、ネットワークを介して通信メッセージを周期的に互いに送信することにより、インデックスリストに含まれる他の情報に加え、ポート／プロトコル情報を通信することが好ましい。
【００２８】
オンラインセッションに参加しているすべてのコンピュータが、それら自体のリスト５００のインデックスリストのコピーを保持することが好ましい。リスト５００は単なる例示であり、開始しているホストアプリケーション４４０は、クライアントインデックス番号とセッションマスタのオーナーシップの保持を広範なデータ構造フォーマットを使用した他の方法で保持できることは当然である。代案としては、セッションコンピュータはテーブルの１つ又は複数のコピーを共有することができる。
【００２９】
開始しているアプリケーション４４０は、そのアプリケーション４４０がセッションマスタのオーナーシップをいかにして割り当てるかに応じて、種々の通信構成で動作できる。第１の構成では、図６に示すように、開始しているアプリケーション４４０は、専用のサーバコンピュータ４２０のような単一のコンピュータにセッションマスタ６００のオーナーシップを割り当てている。従って、このコンピュータ４２０は、開始しているアプリケーション４４０によって指示されるようなセッションマスタ機能に関するすべてのタスクについての責任を有する。よって、アプリケーション４４０は、セッションマスタの機能に関してクライアント・サーバ通信構成で動作し、サーバコンピュータ４２０はセッションマスタの責任に関してクライアントコンピュータに対してデータを供給する。
【００３０】
アプリケーション４４０のオンラインセッションに参加しているあらゆるコンピュータも、図６において破線で示すセッションマスタ６００ａによってクライアントコンピュータ４１０の１つに表されるように、セッションマスタの１つ又は複数のタスクのオーナーシップを有することができるのは、当然である。これはクライアントコンピュータが割り当てられ、名目上のセッションマスタと共に又はそれに代えて１つ又は複数のセッションマスタタスクを実行することを示す。すなわち、オンラインセッションに参加するコンピュータ間でセッションマスタのインスタンスがあり、セッションマスタの個々のインスタンスは特定の責任に割り当てられると共に、各セッションマスタタスクが異なるネットワークコンピュータに割り当てられ、あるいは多数のタスクが同一のコンピュータに割り当てられる。例えば、図６は２つのセッションマスタ６００，６００ａがあり、それぞれにアプリケーション４４０のオンラインセッションに関するある種の機能が割り当てられている解決策を示す。サーバコンピュータ４２０はある種の責任を有し、クライアントコンピュータ４１０もアプリケーションにより決まるある種の責任を有する。これは統合されたサーバ構成であり、セッションマスタ６００ａを有するクライアントコンピュータ４１０は統合サーバとして機能している。「統合サーバ（integrated server）」は、すべてのクライアントが統合サーバとして指定されたクライアントにすべての情報を送り、統合サーバは他のクライアントに情報を伝達する状態をいう。また、統合サーバとして機能しているクライアントは、１つ又は複数のセッションマスタタスクを有することができる。
【００３１】
他の基本構想では、図７に示すように、アプリケーション４４０は数個のコンピュータ間にセッションのオーナーシップを分配している。図示の例では、両方のクライアントコンピュータ４１０がセッションマスタのオーナーシップを共有する。このような場合、両方のコンピュータがセッションマスタに割り当てられた機能を実行することができ、図７のネットワークコンピュータはピア・ツー・ピアの構成である。
【００３２】
各ネットワークコンピュータが、アプリケーション４４０のオンラインセッションに関する通信信号を送信及び受信するための通信ポートを確立することが好ましい。通信ポートは、オンラインセッション中の他のネットワークコンピュータと確立された論理接続（logical connection）の一端である。個々のネットワークコンピュータは、個々の通信ポートの通信プロトコルを指定する。ネットワークコンピュータは、オンラインセッションの通信構成に基づいて、ポートと対応する通信プロトコルを切り替えることができる。
【００３３】
このプロセスを図８のフロー図を参照してさらに詳細に説明し、この図８はオンラインセッションの通信構成が変化した時の通信ポートの切換のプロセスを説明している。８１０という番号が付されたフロー図のボックスで表された最初の動作では、ネットワークコンピュータがアプリケーション４４０のオンラインセッションの確立を開始する。これは特定のコンピュータがアプリケーション４４０をそのコンピュータ上で実行させることによりなされ、その特定のコンピュータが周知の態様でサーバコンピュータ４２０に接続する。既述のように、それによってサーバコンピュータ４２０は、ネットワークコンピュータによるオンラインセッションを確立するためのセントラルネットワークミーテイングポイト（central network meeting point）として機能する。
【００３４】
サーバコンピュータ４２０に接続される最初ないしは第１のコンピュータのようなネットワークコンピュータの１つは、そのオンラインセッションのセッションマスタとして機能するようになる。さらにまた、第１のコンピュータがサーバコンピュータに接続してオンラインセッションを確立したとき、そのコンピュータ上のアプリケーション４４０は、そのコンピュータ自体に、例えば１又はゼロのインデックス番号のような初期値のインデックス番号を割り当てることが好ましい。初期値の点デックス番号が、アプリケーションの設計に応じて変更可能で、１又はゼロである必要がないことは当然である。次に、サーバコンピュータ４２０及び／又はセッションを確立したコンピュータは、インデックス情報の記録を保持するために、図５に示すようなインデックスリスト５００を生成する。このリスト５００は、オンラインセッションの確立中、サーバコンピュータ及びセッションマスタコンピュータに格納される。ログオンする後続のネットワークコンピュータは、サーバコンピュータ４２０によって割り当てられるような、次の利用可能なインデックスを受信する。オンラインセッションの確立に関する動作は、フロー図のボックス８２０〜８５０で表される動作で継続される。
【００３５】
次の動作では、アプリケーション４４０を実行している個々のネットワークコンピュータが、オンラインセッション中にそれを介してアプリケーション４４０が通信メッセージを送信することができる多数の通信ポートを開く。この動作は８２０という番号が付されたフロー図のブロックで表されている。アプリケーション４４０は、通信メッセージを送信及び受信するために通信ポートの１つを使用する。
【００３６】
フロー図の８３０という番号が付されたボックスで表される次の動作では、アプリケーション４４０が個々の通信ポートを特定の通信プロトコルに関連付ける。これは各ネットワークコンピュータにおけるアプリケーション４４０のインスタンスによりなされる。例えば、特定のネットワークワークコンピュータでは、アプリケーション４４０が、通信ポートの１つをユーザデータグラムプロトコル（user datagram protocol: ＵＤＰ）と関連付け、他の通信ポートをトランスミッションコントロールプロトコル（transmission control protocol:ＴＣＰ ）等に関連づけることができる。いくつかのプロトコルは、ある種の通信構成での使用により適しているので、アプリケーション４４０はある種の構成に適したプロトコルを選択するようにプログラムしてもよい。例えば、いくつかの場合には、ＴＣＰプロトコルはクライアント・サーバの通信構成により適し、ＵＤＰプロトコルはピア・ツー・ピアの通信構成により適している。ネットワークコンピュータにおけるアプリケーション４４０の各インストレーションはプロトコル／ポート関連の詳細のライブラリを含むことが好ましい。アプリケーションのインスタンスが実行されているとき、アプリケーションは、通信構成の観点から適切なプロトコル／ポート関連を探すためにライブラリを調べる。
【００３７】
次の動作では、ネットワークコンピュータは、関連する通信ポートの１つを、ネットワークコンピュータがそれを介してオンラインセッションのための通信を送信及び受信するアクティブポートとして指定する。この動作は、フロー図の８４０という番号が付されたボックスで表されている。アクティブポートの指定において、ネットワークコンピュータは、どのポートの帯域の利用効率が最も高く、伝送制御時間ないしはレイテンシーの制御が最も良好であるかを判断する。この観点で、ネットワークコンピュータは、現在の通信構成と、その構成に最も適したプロトコルを考慮する。次に、ネットワークコンピュータは、アクティブポートとして最も適したプロトコルと関連するポートを指定する。
【００３８】
次の動作は、フロー図の８５０という番号が付されたボックスで表されている。この動作では、ネットワークコンピュータの１つが、そのコンピュータのボート及びプロトコル情報を含む通信メッセージを送信する。このメッセージを送信するセッション参加者はアプリケーションの指摘により決まる。例えば、送信するコンピュータは、セッションマスタ又は対応するセッションマスタタスクを有するコンピュータであってもよく、あるいはクライアントのアービトレーションスキーム（arbitration scheme）又はホストアプリケーションにより決定されてもよい。送信するコンピュータは、オンラインセッションの確立の一部として通信メッセージを自動的に送信してもよい。メッセージは、ネットワークコンピュータに関するデータと共に、ネットワークコンピュータのインデックス番号、使用されているポート、及びポートに関連するプロトコルを含む、ネットワークコンピュータの識別に関する情報を含むことが好ましい。これらのデータはメッセージ内に順に埋め込まれることが好ましく、例えば、コンピュータのインデックス表示が最初に記載され、そのコンピュータのアクティブポート及びそのアクティブポートに関連するプロトコルが順に続く。
【００３９】
メッセージは、ポート及びプロトコル情報を伴うメッセージを送信する多数のネットワークコンピュータ間における干渉を防止するような方法で送信することが好ましい。これに関しては、最も小さいインデックス番号のコンピュータ（セッションマスタコンピュータであろう。）が、次に小さいインデックス番号に関連付けられたコンピュータにメッセージを送信することで、メッセージを開始する。セッションマスタはインデックスリスト５００にアクセスすることでインデックスリストを取得する。次のコンピュータがメッセージを受信すると、そのコンピュータはそれ自体のデータを付加した後、次のコンピュータにメッセージを転送する。すなわち、個々のコンピュータがメッセージを送信するときに、それ自体のポート／プロトコルデータをメッセージ中に既に含まれているデータに添付する。この方法では、メッセージを受信する最後のコンピュータは、オンラインセッションに参加するすべてのコンピュータのポート／プロトコルデータを有する。次に、オンラインセッションに参加しているネットワークコンピュータにメッセージを循環させることで、すべてのコンピュータに更新された情報を提供することができる。
【００４０】
各ネットワークコンピュータは、セッション中の各ネットワークコンピュータのポート及びプロトコルを含むデータのアレイを備えるデータ構造をメモリ中に保持する。ネットワークコンピュータは、ポート／プロトコルメッセージを受信すれば、このアレイを確立及び更新することができる。
【００４１】
次の動作は、８５５という番号が付された判断ボックスに示されるように、オンラインセッションがピア・ツー・ピアの通信構成からクライアント・サーバの通信構成に切り換わる場合のような、通信構成の変更の対象となっているか否かによる。もし、通信構成に変化が起きていない場合には、判断ボックス８５５で結果が「ノー」となり、ネットワークコンピュータが通信ポートに関して何ら変更を行うことなく、動作を継続する。
【００４２】
しかしながら、オンラインセッションの通信構成の変更が通信メッセージ中に指定されていれば、判断ボックス８５５の結果が「イエス」となり、ネットワークコンピュータの１つが、セッションマスタコンピュータとして、オンラインセッションの他の参加ないしは参加者に通信構成が変更されたこと又は変更の対象であることを通知する。この通知は、セッションマスタコンピュータのようなコンピュータが、構成変更更新メッセージの形態で、１つ又は複数のオンラインセッションの参加者に送信する。この構成変更更新メッセージは、特定の構成に関連するコードを特定すること等により、新たな通信構成を識別する。
【００４３】
１つの実施形態では、構成変更更新メッセージは、セッションマスタコンピュータに由来し、セッションマスタコンピュータは、セッションマスタコンピュータよりもインデックス番号が１つだけ大きいネットワークコンピュータのような第１のネットワークコンピュータに構成変更更新メッセージを送信する。次に、受信したコンピュータは、インデックス番号のスキームによる次のコンピュータにメッセージを振り向け、プロセスが継続する。これによってオンラインセッションのすべての参加者に対する構成変更の命令的通知が保証される。他の通知スキームを、構成変更の参加者への通知のために使用することもできる。
【００４４】
次に、フロー図の８６０という番号が付されたボックスにより表される処理にプロセスが移行する。この動作において、ネットワークコンピュータは他のネットワークコンピュータの１つから構成変更更新メッセージを受信する。構成変更更新メッセージを受信する最初のネットワークコンピュータは、セッションマスタコンピュータからそれを受信する。フロー図の８７０という番号が付されたボックスに示しように、ネットワークコンピュータが構成変更更新メッセージを受信すると、そのネットワークコンピュータは、新たなアクティブポートを当該メッセージで特定された新たな通信構成に適したプロトコルと共に指定する。各ネットワークコンピュータがそのネットワークコンピュータのアプリケーションのインスタンスによって新たなアクティプポートを選択してもよく、あるいはセッションマスタが他のコンピュータに対してアクティブポートとして指定すべきポートを特定してもよい。アプリケーション４４０は、構成変更更新メッセージ中に同定された特定の通信構成に基づいてネットワークコンピュータを特定の送信プロトコルに自動的に切り換えさせることができ、それによって対応する通信ポートに切り換わる。例えば、新たな構成がピア・ツー・ピアの構成である場合には、アプリケーションは、ネットワークコンピュータを自動的に、例えばＵＤＰのような特定のプロトコルに関連するポートに切り換えさせることができる。
【００４５】
ネットワークコンピュータが新たなアクティブポートを指定した後、フロー図の８８０という番号が付されたボックスにプロセスが移行する。この動作では、ネットワークコンピュータは１つ又は複数の更新メッセージを、次のコンピュータを指定するための何らかのスキームに従って、オンラインセッションに参加している「次の」ネットワークコンピュータに送信する。この「次の」コンピュータは、現在のコンピュータのインデックス番号の次に大きい表示番号のコンピュータであってもよいが、インデックス番号が「次の」コンピュータに基づく必要がないことは当然である。例えば、ネットワークへのログオンの時間で次のコンピュータを決定することができ、あるいはネットワーク構成に適した何らかの他のスキームを使用することもできる。「次の」コンピュータを何で決定したとしても、各ネットワークコンピュータは構成変更更新メッセージを次のコンピュータに転送し、それによって次のコンピュータに通信構成の変更が起きていることを通知する。
【００４６】
構成変更更新メッセージを受信する最後のネットワークコンピュータは、ボックス８１０から８５０のセッション確立プロセスにより、ネットワークコンピュータのシーケンスの最後であることを認識し、セッションマスタに更新メッセージを受信したことを通知する。この通知は、構成変更更新メッセージがオンラインセッションに参加しているすべてのネットワークコンピュータで循環されたことを示す。次に、セッションマスタは、セッションマスタについてのポート及びプロトコル情報を含むメッセージで新たなメッセージの循環を開始することができる。オンラインセッションのすべての参加者についてポート／プロトコル情報が更新されるまで、このメッセージがネットワークコンピュータを循環される。
【００４７】
アプリケーション４４０は、アプリケーション４４０で使用されるオブジェクト及び通信メッセージの定義のライブラリを提供するソフトウエア開発キット（software development kit:ＳＤＫ）を使用して開発するのが好ましい。このソフトウエア開発キットは、ＳＤＫを使用して開発したアプリケーションを、それを介してネットワークシステム４００のようなネットワークシステムで実行することができるアプリケーションインターフェイスを有する。アプリケーションのオンラインセッションを動作させるためにアプリケーション４４０がログオンできるサーバ４２０のような中央ネットワークサーバに、このＳＤＫのアプリケーションインターフェイスが常駐してもよい。これにより開発中のアプリケーションを慎重に試験することができる。ＳＤＫにより提供されるオブジェクト及びメッセージのタイプを使用することにより、アプリケーション４４０は前述の特徴を含むように開発できる。ＳＫＤはアプリケーション４４０で使用されるオブジェクトのクライアントベースでの定義を提供するオブジェクト定義構造を含むことが好ましい。このオブジェクト定義は、個々のオブジェクトに関連し、コンピュータネットワークを介したクライアントとの対話を可能にするためにアプリケーションによって使用される複数の特性を含む。
【００４８】
いったんＳＤＫを使用してアプリケーション４４０を開発すると、アプリケーションのコピーを製作し、アプリケーション４４０を１つ又は複数のネットワークコンピュータにロードして図９のフロー図のボックスに示すような動作に従ってオンラインセッションを確立することができる。フロー図の９１０という番号を付したボックスで表される第１の動作では、アプリケーション４４０がロードされたネットワークコンピュータがメモリ中にアプリケーションインターフェイスソフトウエアを含むネットワークコンピュータに接続する。例えば、図４に示すネットワークシステム４００の１つ又は複数のクライアントコンピュータ４１０がメモリにロードされたアプリケーション４４０を有し、サーバコンピュータ４２０がアプリケーションインターフェイスを含んでいてもよい。この場合、クライアントコンピュータ４１０は、ネットワーク４３０を介してサーバコンピュータ４１０と通信接続を確立する。
【００４９】
次の動作では、フロー図の９２０という番号が付されたボックスで表されているように、アプリケーション４４０が、アプリケーションインターフェイスのライブラリ中の利用可能なオブジェクト定義に従って、オブジェクトを登録する。また、アプリケーション４４０は、フロー図の９３０という番号が付されたボックスで表されているように、オンラインセッション中に使用されるメッセージフィルタを登録する。
【００５０】
次の動作では、フロー図の９４０という番号が付されたボックスで表されているように、アプリケーション４４０はセッションマスタを決定し、ネットワークコンピュータの１つにセッションマスタのオーナーシップを割り当てる。セッショマスタのオーナーシップは１つのコンピュータに割り当てることもできるし、複数のコンピュータに割り当てることもできる。また、アプリケーション４４０は、セッションマスタのオーナーシップが特定のコンピュータに専属するか、オーナーシップを他のコンピュータに移せるかを特定することができる。
【００５１】
この動作中に、アプリケーション４４０は、オンラインセッションに参加することになる個々のネットワークコンピュータにクイアントインデックスを割り当てると共に、前述のインデックスリストを確立することができる。アプリケーション４４０は、サーバコンピュータにログオンする第１のネットワークコンピュータがセッションマスタとなり、１又はゼロのような最初のインデックスを受信するように構成することができる。次に、ログオンを実行する後続のネットワークコンピュータが、そのシステムで使用される「次の」の定義に従って、次に利用可能なインデックスを受信する。セッショマスタのオーナーシップ又はセッショマスタが確立された後、フロー図の９５０という番号が付されたボックスで表されているように、アプリケーション４４０のオンラインセッションが開始される。
【００５２】
前述のように、図４のブロック図に示されたネットワークコンピュータは、コンピュータネットワークシステム４００のノードを備える。図１０は図４のシステム４００におけるコンピュータのブロック図であり、１つのコンピュータに含まれるハードウエア要素が図示されている。装置４１０，４２０がすべての同様のコンピュータ構造であってもよく、ここで説明した性能に適した代案の構造であってもよいことは、当業者にとって当然である。
【００５３】
図１０は、あらゆるネットワークコンピュータを含むような例示のコンピュータ１００
を示す。各コンピュータ１００は、米国、カリフォルニア州、サンタクララ（Santa Clara）のインテル社（Intel Corporation）が市販している「ペンティアム」マイクロプロセッサのような、中央処理ユニット（ＣＰＵ）１００２及び関連する統合回路チップの制御下で動作する。コンピュータのユーザは、キーボード及びコンピュータマウス１００４から命令及びデータを入力し、入力及びコンピュータの出力をディスプレイ１００６で見ることができる。ディスプレイは、通常、ビデオモニタ又はフラットパネルディプレイである。また、コンピュータ１００は、ハードディスクドライブのような直接アクセス型の記憶デバイス（direct access storage device:ＤＡＳＤ）１００８を備える。メモリ１０１０は、通常、揮発性半導体ランダムアクセスメモリ（ＲＡＭ）を備える。各コンピュータは、プログラムプロダクト記憶ユニット１０１４を受け入れ可能なプログラムプロダクトリーダ１０１２を備え、プログラムプロダクトリーダ１０１２はプログラムプロダクト記憶ユニット１０１４からデータを読み出し（オプションとしてデータの書き込み）が可能であることが好ましい。プログラムプロダクトリーダは、例えば、ディスクドライブからなり、プログラムプロダクト記憶装置、磁気フロッピーディスク、ＣＤ−Ｒディスク、ＣＤ−ＲＷディスク、又はＤＶＤディスクのようなリムーバブルないしは取り外し可能である記憶媒体からなる。
【００５４】
各コンピュータ１０００は、（インターネット又はイントラネットのような）コンピュータネットワーク１０２０を介してネットワーク１０２０とコンピュータ間の接続１０２２を介した通信を可能にするネットワークインターフェイス１０１８により、他のコンピュータと通信可能である。ネットワークインターフェィス１０１８は、通常、例えば種々のネットワークを介した通信を可能とするネットワークインターフェイスカード（ＮＩＣ）やモデムを備える。
【００５５】
ＣＰＵ１００２は、コンピュータ１０００のメモリ１０１０に一時的に記憶されたプログラミングステップの制御下で動作する。プログラミングステップが実行されると、コンピュータはその機能を実行する。よって、プログラミングステップがアプリケーション４４０の機能を実行する。プログラミングステップは、プログラムプロダクト記憶デバイ１０１４を介して、又はネットワーク接続１０２２を介して、ＤＡＳＤ１００８から受信することができる。プログラムプロダクト記憶装置１０１２は、プログラムプロダクト１０１４を受け入れ、それに記憶されたプログラミングステップを読み出し、ＣＰＵ１００２が実行するためにメモリ１０１０にプログラミングステップを転送することができる。前述のように、プログラムプロダクト記憶装置は、コンピュータが読み込み可能な指示を記憶した多数の取り外し可能な媒体のいずれでもよく、フロッピーディスクとＣＤ−ＲＯＭ記憶ディスクを含んでいる。他の好適なプログラムプロダクト記憶デバイスとしては、磁気テープと半導体メモリチップがある。このように、本発明に従った動作に必要な処理ステップはプログラムプロダクトで実施することができる。
【００５６】
代案としては、プログラムステップはネットワーク１０２０を介して動作しているメモリ１０１０で受信してもよい。このネットワーク法では、当業者はさらに説明を要することなく理解する周知の方法でネットワーク接続１０２２を介してネットワーク接続を確立した後、コンピュータはネットワークインターフェィス１０１８を介してメモリ１０１０にプログラムステップを含むデータを受信する。プログラムステップはＣＰＵ１００２により実行され、従ってコンピュータのプロセスを含む。
【００５７】
図４に図示されたネットワークシステム４００のすべてのネットワークコンピュータが、図１０に図示されたもの同様の構造であってもよいのは当然であり、図１０を参照して詳細を説明するコンピュータ１００はシステム４００のすべてのコンピュータに適用することができる。あらゆるネットワークコンピュータは、図４に図示された他のコンピュータと通信可能であり、ここで説明した機能をサポートしている限り、代替の構造であってもよい。
【００５８】
例えば、図１１を参照すると、クライアントコンピュータ４２０は、ビデオゲームシステム１１００のようなコンピュータエンタテーメントシステムをであってもよい。図１１はビデオゲームシステム１１００のハードウエア構成の例のブロック図である。
【００５９】
ビデオゲームシステム１１００は、メインメモリ１１０５と協働する中央処理ユニット（ＣＰＵ）１１００を備える。ＣＰＵ１１００はＯＳ−ＲＯＭ１１６０に格納され又はゲームプログラム記憶媒体からメインメモリ１１０５に転送されたプログラムステップの制御下で動作する。ＣＰＵ１１００は、プログラムステップに従って、情報を処理し、命令を実行する。
【００６０】
ＣＰＵ１１００は専用のバス１１２５を介して入力／出力プロセッサ（input/output bus:ＩＯＰ）１１２０に通信可能に接続されている。ＩＯＰ１１２０はＣＰＵ１１００をオペレーティングシステムのようなプログラム命令を記憶した不揮発性メモリからなるＯＳ  ＲＯＭ１１６０に接続する。メインユニット１１００の立ち上がり時に、ＩＯＰ１１２０を介してＣＰＵに情報が転送されることが好ましい。
【００６１】
ＣＰＵ１１００は、専用のバス１１１５を介してグラフィック処理ユニット（graphics processing unit:ＧＰＵ）１１１０に通信可能に接続されている。ＧＰＵ１１１０は、ＣＰＵ１１００から受信する命令に従って、描画処理を実行し画像を形成する描画プロセッサである。例えば、ＧＰＵ１１１０は、ＣＰＵ１１００が生成した表示リストを受信し、それに基づいてグラフィックイメージを描くことができる。ＧＰＵ１１００はＡＶ出力ユニット１７５に画像を出力することができる。
【００６２】
ＩＯＰ１１２０は、ＩＯＰメモリ１１３０に記憶された命令に従って、ＣＰＵ１１００と複数の周辺機器のデータ交換を制御する。周辺機器は、１つ又は複数の入力コントローラ１１２２、メモリカード１１４０、ＵＳＢ１１４５、及びＩＥＥＥ１３９４シリアルバス１１５０を含んでいてもよい。また、バス１１５５はＩＯＰ１１２０に通信可能に接続されている。バス１１５０は、ＯＳ  ＲＯＭ１１６０、サウンドプロセッサユニット（sound processor unit）１１６５、オプションのディスク制御ユニット１１７５、及びハードディスクドライブ（hard disk drive:ＨＤＤ）１１８０を含むいくつかの追加の構成要素に接続されている。
【００６３】
ＳＰＵ１１６５は、ＣＰＵ１１００及びＩＯＰ１１２０から受信する命令に従って、音楽、音響効果、及び音声のような音を生成するように構成されている。ＳＰＵ１１６５は、波形データが記憶されるサウンドバッファを含んでいてもよい。ＳＰＵ１１６５は、音響信号を生成し、その信号をスピーカに送信する。
【００６４】
ディスク制御ユニット１１７５は、例えば磁気フロッピーディスク、光学ＣＤ−ＲＯＭディスク、ＣＤ−Ｒディスク、ＣＤ−ＲＷディスク、ＤＶＤディスク等のような取り外し可能な記録媒体を受け入れる光学ディスクドライブを備えるプログラムリーダを制御する。
【００６５】
メモリカード１１４０は、ＣＰＵ１１００がデータを書き込み及び記録可能な記録媒体からなる。メモリカード１１４０は、ＩＯＰ１１２０に対して挿入及び取り外し可能であることが好ましい。ユーザは、メモリカード１１４０を使用することで、データを記録ないしは保存することができる。また、ビデオゲームシステム１１００は、データを書き込み及び記録可能な少なくとも１つのハードディスクドライブ（ＨＤＤ）を備えることが好ましい。
【００６６】
ＩＥＥＥ１３９４シリアルバス１１５０又はユニバーサルシリアルバス（universal serial bus:ＵＳＢ）１１４５インターフェィスのような、データ入出力インターフェィスは、図４のネットワーク４３０のようなビデオゲームシステム１１００に対してデータを転送及び取り出しできるようにするために、ＩＯＰ１１２０に接続することが好ましい。
【００６７】
よって、本発明は、ピア・ツー・ピアの通信を使用する統合サーバ（Integrated Server:ＩＳ）構成と、クライアント・サーバ通信（例えばＴＣＰ／ＩＰ）の専用のアプリケーションサーバ構成とを切換ることができる、コンピュータネットワークマルチユーザプログラム環境のためのシステム及び方法を提供する。通常、ＩＳからアプリケーションサーバに変更するとき、ＩＳとして機能するネットワークユーザは、ゲームアプリケーションの動作を、アプリケーションサーバを介して他のプレーヤと通信するように変更しなければならない。この通常の動作が実行されなければ、ＩＳの機械がログオフしたときに、アプリケーション環境が突然消滅する。同様の通信変更が他のすべてのアプリケーションユーザについて必要である。この通信変更では、すべてのユーザが、ピア・ツー・ピア用のＵＤＰポートの使用から、クライアント・サーバ動作用のＴＣＰポートの使用に切り換える必要がある。この変更は煩わしく、不便で、ゲーム環境にとって破壊的である。本発明が提供する解決策では、構成制御の特徴により、マルチユーザアプリケーションを、所望の通信構成に関連する１つのポート（例えば、ＵＤＰ）から異なる通信構成に関連する第２のポート（例えば、ＴＣＰポート）との間で自動的に切り換えることができる。これによってアプリケーション環境の動作が継続する。
【００６８】
以上、本発明が理解されるように、現時点で好適な実施形態に関連して本発明を説明した。しかしながら、ここで詳細には説明していないが本発明を適用可能である、多くのシステムの構成及びアプリケーションがある。従って、本発明はここで説明した特定の実施形態に限定されるとみなすべきではなく、本発明はマルチユーザアプリケーション一般に広く適用可能であると理解されるべきである。従って、添付の特許請求の範囲内のすべての変更、変形、ないしは均等の構成及び実施は、本発明の範囲に含まれるものと解されるべきである。
【図面の簡単な説明】
【００６９】
【図１】クライアント・サーバネットワーク通信構成で配置されたコンピュータネットワークの図。
【図２】統合ネットワーク通信構成で配置されたコンピュータネットワークの図。
【図３】ピア・ツー・ピアのネットワーク通信構成で配置されたコンピュータネットワークの図。
【図４】本発明に従って構成されたマルチユーザアプリケーションを実行するコンピュータネットワークシステムの図。
【図５】図４に示すマルチユーザアプリケーション構成のためのコンピュータインデックス及びセッションマスタ情報を含むデータ構造の図。
【図６】サーバコンピュータ又はクライアントコンピュータがセッションマスタとして指定された通信構成の第１の種類でマルチユーザアプリケーションが配置されているコンピュータネットワークシステムの図。
【図７】多数のクライアントコンピュータがセッションマスタとして指定された通信構成の他の種類でマルチユーザアプリケーションが配置されているコンピュータネットワークシステムの図。
【図８】マルチユーザアプリケーションのオンラインセッション中の参加者の存在を管理するプロセスを表すフロー図。
【図９】マルチユーザアプリケーションのオンラインセッションの確立に関連する動作ステップを示すフロー図。
【図１０】図４に図示されたネットワーク中のコンピュータのブロック図であり、ハードウエア構成要素を図示している。
【図１１】図４に図示されたネットワーク中のコンピュータエンタテーメントシステムのブロック図であり、ハードウエア構成要素を図示している。
【符号の説明】
【００７０】
１１０  専用のサーバコンピュータ
１２０  クライアントコンピュータ
１４０  メモリエンジン
４００  コンピュータネットワークシステム
４１０，４１２  クライアントコンピュータ
４２０，４２２  サーバコンピュータ
４３０  コンピュータネットワーク
４４０  マルチユーザアプリケーション
４４５  ネットワークソケット
５００  テーブル
１００２  ＣＰＵ
１００４  キーボード及びコンピュータマウス
１００６  ディスプレイ
１００８  ＤＡＳＤ
１０１０  メモリ
１０１２  プログラムプロダクトリーダ１０１２
１０１４  プログラムプロダクト記憶装置
１０１８  ネットワークインターフェィス
１０２０  コンピュータネットワーク
１１００  ビデオゲームシステム
１１０５  メインメモリ
１１６０  ＯＳ−ＲＯＭ
１１１５，１１２５  バス
１１１０  ＧＰＵ
１１３０  ＩＯＰメモリ
１１２２  入力コントローラ
１１４０  メモリカード
１１４５  ＵＳＢ
１１５０  ＩＥＥＥ１３９４シリアルバス
１１６０  ＯＳ  ＲＯＭ
１１６５  サウンドプロセッサユニット
１１７５  ディスク制御ユニット
１１８０  ハードディスクドライブ
【図１】
2005520264.tif 000003
【図２】
2005520264.tif 000004
【図３】
2005520264.tif 000005
【図４】
2005520264.tif 000006
【図５】
2005520264.tif 000007
【図６】
2005520264.tif 000008
【図７】
2005520264.tif 000009
【図８】
2005520264.tif 000010
【図９】
2005520264.tif 000011
【図１０】
2005520264.tif 000012
【図１１】
2005520264.tif 000013
【国際調査報告】
2005520264.tif 000014