説明

情報処理システム、情報処理方法、プログラム及び情報記憶媒体

【課題】サーバでサービスとして提供されるゲームの実行開始要求が殺到したとしても、余分なサーバが起動されてしまうことを防ぐ。
【解決手段】フロントエンドサーバ20は、それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバ24でのゲームの実行開始要求を受け付ける。管理サーバ26は、実行開始要求を受け付けた際に、起動済又は起動中であるいずれのゲームサーバ24においても、実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる。管理サーバ26は、実行開始要求に応じたゲームをいずれかのゲームサーバ24に実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、プログラム及び情報記憶媒体に関する。
【背景技術】
【0002】
電子商取引等のサービスを提供するサーバの数を、例えば、CPU使用率、ネットワーク入出力頻度、ディスク入出力頻度、などといったサービスの提供状況に応じて増減させる技術が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
例えば、ゲームをサービスとしてサーバで提供しようとすると、電子商取引等のサービスと比較して、サービスあたりの使用リソース量が多くなるものと考えられる。従って、電子商取引等のサービスにおけるアクセス数の増減に対するサーバ数の増減の比率と比較して、実行されるゲームの数の増減に対するサーバ数の増減の比率は大きくなると考えられる。また、実行されるゲームによって、対応付けられるリソース量(例えば、ゲームにおいて使用されると予想される最大リソース使用量や平均リソース量など)は異なるものと考えられる。また、ゲームをサービスとしてサーバで提供する場合には、電子商取引等のサービスよりも高いリアルタイム性が要求される。
【0004】
よって、ゲームをサービスとしてサーバで提供する場面で、サービスを提供するサーバの数を増減させる従来の技術を適用してしまうと、例えば、ゲームの実行開始要求が殺到するなどした際に、実行の開始が要求されるゲームに対応付けられるリソース量を起動中のサーバによってまかなうことができたとしても、そのことが考慮されずにサーバが次々と起動されることとなり、結果として、必要なサーバだけではなく余分なサーバも併せて起動されてしまうおそれがある。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、サーバでサービスとして提供されるゲームの実行開始要求が殺到したとしても、余分なサーバが起動されてしまうことを防ぐことにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係る情報処理システムは、それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段と、前記実行開始要求を受け付けた際に、起動済又は起動中であるいずれのゲームサーバにおいても、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段と、前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段と、を含むことを特徴とする。
【0007】
また、本発明に係る別の情報処理システムは、それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバと、前記少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段と、前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段と、前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段と、を含むことを特徴とする。
【0008】
また、本発明に係る情報処理方法は、それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付ステップと、前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動ステップと、前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行ステップと、を含むことを特徴とする。
【0009】
また、本発明に係るプログラムは、それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段、前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段、前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段、としてコンピュータを機能させることを特徴とする。
【0010】
また、本発明に係る情報記憶媒体は、それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段、前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段、前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段、としてコンピュータを機能させるプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
【0011】
本発明によれば、実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバが起動されることとなるので、サーバでサービスとして提供されるゲームの実行開始要求が殺到したとしても、余分なサーバが起動されてしまうことを防ぐことができる。
【0012】
本発明の一態様では、前記実行開始要求を受け付けた際に、起動済であるゲームサーバのうち、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内であるゲームサーバが存在する場合は、前記実行手段は、当該ゲームサーバに前記実行開始要求に応じたゲームを実行させることを特徴とする。
【0013】
また、本発明の一態様では、前記実行開始要求を受け付けた際に、起動済であるゲームサーバのうち、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内であるゲームサーバが存在せず、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内である起動中のゲームサーバが存在する場合は、前記実行手段が、当該起動中のゲームサーバに前記実行開始要求に応じたゲームを実行させ、前記実行開始要求を受け付けた際に、起動済であるゲームサーバのうち、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内であるゲームサーバが存在せず、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内である起動中のゲームサーバが存在しない場合は、前記起動手段が、新たなゲームサーバを起動させ、前記実行手段が、前記起動手段により起動されたゲームサーバに前記実行開始要求に応じたゲームを実行させることを特徴とする。
【図面の簡単な説明】
【0014】
【図1】本発明の一実施形態に係るコンピュータネットワークの全体構成の一例を示す図である。
【図2】本発明の一実施形態に係るクラウドサービスにおける仮想的なサーバ構成の一例を示す図である。
【図3】本発明の一実施形態に係る管理サーバで実現される機能の一例を示す機能ブロック図である。
【図4】本発明の一実施形態に係るクラウドサービスで行われる処理の流れの一例を示すフロー図である。
【図5】本発明の一実施形態に係るクラウドサービスで行われる処理の流れの一例を示すフロー図である。
【図6】ゲームサーバで実行されているゲームの最大CPU使用率の合計の一例を模式的に示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【0016】
図1は、本発明の一実施形態に係るコンピュータネットワークの全体構成の一例を示す図である。図1に示すように、インターネットなどのコンピュータネットワーク14には、いずれもコンピュータを中心に構成されたクラウドサービス10、クライアント12(12−1〜12−n)、が接続されている。そして、クラウドサービス10、クライアント12は、互いに通信可能になっている。
【0017】
クライアント12は、クラウドサービス10のユーザが利用するコンピュータであり、例えば、パーソナルコンピュータ、ゲームコンソール、テレビ受像機、携帯型ゲーム装置、携帯情報端末、などである。そして、クライアント12は、例えば、CPU等の制御部、ROMやRAM等の記憶素子やハードディスクドライブ等の記憶部、ディスプレイ、スピーカ等の出力部、ゲームコントローラ、タッチパッド、マウス、キーボード、マイク等の入力部、ネットワークボード等の通信部、等を備えている。また、本実施形態に係るクライアント12は、ウェブブラウザが予めインストールされており、ウェブブラウザが実行される。
【0018】
クラウドサービス10は、例えば、分散コンピューティング環境であり、互いに通信可能に接続されている複数台のWebアプリケーションサーバ、複数台のデータベースサーバ、複数台のストレージデバイス、などを含んで構成されている。クラウドサービス10に含まれるサーバは、例えば、CPU等の制御部、ROMやRAM等の記憶素子やハードディスクドライブなどである記憶部、ネットワークボードなどの通信インタフェースである通信部、を含んで構成されている。これらの要素は、バスを介して接続される。
【0019】
クラウドサービス10を利用するクライアント12は、クラウドサービス10内に存在するサーバやストレージデバイスなどのリソースの所在を特に意識することなく、クラウドサービス10が提供する各種サービスを利用することができる。
【0020】
本実施形態では、クライアント12が、ウェブブラウザを通じてクラウドサービス10にアクセスし、ユーザID及びパスワードを入力してから、その後に所定のURLにアクセスすると、クライアント12のディスプレイに所定のURLに対応する画面が表示される。なお、ユーザID及びパスワードを入力した後は、クラウドサービス10は、例えば、セッションIDを参照することによりクライアント12を利用するユーザのユーザIDを特定することができるようになっている。
【0021】
本実施形態では、例えば、クライアント12を利用するユーザが、クラウドサービス10にログインすると、クラウドサービス10は、複数のゲームのジャンル(例えば、対戦ゲーム、パズルゲーム、など)のそれぞれについての、ゲームの提供スケジュール(例えば、ゲームのタイトル、提供開始時刻、提供終了時刻、など)が示された番組表ページをクライアント12に送信する。そして、クライアント12は、受信した番組表ページを、ウェブブラウザを介してディスプレイ等に表示出力する。そして、ユーザが、番組表ページに示されているゲームのうちからゲームを選択する操作を実行すると、クライアント12は、選択されたゲームの詳細情報が示された詳細ページの送信要求をクラウドサービス10に送信する。すると、クラウドサービス10は、選択されたゲームの詳細ページをクライアント12に送信する。そして、クライアント12は、受信した詳細ページを、ウェブブラウザを介してディスプレイ等に表示出力する。
【0022】
詳細ページに示されているゲームが、クラウドサービス10により提供中であるゲームである場合には、ユーザが、詳細ページに示されたゲームの実行を開始する操作(例えば、詳細ページに含まれる実行ボタンのクリック操作等)を行うことができるようになっている。そして、ユーザが、詳細ページに示されたゲームの実行を開始する操作を実行すると、クライアント12は、当該ゲームの実行開始要求をクラウドサービス10に送信する。そして、クラウドサービス10が、ゲームの実行開始要求を受け付けると、当該ゲームの実行を開始する。そして、このゲームが実行されている間、クラウドサービス10は、当該ゲームのプレイ内容を表す、エンコードされた音声付動画像をクライアント12にストリーム送信する。そして、クライアント12は、この音声付動画像を受信し、デコードし、デコードされた動画像のフレーム画像が配置されたゲーム画面を生成して、クライアント12のディスプレイ等に表示出力するともに、受信した音声をクライアント12のスピーカから出力する。
【0023】
本実施形態では、各ユーザは、クラウドサービス10から送信された動画像を見ながら、ゲームコントローラのボタンを押下するなどしてゲームを楽しむことができる。本実施形態では、各ユーザ、ゲームコントローラのボタンを押下するなどの、キー入力を行うことにより、ゲームにおけるプレイヤオブジェクトの移動等の操作を行うことができる。
【0024】
また、クラウドサービス10に含まれるストレージデバイス等の記憶部には、予め、CD−ROM等の情報記憶媒体のイメージファイル(ディスクイメージ)が記憶されている。このイメージファイルには、例えば、ゲームプログラム、画像データ、音声データ等、が含まれる。
【0025】
図2は、本実施形態に係るクラウドサービス10における仮想的なサーバ構成の一例を示す図である。図2に示すように、本実施形態に係るクラウドサービス10は、仮想的には、フロントエンドサーバ20、エントランスサーバ22、ゲームサーバ24、管理サーバ26、を含んでいる。なお、図2に示されているそれぞれのサーバの機能は、物理的にはどのように実現されていてもよく、例えば、1台のサーバによって図2に示されている複数種類のサーバの機能が実現されていても構わないし、複数台のサーバによって図2に示されている1種類のサーバの機能が実現されていても構わない。
【0026】
フロントエンドサーバ20、エントランスサーバ22、ゲームサーバ24、管理サーバ26、などのクラウドサービス10に含まれるサーバは、上述のようにコンピュータを中心に構成されており、プログラムを実行することにより、それぞれのサーバが担う各機能要素が実現されるようになっている。また、このプログラムは、例えば、CD−ROM、DVD−ROMなどのコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどの通信ネットワークを介して、フロントエンドサーバ20、エントランスサーバ22、ゲームサーバ24、管理サーバ26、などのクラウドサービス10に含まれるサーバに供給される。
【0027】
フロントエンドサーバ20は、例えば、クライアント12からのリクエストの受付や、クライアント12へのレスポンスの送信を行うWebサーバである。フロントエンドサーバ20は、また、クライアント12からゲームの実行開始要求を受け付ける受付部としての役割を担う。エントランスサーバ22は、例えば、フロントエンドサーバ20が受け付けたHTTPリクエストに応じた処理を実行するエントランスサーブレットES等が配備されたアプリケーションサーバプロセス等が実行されるサーバである。ゲームサーバ24は、例えば、エントランスサーバ22からの処理要求を受け付けるサーブレットであるゲームサーブレットGS等が配備されたアプリケーションサーバプロセスや、クライアント12に提供されるゲームが実行されるプロセスであるゲームインスタンスGIなどが実行されるサーバである。管理サーバ26は、サーバ群の負荷の監視やゲームサーバ24の起動や停止の管理などを行うサーバである。
【0028】
本実施形態では、フロントエンドサーバ20又はエントランスサーバ22のエントランスサーブレットESが、上述の番組表ページや詳細ページを生成する。また、フロントエンドサーバ20又はエントランスサーバ22は、これらのページの他に、ユーザにより最近プレイされた所定数のゲームのプレイ履歴が一覧で表示されるプレイ履歴一覧ページや、直近の所定時間内にプレイされた回数が上位である所定数のゲームのタイトル等が一覧で表示される人気ゲームランキングページ等も生成する。これらのページについても、クライアント12からの要求に応じて、クライアント12に提供される。このように、本実施形態では、フロントエンドサーバ20やエントランスサーバ22が、ゲームサーバ24によりゲームが実行される前に、ゲームに対応付けられる情報を提供する情報提供サーバとして役割を担う。また、クライアント12が、上述の各種ページにアクセスすると、本実施形態に係るクラウドサービス10は、アクセスしたユーザのユーザID、アクセス時刻、アクセスされたページの識別情報などが含まれる、アクセスログをクラウドサービス10の記憶部に出力する。また、ユーザがゲームをプレイすると、ゲームサーバ24が、例えば、ゲームをプレイしたユーザのユーザID、プレイされたゲームの識別情報(ゲームのIDやタイトル等)、プレイの開始時刻、プレイの終了時刻、などを含む、プレイ履歴情報をクラウドサービス10の記憶部に出力する。
【0029】
そして、フロントエンドサーバ20又はエントランスサーバ22は、ユーザからの要求に応じて、当該ユーザのアクセスログやプレイ履歴情報などに基づいて、当該ユーザにカスタマイズされた番組表ページ(例えば、ユーザのアクセスログやプレイ履歴情報などに基づいて、当該ユーザが興味を持っていると判定されるゲーム群の情報(例えば、ゲームのプレイ回数が多いジャンルに属するゲーム群の情報)が配置された番組表ページ)を生成して、クライアント12に送信する。
【0030】
また、本実施形態に係るクラウドサービス10では、仮想的なサーバを、サーバ単位で、追加で起動させたり、稼働中の仮想的なサーバを、サーバ単位で、停止させたりすることができるようになっている。
【0031】
管理サーバ26では、クラウドサービス10に含まれるサーバやストレージデバイスにインストールされている管理プログラムを起動することで生成されるプロセスである管理プロセスMPが実行されている。そして、管理プロセスMPが、ゲームインスタンスGIの所在管理処理、ゲームインスタンスGIの起動処理及び停止処理、ゲームサーバ24の起動処理及び停止処理、クライアント12からの要求に応じたクライアント12とゲームインスタンスGIとの接続処理及び切断処理、サーバ群の負荷の監視、などを実行する。
【0032】
本実施形態では、ゲームインスタンスGIは、ゲームサーバ24に記憶されているゲームプログラムを実行するための仮想マシン(エミュレータ)である。ゲームインスタンスGIは、管理プロセスMPが、クライアント12からの要求に応じて、クラウドサービス10に含まれるサーバやストレージデバイスにインストールされているエミュレータプログラムを起動することにより生成される。
【0033】
そして、ゲームサーバ24で実行されるゲームサーブレットGSが、クライアント12からのゲームの実行開始要求に応じて、クライアント12により指定されたゲームプログラムのイメージファイルを読み込み、ゲームインスタンスGIにロードする。このことによって、ゲームインスタンスGIでゲームプログラムが実行されることとなる。なお、ゲームインスタンスGIが、クライアント12により指定されたゲームプログラムを自らにロードするようにしてもよい。
【0034】
また、ゲームインスタンスGIは、例えば、クライアント12や管理プロセスMPからの要求に応じて、ゲームインスタンスGIが管理しているエミュレートされたメモリイメージやレジスタ(例えば、プログラムカウンタ等)、ゲームインスタンスGI上で動作するゲームプログラムによる入出力アクセスログ、ゲームインスタンスGI上で実行されるCPU命令やGPU命令のログなどを出力する。
【0035】
本実施形態では、1つのゲームインスタンスGIを1つのクライアント12が専有することができる。また、1つのゲームインスタンスGIに対して複数のクライアント12が接続可能となっている。また、1つのゲームインスタンスGI上で複数のゲームプログラムが実行可能となっている。また、本実施形態では、1つのクライアント12が複数のゲームインスタンスGIに接続することもできるようになっている。
【0036】
また、本実施形態では、クラウドサービス10に含まれるサーバには、それぞれに固有の識別情報(例えば、サーバ名、IPアドレスなど)が割り当てられている。そのため、クラウドサービス10に含まれるサーバは、他のサーバを識別することができるようになっている。
【0037】
また、本実施形態では、管理サーバ26は、ゲームサーバ24でゲームが実行されるたびに、そのゲームの実行の際の最大リソース使用量を表す指標の計測を行い、計測結果を示す最大リソース使用量データを、実行されたゲームの識別情報と関連づけて、クラウドサービス10の記憶部に出力する。本実施形態では、最大リソース使用量の具体例としては、最もCPUが使用された際に、仮想的なサーバにおいてどの程度の量のCPUが使用されたかを示す指標(より具体的には、例えば、最大CPU使用量、最大CPU使用率、最大CPU使用時間、など)、最もメモリが使用された際に仮想的なサーバにおいてどの程度の量のメモリが使用されたかを示す指標(より具体的には、例えば、最大メモリ使用量など)、最も入出力が行われた際に仮想的なサーバにおいてどの程度の量の入出力が行われたかを示す指標(より具体的には、例えば、単位時間あたりの最大ネットワーク入出力回数(最大ネットワーク入出力頻度)、単位時間あたりの最大ディスク入出力回数頻度(最大ネットワーク入出力頻度))、などが挙げられる。そして、最大リソース使用量データの具体例としては、最大CPU使用量を示す最大CPU使用量データ、最大CPU使用率を示す最大CPU使用率データ、最大CPU使用時間を示す最大CPU使用時間データ、最大メモリ使用量を示す最大メモリ使用量データ、最大ネットワーク入出力頻度を示す最大ネットワーク入出力頻度データ、最大ディスク入出力頻度を示す最大ディスク入出力頻度データ、などが挙げられる。そして、本実施形態では、管理サーバ26は、計測結果を示す最大リソース使用量データの値が、記憶されていた最大リソース使用量データの値を超える場合に、記憶されている最大リソース使用量データを更新する。このようにして、本実施形態では、ゲームが複数回実行された場合については、複数回のゲームの実行のうちの、最大リソース使用量が最も多いゲームの実行における最大リソース使用量データがクラウドサービス10の記憶部に記憶されることとなる。そして、本実施形態に係るクラウドサービス10では、ゲームの実行開始要求を受け付けた際には、当該ゲームの最大リソース使用量データを取得することができるようになっている。
【0038】
また、本実施形態では、クラウドサービス10の記憶部に、1のゲームサーバ24において、ゲームの実行にあたって確保可能なリソース量の合計の上限を示す上限リソース量データ(例えば、CPU使用量の上限を示す上限CPU使用量データ、CPU使用率の上限(例えば、100%)を示す上限CPU使用率データ、CPU使用時間の上限を示す上限CPU使用時間データ、メモリ使用量の上限を示す上限メモリ使用量データ、ネットワーク入出力頻度の上限を示す上限ネットワーク入出力頻度データ、ディスク入出力頻度の上限を示す上限ディスク入出力頻度データ、など)が記憶されている。なお、例えば、オペレーティングシステム等によって使用されるリソース量が変動することによって、1のゲームサーバ24において、ゲームの実行にあたって確保可能なリソース量の合計の上限が変動することが考えられる。そこで、管理サーバ26が、ゲームサーバ24においてオペレーティングシステム等によって使用されているリソース量を監視する(例えば、所定時間間隔で監視する)ようにしてもよい。そして、管理サーバ26が、当該監視結果に基づいて、ゲームの実行にあたって確保可能なリソース量の合計の上限を算出して、算出された値に上限リソース量データの値を更新するようにしてもよい。もちろん、管理サーバ26が、1のゲームサーバ24において、ゲームの実行にあたって確保可能なリソース量の合計の上限を監視して、監視結果である値に上限リソース量データの値を更新するようにしてもよい。このように、上限リソース量データの値が可変であっても構わない。
【0039】
また、本実施形態では、クラウドサービス10の記憶部に、稼働中(起動済)のゲームサーバ24のそれぞれに対応付けられる、ゲームサーバ24の識別情報と、当該ゲームサーバ24において実行中である少なくとも1つのゲームそれぞれの識別情報と、が含まれる実行管理データが記憶される。そして、この実行管理データによって、クラウドサービス10は、稼働中のゲームサーバ24で何のゲームが実行されているかについての情報を得ることができることとなる。
【0040】
図3は、本実施形態に係る管理サーバ26で実現される機能の一例を示す機能ブロック図である。なお、図3には、以下の説明と特に関係がある機能が示されているにすぎず、本実施形態に係る管理サーバ26では、図3に示す機能以外の機能も実現されている。
【0041】
図3に示すように、本実施形態に係る管理サーバ26は、機能的には、例えば、ゲームサーバ管理部30、負荷監視部32、学習部34、ゲーム特定部36、を含んでいる。これらの機能は、例えば、管理サーバ26が備える制御部を主として実現される。上述のように、管理サーバ26は、上述のようにコンピュータを中心に構成されており、プログラムを実行することにより、それぞれのサーバが担う各機能要素が実現されるようになっている。また、このプログラムは、例えば、CD−ROM、DVD−ROMなどのコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどの通信ネットワークを介して、管理サーバ26に供給される。
【0042】
ゲームサーバ管理部30は、実行開始の対象となるゲームが実行されるゲームサーバ24の特定、ゲームサーバ24の起動や停止、ゲームインスタンスGIとクライアント12との接続や切断、などを実行する。負荷監視部32は、上述の最大リソース使用量の計測や、最大リソース使用量データの記憶部への出力などを実行する。学習部34は、後述する定期スケーリングにおいて、必要なゲームサーバ24の数の予測の基礎となる学習処理を実行する。ゲーム特定部36は、後述する定期スケーリングにおいて、必要なゲームサーバ24の数の予測の基礎となるゲームの特定を実行する。
【0043】
ここで、本実施形態に係るクラウドサービス10で行われる、クライアント12からゲームの実行開始要求を受け付けてから、実行開始の対象となるゲームのゲームプログラムがゲームインスタンスGIにロードされるまでの処理の流れの一例を、図4に例示するフロー図を参照しながら説明する。
【0044】
まず、フロントエンドサーバ20が、クライアント12からゲームの実行開始要求を受け付ける(S101)。この実行開始要求には、実行開始の対象となるゲームの識別情報(例えば、ゲームのIDやタイトル等)が関連づけられている。そして、フロントエンドサーバ20は、受け付けた実行開始要求をエントランスサーバ22に送信する(S102)。そして、エントランスサーバ22は、実行開始の対象となるゲームが実行されるゲームサーバ24の問い合わせを管理サーバ26に出力する。そして、管理サーバ26のゲームサーバ管理部30が、当該問い合わせを受け付ける(S103)。
【0045】
そして、管理サーバ26のゲームサーバ管理部30は、実行開始の対象となるゲームが実行されるゲームサーバ24を特定する(S104)。S104に示す処理では、必要に応じて、管理サーバ26のゲームサーバ管理部30が、ゲームサーバ24を起動させる。当該起動は、後述するアドホックスケーリングに該当する。S104に示す処理の詳細については後述する。
【0046】
そして、管理サーバ26のゲームサーバ管理部30は、特定されたゲームサーバ24の識別情報をエントランスサーバ22に出力する(S105)。そして、エントランスサーバ22は、S105に示す処理で管理サーバ26から受け付けた識別情報に基づいて識別されるゲームサーバ24に、実行開始の対象となるゲームの識別情報に関連づけられた、ゲームインスタンスGIの生成要求を出力する(S106)。ここで、S105に示す処理で管理サーバ26から受け付けた識別情報に基づいて識別されるゲームサーバ24が起動中である場合は、エントランスサーバ22は、ゲームサーバ24の起動が完了した後に、ゲームインスタンスGIの生成要求を出力する。
【0047】
そして、生成要求を受け付けたゲームサーバ24は、ゲームインスタンスGIを生成し、実行開始の対象となるゲームのゲームプログラムを生成したゲームインスタンスGIにロードする(S107)。そして、S106に示す処理で生成要求を受け付けたゲームサーバ24は、当該ゲームサーバ24の識別情報が含まれる実行管理データに、ロードされたゲームプログラムに対応するゲームの識別情報を追加して(S108)、本処理例に示す処理を終了する。
【0048】
以上のようにして、ゲームインスタンスGIにゲームがロードされると、管理サーバ26のゲームサーバ管理部30は、ゲームの実行開始要求の出力元のクライアント12と、生成されたゲームインスタンスGIとの接続処理を実行する。そして、ゲームインスタンスGIで実行されるゲームのプレイ内容を表す、エンコードされた音声付動画像がクライアント12に送信されることとなる。
【0049】
そして、クライアント12が実行されているゲームの終了要求をクラウドサービス10に送信すると、終了が要求されたゲームのゲームインスタンスGIが実行されているゲームサーバ24は、当該ゲームインスタンスGIを終了させる。このことによって、当該ゲームインスタンスGIがゲームサーバ24から消滅し、ゲームインスタンスGIが使用していたリソースは解放される。また、併せて、当該ゲームサーバ24は、当該ゲームサーバ24の識別情報が含まれる実行管理データから、当該ゲームインスタンスGIで実行されていたゲームの識別情報を削除する。
【0050】
また、上述のように、本実施形態に係るクラウドサービス10では、稼働しているゲームサーバ24の数の最適化が行われる。本実施形態では、稼働しているゲームサーバ24の数の最適化は、(1)例えば、クライアント12から受け付ける、ゲームの実行開始要求が急増した場合などに、クライアント12からの要求に応じるためにゲームサーバ24の追加起動を行うアドホックスケーリング、及び、(2)所定時間間隔で、必要なゲームサーバ24の数を予測して、当該予測された数になるようゲームサーバ24の起動や停止を行う定期スケーリング、という2種類のスケーリング手法によって行われる。そして、上述のように、アドホックスケーリングは、上述のS104に示す処理において必要に応じて行われる。
【0051】
ここで、S104に示す処理の詳細を、図5に例示するフロー図を参照しながら説明する。まず、管理サーバ26のゲームサーバ管理部30が、実行開始の対象となるゲームのゲームインスタンスGIを生成することが可能な、起動済(稼働中)のゲームサーバ24(ここでは、実行開始の対象となるゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内である、起動済のゲームサーバ24)が存在するか否かを確認する(S201)。S201に示す処理では、例えば、ゲームサーバ24の上限リソース量データの値(例えば、上限CPU使用率データの値)から、実行管理データにおいて当該ゲームサーバ24に関連づけられているゲームそれぞれの最大リソース使用量データの値(例えば、最大CPU使用率データの値の合計)を引いた値が、実行開始の対象となるゲームの最大リソース使用量の値(例えば、最大CPU使用率データの値)以上である、起動済のゲームサーバ24が存在するか否かが確認される。
【0052】
存在する場合は(S201:Y)、管理サーバ26のゲームサーバ管理部30は、実行開始の対象となるゲームのゲームインスタンスGIが生成された後における確保可能な残りのリソース量を最小化できるゲームサーバ24を、注目ゲームサーバとして特定して(S202)、S104に示す処理を終了する。S202に示す処理で、管理サーバ26のゲームサーバ管理部30は、例えば、S201に示す処理で、存在が確認されたゲームサーバ24(以下、候補ゲームサーバと呼ぶ。)のうちから、実行中であるゲームの最大CPU使用率の合計が最も大きなゲームサーバ24を注目ゲームサーバとして特定する。
【0053】
図6は、ゲームサーバ24(A)とゲームサーバ24(B)で実行されているゲームの最大CPU使用率の合計の一例を模式的に示す図である。図6に示すように、ゲームサーバ24(A)とゲームサーバ24(B)とが稼働中であり、ゲームサーバ24(A)では最大CPU使用率データの値の合計が80%である3つのゲーム(ゲームa、ゲームb、及び、ゲームc)が実行中であり、ゲームサーバ24(B)では実行中のゲームが存在しない場面を想定する。
【0054】
このとき、実行開始の対象となるゲームの最大CPU使用率データの値が30%である場合には、ゲームサーバ24(A)では、上限CPU使用率データの値(ここでは、100%)から、ゲームサーバ24で実行中であるゲームの最大CPU使用率の合計を引いた値である20%が、実行開始の対象となるゲームの最大CPU使用率データの値である30%未満であるため、ゲームサーバ24(A)は、候補ゲームサーバとしては特定されない。一方、ゲームサーバ24(B)は、候補ゲームサーバとして特定される。この場合は、ゲームサーバ24(B)だけが候補ゲームサーバとして特定されたので、ゲームサーバ24(B)が注目ゲームサーバとして特定されることとなる。
【0055】
実行開始の対象となるゲームの最大CPU使用率データの値が15%である場合には、ゲームサーバ24(A)では、上限CPU使用率データの値(ここでは、100%)から、ゲームサーバ24で実行中であるゲームの最大CPU使用率の合計を引いた値である20%が、実行開始の対象となるゲームの最大CPU使用率データの値である15%以上であるため、ゲームサーバ24(A)が、候補ゲームサーバとして特定される。また、ゲームサーバ24(B)も候補ゲームサーバとして特定される。そして、候補ゲームサーバのうち、実行中であるゲームの最大CPU使用率の合計が最も大きいゲームサーバ24は、ゲームサーバ24(A)であるので、ゲームサーバ24(A)が注目ゲームサーバとして特定されることとなる。
【0056】
S201に示す処理で、実行開始の対象となるゲームの最大リソース使用量が、確保可能な残りのリソース量の範囲内であるゲームサーバ24が存在しないことが確認された場合は(S201:N)、管理サーバ26のゲームサーバ管理部30は、実行開始の対象となるゲームのゲームインスタンスGIを生成することが可能な、起動中のゲームサーバ24(ここでは、実行開始の対象となるゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内である、起動中のゲームサーバ24)が存在するか否かを確認する(S203)。S203に示す処理では、起動されると実行が開始される予定となっているゲーム(実行管理データにおいて、起動中のゲームサーバ24に関連づけられているゲーム)のゲームインスタンスGIが生成されたとしても確保可能な残りのリソース量の範囲内であるゲームサーバ24が存在するか否かを確認する。より具体的には、例えば、起動中のゲームサーバ24の上限リソース量データの値(例えば、上限CPU使用率データの値)から、実行管理データにおいて当該ゲームサーバ24に関連づけられているゲームそれぞれの最大リソース使用量データの値(例えば、最大CPU使用率データの値の合計)を引いた値が、実行開始の対象となるゲームの最大リソース使用量の値(例えば、最大CPU使用率データの値)以上である、起動中のゲームサーバ24が存在するか否かが確認される。
【0057】
存在しない場合は(S203:N)、管理サーバ26のゲームサーバ管理部30は、新規のゲームサーバ24を起動させる(S204)。このS204に示す処理が、上述のアドホックスケーリングに該当する処理である。そして、管理サーバ26のゲームサーバ管理部30は、当該ゲームサーバ24の識別情報が含まれる実行管理データを生成して、クラウドサービス10の記憶部に記憶させる(S205)。
【0058】
そして、管理サーバ26のゲームサーバ管理部30は、注目ゲームサーバを特定して(S206)、S104に示す処理を終了する。S206に示す処理においては、S203に示す処理で、上述の条件を満足するゲームサーバ24の存在が確認された場合は(S203:Y)、存在が確認されたゲームサーバ24が注目ゲームサーバとして特定され、S204に示す処理が実行された際には、S204に示す処理で新規に起動されるゲームサーバ24が注目ゲームサーバとして特定される。
【0059】
そして、上述のS105に示す処理において、管理サーバ26のゲームサーバ管理部30によって、S202又はS206に示す処理で特定された注目ゲームサーバの識別情報がエントランスサーバ22に出力されることとなる。本実施形態では、新規のゲームサーバが注目ゲームサーバとして特定された場合には、S204に示す処理による注目ゲームサーバの起動が完了次第、注目ゲームサーバにゲームインスタンスGIが生成され、当該ゲームインスタンスGIに実行開始の対象となるゲームのゲームプログラムがロードされることとなる。そして、起動中のゲームサーバが注目ゲームサーバとして特定された場合には、起動中の注目ゲームサーバの起動が完了次第、注目ゲームサーバにゲームインスタンスGIが生成され、当該ゲームインスタンスGIに実行開始の対象となるゲームのゲームプログラムがロードされることとなる。そして、起動済のゲームサーバが注目ゲームサーバとして特定された場合には、ゲームサーバの起動の完了を待つことなく注目ゲームサーバにゲームインスタンスGIが生成され、当該ゲームインスタンスGIに実行開始の対象となるゲームのゲームプログラムがロードされることとなる。そのため、S206に示す処理の終了から実行開始の対象となるゲームプログラムの実行開始までの時間は、起動済のゲームサーバが注目ゲームサーバとして特定された場合、起動中のゲームサーバが注目ゲームサーバとして特定された場合、S204に示す処理で起動される新規のゲームサーバが注目ゲームサーバとして特定された場合、の順に長くなることとなる。
【0060】
このようにして、本実施形態によれば、ゲームの実行開始要求が殺到したとしても、起動中のゲームサーバ24のリソースに余裕がなくなってはじめて新規のゲームサーバ24が起動されることとなるので、余分なゲームサーバ24が起動されてしまうことを防ぐことができることとなる。
【0061】
以下、定期スケーリングについて説明する。
【0062】
本実施形態では、管理サーバ26の学習部34が、所定のタイミングに(例えば、所定時間間隔で)、必要なゲームサーバ24の数(以下、必要ゲームサーバ数と呼ぶ。)の予測の基礎となるパラメータの値等である予測基礎データと、予測基礎データが示すパラメータの値等の取得が行われたタイミングの所定時間後に稼働中であるゲームサーバ24の数である学習ゲームサーバ数データと、が含まれる学習データを生成して、クラウドサービス10の記憶部に記憶させる。
【0063】
学習部34は、例えば、学習タイミングにおいてログインしているユーザによって直近所定時間内にアクセスされた詳細ページに示されているゲームの識別情報(例えば、ゲームのIDやタイトルなど)と、そのゲームの詳細ページのアクセス回数と、を予測基礎データの値として特定する。例えば、ゲームaについては詳細ページのアクセスが100回行われ、ゲームbについては詳細ページのアクセスが200回行われたことなどが特定される。そして、学習部34は、ゲームの識別情報の特定から所定時間後(例えば、2分後)に稼働中であるゲームサーバ24の数を、学習ゲームサーバ数データの値として特定する。そして、学習部34は、特定されたゲームの識別情報、アクセス回数、を予測基礎データとして含み、稼働中であるゲームサーバ24の数の値を学習ゲームサーバ数データの値として含む、学習データを記憶部に記憶させる。
【0064】
そして、学習部34は、上述の学習データの生成が行われると、それまでに行われた複数回の学習によって生成された学習データに基づいて、ゲームと必要ゲームサーバ数との関係を示す関係データを生成する。本実施形態では、例えば、学習データに基づいて特定される、ゲームの詳細ページの1回のアクセスに対応付けられる学習ゲームサーバ数データの値が、当該ゲームの必要ゲームサーバ数として特定されることとなる。ここでは、例えば、ゲームaの識別情報と、必要ゲームサーバ数の値0.1と、が含まれる関係データと、ゲームbの識別情報と、必要ゲームサーバ数の値0.2と、が含まれる関係データと、が生成されたこととする。
【0065】
そして、本実施形態では、定期的に(例えば、所定時間間隔で)、定期スケーリングが行われる。管理サーバ26のゲーム特定部36は、定期スケーリングを実行するタイミングにおいてログイン中であるユーザを特定する。そして、管理サーバ26のゲーム特定部36は、アクセスログに基づいて、特定されたユーザのそれぞれが上述の直近所定時間内にアクセスした詳細ページに示されているゲームの識別情報を、実行が予測されるゲームの識別情報として特定する。このようにして、少なくとも1つのゲームと、そのゲームの詳細ページがアクセスされた回数と、が特定されることとなる。そして、管理サーバ26のゲームサーバ管理部30が、特定されたゲーム及びそのゲームの詳細ページがアクセスされた回数と、上述の関係データと、に基づいて、必要ゲームサーバ数を特定する。例えば、ゲームaのアクセス回数が100で、ゲームbのアクセス回数が150である場合は、必要ゲームサーバ数は、40(100と0.1との積と、150と0.2との積と、の和)と特定される。
【0066】
このようにして特定された必要ゲームサーバ数が、定期スケーリングのタイミングで稼働中であるゲームサーバ24の数(以下、稼働中ゲームサーバ数と呼ぶ。)よりも多い場合は、管理サーバ26のゲームサーバ管理部30は、必要ゲームサーバ数から稼働中ゲームサーバ数を引いた数のゲームサーバ24を新たに起動させる制御を実行する。
【0067】
一方、特定された必要ゲームサーバ数が、稼働中ゲームサーバ数よりも少ない場合は、管理サーバ26のゲームサーバ管理部30は、ゲームインスタンスGIが実行されていないゲームサーバ24を、最大、稼働中ゲームサーバ数から必要ゲームサーバ数を引いた数まで終了させる制御を実行する。なお、ここで、管理サーバ26のゲームサーバ管理部30は、ゲームサーバ24の利用時間に応じた課金が行われるタイミングまでの時間が所定時間(具体的には、例えば、ゲームサーバ24で実行されるゲームの平均プレイ時間)以下あるいは未満となったタイミングで、ゲームサーバ24を停止させる制御を実行するようにしてもよい。
【0068】
このようにして、本実施形態によれば、実行されることが予測されるゲームの情報が、ゲームを実行するゲームサーバ24の数の増減に反映されることとなる。
【0069】
なお、定期スケーリングに関する処理は、上述の例には限定されない。
【0070】
例えば、予測基礎データとして、学習タイミングにおいてログインしているユーザによって直近所定時間内にアクセスされた詳細ページに示されているゲームの識別情報の代わりに、学習タイミングにおいてログインしているユーザによって最後にアクセスされた詳細ページに示されているゲームの識別情報を用いるようにしてもよい。そして、管理サーバ26のゲーム特定部36が、定期スケーリングを実行するタイミングにおいてログイン中であるユーザのそれぞれが最後にアクセスした詳細ページに示されているゲームの識別情報を特定するようにしてもよい。
【0071】
また、例えば、予測基礎データとして、詳細ページに示されているゲームの識別情報の代わりに、ログインしているユーザに提供されている番組表ページに示されているゲームの識別情報を用いるようにしてもよい。また、学習部34が、番組表ページによるゲームに関する情報の1回の提供に対応付けられる必要ゲームサーバ数を示す関係データを生成するようにしてもよい。あるいは、学習部34が、番組表ページに占める対戦ゲームの割合や、対戦でのプレイヤ数と、必要ゲームサーバ数との関係を示す関係データを生成するようにしてもよい。そして、ゲーム特定部36が、定期スケーリングのタイミングでログインしているユーザの番組表ページに示されているゲームを特定するようにしてもよい。そして、ゲームサーバ管理部30が、特定されたゲームと、上述の関係データと、に基づいて必要ゲームサーバ数を特定するようにしてもよい。
【0072】
また、例えば、予測基礎データとして、プレイ履歴情報に示されている、ログインしているユーザが直近の所定時間内にプレイしたゲームの識別情報を用いるようにしてもよい。そして、学習部34が、直近の所定時間内における1回のゲームのプレイに対応付けられる必要ゲームサーバ数を示す関係データを生成するようにしてもよい。そして、ゲーム特定部36が、定期スケーリングのタイミングでログインしているユーザが直近の所定時間内にプレイしたゲームと、上述の関係データと、に基づいて、必要ゲームサーバ数を特定するようにしてもよい。
【0073】
また、学習部34が、ログインしているユーザにとってプレイされている頻度の高い少なくとも1つのゲーム(人気のあるゲーム)と、必要ゲームサーバ数と、の関係を示す関係データを生成するようにしてもよい。そして、ゲーム特定部36が、定期スケーリングのタイミングでログインしているユーザにとってプレイされている頻度の高い少なくとも1つのゲーム(人気のあるゲーム)を特定して、特定されたゲームと上述の関係データとに基づいて、必要ゲームサーバ数を特定するようにしてもよい。
【0074】
また、例えば、学習部34が、クラウドサービス10が提供するゲームに関するイベントの開始時刻や終了時刻までの時間や、イベントの開始時刻や終了時刻からの時間と、必要ゲームサーバ数との関係を示す関係データを生成するようにしてもよい。そして、ゲームサーバ管理部30が、定期スケーリングのタイミングとイベントの開始時刻や終了時刻との関係と、上述の関係データと、に基づいて、必要ゲームサーバ数を特定するようにしてもよい。
【0075】
また、例えば、クラウドサービス10に、ユーザのそれぞれについての、当該ユーザと親しいユーザであるフレンドユーザに関する情報が登録されていてもよい。そして、学習部34が、学習のタイミングでログインしているユーザのフレンドユーザが定期スケーリングのタイミングにプレイしているゲーム、学習のタイミングでログインしているユーザに対する、フレンドユーザから誘いや推薦等のメッセージに含まれているゲーム、学習のタイミングでログインしているユーザが観戦しているゲーム、学習のタイミングでログインしているユーザが繰り返しプレイしているゲーム、学習のタイミングでログインしている有料のチケットを購入したゲームなどと、必要ゲームサーバ数との関係を示す関係データを生成するようにしてもよい。そして、ゲーム特定部36が、定期スケーリングのタイミングでログインしているユーザに関する上述の情報と、上述の関係データと、に基づいて、必要ゲームサーバ数を特定するようにしてもよい。
【0076】
また、例えば、管理サーバ26が、ログインしているユーザが購入しているチケットの残りがなくなったゲームや、何度も失敗してコンティニューしていた面をようやくクリアしたゲームを、そろそろ終了するゲームとして取り扱うことによって、必要ゲームサーバ数を特定するようにしてもよい。
【0077】
また、上述の予測基礎データや関係データにおけるゲームの識別情報の代わりに、ゲームのジャンルの識別情報を用いるようにしてもよい。そして、ゲーム特定部36が、ゲームのジャンルを特定するようにしてもよい。そして、ゲームサーバ管理部30が、特定されたゲームのジャンルに基づいて、必要ゲームサーバ数を特定するようにしてもよい。
【0078】
また、学習部34が、以上の説明で、予測基礎データや関係データとして例示された複数の要素の組合せと、必要ゲームサーバ数と、の関係を示す関係データを生成するようにしてもよい。そして、管理サーバ26が、定期スケーリングのタイミングにおける複数の要素の組合せと、上述の関係データと、に基づいて、必要ゲームサーバ数を特定するようにしてもよい。
【0079】
なお、本実施形態において、クラウドサービス10を提供する事業者と、クラウドサービス10が提供する仮想的なサーバ群でアプリケーションプログラムを動作させることにより、アプリケーションプログラムによって実現されるサービスを、クライアント12を利用するエンドユーザに提供する事業者と、が異なっていてもよいし、同じであっても構わない。
【0080】
なお、本発明は上述の実施形態に限定されるものではない。
【0081】
例えば、ゲームサーバ24でゲームが実行されるたびに、管理サーバ26が、ゲームの最大リソース使用量の計測結果を示す最大リソース使用量データを、実行されたゲームのジャンルの識別情報と関連づけて、クラウドサービス10の記憶部に出力するようにしてもよい。そして、例えば、S201に示す処理で、ゲームサーバ24の上限リソース量データの値から、実行管理データにおいて当該ゲームサーバ24に関連づけられているゲームそれぞれのジャンルの識別情報と関連づけられている最大リソース使用量データの値を引いた値が、実行開始の対象となるゲームの最大リソース使用量の値以上であるゲームサーバ24が存在するか否かが確認されるようにしてもよい。このように、最大リソース使用量の管理を、ゲーム単位で行う代わりに、ゲームのジャンル単位で行うようにしてもよい。
【0082】
また、例えば、最大リソース使用量データが、直近所定回数におけるゲームの実行における、最大リソース使用量の代表値(例えば、直近所定回数におけるゲームの実行における、最大リソース使用量の平均値)を示していてもよい。
【0083】
また、例えば、クラウドサービス10が、最大リソース使用量データの代わりに、ゲームの実行の際の平均CPU使用率、平均メモリ使用量、単位時間あたりの平均ネットワーク入出力回数(平均ネットワーク入出力頻度)、単位時間あたりの平均ディスク入出力回数頻度(平均ネットワーク入出力頻度)、等といった、平均リソース使用量の計測結果を示す平均リソース使用量データを用いるようにしてもよい。このとき、ゲームが複数回実行された場合については、複数回のゲームの実行のうちの、平均リソース使用量が最も多いゲームの実行における平均リソース使用量データがクラウドサービス10の記憶部に記憶されるようにしてもよい。また、このとき、平均リソース使用量データが、直近所定回数におけるゲームの実行における、平均リソース使用量の代表値(例えば、直近所定回数におけるゲームの実行における、平均リソース使用量の平均値)を示していてもよい。なお、この場合に、上限リソース量データが、ゲームの実行にあたって確保可能な平均リソース使用量の合計の上限を示すようにしてもよい。
【0084】
また、例えば、管理サーバ26が、定期スケーリングにおいて、定期スケーリングのタイミングで稼働中のゲームインスタンスGIの数に所定数(例えば、1.1)を乗じた値のゲームインスタンスGIの生成に必要なゲームサーバ24の数を、必要ゲームサーバ数として特定するようにしてもよい。
【0085】
また、例えば、管理サーバ26が、現在のゲームサーバ24の稼働数に、直近の所定時間(例えば、ゲームサーバ24の起動に要する時間(例えば、2分間))に起動されたゲームサーバ24の数を増加させ、直近の所定時間に停止されたゲームサーバ24の数を減少させた数を、必要ゲームサーバ数として特定するようにしてもよい。
【0086】
また、クラウドサービス10に含まれるサーバが、ショッピングサイトやSNS(Social Networking Service)等のサービスを提供してもよい。
【0087】
また、ゲームプログラムはエミュレータで実行される必要はなく、例えば、クラウドサービス10やクライアント12のシステムソフトウェア(オペレーティングシステム等)上で実行されてもよい。また、クラウドサービス10とクライアント12の役割分担は上述の例には限定されない。
【0088】
また、上記の具体的な文字列や図面中の具体的な文字列は例示であり、これらの文字列には限定されない。
【符号の説明】
【0089】
10 クラウドサービス、12 クライアント、14 コンピュータネットワーク、20 フロントエンドサーバ、22 エントランスサーバ、24 ゲームサーバ、26 管理サーバ、30 ゲームサーバ管理部、32 負荷監視部、34 学習部、36 ゲーム特定部。

【特許請求の範囲】
【請求項1】
それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段と、
前記実行開始要求を受け付けた際に、起動済又は起動中であるいずれのゲームサーバにおいても、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段と、
前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段と、
を含むことを特徴とする情報処理システム。
【請求項2】
前記実行開始要求を受け付けた際に、起動済であるゲームサーバのうち、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内であるゲームサーバが存在する場合は、前記実行手段は、当該ゲームサーバに前記実行開始要求に応じたゲームを実行させる、
ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記実行開始要求を受け付けた際に、起動済であるゲームサーバのうち、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内であるゲームサーバが存在せず、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内である起動中のゲームサーバが存在する場合は、前記実行手段が、当該起動中のゲームサーバに前記実行開始要求に応じたゲームを実行させ、
前記実行開始要求を受け付けた際に、起動済であるゲームサーバのうち、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内であるゲームサーバが存在せず、前記実行開始要求に応じたゲームに対応付けられるリソース量が、確保可能な残りのリソース量の範囲内である起動中のゲームサーバが存在しない場合は、前記起動手段が、新たなゲームサーバを起動させ、前記実行手段が、前記起動手段により起動されたゲームサーバに前記実行開始要求に応じたゲームを実行させる、
ことを特徴とする請求項1又は2に記載の情報処理システム。
【請求項4】
それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバと、
前記少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段と、
前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段と、
前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段と、
を含むことを特徴とする情報処理システム。
【請求項5】
それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付ステップと、
前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動ステップと、
前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行ステップと、
を含むことを特徴とする情報処理方法。
【請求項6】
それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段、
前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段、
前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段、
としてコンピュータを機能させることを特徴とするプログラム。
【請求項7】
それぞれ、少なくとも1つのゲームが実行可能であって、少なくとも1つのゲームの実行にあたって確保可能なリソース量の合計の上限が設定されており、実行の対象となるゲームに対応付けられるリソース量が確保可能である場合に当該ゲームを実行する、少なくとも1つのゲームサーバでのゲームの実行開始要求を受け付ける受付手段、
前記実行開始要求を受け付けた際に、前記実行開始要求に応じたゲームに対応付けられるリソース量が、起動済又は起動中であるゲームサーバにおいて確保可能な残りのリソース量を超える場合に、新たなゲームサーバを起動させる起動手段、
前記実行開始要求に応じたゲームをいずれかの前記ゲームサーバに実行させる実行手段、
としてコンピュータを機能させることを特徴とするプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−109547(P2013−109547A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−253529(P2011−253529)
【出願日】平成23年11月21日(2011.11.21)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)