JP5933076B1 - 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム - Google Patents
情報処理システム、サーバ及びプログラム、並びに端末及びプログラム Download PDFInfo
- Publication number
- JP5933076B1 JP5933076B1 JP2015104218A JP2015104218A JP5933076B1 JP 5933076 B1 JP5933076 B1 JP 5933076B1 JP 2015104218 A JP2015104218 A JP 2015104218A JP 2015104218 A JP2015104218 A JP 2015104218A JP 5933076 B1 JP5933076 B1 JP 5933076B1
- Authority
- JP
- Japan
- Prior art keywords
- waiting time
- command
- server
- request
- terminal
- 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.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 24
- 230000004044 response Effects 0.000 claims abstract description 77
- 230000005540 biological transmission Effects 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims abstract description 35
- 230000033001 locomotion Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 8
- 238000000034 method Methods 0.000 abstract description 110
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 74
- 230000003449 preventive effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- CYTYCFOTNPOANT-UHFFFAOYSA-N Perchloroethylene Chemical compound ClC(Cl)=C(Cl)Cl CYTYCFOTNPOANT-UHFFFAOYSA-N 0.000 description 4
- 238000010079 rubber tapping Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/44—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- A63F13/537—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game using indicators, e.g. showing the condition of a game character on screen
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3045—Virtual queuing
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/50—Features 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/51—Server architecture
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Description
従って、リクエスト&レスポンス方式が採用されたゲームでは、サーバでの輻輳を防止する技術が必要になる。
しかしながら、このような技術として好適な技術が見受けられない状況である。
従って、並列化を適用する場合、サーバ負荷の上昇に合わせてアドホックにサーバを増設することになる。
しかしながら、サーバの増設は、クライアント数(端末数)の増加が極めて早いゲーム分野では、現実的ではない。
また、並列化を適用する場合、サーバ・インフラ内部に膨大な数の計算ノードを予め用意する必要がある。
このことは、インフラの維持コストの大幅増につながるため、経済的ではない。
しかしながら、非同期I/Oは、クライアント数(端末数)が急激に増加した場合の輻輳を防ぐ機能を有していない。
なお、リクエスト&レスポンス方式はゲームに特に限定されない。つまり、上記状況を換言すると、サーバでの輻輳を防止する技術として、リクエスト&レスポンス方式が採用された情報処理システムに適用して好適な技術が見受けられない状況である。
サーバと、当該サーバに所定のリクエストを送信する複数の端末とを含む情報処理システムにおいて、
前記サーバは、
リクエストの処理に関する所定条件を満たしているか否かを監視する監視手段と、
前記所定条件を満たしていない場合、端末側でのリクエストの送信までの待ち時間を演算する待ち時間演算手段と、
リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する第1送信制御手段と、
を備え、
前記端末は、
所定のコマンドを受け付けるコマンド受付手段と、
前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段と、
設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する第2送信制御手段と、
を備える。
所定のリクエストを送信する複数の端末と通信をするサーバにおいて、
リクエストの処理に関する所定条件を満たしているか否かを監視する第1監視手段と、
前記所定条件を満たしていない場合、端末側での時間の流れの速度を制御する時間パラメータとして待ち時間を演算する待ち時間演算手段と、
リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する送信制御手段と、
を備える。
リクエストに対するレスポンスを、当該リクエストを送信した端末に送信すると共に、所定条件を満たしている場合には次のリクエストの送信までの待ち時間を示す情報も併せて当該端末に送信するサーバとの間で通信をする端末において、
所定のコマンドを受け付けるコマンド受付手段と、
前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段と、
設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する送信制御手段と、
を備える。
また、「動画像」には、次の第1処理乃至第3処理の夫々により表示される画像を含むものとする。
第1処理とは、平面画像(2D画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対して、複数枚からなる一連の静止画像を時間経過と共に連続的に切り替えて表示させる処理をいう。具体的には例えば、2次元アニメーション、いわゆるパラパラ漫画的な処理が第1処理に該当する。
第2処理とは、立体画像(3Dモデルの画像)におけるオブジェクト(例えばゲームキャラクタ)の夫々の動作に対応するモーションを設定しておき、時間経過と共に当該モーションを変化させて表示させる処理をいう。具体的には例えば、3次元アニメーションが第2処理に該当する。
第3処理とは、オブジェクト(例えばゲームキャラクタ)の夫々の動作に対応した映像(即ち動画)を準備しておき、時間経過と共に当該映像を流していく処理をいう。
図1に示す情報処理システムは、m人(mは1以上の任意の整数値)のプレイヤーの夫々により使用されるプレイヤー端末1−1乃至1−mと、サーバ2とを含むシステムである。プレイヤー端末1−1乃至1−mの夫々と、サーバ2とは、インターネット等の所定のネットワークNを介して相互に接続されている。
プレイヤー端末1は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、バス24と、入出力インターフェース25と、タッチ操作入力部26と、表示部27と、入力部28と、記憶部29と、通信部30と、ドライブ31と、を備えている。
RAM23には、CPU21が各種の処理を実行する上において必要なデータ等も適宜記憶される。
ここで、タッチ操作とは、タッチ操作入力部26に対する物体の接触又は近接の操作をいう。タッチ操作入力部26に対して接触又は近接する物体は、例えばプレイヤーの指やタッチペン等である。なお、以下、タッチ操作がなされた位置を「タッチ位置」と呼び、タッチ位置の座標を「タッチ座標」と呼ぶ。
表示部17は、液晶等のディスプレイにより構成され、ゲームに関する画像等、各種画像を表示する。
このように、本実施形態では、タッチ操作入力部26と表示部27とにより、タッチパネルが構成されている。
記憶部29は、DRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
通信部30は、インターネットを含むネットワークNを介して他の装置(図1の例ではサーバ2や他のプレイヤー端末1)との間で行う通信を制御する。
サーバ2の構成は、プレイヤー端末1のタッチパネルを除いた構成と基本的に同様であるので、ここではその説明は省略する。
本実施形態では、マルチバトル等の複数のプレーヤが参加するゲームが対象であり、リクエスト&レスポンス方式が採用されている。
即ち本実施形態では、複数のプレイヤー端末1の夫々は、ゲームを同時に実行しており、当該ゲームのコマンドをリクエストとしてサーバ2に逐次送信する。サーバ2は、複数のプレイヤー端末1の夫々からのリクエストを受信し、夫々のリクエストを順次実行して、夫々の実行結果等をレスポンスとして複数のプレイヤー端末1の夫々に対して送信する。複数のプレイヤー端末1の夫々は、レスポンスを受信すると、コマンドを実行する。
この場合、プレイヤー端末1にとっては、リクエストに対するレスポンスの到達が遅延する。この遅延は予期せぬものであるため、ユーザにとっては、ゲームのコマンドが実行されない或いは実行されるのが非常に遅いと感じて、飽きてしまったり、ストレスを覚えたりする場合がある。
図4は、このような機能を発揮するためのプレイヤー端末1とサーバ2の機能的構成例を示す機能ブロック図である。
サーバ2の記憶部58の一領域には、待ち時間DB111が設けられる。
負荷監視部102は、リクエストの処理に関する所定条件を満たしているか否かを監視する。
所定条件は、リクエストに関する条件であれば足り、例えば、現在のリクエストの数が所定の閾値を超えていないという条件を採用することができる。所定の閾値や所定条件等の具体例については後述する。
ここで、「待ち時間」とは、次のリクエストの送信を許可するまでの時間パラメータであって、プレイヤー端末1側で実行中のゲームの時間経過(時間の流れの速度)を制御するためのパラメータをいい、例えば「現在時刻からプラス何秒」というような相対的な値として演算される。
即ち、待ち時間DB111は、複数のプレイヤー端末1(本実施形態ではプレイヤー端末1−1乃至1−m)毎に、待ち時間等の情報をリスト化して記憶している。なお、待ち時間DB111に記憶されているリストの具体例については、図6を参照して後述する。
レスポンス送信制御部105は、レスポンスを、対応するリクエストを送信したプレイヤー端末1に送信すると共に、待ち時間が演算されている場合には当該待ち時間を示す情報も併せてプレイヤー端末1に送信する制御を実行する。
このようにして、サーバ2は、制御不可能な輻輳が発生する前に(所定の条件を満たさなくなることで)、複数のプレイヤー端末1の夫々に対して待ち時間を設定する。つまり、サーバ2は、複数のプレイヤー端末1の夫々に対してリクエストを送信する頻度を制御する。
これにより、複数のプレイヤー端末1の夫々が少しずつ待ち時間を共有するといった、時間軸方向の予防的な負荷分散処理(以下、「予防的負荷分散処理」と呼ぶ)が実現される。
図5は、予防的負荷分散処理の概要を説明するための模式図である。
リクエストバッファ201内の黒丸印が、所定のプレイヤー端末1から送信されたサーバ2で受信済みのリクエストを示している。即ち、サーバ2側のリクエスト実行部104により実行中又は実行待ちのリクエストを示している。ここで、黒丸印内の符号は、リクエストを送信したプレイヤー端末1を示している。即ち、1Aの黒丸印は、プレイヤー端末1−Aから送信されたリクエストを示している。1Bの黒丸印は、プレイヤー端末1−Bから送信されたリクエストを示している。1Cの黒丸印は、プレイヤー端末1−Cから送信されたリクエストを示している。
リクエストバッファ201は、サーバ2に届いた順にリクエストを格納し、届いた順にリクエスト実行部104に出力して実行させるFIFOキューである。
仮想待ち行列202内の白丸印が、所定のプレイヤー端末1から未送信のリクエストを示している。即ち、プレイヤー端末1側ではコマンドが入力されてから、待ち時間分だけ送信が遅延しているリクエストが、白丸印である。待ち時間が経過して送信可能になったリクエストには、「Delay−time expired」という記述が施されている。
即ち、この仮想待ち行列202は、サーバ2上のメモリ領域やディスク領域を消費して構築されるものではなく、プレイヤー端末1の夫々が、サーバ2から通知された待ち時間が経過するまで、次のリクエストの送信を待つ動作により、実質的に、あたかもプレイヤー端末1の夫々が1つの行列内に並ぶようにふるまうことにより構成される。
リクエストの実行は、リクエストバッファ201の格納順である。換言すると、所定の1タイミングには、少なくとも1つのリクエストが実行される。また、各リクエスト同士に依存関係がない場合は、サーバ2は、リクエストバッファ201からの複数のリクエストを一時に取り出し、並列に実行してもよい。
例えば、仮想待ち行列202の上から2番目のリクエストは、プレイヤー端末1−Bにおいて待ち時間が経過したリクエストである。従って、当該リクエストは、プレイヤー端末1−Bからサーバ2に送信され、サーバ2のリクエストバッファ201に格納され、それより前に格納されたリクエストがリクエストバッファ201に存在しなくなった段階で、リクエスト実行部104により実行される。
このようにしてリクエスト実行部104により当該リクエスト(リクエストバッファ201の上から2番目のリクエスト)が実行されると、レスポンス送信制御部105は、レスポンスを、プレイヤー端末1―Bに送信すると共に、待ち時間の値「3000msec」も併せてプレイヤー端末1−Bに通知する。
このようにしてプレーヤー端末1−Bに通知された待ち時間の値は、リクエストが送信可能になるまでの残り時間という観点で、全てのプレイヤー端末1(図5の例ではプレイヤー端末1−A,1−B,1−C)の中で最大値となる。従って、仮想待ち行列202の最後尾(図5の例では上から5番目の白丸印)に追加されることになる。
これにより、サーバ2へ到着するリクエストの単位時間内の総数が制御され、サーバ2での輻輳が防止される。
そして、このキャパシティ数に基づいて所定の閾値(例えばキャパシティ数の80%の値)も予め定義され、現在のリクエスト数が当該閾値を超えないことという条件も予め設定されている。
つまり、負荷監視部102は、当該条件を満たしているか否かを監視することで、サーバ2の負荷状態を関している。
式(1)において、delay_secは待ち時間を示している。request_per_secは、1秒間にサーバ2に到達するリクエスト数を示している。capacity_per_secは、サーバ2に1秒間に処理可能なリクエスト数を示している。
即ち、本実施形態では、待ち時間(delay_sec)として、現在のリクエスト数(capacity_per_sec)をキャパシティ数(capacity_per_sec)で除算した値が採用されている。
このような値を採用することにより、単位時間内にキャパシティ数を超過するリクエストが到達することが予想される場合(負荷大となる場合)、超過分のリクエストは図5の仮想待ち行列202に格納されるので、図5を用いて上述したように、単位時間内に処理可能なリクエストのみがサーバに到達する、といった制御が実現される。
レスポンス送信制御部105は、レスポンスを、対応するリクエストを送信したプレイヤー端末1に送信すると共に、上述の待ち時間を当該プレイヤー端末1に通知する。
ここで、レスポンスの送信タイミングは、複数のプレイヤー端末1毎に少しずつずれている。その結果、上述した図5に示すように、複数のプレイヤー端末1の夫々が少しずつ異なる待ち時間(次のリクエストを送信するまでの残り時間)を有することになる。つまり、膨大な数のプレイヤー端末1(送信予定のリクエスト)が、あたかも巨大な仮想待ち行列202に格納されることになる。
これにより、サーバ2における輻輳が防止される。
また、この仮想待ち行列202からサーバ2上のリクエストバッファ201に対してリクエストを送出するためのキューイングの演算は、プレイヤー端末1間の比較操作を伴わず、待ち時間の設定のみで実現される。従って、このキューイングは常に0(n)のコストで実施が可能である。
そこで、本実施形態のサーバ2においては、図4に示すように不正監視部106も機能する。
不正監視部106は、リクエスト受信制御部101の制御により受信されたリクエストが、待ち時間を守ってプレイヤー端末1から送信されたものか否かを監視している。
図6のリストの所定の1行は、所定の1つのプレイヤー端末1に対応している。即ち、所定の1行には、対応するプレイヤー端末1についての、クライアントID、最後のリクエストが到達した時間、及び、割り当てた待ち時間が格納されている。換言すると、待ち時間DB111は、直前のリクエストの到達時刻(最後のリクエストが到達した時間)、及び待ち時間を対応付けて管理している。
そこで、不正監視部106は、リクエストに含まれるクライアントIDを用いて、待ち時間DB111を検索し、「最後のリクエストが到達した時間」+「割り当てた待ち時間」と、当該リクエストが実際に到達した時間とを照合する。
そして、不正監視部106は、その照合結果に基づいて、当該リクエストを送信したプレイヤー端末1が不性であるか否かを判定する。
不正であると判定されたプレイヤー端末1に対しては、所定のペナルティ処理が実行される。
ペナルティ処理の内容は、特に限定されないが、例えば本実施形態では、不正なプレイヤー端末1からのリクエストを破棄し、レスポンスを返さないという処理が採用されている。
次に、予防的負荷分散処理が実行される際のプレイヤー端末1の機能的構成について説明する。
コマンド受付部121は、このような所定のコマンドを受け付ける。
このため、端末やプレイヤーにとっては、コマンド入力後、当該コマンドに対応するリクエストがサーバに送信され、そのレスポンスがサーバから到達し、当該レスポンスに基づいてコマンドが実行されるまでの時間が長くなると、それは「予期せぬ待ち時間」として把握される。
つまり、従来のサーバにおいて輻輳が発生したことにより、この「予期せぬ待ち時間」が発生することは、端末やプレイヤーにとって想定外のことである。
このような「予期せぬ待ち時間」に対して端末側に何らかの措置を事前に施すことは困難である。このため、何ら措置を施していない従来の端末側では、「予期せぬ待ち時間」が経過するまで、待機状態となる。つまり、プレイヤーや端末にとっては、コマンド入力後、即座にコマンドが実行されずに待機状態が継続する時間が、「予期せぬ待ち時間」である。しかも、この「予期せぬ待ち時間」の長さは、プレイヤーや端末の与り知らぬサーバ側の輻輳の状態によって変化してしまう。従って、「予期せぬ待ち時間」が発生して端末側で待機状態になると、プレイヤーは、いつになったらコマンドが実行されるのかを予測することができなくなる。これにより、プレイヤーは、飽きてしまったり、何らかのストレスを覚えてしまうことになる。
つまり、プレイヤー端末1は、このような「待ち時間(時間パラメータ)」が到達することは予測済みである。従って、プレイヤー端末1側で、「待ち時間(時間パラメータ)」を用いて、プレイヤーを飽きさせずかつストレスを与えないようにするための措置を施すことが可能になる。
具体的には本実施形態では、プレイヤー端末1は、コマンドの入力と、コマンドの実行とを非同期にして、コマンドの入力から当該コマンドの実行までの時間の流れの速度を、「待ち時間(時間パラメータ)」に応じて制御する。そして、プレイヤー端末1は、この時間の流れの速度をプレイヤーに視覚的に提示する。このような措置により、プレイヤーを飽きさせずかつストレスを与えないようにすることが可能になる。
より具体的には本実施形態では、表示制御部124は、図7乃至図9に示すようなゲーム画面を表示部27に表示する制御を実行することで、プレイヤーを飽きさせずかつストレスを与えないようにしている。
図7のゲーム画面210の上方には、例えばRPG(Roll Playing Game)における戦闘画面221が表示される。
この戦闘画面221の下方に、プレイヤーがコマンドを選択するためのボタン(以下、「コマンド選択ボタン」と呼ぶ)が配置されたボタン群領域222が表示される。さらにその下方に、コマンドを示すアイコン(以下、「コマンドアイコン」と呼ぶ)があたかも一定方向に流れていくコマンドキュー223が表示される。
コマンドキュー223は、FIFO(First−in,First−out)のキューとして実装されている。従って、プレイヤーにより入力されたコマンド(タップ操作されたコマンド選択ボタン)に対応するコマンドアイコンは、コマンドキュー223の最後尾(図7の例では最右側)に追加される。
つまり、プレイヤーにより複数種類のコマンド選択ボタンがタップ操作されると、タップ操作がなされた順番で、複数種類のコマンドアイコンの夫々がコマンドキュー223に順次格納されて、当該コマンドキュー223内を順次左方に移動していく。
そして、左端(図7の例では「発動」という文字列が記載された端)に到達したコマンドアイコンから、対応するコマンドが実行されるようになっている。
ここで、コマンドキュー223内のコマンドアイコンの移動速度は、一定ではなく、待ち時間に応じて可変する。即ち、サーバ2から設定された待ち時間が長いほど、コマンドアイコンの移動速度は遅くなる。換言すると、サーバ2からの待ち時間の通知をサーバ2からの指示と把握するならば、サーバ2からの指示に応じて、コマンドキュー223の中のコマンドアイコンの移動速度が調整される。
従って、プレイヤーにとっては、コマンドが発動(実行)されるまでの時間の流れの速度が可視化される。つまり、プレイヤーは、あとどのぐらい待てばコマンドが発動されるのかを容易に視認することができる。これにより、プレイヤーは、ストレスもさほど受けずに、コマンドが発動されるまで飽きずに待つことができる。
以下、コマンドの非同期入力について説明する。
従来においては、クライアント(本実施形態のプレイヤー端末1に相当する従来の端末)においてコマンド選択ボタンが押下されると、従来のサーバにリクエストが送信され、当該サーバからレスポンスが受信された後、コマンドが実行される。このリクエストの送信からレスポンスの受信までに要する時間は通常短時間であるため、プレイヤーにとっては、コマンド選択ボタンの押下とコマンドの実行とは同期しているように感じられる。それゆえ、サーバが負荷大の状態になり、コマンド選択ボタンの押下からコマンドの実行までの間にタイムラグが発生すると、プレイヤーは、ストレスを受けたり、飽きてしまうことになる。
即ち、コマンド選択ボタンが押下されると、対応するコマンドアイコンがコマンドキュー223に格納されて、左方への移動を開始する。このコマンドアイコンの移動速度が、端末1側での時間の流れの速度に該当し、サーバ2から指定された待ち時間に応じて可変制御される。そして、サーバ2から指定された待ち時間が経過すると、リクエストがサーバ2に送信される。サーバ2側では予防的負荷分散処理が実行されているので、負荷大になることなく、短時間でレスポンスが送信されてくる。
すると、図4のレスポンス受信制御部125は、当該レスポンスを受信する制御を実行する。ここで、待ち時間を示す情報も送信されてきている場合、レスポンス受信制御部125は、当該情報も受信して、待ち時間設定部122に提供する。コマンド実行部126は、レスポンスが受信されると、コマンドを実行する。
即ち、コマンドの非同期入力を採用すると、プレイヤーは、所定の第1コマンドを入力した後、当該第1コマンドが実行されるまでの間、さらに第2コマンドを入力することができる。つまり、1の種類のコマンドが実行される前に、複数種類のコマンドの入力が可能になる。
従って、コマンドをリクエストとして送信する前の段階であれば、当該コマンドの編集も可能になる。
図8の例では、6種類の第1コマンド乃至第6コマンドがその順番で順次入力され、第1コマンド乃至第6コマンドの夫々に対応するコマンドアイコンC1乃至C6の夫々が、その順番でコマンドキュー223に格納されている。ここで、コマンド入力時にコマンドアイコンが格納される位置を以下「第1位置」と呼ぶ。コマンドアイコンC1乃至C6の夫々は、その順番で順次、待ち時間(時間パラメータ)に応じた移動速度で第1位置から左方に移動していく。
コマンドキュー223のうち、第1位置から第2位置までの右側の範囲Rに存在するコマンドアイコンは、リクエスト送信前の段階のコマンドに対応するものである。従って、プレイヤーは、これらのコマンドを自由に編集できる。つまり、図8の例では、コマンドアイコンC2乃至C6に対応する第2コマンド乃至第6コマンドが編集可能である。
これに対して、第2位置から、コマンドが実行される位置(図8の例では「発動」の文字列が表示される位置であり、以下「第3位置」と呼ぶ)までの左側の範囲Lに存在するコマンドアイコンは、リクエストが既に送信されてレスポンスの受信を待っている段階のコマンドに対応するものである。従って、プレイヤーは、これらのコマンドを編集することができない。つまり、図8の例では、コマンドアイコンC1に対応する第1コマンドは編集不可能である。
具体的には例えば、プレイヤーは、ドラッグ操作で、コマンドアイコンC5をコマンドキュー223の外側に移動させることで、当該コマンドアイコンC5に対応する第5コマンドをキャンセルすることができる。
また例えば、プレイヤーは、ドラッグ操作で、コマンドアイコンC2,C4の順番(配置位置)を入れ替えることで、当該コマンドアイコンC2,C4の夫々にに対応する第2コマンド,第4コマンドの実行(発動)の順番を変更することができる。
すると、第1キャラクタが保有する複数のコマンドの一覧として、複数のコマンド選択ボタンが配置されたボタン群領域222が表示される。
ここで、プレイヤーは、コマンド選択ボタンB7に対してタップ操作をしたものとする。すると、コマンド選択ボタンB7に対応するコマンドアイコンC7が、コマンドキュー223の最後尾の第1位置に追加され、左方への移動が開始される。
すると、第2キャラクタが保有する複数のコマンドの一覧として、複数のコマンド選択ボタンが配置されたボタン群領域222が表示される。
ここで、プレイヤーは、コマンド選択ボタンB8に対してタップ操作をしたものとする。すると、コマンド選択ボタンB8に対応するコマンドアイコンC8が、コマンドキュー223の最後尾の第1位置に追加され、左方への移動が開始される。この間、コマンドアイコンC7はさらに左方に移動している。
このように、コマンドの非同期入力を採用することで、先に入力したコマンドがサーバ2に対してリクエストとして送信される前であっても、次のコマンドの入力が可能になる。
すると、第3キャラクタが保有する複数のコマンドの一覧として、複数のコマンド選択ボタンが配置されたボタン群領域222が表示される。
ここで、プレイヤーは、コマンド選択ボタンB9に対してタップ操作をしたものとする。すると、コマンド選択ボタンB9に対応するコマンドアイコンC9が、コマンドキュー223の最後尾の第1位置に追加され、左方への移動が開始される。この間、コマンドアイコンC8はさらに左方に移動している。
コマンドアイコンC7は、さらなる左方の第2位置を通過して(その結果、対応するコマンドがサーバ2に対してリクエストとして送信され、サーバ2からのレスポンスが受信されて)、第3位置まで到達している。従って、この時点で図8の左側のゲーム画面において入力されたコマンド、即ちコマンドアイコンC7(コマンド選択ボタンB7)に対応するコマンドが実行される。
次に、図10及び図11を参照して、このような機能的構成を有するプレイヤー端末1及びサーバ2の処理の流れを説明する。
ステップS1において、負荷監視部102は、負荷大か否かを判定する。
即ち、負荷監視部102は、サーバ2のリソースの使用状況から、現在のリクエスト数が、キャパシティ数に基づく所定の閾値を超えないという条件を満たしているか否かを監視する。
前記条件を満たしている場合、つまり、現在のリクエスト数が当該閾値を超えていない場合、ステップS1においてNOであると判定されて、処理はステップS3に進む。
ステップS3において、待ち時間演算部103は、待ち時間を0として演算する。
これに対して、前記条件を満たしていない場合、つまり、現在のリクエスト数が当該閾値を超えている場合、負荷大であるとしてステップS1においてYESであると判定され、処理はステップS2に進む。ステップS2において、待ち時間演算部103は、例えば上述の式(1)に従って待ち時間を演算する。
ステップS9において、サーバ2のCPU51は、処理の終了指示が有ったか否かを判定する。ここで、処理の終了指示は、特に限定されないが、本実施形態ではサーバ2の電源遮断が採用されている。つまり、サーバ2において電源が遮断されると、ステップS9においてYESであると判定されて、サーバ2側の処理は終了になる。
これに対して、サーバ2において電源が遮断されない限り、ステップS9においてNOであると判定されて処理はステップS1に戻され、それ以降の処理が繰り返される。
その検索結果に基づいて特定される適正な時間よりも早いタイミングでリクエストが送信されてきた場合、不正であるとしてステップS5においてNOであると判定されて処理はステップ6に進む。
ステップS6において、不正監視部106は、リクエストを送信してきた不正なプレイヤー端末1に対して、ペナルティ処理を実行する。これにより、処理はステップS9に進み、それ以降の処理が繰り返される。
これに対して、リクエストの待ち時間が適正であれば、ステップS5においてYESであると判定されて、処理はステップS7に進む。
ステップS7において、リクエスト実行部104は、リクエストを実行し、レスポンスを生成する。
ステップS8において、レスポンス送信制御部105は、レスポンスと待ち時間をプレイヤー端末1に送信する。
その後処理はステップS9に進み、それ以降の処理が繰り返される。
即ち、図11は、プレイヤー端末1側の処理の流れを説明するフローチャートである。
図11のプレイヤー端末1側の処理は、ゲーム実行中の所定のイベント、例えばRPGにおける戦闘のイベント等により開始される。
ここで、コマンド選択用UIとは、例えば上述の図7乃至図9で説明したコマンド選択ボタンが配置されたボタン群領域222が該当する。キューとは、例えばコマンドキュー223が該当する。
ステップS34において、プレイヤー端末1のCPU21は、処理の終了指示が有ったか否かを判定する。ここで、処理の終了指示は、特に限定されないが、本実施形態では上記所定のイベント(例えば先頭のイベント等)の終了の指示が採用されている。つまり、所定のイベントが終了すると、ステップS34においてYESであると判定されて、プレイヤー端末1側の処理は終了になる。
これに対して、所定のイベントが継続中である場合、ステップS34においてNOであると判定されて処理はステップS21に戻され、それ以降の処理が繰り返される。
ステップS23において、待ち時間設定部122は、サーバ2から待ち時間が通知済みか否かを判定する。
サーバ2から待ち時間が未通知の場合(図10のステップS3で待ち時間が0に設定された場合も含む)、ステップS23においてNOであると判定されて、処理はステップS24に進む。
ステップS24において、待ち時間設定部122は、規定の待ち時間を設定する。ここで、規定の待ち時間とは、プレイヤー端末1側での時間の流れの速度についての「基準速度」を示す時間パラメータである。このようなステップS24の処理が終了すると、処理はステップS26に進む。
これに対して、待ち時間が通知済みの場合(前回のステップS32において受信されたレスポンスに対して、待ち時間を示す情報が付加されていた場合)、ステップS23においてYESであると判定されて、処理はステップS25に進む。
ステップS25において、待ち時間設定部122は、サーバ2からの待ち時間を設定する。ここで、サーバ2からの待ち時間とは、上述したように、プレイヤー端末1側での時間の流れの速度を基準速度に対して変更するための時間パラメータであって、サーバ2により設定される時間パラメータである。このようなステップS25の処理が終了すると、処理はステップS26に進む。
具体的には例えば、コマンドアイコンの描画方式として、多くのゲームシステムで採用されているフレーム描画方式が採用されている場合、表示制御部124は、1フレームあたりの移動ピクセル量を、移動速度として演算する。
より具体的には例えば、50msec毎に画面が更新されるゲームシステムにおいて、サーバ2から「1000msec」という待ち時間を示す情報が通知されものとする。この場合、表示制御部124は、上述の例のコマンドキュー223内の最後尾の第1位置から、リクエストが送信される第2位置まで1秒間でコマンドアイコンが到達するように、移動速度を演算する。即ち、表示制御部124は、コマンドアイコンを第1位置に配置した場合における、当該アイコンから第2位置までのピクセル数を(1000/50)で除算した値を、1フレームあたりの移動ピクセル量(移動速度)として演算する。
即ち、上述の例で言えば、コマンドアイコンは、コマンドキュー223内の最後尾の第1位置に配置され、左方に移動を開始する。
コマンドアイコンに対するドラッグ操作等が有った場合、ステップS28においてYESであると判定されて、処理はステップS29に進む。
ステップS29において、表示制御部124は、コマンドを削除したり順番を変更等する編集処理を実行する。これにより、処理はステップS30に進む。
これに対して、コマンドアイコンに対するドラッグ操作等が無かった場合、ステップS28においてNOであると判定されて、コマンドの編集処理(ステップS29の処理)は実行されずに、処理はステップS30に進む。
待ち時間が経過していない場合、リクエストを送信するタイミングでないので、処理はステップS28に戻され、それ以降の処理が繰り返される。即ち、リクエストが送信されるまでの間、コマンドアイコンの操作による、コマンドの編集処理の実行が可能になる。
ステップS31において、リクエスト送信制御部123は、コマンドをリクエストとしてサーバ2に送信する。
これにより、図10のステップS4においてYESであると判定されて、不正なリクエストでない限り、ステップS8においてレスポンスと待ち時間がプレイヤー端末1に送信されてくる。
ステップS32において、レスポンス受信制御部125は、レスポンスと待ち時間を受信する。
ステップS33において、コマンド実行部126は、コマンドを実行する。
これにより、処理はステップS34に進み、それ以降の処理が繰り返される。
ただし、実際には上述したように、本実施形態ではコマンドの非同期入力が実現されているので、ステップS27乃至S33の処理は、複数のコマンドが入力される毎に、複数のコマンドの夫々に対する処理として並行して実行される。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えばサーバの他汎用のスマートフォンやパーソナルコンピュータであってもよい。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
即ち、本発明が適用される情報処理システムは、
サーバ(例えば図1等のサーバ2)と、当該サーバに所定のリクエストを送信する複数の端末(例えば図1等プレイヤー端末1−1乃至1−m)とを含む。
前記サーバは、
リクエストの処理に関する所定条件を満たしているか否かを監視する監視手段(例えば図4の負荷監視部102)と、
前記所定条件を満たしていない場合、端末側でのリクエストの送信までの待ち時間を演算する待ち時間演算手段(例えば図4の待ち時間演算部103)と、
リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段(例えば図4のリクエスト実行部104)と、
前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する第1送信制御手段(例えば図4のレスポンス送信制御部105)と、
を備える。
前記端末は、
所定のコマンドを受け付けるコマンド受付手段(例えば図4のコマンド受付部121)と、
前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段(例えば図4の待ち時間設定部122)と、
設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する画像の表示を制御する表示制御手段(例えば図4の表示制御部124)と、
設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する第2送信制御手段(例えば図4のリクエスト送信制御部123)と、
を備える。
つまり、サーバ・インフラの処理能力を超えるリクエストが来るときには、各端末に対して待ち時間が夫々設定されて、当該待ち時間が到達した順にリクエストが順次サーバに送信されてくる。これにより、サーバは、致命的な輻輳を起こすことなく、それらのリクエストを処理することができる。
このようにして、サーバでの輻輳を防止する技術として、リクエスト&レスポンス方式が採用された情報処理システムに適用して好適な技術が確立される。
そして、サーバにより時間パラメータとして設定される「待ち時間」、又は基準となる「所定時間」に応じて、端末側での時間の流れの速度が制御され、その時間の流れの速度が視覚化されてユーザ(ゲームの場合プレイヤー)に提示される。
これにより、ユーザは、コマンド入力後当該コマンドの実行までの間、飽きずにかつストレスを覚えずに済むようになる。
これにより、単位時間あたりに処理可能なリクエストの数(キャパシティ)と、単位時間あたりに到達するリクエストの数(実績)とに基づく適切な時間が、待ち時間として設定される。その結果、予防的負荷分散処理がより効率的に実現可能になる。
前記複数の端末毎に、直前のリクエストの到達時刻、及び前記待ち時間を対応付けて管理する管理手段(例えば図4の待ち時間DB111及びCPU51)と、
リクエストが到達した際に、前記管理手段の管理内容に基づいて、当該リクエストを送信した前記端末が前記待ち時間を守ったか否かを監視する第2監視手段(例えば図4の不正監視部106)と、
をさらに備えるようにすることができる。
これにより、待ち時間を守らない不正な端末(ユーザであり、ゲームの場合プレイヤー)に対して各種ペナルティ処理を実行することが容易に可能になる。
また、送信制御手段は、設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する。
この場合、端末側で設定される「待ち時間」とは、端末側での時間の流れの速度を制御するパラメータであり、次の2通りの方法で使用される。
1つ目の方法は、動画像の再生時間を制御するパラメータとして用いる方法である。これにより、「当該時間の流れの速度で変化する画像」が実現可能になる。
2つ目の方法は、端末から次のリクエストがサーバへ送信されるタイミングを制御するパラメータとして用いる方法である。これにより、送信制御手段の制御が実現可能になる。
この場合、シンボルの移動速度が、端末側での時間の流れの速度に該当する。つまり、当該時間の流れの速度で変化する画像とは、当該移動速度で前記シンボルを前記第2位置に向かって移動させる様子を示す画像である。
ユーザ(ゲームの場合プレイヤー)は、このような画像を視認することで、その時間の流れの速度を即座にかつ明確に認識することができるようになる。即ち、ユーザは、あとどのぐらいでコマンドが実行されるのかを即座にかつ明確に視認することができる。その結果、ユーザは、より一段と、飽きずにかつストレスを覚えずに済むようになる。
コマンドを示すシンボルを、第1位置から第2位置まで移動させる様子を示す画像を表示する制御として、
前記コマンドが受け付けられたときには前記シンボルを第1位置に配置させ、
設定された前記待ち時間で前記シンボルが前記第1位置から前記第2位置まで移動するように、前記シンボルの移動速度を決定し、
当該移動速度で前記シンボルを前記第2位置に向かって移動させる、
様子を示す画像を表示させる制御を実行し、
前記送信制御手段は、前記シンボルが前記第2位置に到達したときに、前記コマンドをリクエストとして前記サーバに送信することができる。
そこで、前記表示制御手段は、前記シンボルを、前記第1位置から前記第2位置を経由して第3位置まで移動させる様子を示す画像の表示を制御し、
前記シンボルが前記第3位置に到達したときに、前記コマンドに対応する前記サーバからの前記レスポンスに基づいて、当該コマンドに対応する処理を実行するコマンド実行手段をさらに備える、
ようにすることができる。
前記表示制御手段は、前記複数のコマンドの夫々に対応する複数のシンボルを、コマンドの受付け順に、前記第1位置から第2位置まで夫々移動させる様子を示す画像を表示させ、
前記第2位置に到達する前のシンボルについては、他のシンボルとの順番を入れ替える操作を、当該シンボルに対応するコマンドの実行順番の変更指示として受け付けるコマンド順番変更手段をさらに備える、
ようにしてもよい。
また、前記第2位置に到達する前のシンボルに対して前記画像から削除する操作を、当該シンボルに対応するコマンドの取消指示として受け付けるコマンド取消手段をさらに備える、
ようにしてもよい。
Claims (12)
- サーバと、当該サーバに所定のリクエストを送信する複数の端末とを含む情報処理システムにおいて、
前記サーバは、
当該サーバに単位時間内に到達するリクエスト数が、当該サーバにおける当該単位時間内に処理可能なリクエスト数を超えない範囲内で予め設定された閾値を超えたか否かを監視する監視手段と、
前記閾値を超えた場合、端末に対して次のリクエストの送信を許可するまでの待ち時間であって、当該端末側での時間の流れの速度を制御する待ち時間を前記複数の端末毎に演算する待ち時間演算手段と、
リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する第1送信制御手段と、
を備え、
前記端末は、
所定のコマンドを受け付けるコマンド受付手段と、
前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
受け付けられたコマンドを示すシンボルを、当該コマンドがリクエストとして前記サーバに送信されるまで表示する表示制御手段であって、設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する当該シンボルの表示を制御する表示制御手段と、
設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する第2送信制御手段と、
を備える、
情報処理システム。 - 前記複数の端末の夫々は、所定のゲームを実行するゲーム実行手段をさらに備え、前記コマンド受付手段は、前記ゲームに対するコマンドを受付け、
前記サーバのリクエスト実行手段は、前記コマンドを実行して、前記ゲームに関する前記レスポンスを生成する、
請求項1に記載の情報処理システム。 - 受け付けたコマンドを示すシンボルを、当該コマンドがリクエストとして送信されるまで表示する表示制御として、予め設定された待ち時間に応じて、自機側での時間の流れの速度を制御し、当該時間の流れの速度で変化する当該シンボルの表示を制御し、前記待ち時間の経過後に、前記コマンドをリクエストとして送信する複数の端末と通信をするサーバにおいて、
当該サーバに単位時間内に到達するリクエスト数が、当該サーバにおける当該単位時間内に処理可能なリクエスト数を超えない範囲内で予め設定された閾値を超えたか否かを監視する第1監視手段と、
前記閾値を超えた場合、端末に対して次のリクエストの送信を許可するまでの待ち時間であって、当該端末側で設定することによって当該端末側での時間の流れの速度を制御する待ち時間を前記複数の端末毎に演算する待ち時間演算手段と、
リクエストを到達順に実行して、レスポンスを生成するリクエスト実行手段と、
前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する送信制御手段と、
を備えるサーバ。 - 前記待ち時間演算手段は、単位時間あたりに到達するリクエストの数と、当該単位時間あたりに処理可能なリクエストの数とに基づいて、前記待ち時間を演算する
請求項3に記載のサーバ。 - 前記複数の端末毎に、直前のリクエストの到達時刻、及び前記待ち時間を対応付けて管理する管理手段と、
リクエストが到達した際に、前記管理手段の管理内容に基づいて、当該リクエストを送信した前記端末が前記待ち時間を守ったか否かを監視する第2監視手段と、
を備える請求項3又は4に記載のサーバ。 - 受け付けたコマンドを示すシンボルを、当該コマンドがリクエストとして送信されるまで表示する表示制御として、予め設定された待ち時間に応じて、自機側での時間の流れの速度を制御し、当該時間の流れの速度で変化する当該シンボルの表示を制御し、前記待ち時間の経過後に、前記コマンドをリクエストとして送信する複数の端末と通信をするサーバに、
当該サーバに単位時間内に到達するリクエスト数が、当該サーバにおける当該単位時間内に処理可能なリクエスト数を超えない範囲内で予め設定された閾値を超えたか否かを監視する監視ステップと、
前記閾値を超えた場合、端末に対して次のリクエストの送信を許可するまでの待ち時間であって、当該端末側で設定することによって当該端末の時間の流れの速度を制御する待ち時間を前記複数の端末毎に演算する待ち時間演算ステップと、
リクエストを到達順に実行して、レスポンスを生成するリクエスト実行ステップと、
前記レスポンスを、対応するリクエストを送信した端末に送信すると共に、前記待ち時間が演算されている場合には当該待ち時間を示す情報も併せて当該端末に送信する制御を実行する送信制御ステップと、
を含む制御処理を実行させるプログラム。 - リクエストに対するレスポンスを、当該リクエストを送信した端末に送信するサーバであって、当該サーバに単位時間内に到達するリクエスト数が、当該サーバにおける当該単位時間内に処理可能なリクエスト数を超えない範囲内で予め設定された閾値を超えた場合には、当該端末に対して次のリクエストの送信を許可するまでの待ち時間であって、当該端末側での時間の流れの速度を制御する待ち時間を示す情報も前記レスポンスと共に併せて当該端末に送信する前記サーバに対して、前記リクエストを送信して前記レスポンスを受信する端末において、
所定のコマンドを受け付けるコマンド受付手段と、
前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定手段と、
受け付けられたコマンドを示すシンボルを、当該コマンドがリクエストとして前記サーバに送信されるまで表示する表示制御手段であって、設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する当該シンボルの表示を制御する表示制御手段と、
設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する送信制御手段と、
を備える端末。 - 前記表示制御手段は、
前記シンボルを第1位置から第2位置まで移動させる様子を示す画像を表示する制御として、
前記コマンドが受け付けられたときには前記シンボルを第1位置に配置させ、
設定された前記待ち時間で前記シンボルが前記第1位置から前記第2位置まで移動するように、前記シンボルの移動速度を決定し、
当該移動速度で前記シンボルを前記第2位置に向かって移動させる、
様子を示す画像を表示させる制御を実行し、
前記送信制御手段は、前記シンボルが前記第2位置に到達したときに、前記コマンドをリクエストとして前記サーバに送信する、
請求項7に記載の端末。 - 前記表示制御手段は、前記シンボルを、前記第1位置から前記第2位置を経由して第3位置まで移動させる様子を示す画像の表示を制御し、
前記シンボルが前記第3位置に到達したときに、前記コマンドに対応する前記サーバからの前記レスポンスに基づいて、当該コマンドに対応する処理を実行するコマンド実行手段をさらに備える、
請求項8に記載の端末。 - 前記コマンド受付手段は、複数のコマンドを順次受け付け、
前記表示制御手段は、前記複数のコマンドの夫々に対応する複数のシンボルを、コマンドの受付け順に、前記第1位置から第2位置まで夫々移動させる様子を示す画像を表示させ、
前記第2位置に到達する前のシンボルについては、他のシンボルとの順番を入れ替える操作を、当該シンボルに対応するコマンドの実行順番の変更指示として受け付けるコマンド順番変更手段をさらに備える、
請求項8又は9に記載の端末。 - 前記第2位置に到達する前のシンボルに対して前記画像から削除する操作を、当該シンボルに対応するコマンドの取消指示として受け付けるコマンド取消手段をさらに備える、
請求項8乃至10のうち何れか1項に記載の端末。 - リクエストに対するレスポンスを、当該リクエストを送信した端末に送信するサーバであって、当該サーバに単位時間内に到達するリクエスト数が、当該サーバにおける当該単位時間内に処理可能なリクエスト数を超えない範囲内で予め設定された閾値を超えた場合には、当該端末に対して次のリクエストの送信を許可するまでの待ち時間であって、当該端末側での時間の流れの速度を制御する待ち時間を示す情報も前記レスポンスと共に併せて当該端末に送信する前記サーバに対して、前記リクエストを送信して前記レスポンスを受信する端末に、
所定のコマンドを受け付けるコマンド受付ステップと、
前記サーバから前記待ち時間を示す情報が送信されてきた場合には、当該情報で特定される当該待ち時間を設定し、当該情報が送信されてきていない場合には、所定時間を待ち時間として設定する待ち時間設定ステップと、
受け付けられたコマンドを示すシンボルを、当該コマンドがリクエストとして前記サーバに送信されるまで表示する表示制御ステップであって、設定された前記待ち時間に応じて、前記端末側での時間の流れの速度を制御し、当該時間の流れの速度で変化する当該シンボルの表示を制御する表示制御ステップと、
設定された前記待ち時間の経過後に、前記コマンドをリクエストとして前記サーバに送信する制御を実行する送信制御ステップと、
を含む制御処理を実行させるプログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015104218A JP5933076B1 (ja) | 2015-05-22 | 2015-05-22 | 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム |
KR1020177025244A KR101944460B1 (ko) | 2015-05-22 | 2016-05-17 | 정보 처리 시스템, 서버 및 프로그램, 그리고 단말 및 프로그램 |
PCT/JP2016/064611 WO2016190169A1 (ja) | 2015-05-22 | 2016-05-17 | 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム |
CN201680028888.7A CN107614073B (zh) | 2015-05-22 | 2016-05-17 | 信息处理系统、服务器、终端、介质和控制处理方法 |
US15/820,330 US10708186B2 (en) | 2015-05-22 | 2017-11-21 | Information processing system, server, and program, and terminal and program |
HK18104238.4A HK1244743A1 (zh) | 2015-05-22 | 2018-03-28 | 信息處理系統、服務器和程序、以及終端和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015104218A JP5933076B1 (ja) | 2015-05-22 | 2015-05-22 | 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5933076B1 true JP5933076B1 (ja) | 2016-06-08 |
JP2016214639A JP2016214639A (ja) | 2016-12-22 |
Family
ID=56102954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015104218A Active JP5933076B1 (ja) | 2015-05-22 | 2015-05-22 | 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US10708186B2 (ja) |
JP (1) | JP5933076B1 (ja) |
KR (1) | KR101944460B1 (ja) |
CN (1) | CN107614073B (ja) |
HK (1) | HK1244743A1 (ja) |
WO (1) | WO2016190169A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021251082A1 (ja) * | 2020-06-10 | 2021-12-16 | 株式会社ポケモン | ゲームプログラム、方法、情報処理装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107422938A (zh) * | 2017-06-21 | 2017-12-01 | 网易(杭州)网络有限公司 | 信息处理方法、装置、电子设备及存储介质 |
JP6979292B2 (ja) * | 2017-06-28 | 2021-12-08 | 株式会社タイトー | ゲーム機 |
JP6546676B1 (ja) * | 2018-03-26 | 2019-07-17 | 株式会社リクルート | 順番管理システム、順番管理サーバ、およびプログラム |
CN108970115A (zh) * | 2018-07-13 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 对战游戏中的信息显示方法、装置、设备及存储介质 |
JP7346203B2 (ja) * | 2019-04-12 | 2023-09-19 | 株式会社Cygames | 情報処理システムおよび情報処理方法 |
JP6595737B1 (ja) * | 2019-04-12 | 2019-10-23 | 株式会社Cygames | 情報処理システムおよび情報処理方法 |
US20220014884A1 (en) * | 2020-07-07 | 2022-01-13 | Metrolla Inc. | Method For Wireless Event-Driven Everything-to-Everything (X2X) Payload Delivery |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000115095A (ja) * | 1998-10-02 | 2000-04-21 | Matsushita Electric Ind Co Ltd | 放送データ送信装置及び受信装置 |
JP2001307285A (ja) * | 2000-04-26 | 2001-11-02 | Hankyu Corp | タクシー予約システム、適切交通手段教示システム、タクシー予約方法、適切交通手段教示方法および記録媒体 |
JP2008204268A (ja) * | 2007-02-21 | 2008-09-04 | Nippon Telegr & Teleph Corp <Ntt> | サーバ装置およびリクエスト整理方法 |
JP2014229147A (ja) * | 2013-05-23 | 2014-12-08 | 株式会社オプティム | オペレータ端末、ユーザ端末、所要時間通知方法、及びオペレータ端末用プログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3548729B2 (ja) * | 2001-03-29 | 2004-07-28 | 株式会社スクウェア・エニックス | ビデオゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲームのプログラム及びビデオゲーム処理方法及びビデオゲーム処理装置 |
US7594022B2 (en) * | 2004-04-21 | 2009-09-22 | Microsoft Corporation | Regulating client requests in an electronic messaging environment |
US8032799B2 (en) * | 2008-09-17 | 2011-10-04 | International Business Machines Corporation | System and method for managing server performance degradation in a virtual universe |
CN102474889B (zh) * | 2009-08-12 | 2015-08-05 | 苹果公司 | 提供一种指定延迟时间的拒绝响应 |
US9009253B2 (en) * | 2011-02-16 | 2015-04-14 | Yahoo! Inc. | Optimizing server resources using multiple retry for high traffic websites |
JP5701708B2 (ja) * | 2011-07-26 | 2015-04-15 | 株式会社日立製作所 | 通信システム |
CN103096377A (zh) * | 2011-11-07 | 2013-05-08 | 中兴通讯股份有限公司 | 网络拥塞状态下控制终端响应触发的方法及系统 |
JP5972978B2 (ja) | 2012-12-21 | 2016-08-17 | グリー株式会社 | プログラム、サーバ装置、及びゲーム制御方法 |
JP5648041B2 (ja) * | 2012-12-25 | 2015-01-07 | 楽天株式会社 | 申込受付システム、申込受付システムの制御方法、及びプログラム |
-
2015
- 2015-05-22 JP JP2015104218A patent/JP5933076B1/ja active Active
-
2016
- 2016-05-17 KR KR1020177025244A patent/KR101944460B1/ko active IP Right Grant
- 2016-05-17 CN CN201680028888.7A patent/CN107614073B/zh active Active
- 2016-05-17 WO PCT/JP2016/064611 patent/WO2016190169A1/ja active Application Filing
-
2017
- 2017-11-21 US US15/820,330 patent/US10708186B2/en active Active
-
2018
- 2018-03-28 HK HK18104238.4A patent/HK1244743A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000115095A (ja) * | 1998-10-02 | 2000-04-21 | Matsushita Electric Ind Co Ltd | 放送データ送信装置及び受信装置 |
JP2001307285A (ja) * | 2000-04-26 | 2001-11-02 | Hankyu Corp | タクシー予約システム、適切交通手段教示システム、タクシー予約方法、適切交通手段教示方法および記録媒体 |
JP2008204268A (ja) * | 2007-02-21 | 2008-09-04 | Nippon Telegr & Teleph Corp <Ntt> | サーバ装置およびリクエスト整理方法 |
JP2014229147A (ja) * | 2013-05-23 | 2014-12-08 | 株式会社オプティム | オペレータ端末、ユーザ端末、所要時間通知方法、及びオペレータ端末用プログラム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021251082A1 (ja) * | 2020-06-10 | 2021-12-16 | 株式会社ポケモン | ゲームプログラム、方法、情報処理装置 |
JP2021194128A (ja) * | 2020-06-10 | 2021-12-27 | 株式会社ポケモン | ゲームプログラム、方法、情報処理装置 |
JP7377770B2 (ja) | 2020-06-10 | 2023-11-10 | 株式会社ポケモン | ゲームプログラム、方法、情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107614073A (zh) | 2018-01-19 |
HK1244743A1 (zh) | 2018-08-17 |
KR20170115094A (ko) | 2017-10-16 |
KR101944460B1 (ko) | 2019-01-31 |
CN107614073B (zh) | 2020-11-13 |
JP2016214639A (ja) | 2016-12-22 |
WO2016190169A1 (ja) | 2016-12-01 |
US20180077063A1 (en) | 2018-03-15 |
US10708186B2 (en) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5933076B1 (ja) | 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム | |
CN104918072B (zh) | 低延时实况视频流传输 | |
JP6310073B2 (ja) | 描画システム、制御方法、及び記憶媒体 | |
Suresh et al. | Distributed resource management across process boundaries | |
US20120149464A1 (en) | Load balancing between general purpose processors and graphics processors | |
CN109496432A (zh) | 流媒体直播方法及系统 | |
WO2014126786A1 (en) | Dynamic allocation of computing resources in remote gaming environment | |
KR20140084190A (ko) | 클라우드 기반 게임 시스템에서의 부하 균형 | |
JP2015531629A (ja) | ゲーム移動 | |
WO2014093641A1 (en) | Asynchronous cloud rendered video delivery | |
CN107920108A (zh) | 一种媒体资源的推送方法、客户端及服务器 | |
CN113350782A (zh) | 处理网络游戏异常的方法、装置、存储介质及计算机设备 | |
WO2014026380A1 (en) | Falling back from three-dimensional video | |
JP2008289030A (ja) | 画面描画転送システム | |
CN106293674B (zh) | 自动增减数据消费者的方法以及使用该方法的装置 | |
CN108319510A (zh) | 一种异构处理方法及装置 | |
CN112769788B (zh) | 计费业务数据处理方法、装置、电子设备及存储介质 | |
US11363119B1 (en) | Remote processing of augmented reality workloads | |
JP5982436B2 (ja) | 画面転送サーバ装置、および画面転送方法 | |
CN105354080B (zh) | 一种任务处理方法及装置 | |
CN109831467A (zh) | 数据传输方法、设备及系统 | |
CN108885565A (zh) | 对游戏模式的操作系统支持 | |
US10514959B2 (en) | Distributed virtual local operating system stored in cloud and its method | |
JPWO2016080428A1 (ja) | 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム | |
JP5504370B1 (ja) | 動画をクライアント端末に表示させるサーバ及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151016 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20151016 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20151211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160222 |
|
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: 20160419 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160428 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5933076 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |