JP2016005632A - キャッシュデータの量を計算する方法 - Google Patents

キャッシュデータの量を計算する方法 Download PDF

Info

Publication number
JP2016005632A
JP2016005632A JP2015173473A JP2015173473A JP2016005632A JP 2016005632 A JP2016005632 A JP 2016005632A JP 2015173473 A JP2015173473 A JP 2015173473A JP 2015173473 A JP2015173473 A JP 2015173473A JP 2016005632 A JP2016005632 A JP 2016005632A
Authority
JP
Japan
Prior art keywords
area
cache
player character
server
information
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
JP2015173473A
Other languages
English (en)
Other versions
JP6207558B2 (ja
Inventor
修一 倉林
Shuichi Kurabayashi
修一 倉林
吉田 尚史
Hisafumi Yoshida
尚史 吉田
孝典 鷹野
Takanori Takano
孝典 鷹野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Empire Technology Development LLC
Emprie Tech Dev LLC
Original Assignee
Empire Technology Development LLC
Emprie Tech Dev LLC
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 Empire Technology Development LLC, Emprie Tech Dev LLC filed Critical Empire Technology Development LLC
Publication of JP2016005632A publication Critical patent/JP2016005632A/ja
Application granted granted Critical
Publication of JP6207558B2 publication Critical patent/JP6207558B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】オンラインゲームを効率的に実施する。
【解決手段】仮想空間は複数のエリアを有するように構成され、プレイヤーキャラクターは複数のエリアの中のあるエリアに位置する。ロードバランサ150は仮想空間に位置するプレイヤーキャラクターの状況を分析し、複数のエリアの中で第1のエリアから第2のエリアへのプレイヤーキャラクターの移動の確率を計算することと、計算された確率に基づいて、第2のエリアに対応する第2のキャッシュサーバから、第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算することを含む。
【選択図】図1

Description

大規模多人数同時参加型オンラインロールプレイングゲーム(MMORPG:massive multiplayer online role playing game)などのオンラインゲームを楽しむユーザの数は増え続けている。たとえば、米国のブリザードエンターテイメント(Blizzard(登録商標) Entertainment)により運営されるワールドオブウォークラフト(World of Warcraft)のユーザ数は、世界中で1200万人を超えている。前述のようにオンラインゲームを楽しむユーザの数が増え続けているので、クラウドコンピューティングシステムを使用したスケールアウトが重要となる。
しかし、クラウドコンピューティング環境を実施するための既存のインフラストラクチャは通常、電子メールアプリケーションおよびワードプロセッサなど、パーソナルコンピュータ上で稼働するビジネスアプリケーションに適合されているため、オンラインゲームを効率的に実施することは困難である。特に、MMORPGなどのオンラインゲームは、仮想世界においてクライアントにリアルタイムで情報を転送することが要求されるので、データベースサーバとゲームサーバとの間の通信がボトルネックとなる傾向がある。
1つの例において、方法は、仮想空間に位置するプレイヤーキャラクターの状況を分析することであって、仮想空間は複数のエリアを有するように構成され、プレイヤーキャラクターは複数のエリアの中で第1のエリアに位置する、分析することと、分析された状況に少なくとも部分的に基づいて、複数のエリアの中で第1のエリアから第2のエリアへのプレイヤーキャラクターの移動の確率を計算することと、計算された確率に少なくとも部分的に基づいて、第2のエリアに対応する第2のキャッシュサーバから、第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算することとを含むことができる。
別の例において、方法は、ゲームキャラクターの状況および予想位置に少なくとも部分的に基づいて、データベースサーバのデータキャッシュを動的に構成することと、動的構成に少なくとも部分的に基づいて、ゲームキャラクターに関連付けられているゲームプレイヤーによって要求されるゲームデータをキャッシュに入れることとを含むことができる。
さらに別の例において、ロードバランサは、仮想空間に位置するプレイヤーキャラクターの状況を分析するように構成されたプレイヤー状況アナライザであって、仮想空間は複数のエリアを有するように構成され、プレイヤーキャラクターは複数のエリアの中で第1のエリアに位置する、プレイヤー状況アナライザと、仮想空間の複数のエリアを複数のキャッシュサーバに関連付けるように構成されたキャッシュマネージャであって、各キャッシュサーバは割り振られているエリアに関する情報をデータベースサーバからキャッシュに入れる、キャッシュマネージャと、複数のエリアの中で第1のエリアから第2のエリアへのプレイヤーキャラクターの移動の確率を計算するように構成された移動確率計算器と、移動確率計算器によって計算された確率に少なくとも部分的に基づいて、第2のエリアに対応する第2のキャッシュサーバから、第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算器とを含むことができる。
さらに別の例において、コンピュータ可読ストレージ媒体は、ゲームデータを格納するデータベースサーバとゲームサーバとの間のロードバランシングを実施するためのプログラムを格納することができ、プログラムは、仮想空間のエリアとキャッシュサーバとの関連付けを管理するように構成されたキャッシュ管理モジュールであって、各キャッシュサーバは対応するエリアに関連付けられているゲームデータの一部をデータベースサーバからキャッシュに入れる、キャッシュ管理モジュールと、第1のエリアから第2のエリアへのゲームキャラクターの移動の確率および第1のエリアと第2のエリアとの間の距離に少なくとも部分的に基づいて、第2のエリアに対応する第2のキャッシュサーバから第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算モジュールとを含むことができる。
前述の概要は、例示的なものに過ぎず、限定的であることは全く意図されていない。上記で説明される例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴は、図面および後段の詳細な説明を参照することにより明らかとなろう。
本開示の前述の特徴およびその他の特徴は、添付の図面と合わせて、後段の説明および付属の特許請求の範囲を読めば明らかとなろう。これらの図面は開示によるいくつかの実施形態を示すに過ぎず、したがってその範囲を限定すると見なされるものではないことを理解し、本開示は添付の図面を用いてさらに具体的および詳細に説明される。
本明細書において説明される少なくとも一部の実施形態により構成される、ロードバランサが、データベースサーバとゲームサーバとの間のロードバランシングを提供する環境の例示を概略的に示す図である。 本明細書において説明される少なくとも一部の実施形態により構成される、キャッシュサーバと仮想空間エリアとを関連付けるためのメッシュ構造の例示を示す図である。 本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成されたロードバランサの例示を示す概略ブロック図である。 本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成された例示のシステムを概略的に示す図である。 本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するためのプロセスを示す例示の流れ図である。 本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうるコンピュータプログラム製品を示す図である。 本明細書において説明される少なくとも一部の実施形態により構成される、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうる例示のコンピューティングデバイスを示すブロック図である。
以下の詳細な説明において、本明細書の一部を形成する添付の図面が参照される。図面において、文脈に別段の指示がない限り、類似する符号は概して、類似するコンポーネントを識別する。発明を実施するための形態、図面、および特許請求の範囲において説明される例示的な実施形態は、限定的であることを意図されていない。本明細書において提示される主題の精神または範囲を逸脱することなく、その他の実施形態が使用されてもよく、その他の変更が行われてもよい。本明細書において概括的に説明され、図面に示される本開示の態様が、多岐にわたるさまざまな構成において配置され、代替され、組み合わされ、分離され、設計されてもよく、それらすべてが本明細書において明示的に検討されることは容易に理解されよう。
本開示は、とりわけ、MMORPGなどのオンラインゲームを伴うモバイルサービスをホスティングするクラウドコンピューティング環境におけるロードバランシングに関連する方法、装置、システム、デバイス、およびコンピュータプログラム製品を対象とする。
データベースサーバとゲームサーバとの間のゲームのロードバランシングを提供するように構成されたロードバランサに対する技術が概して説明される。一部の例において、クラウドコンピューティング環境におけるゲームは、ゲートウェイサーバ、ゲームサーバ、およびデータベースサーバを含む3つのサーバレイヤを使用して実施されてもよい。一部の例において、ロードバランサは、データベースサーバとゲームサーバとの間のロードバランシングを提供して、トラフィックの増大に起因する両者間の通信ボトルネックを解決することができる。一部の例において、オンラインゲームの場合、ロードバランサは、データベースサーバとゲームサーバとの間のロードバランシングを提供して、ゲームの仮想空間に関する大量のゲームデータの読み出しによって生じる通信ボトルネックを解決することができる。
一部の例において、ロードバランサは、ゲームの仮想空間内のプレイヤーキャラクターの位置および状況のうちの少なくとも1つに少なくとも部分的に基づいてデータベースサーバのデータキャッシュを動的に構成し、動的構成に少なくとも部分的に基づいてユーザ(またはプレイヤー)によって要求されたゲームデータをキャッシュに入れ、それによりゲームサーバからデータベースサーバへのデータアクセスを迅速化することができる。
一部の例において、メモリ内キャッシュサーバなどのデータベースサーバから取り出されたデータをキャッシュに入れる複数のキャッシュサーバが、ゲームサーバからデータベースサーバへのアクセス数を減らすために使用されてもよい。
一部の例において、オンラインゲームサービスの応答速度およびサービス提供キャパシティ(すなわち、ゲームを同時にプレイすることができるプレイヤーの数)を改善するため、ロードバランサは、複数のキャッシュサーバ間でデータのコピーを管理することができる。
一部の例において、ロードバランサは、仮想空間を複数のエリアに分割して、各々のキャッシュサーバがエリアの1つに関するゲームデータをデータベースサーバからキャッシュに入れるように、複数のキャッシュサーバを管理することができる。ロードバランサは、キャッシュサーバとエリアの間の関連付けを管理することができる。
一部の例において、ロードバランサは、ユーザからゲームデータの要求を受信して、受信した要求を参照して分析されたプレイヤーキャラクターの状況に少なくとも部分的に基づいて、第1のエリアから第2のエリアへのプレイヤーキャラクターの移動の確率を計算することができる。
一部の例において、ロードバランサは、仮想空間のマップ情報を使用することにより、前もって確率を静的に計算することができる。
一部の例において、次いでロードバランサは、計算された確率に少なくとも部分的に基づいて、第2のエリアに対応する第2のキャッシュサーバから、第1のエリアに対応する第1のキャッシュサーバへのコピー係数、すなわち第2のキャッシュサーバから第1のキャッシュサーバにコピーするキャッシュデータの量を計算することができる。
一部の例において、すべてのエリアおよびプレイキャラクターのコピー係数を管理することにより、キャッシュサーバは、プレイヤーキャラクターが移動する可能性の高いエリアに関する情報を動的および/または自動的に格納するように構成されてもよく、それによりゲームサーバからデータベースサーバへのアクセス数を減らすことができる。
一部の例において、ロードバランサは、ゲームサーバおよびデータベースサーバから独立したネットワーク装置として実施されてもよい。したがって、ロードバランサは、オンラインゲームサービスの応答速度およびサービス提供キャパシティを改善するため、既存のインフラストラクチャおよびアプリケーションを大幅に変更することなくクラウドコンピューティング環境に導入されてもよい。
図1は、本明細書において説明される少なくとも一部の実施形態による、ロードバランサが、データベースサーバとゲームサーバとの間のロードバランシングを提供する環境の例示を概略的に示す図である。図1に示されるように、ユーザクライアント110は、データベースサーバ130に格納されうるゲームデータの要求をゲームサーバ120に送信することができる。限定的ではなく、一例として、要求は、ゲームサーバ120によって提供されるオンラインゲームサービスのゲームのプレイヤーキャラクターのアクションおよび移動のうちの少なくとも1つに関連付けられてもよい。
一部の実施形態において、データベースサーバ130は、1つまたは複数のプレイヤーキャラクターが存在しうるゲームの仮想空間に関するゲームデータを格納することができる。一部の実施形態において、キャッシュサーバ140−1、140−2、・・・、140−nは、データベースサーバ130に格納されたゲームデータの少なくとも一部をキャッシュに入れることができる。一部の実施形態において、キャッシュサーバ140−1、140−2、・・・、140−nは、それぞれ、仮想空間内の複数のエリアのうちの1つに関連付けられているゲームデータの少なくとも一部をデータベースサーバ130からキャッシュに入れることができる。限定的ではなく、一例として、キャッシュサーバ140−1、140−2、・・・、140−nは、メモリ内キャッシュサーバであってもよい。限定的ではなく、一例として、エリアのそれぞれのサイズは、クラウドコンピューティング環境に提供されるキャッシュサーバ140−1、140−2、・・・、140−nの合計数、および/またはキャッシュサーバ140−1、140−2、・・・、140−nのメモリ容量に応じて異なることもある。たとえば、クラウドコンピューティング環境に十分な数のキャッシュサーバ140−1、140−2、・・・、140−nが提供され、そのメモリ容量も十分である場合、エリアのサイズは比較的小さく設定されてもよいが、キャッシュサーバ140−1、140−2、・・・、140−nの数が十分ではない、および/またはそのメモリ容量が小さい場合は、エリアのサイズは比較的大きく設定されてもよい。
一部の実施形態において、ロードバランサ150は、キャッシュサーバ140−1、140−2、・・・、140−nと仮想空間の関連付けを管理することができる。限定的ではなく、一例として、ロードバランサ150は、キャッシュサーバ140−1、140−2、・・・、140−nをそれぞれ、エリア160−1、160−2、・・・、160−nに割り振ることができ、キャッシュサーバ140−1、140−2、・・・、140−nにそれぞれ、エリア160−1、160−2、・・・、160−nに関連付けられているゲームデータをデータベースサーバ130からキャッシュに入れさせるかまたは取り出させることができる。
一部の実施形態において、ロードバランサ150はまた、ユーザクライアント110からの要求をゲームサーバ120から受信することができる。次いで、ロードバランサ150は、受信した要求を分析することができ、それからユーザクライアント110に関連付けられているプレイヤーキャラクターの状況情報を取得することができる。限定的ではなく、一例として、状況情報は、プレイヤーキャラクターの位置情報、レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも1つを含むことができる。
一部の実施形態において、ロードバランサ150はまた、要求から取得された状況情報に少なくとも部分的に基づいて、エリア間の仮想空間内のプレイヤーキャラクターの移動の確率を計算することもできる。限定的ではなく、一例として、ロードバランサ150は、現在位置とその他のエリアとの間の距離を考慮に入れることによって、プレイヤーキャラクターの現在位置から仮想空間内のその他のエリアへの仮想空間内のプレイヤーキャラクターの移動の確率を計算することができる。
一部の実施形態において、ロードバランサ150はまた、計算された確率に少なくとも部分的に基づいて、キャッシュサーバ140−1、140−2、・・・、140−n間のコピー係数、すなわちキャッシュサーバ140−1、140−2、・・・、140−n間でコピーするキャッシュデータの量を計算することができる。限定的ではなく、一例として、ロードバランサ150は、エリア160−1からエリア160−2へのユーザクライアント110に関連付けられているプレイヤーキャラクターの移動の計算された確率に少なくとも部分的に基づいて、エリア160−2に対応するキャッシュサーバ140−2からエリア160−1に対応するキャッシュサーバ140−1へのコピー係数、すなわちエリア160−2に対応するキャッシュサーバ140−2からエリア160−1に対応するキャッシュサーバ140−1にコピーするキャッシュデータの量を計算することができる。一部の実施形態において、キャッシュサーバ140−2からキャッシュサーバ140−1へのコピー係数は、エリア160−1からエリア160−2への移動の計算された確率が増大するのに応じて増大することがある。一部の実施形態において、キャッシュサーバ140−2からキャッシュサーバ140−1へのコピー係数は、エリア160−1とエリア160−2との間の距離が増大するのに応じて減少することがある。
仮想空間内の点xに対応するキャッシュサーバから、仮想空間内の点xに対応するもう1つのキャッシュサーバに情報をコピーするためのコピー係数、すなわち、copy_factor(x,x)の例は、以下のような例示の式により計算されてもよい。
Figure 2016005632
式1について、item_count(x)は、点xに対応するキャッシュサーバ内のキャッシュデータの量を示し、probability(x,x)は、点xから点xへのユーザクライアント110に関連付けられているプレイヤーキャラクターの移動の確率を示し、distance(x,x)は、仮想空間内の点xから点xまでの距離を示す。
一部の実施形態において、ロードバランサ150は、上記の式1により計算されたコピー係数に少なくとも部分的に基づいて、キャッシュサーバ140−1、140−2、・・・、140−n間でキャッシュデータの計算された量をコピーすることによって、キャッシュサーバ140−1、140−2、・・・、140−nを動的に管理または構成することができ、それによりデータベースサーバ130とゲームサーバ120との間のロードバランシングをもたらすことができる。
図2(A)および(B)はそれぞれ、本明細書において説明される少なくとも一部の実施形態による、キャッシュサーバと仮想空間エリアとを関連付けるためのメッシュ構造の例示、およびキャッシュデータをキャッシュサーバ間でコピーすることの例示を示す図である。示されているように、仮想空間200は、複数のエリア210−1、210−2、・・・、210−25に分割されてもよい。図2(A)および(B)は、空間200が25個の同じサイズのエリア210−1、210−2、・・・、210−25に分割されることを示すが、当業者であれば、空間20が任意のサイズおよび/または任意の数のエリアに分割されてもよいことが理解されよう。
一部の実施形態において、エリア210−1、210−2、・・・、210−25に関するゲームデータは、データベースサーバ(たとえば、データベースサーバ130)に格納されてもよい。複数のキャッシュサーバ(たとえば、キャッシュサーバ140−1、140−2、・・・、140−n)は、データベースサーバへのアクセス数を減らすために、エリア210−1、210−2、・・・、210−25に関するゲームデータをデータベースサーバから取り出すことおよび/またはキャッシュに入れることができる。一部の実施形態において、複数のキャッシュサーバの各々は、エリア210−1、210−2、・・・、210−25の各々に関連付けられるかまたは割り振られてもよく、エリア210−1、210−2、・・・、210−25のうちの対応する1つに関するゲームデータをキャッシュに入れることができる。
図2(A)に示されるように、プレイヤーキャラクターが現在エリア210−14に位置している場合、ロードバランサ(たとえば、ロードバランサ150)は、エリア210−14からその他のエリアへのプレイヤーキャラクターの移動の確率を計算することができ、他のエリアに対応する他のキャッシュサーバからエリア210−14に対応するキャッシュサーバへのコピー係数を計算することができる。限定的ではなく、一例として、ロードバランサが、エリア210−14から図2(A)に示される他のエリアへのプレイヤーキャラクターの移動の確率を見出して計算し、図2(B)に示されるエリアに対応するキャッシュサーバの各々のキャッシュデータの量を見出す場合、ロードバランサは、上記の式1に従って、他のエリアに対応するキャッシュサーバからエリア210−14に対応するキャッシュサーバへのそれぞれのコピー係数を計算することができる。ロードバランサは、上記の式1により計算されたコピー係数に少なくとも部分的に基づいて、キャッシュサーバ間でキャッシュデータをコピーすることによって、キャッシュサーバを動的に管理または構成することができ、それによりデータベースサーバとゲームサーバとの間のロードバランシングをもたらすことができる。
図3は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成されたロードバランサの例示的な例を示す概略ブロック図である。示されるように、ロードバランサ150は、受信ユニット310、プレイヤー状況分析器320、キャッシュマネージャ330、移動確率計算器340、コピー係数計算器350、および命令ユニット360を含むことができる。別個のコンポーネントとして示されているが、さまざまなコンポーネントは、開示される主題の範囲内で検討される間に、追加のコンポーネントに分割されるか、より少ないコンポーネントに結合されるか、またはすべて除去されてもよい。
受信ユニット310は、ゲームのユーザクライアントからプレイヤーキャラクターの要求を受信するように構成されてもよい。一部の実施形態において、プレイヤーキャラクターの要求は、プレイヤーキャラクターのアクションおよび移動のうちの少なくとも1つに関連付けられてもよい。限定的ではなく、一例として、プレイヤーキャラクターのアクションは、ゲームの仮想空間における移動手段を使用したアクションに関連付けられてもよい。
プレイヤーキャラクター分析器320は、仮想空間に位置するプレイヤーキャラクターの状況を分析するように構成されてもよい。一部の実施形態において、仮想空間は、複数のエリアを有するように構成されてもよく、プレイヤーキャラクターは、複数のエリアの中で第1のエリアに位置してもよい。限定的ではなく、一例として、プレイヤーキャラクターの状況は、プレイヤーキャラクターの位置情報、プレイヤーキャラクターのレベルの情報、プレイヤーキャラクターの機器の情報、プレイヤーキャラクターを含むパーティの組織情報、プレイヤーキャラクターのクエストの情報、およびプレイヤーキャラクターが使用している移動手段の情報に関連付けられてもよい。
一部の実施形態において、プレイヤー状況分析器320は、プレイヤーキャラクターの要求に基づいてプレイヤーキャラクターの状況を分析することができる。限定的ではなく、一例として、要求はプレイヤーキャラクターの情報を含むことができ、プレイヤー状況分析器320は、要求からプレイヤーキャラクターの情報を取得して、取得した情報を使用してプレイヤーキャラクターの状況を分析することができる。
キャッシュマネージャ330は、仮想空間の複数のエリア(たとえば、エリア160−1、160−2、・・・、160−n)を、複数のキャッシュサーバ(たとえば、キャッシュサーバ140−1、140−2、・・・、140−n)に関連付けるように構成されてもよい。一部の実施形態において、キャッシュサーバは各々、割り振られたエリアに関する情報をデータベースサーバ(たとえば、データベースサーバ130)からキャッシュに入れることができる。一部の実施形態において、キャッシュサーバは、メモリ内キャッシュサーバを含むことができる。
移動確率計算器340は、複数のエリアの中で第1のエリアから第2のエリアへのプレイヤーキャラクターの移動の確率を計算するように構成されてもよい。一部の実施形態において、移動確率計算器340は、プレイヤーキャラクターのレベルの情報、プレイヤーキャラクターを含むパーティの組織情報、プレイヤーキャラクターのクエストの情報、およびプレイヤーキャラクターが使用している移動手段の情報など、プレイヤー状況分析器320によって分析されたプレイヤーの状況に少なくとも部分的に基づいて確率を計算することができる。
コピー係数計算器350は、移動確率計算器340によって計算された移動の確率に少なくとも部分的に基づいて、第2のエリアに対応する第2のキャッシュサーバから第1のエリアに対応する第1のキャッシュサーバへのコピー係数、すなわち第2のエリアに対応する第2のキャッシュサーバから第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されてもよい。一部の実施形態において、コピー係数計算器350は、第1のエリアと第2のエリアとの間の距離を考慮して、第2のキャッシュサーバから第1のキャッシュサーバにコピーするキャッシュデータの量を計算することができる。
命令ユニット360は、キャッシュマネージャ330に、コピー係数計算器350によって計算されたキャッシュコピーの量に少なくとも部分的に基づいて、第2のエリアに関連付けられているデータを第2のキャッシュサーバから第1のキャッシュサーバにコピーするよう指示し、それによりデータベースサーバとゲームサーバ間のロードバランシングをもたらすように構成されてもよい。一部の実施形態において、第2のエリアに関連付けられているデータは、第2のエリアの環境情報および第2のエリアにおけるプレイヤーキャラクターの情報のうちの少なくとも1つを含む。限定的ではなく、一例として、第1のエリアの環境情報および第2のエリアの環境情報は、それぞれ第1のエリアおよび第2のエリアの気象情報を含むことができる。
図4は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するように構成された例示のシステムを概略的に示す図である。示されているように、ユーザが、たとえば、大規模多人数同時参加型オンラインロールプレイングゲーム(MMORPG)プログラムなどのゲームプログラムをユーザクライアント110上で稼働または実行する場合、ユーザクライアント110は、データベースサーバ130に格納されうる、仮想空間内のプレイヤーキャラクターに関連するゲームデータの要求をゲームサーバ120に送信することができる。次いで、ゲームサーバ120は、受信した要求をロードバランサ150に送信することができる。
一部の実施形態において、ロードバランサ150内の受信ユニット310は、ゲームサーバからゲームデータの要求を受信することができる。次いで、受信ユニット310は、受信した要求をプレイヤー状況分析器320に送信することができる。一部の実施形態において、プレイヤー状況分析器320は、プレイヤーキャラクターの要求に基づいて、プレイヤーキャラクターのアクションまたは移動に関連付けられているプレイヤーキャラクターの状況を分析することができる。
一部の実施形態において、キャッシュサーバ140−1、140−2、・・・、140−nと仮想空間エリアとの関連付けを管理することができる、ロードバランサ150内のキャッシュマネージャ330は、プレイヤー状況分析器320によって分析されたプレイヤーキャラクターの状況に少なくとも部分的に基づいてプレイヤーキャラクターの現在の位置に対応するキャッシュサーバを含む、関連するキャッシュサーバを見出すことができる。
一部の実施形態において、ロードバランサ150内の移動確率計算器340は、プレイヤー状況分析器320によって分析されたプレイヤーキャラクターの状況に少なくとも部分的に基づいて、プレイヤーキャラクターの現在の位置が属しうる第1の仮想空間エリアから第2の仮想空間エリアへのプレイヤーキャラクターの移動の確率を計算することができる。
一部の実施形態において、ロードバランサ150内のコピー係数計算器350は、移動確率計算器340によって計算された確率に少なくとも部分的に基づいて、第2のエリアに対応する第2のキャッシュサーバから、第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算することができる。
一部の実施形態において、命令ユニット360は、キャッシュマネージャ330に、キャッシュコピーの計算された量に少なくとも部分的に基づいて、第2のエリアに関連付けられているデータを第2のキャッシュサーバから第1のキャッシュサーバにコピーすることができる。
一部の実施形態において、ロードバランサ150は、コピー係数計算器350によって計算された第2のキャッシュサーバから第1のキャッシュサーバにコピーするキャッシュデータの量に少なくとも部分的に基づいて、第2のキャッシュサーバから第1のキャッシュサーバにキャッシュデータの計算された量をコピーすることにより、キャッシュサーバ140−1、140−2、・・・、140−nを動的に管理または構成することができる。
図5は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するためのプロセスを示す例示的な流れ図である。図5に示される方法は、上記で説明されている受信ユニット310、プレイヤー状況分析器320、キャッシュマネージャ330、移動確率計算器340、コピー係数計算器350、および命令ユニット360を含むロードバランサ150などのロードバランサにおいて実施されてもよい。例示のプロセスは、1つまたは複数のブロック500、510、520、および/または530によって示される、1つまたは複数の操作、アクション、または機能を含むことができる。別個のブロックとして示されているが、さまざまなブロックは、望ましい実施態様に応じて、追加のブロックに分割されるか、より少ないブロックに結合されるか、または除去されてもよい。プロセスは、ブロック500から開始する。
ブロック500において、ロードバランサは、プレイヤーキャラクターに関連付けられているゲームのプレイヤーから、仮想空間に位置するプレイヤーキャラクターに関連する要求を受信することができる。限定的ではなく、一例として、要求は、プレイヤーキャラクターのアクションおよび移動のうちの少なくとも1つに関連付けられてもよい。一部の実施形態において、仮想空間は、複数のエリアを有するように構成されてもよく、プレイヤーキャラクターは、複数のエリアの中で第1のエリアに位置してもよい。プロセスは、ブロック500からブロック510へと進むことができる。
ブロック510において、ロードバランサは、プレイヤーキャラクターに関連する要求に少なくとも部分的に基づいてプレイヤーキャラクターの状況を分析することができる。限定的ではなく、一例として、プレイヤーキャラクターの状況は、プレイヤーキャラクターの位置情報、レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも1つに関連付けられている。プロセスは、ブロック510からブロック520へと進むことができる。
ブロック520において、ロードバランサは、複数のエリアの中で第1のエリアから第2のエリアへのプレイヤーキャラクターの移動の確率を計算することができる。一部の実施形態において、ロードバランサは、分析された状況に少なくとも部分的に基づいて確率を計算することができる。限定的ではなく、一例として、ロードバランサは、プレイヤーキャラクターのレベルの情報、プレイヤーキャラクターを含むパーティの組織情報、プレイヤーキャラクターのクエストの情報、およびプレイヤーキャラクターが使用している移動手段の情報を考慮して確率を計算することができる。プロセスは、ブロック520からブロック530へと進むことができる。
ブロック530において、ロードバランサ150は、第2のエリアに対応する第2のキャッシュサーバから第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量、すなわち第2のキャッシュサーバから第1のキャッシュサーバへのコピー係数を計算することができる。
一部の実施形態において、ロードバランサは、計算された確率に少なくとも部分的に基づいて、コピーするキャッシュデータの量を計算することができる。
一部の実施形態において、ロードバランサは、第1のエリアと第2のエリアとの間の距離にさらに基づいて、コピーするキャッシュデータの量を計算することができる。
一部の実施形態において、第1のキャッシュサーバおよび第2のキャッシュサーバはそれぞれ、第1のエリアに関する情報および第2のエリアに関する情報をデータベースサーバからキャッシュに入れることができる。
一部の実施形態において、移動の確率が高くなると、それに応じてキャッシュコピーの量も増大する。
一部の実施形態において、ロードバランサは、第2のキャッシュサーバから第1のキャッシュサーバにキャッシュデータの計算された量をコピーすることにより、キャッシュサーバを動的に管理または構成することができる。
本明細書において開示されるこのプロセスおよびその他のプロセスおよび方法について、プロセスおよび方法で実行される機能が異なる順序で実施されてもよいことを、当業者であれば理解するであろう。さらに、概説されるステップおよび操作は例として示されているに過ぎず、ステップおよび操作の一部は、開示される実施形態の本質を損なうことなく、オプションの、より少ないステップおよび操作に結合されてもよいか、または追加のステップおよび操作に拡大されてもよい。
図6は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうるコンピュータプログラム製品を示す図である。プログラム製品600は、信号搬送媒体602を含むことができる。信号搬送媒体602は、たとえばプロセッサによって実行されるとき、図1〜図5に関して上記で説明される機能を提供することができる1つまたは複数の命令604を含むことができる。一例として、命令604は、仮想空間のエリアとキャッシュサーバとの関連付けを管理するための1つまたは複数の命令であって、各キャッシュサーバは対応するエリアに関連付けられているゲームデータの一部をデータベースサーバからキャッシュに入れる命令と、第1のエリアから第2のエリアへのゲームキャラクターの移動の確率および第1のエリアと第2のエリアとの間の距離に少なくとも部分的に基づいて、第2のエリアに対応する第2のキャッシュサーバから第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算するための1つまたは複数の命令とを含むことができる。したがって、たとえば、図3を参照すると、ロードバランサ150は、命令604に応答して、図5に示されるブロックのうちの1つまたは複数を開始することができる。
一部の実施形態において、信号搬送媒体602は、ハードディスクドライブ、CD、DVD,デジタルテープ、メモリなどのコンピュータ可読媒体606を含むことができるが、これらに限定されることはない。一部の実施形態において、信号搬送媒体602は、メモリ、読取り/書込み(R/W)CD、R/W DVDなどの記録可能媒体608を含むことができるが、これらに限定されることはない。一部の実施形態において、信号搬送媒体602は、デジタルおよび/またはアナログ通信媒体など(たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど)の通信媒体610を含むことができるが、これらに限定されることはない。したがって、たとえば、プログラム製品600は、RF信号搬送媒体602によってロードバランサ150の1つまたは複数のモジュールに搬送されてもよく、信号搬送媒体602は無線通信媒体610(たとえば、IEEE802.11規格に適合する無線通信媒体)により搬送される。
図7は、本明細書において説明される少なくとも一部の実施形態による、データベースサーバとゲームサーバとの間のロードバランシングを提供するために使用されうる例示のコンピューティングデバイスを示すブロック図である。これらの例において、コンピューティングデバイス700の要素は、MMORPGなどのオンラインゲームを伴うモバイルサービスをホスティングするクラウドコンピューティングシステムのために配置または構成されてもよい。極めて基本的な構成702において、コンピューティングデバイス700は通常、1つまたは複数のプロセッサ704およびシステムメモリ706を含む。メモリバス708は、プロセッサ704とシステムメモリ706との間で通信するために使用されてもよい。
望ましい構成に応じて、プロセッサ704は、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル信号プロセッサ(DSP)、またはそれらの任意の組合せを含む任意のタイプであってもよいが、これらに限定されることはない。プロセッサ704は、レベル1キャッシュ710およびレベル2キャッシュ712など、1つまたは複数のレベルのキャッシング、プロセッサコア714、およびレジスタ716を含むことができる。例示のプロセッサコア714は、演算論理装置(ALU:arithmetic logic unit)、浮動小数点演算ユニット(FPU:floating point unit)、デジタル信号処理コア(DSP Core)、またはそれらの任意の組合せを含むことができる。例示のメモリコントローラ718はまた、プロセッサ704と共に使用されてもよいか、または一部の実施態様において、メモリコントローラ718はプロセッサ704の内部部品であってもよい。
望ましい構成に応じて、システムメモリ706は、(RAMなどの)揮発性メモリ、(たとえば、ROM、フラッシュメモリなどの)不揮発性メモリ、またはそれらの任意の組合せを含む任意のタイプであってもよいが、これらに限定されることはない。システムメモリ706は通常、オペレーティングシステム720、1つまたは複数のアプリケーション722、およびプログラムデータ724を含むことができる。アプリケーション722は、図3に示されるロードバランサ150のアーキテクチャに関して説明されているアクションを含むか、または図5に示される流れ図に関して説明されているアクションを含む本明細書において説明される機能を実行するように配置されうる命令726を含むことができる。プログラムデータ724は、命令726を実施するために使用されうるデータ(たとえば、キャッシュサーバと仮想空間エリアとを関連付けるためのメッシュ構造)を含むことができる。一部の実施形態において、アプリケーション722は、本明細書において説明されるロードバランサのための命令の実施態様のように、オペレーティングシステム720上でプログラムデータ724と共に動作するように配置されてもよい。
コンピューティングデバイス700は、追加の特徴または機能、および追加のインターフェイスを有して、基本構成702と、任意の必要なデバイスおよびインターフェイスとの通信を容易にすることができる。たとえば、バス/インターフェイスコントローラ730は、ストレージインターフェイスバス734を介して基本構成702と1つまたは複数のデータストレージデバイス732との間の通信を容易にするために使用されてもよい。データストレージデバイス732は、取外し式ストレージデバイス736、非取外し式ストレージデバイス738、またはその組合せであってもよい。取外し式ストレージデバイスおよび非取外し式ストレージデバイスの例は、ほんの一部をあげると、フレキシブルディスクドライブおよびハードディスクドライブ(HDD)などの磁気ディスクデバイス、コンパクトディスク(CD)ドライブまたはデジタル多用途ディスク(DVD)ドライブなどの光ディスクドライブ、ソリッドステートドライブ(SSD)、およびテープドライブを含む。例示のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータなどの情報の格納のための任意の方法または技術で実施された揮発性および不揮発性の、取外し式および非取外し式メディアを含むことができる。
システムメモリ706、取外し式ストレージデバイス736、および非取外し式ストレージデバイス738は、コンピュータストレージ媒体の例である。コンピュータストレージ媒体は、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、もしくは望ましい情報を格納するために使用されうる、コンピューティングデバイス700によってアクセスされうる任意の他の媒体を含むが、これらに限定されることはない。任意のそのようなコンピュータストレージ媒体は、コンピューティングデバイス700の一部であってもよい。
コンピューティングデバイス700はまた、さまざまなインターフェイスデバイス(たとえば、出力デバイス742、周辺インターフェイス744、および通信デバイス746)から基本構成702へのバス/インターフェイスコントローラ730を介する通信を容易にするためのインターフェイスバス740を含むこともできる。例示の出力デバイス742は、グラフィックス処理ユニット748およびオーディオ処理ユニット750を含み、これらは1つまたは複数のA/Vポート752を介してディスプレイまたはスピーカなどのさまざまな外部デバイスと通信するように構成されてもよい。例示の周辺インターフェイス744は、シリアルインターフェイスコントローラ754またはパラレルインターフェイスコントローラ756を含み、これらは1つまたは複数の入出力ポート758を介して入力デバイス(たとえば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど)またはその他の周辺デバイス(たとえば、プリンタ、スキャナなど)などの外部デバイスと通信するように構成されてもよい。例示の通信デバイス746はネットワークコントローラ760を含み、これは1つまたは複数の通信ポート764を介するネットワーク通信リンク上の1つまたは複数のその他のコンピューティングデバイス762との通信を容易にするために配置されてもよい。
ネットワーク通信リンクは、通信媒体の一例であってもよい。通信媒体は通常、搬送波または他のトランスポート機構などの変調データ信号のコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって具現されてもよく、任意の情報搬送媒体を含むことができる。「変調データ信号」は、信号の特性セットの1つまたは複数を有する信号、もしくは信号の情報をエンコードするような方法で変更された信号であってもよい。限定的ではなく、一例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、無線周波数(RF)、マイクロ波、赤外線(IR)および他の無線媒体などの無線媒体を含むことができるが、これらに限定されることはない。本明細書に使用されているコンピュータ可読媒体という用語は、ストレージ媒体および通信媒体の両方を含むことができる。
コンピューティングデバイス700は、携帯電話、携帯情報端末(PDA)などの小型フォームファクターポータブル(またはモバイル)電子デバイス、パーソナルメディアプレイヤーデバイス、無線Web視聴デバイス、パーソナルハンドセットデバイス、アプリケーション固有デバイス、または上記の機能のいずれかを含む混合デバイスの一部として実施されてもよい。コンピューティングデバイス700はまた、ラップトップコンピュータおよびラップトップコンピュータ以外の構成を含むパーソナルコンピュータとして実施されてもよい。
本開示は、本出願において説明される特定の実施形態に関して限定されるべきではなく、実施形態はさまざまな態様を例示することが意図されている。当業者には明らかであるように、その精神および範囲を逸脱することなく多くの変更および変形が行われてもよい。本明細書において列挙される方法および装置に加えて、本開示の範囲内の機能的に等価の方法および装置は、上記の説明から当業者には明らかとなるであろう。そのような変更および変形は、添付の特許請求の範囲内に含まれることが意図される。本開示は、添付の特許請求の範囲の条項、ならびにそのような特許請求の範囲が権利を有する等価物の全範囲によってのみ限定されるものとする。本開示が、当然変化しうるものである特定の方法、試薬、化合物組成、または生態系に限定されないことを理解されたい。また、本明細書において使用される用語が、特定の実施形態を説明することのみを目的としており、限定的であることは意図されていないことも理解されたい。
本明細書における実質的にすべての複数形および/または単数形の用語の使用に対して、当業者は、状況および/または用途に適切なように、複数形から単数形に、および/または単数形から複数形に変換することができる。さまざまな単数形/複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
通常、本明細書において、特に添付の特許請求の範囲(たとえば、添付の特許請求の範囲の本体部)において使用される用語は、全体を通じて「オープンな(open)」用語として意図されていることが、当業者には理解されよう(たとえば、用語「含む(including)」は、「含むがそれに限定されない(including but not limited to)」と解釈されるべきであり、用語「有する(having)」は、「少なくとも有する(having at least)」と解釈されるべきであり、用語「含む(includes)」は、「含むがそれに限定されない(includes but is not limited to)」と解釈されるべきである、など)。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも1つの(at least one)」および「1つまたは複数の(one or more)」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「1つまたは複数の」または「少なくとも1つの」および「a」または「an」などの不定冠詞を含む場合であっても、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に1つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう(たとえば、他の修飾語なしでの「2つの記載(two recitations)」の単なる記載は、少なくとも2つの記載、または2つ以上の記載を意味する)。さらに、「A、BおよびC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、およびCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。「A、B、またはC、などの少なくとも1つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている(たとえば、「A、B、またはCの少なくとも1つを有するシステム」は、Aのみ、Bのみ、Cのみ、AおよびBを共に、AおよびCを共に、BおよびCを共に、ならびに/またはA、B、およびCを共に、などを有するシステムを含むが、それに限定されない)。2つ以上の代替用語を提示する事実上いかなる離接する語および/または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方(one of the terms)、当該用語のいずれか(either of the terms)、または両方の用語(both terms)を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「AまたはB」は、「A」または「B」あるいは「AおよびB」の可能性を含むことが理解されよう。
加えて、本開示の特徴または態様がマーカッシュ形式のグループに関して説明される場合、それにより本開示はまた、マーカッシュ形式のグループの構成要素の任意の個々の構成要素または構成要素のサブグループに関しても説明されることを、当業者であれば理解するであろう。
書面による説明を行うことに関してなど、任意およびすべての目的のため、当業者によって理解されるであろうように、本明細書において開示されるあらゆる範囲はまた、任意およびすべての可能な下位範囲およびその下位範囲の組合せを網羅する。任意の一覧される範囲は、同範囲が少なくとも等価の2分の1、3分の1、4分の1、5分の1、10分の1などに分割されることを十分に説明および可能にするものと容易に理解されてもよい。非限定的な例として、本明細書において説明される各範囲は、下3分の1、中3分の1、および上3分の1などに容易に分解されてもよい。さらに当業者によって理解されるであろうように、「最大(up to)」、「少なくとも(at least)」などのようなすべての表現は、列挙される数を含み、引き続き上記で説明されている下位範囲に分解されてもよい範囲を示す。最後に、当業者には理解されるように、範囲は各々個別の構成要素を含む。したがって、たとえば、1〜3のセルを有するグループは、1、2、または3のセルを有するグループを称する。同様に、1〜5のセルを有するグループは、1、2、3、4、または5のセルを有するグループを称する、というようになる。
以上の記述から、本開示のさまざまな実施形態は本明細書において例示の目的で説明されており、本開示の範囲および精神を逸脱することなくさまざまな変更が行われてもよいことが理解されよう。したがって、本明細書において開示されるさまざまな実施形態は、限定的であることを意図されておらず、真の範囲および精神は後段の特許請求の範囲により示される。

Claims (22)

  1. 仮想空間に位置するプレイヤーキャラクターの状況を分析することであって、前記仮想空間は複数のエリアを有するように構成され、前記プレイヤーキャラクターは前記複数のエリアの中で第1のエリアに位置する、分析することと、
    前記分析された状況に少なくとも部分的に基づいて、前記複数のエリアの中で前記第1のエリアから第2のエリアへの前記プレイヤーキャラクターの移動の確率を計算することと、
    前記計算された確率に少なくとも部分的に基づいて、前記第2のエリアに対応する第2のキャッシュサーバから、前記第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算することと
    を含む方法。
  2. ゲームのプレイヤーから前記プレイヤーキャラクターに関連する要求を受信することをさらに含み、
    前記分析することは、前記プレイヤーキャラクターに関連する前記要求に少なくとも部分的に基づく、
    請求項1に記載の方法。
  3. 前記プレイヤーキャラクターに関連する前記要求は、前記プレイヤーキャラクターのアクションおよび移動のうちの少なくとも1つに関連付けられている請求項2に記載の方法。
  4. 第1のキャッシュサーバおよび第2のキャッシュサーバはメモリ内キャッシュサーバである請求項1に記載の方法。
  5. 前記第1のキャッシュサーバおよび前記第2のキャッシュサーバはそれぞれ、前記第1のエリアに関する情報および前記第2のエリアに関する情報をデータベースサーバからキャッシュに入れる請求項1に記載の方法。
  6. 移動の前記確率が高くなると、それに応じてキャッシュコピーの前記量も増大する請求項1に記載の方法。
  7. コピーするキャッシュデータの前記量を前記計算することは、前記第1のエリアと前記第2のエリアとの間の距離に少なくとも部分的に基づいて実行される請求項1に記載の方法。
  8. 前記プレイヤーキャラクターの前記状況は、前記プレイヤーキャラクターの位置情報、レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも1つに関連付けられている請求項1に記載の方法。
  9. コピーするキャッシュデータの前記計算された量に少なくとも部分的に基づいて、前記第2のエリアに関連付けられているデータを前記第2のキャッシュサーバから前記第1のキャッシュサーバにコピーすることをさらに含む請求項1に記載の方法。
  10. 前記第2のエリアに関連付けられている前記データは、前記第2のエリアの環境情報および前記第2のエリアにおける前記プレイヤーキャラクターの情報のうちの少なくとも1つを含む請求項9に記載の方法。
  11. ゲームキャラクターの状況および予想位置に少なくとも部分的に基づいて、データベースサーバのデータキャッシュを動的に構成することと、
    前記動的構成に少なくとも部分的に基づいて、前記ゲームキャラクターに関連付けられているゲームプレイヤーによって要求されるゲームデータをキャッシュに入れることと
    を含む方法。
  12. 前記動的な構成は、現在の位置から他の位置への前記ゲームキャラクターの移動の確率に少なくとも部分的に基づいて実行される請求項11に記載の方法。
  13. 仮想空間に位置するプレイヤーキャラクターの状況を分析するように構成されたプレイヤー状況分析器であって、前記仮想空間は複数のエリアを有するように構成され、前記プレイヤーキャラクターは前記複数のエリアの中で第1のエリアに位置する、プレイヤー状況分析器と、
    前記仮想空間の前記複数のエリアを複数のキャッシュサーバに関連付けるように構成されたキャッシュマネージャであって、各キャッシュサーバは割り振られているエリアに関する情報をデータベースサーバからキャッシュに入れる、キャッシュマネージャと、
    前記複数のエリアの中で前記第1のエリアから第2のエリアへの前記プレイヤーキャラクターの移動の確率を計算するように構成された移動確率計算器と、
    前記移動確率計算器によって計算された前記確率に少なくとも部分的に基づいて、前記第2のエリアに対応する第2のキャッシュサーバから、前記第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算器と
    を備えるロードバランサ。
  14. ゲームのプレイヤーから前記プレイヤーキャラクターの要求を受信するように構成された受信ユニットであって、前記プレイヤーキャラクターの前記要求は、前記プレイヤーキャラクターのアクションおよび移動のうちの少なくとも1つに関連付けられている、受信ユニットをさらに備え、
    前記プレイヤー状況分析器は、前記プレイヤーキャラクターの前記要求に少なくとも部分的に基づいて前記プレイヤーキャラクターの前記状況を分析するようにさらに構成される請求項13に記載のロードバランサ。
  15. 前記キャッシュマネージャに、キャッシュコピーの前記計算された量に少なくとも部分的に基づいて、前記第2のエリアに関連付けられているデータを前記第2のキャッシュサーバから前記第1のキャッシュサーバにコピーするよう指示するように構成された命令ユニットを
    さらに備える請求項13に記載のロードバランサ。
  16. 前記第2のエリアに関連付けられている前記データは、前記第2のエリアの環境情報および前記第2のエリアにおける前記プレイヤーキャラクターの情報のうちの少なくとも1つを含む請求項15に記載のロードバランサ。
  17. 前記第1のキャッシュサーバおよび前記第2のキャッシュサーバはメモリ内キャッシュサーバである請求項13に記載のロードバランサ。
  18. 前記コピー係数計算器は、前記第1のエリアと前記第2のエリアとの間の距離に少なくとも部分的に基づいて、前記第2のキャッシュサーバから前記第1のキャッシュサーバにコピーするキャッシュデータの前記量を計算するようにさらに構成されている請求項13に記載のロードバランサ。
  19. 前記プレイヤーキャラクターの前記状況は、前記プレイヤーキャラクターの位置情報、レベル情報、機器情報、パーティ組織情報、クエスト情報、および移動手段情報のうちの少なくとも1つに関連付けられている請求項13に記載のロードバランサ。
  20. ゲームデータを格納するデータベースサーバとゲームサーバとの間のロードバランシングを実施するためのプログラムを格納するコンピュータ可読ストレージ媒体であって、前記プログラムは、
    仮想空間のエリアとキャッシュサーバとの関連付けを管理するように構成されたキャッシュ管理モジュールであって、各キャッシュサーバは、対応するエリアに関連付けられている前記ゲームデータの一部を前記データベースサーバからキャッシュに入れる、キャッシュ管理モジュールと、
    第1のエリアから第2のエリアへのゲームキャラクターの移動の確率および前記第1のエリアと前記第2のエリアとの間の距離に少なくとも部分的に基づいて、前記第2のエリアに対応する第2のキャッシュサーバから前記第1のエリアに対応する第1のキャッシュサーバにコピーするキャッシュデータの量を計算するように構成されたコピー係数計算モジュールと
    を備えるコンピュータ可読ストレージ媒体。
  21. 前記プログラムが、
    前記プレイヤーキャラクターの状況を分析するように構成されたプレイヤー状況分析器をさらに備え、
    前記コピー係数計算器モジュールは、前記プレイヤー状況分析モジュールによって分析された前記プレイヤーキャラクターの前記状況に少なくとも部分的に基づいてキャッシュコピーの前記量を計算するようにさらに構成されている、
    請求項20に記載のコンピュータ可読ストレージ媒体。
  22. 前記第1のキャッシュサーバおよび前記第2のキャッシュサーバはメモリ内キャッシュサーバである請求項20に記載のコンピュータ可読ストレージ媒体。
JP2015173473A 2012-03-22 2015-09-03 キャッシュデータの量を計算する方法 Expired - Fee Related JP6207558B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/426,868 US9233304B2 (en) 2012-03-22 2012-03-22 Load balancing for game
US13/426,868 2012-03-22

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013043376A Division JP5806248B2 (ja) 2012-03-22 2013-03-05 キャッシュデータの量を計算する方法

Publications (2)

Publication Number Publication Date
JP2016005632A true JP2016005632A (ja) 2016-01-14
JP6207558B2 JP6207558B2 (ja) 2017-10-04

Family

ID=49212556

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013043376A Expired - Fee Related JP5806248B2 (ja) 2012-03-22 2013-03-05 キャッシュデータの量を計算する方法
JP2015173473A Expired - Fee Related JP6207558B2 (ja) 2012-03-22 2015-09-03 キャッシュデータの量を計算する方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013043376A Expired - Fee Related JP5806248B2 (ja) 2012-03-22 2013-03-05 キャッシュデータの量を計算する方法

Country Status (3)

Country Link
US (1) US9233304B2 (ja)
JP (2) JP5806248B2 (ja)
KR (1) KR101593464B1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9233304B2 (en) * 2012-03-22 2016-01-12 Empire Technology Development Llc Load balancing for game
US9220982B2 (en) * 2012-05-04 2015-12-29 Blizzard Entertainment, Inc. Cross-realm zones for interactive gameplay
US20160236088A1 (en) * 2013-12-23 2016-08-18 Hong C. Li Provision of a virtual environment based on real time data
JP6383336B2 (ja) * 2015-08-10 2018-08-29 日本電信電話株式会社 サーバ管理装置およびサーバ管理方法
JP2017037446A (ja) * 2015-08-10 2017-02-16 日本電信電話株式会社 ゲームサーバ装置および分散処理方法
CN105553707A (zh) * 2015-12-14 2016-05-04 江苏名通信息科技有限公司 一种mmorpg游戏服务器端
US10188952B1 (en) * 2015-12-18 2019-01-29 Controlled Protocols, Inc. Method for dynamically mapping servers
CN106209963B (zh) * 2016-05-27 2017-10-24 北京畅游天下网络技术有限公司 一种mmorpg游戏中的实现对象传送的方法、服务器和集群
CN107198884B (zh) * 2017-05-26 2021-05-11 徐州天草网络科技有限公司 一种游戏场景高效载入的方法
US11003499B1 (en) * 2017-06-14 2021-05-11 Amazon Technologies, Inc. Resource allocation based on agent behavior in a simulation environment
CN109646951B (zh) * 2018-12-12 2022-05-27 北京像素软件科技股份有限公司 游戏信息同步方法及装置
CN110046102B (zh) * 2019-04-19 2022-06-24 深圳市腾讯网域计算机网络有限公司 虚拟武器的平衡性检测方法、装置、设备及存储介质
CN110855708B (zh) * 2019-11-26 2021-06-11 上海莉莉丝科技股份有限公司 游戏服务器架构
CN114450072A (zh) * 2020-03-13 2022-05-06 谷歌有限责任公司 对等多玩家云游戏架构
CN111803929A (zh) * 2020-05-26 2020-10-23 厦门雅基软件有限公司 控制对象的切换方法、装置、电子设备及计算机存储介质
JP6838187B1 (ja) * 2020-05-29 2021-03-03 株式会社Cygames サーバ、ゲームシステム及び処理方法
WO2024090960A1 (ko) * 2022-10-24 2024-05-02 삼성전자 주식회사 서버 부하 분산을 위한 전자 장치 및 그 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528762A (ja) * 2004-02-05 2007-10-18 エヌエイチエヌ コーポレーション オンラインゲームサーバのデータ分散処理方法およびデータ分散処理システム
US7293235B1 (en) * 1998-08-14 2007-11-06 British Telecommunications Public Limited Company Predicting avatar movement in a distributed virtual environment
JP2010191967A (ja) * 1996-10-01 2010-09-02 Koninkl Philips Electronics Nv ワイドエリアネットワークにおける待ち時間の影響を軽減する局所的な更新を伴うビデオゲーム
JP2012003661A (ja) * 2010-06-21 2012-01-05 Square Enix Co Ltd ビデオゲームシステム
JP2013208426A (ja) * 2012-03-22 2013-10-10 Emprie Technology Development LLC ゲームのためのロードバランシング

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005010970A (ja) 2003-06-18 2005-01-13 Hitachi Ltd 分散キャッシュ制御方法、ネットワークシステムおよび当該ネットワークに用いられる制御サーバないしルータ
US7695370B2 (en) 2006-02-08 2010-04-13 Gaia Interactive Inc. Massively scalable multi-player game system
KR100883907B1 (ko) 2006-09-15 2009-02-17 엔에이치엔(주) 다중 접속 온라인 게임에서의 분산 서버를 통한 게임 제어방법 및 시스템
US7814154B1 (en) * 2007-06-26 2010-10-12 Qurio Holdings, Inc. Message transformations in a distributed virtual world
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010191967A (ja) * 1996-10-01 2010-09-02 Koninkl Philips Electronics Nv ワイドエリアネットワークにおける待ち時間の影響を軽減する局所的な更新を伴うビデオゲーム
US7293235B1 (en) * 1998-08-14 2007-11-06 British Telecommunications Public Limited Company Predicting avatar movement in a distributed virtual environment
JP2007528762A (ja) * 2004-02-05 2007-10-18 エヌエイチエヌ コーポレーション オンラインゲームサーバのデータ分散処理方法およびデータ分散処理システム
JP2012003661A (ja) * 2010-06-21 2012-01-05 Square Enix Co Ltd ビデオゲームシステム
JP2013208426A (ja) * 2012-03-22 2013-10-10 Emprie Technology Development LLC ゲームのためのロードバランシング

Also Published As

Publication number Publication date
US9233304B2 (en) 2016-01-12
JP5806248B2 (ja) 2015-11-10
US20130253675A1 (en) 2013-09-26
KR20130108188A (ko) 2013-10-02
JP2013208426A (ja) 2013-10-10
JP6207558B2 (ja) 2017-10-04
KR101593464B1 (ko) 2016-02-15

Similar Documents

Publication Publication Date Title
JP6207558B2 (ja) キャッシュデータの量を計算する方法
CN103853596B (zh) 用于在工作组之间迁移虚拟机的方法和系统
US10376784B2 (en) Predictive caching of game content data
JP5945010B2 (ja) 負荷分散システム、方法、プログラム、記録媒体
JP5946468B2 (ja) イメージを実行するのに最適なコンピューティング環境の判断
CN103970607B (zh) 使用等价集合来计算优化虚拟机分配的方法和装置
JP6333180B2 (ja) オンラインゲーム
US8978030B2 (en) Elastic provisioning of resources via distributed virtualization
US20160055028A1 (en) Determining resource instance placement in a networked computing environment
US20140173624A1 (en) Load balancing scheme
CN108780404A (zh) 远程访问数据的有效实时迁移
JP5941167B2 (ja) ジオロケーションに基づく負荷均衡化
KR20140076668A (ko) 클라우드 스트리밍 기반의 게임 제공 방법, 시스템, 클라이언트 단말기 및 서비스장치
KR20130103677A (ko) 게임 시스템에서의 플레이어 매칭
CN106066812B (zh) 用于管理计算资源的方法和系统
US9742617B2 (en) Virtual machine migration in a cloud fabric
CN110222874B (zh) 信息处理方法及装置、存储介质及计算设备
CN104115471A (zh) 托管的服务中的客户端带宽模拟
Li et al. Reinforcement learning-based resource partitioning for improving responsiveness in cloud gaming
Malensek et al. Minerva: proactive disk scheduling for QoS in multitier, multitenant cloud environments
US20140113708A1 (en) System for providing game applying concept of exchange rate, terminal therefor, service device and recording medium having program recorded thereon
CN110383255A (zh) 管理对物理设备的客户分区访问
US20140236901A1 (en) Data migration management
US9578131B2 (en) Virtual machine migration based on communication from nodes
Liu et al. Application of network virtual cloud computing data center based on fuzzy algorithm

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170203

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170905

R150 Certificate of patent or registration of utility model

Ref document number: 6207558

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees