JP2005524920A - ネットワーク通信アーキテクチャ間の構成の動的な切り換え - Google Patents

ネットワーク通信アーキテクチャ間の構成の動的な切り換え Download PDF

Info

Publication number
JP2005524920A
JP2005524920A JP2004508034A JP2004508034A JP2005524920A JP 2005524920 A JP2005524920 A JP 2005524920A JP 2004508034 A JP2004508034 A JP 2004508034A JP 2004508034 A JP2004508034 A JP 2004508034A JP 2005524920 A JP2005524920 A JP 2005524920A
Authority
JP
Japan
Prior art keywords
computer
online session
application
session
computers
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
JP2004508034A
Other languages
English (en)
Other versions
JP3990400B2 (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
Application filed by ソニー・コンピュータ・エンタテインメント・アメリカ・インク filed Critical ソニー・コンピュータ・エンタテインメント・アメリカ・インク
Publication of JP2005524920A publication Critical patent/JP2005524920A/ja
Application granted granted Critical
Publication of JP3990400B2 publication Critical patent/JP3990400B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本発明は、様々なネットワーク通信で動作するように構成され、アプリケーションのオンラインセッション中に通信構成を動的に変更できるマルチユーザアプリケーション(440)に関する。通信構成の1つは、少なくとも1つずつのサーバコンピュータ(420)とクライアントコンピュータ(412)がアプリケーションのオンラインセッションに参加するクライアント−サーバ型構成である。サーバコンピュータ(420)は、アプリケーションに関するデータをオンラインセッション中にクライアントコンピュータ(412)へ提供する。別の通信構成では、ネットワークコンピュータは、オンラインセッションに参加中のネットワークコンピュータとの間でデータを送受信できるピア・ツー・ピア型構成で動作する。本アプリケーションは、オンラインセッション中にこれらの通信構成の間で切り換えし、どのコンピュータも一方又は他方の構成に限定されるものではない。

Description

本発明は、一般にコンピュータネットワークに関し、特に、ネットワーク通信のコンピュータ構成に関する。
ローカルエリアネットワークやインターネットのようなコンピュータネットワークは、複数の当事者間における様々なトランザクション及びインタラクション(対話)のためのバックボーンとしてますます使用されるようになってきている。サービスプロバイダはますます、銀行の顧客らがコンピュータネットワーク上で金融取引を開始できるオンラインバンキング(オンラインの銀行取引)から、ゲームをする人たちがインターネットを介した様々なゲームに参加できるオンラインゲームにいたるまで、様々なサービスをコンピュータネットワークを介して提供している。現時点では、実行されるトランザクション及びインタラクションを促進する様々な異なるコンピュータネットワークの構成が存在する。
構成の1つのタイプは、図1に示したような古典的なクライアント−サーバ型の構成である。この構成では、専用サーバコンピュータ110が、ネットワークを介して、例えばインターネットを介して、1つ又は複数のクライアントコンピュータ120に対して通信可能であるようにリンクされている。クライアントコンピュータ120は、サーバコンピュータ110にサービス要求を行い、サーバコンピュータ110は、要求側のクライアントコンピュータ120へネットワークを介してデータを送信することによってその要求に応える。サーバコンピュータ110は、データ記憶装置へ、又はクライアントコンピュータとサーバコンピュータとの間のトランザクションを促進する他のコンピュータ装置へ接続されることが可能である。クライアント−サーバ型の構成の1つの特徴は、クライアントコンピュータはサーバコンピュータとの間で通信するように制限されているので、複数のクライアントコンピュータが互いに直接的に通信できないということにある。
例えば、オンラインゲームを行う環境においてクライアント−サーバ型の構成が動作される場合、サーバコンピュータ110は、オンラインゲームに関連付けられた様々な状態を保持することの責務を有する可能性がある。サーバコンピュータは、ゲームの1つ又は複数のインスタンスを保持するメモリエンジン140のような他のコンピュータに接続されることが可能であるとともに、サーバコンピュータ110は、プレーヤ(遊技者)のマッチング及びアカウント管理等の、運営又は管理上の事柄を管理する。クライアントコンピュータ120上のゲームプレーヤはサーバコンピュータ110にログオンし、利用可能なゲーム及び参加しているプレーヤらのリストを受信することができる。プレーヤは、開始するか又は参加するゲームを選択し、これにより、当該プレーヤのコンピュータがクライアント−サーバ型の接続を確立する際に使用するメモリエンジンを識別する。このようにして、サーバコンピュータ110及びメモリエンジン140はともに、1つ又は複数のクライアントコンピュータ120のためにゲームを行う環境を運営し、又は管理する。
もう1つのタイプの構成は、図2に示したような統合化されたサーバの構成と呼ばれるものである。この構成は、専用サーバコンピュータ110と、コンピュータネットワークを介してそれぞれサーバコンピュータ110に接続されている1つ又は複数のクライアントコンピュータ120とを含む。先に説明した構成の場合と同様に、サーバコンピュータ110はクライアントコンピュータ120へデータを提供する。しかしながら、クライアントコンピュータ120の1つ、例えばクライアントコンピュータ120aは、このクライアントコンピュータ120aが他のクライアントコンピュータ120へデータを提供することができるという点で統合型のサーバとして機能する。これにより、クライアントコンピュータ120aは、オンライン環境を保持することに関連付けられた処理負荷のいく分かを共有することができる。例えば、オンラインゲームを行う環境においては、サーバコンピュータ110は、プレーヤのマッチング、アカウントの管理及びチャットルームの管理といった運営機能を実行可能である一方、クライアントコンピュータ/統合化されたサーバ120aは、先に説明したメモリエンジンの機能を実行することができる。
さらにもう1つのタイプの通信構成では、図3に示したように、様々なコンピュータがピア・ツー・ピア構成で配置される。ピア・ツー・ピア構成では、各々のコンピュータが他のコンピュータと通信できるので、すべてのコンピュータが「ピア」として機能する。ピア・ツー・ピア構成の一形態においては、専用サーバ110が、ネットワークを介して複数のクライアントコンピュータ120に通信可能であるように接続される。オンラインセッションはまず、クライアントコンピュータ120のそれぞれがサーバコンピュータ110等の運営コンピュータに接続することによって確立される。次いで、複数のクライアントコンピュータ120は、クライアントコンピュータ120のそれぞれが、他の任意のクライアントコンピュータ120にデータを提供することと、他の任意のクライアントコンピュータ120からデータを受信することとの両方の能力を有するように、互いに通信可能であるように接続される。さらに、各クライアントコンピュータ120は、専用サーバ110との間で、クライアント−サーバの関係で動作することができる。当業者には、上述の構成に加えて他の通信構成も存在するということが理解されるであろう。
異なる通信構成には、その各々に関連付けられる複数の優位点と複数の不利な点とがある。例えば、クライアント−サーバ型の構成は、高性能なコンピュータを専用サーバとして使用することを可能にするが、このことは、サーバコンピュータによる大量のデータ処理が必要とされる場合には優位点となりうる。これに対して、高性能な専用サーバコンピュータを使用することはサーバのオペレータにとって不経済である可能性があり、また、そのような処理能力を必要としない状況においてもサーバが使用される場合には過剰な処理またはやりすぎとなる可能性もある。ピア・ツー・ピア型構成の優位点は、複数のクライアントコンピュータがサーバを介してそれらのデータを共用するのではなく互いに直接的にデータを共用するということに起因した、より高速な通信速度にある。このことは、接続されたネットワークを介して生じるデータ転送の量を削減する。ただし残念ながら、クライアントコンピュータのうちの1つが大きな通信帯域幅を持たない場合には、ピア・ツー・ピア型通信における通信は遅くなる可能性がある。
オンラインゲームを行う環境においては、異なる通信構成の様々な優位点及び不利な点に係るいくつかの特定の例を見ることができる。単一のゲームインスタンスに参加している何百名ものプレーヤを関与させる場合がしばしばあるアクションゲーム及びロールプレイングゲームのような所定のタイプのゲームは、同時に存在する多数のプレーヤを関与させ、ゲーム環境を保持するために大量の集中的なデータ処理を必要とする。このようなゲームは、データ処理のために高性能な専用サーバを使用可能なクライアント−サーバ型の構成に、より適している可能性がある。一方、クライアント−サーバ型の構成は、それほど高性能なデータ処理を必要としない他のタイプのゲームにとっては、サーバのリソースが十分には活用されないので理想的なものにはならないであろう。このことは、ゲームのインスタンスにつき数名のプレーヤのみを含むような場合の多いスポーツゲームのようなゲームにおいてしばしば当てはまる。このようなゲーム環境には、ピア・ツー・ピア型構成の方がより適している可能性があり、その場合、ゲームに参加している複数のコンピュータの間でデータ処理がより容易に割り当てられることが可能であり、また、ゲーム環境を保持するために集中化されたサーバが必要とされない。
残念ながら、オンラインのマルチユーザアプリケーションを提供する現行のネットワークシステムは、上述の構成の一方においてのみ動作するようにセットアップされている。例えば、アクションゲーム又はロールプレイングゲーム(role playing game:RPG)のようなマルチユーザアプリケーションは、古典的なクライアント−サーバ型構成において動作する可能性があり、セッションが継続している間はその構成で動作するように制限される。アプリケーションは、正当な事情があっても、例えばプレーヤ数がスポーツゲーム並の人数にまで減少されても、別の構成に切り換わることができない。
さらに、ネットワーキングのためのいくつかの構成要素は、ネットワークの制限事項に起因して特定の構成でのみ動作する。これらの制限事項は、所定のクライアントがクライアント−サーバ型の環境で接続される一方、他のものはピア・ツー・ピア型構成で接続されることを要求する可能性がある。
本発明に係る動作するマルチユーザアプリケーションは様々なネットワーク通信構成において動作することが可能であり、かつこのアプリケーションのオンラインセッションの間に通信構成を動的に変更することが可能である。ネットワーク通信構成の1つはクライアント−サーバ型の構成であり、ここでは、少なくとも1つのサーバコンピュータと、クライアントコンピュータとして動作する少なくとも1つのコンピュータとを含む複数のネットワークコンピュータが、このアプリケーションのオンラインセッションに参加する。クライアント−サーバ型の構成では、サーバコンピュータは、オンラインセッションの間に、アプリケーションに関連したデータをクライアントコンピュータの各々へ提供する。本マルチユーザアプリケーションに係るもう1つの通信構成では、複数のネットワークコンピュータはピア・ツー・ピア型の構成において動作し、ここでは、ネットワークコンピュータは、このアプリケーションのオンラインセッションに参加している他のネットワークコンピュータのうちの任意のものに対してデータを提供し、かつ当該他のネットワークコンピュータのうちの任意のものからデータを受信する能力を有している。従って、本アプリケーションは、オンラインセッションの間に通信構成を切り換えることができる。
本マルチユーザアプリケーションは、アプリケーションを実行するコンピュータのうちのいくつかがクライアント−サーバ型構成で通信している一方、他のコンピュータはピア・ツー・ピア型構成で通信しているように動作することができる。本アプリケーションは、一方の構成からもう一方の構成へいつ変更するのかを決定することができる。例えば、本マルチユーザアプリケーションは、エンドユーザアプリケーションにとって最適である適切な通信構成(クライアント−サーバ型又はピア・ツー・ピア型)を決定することができるようなネットワーク通信マネージャであって、ユーザが他のエンドユーザアプリケーションへのアクセスを得るために登録する際に使用するネットワーク通信マネージャを備えることが可能である。それに代わって、本アプリケーションは、利用可能な帯域幅に従って適切な通信構成を決定することもできる。こうして、本アプリケーションは、オンラインセッションに比較的少数のユーザが関与している場合にはピア・ツー・ピア型の通信構成を選択することができ、より多数のユーザが関与する場合にはクライアント−サーバ型の通信構成を選択することができる。
本発明のある態様において、マルチユーザアプリケーションは、ネットワークコンピュータの1つを、このアプリケーションのオンラインセッションの保持に関する所定の機能を実行することに責務を有するセッションマスタとして指定する。本アプリケーションは、オンラインセッションに参加している特定のコンピュータにセッションマスタの機能が固定的に割り当てられる専用モードで動作することが可能である。本アプリケーションはまた、セッションマスタの機能がオンラインセッションに参加している1つのネットワークコンピュータから別のネットワークコンピュータへ移ることができる移動モードで動作することも可能である。従って、セッションマスタの機能は、最初にセッションマスタとして割り当てられたネットワークコンピュータがオンラインセッションを終了して退出するときに、1つのネットワークコンピュータから別のネットワークコンピュータへ移動することができる。それに加えて、セッションマスタの機能は、オンラインセッションにおけるネットワークコンピュータのうちの2つ以上の間に分散されることが可能である。
本発明の他の特徴及び優位点は、本発明の原理を例示的に示す好適な実施形態に関する以下の説明から明らかとなるであろう。
本発明の目的、優位点及び特徴は、添付の図面に関連する以下の詳細な説明を読むことにより、さらに容易に理解されるであろう。
図4は、1つ又は複数のクライアントコンピュータ410,412と、1つ又は複数の専用サーバコンピュータ420,422とを含む1つ又は複数のネットワーク装置で構成される、コンピュータネットワークシステム400のブロック図である。上記ネットワーク装置は、コンピュータネットワーク430のノードである。従って、ネットワークコンピュータのいくつかはサーバとして構成され、いくつかはクライアントとして構成される。コンピュータネットワーク430は、インターネットのような相互に接続された複数のネットワークの集合体を含んでもよく、ノード410,412,420,422の各々において1つ又は複数のローカルエリアネットワークを含んでもよい。ここで使用しているように、「インターネット」という用語は、標準的な通信プロトコルのセットによりともにリンクされてグローバルな分散型ネットワークを形成する、相互に接続された(公衆の、及び/又は専用の)複数のネットワークの集合体を示す。
クライアントコンピュータ410,412は、ネットワーク430を介してクライアントコンピュータへ公知の方法でデータを提供するように構成されたサーバコンピュータ420,422の一方へ、ネットワーク430を介してデータ要求を送信することが可能である。サーバコンピュータ420,422は、当業者には認識されるように、データベースサーバ及び/又はアプリケーションサーバのような他のサーバを含む場合もあり、あるいは、互いに通信可能な方式でリンクされかつ上記他のサーバに通信可能な方式でリンクされる場合もある。図4は2つのクライアントコンピュータ410,412及び2つのサーバコンピュータ420,422のみを示しているが、ネットワークシステム400は任意個数のクライアントコンピュータ410,412及びサーバコンピュータ420,422を含んでもよいということは理解される必要がある。ここでは、サーバコンピュータ420,422及びクライアントコンピュータ410,412を時として集合的にネットワークコンピュータと呼んでいる。
ネットワークシステム400は、所定のコンピュータプログラムで構成されるマルチユーザアプリケーション440をサポートし、上記マルチユーザアプリケーション440により、複数のユーザは、コンピュータネットワーク430にリンクされた複数のネットワーク装置(クライアントコンピュータ410,412等)を用いてオンラインセッションで対話することができる。アプリケーション440はクライアントコンピュータの各々にインストールされるが、このことは、このアプリケーションの動作上のインスタンスが、アプリケーション440を走らせる(実行する)クライアントコンピュータ410,412の各々のメモリに格納されるということを意味する。マルチユーザアプリケーションのオンラインセッションに参加しようとしている各サーバコンピュータもまた、アプリケーション440のインスタンスを格納する。これを説明するために、サーバ420,422の両方を、インストールされたアプリケーション440とともに図示しているが、第1のサーバコンピュータ420は、クライアントマシン410,412によって実行されているマルチユーザアプリケーションのためのサーバであるということを仮定している。データの交換は、実行中にアプリケーション440のインスタンス間で発生し、ネットワークコンピュータのそれぞれにおけるネットワークソケット445の確立によって有効化される(イネーブルにされる)。ソケットは、図4では個々のネットワークコンピュータにおけるボックスとして表示されている。当業者は、ネットワークソケットが、ネットワークシステム400上で実行される2つ以上のプログラム間の多元(マルチウェイ)通信リンクの一方の端末であるということを理解するであろう。
アプリケーション440は、様々な通信構成に従うネットワークシステム400のネットワーク装置上で実行されることが可能であり、様々なアプリケーションに関連した処理に対する責務は、詳細後述するように、ネットワーク430の異なる複数の計算装置に割り当てられることが可能である。アプリケーション440を開発するためには、同じく詳細後述するように、好適にはアプリケーション開発インターフェースが使用される。アプリケーションは、関連付けられたネットワークコンピュータが、図1、図2及び図3に示した通信モードのうちの任意のものを実装する通信構成を使用できるように動作可能である。
マルチユーザアプリケーション440は、コンピュータネットワーク430にリンクされたネットワークコンピュータ上でユーザが実行できる、任意のタイプのアプリケーションであることが可能である。アプリケーション440がクライアントコンピュータ410,412上で実行されるとき、ユーザは、同じくアプリケーション440を実行している他のネットワークコンピュータを介して他のユーザと対話することができる。サーバコンピュータ420は、中央ネットワークの「ミーティングポイント(集合地点)」として機能することが可能であり、ユーザらは、この「ミーティングポイント」により、コンタクトを確立し、データを保持し、アプリケーション440のオンラインセッションを開始することができる。典型的には、アプリケーション440は、当該アプリケーション440が内部で動作しているネットワーク装置に、装置410,412,420等の他のネットワーク装置との通信を確立させ、これによりオンラインセッションを開始する。オンラインセッションの間、複数のネットワークコンピュータは、アプリケーション440のプログラミングされた機能に従って対話しかつデータを交換する。
アプリケーション440が起動され、適切に構成されたコンピュータ間にオンラインセッションが確立されるとき、本アプリケーションは、これらのコンピュータが様々な通信構成で対話することを可能にする。この説明を通じていくつかの場合に、複数のユーザがクライアントコンピュータ410,412を用いてアクセスしかつ実行することのできるコンピュータゲームをアプリケーション440が備えた、オンラインゲームを行うシナリオにおいてアプリケーション440を説明する。このような場合、アプリケーション440は、ネットワークコンピュータが参加するゲームで構成されるオンラインセッションを確立する。しかしながら、アプリケーション440は、コンピュータネットワーク上の複数のコンピュータ間のインタラクションを伴う、例えばオンラインバンキング又はオンラインの旅行計画立案のようなゲーム以外の他のシナリオに関連していてもよいということは理解される必要がある。
マルチユーザアプリケーション440は、アプリケーション410、412を実行するクライアントコンピュータのうちのいくつかがクライアント−サーバ型の構成で通信し、その一方で他のコンピュータがピア・ツー・ピア型の構成で通信するように動作することができる。本アプリケーションは、一方の構成からもう1つの構成へいつ変更するのかを決定することができる。さらに、マルチユーザアプリケーション440は、ゲーム等のエンドユーザアプリケーションや又はエンドユーザプログラムへのアクセスを許可する、ゲームのポータル又はプログラムのポータルのようなネットワーク通信マネージャとして構成されることが可能である。それに代わって、通信管理機能とエンドユーザプログラムとがマルチユーザアプリケーション440に統合化されることも可能である。いずれの状況においても、マルチユーザアプリケーション440は、エンドユーザアプリケーションにとって最適である(クライアント−サーバ型又はピア・ツー・ピア型のような)適切な通信構成を決定することができる。例えば、決まった人数のユーザ又は6名のユーザを含むグループがあるゲームに参加している場合のように、比較的少数のユーザがオンラインセッションに参加している場合には、本アプリケーションはピア・ツー・ピア型の通信構成を選択することができ、何百名ものプレーヤを包含する大規模なオンラインセッション又はロールプレイングゲームのように、より多数のユーザが関与する場合には、本アプリケーションはクライアント−サーバ型の通信構成を選択することができる。それに代わって、小規模なユーザグループであってもクライアント−サーバ型の構成に最適であるという可能性もあるので、本アプリケーションは、利用可能な帯域幅に従って適切な通信構成を決定することも可能である。限られた帯域幅を有するあるユーザがクライアント−サーバ型構成におけるクライアントの役割に制限される可能性がある一方で他のユーザがピア・ツー・ピア方式で動作するように、利用可能な帯域幅の選択基準は、所望されれば、個別のレベルで適用されることが可能である。
アプリケーション440が実行されるとき、これはセッションマスタを識別する。セッションマスタとは、オンラインセッションの間に発生するコンピュータ間のインタラクションに関して、本アプリケーションのための様々な管理者及び運営機能を実行するネットワークコンピュータである。本アプリケーションのオンラインセッションは、ユーザ識別等の情報を含むデータ記憶装置に対する登録又はログオン処理を使用する。ログオン処理は、アプリケーションのネットワーク環境におけるさらなる参加を認証する。好適には、セッションマスタのこの機能は、アプリケーション440を実行するクライアントコンピュータ410等のクライアントコンピュータがサーバコンピュータ420にログオンしてオンラインセッションを開始するときに割り当てられる。しかしながら、このような割り当てが行われる場合と方法に関する詳細はアプリケーション自体によって決定されるので、本発明が教示する内容を逸脱することなく、様々なセッションマスタ割り当て方式を実装することができる。
本アプリケーションのオンラインセッションを開始する、クライアントコンピュータ410上でのアプリケーションの動作するインスタンスは、ホストコンピュータと呼ばれる。ホストコンピュータにおけるアプリケーションは、セッションマスタの機能をサーバコンピュータ420又はホストコンピュータ410のいずれかに割り当てる。新しいクライアントコンピュータがサーバコンピュータ420にログオンして(登録して)オンラインセッションに参加すると、サーバコンピュータ420は、既に割り当てられているセッションマスタコンピュータの識別情報を、この新しいクライアントに通知する。
詳細後述するように、セッションマスタの機能は、アプリケーション440が動作可能である様々なネットワークの通信構成間での、滑らかな遷移を可能にする。セッションマスタの機能はまた、アプリケーション440が、アプリケーションに関連したタスクに対する責務をある特定のネットワークコンピュータに集中させたり、又は、このような責務を2つ以上のネットワークコンピュータの間で分散させたりすることを可能にする。タスクの割り当ては、ネットワークコンピュータのうちの1つの上におけるアプリケーション440のインスタンスにより、セッションマスタの機能の割り当てと同時に実行されることが可能であり、また、セッションマスタのタスクは、必須の機能を提供するためにネットワーク430上のコンピュータのうちの1つ又は複数に対して割り当てられることが可能である。ここでは、セッションマスタの責務の割り当てを受ける1つ又は複数のコンピュータを、個々のセッションマスタの機能の「所有者」と呼ぶ。複数のコンピュータが集合的にセッションマスタの機能を実行している場合には、単独のセッションマスタに言及している場合であっても、上記複数のコンピュータからなるグループに適用されるものとして理解されたい。従って、セッションマスタのタスクの割り当ては、アプリケーションの開発者の指示に従い、アプリケーションによって指定される方法で実行される。
上述のように、セッションマスタは動作上の複数の優位点を提供するが、そのうちの1つは、オンラインセッションに参加している複数のコンピュータ間で所定の責務を分散させることにある。例えば、アプリケーション440に関連付けられた所定のタスクは、1つのネットワークコンピュータに係る大量の処理能力を消費する可能性のある、大規模なデータ処理の必要条件を有することがある。ネットワークコンピュータのうちの1つにおけるアプリケーション440のインスタンスは、これらのタスクのうちのあるものをセッションマスタへ割り当て、セッションマスタの所有権を、そのタスクにとってより適すると思われる特定のコンピュータへ割り当てることができる。アプリケーション440はまた、オンラインセッションに関する所定のタスクがそれぞれ割り当てられたいくつかのコンピュータ間で、複数のセッションマスタを保持することも可能である。このようにして、単一のコンピュータがすべてのタスクの責務による過剰な負担を負うことのないように、タスクは複数のコンピュータ間に分散されることが可能である。
また、セッションマスタの機能は、詳細後述するように、メッセージをフィルタリングする責務を用いることによってネットワーク帯域幅の効率的な利用をもたらす。さらに、セッションマスタの機能を所有するネットワークコンピュータがオンラインセッションから離脱するとき、残りのネットワークコンピュータのうちの1つにおけるアプリケーション440のインスタンスは、以前のセッションマスタコンピュータに係るセッションマスタの責務を、別のネットワークコンピュータへ再割り当てしてもよく、これにより、セッションマスタによって実行される動作を混乱させることのない、オンラインセッションにおける円滑な移行(切り換え)が可能になる。また、これにより、アプリケーション440は、セッションマスタの責務を1つのコンピュータから別のコンピュータへ再割り当てすることにより、例えばオンラインセッションの間にサーバ420からクライアントコンピュータ410へ再割り当てすることにより、通信構成をオンザフライで(直接的に)切り換えることが可能になる。このようにして、アプリケーション440は、クライアント−サーバ型構成からピア・ツー・ピア型構成へ切り換え、またこの反対に切り換えるなど、オンラインセッション中に複数の通信構成の間で動的に切り換わる。
セッションマスタに割り当てられる責務に係る1つのカテゴリーは、特定のタイプのアプリケーション440に特有の機能である、アプリケーションに固有の機能に関連している。例えば、アプリケーション440がゲームタイプのアプリケーションであれば、セッションマスタ、又はセッションマスタのグループは、ゲームのスコアやゲームの残り時間等のゲームタイプのデータを追跡することが可能であり、かつ、ゲームが終了したときにセッションを終了させること等のゲーム機能を実行することができる。また、セッションマスタには、フットボール、海、樹木などのゲーム環境におけるオブジェクトの状態のような、特定のゲームデータの追跡を割り当てることもできる。これらの責務は、単一のセッションマスタに集中化されることが可能であり、あるいは、いくつかのセッションマスタ間で分割されることも可能である。古典的なクライアント−サーバ型の構成では、オンラインセッションの間、専用サーバに1つ又は複数のセッションマスタの所有権を割り当てることができる。すると、ネットワークコンピュータの1つにおけるアプリケーション440のインスタンスは、詳細後述する通り、構成がピア・ツー・ピア型に切り換わるように、セッションマスタの所有権を専用サーバからクライアントコンピュータの1つへ再割り当てすることができる。
セッションマスタの責務に係るもう1つのカテゴリーは、メッセージのフィルタリングである。オンラインセッションの過程において、アプリケーション440は、オンラインセッションの様々な態様に関する通信メッセージの送信をネットワークコンピュータに実行させることができる。メッセージは変化する可能性があり、例えば、オンラインセッションの状態を記述するメッセージ、ユーザ間のチャットメッセージ、及びゲーム時間を更新するタイミングメッセージに関連するものである可能性がある。メッセージはまた、ネットワークコンピュータが他のネットワークコンピュータに送信して送信側のコンピュータがまだオンラインセッションに参加していることを知らせる更新メッセージを含む場合もある。
所定のインスタンスでは、セッションマスタは、ネットワークコンピュータのうちの所定のものに通信情報が送信されるべきか否かを決定するフィルタを保持する。アプリケーション440は、メッセージのいくつか又はすべてが、まずフィルタ解析のためにセッションマスタコンピュータへ送信されるように構成される。セッションマスタは、好適にはフィルタを保持し、適当な場合に通信情報が送信されることを防止する。セッションマスタは、好適には、メッセージの送信をフィルタリングするためにセッションマスタが参照するフィルタリストを保持する。フィルタリストは、所定のメッセージタイプについて、どのコンピュータがそのメッセージを受信すべきでないかということについて指定する。
例えば、あるオンラインゲームを行う環境において、各クライアントコンピュータは、仮想世界で動き回るキャラクタを担当することが可能であり、ここでは、その仮想世界におけるアイテムの状態に関するデータを含むメッセージが送信される。メッセージが、所定のキャラクタによって認識される範囲の外側にあるアイテムに関連していれば、そのキャラクタに関連付けられたネットワークコンピュータを更新する必要性はないであろう。こうした場合、セッションマスタはメッセージをフィルタリングしてそのメッセージがコンピュータに送信されないようにすることが望ましいであろう。これにより、送信される必要のあるメッセージだけが送信されるような効率的な帯域幅利用がもたらされる。
ホストコンピュータは、オンラインセッションに参加しているコンピュータに関する管理者機能を実行する。例えば、あるネットワークコンピュータがアプリケーション440のオンラインセッションに参加するときはいつでも、ホストコンピュータは、セッションに参加するコンピュータに識別インデックス番号を割り当てる。ホストコンピュータは、識別インデックス番号と、これらに関連付けられたネットワークコンピュータとのリストを保持する。このインデックス番号はメッセージを送信する際に使用され、かつセッションマスタの機能に関する所有権の記録を保持するためにも使用される。
上述のように、オンラインセッションには複数のセッションマスタが存在する可能性がある。セッションマスタを割り当てる方法は、アプリケーションによって、アプリケーションの動作に従って決定されることが可能である。アプリケーション440はまた、オンラインセッションに参加しているすべてのネットワークコンピュータの状態に関して複数のネットワークコンピュータを更新するための更新メッセージを送り出すことに関する責務を、セッションマスタに割り当てることもできる。この責務に伴ってセッションマスタは、詳細後述するように、新しいネットワークコンピュータがオンラインセッションに参加したとき、又は現在の参加者がアプリケーション440のオンラインセッションを終了して退出したときに、参加しているネットワークコンピュータに通知する。
また、上述のインデックス番号を各コンピュータに割り当てるホストコンピュータは、オンラインセッションに参加しているすべてのネットワークコンピュータのリストを保持する。よって、アプリケーション440は、コンピュータに割り当てられたインデックス番号に従ってセッションマスタの所有権を追跡する。インデックス番号及び責務の割り当てを追跡するために、アプリケーション440は、ネットワークコンピュータのインデックスのリストで構成された、図5に示したテーブル500のようなテーブルの形式等で、データ構造を保持することができる。テーブル500は、オンラインセッションに参加している各ネットワークコンピュータに関連付けられたインデックス番号を含み、かつまた当該ネットワークコンピュータがセッションマスタの機能を所有するか否かについての表示を含む。また、テーブル500を備えたインデックスのリストのデータ構造は、好適には、各ネットワークコンピュータのために使用されている通信プロトコルを特定する。図5は、異なるセッションマスタのタスク(C1,C2,C3)が異なるネットワークコンピュータによって所有されてもよいということを示している。
データ構造は、通信プロトコルを特定することに加えて、各ネットワークコンピュータについて通信プロトコルが関連付けられるポートをも特定する。アプリケーション440の各インスタンスは、オンラインセッションに参加している関連付けられたネットワークコンピュータが、各ポートが特定の通信プロトコルに関連付けられている状態で複数の通信ポートを開くことを可能にする。ネットワークコンピュータは、図5に示したテーブル500で構成されるデータ構造において特定された特定のポート及び特定のプロトコルを用いて、他のネットワークコンピュータと通信する。ポートは、アプリケーション440のインスタンスがネットワークを介して通信する際に使用するネットワークソケットを備えることができる。ネットワークコンピュータは、好適には、ネットワークを介して互いに通信メッセージを定期的に送信することにより、ポート/プロトコル情報を伝送するとともに、インデックスのリストに含まれる他の情報を伝送する。
ネットワークコンピュータがサーバコンピュータ420に接続してオンラインセッションを確立するとき、図8を参照して詳細後述するように、ネットワークコンピュータ上のアプリケーション440のインスタンスは、セッションマスタの所有権をネットワークコンピュータの1つに割り当てることができる。この点に関して、各ネットワークコンピュータ上のアプリケーション440のインスタンスは、好適には、オンラインセッションに参加している全ネットワークコンピュータのリストを保持し、また前述のインデックス番号をコンピュータの各々に関連付ける。アプリケーション440は次に、コンピュータに割り当てられたインデックス番号に従ってセッションマスタの所有権を追跡する。
ネットワークコンピュータは、ネットワークコンピュータのインデックスのリストで構成された、図5に示したテーブル500のようなテーブルの形式でデータ構造を保持することが可能であり、テーブルは、オンラインセッションに参加している各ネットワークコンピュータに関連付けられたインデックス番号を含むとともに、そのコンピュータが1つ又は複数のセッションマスタの機能を所有するか否かについての表示を含む。また、インデックスのリストのデータ構造は、好適には、各ネットワークコンピュータに対して使用される通信プロトコルを特定する。好適には、オンラインセッションに参加しているすべてのコンピュータは、テーブル500に係るインデックスのリストのコピーを保持する。テーブル500が単に例示的なものであるということと、アプリケーション440が、ネットワークコンピュータのインデックス番号、通信構成、及びセッションマスタの所有権を、広範な種類にわたるデータ構造フォーマットを用いる他の方法で追跡できるということとは理解される必要がある。
本アプリケーションは、オンラインセッションの間に通信構成及びプロトコルを変更することができる。上述のように、どの通信構成を使用するかということについての決定は、アプリケーションの性質(例えば、1対1のゲームか、それに対して大規模なロールプレイングゲームか)に、又はオンラインセッションへの参加者数に、もしくは利用可能な帯域幅に依存する可能性がある。例えば、オンラインセッションへの参加者が比較的少数であればピア・ツー・ピア型の構成が最適である可能性があるが、オンラインセッションに何百名ものユーザが関与するアプリケーション環境であればクライアント−サーバ型の通信構成が実際的な唯一の状況となる可能性がある。他方の通信構成ではなく一方の通信構成を選択するための実際的な決定パラメータは、アプリケーションによるリソースの必要条件に依存して変わるが、アプリケーション開発者には既知のものである。
アプリケーション440は、異なる方式に従って、又は複数の方式の組み合わせに従ってセッションマスタの所有権を割り当てることができる。図6に示した第1の方式では、アプリケーション440は、セッションマスタ600の所有権を、専用サーバコンピュータ420のような単一のコンピュータに割り当てている。セッションマスタ600の所有権が割り当てられたコンピュータは、アプリケーション440に命令される、セッションマスタ600に関連付けられたすべての機能に対する責務を負う。この例では、専用サーバコンピュータ420がセッションマスタを所有する。従って、各ネットワークコンピュータにおけるアプリケーション440は、セッションマスタの機能に関してクライアント−サーバ型の通信構成で動作し、サーバコンピュータ420は、複数のクライアントコンピュータ410へセッションマスタの責務に関するデータを提供する。
図6では点線を用いて示したセッションマスタ600aをクライアントコンピュータ410が所有するように図示した場合のように、アプリケーション440のオンラインセッションに参加しているコンピュータはいずれも、セッションの所有権を有することも可能であるということが理解される必要がある。さらに、アプリケーション440は、セッションマスタのいくつかのインスタンスを保持し、ここで、各セッションマスタに特定の責務が割り当てられ、かつ各セッションマスタが異なる複数のネットワークコンピュータに又は同一のコンピュータに割り当てられることが可能である。例えば図6は、2つのセッションマスタ600及び600aが存在し、その各々にアプリケーション440のオンラインセッションに関する所定の機能に対する責務が割り当てられているという状況を示している。セッションマスタ600aを有するクライアント410は、統合化されたサーバとして動作する。
図7に示したもう1つの方式では、アプリケーション440は、セッションマスタ600の所有権をいくつかのコンピュータの間に分散させている。図示された例では、クライアントコンピュータ410の両方がセッションマスタ600の所有権を共有している。このような場合では、両方のコンピュータが、セッションマスタに関連付けられた機能を実行することが可能であり、そのため、図6における複数のネットワークコンピュータはピア・ツー・ピア型の構成になる。従って、コンピュータの1つがオンラインセッションを終了して退出した場合でも、セッションマスタコンピュータの終了及び退出の結果としてセッション自体が終了することはない。
セッションマスタはまた、アプリケーション440によって決定されたときに、異なるモードで動作することもできる。専用モードと呼ばれる第1のモードでは、アプリケーション440は、セッションマスタの所有権を特定のネットワークコンピュータへ固定的に割り当てる。セッションマスタに関連付けられたアプリケーション機能は、そのコンピュータにより、かつそのコンピュータのみによって保持される。従って、この専用のセッションマスタを所有していたコンピュータが故障したとき又は電源を切ったとき、セッションマスタに関連付けられたタスクは実行されなくなる。例えば、セッションマスタが、あるオンラインゲームを行う環境の所定の態様を保持することに責務を負う場合、セッションマスタの専用の所有権を有するコンピュータがオンラインセッションから離脱すれば当該環境のこれらの態様は終わりになる。
移動モードと呼ばれるもう1つのモードでは、セッションマスタの所有権は、1つのネットワークコンピュータから、オンラインセッションに参加している1つ又は複数の他のネットワークコンピュータへ移動することができる。例えば、セッションマスタは、アプリケーション440のオンラインセッションがセッションマスタの責務に関してクライアント−サーバ型構成であるように、当初はサーバコンピュータ420によって所有されてもよい。図6にはこのことが示され、ここでは、セッションマスタ600はサーバコンピュータ420に設けられた実線のボックスとして図示されている。所定の状況が発生したとき、例えば、サーバコンピュータ420が電源を切ったとき、アプリケーション440は、セッションマスタ600の所有権を、クライアントコンピュータのうちの1つのような別のコンピュータへ移動させることができる。例えばこのようにして、セッションマスタ600は、図6に示す古典的なクライアント−サーバ型の通信構成で保持され、次いで状況に応じて別の構成へ変わることが可能である。例えば、セッションマスタ600を所有するコンピュータがセッションを終了すると、セッションマスタ600の所有権は別のコンピュータへ移動することが可能であり、又は複数のコンピュータ間で共用されることが可能である。
図8に示したフローチャートは、この処理において発生する動作を表す。本処理は、アプリケーション440のインスタンスを実行しているクライアントコンピュータ410の観点から説明されている。805の番号を有するフロー図ボックスが表す最初の動作では、コンピュータ410は、コンピュータネットワークを介してサーバコンピュータ420に接続する。コンピュータ410は、これによりアプリケーション440のオンラインセッションを確立する。この開始する側のコンピュータは、ホストコンピュータと呼ばれる。好適には、ホストコンピュータのアプリケーション440は、識別の目的で、それ自体にインデックス番号を割り当てる。同じくアプリケーション440を実行していてかつ次にサーバコンピュータ420に接続するもう1つのネットワークコンピュータも、アプリケーション440のオンラインセッションに参加することができる。
次の動作では、810の番号を有するフロー図ボックスが表すように、セッションマスタの所有権が1つ又は複数のネットワークコンピュータへ割り当てられる。ホストであるクライアントコンピュータ410は、それがオンラインセッションを確立したコンピュータであるので、当該クライアントコンピュータ410自体をセッションマスタとして指定することができる。それに代わって、サーバコンピュータ420がセッションマスタとして指定されてもよい。アプリケーションは、それ自体で、セッションマスタの機能が割り当てられる方法を決定し、ゆえに、本発明の教示する内容を逸脱することなく、セッションマスタの様々な割り当て方式を実装可能である。サーバコンピュータ420及び/又はクライアントコンピュータ410は、セッションマスタの機能の割り当てを受ける1つ又は複数のコンピュータを識別する記録を保持する。他のネットワークコンピュータがオンラインセッションに参加するためにサーバコンピュータ420に接続すると、セッションマスタコンピュータは、コンピュータのインデックス番号を用いて、他のコンピュータにセッションマスタの識別情報を通知する。
820の番号を有するフロー図ボックスが表す次の動作では、オンラインセッションの間に、セッションマスタコンピュータがセッションマスタに関連付けられた複数の機能を実行する。これらの機能は、クライアントの調停と、メッセージのフィルタリングと、オンラインゲームを行う環境の状態を保持することのような、アプリケーションに固有の機能とを含む、先に述べた責務のうちの任意のものを含むことが可能である。
次の動作は、830の番号を有する決定ボックスによって表され、ここでは、アプリケーション440は、セッションマネージャの所有権を変えるべきか否かを決定する。言い換えれば、アプリケーション440は、セッションマスタの所有権の移動が、セッションに参加しているネットワークコンピュータの間で生じるべきか否かを決定する。サーバコンピュータ420上のアプリケーション440のインスタンスは、好適には、この決定を行うことと、次いで、オンラインセッションに参加している他のネットワークコンピュータに通知することとの責務を有する。
セッションマスタの機能の所有権の変更は、現時点でセッションマスタを所有するコンピュータが、オンラインセッションを終了して退出した場合、例えば当該コンピュータがシャットダウンしたか又は故障した場合にも、発生する可能性がある。セッションマスタがオンラインセッションを終了して退出したと決定することは、ネットワークコンピュータのいずれかがセッションマスタコンピュータから通信メッセージを受信しているか否かに基づくことが可能である。予め決められた時間内に通信メッセージが受信されていない場合、又は予め決められた時間内にセッションマスタが通信メッセージに応答しない場合には、セッションマスタコンピュータはオンラインセッションを終了して退出したものとされる。このような場合、サーバコンピュータ420は、オンラインセッションに参加しているコンピュータに通知を送る。この状況では、決定ボックス830の結果は「YES」になる。
ボックス830において「YES」であるとき、システムの処理は、840の番号を有するフロー図ボックスが表す動作へ進み、ここで、サーバコンピュータ420は、そのアプリケーション440のインスタンスを用いて、セッションマスタの所有権(及び関連付けられたセッションマスタの機能に対する責務)を、異なるネットワークコンピュータへ再割り当てする。このようにして、セッションマスタの所有権とその関連付けられた責務とは別のネットワークコンピュータへと移動し、そのため、オンラインセッションは、以前のセッションマスタコンピュータの退出によって終了するのではなく、継続する。サーバコンピュータ420上のアプリケーション440は、広範な種類の方法で所有権を再割り当てするように構成されることが可能である。例えば、アプリケーション440は、セッションマスタの所有権を、単にコンピュータのインデックスのリストにおける次のネットワークコンピュータへ割り当てることができる。それに代わって、本アプリケーションは、予め決められた優先度の方式に従って特定のコンピュータにセッションマスタの所有権が割り当てられるように構成されることも可能である。
830の番号を有する決定ボックスを再び参照すると、所有権の変更が必要でなければ、結果は「NO」になる。この場合、現時点でセッションマスタを所有するネットワークコンピュータは、フロー図ボックス820が表す動作に従って、単にそのセッションマスタの所有権に係る機能を実行し続ける。この処理は、オンラインセッションが終了するまで、又は所有権の変更が発生するまで続く。
先述のように、通信構成はオンラインセッションの間に変更可能である。従って、セッションは、ピア・ツー・ピア型の通信構成で開始し、次にクライアント−サーバ型の構成へ変わることができる。各構成が適切である場合を決定するためのパラメータは、必要とされるリソースに依存し、アプリケーション440の開発者には既知であるが、例えば、オンラインセッションにおけるユーザ数、アプリケーションの必要条件、又は特定のユーザの利用可能な帯域幅を含む可能性がある。
図12は、通信構成を変更するアプリケーションの動作を示す。本動作は、アプリケーション440のインスタンスを実行しているクライアントコンピュータ410の観点から説明されている。1205の番号を有するフロー図ボックスが表す最初の動作では、コンピュータ410は、コンピュータネットワークを介してサーバコンピュータ420に接続する。コンピュータ410は、これによりアプリケーション440のオンラインセッションを確立する。この開始する側のコンピュータは、ホストコンピュータと呼ばれる。上述のように、ホストコンピュータのアプリケーション440は、好適には、識別を目的としてそれ自体にインデックス番号を割り当てる。同じくアプリケーション440を実行していてかつ次にサーバコンピュータ420に接続するもう1つのネットワークコンピュータも、アプリケーション440のオンラインセッションに参加することが可能であり、ホストコンピュータによってインデックス番号の割り当てを受ける。
次の動作では、1210の番号を有するフロー図ボックスが表すように、通信構成が決定される。この決定は、典型的にはオンラインセッションの参加者数の関数であるが、動作に対するアプリケーションの必要条件によって、又はアプリケーションが利用可能な通信帯域幅によって決定される場合もある。アプリケーションは次に、ユーザがオンラインセッションを終了してアプリケーションを終えるまでその動作を実行する。この継続される動作は、1220の番号を有するフロー図ボックスによって表されている。
1230の番号を有する決定ボックスは、通信構成の変化をチェックすることを表す。このチェックは、アプリケーションが利用可能な帯域幅をチェックする場合のように定期的な基準で実行される場合もあれば、あるいは、所望に応じてオンラインセッションの開始時に実行される場合もある。さらに、チェックは、オンラインセッションの間に受信される要求又はコマンドによって開始されることが可能である。どの方式を使用しまたどの決定パラメータを適用するのかということについての選択は、アプリケーション開発者によって行われる。
通信構成の変更が必要とされず、決定ボックス1230の結果が「NO」になると、ボックス1220へ戻る矢印が示すように、現行の通信構成におけるアプリケーションの動作が継続される。構成の変更が要求され、決定ボックス1230の結果が「YES」になると、ボックス1240で通信構成の変更が実施され、次いで1220でアプリケーションの動作が継続される。この処理は、オンラインセッションが終了するまで、又は通信構成が次にチェックされて変更されるまで続く。通信構成を変更する機構は、ネットワークコンピュータにより使用されるオペレーティングシステムに依存する。当業者は、さらなる説明なしに、通信構成の変更を達成する方法を理解するであろう。
アプリケーション440は、好適には、アプリケーション440で使用されるオブジェクト及び通信メッセージの定義のライブラリを提供するソフトウェア開発キット(software develop kit:SDK)を用いて開発される。ソフトウェア開発キットは所定のアプリケーションインターフェースを含み、このアプリケーションインターフェースを介して、アプリケーションはSDKを用いて開発され、ネットワークシステム400等のネットワークシステム上で動作可能になる。アプリケーションインターフェースは、サーバ420等の中央のネットワークサーバ内に存在することが可能であり、アプリケーション440を有するネットワークコンピュータは、アプリケーションのオンラインセッションを動作させるために、この中央のネットワークサーバにログオンすることができる。SDKによって提供されるオブジェクト及びメッセージのタイプを用いることにより、アプリケーション440は、上述の機能を包含するように開発されることが可能である。SDKは、好適にはオブジェクト定義の構造を含み、このオブジェクト定義の構造は、アプリケーション440によって利用されるオブジェクトの、クライアントに基づく定義を提供する。オブジェクト定義は、各オブジェクトに関連付けられる複数の特性であって、コンピュータネットワークを介してクライアントとのインタラクションを実行するためにアプリケーションによって利用される特性を含む。
SDKを用いてアプリケーション440が開発されると、アプリケーション440は1つ又は複数のネットワークコンピュータへロードされることが可能になり、オンラインセッションは図9に示した動作に従って確立できるようになる。910の番号を有するフロー図ボックスが表す第1の動作では、アプリケーション440がロードされているネットワークコンピュータが、そのアプリケーションインターフェースソフトウェアをメモリに含むネットワークコンピュータに接続する。例えば、図4に示したネットワークシステム400のうちの1つ又は複数のクライアントコンピュータ410,412は、それらの各メモリにロードされたアプリケーション440を有することが可能であり、サーバコンピュータ420は、アプリケーションインターフェースを含むことが可能である。このような場合、クライアントコンピュータ410,412は、ネットワーク430を介してサーバコンピュータ420との通信接続を確立する。
920の番号を有するフロー図ボックスが表す次の動作では、アプリケーション440は、アプリケーションインターフェースのライブラリにおいて利用可能なオブジェクト定義に従って、複数のオブジェクトを登録する。アプリケーション440はまた、920の番号を有するフロー図ボックスが表すように、オンラインセッションの間に利用される任意の複数のメッセージフィルタも登録する。
950の番号を有するフロー図ボックスが表す次の動作では、アプリケーション440はセッションマスタを定義し、セッションマスタの所有権をネットワークコンピュータの1つに割り当てる。セッションマスタの所有権は、1つのコンピュータに割り当てられることも可能であり、あるいは複数のコンピュータに割り当てられることも可能である。アプリケーション440はまた、セッションマスタの所有権が特定のコンピュータ専用のものとなるのか否か、又は図8を参照して上述した方法で所有権が他のコンピュータに対して移動される(マイグレーションされる)場合があるか否かについて指定する。
この動作の間、アプリケーション440は、オンラインセッションに参加するネットワークコンピュータの各々にクライアントインデックスを割り当て、また、上述されたインデックスのテーブルも確立する。アプリケーション440は、サーバコンピュータへログオンする第1のネットワークコンピュータがセッションマスタとなりかつまた1又はゼロのインデックスを受け取るように構成されることが可能である。その後で、ログオンする後続のネットワークコンピュータは、利用可能な次に続くインデックスを受け取る。1つ又は複数のセッションマスタの所有権が確立された後で、950の番号を有するフロー図ボックスが表すように、アプリケーション440のオンラインセッションが開始される。
先に述べた通り、図4のブロック図に示したネットワークコンピュータは、コンピュータネットワークシステム400のノードを構成する。図10は、図1のシステム400における1つのコンピュータのブロック図であり、コンピュータの1つに含まれるハードウェア構成要素を示している。当業者は、装置410及び420がすべて同様のコンピュータの構造を有することが可能であるということ、あるいはここに記述された能力と整合性のある代替の構造を有することが可能であるということを理解するであろう。
図10は、ネットワークコンピュータのうちの任意のものを構成することも可能であるような、例示的なコンピュータ1000を示している。各コンピュータ1000は、米国カリフォルニア州サンタクララのインテル コーポレーション(Intel Corporation)から入手可能な「ペンティアム(Pentium)」マイクロプロセッサと関連付けられた集積回路チップとのような、中央処理装置(central processor unit:CPU)1002の制御下で動作する。コンピュータのユーザは、キーボード及びコンピュータマウス1004からコマンド及びデータを入力することができ、ディスプレイ1006において入力及びコンピュータの出力を見ることができる。ディスプレイは、典型的にはビデオモニタ又はフラットパネルディスプレイである。コンピュータ1000はまた、ハードディスクドライブ等の直接アクセス記憶装置(direct access storage device:DASD)1008を含む。メモリ1010は、典型的には揮発性半導体ランダムアクセスメモリ(RAM)を備える。各コンピュータは、好適には、プログラム製品記憶装置1014を受容するプログラム製品読取装置1012を含み、プログラム製品読取装置1012はこのプログラム製品記憶装置1014からデータを読み取ることができる(また、オプションで、プログラム製品読取装置1012はこのプログラム製品記憶装置1014にデータを書き込むことができる)。プログラム製品読取装置は、例えばディスクドライブを備えることが可能であり、プログラム製品記憶装置は、磁気フロッピーディスク、CD−Rディスク、CD−RWディスク又はDVDディスク等の、着脱可能な記憶媒体を備えることが可能である。
各コンピュータ1000は、ネットワーク1020とコンピュータとの間の接続1022を介した通信を可能にするネットワークインターフェース1018を用いて、(インターネット又はイントラネットのような)コンピュータネットワーク1020を介して他のコンピュータと通信することができる。ネットワークインターフェース1018は、典型的には、例えばネットワークインターフェースカード(NIC)を備えるか、あるいは様々なネットワークを介した通信を可能にするモデムを備えている。
CPU1002は、コンピュータ1000のメモリ1010に一時的に記憶される複数のプログラミングステップの制御下で動作する。上記プログラミングステップが実行されると、コンピュータはその機能を実行する。このように、プログラミングステップは、アプリケーション440の機能を実施する。プログラミングステップは、DASD1008から受信されること、プログラム製品記憶装置1014を介して受信されること、又はネットワーク接続1022を介して受信されることが可能である。プログラム製品記憶装置ドライブ1012はプログラム製品1014を収容し、そこに記録された複数のプログラミングステップを読み取り、そのプログラミングステップを、CPU1002による実行のためにメモリ1010へ転送することができる。先に述べた通り、プログラム製品記憶装置は、磁気フロッピーディスク及びCD−ROM記憶ディスクを含む、コンピュータが読み取り可能な複数の命令を記憶している複数の着脱可能な媒体のうちの任意のものを備えることが可能である。他の適切なプログラム製品記憶装置は、磁気テープ及び半導体メモリチップを含むことが可能である。このようにして、本発明による動作に必要な処理ステップは、プログラム製品上に具現されることが可能である。
それに代わって、プログラムステップは、ネットワーク1020を介して受信され、動作メモリ1010の中に格納されることが可能である。このネットワークの方法では、コンピュータは、当業者にはさらなる説明なしに理解されるであろう公知の方法によって、ネットワーク接続1022を介してネットワーク通信が確立された後に、ネットワークインターフェース1018を介して、プログラムステップを含むデータを受信してメモリ1010の中に格納する。次いで、上記プログラムステップはCPU1002によって実行され、これにより、コンピュータ処理が構成される。
図4に示したネットワークシステム400のうちのネットワークコンピュータはすべて、図10に示したものと同様の構造を有することが可能であり、よって、図10のコンピュータ1000に関して説明された詳細事項が、システム400のすべてのコンピュータに当てはまるように解釈されるものであるということは、理解される必要がある。コンピュータが図4に示した他のコンピュータと通信できかつここに記述された機能をサポートできる限り、ネットワークコンピュータはいずれも代替の構造を有することが可能であるということは理解される必要がある。
例えば、図11を参照すると、クライアントコンピュータ420は、ビデオゲームシステム1100のようなコンピュータエンタテインメントシステムを備えることが可能である。図11は、ビデオゲームシステム1100の例示的なハードウェア構成のブロック図である。
ビデオゲームシステム1100は、メインメモリ1105に関連付けられた中央処理装置(central processing unit:CPU)1100を含む。CPU1100は、OS−ROM1160に記憶された複数のプログラミングステップ、又はゲームプログラム記憶媒体からメインメモリ1105へ転送された複数のプログラミングステップの制御下で動作する。CPU1100は、これらのプログラミングステップに従って情報を処理しかつ複数の命令を実行するように構成される。
CPU1100は、専用バス1125を介して入力/出力プロセッサ(input/output processor:IOP)1120と通信可能であるように接続される。IOP1120は、オペレーティングシステム等の複数のプログラム命令を記憶する不揮発性メモリで構成されたOS ROM1160に、CPU1100を接続する。上記命令は、好適には、メインユニット110の起動時にIOP1120を介してCPUに転送される。
CPU1100は、専用バス1115を介してグラフィックス処理装置(graphics processing unit:GPU)1110と通信可能であるように接続される。GPU1110は、CPU1100から受信される複数の命令に従って描画処理を実行しかつ画像を形成する(定式化する)ように構成された描画プロセッサである。例えば、GPU1110は、CPU1100によって生成されかつCPU1100から受信されるディスプレイリストに基づいてグラフィックス画像をレンダリングすることができる。GPUは、グラフィックスデータを記憶するためのバッファを含んでもよい。GPU1110は、画像をAV出力装置175へ出力する。
IOP1120は、IOPメモリ1130に記憶された複数の命令に従って、CPU1100と複数の周辺の構成要素との間におけるデータの交換を制御する。上記周辺の構成要素は、1つ又は複数の入力コントローラ1122、メモリカード1140、USB1145、及びIEEE1394シリアルバス1150を含んでもよい。さらに、バス1155が、IOP1120と通信可能であるように接続される。バス1155は、OS ROM1160、サウンドプロセッサ装置(sound processor unit:SPU)1165、光ディスク制御装置1175、及びハードディスクドライブ(HDD)1180を含む、いくつかの追加の構成要素にリンクされる。
SPU1165は、CPU1100及びIOP1120から受信されるコマンドに従って、音楽、音響効果及び音声等のサウンドを生成するように構成される。SPU1165は、波形データを記憶するサウンドバッファを含んでいてもよい。SPU1165はサウンド信号を生成し、かつ当該信号をスピーカに送信する。
ディスク制御ユニット1175は、例えば、磁気フロッピーディスク、光CD−ROMディスク、CD−Rディスク、CD−RWディスク、DVDディスク又はこれらに類似するもの等の、着脱可能な記憶媒体を受容する光ディスクドライブを備えることが可能な、プログラム読取装置を制御するように構成される。
メモリカード1140は、CPU1100がデータを書き込んで記憶することのできる記憶媒体を備えることが可能である。好適には、メモリカード1140はIOP1120に対して抜き差しされることが可能である。ユーザは、メモリカード1140を用いてデータを記憶するか又は保存することができる。さらに、ビデオゲームシステム1100には、好適には、データを書き込んで記憶することのできる少なくとも1つのハードディスクドライブ(HDD)1180が設けられる。
IEEE1394シリアルバス1150又はユニバーサルシリアルバス(USB)1145インターフェース等のデータI/Oインターフェースは、好適には、IOP1120と通信可能であるように接続され、そのため、図4のネットワーク430に対するようなビデオゲームシステム1100へデータが転送されかつこのビデオゲームシステム1100からデータが転送されることを可能にする。
以上、マルチユーザのネットワークアプリケーションに対する動的な構成切り換え方式のためのシステム及び方法について説明した。本方式は、ネットワーク化されたコンピュータ間におけるピア・ツー・ピア型の通信関係は、クライアント−サーバ型のネットワーク通信に比べてより高速な通信の優位点をもたらすという事実を利用しているが、その一方で、本方式によれば、ピア・ツー・ピア型の関係において、大規模なゲームを行うことのようないくつかのアプリケーションは、ピア・ツー・ピアを非実用的にするほどの帯域幅を必要とするものがあるということも認識される。例えば、1ゲームにつきおそらくは3名乃至6名以下だけ存在する競争者によるスポーツゲームは、ピア・ツー・ピア型のモードに適する可能性があるが、何百名ものプレーヤを含む可能性のあるロールプレイングゲーム又はアクションゲームは、ピア・ツー・ピア型には不向きであり、クライアント−サーバ型のモードで実行されなければならない。本発明の構成切り換え機能は、ユーザがアプリケーションのオンラインセッションのためのアプリケーションサーバにログオンされた状態で、ピア・ツー・ピア型アーキテクチャとクライアント−サーバ型アーキテクチャとの間での動的な変更を許容する。
例えば、あるゲームに参加しているゲームプレーヤはすべて、ゲーム管理のためにゲームサーバと通信することができ、また、ゲームデータ及びプレーヤデータを共有するために他のゲームプレーヤらと通信する。ゲームプレイの間、プレーヤらは、ピア・ツー・ピア型の通信とクライアント−サーバ型の通信とを切り換えて、他のゲームプレーヤらとの間で情報を伝送することができる。上述のように、ゲーム構成は、このような方法で、ゲームを行うクライアントの1つがゲームサーバ機能を実行している統合化されたサーバと、ゲームプレーヤらの各々がゲーム状態の情報を格納して他のゲームプレーヤらと通信するピア・ツー・ピアとの間で切り換えることが可能である。また本システムは、ピア・ツー・ピアと、統合化されたサーバと、ゲームサーバの構成との間で切り換えることもできる。これにより、ネットワークの帯域幅及びゲームアプリケーションが適切であればピア・ツー・ピア型によるより高速な通信を使用し、ネットワーク状況が必要とする場合はクライアント−サーバ型を使用することができる。
以上、本発明の意味するところを伝えることができるように、本発明を現時点での好適な実施形態に関して説明した。しかしながら、ここには特に記載していないが本発明を適用可能なシステム及びアプリケーションに対する多数の構成が存在する。従って、本発明はここに記載された特定の実施形態に限定されて捉えられるべきものではなく、本発明は、一般にマルチユーザアプリケーションに関する広範な適用可能性を有するということは理解される必要がある。よって、添付の請求の範囲内にある変更物、変形物又は等価な配置及び実装は、すべて本発明の範囲内にあるものとされる必要がある。
クライアント−サーバ型ネットワークの通信構成で配置されたコンピュータネットワークを示す図である。 統合化されたネットワーク通信サーバの構成で配置されたコンピュータネットワークを示す図である。 ピア・ツー・ピア型ネットワークの通信構成で配置されたコンピュータネットワークを示す図である。 本発明に係る構成されたマルチユーザアプリケーションが実行されるコンピュータネットワークシステムを示す図である。 図4に示すように構成されたマルチユーザアプリケーション用のコンピュータのインデックス及びセッションマスタ情報を含むデータ構造を示す図である。 サーバコンピュータ又はクライアントコンピュータがセッションマスタとして指定される第1のタイプの通信構成でマルチユーザアプリケーションが構成されるコンピュータネットワークシステムを示す図である。 複数のクライアントコンピュータがセッションマスタとして指定されるもう1つのタイプの通信構成でマルチユーザアプリケーションが構成されるコンピュータネットワークシステムを示す図である。 セッションマスタの所有権を再割り当てするマルチユーザアプリケーションに関連付けられた動作を示すフロー図である。 マルチユーザアプリケーションがオンラインセッションを確立することに関連付けられた動作ステップを示すフロー図である。 図4に示したネットワークにおけるコンピュータの、ハードウェア構成要素を示すブロック図である。 図4に示したネットワークにおけるコンピュータエンタテインメントシステムの、ハードウェア構成要素を示すブロック図である。 アプリケーションの通信構成を変更するシステムの動作を示すフロー図である。

Claims (29)

  1. マルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
    マルチユーザアプリケーションのオンラインセッションを確立することを含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも2つのコンピュータを含み、
    上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第1の通信構成に設定することと、
    上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第1の構成から、上記第1の通信構成とは異なる第2の通信構成に変更することとを含む方法。
  2. 上記第1の通信構成はクライアント−サーバ型の構成である請求項1記載の方法。
  3. 上記第1の通信構成はピア・ツー・ピア型の構成である請求項1記載の方法。
  4. 上記マルチユーザアプリケーションの実行に関連付けられた機能に対する責務を、上記オンラインセッションに参加している第1のコンピュータに割り当てることと、
    次に、上記オンラインセッションにおける状況の変化に基づいて、上記機能に対する責務を第2のコンピュータに再割り当てすることとをさらに含む請求項1記載の方法。
  5. 上記オンラインセッションにおける状況の変化は上記オンラインセッションの上記通信構成の変化を含む請求項4記載の方法。
  6. 上記マルチユーザアプリケーションの実行に関連付けられた他の機能に対する責務を、上記オンラインセッションに参加している第2のコンピュータに割り当てることをさらに含む請求項4記載の方法。
  7. 上記オンラインセッションは、上記コンピュータネットワークに通信可能にリンクされる専用のサーバコンピュータを介して確立される請求項1記載の方法。
  8. 上記オンラインセッションには複数のコンピュータが含まれ、上記コンピュータの少なくとも1つはピア・ツー・ピア型の通信構成を用いて他のコンピュータと通信し、上記コンピュータの少なくとも1つはクライアント−サーバ型の通信構成を用いて他のコンピュータと通信している請求項1記載の方法。
  9. マルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
    第1のコンピュータ上でソフトウェアアプリケーションの第1のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立することと、
    第2のコンピュータ上で上記ソフトウェアアプリケーションの第2のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加することと、
    上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第1のコンピュータに割り当てることと、
    上記所定の機能を実行する責務を上記第1のコンピュータ以外のコンピュータに再割り当てすることとを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づく方法。
  10. 上記ソフトウェアアプリケーションの上記オンラインセッションにおける上記状況の変化は、上記第1のコンピュータが上記オンラインセッションを終了して退出することを含む請求項9記載の方法。
  11. 上記第2のコンピュータが上記機能に対する責務を負うことを記録する記録を上記アプリケーションが保持することをさらに含む請求項9記載の方法。
  12. 上記ソフトウェアアプリケーションの上記オンラインセッションに関連する他の機能を実行する責務を、上記第2のコンピュータに割り当てることをさらに含む請求項9記載の方法。
  13. 上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第1の通信構成に設定することと、
    上記オンラインセッションの通信構成を、上記第1の構成から、上記第1の通信構成とは異なる第2の通信構成に変更することとをさらに含む請求項9記載の方法。
  14. 上記第1の通信構成はクライアント−サーバ型の構成である請求項13記載の方法。
  15. 上記第1の通信構成はピア・ツー・ピア型の構成である請求項14記載の方法。
  16. コンピュータネットワーク上で動作するマルチユーザアプリケーションのオンラインセッションを動的に構成する方法であって、
    上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも2つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立することと、
    上記コンピュータの1つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定することと、
    上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出することと、
    第2のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第2のコンピュータが負うように、上記セッションマスタコンピュータとして指定することとを含む方法。
  17. 上記第1のコンピュータと上記第2のコンピュータとはまずクライアント−サーバ型の通信構成で配置され、上記第1のコンピュータはサーバコンピュータであり、かつ上記第2のコンピュータは上記第1のコンピュータに関連したクライアントコンピュータである請求項16記載の方法。
  18. 上記アプリケーションはまた、上記第2のコンピュータと第3のコンピュータがピア・ツー・ピア型の通信構成になるように、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を上記第2のコンピュータと共有するセッションマスタコンピュータとして上記第3のコンピュータを指定する請求項16記載の方法。
  19. マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは、複数のプログラム命令を実行しかつデータセットを受信する1つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
    マルチユーザアプリケーションのオンラインセッションを確立する動作を含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも2つのコンピュータを含み、
    上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第1の通信構成に設定する動作と、
    上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第1の構成から、上記第1の通信構成とは異なる第2の通信構成に変更する動作とを含む、複数の動作を上記システムに実行させるシステム。
  20. 上記第1の通信構成はクライアント−サーバ型の構成である請求項19記載のシステム。
  21. 上記第1の通信構成はピア・ツー・ピア型の構成である請求項19記載のシステム。
  22. 上記システムは、上記オンラインセッションに含まれる複数のコンピュータを含み、上記コンピュータの少なくとも1つはピア・ツー・ピア型の通信構成を用いて他のコンピュータと通信し、上記コンピュータの少なくとも1つはクライアント−サーバ型の通信構成を用いて他のコンピュータと通信している請求項19記載のシステム。
  23. マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
    マルチユーザアプリケーションのオンラインセッションを確立することを含み、上記オンラインセッションは、上記マルチユーザアプリケーションのインスタンスをそれぞれ実行しかつコンピュータネットワークを介して通信可能にリンクされる少なくとも2つのコンピュータを含み、
    上記マルチユーザアプリケーションの上記オンラインセッションを、上記コンピュータが互いに通信する第1の通信構成に設定することと、
    上記オンラインセッションの間に、上記オンラインセッションの通信構成を、上記第1の構成から、上記第1の通信構成とは異なる第2の通信構成に変更することとを含むプログラム製品。
  24. 上記第1の通信構成はクライアント−サーバ型の構成である請求項23記載のプログラム製品。
  25. 上記第1の通信構成はピア・ツー・ピア型の構成である請求項23記載のプログラム製品。
  26. マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは、複数のプログラム命令を実行しかつデータセットを受信する1つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
    第1のコンピュータ上でソフトウェアアプリケーションの第1のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立する動作と、
    第2のコンピュータ上で上記ソフトウェアアプリケーションの第2のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加する動作と、
    上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第1のコンピュータに割り当てる動作と、
    上記所定の機能を実行する責務を上記第1のコンピュータ以外のコンピュータに再割り当てする動作とを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づく、複数の動作を上記システムに実行させるシステム。
  27. マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
    第1のコンピュータ上でソフトウェアアプリケーションの第1のインスタンスから要求を受信して、上記ソフトウェアアプリケーションのオンラインセッションを確立することと、
    第2のコンピュータ上で上記ソフトウェアアプリケーションの第2のインスタンスから要求を受信して、上記ソフトウェアアプリケーションの上記オンラインセッションに参加することと、
    上記ソフトウェアアプリケーションの上記オンラインセッションに関連する所定の機能を実行する責務を、上記第1のコンピュータに割り当てることと、
    上記所定の機能を実行する責務を上記第1のコンピュータ以外のコンピュータに再割り当てすることとを含み、上記再割り当てすることは、上記ソフトウェアアプリケーションの上記オンラインセッションにおける状況の変化に基づくプログラム製品。
  28. マルチユーザアプリケーションのオンラインセッションを動的に構成するシステムであって、上記システムは複数のプログラム命令を実行しかつデータセットを受信する1つ又は複数のプロセッサを備え、上記複数のプログラム命令は、
    上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも2つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立する動作と、
    上記コンピュータの1つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定する動作と、
    上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出する動作と、
    第2のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第2のコンピュータが負うように、上記セッションマスタコンピュータとして指定する動作とを含む、複数の動作を上記システムに実行させるシステム。
  29. マルチユーザアプリケーションのオンラインセッションを動的に構成する方法を実行するための、コンピュータが読み取り可能な媒体に記録された複数のプログラムステップを実行するコンピュータシステムにおいて使用するためのプログラム製品であって、上記複数のプログラムステップは、
    上記アプリケーションをそれぞれ実行している上記コンピュータネットワーク上の少なくとも2つのコンピュータの間に通信接続を確立し、これにより上記マルチユーザアプリケーションのオンラインセッションを確立することと、
    上記コンピュータの1つを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を負うセッションマスタコンピュータとして指定することと、
    上記セッションマスタコンピュータが上記オンラインセッションを終了して退出したことを検出することと、
    第2のコンピュータを、上記マルチユーザアプリケーションに関連付けられた機能を管理する責務を当該第2のコンピュータが負うように、上記セッションマスタコンピュータとして指定することとを含むプログラム製品。
JP2004508034A 2002-05-17 2003-03-18 ネットワーク通信アーキテクチャ間の構成の動的な切り換え Expired - Fee Related JP3990400B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US38171502P 2002-05-17 2002-05-17
US10/211,075 US7421471B2 (en) 2002-05-17 2002-07-31 Configuration switching: dynamically changing between network communication architectures
PCT/US2003/008663 WO2003100651A1 (en) 2002-05-17 2003-03-18 Dynamically switching configuration between network communication architectures

Publications (2)

Publication Number Publication Date
JP2005524920A true JP2005524920A (ja) 2005-08-18
JP3990400B2 JP3990400B2 (ja) 2007-10-10

Family

ID=29423164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004508034A Expired - Fee Related JP3990400B2 (ja) 2002-05-17 2003-03-18 ネットワーク通信アーキテクチャ間の構成の動的な切り換え

Country Status (7)

Country Link
US (2) US7421471B2 (ja)
EP (3) EP2246792B1 (ja)
JP (1) JP3990400B2 (ja)
KR (1) KR100638072B1 (ja)
CN (1) CN1312607C (ja)
TW (1) TWI222804B (ja)
WO (1) WO2003100651A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008049169A (ja) * 2006-08-24 2008-03-06 Nhn Corp 多重接続オンラインゲームにおけるp2pメッセージ伝送システム及びその方法
JP2009522028A (ja) * 2006-01-06 2009-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 多人数参加型オンライン・ゲーム
US7792900B2 (en) 2007-02-21 2010-09-07 Sony Corporation Overlay network system and service providing method
JP2011008709A (ja) * 2009-06-29 2011-01-13 Brother Industries Ltd 情報処理装置、コンテンツ配信システム、コンテンツ配信制御方法及びプログラム
JP2015537267A (ja) * 2012-09-13 2015-12-24 テンセント テクノロジー (シェンジェン) カンパニー リミテッド 情報管理方法及びデバイス
JP2018511896A (ja) * 2015-02-03 2018-04-26 グーグル エルエルシー クライアント・デバイスと第1のスクリーン・デバイスの間の探索および接続プロトコルの相互運用性
JP2020004392A (ja) * 2019-05-08 2020-01-09 株式会社バーチャルキャスト データ送信装置、端末およびプログラム

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7606920B2 (en) * 2002-05-17 2009-10-20 Sony Computer Entertainment America Inc. Method and apparatus for controlling communication ports for an online session of a multi-user application by associating each of the ports with a protocol and designating an active port
US8560707B2 (en) 2007-10-05 2013-10-15 Sony Computer Entertainment America Llc Seamless host migration based on NAT type
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US9063633B2 (en) * 2006-03-30 2015-06-23 Arjuna Indraeswaran Rajasingham Virtual navigation system for virtual and real spaces
US7634569B2 (en) * 2003-04-23 2009-12-15 Microsoft Corporation Match making based on proximity measures between devices
BRPI0412595A8 (pt) * 2003-07-16 2017-12-26 Skype Ltd Sistema de telefonia não hierárquico, método para operar um sistema de telefonia, e, sofware
US8010633B2 (en) 2003-10-20 2011-08-30 Sony Computer Entertainment America Llc Multiple peer-to-peer relay networks
US20060135259A1 (en) * 2004-12-17 2006-06-22 Nokia Corporation System, game server, terminal, and method for game event notification in a multiplayer game
CN1798049A (zh) 2004-12-29 2006-07-05 华为技术有限公司 一种移动在线游戏系统和方法
US7624290B2 (en) * 2005-03-22 2009-11-24 Sony Corporation Power-save control for network master device
US7692682B2 (en) 2005-04-28 2010-04-06 Apple Inc. Video encoding in a video conference
US7864209B2 (en) * 2005-04-28 2011-01-04 Apple Inc. Audio processing in a multi-participant conference
US7817180B2 (en) * 2005-04-28 2010-10-19 Apple Inc. Video processing in a multi-participant video conference
US7899170B2 (en) * 2005-04-28 2011-03-01 Apple Inc. Multi-participant conference setup
US8861701B2 (en) * 2005-04-28 2014-10-14 Apple Inc. Multi-participant conference adjustments
US7949117B2 (en) * 2005-04-28 2011-05-24 Apple Inc. Heterogeneous video conferencing
US20070094325A1 (en) * 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
JP5005210B2 (ja) * 2005-11-11 2012-08-22 任天堂株式会社 ネットワークゲームシステム、ネットワークゲームプログラムおよびネットワーク構築方法
US7945689B2 (en) * 2007-03-23 2011-05-17 Sony Corporation Method and apparatus for transferring files to clients using a peer-to-peer file transfer model and a client-server transfer model
US20160112262A1 (en) * 2014-10-18 2016-04-21 Weaved, Inc. Installation and configuration of connected devices
US10637724B2 (en) 2006-09-25 2020-04-28 Remot3.It, Inc. Managing network connected devices
US9712486B2 (en) 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
US11184224B2 (en) 2006-09-25 2021-11-23 Remot3.It, Inc. System, method and compute program product for accessing a device on a network
US8788076B2 (en) * 2007-03-16 2014-07-22 Savant Systems, Llc Distributed switching system for programmable multimedia controller
US8296385B2 (en) * 2007-04-23 2012-10-23 Lenovo (Singapore) Pte. Ltd. Apparatus and method for selective engagement in software distribution
GB2450473A (en) * 2007-06-04 2008-12-31 Sony Comp Entertainment Europe A Server in a Peer to Peer system selecting and notifying a device that it is to become a member of a peer group
US8180295B2 (en) * 2007-07-19 2012-05-15 Sony Computer Entertainment Inc. Bluetooth enabled computing system and associated methods
US8825012B2 (en) * 2007-09-14 2014-09-02 Unwired Planet, Llc User data notification in a mobile communications system
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
US9332068B2 (en) * 2007-11-29 2016-05-03 Ooma, Inc. Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
US7904537B2 (en) * 2008-01-11 2011-03-08 Microsoft Corporation Architecture for online communal and connected experiences
EP2096798B1 (en) * 2008-02-29 2012-12-12 Accenture Global Services Limited Dynamic profile system for resource access control
US20110055315A1 (en) * 2009-09-03 2011-03-03 Flipside5, Inc. System and Method for Providing Connections Between Devices on a Network
US9306803B2 (en) * 2009-10-30 2016-04-05 Hewlett Packard Enterprise Development Lp Methods and devices for implementing configuration synchronization
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
CN102118263B (zh) * 2010-01-06 2015-05-20 中兴通讯股份有限公司 配置信息的发布方法及系统
US8433755B2 (en) 2010-04-07 2013-04-30 Apple Inc. Dynamic designation of a central distributor in a multi-participant conference
US8782014B2 (en) * 2010-05-14 2014-07-15 International Business Machines Corporation Data integrity mechanism for external storage devices
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8711736B2 (en) 2010-09-16 2014-04-29 Apple Inc. Audio processing in a multi-participant conference
TWI461907B (zh) * 2012-10-11 2014-11-21 Mstar Semiconductor Inc 配合多個應用程式之整合系統和測試系統
US9894185B2 (en) * 2014-12-16 2018-02-13 Software Ag System and method for condition-based application logic shifting between a client and a server
JP6755843B2 (ja) 2017-09-14 2020-09-16 株式会社東芝 音響処理装置、音声認識装置、音響処理方法、音声認識方法、音響処理プログラム及び音声認識プログラム
CN111480317B (zh) * 2017-12-15 2024-06-18 诺基亚技术有限公司 核心网络中的无状态网络功能支持
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
CN112494935B (zh) * 2020-12-14 2023-10-17 咪咕互动娱乐有限公司 一种云游戏平台池化方法、电子设备及存储介质

Family Cites Families (43)

* 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
US5630757A (en) 1994-11-29 1997-05-20 Net Game Limited Real-time multi-user game communication system using existing cable television infrastructure
US5682139A (en) 1995-06-07 1997-10-28 General Electric Company Railcar location using mutter networks and locomotive transmitter during transit
US6219045B1 (en) 1995-11-13 2001-04-17 Worlds, Inc. Scalable virtual world chat client-server system
US5704032A (en) 1996-04-30 1997-12-30 International Business Machines Corporation Method for group leader recovery in a distributed computing environment
US5841980A (en) 1996-05-15 1998-11-24 Rtime, Inc. Distributed system for communication networks in multi-user applications
US5838909A (en) 1996-05-23 1998-11-17 Sandcastle, Inc. Reducing latency when synchronizing access to a multi-user database over a network
US6125122A (en) * 1997-01-21 2000-09-26 At&T Wireless Svcs. Inc. Dynamic protocol negotiation system
US6152824A (en) 1997-03-06 2000-11-28 Mpath Interactive, Inc. Online gaming architecture
US6041312A (en) 1997-03-28 2000-03-21 International Business Machines Corporation Object oriented technology framework for accounts receivable and accounts payable
US5984787A (en) 1997-06-17 1999-11-16 International Business Machines Corp. Method and system for multi-user game recovery
US6003075A (en) * 1997-07-07 1999-12-14 International Business Machines Corporation Enqueuing a configuration change in a network cluster and restore a prior configuration in a back up storage in reverse sequence ordered
US5893106A (en) 1997-07-11 1999-04-06 International Business Machines Corporation Object oriented server process framework with interdependent-object creation
US5987376A (en) 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
JP3831092B2 (ja) * 1997-09-19 2006-10-11 富士通株式会社 サーバ
US6070190A (en) * 1998-05-11 2000-05-30 International Business Machines Corporation Client-based application availability and response monitoring and reporting for distributed computing environments
US6463078B1 (en) 1998-07-22 2002-10-08 Microsoft Corporation Method for switching protocols transparently in multi-user applications
US6931446B1 (en) 1998-12-14 2005-08-16 International Business Machines Corporation Methods, systems and computer program products for policy based network control of characteristics of user sessions
US6519639B1 (en) 1999-07-21 2003-02-11 Microsoft Corporation System and method for activity monitoring and reporting in a computer network
US6561811B2 (en) 1999-08-09 2003-05-13 Entertainment Science, Inc. Drug abuse prevention computer game
US6487678B1 (en) 1999-08-31 2002-11-26 International Business Machines Corporation Recovery procedure for a dynamically reconfigured quorum group of processors in a distributed computing system
US6748420B1 (en) 1999-11-23 2004-06-08 Cisco Technology, Inc. Methods and apparatus for providing shared access to an application
US7337210B2 (en) 2000-01-13 2008-02-26 International Business Machines Corporation Method and apparatus for determining availability of a user of an instant messaging application
JP3512386B2 (ja) 2000-01-20 2004-03-29 株式会社スクウェア・エニックス オンライン複合サービス提供処理方法およびオンライン複合サービス提供処理システム
JP2004514189A (ja) 2000-02-17 2004-05-13 アクレイム エンターテインメント インコーポレイテッド マルチプレーヤーのコンピュータゲーム、システム及び方法
KR100505281B1 (ko) 2000-02-18 2005-08-04 (주)아이콤 소프트 비디오게임 론칭 서버와 이를 이용한 네트워크를 통한비디오게임 시스템 및 방법
US7240093B1 (en) * 2000-02-29 2007-07-03 Microsoft Corporation Use of online messaging to facilitate selection of participants in game play
WO2001082678A2 (en) 2000-05-02 2001-11-08 Sun Microsystems, Inc. Cluster membership monitor
US7056217B1 (en) 2000-05-31 2006-06-06 Nintendo Co., Ltd. Messaging service for video game systems with buddy list that displays game being played
US6676521B1 (en) 2000-08-18 2004-01-13 Cariocas, Inc. Enhanced online game mechanisms
US7299403B1 (en) 2000-10-11 2007-11-20 Cisco Technology, Inc. Methods and apparatus for obtaining a state of a browser
JP3646983B2 (ja) 2000-10-19 2005-05-11 株式会社ソニー・コンピュータエンタテインメント 待ち順番表示方法、待ち順番表示方法のプログラム、待ち順番表示方法のプログラムが記録された記録媒体、及びコンテンツ配信システム
SE520129C2 (sv) 2000-10-27 2003-05-27 Terraplay Systems Ab Kommunikationsinfrastrukturanordning i och en datorläsbar programprodukt för ett databearbetningssystem för fleranvändarapplikationer
US7403980B2 (en) * 2000-11-08 2008-07-22 Sri International Methods and apparatus for scalable, distributed management of virtual private networks
JP2002157206A (ja) 2000-11-17 2002-05-31 Square Co Ltd 電子会議参加方法およびそのシステム
US7409061B2 (en) 2000-11-29 2008-08-05 Noatak Software Llc Method and system for secure distribution of subscription-based game software
US6761636B2 (en) 2001-01-16 2004-07-13 Fucom Company, Ltd. Real time data exchange system
US7107312B2 (en) 2001-02-06 2006-09-12 Lucent Technologies Inc. Apparatus and method for use in a data/conference call system for automatically collecting participant information and providing all participants with that information for use in collaboration services
JP3429286B2 (ja) 2001-05-29 2003-07-22 株式会社コナミコンピュータエンタテインメント大阪 ネットゲームシステム及びネットゲーム管理方法
US6687733B2 (en) * 2001-06-01 2004-02-03 Intergenix Method and system for automatically configuring a client-server network
US20030073494A1 (en) 2001-10-15 2003-04-17 Kalpakian Jacob H. Gaming methods, apparatus, media and signals
US20030217135A1 (en) 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
JP4625968B2 (ja) 2004-11-10 2011-02-02 株式会社セガ ネットワークゲームシステム、及びゲーム装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009522028A (ja) * 2006-01-06 2009-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 多人数参加型オンライン・ゲーム
US9604146B2 (en) 2006-01-06 2017-03-28 International Business Machines Corporation Apparatus and method to play a multiplayer, online game
JP2008049169A (ja) * 2006-08-24 2008-03-06 Nhn Corp 多重接続オンラインゲームにおけるp2pメッセージ伝送システム及びその方法
JP4734302B2 (ja) * 2006-08-24 2011-07-27 エヌエイチエヌ コーポレーション 多重接続オンラインゲームにおけるp2pメッセージ伝送システム及びその方法
US8758104B2 (en) 2006-08-24 2014-06-24 Intellectual Discovery Co., Ltd. System and method for transmitting P2P message in multi-access online game
US7792900B2 (en) 2007-02-21 2010-09-07 Sony Corporation Overlay network system and service providing method
JP2011008709A (ja) * 2009-06-29 2011-01-13 Brother Industries Ltd 情報処理装置、コンテンツ配信システム、コンテンツ配信制御方法及びプログラム
JP2015537267A (ja) * 2012-09-13 2015-12-24 テンセント テクノロジー (シェンジェン) カンパニー リミテッド 情報管理方法及びデバイス
JP2018511896A (ja) * 2015-02-03 2018-04-26 グーグル エルエルシー クライアント・デバイスと第1のスクリーン・デバイスの間の探索および接続プロトコルの相互運用性
US10771592B2 (en) 2015-02-03 2020-09-08 Google Llc Interoperability of discovery and connection protocols between client devices and first screen devices
JP2020004392A (ja) * 2019-05-08 2020-01-09 株式会社バーチャルキャスト データ送信装置、端末およびプログラム
JP7166983B2 (ja) 2019-05-08 2022-11-08 株式会社バーチャルキャスト 端末およびプログラム

Also Published As

Publication number Publication date
US7373380B2 (en) 2008-05-13
AU2003218310A1 (en) 2003-12-12
KR20040099254A (ko) 2004-11-26
US20030217158A1 (en) 2003-11-20
EP1435045A1 (en) 2004-07-07
TWI222804B (en) 2004-10-21
TW200307419A (en) 2003-12-01
US7421471B2 (en) 2008-09-02
CN1312607C (zh) 2007-04-25
US20060253595A1 (en) 2006-11-09
EP2246792A3 (en) 2011-03-02
EP2246792B1 (en) 2015-07-08
WO2003100651A1 (en) 2003-12-04
EP2963549B1 (en) 2017-05-03
EP1435045A4 (en) 2007-12-19
EP2963549A1 (en) 2016-01-06
CN1610899A (zh) 2005-04-27
JP3990400B2 (ja) 2007-10-10
EP1435045B1 (en) 2013-05-08
EP2246792A2 (en) 2010-11-03
KR100638072B1 (ko) 2006-10-26

Similar Documents

Publication Publication Date Title
JP3990400B2 (ja) ネットワーク通信アーキテクチャ間の構成の動的な切り換え
US10659500B2 (en) Managing participants in an online session
US6128660A (en) Network match maker
US7606920B2 (en) Method and apparatus for controlling communication ports for an online session of a multi-user application by associating each of the ports with a protocol and designating an active port
AU2003218310B2 (en) Dynamically switching configuration between network communication architectures

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070123

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070423

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070423

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070523

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: 20070626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070719

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

Free format text: PAYMENT UNTIL: 20100727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 3990400

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110727

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20120727

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130727

Year of fee payment: 6

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees