(57)【要約】【課題】ユーザーがゲームのプレイを継続しながら、あるサーバで実現されていたゲームの実行を、他のサーバに継続して行わせる。【解決手段】第２のサーバの第２の実行手段は、少なくとも第１のサーバからの再現データに含まれる順次取得された入力情報を用いて、第１の速度よりも早い第２の速度で、アプリケーションを実行することにより、第２の実行手段において第１の実行手段の状態を再現し、第１のサーバの第１の実行手段の状態を再現した後に、第２のサーバにより順次取得された入力情報を用いて、第１の速度に対応する速度で、アプリケーションを実行し、第１のサーバは、第２の実行手段が前記アプリケーションの実行結果の端末への送信を開始した後に、アプリケーションの実行結果の前記端末への送信を停止する。【選択図】図５
2013117757.tif 000002
【特許請求の範囲】
【請求項１】
順次取得される入力情報を用いて、第１の速度で、アプリケーションの実行する第１の実行手段と、前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、を含む第１のサーバと、
前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、を含む第２のサーバと、を含み、
前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、
前記第１のサーバは、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
ことを特徴とする情報処理システム。
【請求項２】
前記再現データは、前記第１の実行状態を表す実行状態情報を含み、
前記第２の実行手段は、更に、前記実行状態情報を用いて、前記第２の実行手段において前記第１の実行手段の状態を再現することを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記再現データ取得手段は、前記再現データを、前記第１のサーバから取得することを特徴とする請求項１または２に記載の情報処理システム。
【請求項４】
前記再現データ取得手段は、前記再現データの一部を、前記第１のサーバ及び前記第２のサーバと異なる第３のサーバから取得することを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記第２の実行手段は、該第２の実行手段が前記端末からの現在の入力情報を用いた前記アプリケーションの実行が可能となる実行可能時まで、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現することを特徴とする請求項１乃至４のいずれかに記載の情報処理システム。
【請求項６】
前記第２の実行手段は、前記実行可能時以後は、前記第２のサーバに含まれる前記入力情報取得手段により順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行することを特徴とする請求項５に記載の情報処理システム。
【請求項７】
第１のサーバに含まれる第１の実行手段により、順次取得される入力情報を用いて、第１の速度で、アプリケーションの実行を開始し、
前記第１のサーバにより、前記アプリケーションの実行結果の端末への送信を開始し、
第２のサーバにより、前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得し、
前記第２のサーバにより、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報の取得を開始し、
前記第２のサーバに含まれる第２の実行手段により、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、
前記第２の実行手段により、前記第１の実行手段の状態が再現された後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションの実行を開始し、
前記第２のサーバにより、前記第２の実行手段による前記アプリケーションの実行結果の前記端末への送信を開始し、
前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記第１のサーバは、前記アプリケーションの実行結果の前記端末への送信を停止する、
ことを特徴とする情報処理方法。
【請求項８】
順次取得される入力情報を用いて、第１の速度で、アプリケーションを実行する第１の実行手段と、前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、を含む第１のサーバ手段、及び、
前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得する再現データ取得手段と、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、含む第２のサーバ手段、としてコンピュータシステムを機能させるための情報処理プログラムであって、
前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバ手段により順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、
前記第１のサーバ手段は、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
ことを特徴とする情報処理プログラム。
【請求項９】
請求項８に記載の情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項１０】
順次取得される入力情報を用いて、第１の速度で、アプリケーションを実行する第１の実行手段と、
前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、
を含む第１のサーバであって、
前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、を含む第２のサーバにおける前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、
前記第１のサーバは、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
ことを特徴とする第１のサーバ。
【請求項１１】
順次取得される入力情報を用いて、第１の速度で、アプリケーションを実行する第１の実行手段と、前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、を含む第１のサーバにおける前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、
前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、
を含む第２のサーバであって、
前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、
前記第１のサーバは、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
ことを特徴とする第２のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
サーバとクライアントとをネットワークを介して接続し、オンラインでゲームをプレイすることができるいわゆるオンラインゲームが知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記のようなオンラインゲームは、例えば、各ゲームサーバ上でゲーム機器に相当するゲームを実行する手段（ゲーム実行手段）が再現され、当該ゲーム実行手段によるゲームプログラムの実行結果が各端末に送信されることにより実現される。ここで、例えば、接続される端末の数が減少し、各サーバの負荷が低くなるような場合がある。このような負荷率の低い複数のサーバを起動したまま維持するのは、システム全体として非効率であり、かつ、コストが高くなる場合がある。
【０００４】
本発明は、上記課題に鑑みてなされたものであって、例えば、ユーザーがゲームのプレイを継続しながら、あるサーバで実現されていたゲームの実行を、他のサーバに継続して行わせることができる情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００５】
（１）本発明の情報処理システムは、順次取得される入力情報を用いて、第１の速度で、アプリケーションの実行する第１の実行手段と、前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、含む第１のサーバと、前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、を含む第２のサーバと、を含み、前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、前記第１のサーバは、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
【０００６】
（２）上記（１）に記載の情報処理システムにおいて、前記再現データは、前記第１の実行状態を表す実行状態情報を含み、前記第２の実行手段は、更に、前記実行状態情報を用いて、前記第２の実行手段において前記第１の実行手段の状態を再現することを特徴とする。
【０００７】
（３）上記（１）または（２）に記載の情報処理システムにおいて、前記再現データ取得手段は、前記再現データを、前記第１のサーバから取得することを特徴とする。
【０００８】
（４）上記（１）に記載の情報処理システムにおいて、前記再現データ取得手段は、前記再現データの一部を、前記第１のサーバ及び前記第２のサーバと異なる第３のサーバから取得することを特徴とする。
【０００９】
（５）上記（１）乃至（４）のいずれかに記載の情報処理システムにおいて、前記第２の実行手段は、該第２の実行手段が前記端末からの現在の入力情報を用いた前記アプリケーションの実行が可能となる実行可能時まで、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現することを特徴とする。
【００１０】
（６）上記（５）に記載の情報処理システムにおいて、前記第２の実行手段は、前記実行可能時以後は、前記第２のサーバに含まれる前記入力情報取得手段により順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行することを特徴とする。
【００１１】
（７）本発明の情報処理方法は、第１のサーバに含まれる第１の実行手段により、順次取得される入力情報を用いて、第１の速度で、アプリケーションの実行を開始し、前記第１のサーバにより、前記アプリケーションの実行結果の端末への送信を開始し、第２のサーバにより、前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得し、前記第２のサーバにより、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報の取得を開始し、前記第２のサーバに含まれる第２の実行手段により、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第２の実行手段により、前記第１の実行手段の状態が再現された後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションの実行を開始し、前記第２のサーバにより、前記第２の実行手段による前記アプリケーションの実行結果の前記端末への送信を開始し、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記第１のサーバは、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
【００１２】
（８）本発明の情報処理プログラムは、順次取得される入力情報を用いて、第１の速度で、アプリケーションを実行する第１の実行手段、前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、含む第１のサーバ手段、及び、前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得する再現データ取得手段と、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、含む第２のサーバ手段、としてコンピュータシステムを機能させるための情報処理プログラムであって、前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバ手段により順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、前記第１のサーバ手段は、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
【００１３】
（９）本発明のコンピュータ読み取り可能な記憶媒体は、上記（８）に記載の情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
【００１４】
（１０）本発明の第１の情報処理サーバは、順次取得される入力情報を用いて、第１の速度で、アプリケーションを実行する第１の実行手段と、前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、を含む第１のサーバであって、前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、を含む第２のサーバにおける前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、前記第１のサーバは、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
【００１５】
（１１）本発明の第２の情報処理サーバは、順次取得される入力情報を用いて、第１の速度で、アプリケーションを実行する第１の実行手段と、前記アプリケーションの実行結果を端末へ送信する第１の送信手段と、を含む第１のサーバにおける前記第１の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第２のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第２の実行手段と、前記第２の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第２の送信手段と、を含む第２のサーバであって、前記第２の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第１の速度よりも早い第２の速度で、前記アプリケーションを実行することにより、前記第２の実行手段において前記第１の実行手段の状態を再現し、前記第１の実行手段の状態を再現した後に、前記第２のサーバにより順次取得された入力情報を用いて、前記第１の速度に対応する速度で、前記アプリケーションを実行し、前記第１のサーバは、前記第２の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
【図面の簡単な説明】
【００１６】
【図１】第１の実施の形態における情報処理システムの一例について説明するための図である。
【図２】図１に示した端末の構成の一例について説明するための図である。
【図３】図１に示した端末の外観の一例を示す図である。
【図４】図１に示した仮想サーバを説明するための図である。
【図５】図１に示した情報処理システムの機能的な構成の一例を説明するための図である。
【図６】図１に示した情報処理システムの処理のフローの一例について説明するための図である。
【図７Ａ】早送り実行の一例について説明するための図である。
【図７Ｂ】早送り実行の他の一例について説明するための図である。
【図８Ａ】第２の実施の形態における第１のマイグレーション部の機能的構成の一例を説明するための図である。
【図８Ｂ】第２の実施の形態における第２のマイグレーション部の機能的構成の一例を説明するための図である。
【図９】第２の実施の形態における情報処理システムの処理のフローを説明するための図である。
【図１０Ａ】第３の実施の形態における第１のマイグレーション部の機能的構成の一例を説明するための図である。
【図１０Ｂ】第３の実施の形態における第２のマイグレーション部の機能的構成の一例を説明するための図である。
【図１０Ｃ】第３の実施の形態におけるファイルサーバの機能的構成の一例を説明するための図である。
【図１１】第３の実施の形態における情報処理システムの処理のフローを説明するための図である。
【図１２Ａ】第４の実施の形態における第１のマイグレーション部の機能的構成の一例を説明するための図である。
【図１２Ｂ】第４の実施の形態における第２のマイグレーション部の機能的構成の一例を説明するための図である。
【図１２Ｃ】第４の実施の形態におけるファイルサーバの機能的構成の一例を説明するための図である。
【図１３】第４の実施の形態における情報処理システムの処理のフローを説明するための図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【００１８】
図１は、本発明の実施の形態における情報処理システムの一例について説明するための図である。図１に示すように、本実施の形態における情報処理システム１１０は、クラウド基盤１００と、１または複数の端末１０２とを含む。クラウド基盤１００と当該端末１０２は、ネットワーク１０１を介して接続される。
【００１９】
クラウド基盤１００は、管理サーバ１０３、後述する１または複数の仮想サーバ（ＶＭ）１０４、１または複数のデータベース（ＤＢ）１０５を含む。なお、ここでいうクラウド基盤１００とは、いわゆるネットワーク１０１をベースとしたコンピュータの利用形態であって、ユーザーがコンピュータ処理をネットワーク経由で、サービスとして利用するための基盤をいう。
【００２０】
端末１０２は、図２に示すように、制御部２０１、通信部２０２、記憶部２０３、表示部２０４、操作部２０５を含む。なお、各部２０１−２０５は、バス２０６を介して接続される。制御部２０１は、例えば、ＣＰＵやＭＰＵ等であって、記憶部２０３に格納されたプログラムに従って動作する。記憶部２０３は、例えば、ハードディスクやＲＯＭやＲＡＭ等の情報記録媒体で構成され、制御部２０１によって実行されるプログラムを保持する情報記録媒体である。また、記憶部２０３は、制御部２０１のワークメモリとしても動作する。なお、上記制御部２０１で処理されるプログラムは、例えば、ネットワーク１０１を介して、ダウンロードされて提供されてもよいし、または、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【００２１】
操作部２０５は、例えば、キーボード、マウス、コントローラ、ボタン等のインターフェースで構成され、ユーザーの指示操作に応じて、当該指示操作の内容を制御部２０１に出力する。表示部２０４は、例えば、液晶ディスプレイ、ＣＲＴディスプレイ、または有機ＥＬディスプレイ等であって、制御部２０１からの指示に従い、情報を表示する。ここで、操作部２０５及び表示部２０４は、タッチパネルで構成してもよい。
【００２２】
なお、上記端末１０２の構成は一例であってこれに限定されるものではない。具体的には、例えば、テレビ、スマートフォン、タブレット、パーソナルコンピュータを含み、また、操作部２０５は、ゲームパッド、テレビのリモコンを含む。また、データベース１０５や管理サーバ１０３も、上記と同様の制御部２０１、通信部２０２、記憶部２０３を含んで構成されることから、詳細な説明については省略する。
【００２３】
図３は、端末の外観の一例を示す図である。図３に示すように、端末１０２は、例えば、操作部２０５として、方向キー３０１、複数のボタン３０２、アナログ操作部３０３を有し、また、表示部２０４として表示画面３０４を有する。
【００２４】
方向キー３０１は、例えば、上方向指示キー、下方向指示キー、右方向指示キー、左方向指示キーを有する。当該方向キー３０１により、ユーザーは、例えば、画面上の対象物を、上下左右に移動する等を行う。また、複数のボタン３０２には、それぞれ、例えば、ａ、ｂ、ｃ、ｄ等の印をそれぞれ有する。ユーザーは、例えば、これらのボタン３０２を押すことにより、実行されるアプリケーションによって定められるそれぞれのボタンに応じた処理を実行することができる。なお、当該複数のボタン３０２は、ユーザーがこれらのボタンを押し込んだ強さや距離に応じた処理を実行することのできるいわゆるアナログボタンであってもよい。
【００２５】
アナログ操作部３０３は、例えば、所定の基準位置からの傾倒操作が可能であり、ユーザーは、アナログ操作部３０３の基準位置からの傾き量と傾き方向に応じた入力情報を入力する。例えば、ユーザーは、アナログ操作部３０３を用いて、表示画面３０４上に表示された対象物を、当該傾き量と傾き方向に応じて、所望の方向に所望の量だけ傾けることを行うことができる。また、表示画面３０４は、表示部２０４の表示画面３０４に相当し、例えば、アプリケーションに応じた画像等を表示する。
【００２６】
なお、図３に示した端末１０２の外観、操作部２０５及び表示部２０４の構成は、一例であって、これに限られるものではない。例えば、操作部２０５は、表示部２０４に表示されたタッチパネルにより形成されてもよいし、表示部２０４は、ＣＲＴや液晶表示装置で形成されたモニタ等の表示画面であってもよい。更に、方向キー３０１、複数のボタン３０２、アナログ操作部３０３の数はその他の数または形状であってもよいし、また、端末１０２は、スタートボタンやセレクトボタン（図示なし）等その他のボタンや加速度センサを有してもよい。
【００２７】
図４は、図１に示した仮想サーバについて説明するための図である。図４に示すように、クラウド基盤１００は、仮想サーバ制御部４０１、仮想サーバ制御部４０１に接続された物理マシン４０２群を含む。
【００２８】
図４に示すように、各物理マシン４０２上にはハイパーバイザ４０３が設けられ、ハイパーバイザ４０３上に１又は複数の仮想サーバ１０４が立ち上げられる。なお、ハイパーバイザ４０３とは、汎用ＯＳの助けを必要とせずに、各物理マシン４０２の上に仮想サーバ１０４を立ち上げ、制御するソフトウェアである。また、仮想サーバ１０４とは、公知のようにＣＰＵとメモリのセットを仮想的に作りだしたものである。なお、各物理マシン４０２は、ＣＰＵやメモリ等により形成されるコンピュータであることはいうまでもない。
【００２９】
各仮想サーバ１０４は、ＯＳ４０４とアプリケーション４０５を有する。なお、仮想サーバ１０４で処理される上記プログラムは、当該アプリケーション４０５の１つに相当する。仮想サーバ制御部４０１は、上記物理マシン４０２上に、１又は複数の仮想サーバ１０４を生成する。これは、具体的には、ハイパーバイザ４０３を介して、仮想サーバ１０４への物理マシン４０２のリソース（例えば、ＣＰＵの処理時間、メモリ容量等のリソース）を割り当てて、制御することによって行われる。
【００３０】
つまり、下記に説明する仮想サーバ１０４におけるプログラムのインストールや実行は、実際には、物理マシン４０２で行われる。例えば、物理マシン４０２におけるメモリ等で構成される記憶部に、本実施の形態におけるプログラムを含む複数のプログラムが、記憶され、本実施の形態におけるプログラムは、実際には物理マシン４０２の１または複数のＣＰＵにより、実行される。このとき、物理マシン４０２の１または複数のＣＰＵは、上記複数のプログラムにも使用され、例えば、１または複数のＣＰＵの処理時間を分割してその一部を、本実施の形態におけるプログラムの実行に割り当てられること等により実行される。なお、上記に示した仮想サーバ１０４等の構成は一例であってこれに限定されるものでない。
【００３１】
次に、図５及び図６を用いて、本実施の形態における情報処理システム１１０の機能的構成及び処理のフローの一例について説明する。図５は、本実施の形態における情報処理システム１１０の機能的な構成の一例を説明するための図である。また、図６は、本実施の形態における情報処理システム１１０の処理のフローの一例について説明するための図である。
【００３２】
図５に示すように、本実施の形態における情報処理システム１１０は、機能的に、管理サーバ１０３、第１のサーバ５０１、第２のサーバ５０２を含む。当該第１のサーバ５０１及び第２のサーバ５０２は、例えば、それぞれ図１に示した複数の仮想サーバ１０４のうちの１の仮想サーバ１０４に相当する。なお、図５においては、説明の簡略化のため、２の仮想サーバ１０４（第１のサーバ５０１、第２のサーバ５０２）を示すとともに、当該２の仮想サーバ１０４上に、それぞれ１のゲームインスタンスが実現される場合を示すが、情報処理システム１１０には、例えば、接続される端末１０２の数に応じた数の仮想サーバ１０４が実現されてもよいし、また、各仮想サーバ１０４上には、その他の数のゲームインスタンスが実現されてもよい。ここで、ゲームインスタンスとは、１のゲーム機器をサーバ上で再現した機能に相当する。
【００３３】
また、下記においては、説明の簡略化のため、一例として、第１のサーバ５０１のサーバプロセスを、第２のサーバ５０２にマイグレーションする場合に実現される情報処理システム１１０の機能的構成及び当該情報処理システム１１０のフローの一例について説明する。ここで、マイグレーションとは、例えば、上記例の場合、第１のサーバ５０１で実現されているゲームインスタンスを、第２のサーバ５０２で実現するとともに、第１のサーバ５０１で実行されているゲームプログラムを継続して実行することに相当する。具体的には、下記においては、一例として、第１のサーバ５０１で１のゲームインスタンスのみが起動中であり、かつ、第２のサーバ５０２のＣＰＵ利用率に当該１のゲームインスタンスを第２のサーバ５０２で実現できる余裕がある場合において、当該第１のサーバ５０１で実現されているゲームインスタンスを、第２のサーバ５０２で継続して実現するとともに、第１のサーバ５０１で実行されているゲームプログラムを継続して実行する場合について、説明する。なお、サーバの負荷によっては、第２のサーバ５０２で実現されているゲームインスタンスを、第１のサーバ５０１で継続して実現する場合やその他の場合もあることから、後述する第１及び第２のサーバ５０２の機能的構成、特に第１及び第２のサーバ５０２におけるマイグレーション部を１の仮想サーバ１０４（例えば、第１のサーバ５０１または第２の仮想サーバ５０２）が有するように構成してもよい。また、後述するように、第１及び第２のサーバ５０２の一部の機能的構成を、他の仮想サーバ１０４、管理サーバ１０３、または、その他のサーバにおいて実現するように構成してもよい。
【００３４】
第１のサーバ５０１における第１の入力情報取得部５０３は、所定期間毎に順次、対応する端末１０２からの入力情報を取得する。ここで、対応する端末１０２とは、当該第１のサーバ５０１において実現されている当該ゲームインスタンスと接続される端末１０２に相当する。つまり、第１の入力情報取得部５０３は、具体的には、例えば、ゲームプログラムの操作対象であるキャラクタの操作情報を、入力情報として取得する。また、対応する端末１０２には、当該ゲームインスタンスで実行されるゲームプログラムの実行結果が配信される。当該実行結果は、例えばゲームプログラムの実行に応じた動画像情報を含み、端末１０２は、当該動画像情報を端末１０２の表示部２０４に表示する。なお、当該実行結果は、圧縮部（図示なし）により圧縮した後、端末１０２に送信されてもよい。この場合、端末１０２は、圧縮された実行結果を解凍して当該表示部２０４に表示する。
【００３５】
第１の実行部５０４は、対応する端末１０２を使用するユーザーの所望のゲームプログラムを実行する。ここで、当該第１の実行部５０４は、第１の入力情報取得部５０３により順次取得される、端末１０２からの入力情報に基づいた処理を行うことによりゲームプログラムを実行する。具体的には、例えば、順次取得される入力情報に応じて、当該ゲームプログラムにおける操作対象であるキャラクタを移動させたり、動作させたりする。なお、第１の実行部５０４は、例えば、エミュレータやシミュレータに相当する。また、例えば、当該ゲームプログラムはＤＢ１０５に記憶され、第１の実行部５０４は、ＤＢ１０５から当該ゲームプログラムを取得して、ユーザーの指定したゲームプログラムを実行する。
【００３６】
第１の送信部５０６は、第１の実行部５０４によるゲームプログラムの実行結果を、対応する端末１０２に送信する。具体的には、例えば、当該ゲームプログラムの実行に基づく動画像情報や音声情報を圧縮して、ネットワーク１０１を介して、対応する端末１０２に送信する。つまり、本実施の形態においては、後述するマイグレーション指示が送信される前においては、例えば、第１のサーバ５０１のゲームインスタンスにおいて、ゲームプログラムが実行され、当該ゲームプログラムの実行に伴う実行結果を端末１０２に配信する。つまり、マイグレーションに伴うプロセスが開始される前は、第１のサーバ５０１においてゲームプログラムが実行され、当該実行に伴う動画像情報や音声情報が端末１０２に配信されることにより、ユーザーは当該ゲームプログラムをプレイする。
【００３７】
次に、主に、マイグレーションに伴うプロセス、及び、当該プロセスを実現するための機能的構成及びその処理のフローについて説明する。管理サーバ１０３は、サーバ管理部５１１、負荷監視部５１２を含む。負荷監視部５１２は、所定期間毎（例えば、６０秒毎）に、各仮想サーバ１０４の負荷を監視する。具体的には、例えば、サーバ管理部５１１は、各仮想サーバ１０４のＣＰＵ利用率や、ネットワークＩ／Ｏ（Input/output）の状況を監視することにより、各仮想サーバ１０４の負荷を監視し、各仮想サーバ１０４の負荷を表す負荷情報を後述するサーバ管理部５１１に出力する。
【００３８】
サーバ管理部５１１は、上記負荷監視部５１２からの負荷情報に基づいて、後述する各仮想サーバ１０４間におけるマイグレーションを指示するとともに、各仮想サーバ１０４の起動及び停止を管理する。具体的には、上記例の場合、サーバ管理部５１１は、第１のサーバ５０１で１のゲームインスタンスのみが起動中でＣＰＵ利用率が低く、かつ、第２のサーバ５０２のＣＰＵ利用率に当該１のゲームインスタンスを第２のサーバ５０２で実現できる余裕があることを表す負荷情報を、負荷監視部５１２から取得する。
【００３９】
この際、サーバ管理部５１１は、図６に示すように、当該負荷情報に基づき、第１のサーバ５０１で実現されているゲームインスタンスを、第２のサーバ５０２で再現するとともに、継続して実行するためのマイグレーション指示を第１のサーバ５０１及び第２のサーバ５０２に送信する（Ｓ１０１、Ｓ１０２）。なお、図６においては、マイグレーション指示を第１のサーバ５０１に送信（Ｓ１０１）した後、第２のサーバ５０２に送信（Ｓ１０２）する場合について図示するが、当該マイグレーション指示は、同時に送信してもよいし、第２のサーバ５０２に送信した後に、第１のサーバ５０１に送信してもよい。
【００４０】
第１のサーバ５０１における第１の入力情報保持部５０７は、管理サーバ１０３からのマイグレーション指示に応じて、第１の入力情報取得部５０３において順次取得される端末１０２からの入力情報の保持を開始する（Ｓ１０３）。なお、当該入力情報は、例えば、入力情報が取得された順序を示す順序情報を含む。具体的には、例えば、第１の入力情報取得部５０３が、順次、順序情報１、２、３、４、５・・を含む各入力情報を取得した場合において、マイグレーション指示を順序情報４と５が取得される間のあるタイミングで取得したような場合には、第１の入力情報保持部５０７は、順序情報５以降の入力情報を、当該順序情報とともに保持する。つまり、この場合、例えば、第１の入力情報保持部５０７は、順序情報５、６、７、・・・を含む入力情報を順次保持する。
【００４１】
第１の状態情報取得部５０８は、例えば、第１の入力情報保持部５０７における入力情報の保持の開始に基づいて、第１の実行部５０４の実行状態を表す状態情報を取得する（Ｓ１０４）。つまり、例えば、上記例の場合、第１の状態情報取得部５０８は、順序情報４に対応する入力情報に応じた処理が行われた際における状態情報を取得する。そして、第１の状態情報取得部５０８は、当該取得した状態情報を、次に入力される順序情報（上記例の場合、順序情報５）とともに、第２のサーバ５０２に送信する（Ｓ１０５）。そして、第２のサーバ５０２における第２の状態情報保持部５１８は、当該状態情報を順序情報とともに保持する（Ｓ１０６）。
【００４２】
ここで、状態情報とは、例えば、エミュレータやシミュレータ等で構成される第１の実行部５０４や第２の実行部５１４により、再現されるゲームプログラムを実行するゲーム機器の状態情報（メモリ、レジスタ、プログラムカウンタの値等）に相当する。なお、ゲーム機器自体が実装される場合には、当該ゲーム機器の状態情報に相当する。
【００４３】
第１の入力情報送信指示部５０９は、マイグレーション指示に応じて、対応する端末１０２に、第２のサーバ５０２へも入力情報を送信する入力情報送信指示を送信する（Ｓ１０７）。この際、例えば、マイグレーション指示は、第２のサーバ５０２を識別するサーバ識別情報を含み、入力情報送信指示は、当該第２のサーバ５０２を識別するサーバ識別情報を含む。端末１０２は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ（上記例の場合、第２のサーバ５０２）に、入力情報の送信を開始する（Ｓ１０８）。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末１０２は、例えば、順序情報が８以降の入力情報、つまり、順序情報８、９、１０・・・を含む入力情報の送信を開始する。
【００４４】
第２のサーバ５０２の第２の入力情報保持部５１７は、第１のサーバ５０１からの入力情報送信指示に応じた端末１０２から取得した入力情報の保持を開始する（Ｓ１０９）。具体的には、上記例の場合、順序情報８、９、１０・・・を含む入力情報との保持を開始する。
【００４５】
第２のサーバ５０２の入力情報要求部５１９は、第１のサーバ５０１に要求する入力情報を特定するとともに（Ｓ１１０）、第１のサーバ５０１に当該入力情報の要求指示を送信する（Ｓ１１１）。ここで、要求する入力情報は、例えば、第２の状態情報保持部５１８に保持された状態情報に関連付けて保持された順序情報と、第２の入力情報保持部５１７に保持された順序情報とを比較することにより、第２のサーバ５０２に保持されていない入力情報、つまり、不足している入力情報を特定し、当該不足している入力情報を要求する。具体的には、上記例の場合、状態情報には順序情報５が関連付けられており、また、第２の入力情報保持部５１７に保持されている入力情報の順序情報は、８、９、１０・・・であることから、順序情報５、６、７に対応する入力情報を第１のサーバ５０１に要求する入力情報として特定し、第１のサーバ５０１に当該入力情報の要求指示を送信する。
【００４６】
第１のサーバ５０１における第１の入力情報送信部５１０は、第２のサーバ５０２からの入力情報の要求指示に基づいて、第１の入力情報保持部５０７に保持された入力情報を第２のサーバ５０２に送信する（Ｓ１１２）。具体的には、上記例の場合、順序情報５、６、７を含む入力情報を第１の入力情報保持部５０７から取得し、第２のサーバ５０２に送信する。
【００４７】
第２のサーバ５０２における第２の入力情報保持部５１７は、第１のサーバ５０１からの要求した入力情報を保持する（Ｓ１１３）。これにより、例えば、上記例の場合、第２の入力情報保持部５１７は、状態情報に関連付けられた順序情報以降の順序情報を含む、つまり、順序情報５、６、７・・・を含む入力情報を保持することができる。
【００４８】
第２のサーバ５０２における第２の実行制御部５１５は、第２の実行部５１４において、第２の状態情報保持部５１８に保持された状態情報を用いて、第１の実行部５０４の実行状態を再現する（Ｓ１１４）。そして、第２の実行制御部５１５は、第２の実行部５１４に第２の入力情報保持部５１７に保持されている入力情報を用いて、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、早送り実行を行わせる（Ｓ１１５）。
【００４９】
ここで、早送り実行とは、例えば、ゲームプログラムの実行速度としてあらかじめ予定されている速度（第１の実行速度）よりも早い速度（第２の実行速度）でゲームプログラムを実行させることに相当する。具体的には、例えば、第２の実行部５１４に第２の入力情報保持部５１７に保持されている入力情報を用いて現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、第２の実行部５１４で実現できる最速の実行速度でゲームプログラムの実行を行わせる。そして、例えば、第２の入力情報保持部５１７に保持されている入力情報を用いた早送り実行が、現在の入力情報を用いたゲームプログラムの実行のタイミングよりも速く終了した場合には、第２の実行部５１４を停止させる。そして、端末１０２から入力される入力情報を用いて通常の速度（第１の実行速度に対応）で第２の実行部を実行させるタイミングを待って、通常の速度でゲームプログラムを実行させる。
【００５０】
ここで、例えば、第１の実行部５０４または第２の実行部５１４の実行速度は、ゲームプログラムが実行される専用のゲーム機器よりも高速である場合がある。この場合、例えば、毎フレームの描画処理が１／６０秒である場合、当該１／６０秒以内にフレームの描画処理が終了することから、次の１／６０秒のタイミングが到来するまで第１の実行部５０４または第２の実行部５１４の実行処理を停止させることにより、通常の速度におけるゲームプログラムを実現する。更に、この場合、例えば、上記第２の実行部５１４における早送り実行は、第２の実行処理の停止を行わないことにより実現し、そして、上記のように入力情報保持部５１７に保持されている入力情報を用いた当該早送り実行が当該１／６０秒毎のタイミングにあわずに早期に終了した場合には、第２の実行部５１４による早送り実行を停止させ、その後、当該１／６０秒毎のタイミングにあわせて、第２の実行部５１４による通常の速度での処理を実行させるように構成してもよい。
【００５１】
また、当該第２の実行速度は、早送り実行が行われる時間全体として、上記第１の実行速度よりも早い速度に相当し、例えば、３倍速と４倍速のような複数の速度で構成されてもよい。具体的には、図７に示す場合を例として説明する。図７は、上記例の場合において、第２の入力情報保持部５１７に保持されている入力情報の順序情報を示す。図７においては、第２の入力情報保持部５１７が保持している各入力情報７０１を、順序情報を示す番号として示す。また、ｔ１乃至ｔ４等は、第２の入力情報保持部５１７が各入力情報を保持するタイミングを示す。なお、図７Ａが、３倍速で入力情報を第２の実行部５１４に入力することにより早送り実行する場合、図７Ｂが、４倍速で入力情報を第２の実行部５１４に入力することにより、早送り実行する場合を示す。
【００５２】
図７Ａに示すように、例えば、タイミングｔ１、ｔ２、ｔ３、ｔ４の順に、第２の入力情報保持部５１７には、順序情報１１、１２、１３、１４を含む入力情報が保持される。まず、早送り実行が開始されると、タイミングｔ１において、順序情報５、６、７を含む各入力情報が第２の実行部５１４に入力される。同様に、タイミングｔ２において、順序情報８乃至１０を含む各入力情報が第２の実行部５１４に入力され、タイミングｔ３において、順序情報１１乃至１３を含む各入力情報が第２の実行部５１４に入力される。タイミングｔ４においては、入力される入力情報の順序情報は１４であり、既に順序情報１３までが早送り実行されているので、タイミングｔ４以降は、端末１０２から順次入力される入力情報（現在の入力情報）を用いて第２の実行部５１４を通常の速度（例えば、ゲームプログラムのプレイ速度として予め定められている速度）で実行することができる。なお、当該端末１０２から順次入力される入力情報が、第２の入力情報保持部５１７に順次保持されることは上述のとおりである。第２の実行制御部５１５は、上記のように現在の入力情報（上記例の場合は、順序情報１４を含む入力情報に相当）を用いて第２の実行部５１４の実行が可能となるまで、当該ゲームプログラムを早送り実行させる。
【００５３】
ここで、例えば、図７Ｂに示すように、早送り実行において、常に同じｎ倍速（ｎは２以上の自然数）とすることはできない場合がある。そのような場合には、早送り実行において早送りの速度を調整する必要がある。具体的には、例えば、図７Ｂは、４倍速の場合を示すが、タイミングｔ２において、順序情報１２の入力情報がまだ保持されていないため、タイミングｔ２においては、４倍速とすることはできない。よって、例えば、タイミングｔ２においては、３倍速とし、タイミングｔ３以降は、端末１０２から順次入力される入力情報（現在の入力情報）を用いて第２の実行部５１４を通常の速度で実行する。なお、上記に示した３倍速や４倍速等の例は一例であって、その他の速度で早送り実行するように構成してもよいことはいうまでもない。
【００５４】
第２の実行制御部５１５は、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第１の速度に対応する速度で第２の実行部５１４にゲームプログラムを実行させる（Ｓ１１６）。言い換えれば、第２の実行部５１４は、通常の速度でゲームプログラムを実行する。このとき、第２の実行部５１４は、第２の入力情報取得部５１３で順次端末１０２から取得される入力情報に応じた処理を行うことによりゲームプログラムを実行する。
【００５５】
第２の送信部５１６は、当該第２の実行部５１４における実行結果の端末１０２への送信を開始する（Ｓ１１７）。このとき、上記のように、第２の実行部５１４は端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となっていることから、現在の入力情報に対する第２の実行部５１４の実行結果と第１の実行部５０４の実行結果は、端末１０２と第１のサーバ５０１及び第２のサーバ５０２間のネットワーク遅延等による通信に基づく影響等を除けば、同一である。したがって、Ｓ１１７以降は、端末１０２は、第１の実行部５０４及び第２の実行部５１４から同じ実行結果を受信することになるので、このとき、第１のサーバ５０１から送信される実行結果に代えて、第２のサーバ５０２から送信される実行結果を表示部２０４に表示する。
【００５６】
第２の実行制御部５１５は、上記第２のサーバ５０２でのプロセスの終了を表す完了通知を第１のサーバ５０１へ送信する（Ｓ１１８）。第１の実行制御部５０５は、当該完了通知に応じて、第１の送信部５０６による第１の実行部５０４による実行結果の送信を停止する（Ｓ１１９）。また、このとき、第１の実行制御部５０５は、第１の実行部５０４によるゲームプログラムの実行や第１の入力情報保持部５０３による入力情報の保持等についても停止するように構成してもよい。第１の実行制御部５０５は、マイグレーション指示に応じた上記Ｓ１０１乃至Ｓ１１９に示した第１のサーバ５０１及び第２のサーバ５０２におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ１０３に送信する（Ｓ１２０）。当該マイグレーション完了通知に応じて、管理サーバ１０３のサーバ管理部５１１は、第１のサーバ５０１に対してサーバを停止するためのサーバ停止指示を送信する（Ｓ１２１）。第１のサーバ５０１は当該サーバ停止指示に応じて、第１のサーバ５０１を停止する（Ｓ１２２）。
【００５７】
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段（ゲーム実行手段）が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末１０２に送信される情報処理システム１１０において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム１１０全体として効率を向上するとともに、情報処理システム１１０全体としてのコストの増加を抑制することができる。また、ユーザーは、サーバ間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
【００５８】
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第１の実行部５０４の実行結果の送信を停止する構成について説明したが、サーバの停止に応じて、第１の実行部５０４によるゲームプログラムの実行や当該実行結果の送信等が停止するように構成してもよい。
【００５９】
[第２の実施形態]
次に、本発明の第２の実施形態について説明する。図８Ａ及び図８Ｂに示すように、本実施の形態においては、主に、第１及び第２のサーバ５０１、５０２における第１及び第２のマイグレーション部８０１、８０２の機能的な構成が第１の実施形態における第１及び第２のマイグレーション部５２０、５２１と異なり、端末１０２からの第１の入力情報を第２のサーバ５０２に転送する点が異なる。なお、下記においては、主に、第１の実施形態と異なる点について説明し、同様である点については説明を省略する。更に、下記においては、第１の実施形態と同様に、説明の簡略化のため、一例として、第１のサーバ５０１のサーバプロセスを、第２のサーバ５０２にマイグレーションする場合の情報処理システム１１０の機能的構成及び当該情報処理システム１１０のフローの一例について説明する。
【００６０】
以下図８Ａ及び図８Ｂ、及び、図９を用いて、本実施の形態における情報処理システム１１０の機能的構成及び処理のフローについて説明する。ここで、図８Ａは、本実施の形態における第１のサーバ５０１の第１のマイグレーション部８０１の機能的構成を示し、図８Ｂは、本実施の形態における第２のサーバ５０２の第２のマイグレーション部８０２の機能的構成を示す。また、図９は、本実施の形態における情報処理システム１１０の処理のフローを説明するための図である。
【００６１】
第１の実施形態と同様に、サーバ管理部５１１は、負荷監視部５１２からの負荷情報に基づき、第１のサーバ５０１で実現されているゲームインスタンスを、第２のサーバ５０２で再現するとともに、継続して実行するためのマイグレーション指示を第１のサーバ５０１及び第２のサーバ５０２に送信する（Ｓ２０１、Ｓ２０２）。
【００６２】
第１の入力情報転送部８０３は、管理サーバ１０３からのマイグレーション指示に応じて、第１の入力情報取得部５０３において順次取得される端末１０２からの入力情報の転送を開始する（Ｓ２０３）。具体的には、例えば、第１の入力情報取得部５０３が、順次、順序情報１、２、３、４、５・・を含む入力情報を取得する場合において、マイグレーション指示を順序情報４と５が取得される間のあるタイミングで取得したような場合には、第１の入力情報転送部８０３は、順序情報５以降の順序情報を含む入力情報を、当該順序情報とともに転送する。つまり、この場合、第１の入力情報転送部８０３は、順序情報５、６、７、・・・を含む各入力情報を順次転送する。
【００６３】
第２のサーバ５０２の第２の入力情報保持部８０６は、第１のサーバ５０１から転送される入力情報の保持を開始する（Ｓ２０４）。具体的には、第２の入力情報保持部８０６は、上記例の場合、順序情報５、６、７、・・・を含む入力情報を順次保持する。
【００６４】
第１の状態情報取得部８０４は、例えば、第１の入力情報転送部８０３における入力情報の転送の開始に基づいて、第１の実行部５０４の実行状態を表す状態情報を取得する（Ｓ２０５）。つまり、例えば、上記例の場合、第１の状態情報取得部８０４は、順序情報４に対応する入力情報に応じた処理が行われた際における状態情報を取得する。そして、第１の状態情報取得部８０４は、当該取得した状態情報を、次に入力すべき順序情報（上記例の場合、順序情報５）とともに、第２のサーバ５０２に送信する（Ｓ２０６）。当該第２のサーバ５０２における第２の状態情報保持部８０７は、状態情報を順序情報とともに保持する（Ｓ２０７）。
【００６５】
第１の入力情報送信指示部８０５は、マイグレーション指示に応じて、対応する端末１０２に、第２のサーバ５０２へも入力情報を送信する入力情報送信指示を送信する（Ｓ２０８）。端末１０２は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ（この場合、第２のサーバ５０２）に、入力情報の送信を開始する（Ｓ２０９）。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末１０２は、例えば、順序情報が８以降の入力情報、つまり、順序情報８、９、１０・・・を含む入力情報の送信を開始する。
【００６６】
第２のサーバ５０２における第２の入力情報保持部８０６は、第１のサーバ５０１からの入力情報送信指示に応じた端末１０２から順次取得した入力情報の保持を開始する（Ｓ２１０）。具体的には、上記例の場合、順序情報８、９、１０・・・を含む入力情報を順次保持する。ここで、当該入力情報保持部は、例えば、第１のサーバ５０１からの入力情報とは別に当該端末１０２からの入力情報を保持する。この場合、第２の入力情報保持部８０６は、重複して同じ入力情報を保持することになることから、入力情報に含まれる順序情報に応じて、重複する入力情報については保持しないように構成してもよい。具体的には、上記例の場合、第１のサーバ５０１からの各入力情報（例えば、それぞれ順序情報５、６、７、・・・を含む）と当該端末１０２から取得される各入力情報（例えば、それぞれ８、９、１０、・・・を含む）は、順序情報８以降に対応する各入力情報が重複する。よって、当該順序情報８以降に対応する各入力情報については、第１のサーバ５０１からの入力情報は保持せず、端末１０２からの各入力情報を保持するように構成してもよい。また、この場合、第１のサーバ５０１に入力情報の第２のサーバ５０２への転送を停止するように指示するように構成してもよい。
【００６７】
第２のサーバ５０２における第２の実行制御部５１５は、第２の実行部５１４において、第２の状態情報保持部８０７に保持された状態情報を用いて、第１の実行部５０４の実行状態の情報を再現する（Ｓ２１１）。そして、第２の実行制御部５１５は、第２の実行部５１４に第２の入力情報保持部８０６に保持されている入力情報を用いて、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで早送り実行を行わせる（Ｓ２１２）。具体的には、上記例の場合、例えば、順序情報５以降に対応する入力情報を、現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、通常の入力速度よりも速い速度で第２の実行部５１４に入力することにより、第２の実行部５１４にゲームプログラムを早送り実行させる。なお、早送り実行等についての詳細については上記と同様であるので説明を省略する。
【００６８】
そして、第１の実施形態と同様に、第２の実行制御部５１５は、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第１の速度に対応する速度で第２の実行部５１４にゲームプログラムを実行させる（Ｓ２１３）。第２の送信部５１６は、第２の実行部５１４における実行結果の端末１０２への送信を開始する（Ｓ２１４）。そして、第２の実行制御部５１５は、上記第２のサーバ５０２でのプロセスの終了を表す完了通知を第１のサーバ５０１へ送信する（Ｓ２１５）。第１の送信部５０６は、当該完了通知に応じて、第１の送信部５０６による第１の実行部５０４による実行結果の送信を停止する（Ｓ２１６）。なお、このとき、第１の実行部５０４によるゲームプログラムの実行や入力情報保持部による入力情報の保持等についても停止するように構成してもよい。
【００６９】
第１の実行制御部５０５は、マイグレーション指示に応じた上記Ｓ２０３乃至Ｓ２１６に示した第１のサーバ５０１及び第２のサーバ５０２におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ１０３に送信する（Ｓ２１７）。管理サーバ１０３のサーバ管理部５１１は、当該マイグレーション完了指示に応じて、第１のサーバ５０１にサーバを停止するサーバ停止指示を送信する（Ｓ２１８）。当該サーバ停止指示に応じて、第１のサーバ５０１は、停止する（Ｓ２１９）。
【００７０】
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段（ゲーム実行手段）が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末１０２に送信される情報処理システム１１０において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム１１０全体として効率を向上するとともに、情報処理システム１１０全体としてのコストの増加を抑制することができる。また、ユーザーは、サーバ間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
【００７１】
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第１の実行部５０４の実行結果の送信を停止する構成について説明したが、サーバの停止に応じて、第１の実行部５０４におけるゲームプログラムの実行や当該実行結果の送信等が停止するように構成してもよい。
【００７２】
[第３の実施形態]
次に、本発明の第３の実施形態を説明する。本実施の形態においては、主に、第１及び第２のサーバ５０２における第１及び第２のマイグレーション部１１１、１１２の機能的構成、ファイルサーバ１１３を用いる点、及び、端末１０２からの第１の入力情報及び状態情報をファイルサーバ１１３に転送する点が、第１及び第２の実施の形態と異なる。なお、下記においては、主に、第１及び第２の実施形態と異なる点について説明し、同様である点については説明を省略する。また、ファイルサーバ１１３は、例えば、図１に示したクラウド基盤１００に設けられる１のサーバであって、仮想サーバ１０４であってもよいし、通常のサーバであってもよい。また、下記においては、第１の実施形態と同様に、説明の簡略化のため、一例として、第１のサーバ５０１のサーバプロセスを、第２のサーバ５０２にマイグレーションする場合の情報処理システム１１０の機能的構成、及び、当該情報処理システム１１０のフローの一例について説明する。
【００７３】
以下図１０Ａ乃至Ｃ及び図１１を用いて、本実施の形態における情報処理システム１１０の機能的構成及び処理のフローについて説明する。ここで、図１０Ａは、本実施の形態における第１のサーバ５０１の第１のマイグレーション部１１１の機能的構成を示し、図１０Ｂは、本実施の形態における第２のサーバ５０２の第２のマイグレーション部１１２の機能的構成を示す。図１０Ｃは、本実施の形態におけるファイルサーバ１１３の機能的構成を示す。また、図１１は、本実施の形態における情報処理システム１１０の処理のフローを説明するための図である。
【００７４】
第１の実施形態と同様に、サーバ管理部５１１は、負荷監視部５１２からの負荷情報に基づき、第１のサーバ５０１で実現されているゲームインスタンスを、第２のサーバ５０２で再現するとともに、第１のサーバ５０１において実行されているゲームプログラムを継続して実行するためのマイグレーション指示を第１のサーバ５０１及び第２のサーバ５０２に送信する（Ｓ３０１、Ｓ３０２）。
【００７５】
第１の入力情報転送部１１４は、管理サーバ１０３からのマイグレーション指示に応じて、第１の入力情報取得部５０３において順次取得される端末１０２からの入力情報のファイルサーバ１１３への転送を開始する（Ｓ３０３）。具体的には、例えば、第１の入力情報取得部５０３が、順次、順序情報１、２、３、４、５・・を含む入力情報を取得した場合において、マイグレーション指示を順序情報４と５が取得される間のあるタイミングで取得した場合には、入力情報転送部１１４は、順序情報５以降の順序情報を含む入力情報をファイルサーバ１１３に転送する。つまり、この場合、入力情報転送部１１４は、順序情報５、６、７、・・・を含む入力情報をファイルサーバ１１３に転送する。ファイルサーバ１１３の入力情報保持部１１９は、第１のサーバ５０１から順次転送される入力情報の保持を開始する（Ｓ３０４）。具体的には、上記例の場合、順序情報５、６、７、・・・を含む入力情報を順次保持する。
【００７６】
第１のサーバ５０１における第１の状態情報取得部１１５は、例えば、第１の入力情報転送部１１４における入力情報の転送の開始に基づいて、第１の実行部５０４の実行状態を表す状態情報を取得する（Ｓ３０５）。具体的には、上記例の場合、第１の状態情報取得部１１５は、順序情報４に対応する入力情報に応じた処理が行われた際における状態情報を取得する。そして、第１の状態情報取得部１１５は、当該取得した状態情報を、次に入力すべき順序情報（上記例の場合、順序情報５）とともに、ファイルサーバ１１３に送信する（Ｓ３０６）。当該ファイルサーバ１１３の状態情報保持部１２０は、当該状態情報を順序情報とともに保持する（Ｓ３０７）。
【００７７】
第１の入力情報送信指示部１２２は、マイグレーション指示に応じて、対応する端末１０２に、第２のサーバ５０２へも入力情報を送信する入力情報送信指示を送信する（Ｓ３０８）。端末１０２は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ（この場合、第２のサーバ５０２）に、入力情報の送信を開始する（Ｓ３０９）。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末１０２は、例えば、順序情報が８以降の入力情報、つまり、順序情報８、９、１０・・・を含む入力情報の送信を開始する。
【００７８】
第２のサーバ５０２における第２の入力情報保持部１２３は、第１のサーバ５０１からの入力情報送信指示に応じた端末１０２から取得した入力情報の保持を開始する（Ｓ３１０）。具体的には、上記例の場合、順序情報８、９、１０・・・を含む入力情報を順次保持する。第２のサーバ５０２における状態情報要求部１１８は、ファイルサーバ１１３に状態情報を要求する（Ｓ３１１）。当該状態情報の要求に応じて、ファイルサーバ１１３は、ファイルサーバ１１３の状態情報保持部１２０に保持された状態情報を第２のサーバ５０２に送信する（Ｓ３１２）。第２のサーバ５０２の状態情報保持部１１７は、第２のサーバ５０２からの状態情報を保持する（Ｓ３１３）。
【００７９】
第２のサーバ５０２の入力情報要求部１１８は、ファイルサーバ１１３に要求する入力情報を特定するとともに（Ｓ３１４）、ファイルサーバ１１３に当該入力情報の要求指示を送信する（Ｓ３１５）。ここで、第２のサーバ５０２の入力情報要求部１１８は、例えば、第２の状態情報保持部８０７に保持された状態情報に関連付けて保持された順序情報と、第２の入力情報保持部１２３に保持された順序情報とを比較することにより、第２のサーバ５０２に保持されていない入力情報、つまり、不足している入力情報を特定し、当該不足している入力情報を要求する。具体的には、上記例の場合、状態情報には順序情報５が関連付けられており、また、第２の入力情報保持部１２３に保持されている順序情報は、８、９、１０・・・であることから、順序情報５、６、７に対応する入力情報をファイルサーバ１１３に要求する入力情報として特定し、ファイルサーバ１１３に当該入力情報の要求指示を送信する。
【００８０】
ファイルサーバ１１３における入力情報送信部１２１は、第２のサーバ５０２からの入力情報の要求指示に基づいて、ファイルサーバ１１３の入力情報保持部１１９に保持された入力情報を第２のサーバ５０２に送信する（Ｓ３１６）。具体的には、上記例の場合、順序情報５、６、７を含む入力情報をファイルサーバ１１３の入力情報保持部から取得し、第２のサーバ５０２に送信する。
【００８１】
第２のサーバ５０２における第２の入力情報保持部１２３は、第１のサーバ５０１からの要求した入力情報を保持する（Ｓ３１７）。これにより、状態情報に関連付けられた順序情報を含む入力情報から現在の入力情報までの入力情報、つまり、上記例の場合、第２の入力情報保持部１２３は、順序情報５、６、７・・・を含む入力情報を保持することができる。
【００８２】
第２のサーバ５０２における第２の実行制御部５１５は、第２の実行部５１４において、第２の状態情報保持部８０７に保持された状態情報を取得し、当該状態情報を用いて、第１の実行部５０４の実行状態の情報を再現する（Ｓ３１８）。そして、第２の実行制御部５１５は、第２の実行部５１４に第２の入力情報保持部１２３に保持されている入力情報を用いて、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで早送り実行させる（Ｓ３１９）。具体的には、上記例の場合、例えば、順序情報５以降に対応する入力情報を、現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、通常の入力速度よりも速い速度で第２の実行部５１４に入力することにより、第２の実行部５１４にゲームプログラムを早送り実行させる。なお、早送り実行等の詳細については、第１の実施形態と同様であることから、説明を省略する。
【００８３】
第２の実行制御部５１５は、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第１の速度に対応する速度で第２の実行部５１４にゲームプログラムを実行させる（Ｓ３２０）。第２の送信部５１６は、第２の実行部５１４における実行結果の端末１０２への送信を開始する（Ｓ３２１）。第２の実行制御部５１５は、上記第２のサーバ５０２でのプロセスの終了を表す完了通知を第１のサーバ５０１へ送信する（Ｓ３２２）。第１の送信部５０６は、当該完了通知に応じて、第１の送信部５０６による第１の実行部５０４による実行結果の送信を停止する（Ｓ３２３）。なお、このとき、第１の実行部５０４によるゲームプログラムの実行や入力情報保持部による入力情報の保持等についても停止するように構成してもよい。
【００８４】
第１の実行制御部５０５は、マイグレーション指示に応じた上記Ｓ３０３乃至Ｓ３２３に示した第１のサーバ５０１及び第２のサーバ５０２におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ１０３に送信する（Ｓ３２４）。管理サーバ１０３のサーバ管理部５１１は、当該マイグレーション完了指示に応じて、第１のサーバ５０１にサーバを停止するサーバ停止指示を送信する（Ｓ３２５）。当該サーバ停止指示に応じて、第１のサーバ５０１は、停止する（Ｓ３２６）。
【００８５】
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段（ゲーム実行手段）が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末１０２に送信される情報処理システム１１０において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム１１０全体として効率を向上するとともに、情報処理システム１１０全体としてのコストの増加を抑制することができる。また、ユーザーは、仮想サーバ１０４間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
【００８６】
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第１の実行部５０４の実行結果の送信を停止する構成について説明したが、サーバが停止に応じて、第１の実行部５０４による実行や当該実行結果の送信等が停止するように構成してもよい。
【００８７】
[第４の実施形態]
次に、本発明の第４の実施形態を説明する。本実施の形態においては、主に、状態情報の取得や保持等を行わない点、ファイルサーバ１３３においてゲームプログラムの実行開始からの入力情報を保持する点が第３の実施形態と異なる。具体的には、主に、第１及び第２のマイグレーション部１３１、１３２及びファイルサーバ１３３の機能的構成が、第３の実施形態と異なる。なお、下記においては、主に、第１乃至第３の実施形態と異なる点について説明し、同様である点については説明を省略する。また、下記においては、第１の実施形態と同様に、説明の簡略化のため、一例として、第１のサーバ５０１のサーバプロセスを、第２のサーバ５０２にマイグレーションする場合の情報処理システム１１０の機能的構成及び当該情報処理システム１１０のフローの一例について説明する。
【００８８】
以下、図１２Ａ乃至１２Ｃ及び図１３を用いて、本実施の形態における情報処理システム１１０の機能的構成及び処理のフローについて説明する。ここで、図１２Ａは、本実施の形態における第１のサーバ５０１の第１のマイグレーション部１３１の機能的構成を示し、図１２Ｂは、本実施の形態における第２のサーバ５０２の第２のマイグレーション部１３２の機能的構成を示す。図１２Ｃは、本実施の形態におけるファイルサーバ１３３の機能的構成を示す。また、図１３は、本実施の形態における情報処理システム１１０の処理のフローを説明するための図である。本実施の形態においては、図１２Ａに示すように、第１のサーバ５０１は、入力情報転送部１３４を有し、当該入力情報転送部１３４は、ゲームプログラムの実行の開始から、端末１０２から順次取得される入力情報をファイルサーバ１３３の入力情報保持部１３７に順次転送する。したがって、ファイルサーバ１３３の入力情報保持部１３７は、ゲームプログラムの開始からの入力情報、つまり、例えば、順序情報０、１、２・・・（順序情報が０から始まる場合）を含む入力情報を保持する。
【００８９】
第１の実施形態と同様に、サーバ管理部５１１は、負荷監視部５１２からの負荷情報に基づき、第１のサーバ５０１で実現されているゲームインスタンスを、第２のサーバ５０２で再現するとともに、実行されているゲームプログラムを第２のサーバ５０２で継続して実行するためのマイグレーション指示を第１のサーバ５０１及び第２のサーバ５０２に送信する（Ｓ４０１、Ｓ４０２）。
【００９０】
第１の入力情報送信指示部１３９は、マイグレーション指示に応じて、対応する端末１０２に、第２のサーバ５０２へも入力情報を送信する入力情報送信指示を送信する（Ｓ４０３）。端末１０２は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ（この場合、第２のサーバ５０２）に、入力情報の送信を開始する（Ｓ４０４）。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末１０２は、例えば、順序情報が８以降の入力情報、つまり、順序情報８、９、１０・・・を含む入力情報の送信を開始する。第２の入力情報保持部１３７１２３は、第１のサーバ５０１からの入力情報送信指示に応じた端末１０２から取得した入力情報の保持を開始する（Ｓ４０５）。具体的には、上記例の場合、順序情報８、９、１０・・・を含む入力情報を順次保持する。
【００９１】
第２のサーバ５０２の入力情報要求部１３６は、ファイルサーバ１３３に要求する入力情報を特定するとともに（Ｓ４０６）、ファイルサーバ１３３に当該入力情報の要求指示を送信する（Ｓ４０７）。ここで、第２のサーバ５０２の入力情報要求部１３６は、例えば、第２の入力情報保持部１３５に保持されている順序情報のうちから不足している入力情報を特定し、当該不足している入力情報を要求する。具体的には、上記例の場合、第２の入力情報保持部１３５に保持されている順序情報は、８、９、１０・・・であることから、順序情報８よりまえの順序情報、つまり、順序情報０乃至７を含む入力情報をファイルサーバ１３３に要求する入力情報として特定し、ファイルサーバ１３３に当該入力情報の要求指示を送信する。
【００９２】
ファイルサーバ１３３における入力情報送信部１３８は、第２のサーバ５０２からの入力情報の要求指示に基づいて、ファイルサーバ１３３の入力情報保持部１３７に保持された入力情報を第２のサーバ５０２に送信する（Ｓ４０８）。具体的には、上記例の場合、順序情報０乃至７を含む入力情報をファイルサーバ１３３の入力情報保持部１３７から取得し、第２のサーバ５０２に送信する。
【００９３】
第２のサーバ５０２における第２の入力情報保持部１３５は、第１のサーバ５０１からの要求した入力情報を保持する（Ｓ４０９）。これにより、第２の入力情報保持部１３５は、ゲームプログラム開始から現在の入力情報、つまり、上記例の場合、順序情報０、１、２・・・を含む入力情報を保持する。
【００９４】
第２の実行制御部５１５は、第２の実行部５１４に第２の入力情報保持部１３５に保持されている入力情報を用いて、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで早送り実行させる（Ｓ４１０）。具体的には、上記例の場合、例えば、ゲームプログラムの実行開始からの順序情報（順序情報０）以降を含む各入力情報を、現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、通常の入力速度よりも速い速度で第２の実行部５１４に入力することにより、第２の実行部５１４にゲームプログラムを早送り実行させる。なお、本実施の形態においては、第１乃至第３の実施形態と異なり、状態情報を用いないが、ゲームプログラムの開始から現在の入力情報を全て保持する構成としていることから、早送り実行により、第２の実行部５１４において第１の実行部５０４の実行状態を再現することができる。
【００９５】
第２の実行制御部５１５は、端末１０２からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第１の速度に対応する速度で第２の実行部５１４にゲームプログラムを実行させる（Ｓ４１１）。第２の送信部５１６は、第２の実行部５１４における実行結果の端末１０２への送信を開始する（Ｓ４１２）。
【００９６】
第２の実行制御部５１５は、上記第２のサーバ５０２でのプロセスの終了を表す完了通知を第１のサーバ５０１へ送信する（Ｓ４１３）。第１の送信部５０６は、当該完了通知に応じて、第１の送信部５０６による第１の実行部５０４による実行結果の送信を停止する（Ｓ４１４）。なお、このとき、第１の実行部５０４によるゲームプログラムの実行や入力情報保持部１３７による入力情報の保持等についても停止するように構成してもよい。
【００９７】
第１の実行制御部５０５は、マイグレーション指示に応じた上記Ｓ４０３乃至Ｓ４１４に示した第１のサーバ５０１及び第２のサーバ５０２におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ１０３に送信する（Ｓ４１５）。管理サーバ１０３のサーバ管理部５１１は、当該マイグレーション完了指示に応じて、第１のサーバ５０１にサーバを停止するサーバ停止指示を送信する（Ｓ４１６）。当該サーバ停止指示に応じて、第１のサーバ５０１は、停止する（Ｓ４１７）。
【００９８】
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段（ゲーム実行手段）が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末１０２に送信される情報処理システム１１０において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム１１０全体として効率を向上するとともに、情報処理システム１１０全体としてのコストの増加を抑制することができる。また、ユーザーは、サーバ間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
【００９９】
本発明は、上記第１乃至第４の実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第１の実行部５０４の実行結果の送信を停止する構成について説明したが、サーバが停止に応じて、第１の実行部５０４の実行結果の送信等が停止するように構成してもよい。また、上記第１のサーバ５０１や第２のサーバ５０２で実行されるゲームプログラムは、ゲームプログラムの一部（ミニゲーム）、例えば、所定のステージや所定の敵キャラクタとの対戦で構成されてもよい。この場合、例えば、実行部は、ミニゲームの開始における予め記憶された実行部５０４、５１４の状態情報を用いて、ゲームプログラムを実行することによりミニゲームの開始を行うことができる。また、ミニゲームの終了については、例えば、ゲームプログラムの実行により順次生成される画像情報の一部（例えば、ゴールの文字やＷＩＮの文字等）を画像認識することにより、ミニゲームの終了判定を行うように構成する。更に、上記においては、いわゆる仮想サーバを用いる場合について説明したが、本発明を、通常のサーバクライアントシステムに適用してもよい。更に、上記においては、主に、第１のサーバ５０１のサーバプロセスを、第２のサーバ５０２にマイグレーションする場合の情報処理システム１１０の機能的構成及び当該情報処理システム１１０のフロー、逆に、第２のサーバ５０２のサーバプロセスを、第１のサーバ５０１にマイグレーションする構成、または双方向にマイグレーションできる構成を有するように構成してもよいことはいうまでもない。また、当該マイグレーションは第１のサーバ５０１及び第２のサーバ５０２間のマイグレーションに限られず、第１または第２のサーバ、５０１、５０２及び他の仮想サーバ１０４と間において、または、他の仮想サーバ１０４間、仮想サーバ１０４と通常のサーバとの間においてマイグレーション可能なように構成してもよいことはいうまでもない。更に、上記においては、マイグレーションが行われたことをユーザーに認識させない構成としたが、マイグレーションが行われた場合にユーザーにその旨を通知するように構成してもよい。更に、上記おいては、第１のサーバ５０１及び第２のサーバ５０２が端末１０２から入力情報を取得し、ゲームプログラムを実行し、生成された動画像情報を圧縮・送信する場合等について説明したが、当該入力情報の取得や、動画像の圧縮等については、第１のサーバ５０１または第２のサーバ５０２とは異なる別のサーバで行うように構成してもよい。
【符号の説明】
【０１００】
１００  クラウド基盤、１０１  ネットワーク、１０２  端末、１０３  管理サーバ、１０４  仮想サーバ、１０５  ＤＢ、１１１、１３１、５２０、８０１  第１のマイグレーション部、１１２、１３２、５２１、８０２  第２のマイグレーション部、１１４、８０３  第１の入力情報転送部、１１６  状態情報要求部、１１７、５１８、８０７  第２の状態情報保持部、１１８、１３６、５１９  入力情報要求部、１１９、１３７  入力情報保持部、１２０  状態情報保持部、１２１、１３８  入力情報送信部、１２３、１３５、５１７、８０６  第２の入力情報保持部、１３４  入力情報転送部、１３９、５０９、８０５  第１の入力情報送信指示部、２０１  制御部、２０２、５０６  通信部、２０３  記憶部、２０４  表示部、２０５  操作部、３０１  方向キー、３０２  ボタン、３０３  アナログ操作部、３０４  表示画面、４０１  仮想マシン制御部、４０２  物理マシン、４０３  ハイパーバイザ、５０１  第１のサーバ、５０２  第２のサーバ、５０３  第１の入力情報取得部、５０４  第１の実行部、５０６  第１の送信部、５０７  第１の入力情報保持部、５０８、８０４  第１の状態情報取得部、５１０  第１の入力情報送信部、５１１  サーバ管理部、５１２  負荷監視部、５１３  第２の入力情報取得部、５１４  第２の実行部、５１５  第２の実行制御部、５１６  第２の送信部。
【図１】
2013117757.tif 000003
【図２】
2013117757.tif 000004
【図３】
2013117757.tif 000005
【図４】
2013117757.tif 000006
【図５】
2013117757.tif 000007
【図６】
2013117757.tif 000008
【図７Ａ】
2013117757.tif 000009
【図７Ｂ】
2013117757.tif 000010
【図８Ａ】
2013117757.tif 000011
【図８Ｂ】
2013117757.tif 000012
【図９】
2013117757.tif 000013
【図１０Ａ】
2013117757.tif 000014
【図１０Ｂ】
2013117757.tif 000015
【図１０Ｃ】
2013117757.tif 000016
【図１１】
2013117757.tif 000017
【図１２Ａ】
2013117757.tif 000018
【図１２Ｂ】
2013117757.tif 000019
【図１２Ｃ】
2013117757.tif 000020
【図１３】
2013117757.tif 000021