(57)【特許請求の範囲】
【請求項１】
複数のエリアを有する仮想空間の中の第１のエリアに位置するプレイヤーキャラクターの状況を分析することと、
前記分析された状況に少なくとも部分的に基づいて、前記複数のエリアの中で前記第１のエリアから第２のエリアへの前記プレイヤーキャラクターの移動の確率を計算することと、
前記計算された確率に少なくとも部分的に基づいて、前記第２のエリアに対応する第２のキャッシュサーバから、前記第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算することと
を含み、
前記移動の確率が高くなると、それに応じてキャッシュコピーの前記量も増大することを特徴とする方法。
【請求項２】
ゲームのプレイヤーから前記プレイヤーキャラクターに関連する要求を受信することをさらに含み、
前記分析することは、前記プレイヤーキャラクターに関連する前記要求に少なくとも部分的に基づく、請求項１に記載の方法。
【請求項３】
前記プレイヤーキャラクターに関連する前記要求は、前記プレイヤーキャラクターのアクションおよび移動のうちの少なくとも１つに関連付けられている請求項２に記載の方法。
【請求項４】
第１のキャッシュサーバおよび第２のキャッシュサーバはインメモリキャッシュサーバである請求項１に記載の方法。
【請求項５】
前記第１のキャッシュサーバおよび前記第２のキャッシュサーバはそれぞれ、前記第１のエリアに関する情報および前記第２のエリアに関する情報をデータベースサーバからキャッシュに入れる請求項１に記載の方法。
【請求項６】
コピーするキャッシュデータの前記量を前記計算することは、前記第１のエリアと前記第２のエリアとの間の距離に少なくとも部分的に基づいて実行され、
前記距離が小さくなると前記コピーするキャッシュデータの量が増大することを特徴とする、請求項１に記載の方法。
【請求項７】
前記プレイヤーキャラクターの前記状況は、前記プレイヤーキャラクターの位置情報、
レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも１つに関連付けられている請求項１に記載の方法。
【請求項８】
コピーするキャッシュデータの前記計算された量に少なくとも部分的に基づいて、前記第２のエリアに関連付けられているデータを前記第２のキャッシュサーバから前記第１のキャッシュサーバにコピーすることをさらに含む請求項１に記載の方法。
【請求項９】
前記第２のエリアに関連付けられている前記データは、前記第２のエリアの環境情報および前記第２のエリアにおける前記プレイヤーキャラクターの情報のうちの少なくとも１つを含む請求項８に記載の方法。
【請求項１０】
複数のエリアを有する仮想空間の中の第１のエリアに位置するプレイヤーキャラクターの状況を分析するように構成されたプレイヤー状況分析器と、
前記仮想空間の前記複数のエリアを複数のキャッシュサーバに関連付けるように構成されたキャッシュマネージャであって、各キャッシュサーバは割り振られているエリアに関する情報をデータベースサーバからキャッシュに入れる、キャッシュマネージャと、
前記複数のエリアの中で前記第１のエリアから第２のエリアへの前記プレイヤーキャラクターの移動の確率を計算するように構成された移動確率計算器と、
前記移動確率計算器によって計算された前記確率に少なくとも部分的に基づいて、前記第２のエリアに対応する第２のキャッシュサーバから、前記第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算器とを備え、
前記移動の確率が高くなると前記コピーするキャッシュデータの量が増大することを特徴とする、ロードバランサ。
【請求項１１】
ゲームのプレイヤーから前記プレイヤーキャラクターの要求を受信するように構成された受信ユニットであって、前記プレイヤーキャラクターの前記要求は、前記プレイヤーキャラクターのアクションおよび移動のうちの少なくとも１つに関連付けられている、受信ユニットをさらに備え、
前記プレイヤー状況分析器は、前記プレイヤーキャラクターの前記要求に少なくとも部分的に基づいて前記プレイヤーキャラクターの前記状況を分析するようにさらに構成される請求項１０に記載のロードバランサ。
【請求項１２】
前記キャッシュマネージャに、キャッシュコピーの前記計算された量に少なくとも部分的に基づいて、前記第２のエリアに関連付けられているデータを前記第２のキャッシュサーバから前記第１のキャッシュサーバにコピーするよう指示するように構成された命令ユニットをさらに備える請求項１０に記載のロードバランサ。
【請求項１３】
前記第２のエリアに関連付けられている前記データは、前記第２のエリアの環境情報および前記第２のエリアにおける前記プレイヤーキャラクターの情報のうちの少なくとも１つを含む請求項１２に記載のロードバランサ。
【請求項１４】
前記第１のキャッシュサーバおよび前記第２のキャッシュサーバはインメモリキャッシュサーバである請求項１０に記載のロードバランサ。
【請求項１５】
前記コピー係数計算器は、前記第１のエリアと前記第２のエリアとの間の距離に少なくとも部分的に基づいて、前記第２のキャッシュサーバから前記第１のキャッシュサーバにコピーするキャッシュデータの前記量を計算するようにさらに構成され
前記距離が小さくなると前記コピーするキャッシュデータの量が増大することを特徴とする、
ている請求項１０に記載のロードバランサ。
【請求項１６】
前記プレイヤーキャラクターの前記状況は、前記プレイヤーキャラクターの位置情報、レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも１つに関連付けられている請求項１０に記載のロードバランサ。
【請求項１７】
ゲームデータを格納するデータベースサーバとゲームサーバとの間のロードバランシングを実施するためのプログラムを格納するコンピュータ可読ストレージ媒体であって、コンピュータを、
仮想空間のエリアとキャッシュサーバとの関連付けを管理するように構成されたキャッシュ管理モジュールであって、各キャッシュサーバは、対応するエリアに関連付けられている前記ゲームデータの一部を前記データベースサーバからキャッシュに入れる、キャッシュ管理モジュール、
第１のエリアから第２のエリアへのプレイヤーキャラクターの移動の確率および前記第１のエリアと前記第２のエリアとの間の距離に少なくとも部分的に基づいて、前記第２のエリアに対応する第２のキャッシュサーバから前記第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算モジュール
として機能させるためのプログラムを記録し、
前記プログラムは、前記コンピュータを、前記移動の確率が高くなる又は前記距離が小さくなると前記コピーするキャッシュデータの量が増大するように機能させることを特徴とする、
コンピュータ可読ストレージ媒体。
【請求項１８】
前記コピー係数計算器モジュールは、プレイヤー状況分析モジュールによって分析された前記プレイヤーキャラクターの状況に少なくとも部分的に基づいてキャッシュコピーの前記量を計算するようにさらに構成されている、請求項１７に記載のコンピュータ可読ストレージ媒体。
【請求項１９】
前記第１のキャッシュサーバおよび前記第２のキャッシュサーバはインメモリキャッシュサーバである請求項１７に記載のコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
大規模多人数同時参加型オンラインロールプレイングゲーム（ＭＭＯＲＰＧ：ｍａｓｓｉｖｅ  ｍｕｌｔｉｐｌａｙｅｒ  ｏｎｌｉｎｅ  ｒｏｌｅ  ｐｌａｙｉｎｇ  ｇａｍｅ）などのオンラインゲームを楽しむユーザの数は増え続けている。たとえば、米国のブリザードエンターテイメント（Ｂｌｉｚｚａｒｄ（登録商標）  Ｅｎｔｅｒｔａｉｎｍｅｎｔ）により運営されるワールドオブウォークラフト（Ｗｏｒｌｄ  ｏｆ  Ｗａｒｃｒａｆｔ）のユーザ数は、世界中で１２００万人を超えている。前述のようにオンラインゲームを楽しむユーザの数が増え続けているので、クラウドコンピューティングシステムを使用したスケールアウトが重要となる。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
しかし、クラウドコンピューティング環境を実施するための既存のインフラストラクチャは通常、電子メールアプリケーションおよびワードプロセッサなど、パーソナルコンピュータ上で稼働するビジネスアプリケーションに適合されているため、オンラインゲームを効率的に実施することは困難である。特に、ＭＭＯＲＰＧなどのオンラインゲームは、仮想世界においてクライアントにリアルタイムで情報を転送することが要求されるので、データベースサーバとゲームサーバとの間の通信がボトルネックとなる傾向がある。
【課題を解決するための手段】
【０００３】
１つの例において、方法は、仮想空間に位置するプレイヤーキャラクターの状況を分析することであって、仮想空間は複数のエリアを有するように構成され、プレイヤーキャラクターは複数のエリアの中で第１のエリアに位置する、分析することと、分析された状況に少なくとも部分的に基づいて、複数のエリアの中で第１のエリアから第２のエリアへのプレイヤーキャラクターの移動の確率を計算することと、計算された確率に少なくとも部分的に基づいて、第２のエリアに対応する第２のキャッシュサーバから、第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算することとを含むことができる。
【０００４】
別の例において、方法は、ゲームキャラクターの状況および予想位置に少なくとも部分的に基づいて、データベースサーバのデータキャッシュを動的に構成することと、動的構成に少なくとも部分的に基づいて、ゲームキャラクターに関連付けられているゲームプレイヤーによって要求されるゲームデータをキャッシュに入れることとを含むことができる。
【０００５】
さらに別の例において、ロードバランサは、仮想空間に位置するプレイヤーキャラクターの状況を分析するように構成されたプレイヤー状況アナライザであって、仮想空間は複数のエリアを有するように構成され、プレイヤーキャラクターは複数のエリアの中で第１のエリアに位置する、プレイヤー状況アナライザと、仮想空間の複数のエリアを複数のキャッシュサーバに関連付けるように構成されたキャッシュマネージャであって、各キャッシュサーバは割り振られているエリアに関する情報をデータベースサーバからキャッシュに入れる、キャッシュマネージャと、複数のエリアの中で第１のエリアから第２のエリアへのプレイヤーキャラクターの移動の確率を計算するように構成された移動確率計算器と、移動確率計算器によって計算された確率に少なくとも部分的に基づいて、第２のエリアに対応する第２のキャッシュサーバから、第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算器とを含むことができる。
【０００６】
さらに別の例において、コンピュータ可読ストレージ媒体は、ゲームデータを格納するデータベースサーバとゲームサーバとの間のロードバランシングを実施するためのプログラムを格納することができ、プログラムは、仮想空間のエリアとキャッシュサーバとの関連付けを管理するように構成されたキャッシュ管理モジュールであって、各キャッシュサーバは対応するエリアに関連付けられているゲームデータの一部をデータベースサーバからキャッシュに入れる、キャッシュ管理モジュールと、第１のエリアから第２のエリアへのゲームキャラクターの移動の確率および第１のエリアと第２のエリアとの間の距離に少なくとも部分的に基づいて、第２のエリアに対応する第２のキャッシュサーバから第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算モジュールとを含むことができる。
【０００７】
前述の概要は、例示的なものに過ぎず、限定的であることは全く意図されていない。上記で説明される例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴は、図面および後段の詳細な説明を参照することにより明らかとなろう。
【０００８】
本開示の前述の特徴およびその他の特徴は、添付の図面と合わせて、後段の説明および付属の特許請求の範囲を読めば明らかとなろう。これらの図面は開示によるいくつかの実施形態を示すに過ぎず、したがってその範囲を限定すると見なされるものではないことを理解し、本開示は添付の図面を用いてさらに具体的および詳細に説明される。
【図面の簡単な説明】
【０００９】
【図１】本明細書において説明される少なくとも一部の実施形態により構成される、ロードバランサが、データベースサーバとゲームサーバとの間のロードバランシングを提供する環境の例示を概略的に示す図である。
【図２】本明細書において説明される少なくとも一部の実施形態により構成される、キャッシュサーバと仮想空間エリアとを関連付けるためのメッシュ構造の例示を示す図である。
【図３】本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成されたロードバランサの例示を示す概略ブロック図である。
【図４】本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成された例示のシステムを概略的に示す図である。
【図５】本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するためのプロセスを示す例示の流れ図である。
【図６】本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうるコンピュータプログラム製品を示す図である。
【図７】本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうる例示のコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【００１０】
以下の詳細な説明において、本明細書の一部を形成する添付の図面が参照される。図面において、文脈に別段の指示がない限り、類似する符号は概して、類似するコンポーネントを識別する。発明を実施するための形態、図面、および特許請求の範囲において説明される例示的な実施形態は、限定的であることを意図されていない。本明細書において提示される主題の精神または範囲を逸脱することなく、その他の実施形態が使用されてもよく、その他の変更が行われてもよい。本明細書において概括的に説明され、図面に示される本開示の態様が、多岐にわたるさまざまな構成において配置され、代替され、組み合わされ、分離され、設計されてもよく、それらすべてが本明細書において明示的に検討されることは容易に理解されよう。
【００１１】
本開示は、とりわけ、ＭＭＯＲＰＧなどのオンラインゲームを伴うモバイルサービスをホスティングするクラウドコンピューティング環境におけるロードバランシングに関連する方法、装置、システム、デバイス、およびコンピュータプログラム製品を対象とする。
【００１２】
データベースサーバとゲームサーバとの間のゲームのロードバランシングを提供するように構成されたロードバランサに対する技術が概して説明される。一部の例において、クラウドコンピューティング環境におけるゲームは、ゲートウェイサーバ、ゲームサーバ、およびデータベースサーバを含む３つのサーバレイヤを使用して実施されてもよい。一部の例において、ロードバランサは、データベースサーバとゲームサーバとの間のロードバランシングを提供して、トラフィックの増大に起因する両者間の通信ボトルネックを解決することができる。一部の例において、オンラインゲームの場合、ロードバランサは、データベースサーバとゲームサーバとの間のロードバランシングを提供して、ゲームの仮想空間に関する大量のゲームデータの読み出しによって生じる通信ボトルネックを解決することができる。
【００１３】
一部の例において、ロードバランサは、ゲームの仮想空間内のプレイヤーキャラクターの位置および状況のうちの少なくとも１つに少なくとも部分的に基づいてデータベースサーバのデータキャッシュを動的に構成し、動的構成に少なくとも部分的に基づいてユーザ（またはプレイヤー）によって要求されたゲームデータをキャッシュに入れ、それによりゲームサーバからデータベースサーバへのデータアクセスを迅速化することができる。
【００１４】
一部の例において、メモリ内キャッシュサーバなどのデータベースサーバから取り出されたデータをキャッシュに入れる複数のキャッシュサーバが、ゲームサーバからデータベースサーバへのアクセス数を減らすために使用されてもよい。
【００１５】
一部の例において、オンラインゲームサービスの応答速度およびサービス提供キャパシティ（すなわち、ゲームを同時にプレイすることができるプレイヤーの数）を改善するため、ロードバランサは、複数のキャッシュサーバ間でデータのコピーを管理することができる。
【００１６】
一部の例において、ロードバランサは、仮想空間を複数のエリアに分割して、各々のキャッシュサーバがエリアの１つに関するゲームデータをデータベースサーバからキャッシュに入れるように、複数のキャッシュサーバを管理することができる。ロードバランサは、キャッシュサーバとエリアの間の関連付けを管理することができる。
【００１７】
一部の例において、ロードバランサは、ユーザからゲームデータの要求を受信して、受信した要求を参照して分析されたプレイヤーキャラクターの状況に少なくとも部分的に基づいて、第１のエリアから第２のエリアへのプレイヤーキャラクターの移動の確率を計算することができる。
【００１８】
一部の例において、ロードバランサは、仮想空間のマップ情報を使用することにより、前もって確率を静的に計算することができる。
【００１９】
一部の例において、次いでロードバランサは、計算された確率に少なくとも部分的に基づいて、第２のエリアに対応する第２のキャッシュサーバから、第１のエリアに対応する第１のキャッシュサーバへのコピー係数、すなわち第２のキャッシュサーバから第１のキャッシュサーバにコピーするキャッシュデータの量を計算することができる。
【００２０】
一部の例において、すべてのエリアおよびプレイキャラクターのコピー係数を管理することにより、キャッシュサーバは、プレイヤーキャラクターが移動する可能性の高いエリアに関する情報を動的および／または自動的に格納するように構成されてもよく、それによりゲームサーバからデータベースサーバへのアクセス数を減らすことができる。
【００２１】
一部の例において、ロードバランサは、ゲームサーバおよびデータベースサーバから独立したネットワーク装置として実施されてもよい。したがって、ロードバランサは、オンラインゲームサービスの応答速度およびサービス提供キャパシティを改善するため、既存のインフラストラクチャおよびアプリケーションを大幅に変更することなくクラウドコンピューティング環境に導入されてもよい。
【００２２】
図１は、本明細書において説明される少なくとも一部の実施形態による、ロードバランサが、データベースサーバとゲームサーバとの間のロードバランシングを提供する環境の例示を概略的に示す図である。図１に示されるように、ユーザクライアント１１０は、データベースサーバ１３０に格納されうるゲームデータの要求をゲームサーバ１２０に送信することができる。限定的ではなく、一例として、要求は、ゲームサーバ１２０によって提供されるオンラインゲームサービスのゲームのプレイヤーキャラクターのアクションおよび移動のうちの少なくとも１つに関連付けられてもよい。
【００２３】
一部の実施形態において、データベースサーバ１３０は、１つまたは複数のプレイヤーキャラクターが存在しうるゲームの仮想空間に関するゲームデータを格納することができる。一部の実施形態において、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎは、データベースサーバ１３０に格納されたゲームデータの少なくとも一部をキャッシュに入れることができる。一部の実施形態において、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎは、それぞれ、仮想空間内の複数のエリアのうちの１つに関連付けられているゲームデータの少なくとも一部をデータベースサーバ１３０からキャッシュに入れることができる。限定的ではなく、一例として、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎは、メモリ内キャッシュサーバであってもよい。限定的ではなく、一例として、エリアのそれぞれのサイズは、クラウドコンピューティング環境に提供されるキャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎの合計数、および／またはキャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎのメモリ容量に応じて異なることもある。たとえば、クラウドコンピューティング環境に十分な数のキャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎが提供され、そのメモリ容量も十分である場合、エリアのサイズは比較的小さく設定されてもよいが、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎの数が十分ではない、および／またはそのメモリ容量が小さい場合は、エリアのサイズは比較的大きく設定されてもよい。
【００２４】
一部の実施形態において、ロードバランサ１５０は、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎと仮想空間の関連付けを管理することができる。限定的ではなく、一例として、ロードバランサ１５０は、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎをそれぞれ、エリア１６０−１、１６０−２、・・・、１６０−ｎに割り振ることができ、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎにそれぞれ、エリア１６０−１、１６０−２、・・・、１６０−ｎに関連付けられているゲームデータをデータベースサーバ１３０からキャッシュに入れさせるかまたは取り出させることができる。
【００２５】
一部の実施形態において、ロードバランサ１５０はまた、ユーザクライアント１１０からの要求をゲームサーバ１２０から受信することができる。次いで、ロードバランサ１５０は、受信した要求を分析することができ、それからユーザクライアント１１０に関連付けられているプレイヤーキャラクターの状況情報を取得することができる。限定的ではなく、一例として、状況情報は、プレイヤーキャラクターの位置情報、レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも１つを含むことができる。
【００２６】
一部の実施形態において、ロードバランサ１５０はまた、要求から取得された状況情報に少なくとも部分的に基づいて、エリア間の仮想空間内のプレイヤーキャラクターの移動の確率を計算することもできる。限定的ではなく、一例として、ロードバランサ１５０は、現在位置とその他のエリアとの間の距離を考慮に入れることによって、プレイヤーキャラクターの現在位置から仮想空間内のその他のエリアへの仮想空間内のプレイヤーキャラクターの移動の確率を計算することができる。
【００２７】
一部の実施形態において、ロードバランサ１５０はまた、計算された確率に少なくとも部分的に基づいて、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎ間のコピー係数、すなわちキャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎ間でコピーするキャッシュデータの量を計算することができる。限定的ではなく、一例として、ロードバランサ１５０は、エリア１６０−１からエリア１６０−２へのユーザクライアント１１０に関連付けられているプレイヤーキャラクターの移動の計算された確率に少なくとも部分的に基づいて、エリア１６０−２に対応するキャッシュサーバ１４０−２からエリア１６０−１に対応するキャッシュサーバ１４０−１へのコピー係数、すなわちエリア１６０−２に対応するキャッシュサーバ１４０−２からエリア１６０−１に対応するキャッシュサーバ１４０−１にコピーするキャッシュデータの量を計算することができる。一部の実施形態において、キャッシュサーバ１４０−２からキャッシュサーバ１４０−１へのコピー係数は、エリア１６０−１からエリア１６０−２への移動の計算された確率が増大するのに応じて増大することがある。一部の実施形態において、キャッシュサーバ１４０−２からキャッシュサーバ１４０−１へのコピー係数は、エリア１６０−１とエリア１６０−２との間の距離が増大するのに応じて減少することがある。
【００２８】
仮想空間内の点ｘ２ｙ２に対応するキャッシュサーバから、仮想空間内の点ｘ１ｙ１に対応するもう１つのキャッシュサーバに情報をコピーするためのコピー係数、すなわち、ｃｏｐｙ＿ｆａｃｔｏｒ（ｘ１ｙ１，ｘ２ｙ２）の例は、以下のような例示の式により計算されてもよい。
【数１】
0005806248.tif 000002
【００２９】
式１について、ｉｔｅｍ＿ｃｏｕｎｔ（ｘ２ｙ２）は、点ｘ２ｙ２に対応するキャッシュサーバ内のキャッシュデータの量を示し、ｐｒｏｂａｂｉｌｉｔｙ（ｘ１ｙ１，ｘ２ｙ２）は、点ｘ１ｙ１から点ｘ２ｙ２へのユーザクライアント１１０に関連付けられているプレイヤーキャラクターの移動の確率を示し、ｄｉｓｔａｎｃｅ（ｘ１ｙ１，ｘ２ｙ２）は、仮想空間内の点ｘ１ｙ１から点ｘ２ｙ２までの距離を示す。
【００３０】
一部の実施形態において、ロードバランサ１５０は、上記の式１により計算されたコピー係数に少なくとも部分的に基づいて、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎ間でキャッシュデータの計算された量をコピーすることによって、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎを動的に管理または構成することができ、それによりデータベースサーバ１３０とゲームサーバ１２０との間のロードバランシングをもたらすことができる。
【００３１】
図２（Ａ）および（Ｂ）はそれぞれ、本明細書において説明される少なくとも一部の実施形態による、キャッシュサーバと仮想空間エリアとを関連付けるためのメッシュ構造の例示、およびキャッシュデータをキャッシュサーバ間でコピーすることの例示を示す図である。示されているように、仮想空間２００は、複数のエリア２１０−１、２１０−２、・・・、２１０−２５に分割されてもよい。図２（Ａ）および（Ｂ）は、空間２００が２５個の同じサイズのエリア２１０−１、２１０−２、・・・、２１０−２５に分割されることを示すが、当業者であれば、空間２０が任意のサイズおよび／または任意の数のエリアに分割されてもよいことが理解されよう。
【００３２】
一部の実施形態において、エリア２１０−１、２１０−２、・・・、２１０−２５に関するゲームデータは、データベースサーバ（たとえば、データベースサーバ１３０）に格納されてもよい。複数のキャッシュサーバ（たとえば、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎ）は、データベースサーバへのアクセス数を減らすために、エリア２１０−１、２１０−２、・・・、２１０−２５に関するゲームデータをデータベースサーバから取り出すことおよび／またはキャッシュに入れることができる。一部の実施形態において、複数のキャッシュサーバの各々は、エリア２１０−１、２１０−２、・・・、２１０−２５の各々に関連付けられるかまたは割り振られてもよく、エリア２１０−１、２１０−２、・・・、２１０−２５のうちの対応する１つに関するゲームデータをキャッシュに入れることができる。
【００３３】
図２（Ａ）に示されるように、プレイヤーキャラクターが現在エリア２１０−１４に位置している場合、ロードバランサ（たとえば、ロードバランサ１５０）は、エリア２１０−１４からその他のエリアへのプレイヤーキャラクターの移動の確率を計算することができ、他のエリアに対応する他のキャッシュサーバからエリア２１０−１４に対応するキャッシュサーバへのコピー係数を計算することができる。限定的ではなく、一例として、ロードバランサが、エリア２１０−１４から図２（Ａ）に示される他のエリアへのプレイヤーキャラクターの移動の確率を見出して計算し、図２（Ｂ）に示されるエリアに対応するキャッシュサーバの各々のキャッシュデータの量を見出す場合、ロードバランサは、上記の式１に従って、他のエリアに対応するキャッシュサーバからエリア２１０−１４に対応するキャッシュサーバへのそれぞれのコピー係数を計算することができる。ロードバランサは、上記の式１により計算されたコピー係数に少なくとも部分的に基づいて、キャッシュサーバ間でキャッシュデータをコピーすることによって、キャッシュサーバを動的に管理または構成することができ、それによりデータベースサーバとゲームサーバとの間のロードバランシングをもたらすことができる。
【００３４】
図３は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成されたロードバランサの例示的な例を示す概略ブロック図である。示されるように、ロードバランサ１５０は、受信ユニット３１０、プレイヤー状況分析器３２０、キャッシュマネージャ３３０、移動確率計算器３４０、コピー係数計算器３５０、および命令ユニット３６０を含むことができる。別個のコンポーネントとして示されているが、さまざまなコンポーネントは、開示される主題の範囲内で検討される間に、追加のコンポーネントに分割されるか、より少ないコンポーネントに結合されるか、またはすべて除去されてもよい。
【００３５】
受信ユニット３１０は、ゲームのユーザクライアントからプレイヤーキャラクターの要求を受信するように構成されてもよい。一部の実施形態において、プレイヤーキャラクターの要求は、プレイヤーキャラクターのアクションおよび移動のうちの少なくとも１つに関連付けられてもよい。限定的ではなく、一例として、プレイヤーキャラクターのアクションは、ゲームの仮想空間における移動手段を使用したアクションに関連付けられてもよい。
【００３６】
プレイヤーキャラクター分析器３２０は、仮想空間に位置するプレイヤーキャラクターの状況を分析するように構成されてもよい。一部の実施形態において、仮想空間は、複数のエリアを有するように構成されてもよく、プレイヤーキャラクターは、複数のエリアの中で第１のエリアに位置してもよい。限定的ではなく、一例として、プレイヤーキャラクターの状況は、プレイヤーキャラクターの位置情報、プレイヤーキャラクターのレベルの情報、プレイヤーキャラクターの機器の情報、プレイヤーキャラクターを含むパーティの組織情報、プレイヤーキャラクターのクエストの情報、およびプレイヤーキャラクターが使用している移動手段の情報に関連付けられてもよい。
【００３７】
一部の実施形態において、プレイヤー状況分析器３２０は、プレイヤーキャラクターの要求に基づいてプレイヤーキャラクターの状況を分析することができる。限定的ではなく、一例として、要求はプレイヤーキャラクターの情報を含むことができ、プレイヤー状況分析器３２０は、要求からプレイヤーキャラクターの情報を取得して、取得した情報を使用してプレイヤーキャラクターの状況を分析することができる。
【００３８】
キャッシュマネージャ３３０は、仮想空間の複数のエリア（たとえば、エリア１６０−１、１６０−２、・・・、１６０−ｎ）を、複数のキャッシュサーバ（たとえば、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎ）に関連付けるように構成されてもよい。一部の実施形態において、キャッシュサーバは各々、割り振られたエリアに関する情報をデータベースサーバ（たとえば、データベースサーバ１３０）からキャッシュに入れることができる。一部の実施形態において、キャッシュサーバは、メモリ内キャッシュサーバを含むことができる。
【００３９】
移動確率計算器３４０は、複数のエリアの中で第１のエリアから第２のエリアへのプレイヤーキャラクターの移動の確率を計算するように構成されてもよい。一部の実施形態において、移動確率計算器３４０は、プレイヤーキャラクターのレベルの情報、プレイヤーキャラクターを含むパーティの組織情報、プレイヤーキャラクターのクエストの情報、およびプレイヤーキャラクターが使用している移動手段の情報など、プレイヤー状況分析器３２０によって分析されたプレイヤーの状況に少なくとも部分的に基づいて確率を計算することができる。
【００４０】
コピー係数計算器３５０は、移動確率計算器３４０によって計算された移動の確率に少なくとも部分的に基づいて、第２のエリアに対応する第２のキャッシュサーバから第１のエリアに対応する第１のキャッシュサーバへのコピー係数、すなわち第２のエリアに対応する第２のキャッシュサーバから第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されてもよい。一部の実施形態において、コピー係数計算器３５０は、第１のエリアと第２のエリアとの間の距離を考慮して、第２のキャッシュサーバから第１のキャッシュサーバにコピーするキャッシュデータの量を計算することができる。
【００４１】
命令ユニット３６０は、キャッシュマネージャ３３０に、コピー係数計算器３５０によって計算されたキャッシュコピーの量に少なくとも部分的に基づいて、第２のエリアに関連付けられているデータを第２のキャッシュサーバから第１のキャッシュサーバにコピーするよう指示し、それによりデータベースサーバとゲームサーバ間のロードバランシングをもたらすように構成されてもよい。一部の実施形態において、第２のエリアに関連付けられているデータは、第２のエリアの環境情報および第２のエリアにおけるプレイヤーキャラクターの情報のうちの少なくとも１つを含む。限定的ではなく、一例として、第１のエリアの環境情報および第２のエリアの環境情報は、それぞれ第１のエリアおよび第２のエリアの気象情報を含むことができる。
【００４２】
図４は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成された例示のシステムを概略的に示す図である。示されているように、ユーザが、たとえば、大規模多人数同時参加型オンラインロールプレイングゲーム（ＭＭＯＲＰＧ）プログラムなどのゲームプログラムをユーザクライアント１１０上で稼働または実行する場合、ユーザクライアント１１０は、データベースサーバ１３０に格納されうる、仮想空間内のプレイヤーキャラクターに関連するゲームデータの要求をゲームサーバ１２０に送信することができる。次いで、ゲームサーバ１２０は、受信した要求をロードバランサ１５０に送信することができる。
【００４３】
一部の実施形態において、ロードバランサ１５０内の受信ユニット３１０は、ゲームサーバからゲームデータの要求を受信することができる。次いで、受信ユニット３１０は、受信した要求をプレイヤー状況分析器３２０に送信することができる。一部の実施形態において、プレイヤー状況分析器３２０は、プレイヤーキャラクターの要求に基づいて、プレイヤーキャラクターのアクションまたは移動に関連付けられているプレイヤーキャラクターの状況を分析することができる。
【００４４】
一部の実施形態において、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎと仮想空間エリアとの関連付けを管理することができる、ロードバランサ１５０内のキャッシュマネージャ３３０は、プレイヤー状況分析器３２０によって分析されたプレイヤーキャラクターの状況に少なくとも部分的に基づいてプレイヤーキャラクターの現在の位置に対応するキャッシュサーバを含む、関連するキャッシュサーバを見出すことができる。
【００４５】
一部の実施形態において、ロードバランサ１５０内の移動確率計算器３４０は、プレイヤー状況分析器３２０によって分析されたプレイヤーキャラクターの状況に少なくとも部分的に基づいて、プレイヤーキャラクターの現在の位置が属しうる第１の仮想空間エリアから第２の仮想空間エリアへのプレイヤーキャラクターの移動の確率を計算することができる。
【００４６】
一部の実施形態において、ロードバランサ１５０内のコピー係数計算器３５０は、移動確率計算器３４０によって計算された確率に少なくとも部分的に基づいて、第２のエリアに対応する第２のキャッシュサーバから、第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算することができる。
【００４７】
一部の実施形態において、命令ユニット３６０は、キャッシュマネージャ３３０に、キャッシュコピーの計算された量に少なくとも部分的に基づいて、第２のエリアに関連付けられているデータを第２のキャッシュサーバから第１のキャッシュサーバにコピーすることができる。
【００４８】
一部の実施形態において、ロードバランサ１５０は、コピー係数計算器３５０によって計算された第２のキャッシュサーバから第１のキャッシュサーバにコピーするキャッシュデータの量に少なくとも部分的に基づいて、第２のキャッシュサーバから第１のキャッシュサーバにキャッシュデータの計算された量をコピーすることにより、キャッシュサーバ１４０−１、１４０−２、・・・、１４０−ｎを動的に管理または構成することができる。
【００４９】
図５は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するためのプロセスを示す例示的な流れ図である。図５に示される方法は、上記で説明されている受信ユニット３１０、プレイヤー状況分析器３２０、キャッシュマネージャ３３０、移動確率計算器３４０、コピー係数計算器３５０、および命令ユニット３６０を含むロードバランサ１５０などのロードバランサにおいて実施されてもよい。例示のプロセスは、１つまたは複数のブロック５００、５１０、５２０、および／または５３０によって示される、１つまたは複数の操作、アクション、または機能を含むことができる。別個のブロックとして示されているが、さまざまなブロックは、望ましい実施態様に応じて、追加のブロックに分割されるか、より少ないブロックに結合されるか、または除去されてもよい。プロセスは、ブロック５００から開始する。
【００５０】
ブロック５００において、ロードバランサは、プレイヤーキャラクターに関連付けられているゲームのプレイヤーから、仮想空間に位置するプレイヤーキャラクターに関連する要求を受信することができる。限定的ではなく、一例として、要求は、プレイヤーキャラクターのアクションおよび移動のうちの少なくとも１つに関連付けられてもよい。一部の実施形態において、仮想空間は、複数のエリアを有するように構成されてもよく、プレイヤーキャラクターは、複数のエリアの中で第１のエリアに位置してもよい。プロセスは、ブロック５００からブロック５１０へと進むことができる。
【００５１】
ブロック５１０において、ロードバランサは、プレイヤーキャラクターに関連する要求に少なくとも部分的に基づいてプレイヤーキャラクターの状況を分析することができる。限定的ではなく、一例として、プレイヤーキャラクターの状況は、プレイヤーキャラクターの位置情報、レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも１つに関連付けられている。プロセスは、ブロック５１０からブロック５２０へと進むことができる。
【００５２】
ブロック５２０において、ロードバランサは、複数のエリアの中で第１のエリアから第２のエリアへのプレイヤーキャラクターの移動の確率を計算することができる。一部の実施形態において、ロードバランサは、分析された状況に少なくとも部分的に基づいて確率を計算することができる。限定的ではなく、一例として、ロードバランサは、プレイヤーキャラクターのレベルの情報、プレイヤーキャラクターを含むパーティの組織情報、プレイヤーキャラクターのクエストの情報、およびプレイヤーキャラクターが使用している移動手段の情報を考慮して確率を計算することができる。プロセスは、ブロック５２０からブロック５３０へと進むことができる。
【００５３】
ブロック５３０において、ロードバランサ１５０は、第２のエリアに対応する第２のキャッシュサーバから第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量、すなわち第２のキャッシュサーバから第１のキャッシュサーバへのコピー係数を計算することができる。
【００５４】
一部の実施形態において、ロードバランサは、計算された確率に少なくとも部分的に基づいて、コピーするキャッシュデータの量を計算することができる。
【００５５】
一部の実施形態において、ロードバランサは、第１のエリアと第２のエリアとの間の距離にさらに基づいて、コピーするキャッシュデータの量を計算することができる。
【００５６】
一部の実施形態において、第１のキャッシュサーバおよび第２のキャッシュサーバはそれぞれ、第１のエリアに関する情報および第２のエリアに関する情報をデータベースサーバからキャッシュに入れることができる。
【００５７】
一部の実施形態において、移動の確率が高くなると、それに応じてキャッシュコピーの量も増大する。
【００５８】
一部の実施形態において、ロードバランサは、第２のキャッシュサーバから第１のキャッシュサーバにキャッシュデータの計算された量をコピーすることにより、キャッシュサーバを動的に管理または構成することができる。
【００５９】
本明細書において開示されるこのプロセスおよびその他のプロセスおよび方法について、プロセスおよび方法で実行される機能が異なる順序で実施されてもよいことを、当業者であれば理解するであろう。さらに、概説されるステップおよび操作は例として示されているに過ぎず、ステップおよび操作の一部は、開示される実施形態の本質を損なうことなく、オプションの、より少ないステップおよび操作に結合されてもよいか、または追加のステップおよび操作に拡大されてもよい。
【００６０】
図６は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうるコンピュータプログラム製品を示す図である。プログラム製品６００は、信号搬送媒体６０２を含むことができる。信号搬送媒体６０２は、たとえばプロセッサによって実行されるとき、図１〜図５に関して上記で説明される機能を提供することができる１つまたは複数の命令６０４を含むことができる。一例として、命令６０４は、仮想空間のエリアとキャッシュサーバとの関連付けを管理するための１つまたは複数の命令であって、各キャッシュサーバは対応するエリアに関連付けられているゲームデータの一部をデータベースサーバからキャッシュに入れる命令と、第１のエリアから第２のエリアへのゲームキャラクターの移動の確率および第１のエリアと第２のエリアとの間の距離に少なくとも部分的に基づいて、第２のエリアに対応する第２のキャッシュサーバから第１のエリアに対応する第１のキャッシュサーバにコピーするキャッシュデータの量を計算するための１つまたは複数の命令とを含むことができる。したがって、たとえば、図３を参照すると、ロードバランサ１５０は、命令６０４に応答して、図５に示されるブロックのうちの１つまたは複数を開始することができる。
【００６１】
一部の実施形態において、信号搬送媒体６０２は、ハードディスクドライブ、ＣＤ、ＤＶＤ，デジタルテープ、メモリなどのコンピュータ可読媒体６０６を含むことができるが、これらに限定されることはない。一部の実施形態において、信号搬送媒体６０２は、メモリ、読取り／書込み（Ｒ／Ｗ）ＣＤ、Ｒ／Ｗ  ＤＶＤなどの記録可能媒体６０８を含むことができるが、これらに限定されることはない。一部の実施形態において、信号搬送媒体６０２は、デジタルおよび／またはアナログ通信媒体など（たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）の通信媒体６１０を含むことができるが、これらに限定されることはない。したがって、たとえば、プログラム製品６００は、ＲＦ信号搬送媒体６０２によってロードバランサ１５０の１つまたは複数のモジュールに搬送されてもよく、信号搬送媒体６０２は無線通信媒体６１０（たとえば、ＩＥＥＥ８０２．１１規格に適合する無線通信媒体）により搬送される。
【００６２】
図７は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうる例示のコンピューティングデバイスを示すブロック図である。これらの例において、コンピューティングデバイス７００の要素は、ＭＭＯＲＰＧなどのオンラインゲームを伴うモバイルサービスをホスティングするクラウドコンピューティングシステムのために配置または構成されてもよい。極めて基本的な構成７０２において、コンピューティングデバイス７００は通常、１つまたは複数のプロセッサ７０４およびシステムメモリ７０６を含む。メモリバス７０８は、プロセッサ７０４とシステムメモリ７０６との間で通信するために使用されてもよい。
【００６３】
望ましい構成に応じて、プロセッサ７０４は、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはそれらの任意の組合せを含む任意のタイプであってもよいが、これらに限定されることはない。プロセッサ７０４は、レベル１キャッシュ７１０およびレベル２キャッシュ７１２など、１つまたは複数のレベルのキャッシング、プロセッサコア７１４、およびレジスタ７１６を含むことができる。例示のプロセッサコア７１４は、演算論理装置（ＡＬＵ：ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、浮動小数点演算ユニット（ＦＰＵ：ｆｌｏａｔｉｎｇ  ｐｏｉｎｔ  ｕｎｉｔ）、デジタル信号処理コア（ＤＳＰ  Ｃｏｒｅ）、またはそれらの任意の組合せを含むことができる。例示のメモリコントローラ７１８はまた、プロセッサ７０４と共に使用されてもよいか、または一部の実施態様において、メモリコントローラ７１８はプロセッサ７０４の内部部品であってもよい。
【００６４】
望ましい構成に応じて、システムメモリ７０６は、（ＲＡＭなどの）揮発性メモリ、（たとえば、ＲＯＭ、フラッシュメモリなどの）不揮発性メモリ、またはそれらの任意の組合せを含む任意のタイプであってもよいが、これらに限定されることはない。システムメモリ７０６は通常、オペレーティングシステム７２０、１つまたは複数のアプリケーション７２２、およびプログラムデータ７２４を含むことができる。アプリケーション７２２は、図３に示されるロードバランサ１５０のアーキテクチャに関して説明されているアクションを含むか、または図５に示される流れ図に関して説明されているアクションを含む本明細書において説明される機能を実行するように配置されうる命令７２６を含むことができる。プログラムデータ７２４は、命令７２６を実施するために使用されうるデータ（たとえば、キャッシュサーバと仮想空間エリアとを関連付けるためのメッシュ構造）を含むことができる。一部の実施形態において、アプリケーション７２２は、本明細書において説明されるロードバランサのための命令の実施態様のように、オペレーティングシステム７２０上でプログラムデータ７２４と共に動作するように配置されてもよい。
【００６５】
コンピューティングデバイス７００は、追加の特徴または機能、および追加のインターフェイスを有して、基本構成７０２と、任意の必要なデバイスおよびインターフェイスとの通信を容易にすることができる。たとえば、バス／インターフェイスコントローラ７３０は、ストレージインターフェイスバス７３４を介して基本構成７０２と１つまたは複数のデータストレージデバイス７３２との間の通信を容易にするために使用されてもよい。データストレージデバイス７３２は、取外し式ストレージデバイス７３６、非取外し式ストレージデバイス７３８、またはその組合せであってもよい。取外し式ストレージデバイスおよび非取外し式ストレージデバイスの例は、ほんの一部をあげると、フレキシブルディスクドライブおよびハードディスクドライブ（ＨＤＤ）などの磁気ディスクデバイス、コンパクトディスク（ＣＤ）ドライブまたはデジタル多用途ディスク（ＤＶＤ）ドライブなどの光ディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、およびテープドライブを含む。例示のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータなどの情報の格納のための任意の方法または技術で実施された揮発性および不揮発性の、取外し式および非取外し式メディアを含むことができる。
【００６６】
システムメモリ７０６、取外し式ストレージデバイス７３６、および非取外し式ストレージデバイス７３８は、コンピュータストレージ媒体の例である。コンピュータストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、もしくは望ましい情報を格納するために使用されうる、コンピューティングデバイス７００によってアクセスされうる任意の他の媒体を含むが、これらに限定されることはない。任意のそのようなコンピュータストレージ媒体は、コンピューティングデバイス７００の一部であってもよい。
【００６７】
コンピューティングデバイス７００はまた、さまざまなインターフェイスデバイス（たとえば、出力デバイス７４２、周辺インターフェイス７４４、および通信デバイス７４６）から基本構成７０２へのバス／インターフェイスコントローラ７３０を介する通信を容易にするためのインターフェイスバス７４０を含むこともできる。例示の出力デバイス７４２は、グラフィックス処理ユニット７４８およびオーディオ処理ユニット７５０を含み、これらは１つまたは複数のＡ／Ｖポート７５２を介してディスプレイまたはスピーカなどのさまざまな外部デバイスと通信するように構成されてもよい。例示の周辺インターフェイス７４４は、シリアルインターフェイスコントローラ７５４またはパラレルインターフェイスコントローラ７５６を含み、これらは１つまたは複数の入出力ポート７５８を介して入力デバイス（たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど）またはその他の周辺デバイス（たとえば、プリンタ、スキャナなど）などの外部デバイスと通信するように構成されてもよい。例示の通信デバイス７４６はネットワークコントローラ７６０を含み、これは１つまたは複数の通信ポート７６４を介するネットワーク通信リンク上の１つまたは複数のその他のコンピューティングデバイス７６２との通信を容易にするために配置されてもよい。
【００６８】
ネットワーク通信リンクは、通信媒体の一例であってもよい。通信媒体は通常、搬送波または他のトランスポート機構などの変調データ信号のコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって具現されてもよく、任意の情報搬送媒体を含むことができる。「変調データ信号」は、信号の特性セットの１つまたは複数を有する信号、もしくは信号の情報をエンコードするような方法で変更された信号であってもよい。限定的ではなく、一例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、無線周波数（ＲＦ）、マイクロ波、赤外線（ＩＲ）および他の無線媒体などの無線媒体を含むことができるが、これらに限定されることはない。本明細書に使用されているコンピュータ可読媒体という用語は、ストレージ媒体および通信媒体の両方を含むことができる。
【００６９】
コンピューティングデバイス７００は、携帯電話、携帯情報端末（ＰＤＡ）などの小型フォームファクターポータブル（またはモバイル）電子デバイス、パーソナルメディアプレイヤーデバイス、無線Ｗｅｂ視聴デバイス、パーソナルハンドセットデバイス、アプリケーション固有デバイス、または上記の機能のいずれかを含む混合デバイスの一部として実施されてもよい。コンピューティングデバイス７００はまた、ラップトップコンピュータおよびラップトップコンピュータ以外の構成を含むパーソナルコンピュータとして実施されてもよい。
【００７０】
本開示は、本出願において説明される特定の実施形態に関して限定されるべきではなく、実施形態はさまざまな態様を例示することが意図されている。当業者には明らかであるように、その精神および範囲を逸脱することなく多くの変更および変形が行われてもよい。本明細書において列挙される方法および装置に加えて、本開示の範囲内の機能的に等価の方法および装置は、上記の説明から当業者には明らかとなるであろう。そのような変更および変形は、添付の特許請求の範囲内に含まれることが意図される。本開示は、添付の特許請求の範囲の条項、ならびにそのような特許請求の範囲が権利を有する等価物の全範囲によってのみ限定されるものとする。本開示が、当然変化しうるものである特定の方法、試薬、化合物組成、または生態系に限定されないことを理解されたい。また、本明細書において使用される用語が、特定の実施形態を説明することのみを目的としており、限定的であることは意図されていないことも理解されたい。
【００７１】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。さまざまな単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００７２】
通常、本明細書において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（たとえば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない（たとえば、「ａ」および／または「ａｎ」は、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（たとえば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、少なくとも２つの記載、または２つ以上の記載を意味する）。さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステ���を含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００７３】
加えて、本開示の特徴または態様がマーカッシュ形式のグループに関して説明される場合、それにより本開示はまた、マーカッシュ形式のグループの構成要素の任意の個々の構成要素または構成要素のサブグループに関しても説明されることを、当業者であれば理解するであろう。
【００７４】
書面による説明を行うことに関してなど、任意およびすべての目的のため、当業者によって理解されるであろうように、本明細書において開示されるあらゆる範囲はまた、任意およびすべての可能な下位範囲およびその下位範囲の組合せを網羅する。任意の一覧される範囲は、同範囲が少なくとも等価の２分の１、３分の１、４分の１、５分の１、１０分の１などに分割されることを十分に説明および可能にするものと容易に理解されてもよい。非限定的な例として、本明細書において説明される各範囲は、下３分の１、中３分の１、および上３分の１などに容易に分解されてもよい。さらに当業者によって理解されるであろうように、「最大（ｕｐ  ｔｏ）」、「少なくとも（ａｔ  ｌｅａｓｔ）」などのようなすべての表現は、列挙される数を含み、引き続き上記で説明されている下位範囲に分解されてもよい範囲を示す。最後に、当業者には理解されるように、範囲は各々個別の構成要素を含む。したがって、たとえば、１〜３のセルを有するグループは、１、２、または３のセルを有するグループを称する。同様に、１〜５のセルを有するグループは、１、２、３、４、または５のセルを有するグループを称する、というようになる。
【００７５】
以上の記述から、本開示のさまざまな実施形態は本明細書において例示の目的で説明されており、本開示の範囲および精神を逸脱することなくさまざまな変更が行われてもよいことが理解されよう。したがって、本明細書において開示されるさまざまな実施形態は、限定的であることを意図されておらず、真の範囲および精神は後段の特許請求の範囲により示される。
【図１】
0005806248.tif 000003
【図２】
0005806248.tif 000004
【図３】
0005806248.tif 000005
【図４】
0005806248.tif 000006
【図５】
0005806248.tif 000007
【図６】
0005806248.tif 000008
【図７】
0005806248.tif 000009