JP2013117757A - 情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体 - Google Patents

情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP2013117757A
JP2013117757A JP2011263650A JP2011263650A JP2013117757A JP 2013117757 A JP2013117757 A JP 2013117757A JP 2011263650 A JP2011263650 A JP 2011263650A JP 2011263650 A JP2011263650 A JP 2011263650A JP 2013117757 A JP2013117757 A JP 2013117757A
Authority
JP
Japan
Prior art keywords
server
execution
input information
application
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.)
Pending
Application number
JP2011263650A
Other languages
English (en)
Inventor
Kazuji Yoshida
和司 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2011263650A priority Critical patent/JP2013117757A/ja
Priority to US13/606,282 priority patent/US8972479B2/en
Priority to CN201210505783.XA priority patent/CN103139198B/zh
Publication of JP2013117757A publication Critical patent/JP2013117757A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/51Server architecture
    • A63F2300/513Server architecture server hierarchy, e.g. local, regional, national or dedicated for different tasks, e.g. authenticating, billing
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5593Details of game data or player data management involving scheduling aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】ユーザーがゲームのプレイを継続しながら、あるサーバで実現されていたゲームの実行を、他のサーバに継続して行わせる。
【解決手段】第2のサーバの第2の実行手段は、少なくとも第1のサーバからの再現データに含まれる順次取得された入力情報を用いて、第1の速度よりも早い第2の速度で、アプリケーションを実行することにより、第2の実行手段において第1の実行手段の状態を再現し、第1のサーバの第1の実行手段の状態を再現した後に、第2のサーバにより順次取得された入力情報を用いて、第1の速度に対応する速度で、アプリケーションを実行し、第1のサーバは、第2の実行手段が前記アプリケーションの実行結果の端末への送信を開始した後に、アプリケーションの実行結果の前記端末への送信を停止する。
【選択図】図5

Description

本発明は、情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体に関する。
サーバとクライアントとをネットワークを介して接続し、オンラインでゲームをプレイすることができるいわゆるオンラインゲームが知られている。
上記のようなオンラインゲームは、例えば、各ゲームサーバ上でゲーム機器に相当するゲームを実行する手段(ゲーム実行手段)が再現され、当該ゲーム実行手段によるゲームプログラムの実行結果が各端末に送信されることにより実現される。ここで、例えば、接続される端末の数が減少し、各サーバの負荷が低くなるような場合がある。このような負荷率の低い複数のサーバを起動したまま維持するのは、システム全体として非効率であり、かつ、コストが高くなる場合がある。
本発明は、上記課題に鑑みてなされたものであって、例えば、ユーザーがゲームのプレイを継続しながら、あるサーバで実現されていたゲームの実行を、他のサーバに継続して行わせることができる情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
(1)本発明の情報処理システムは、順次取得される入力情報を用いて、第1の速度で、アプリケーションの実行する第1の実行手段と、前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、含む第1のサーバと、前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、を含む第2のサーバと、を含み、前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、前記第1のサーバは、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
(2)上記(1)に記載の情報処理システムにおいて、前記再現データは、前記第1の実行状態を表す実行状態情報を含み、前記第2の実行手段は、更に、前記実行状態情報を用いて、前記第2の実行手段において前記第1の実行手段の状態を再現することを特徴とする。
(3)上記(1)または(2)に記載の情報処理システムにおいて、前記再現データ取得手段は、前記再現データを、前記第1のサーバから取得することを特徴とする。
(4)上記(1)に記載の情報処理システムにおいて、前記再現データ取得手段は、前記再現データの一部を、前記第1のサーバ及び前記第2のサーバと異なる第3のサーバから取得することを特徴とする。
(5)上記(1)乃至(4)のいずれかに記載の情報処理システムにおいて、前記第2の実行手段は、該第2の実行手段が前記端末からの現在の入力情報を用いた前記アプリケーションの実行が可能となる実行可能時まで、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現することを特徴とする。
(6)上記(5)に記載の情報処理システムにおいて、前記第2の実行手段は、前記実行可能時以後は、前記第2のサーバに含まれる前記入力情報取得手段により順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行することを特徴とする。
(7)本発明の情報処理方法は、第1のサーバに含まれる第1の実行手段により、順次取得される入力情報を用いて、第1の速度で、アプリケーションの実行を開始し、前記第1のサーバにより、前記アプリケーションの実行結果の端末への送信を開始し、第2のサーバにより、前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得し、前記第2のサーバにより、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報の取得を開始し、前記第2のサーバに含まれる第2の実行手段により、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第2の実行手段により、前記第1の実行手段の状態が再現された後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションの実行を開始し、前記第2のサーバにより、前記第2の実行手段による前記アプリケーションの実行結果の前記端末への送信を開始し、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記第1のサーバは、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
(8)本発明の情報処理プログラムは、順次取得される入力情報を用いて、第1の速度で、アプリケーションを実行する第1の実行手段、前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、含む第1のサーバ手段、及び、前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得する再現データ取得手段と、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、含む第2のサーバ手段、としてコンピュータシステムを機能させるための情報処理プログラムであって、前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバ手段により順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、前記第1のサーバ手段は、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
(9)本発明のコンピュータ読み取り可能な記憶媒体は、上記(8)に記載の情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
(10)本発明の第1の情報処理サーバは、順次取得される入力情報を用いて、第1の速度で、アプリケーションを実行する第1の実行手段と、前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、を含む第1のサーバであって、前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、を含む第2のサーバにおける前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、前記第1のサーバは、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
(11)本発明の第2の情報処理サーバは、順次取得される入力情報を用いて、第1の速度で、アプリケーションを実行する第1の実行手段と、前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、を含む第1のサーバにおける前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、を含む第2のサーバであって、前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、前記第1のサーバは、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、ことを特徴とする。
第1の実施の形態における情報処理システムの一例について説明するための図である。 図1に示した端末の構成の一例について説明するための図である。 図1に示した端末の外観の一例を示す図である。 図1に示した仮想サーバを説明するための図である。 図1に示した情報処理システムの機能的な構成の一例を説明するための図である。 図1に示した情報処理システムの処理のフローの一例について説明するための図である。 早送り実行の一例について説明するための図である。 早送り実行の他の一例について説明するための図である。 第2の実施の形態における第1のマイグレーション部の機能的構成の一例を説明するための図である。 第2の実施の形態における第2のマイグレーション部の機能的構成の一例を説明するための図である。 第2の実施の形態における情報処理システムの処理のフローを説明するための図である。 第3の実施の形態における第1のマイグレーション部の機能的構成の一例を説明するための図である。 第3の実施の形態における第2のマイグレーション部の機能的構成の一例を説明するための図である。 第3の実施の形態におけるファイルサーバの機能的構成の一例を説明するための図である。 第3の実施の形態における情報処理システムの処理のフローを説明するための図である。 第4の実施の形態における第1のマイグレーション部の機能的構成の一例を説明するための図である。 第4の実施の形態における第2のマイグレーション部の機能的構成の一例を説明するための図である。 第4の実施の形態におけるファイルサーバの機能的構成の一例を説明するための図である。 第4の実施の形態における情報処理システムの処理のフローを説明するための図である。
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
図1は、本発明の実施の形態における情報処理システムの一例について説明するための図である。図1に示すように、本実施の形態における情報処理システム110は、クラウド基盤100と、1または複数の端末102とを含む。クラウド基盤100と当該端末102は、ネットワーク101を介して接続される。
クラウド基盤100は、管理サーバ103、後述する1または複数の仮想サーバ(VM)104、1または複数のデータベース(DB)105を含む。なお、ここでいうクラウド基盤100とは、いわゆるネットワーク101をベースとしたコンピュータの利用形態であって、ユーザーがコンピュータ処理をネットワーク経由で、サービスとして利用するための基盤をいう。
端末102は、図2に示すように、制御部201、通信部202、記憶部203、表示部204、操作部205を含む。なお、各部201−205は、バス206を介して接続される。制御部201は、例えば、CPUやMPU等であって、記憶部203に格納されたプログラムに従って動作する。記憶部203は、例えば、ハードディスクやROMやRAM等の情報記録媒体で構成され、制御部201によって実行されるプログラムを保持する情報記録媒体である。また、記憶部203は、制御部201のワークメモリとしても動作する。なお、上記制御部201で処理されるプログラムは、例えば、ネットワーク101を介して、ダウンロードされて提供されてもよいし、または、CD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
操作部205は、例えば、キーボード、マウス、コントローラ、ボタン等のインターフェースで構成され、ユーザーの指示操作に応じて、当該指示操作の内容を制御部201に出力する。表示部204は、例えば、液晶ディスプレイ、CRTディスプレイ、または有機ELディスプレイ等であって、制御部201からの指示に従い、情報を表示する。ここで、操作部205及び表示部204は、タッチパネルで構成してもよい。
なお、上記端末102の構成は一例であってこれに限定されるものではない。具体的には、例えば、テレビ、スマートフォン、タブレット、パーソナルコンピュータを含み、また、操作部205は、ゲームパッド、テレビのリモコンを含む。また、データベース105や管理サーバ103も、上記と同様の制御部201、通信部202、記憶部203を含んで構成されることから、詳細な説明については省略する。
図3は、端末の外観の一例を示す図である。図3に示すように、端末102は、例えば、操作部205として、方向キー301、複数のボタン302、アナログ操作部303を有し、また、表示部204として表示画面304を有する。
方向キー301は、例えば、上方向指示キー、下方向指示キー、右方向指示キー、左方向指示キーを有する。当該方向キー301により、ユーザーは、例えば、画面上の対象物を、上下左右に移動する等を行う。また、複数のボタン302には、それぞれ、例えば、a、b、c、d等の印をそれぞれ有する。ユーザーは、例えば、これらのボタン302を押すことにより、実行されるアプリケーションによって定められるそれぞれのボタンに応じた処理を実行することができる。なお、当該複数のボタン302は、ユーザーがこれらのボタンを押し込んだ強さや距離に応じた処理を実行することのできるいわゆるアナログボタンであってもよい。
アナログ操作部303は、例えば、所定の基準位置からの傾倒操作が可能であり、ユーザーは、アナログ操作部303の基準位置からの傾き量と傾き方向に応じた入力情報を入力する。例えば、ユーザーは、アナログ操作部303を用いて、表示画面304上に表示された対象物を、当該傾き量と傾き方向に応じて、所望の方向に所望の量だけ傾けることを行うことができる。また、表示画面304は、表示部204の表示画面304に相当し、例えば、アプリケーションに応じた画像等を表示する。
なお、図3に示した端末102の外観、操作部205及び表示部204の構成は、一例であって、これに限られるものではない。例えば、操作部205は、表示部204に表示されたタッチパネルにより形成されてもよいし、表示部204は、CRTや液晶表示装置で形成されたモニタ等の表示画面であってもよい。更に、方向キー301、複数のボタン302、アナログ操作部303の数はその他の数または形状であってもよいし、また、端末102は、スタートボタンやセレクトボタン(図示なし)等その他のボタンや加速度センサを有してもよい。
図4は、図1に示した仮想サーバについて説明するための図である。図4に示すように、クラウド基盤100は、仮想サーバ制御部401、仮想サーバ制御部401に接続された物理マシン402群を含む。
図4に示すように、各物理マシン402上にはハイパーバイザ403が設けられ、ハイパーバイザ403上に1又は複数の仮想サーバ104が立ち上げられる。なお、ハイパーバイザ403とは、汎用OSの助けを必要とせずに、各物理マシン402の上に仮想サーバ104を立ち上げ、制御するソフトウェアである。また、仮想サーバ104とは、公知のようにCPUとメモリのセットを仮想的に作りだしたものである。なお、各物理マシン402は、CPUやメモリ等により形成されるコンピュータであることはいうまでもない。
各仮想サーバ104は、OS404とアプリケーション405を有する。なお、仮想サーバ104で処理される上記プログラムは、当該アプリケーション405の1つに相当する。仮想サーバ制御部401は、上記物理マシン402上に、1又は複数の仮想サーバ104を生成する。これは、具体的には、ハイパーバイザ403を介して、仮想サーバ104への物理マシン402のリソース(例えば、CPUの処理時間、メモリ容量等のリソース)を割り当てて、制御することによって行われる。
つまり、下記に説明する仮想サーバ104におけるプログラムのインストールや実行は、実際には、物理マシン402で行われる。例えば、物理マシン402におけるメモリ等で構成される記憶部に、本実施の形態におけるプログラムを含む複数のプログラムが、記憶され、本実施の形態におけるプログラムは、実際には物理マシン402の1または複数のCPUにより、実行される。このとき、物理マシン402の1または複数のCPUは、上記複数のプログラムにも使用され、例えば、1または複数のCPUの処理時間を分割してその一部を、本実施の形態におけるプログラムの実行に割り当てられること等により実行される。なお、上記に示した仮想サーバ104等の構成は一例であってこれに限定されるものでない。
次に、図5及び図6を用いて、本実施の形態における情報処理システム110の機能的構成及び処理のフローの一例について説明する。図5は、本実施の形態における情報処理システム110の機能的な構成の一例を説明するための図である。また、図6は、本実施の形態における情報処理システム110の処理のフローの一例について説明するための図である。
図5に示すように、本実施の形態における情報処理システム110は、機能的に、管理サーバ103、第1のサーバ501、第2のサーバ502を含む。当該第1のサーバ501及び第2のサーバ502は、例えば、それぞれ図1に示した複数の仮想サーバ104のうちの1の仮想サーバ104に相当する。なお、図5においては、説明の簡略化のため、2の仮想サーバ104(第1のサーバ501、第2のサーバ502)を示すとともに、当該2の仮想サーバ104上に、それぞれ1のゲームインスタンスが実現される場合を示すが、情報処理システム110には、例えば、接続される端末102の数に応じた数の仮想サーバ104が実現されてもよいし、また、各仮想サーバ104上には、その他の数のゲームインスタンスが実現されてもよい。ここで、ゲームインスタンスとは、1のゲーム機器をサーバ上で再現した機能に相当する。
また、下記においては、説明の簡略化のため、一例として、第1のサーバ501のサーバプロセスを、第2のサーバ502にマイグレーションする場合に実現される情報処理システム110の機能的構成及び当該情報処理システム110のフローの一例について説明する。ここで、マイグレーションとは、例えば、上記例の場合、第1のサーバ501で実現されているゲームインスタンスを、第2のサーバ502で実現するとともに、第1のサーバ501で実行されているゲームプログラムを継続して実行することに相当する。具体的には、下記においては、一例として、第1のサーバ501で1のゲームインスタンスのみが起動中であり、かつ、第2のサーバ502のCPU利用率に当該1のゲームインスタンスを第2のサーバ502で実現できる余裕がある場合において、当該第1のサーバ501で実現されているゲームインスタンスを、第2のサーバ502で継続して実現するとともに、第1のサーバ501で実行されているゲームプログラムを継続して実行する場合について、説明する。なお、サーバの負荷によっては、第2のサーバ502で実現されているゲームインスタンスを、第1のサーバ501で継続して実現する場合やその他の場合もあることから、後述する第1及び第2のサーバ502の機能的構成、特に第1及び第2のサーバ502におけるマイグレーション部を1の仮想サーバ104(例えば、第1のサーバ501または第2の仮想サーバ502)が有するように構成してもよい。また、後述するように、第1及び第2のサーバ502の一部の機能的構成を、他の仮想サーバ104、管理サーバ103、または、その他のサーバにおいて実現するように構成してもよい。
第1のサーバ501における第1の入力情報取得部503は、所定期間毎に順次、対応する端末102からの入力情報を取得する。ここで、対応する端末102とは、当該第1のサーバ501において実現されている当該ゲームインスタンスと接続される端末102に相当する。つまり、第1の入力情報取得部503は、具体的には、例えば、ゲームプログラムの操作対象であるキャラクタの操作情報を、入力情報として取得する。また、対応する端末102には、当該ゲームインスタンスで実行されるゲームプログラムの実行結果が配信される。当該実行結果は、例えばゲームプログラムの実行に応じた動画像情報を含み、端末102は、当該動画像情報を端末102の表示部204に表示する。なお、当該実行結果は、圧縮部(図示なし)により圧縮した後、端末102に送信されてもよい。この場合、端末102は、圧縮された実行結果を解凍して当該表示部204に表示する。
第1の実行部504は、対応する端末102を使用するユーザーの所望のゲームプログラムを実行する。ここで、当該第1の実行部504は、第1の入力情報取得部503により順次取得される、端末102からの入力情報に基づいた処理を行うことによりゲームプログラムを実行する。具体的には、例えば、順次取得される入力情報に応じて、当該ゲームプログラムにおける操作対象であるキャラクタを移動させたり、動作させたりする。なお、第1の実行部504は、例えば、エミュレータやシミュレータに相当する。また、例えば、当該ゲームプログラムはDB105に記憶され、第1の実行部504は、DB105から当該ゲームプログラムを取得して、ユーザーの指定したゲームプログラムを実行する。
第1の送信部506は、第1の実行部504によるゲームプログラムの実行結果を、対応する端末102に送信する。具体的には、例えば、当該ゲームプログラムの実行に基づく動画像情報や音声情報を圧縮して、ネットワーク101を介して、対応する端末102に送信する。つまり、本実施の形態においては、後述するマイグレーション指示が送信される前においては、例えば、第1のサーバ501のゲームインスタンスにおいて、ゲームプログラムが実行され、当該ゲームプログラムの実行に伴う実行結果を端末102に配信する。つまり、マイグレーションに伴うプロセスが開始される前は、第1のサーバ501においてゲームプログラムが実行され、当該実行に伴う動画像情報や音声情報が端末102に配信されることにより、ユーザーは当該ゲームプログラムをプレイする。
次に、主に、マイグレーションに伴うプロセス、及び、当該プロセスを実現するための機能的構成及びその処理のフローについて説明する。管理サーバ103は、サーバ管理部511、負荷監視部512を含む。負荷監視部512は、所定期間毎(例えば、60秒毎)に、各仮想サーバ104の負荷を監視する。具体的には、例えば、サーバ管理部511は、各仮想サーバ104のCPU利用率や、ネットワークI/O(Input/output)の状況を監視することにより、各仮想サーバ104の負荷を監視し、各仮想サーバ104の負荷を表す負荷情報を後述するサーバ管理部511に出力する。
サーバ管理部511は、上記負荷監視部512からの負荷情報に基づいて、後述する各仮想サーバ104間におけるマイグレーションを指示するとともに、各仮想サーバ104の起動及び停止を管理する。具体的には、上記例の場合、サーバ管理部511は、第1のサーバ501で1のゲームインスタンスのみが起動中でCPU利用率が低く、かつ、第2のサーバ502のCPU利用率に当該1のゲームインスタンスを第2のサーバ502で実現できる余裕があることを表す負荷情報を、負荷監視部512から取得する。
この際、サーバ管理部511は、図6に示すように、当該負荷情報に基づき、第1のサーバ501で実現されているゲームインスタンスを、第2のサーバ502で再現するとともに、継続して実行するためのマイグレーション指示を第1のサーバ501及び第2のサーバ502に送信する(S101、S102)。なお、図6においては、マイグレーション指示を第1のサーバ501に送信(S101)した後、第2のサーバ502に送信(S102)する場合について図示するが、当該マイグレーション指示は、同時に送信してもよいし、第2のサーバ502に送信した後に、第1のサーバ501に送信してもよい。
第1のサーバ501における第1の入力情報保持部507は、管理サーバ103からのマイグレーション指示に応じて、第1の入力情報取得部503において順次取得される端末102からの入力情報の保持を開始する(S103)。なお、当該入力情報は、例えば、入力情報が取得された順序を示す順序情報を含む。具体的には、例えば、第1の入力情報取得部503が、順次、順序情報1、2、3、4、5・・を含む各入力情報を取得した場合において、マイグレーション指示を順序情報4と5が取得される間のあるタイミングで取得したような場合には、第1の入力情報保持部507は、順序情報5以降の入力情報を、当該順序情報とともに保持する。つまり、この場合、例えば、第1の入力情報保持部507は、順序情報5、6、7、・・・を含む入力情報を順次保持する。
第1の状態情報取得部508は、例えば、第1の入力情報保持部507における入力情報の保持の開始に基づいて、第1の実行部504の実行状態を表す状態情報を取得する(S104)。つまり、例えば、上記例の場合、第1の状態情報取得部508は、順序情報4に対応する入力情報に応じた処理が行われた際における状態情報を取得する。そして、第1の状態情報取得部508は、当該取得した状態情報を、次に入力される順序情報(上記例の場合、順序情報5)とともに、第2のサーバ502に送信する(S105)。そして、第2のサーバ502における第2の状態情報保持部518は、当該状態情報を順序情報とともに保持する(S106)。
ここで、状態情報とは、例えば、エミュレータやシミュレータ等で構成される第1の実行部504や第2の実行部514により、再現されるゲームプログラムを実行するゲーム機器の状態情報(メモリ、レジスタ、プログラムカウンタの値等)に相当する。なお、ゲーム機器自体が実装される場合には、当該ゲーム機器の状態情報に相当する。
第1の入力情報送信指示部509は、マイグレーション指示に応じて、対応する端末102に、第2のサーバ502へも入力情報を送信する入力情報送信指示を送信する(S107)。この際、例えば、マイグレーション指示は、第2のサーバ502を識別するサーバ識別情報を含み、入力情報送信指示は、当該第2のサーバ502を識別するサーバ識別情報を含む。端末102は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ(上記例の場合、第2のサーバ502)に、入力情報の送信を開始する(S108)。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末102は、例えば、順序情報が8以降の入力情報、つまり、順序情報8、9、10・・・を含む入力情報の送信を開始する。
第2のサーバ502の第2の入力情報保持部517は、第1のサーバ501からの入力情報送信指示に応じた端末102から取得した入力情報の保持を開始する(S109)。具体的には、上記例の場合、順序情報8、9、10・・・を含む入力情報との保持を開始する。
第2のサーバ502の入力情報要求部519は、第1のサーバ501に要求する入力情報を特定するとともに(S110)、第1のサーバ501に当該入力情報の要求指示を送信する(S111)。ここで、要求する入力情報は、例えば、第2の状態情報保持部518に保持された状態情報に関連付けて保持された順序情報と、第2の入力情報保持部517に保持された順序情報とを比較することにより、第2のサーバ502に保持されていない入力情報、つまり、不足している入力情報を特定し、当該不足している入力情報を要求する。具体的には、上記例の場合、状態情報には順序情報5が関連付けられており、また、第2の入力情報保持部517に保持されている入力情報の順序情報は、8、9、10・・・であることから、順序情報5、6、7に対応する入力情報を第1のサーバ501に要求する入力情報として特定し、第1のサーバ501に当該入力情報の要求指示を送信する。
第1のサーバ501における第1の入力情報送信部510は、第2のサーバ502からの入力情報の要求指示に基づいて、第1の入力情報保持部507に保持された入力情報を第2のサーバ502に送信する(S112)。具体的には、上記例の場合、順序情報5、6、7を含む入力情報を第1の入力情報保持部507から取得し、第2のサーバ502に送信する。
第2のサーバ502における第2の入力情報保持部517は、第1のサーバ501からの要求した入力情報を保持する(S113)。これにより、例えば、上記例の場合、第2の入力情報保持部517は、状態情報に関連付けられた順序情報以降の順序情報を含む、つまり、順序情報5、6、7・・・を含む入力情報を保持することができる。
第2のサーバ502における第2の実行制御部515は、第2の実行部514において、第2の状態情報保持部518に保持された状態情報を用いて、第1の実行部504の実行状態を再現する(S114)。そして、第2の実行制御部515は、第2の実行部514に第2の入力情報保持部517に保持されている入力情報を用いて、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、早送り実行を行わせる(S115)。
ここで、早送り実行とは、例えば、ゲームプログラムの実行速度としてあらかじめ予定されている速度(第1の実行速度)よりも早い速度(第2の実行速度)でゲームプログラムを実行させることに相当する。具体的には、例えば、第2の実行部514に第2の入力情報保持部517に保持されている入力情報を用いて現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、第2の実行部514で実現できる最速の実行速度でゲームプログラムの実行を行わせる。そして、例えば、第2の入力情報保持部517に保持されている入力情報を用いた早送り実行が、現在の入力情報を用いたゲームプログラムの実行のタイミングよりも速く終了した場合には、第2の実行部514を停止させる。そして、端末102から入力される入力情報を用いて通常の速度(第1の実行速度に対応)で第2の実行部を実行させるタイミングを待って、通常の速度でゲームプログラムを実行させる。
ここで、例えば、第1の実行部504または第2の実行部514の実行速度は、ゲームプログラムが実行される専用のゲーム機器よりも高速である場合がある。この場合、例えば、毎フレームの描画処理が1/60秒である場合、当該1/60秒以内にフレームの描画処理が終了することから、次の1/60秒のタイミングが到来するまで第1の実行部504または第2の実行部514の実行処理を停止させることにより、通常の速度におけるゲームプログラムを実現する。更に、この場合、例えば、上記第2の実行部514における早送り実行は、第2の実行処理の停止を行わないことにより実現し、そして、上記のように入力情報保持部517に保持されている入力情報を用いた当該早送り実行が当該1/60秒毎のタイミングにあわずに早期に終了した場合には、第2の実行部514による早送り実行を停止させ、その後、当該1/60秒毎のタイミングにあわせて、第2の実行部514による通常の速度での処理を実行させるように構成してもよい。
また、当該第2の実行速度は、早送り実行が行われる時間全体として、上記第1の実行速度よりも早い速度に相当し、例えば、3倍速と4倍速のような複数の速度で構成されてもよい。具体的には、図7に示す場合を例として説明する。図7は、上記例の場合において、第2の入力情報保持部517に保持されている入力情報の順序情報を示す。図7においては、第2の入力情報保持部517が保持している各入力情報701を、順序情報を示す番号として示す。また、t1乃至t4等は、第2の入力情報保持部517が各入力情報を保持するタイミングを示す。なお、図7Aが、3倍速で入力情報を第2の実行部514に入力することにより早送り実行する場合、図7Bが、4倍速で入力情報を第2の実行部514に入力することにより、早送り実行する場合を示す。
図7Aに示すように、例えば、タイミングt1、t2、t3、t4の順に、第2の入力情報保持部517には、順序情報11、12、13、14を含む入力情報が保持される。まず、早送り実行が開始されると、タイミングt1において、順序情報5、6、7を含む各入力情報が第2の実行部514に入力される。同様に、タイミングt2において、順序情報8乃至10を含む各入力情報が第2の実行部514に入力され、タイミングt3において、順序情報11乃至13を含む各入力情報が第2の実行部514に入力される。タイミングt4においては、入力される入力情報の順序情報は14であり、既に順序情報13までが早送り実行されているので、タイミングt4以降は、端末102から順次入力される入力情報(現在の入力情報)を用いて第2の実行部514を通常の速度(例えば、ゲームプログラムのプレイ速度として予め定められている速度)で実行することができる。なお、当該端末102から順次入力される入力情報が、第2の入力情報保持部517に順次保持されることは上述のとおりである。第2の実行制御部515は、上記のように現在の入力情報(上記例の場合は、順序情報14を含む入力情報に相当)を用いて第2の実行部514の実行が可能となるまで、当該ゲームプログラムを早送り実行させる。
ここで、例えば、図7Bに示すように、早送り実行において、常に同じn倍速(nは2以上の自然数)とすることはできない場合がある。そのような場合には、早送り実行において早送りの速度を調整する必要がある。具体的には、例えば、図7Bは、4倍速の場合を示すが、タイミングt2において、順序情報12の入力情報がまだ保持されていないため、タイミングt2においては、4倍速とすることはできない。よって、例えば、タイミングt2においては、3倍速とし、タイミングt3以降は、端末102から順次入力される入力情報(現在の入力情報)を用いて第2の実行部514を通常の速度で実行する。なお、上記に示した3倍速や4倍速等の例は一例であって、その他の速度で早送り実行するように構成してもよいことはいうまでもない。
第2の実行制御部515は、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第1の速度に対応する速度で第2の実行部514にゲームプログラムを実行させる(S116)。言い換えれば、第2の実行部514は、通常の速度でゲームプログラムを実行する。このとき、第2の実行部514は、第2の入力情報取得部513で順次端末102から取得される入力情報に応じた処理を行うことによりゲームプログラムを実行する。
第2の送信部516は、当該第2の実行部514における実行結果の端末102への送信を開始する(S117)。このとき、上記のように、第2の実行部514は端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となっていることから、現在の入力情報に対する第2の実行部514の実行結果と第1の実行部504の実行結果は、端末102と第1のサーバ501及び第2のサーバ502間のネットワーク遅延等による通信に基づく影響等を除けば、同一である。したがって、S117以降は、端末102は、第1の実行部504及び第2の実行部514から同じ実行結果を受信することになるので、このとき、第1のサーバ501から送信される実行結果に代えて、第2のサーバ502から送信される実行結果を表示部204に表示する。
第2の実行制御部515は、上記第2のサーバ502でのプロセスの終了を表す完了通知を第1のサーバ501へ送信する(S118)。第1の実行制御部505は、当該完了通知に応じて、第1の送信部506による第1の実行部504による実行結果の送信を停止する(S119)。また、このとき、第1の実行制御部505は、第1の実行部504によるゲームプログラムの実行や第1の入力情報保持部503による入力情報の保持等についても停止するように構成してもよい。第1の実行制御部505は、マイグレーション指示に応じた上記S101乃至S119に示した第1のサーバ501及び第2のサーバ502におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ103に送信する(S120)。当該マイグレーション完了通知に応じて、管理サーバ103のサーバ管理部511は、第1のサーバ501に対してサーバを停止するためのサーバ停止指示を送信する(S121)。第1のサーバ501は当該サーバ停止指示に応じて、第1のサーバ501を停止する(S122)。
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段(ゲーム実行手段)が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末102に送信される情報処理システム110において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム110全体として効率を向上するとともに、情報処理システム110全体としてのコストの増加を抑制することができる。また、ユーザーは、サーバ間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第1の実行部504の実行結果の送信を停止する構成について説明したが、サーバの停止に応じて、第1の実行部504によるゲームプログラムの実行や当該実行結果の送信等が停止するように構成してもよい。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。図8A及び図8Bに示すように、本実施の形態においては、主に、第1及び第2のサーバ501、502における第1及び第2のマイグレーション部801、802の機能的な構成が第1の実施形態における第1及び第2のマイグレーション部520、521と異なり、端末102からの第1の入力情報を第2のサーバ502に転送する点が異なる。なお、下記においては、主に、第1の実施形態と異なる点について説明し、同様である点については説明を省略する。更に、下記においては、第1の実施形態と同様に、説明の簡略化のため、一例として、第1のサーバ501のサーバプロセスを、第2のサーバ502にマイグレーションする場合の情報処理システム110の機能的構成及び当該情報処理システム110のフローの一例について説明する。
以下図8A及び図8B、及び、図9を用いて、本実施の形態における情報処理システム110の機能的構成及び処理のフローについて説明する。ここで、図8Aは、本実施の形態における第1のサーバ501の第1のマイグレーション部801の機能的構成を示し、図8Bは、本実施の形態における第2のサーバ502の第2のマイグレーション部802の機能的構成を示す。また、図9は、本実施の形態における情報処理システム110の処理のフローを説明するための図である。
第1の実施形態と同様に、サーバ管理部511は、負荷監視部512からの負荷情報に基づき、第1のサーバ501で実現されているゲームインスタンスを、第2のサーバ502で再現するとともに、継続して実行するためのマイグレーション指示を第1のサーバ501及び第2のサーバ502に送信する(S201、S202)。
第1の入力情報転送部803は、管理サーバ103からのマイグレーション指示に応じて、第1の入力情報取得部503において順次取得される端末102からの入力情報の転送を開始する(S203)。具体的には、例えば、第1の入力情報取得部503が、順次、順序情報1、2、3、4、5・・を含む入力情報を取得する場合において、マイグレーション指示を順序情報4と5が取得される間のあるタイミングで取得したような場合には、第1の入力情報転送部803は、順序情報5以降の順序情報を含む入力情報を、当該順序情報とともに転送する。つまり、この場合、第1の入力情報転送部803は、順序情報5、6、7、・・・を含む各入力情報を順次転送する。
第2のサーバ502の第2の入力情報保持部806は、第1のサーバ501から転送される入力情報の保持を開始する(S204)。具体的には、第2の入力情報保持部806は、上記例の場合、順序情報5、6、7、・・・を含む入力情報を順次保持する。
第1の状態情報取得部804は、例えば、第1の入力情報転送部803における入力情報の転送の開始に基づいて、第1の実行部504の実行状態を表す状態情報を取得する(S205)。つまり、例えば、上記例の場合、第1の状態情報取得部804は、順序情報4に対応する入力情報に応じた処理が行われた際における状態情報を取得する。そして、第1の状態情報取得部804は、当該取得した状態情報を、次に入力すべき順序情報(上記例の場合、順序情報5)とともに、第2のサーバ502に送信する(S206)。当該第2のサーバ502における第2の状態情報保持部807は、状態情報を順序情報とともに保持する(S207)。
第1の入力情報送信指示部805は、マイグレーション指示に応じて、対応する端末102に、第2のサーバ502へも入力情報を送信する入力情報送信指示を送信する(S208)。端末102は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ(この場合、第2のサーバ502)に、入力情報の送信を開始する(S209)。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末102は、例えば、順序情報が8以降の入力情報、つまり、順序情報8、9、10・・・を含む入力情報の送信を開始する。
第2のサーバ502における第2の入力情報保持部806は、第1のサーバ501からの入力情報送信指示に応じた端末102から順次取得した入力情報の保持を開始する(S210)。具体的には、上記例の場合、順序情報8、9、10・・・を含む入力情報を順次保持する。ここで、当該入力情報保持部は、例えば、第1のサーバ501からの入力情報とは別に当該端末102からの入力情報を保持する。この場合、第2の入力情報保持部806は、重複して同じ入力情報を保持することになることから、入力情報に含まれる順序情報に応じて、重複する入力情報については保持しないように構成してもよい。具体的には、上記例の場合、第1のサーバ501からの各入力情報(例えば、それぞれ順序情報5、6、7、・・・を含む)と当該端末102から取得される各入力情報(例えば、それぞれ8、9、10、・・・を含む)は、順序情報8以降に対応する各入力情報が重複する。よって、当該順序情報8以降に対応する各入力情報については、第1のサーバ501からの入力情報は保持せず、端末102からの各入力情報を保持するように構成してもよい。また、この場合、第1のサーバ501に入力情報の第2のサーバ502への転送を停止するように指示するように構成してもよい。
第2のサーバ502における第2の実行制御部515は、第2の実行部514において、第2の状態情報保持部807に保持された状態情報を用いて、第1の実行部504の実行状態の情報を再現する(S211)。そして、第2の実行制御部515は、第2の実行部514に第2の入力情報保持部806に保持されている入力情報を用いて、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで早送り実行を行わせる(S212)。具体的には、上記例の場合、例えば、順序情報5以降に対応する入力情報を、現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、通常の入力速度よりも速い速度で第2の実行部514に入力することにより、第2の実行部514にゲームプログラムを早送り実行させる。なお、早送り実行等についての詳細については上記と同様であるので説明を省略する。
そして、第1の実施形態と同様に、第2の実行制御部515は、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第1の速度に対応する速度で第2の実行部514にゲームプログラムを実行させる(S213)。第2の送信部516は、第2の実行部514における実行結果の端末102への送信を開始する(S214)。そして、第2の実行制御部515は、上記第2のサーバ502でのプロセスの終了を表す完了通知を第1のサーバ501へ送信する(S215)。第1の送信部506は、当該完了通知に応じて、第1の送信部506による第1の実行部504による実行結果の送信を停止する(S216)。なお、このとき、第1の実行部504によるゲームプログラムの実行や入力情報保持部による入力情報の保持等についても停止するように構成してもよい。
第1の実行制御部505は、マイグレーション指示に応じた上記S203乃至S216に示した第1のサーバ501及び第2のサーバ502におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ103に送信する(S217)。管理サーバ103のサーバ管理部511は、当該マイグレーション完了指示に応じて、第1のサーバ501にサーバを停止するサーバ停止指示を送信する(S218)。当該サーバ停止指示に応じて、第1のサーバ501は、停止する(S219)。
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段(ゲーム実行手段)が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末102に送信される情報処理システム110において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム110全体として効率を向上するとともに、情報処理システム110全体としてのコストの増加を抑制することができる。また、ユーザーは、サーバ間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第1の実行部504の実行結果の送信を停止する構成について説明したが、サーバの停止に応じて、第1の実行部504におけるゲームプログラムの実行や当該実行結果の送信等が停止するように構成してもよい。
[第3の実施形態]
次に、本発明の第3の実施形態を説明する。本実施の形態においては、主に、第1及び第2のサーバ502における第1及び第2のマイグレーション部111、112の機能的構成、ファイルサーバ113を用いる点、及び、端末102からの第1の入力情報及び状態情報をファイルサーバ113に転送する点が、第1及び第2の実施の形態と異なる。なお、下記においては、主に、第1及び第2の実施形態と異なる点について説明し、同様である点については説明を省略する。また、ファイルサーバ113は、例えば、図1に示したクラウド基盤100に設けられる1のサーバであって、仮想サーバ104であってもよいし、通常のサーバであってもよい。また、下記においては、第1の実施形態と同様に、説明の簡略化のため、一例として、第1のサーバ501のサーバプロセスを、第2のサーバ502にマイグレーションする場合の情報処理システム110の機能的構成、及び、当該情報処理システム110のフローの一例について説明する。
以下図10A乃至C及び図11を用いて、本実施の形態における情報処理システム110の機能的構成及び処理のフローについて説明する。ここで、図10Aは、本実施の形態における第1のサーバ501の第1のマイグレーション部111の機能的構成を示し、図10Bは、本実施の形態における第2のサーバ502の第2のマイグレーション部112の機能的構成を示す。図10Cは、本実施の形態におけるファイルサーバ113の機能的構成を示す。また、図11は、本実施の形態における情報処理システム110の処理のフローを説明するための図である。
第1の実施形態と同様に、サーバ管理部511は、負荷監視部512からの負荷情報に基づき、第1のサーバ501で実現されているゲームインスタンスを、第2のサーバ502で再現するとともに、第1のサーバ501において実行されているゲームプログラムを継続して実行するためのマイグレーション指示を第1のサーバ501及び第2のサーバ502に送信する(S301、S302)。
第1の入力情報転送部114は、管理サーバ103からのマイグレーション指示に応じて、第1の入力情報取得部503において順次取得される端末102からの入力情報のファイルサーバ113への転送を開始する(S303)。具体的には、例えば、第1の入力情報取得部503が、順次、順序情報1、2、3、4、5・・を含む入力情報を取得した場合において、マイグレーション指示を順序情報4と5が取得される間のあるタイミングで取得した場合には、入力情報転送部114は、順序情報5以降の順序情報を含む入力情報をファイルサーバ113に転送する。つまり、この場合、入力情報転送部114は、順序情報5、6、7、・・・を含む入力情報をファイルサーバ113に転送する。ファイルサーバ113の入力情報保持部119は、第1のサーバ501から順次転送される入力情報の保持を開始する(S304)。具体的には、上記例の場合、順序情報5、6、7、・・・を含む入力情報を順次保持する。
第1のサーバ501における第1の状態情報取得部115は、例えば、第1の入力情報転送部114における入力情報の転送の開始に基づいて、第1の実行部504の実行状態を表す状態情報を取得する(S305)。具体的には、上記例の場合、第1の状態情報取得部115は、順序情報4に対応する入力情報に応じた処理が行われた際における状態情報を取得する。そして、第1の状態情報取得部115は、当該取得した状態情報を、次に入力すべき順序情報(上記例の場合、順序情報5)とともに、ファイルサーバ113に送信する(S306)。当該ファイルサーバ113の状態情報保持部120は、当該状態情報を順序情報とともに保持する(S307)。
第1の入力情報送信指示部122は、マイグレーション指示に応じて、対応する端末102に、第2のサーバ502へも入力情報を送信する入力情報送信指示を送信する(S308)。端末102は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ(この場合、第2のサーバ502)に、入力情報の送信を開始する(S309)。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末102は、例えば、順序情報が8以降の入力情報、つまり、順序情報8、9、10・・・を含む入力情報の送信を開始する。
第2のサーバ502における第2の入力情報保持部123は、第1のサーバ501からの入力情報送信指示に応じた端末102から取得した入力情報の保持を開始する(S310)。具体的には、上記例の場合、順序情報8、9、10・・・を含む入力情報を順次保持する。第2のサーバ502における状態情報要求部118は、ファイルサーバ113に状態情報を要求する(S311)。当該状態情報の要求に応じて、ファイルサーバ113は、ファイルサーバ113の状態情報保持部120に保持された状態情報を第2のサーバ502に送信する(S312)。第2のサーバ502の状態情報保持部117は、第2のサーバ502からの状態情報を保持する(S313)。
第2のサーバ502の入力情報要求部118は、ファイルサーバ113に要求する入力情報を特定するとともに(S314)、ファイルサーバ113に当該入力情報の要求指示を送信する(S315)。ここで、第2のサーバ502の入力情報要求部118は、例えば、第2の状態情報保持部807に保持された状態情報に関連付けて保持された順序情報と、第2の入力情報保持部123に保持された順序情報とを比較することにより、第2のサーバ502に保持されていない入力情報、つまり、不足している入力情報を特定し、当該不足している入力情報を要求する。具体的には、上記例の場合、状態情報には順序情報5が関連付けられており、また、第2の入力情報保持部123に保持されている順序情報は、8、9、10・・・であることから、順序情報5、6、7に対応する入力情報をファイルサーバ113に要求する入力情報として特定し、ファイルサーバ113に当該入力情報の要求指示を送信する。
ファイルサーバ113における入力情報送信部121は、第2のサーバ502からの入力情報の要求指示に基づいて、ファイルサーバ113の入力情報保持部119に保持された入力情報を第2のサーバ502に送信する(S316)。具体的には、上記例の場合、順序情報5、6、7を含む入力情報をファイルサーバ113の入力情報保持部から取得し、第2のサーバ502に送信する。
第2のサーバ502における第2の入力情報保持部123は、第1のサーバ501からの要求した入力情報を保持する(S317)。これにより、状態情報に関連付けられた順序情報を含む入力情報から現在の入力情報までの入力情報、つまり、上記例の場合、第2の入力情報保持部123は、順序情報5、6、7・・・を含む入力情報を保持することができる。
第2のサーバ502における第2の実行制御部515は、第2の実行部514において、第2の状態情報保持部807に保持された状態情報を取得し、当該状態情報を用いて、第1の実行部504の実行状態の情報を再現する(S318)。そして、第2の実行制御部515は、第2の実行部514に第2の入力情報保持部123に保持されている入力情報を用いて、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで早送り実行させる(S319)。具体的には、上記例の場合、例えば、順序情報5以降に対応する入力情報を、現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、通常の入力速度よりも速い速度で第2の実行部514に入力することにより、第2の実行部514にゲームプログラムを早送り実行させる。なお、早送り実行等の詳細については、第1の実施形態と同様であることから、説明を省略する。
第2の実行制御部515は、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第1の速度に対応する速度で第2の実行部514にゲームプログラムを実行させる(S320)。第2の送信部516は、第2の実行部514における実行結果の端末102への送信を開始する(S321)。第2の実行制御部515は、上記第2のサーバ502でのプロセスの終了を表す完了通知を第1のサーバ501へ送信する(S322)。第1の送信部506は、当該完了通知に応じて、第1の送信部506による第1の実行部504による実行結果の送信を停止する(S323)。なお、このとき、第1の実行部504によるゲームプログラムの実行や入力情報保持部による入力情報の保持等についても停止するように構成してもよい。
第1の実行制御部505は、マイグレーション指示に応じた上記S303乃至S323に示した第1のサーバ501及び第2のサーバ502におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ103に送信する(S324)。管理サーバ103のサーバ管理部511は、当該マイグレーション完了指示に応じて、第1のサーバ501にサーバを停止するサーバ停止指示を送信する(S325)。当該サーバ停止指示に応じて、第1のサーバ501は、停止する(S326)。
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段(ゲーム実行手段)が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末102に送信される情報処理システム110において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム110全体として効率を向上するとともに、情報処理システム110全体としてのコストの増加を抑制することができる。また、ユーザーは、仮想サーバ104間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
本発明は、上記実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第1の実行部504の実行結果の送信を停止する構成について説明したが、サーバが停止に応じて、第1の実行部504による実行や当該実行結果の送信等が停止するように構成してもよい。
[第4の実施形態]
次に、本発明の第4の実施形態を説明する。本実施の形態においては、主に、状態情報の取得や保持等を行わない点、ファイルサーバ133においてゲームプログラムの実行開始からの入力情報を保持する点が第3の実施形態と異なる。具体的には、主に、第1及び第2のマイグレーション部131、132及びファイルサーバ133の機能的構成が、第3の実施形態と異なる。なお、下記においては、主に、第1乃至第3の実施形態と異なる点について説明し、同様である点については説明を省略する。また、下記においては、第1の実施形態と同様に、説明の簡略化のため、一例として、第1のサーバ501のサーバプロセスを、第2のサーバ502にマイグレーションする場合の情報処理システム110の機能的構成及び当該情報処理システム110のフローの一例について説明する。
以下、図12A乃至12C及び図13を用いて、本実施の形態における情報処理システム110の機能的構成及び処理のフローについて説明する。ここで、図12Aは、本実施の形態における第1のサーバ501の第1のマイグレーション部131の機能的構成を示し、図12Bは、本実施の形態における第2のサーバ502の第2のマイグレーション部132の機能的構成を示す。図12Cは、本実施の形態におけるファイルサーバ133の機能的構成を示す。また、図13は、本実施の形態における情報処理システム110の処理のフローを説明するための図である。本実施の形態においては、図12Aに示すように、第1のサーバ501は、入力情報転送部134を有し、当該入力情報転送部134は、ゲームプログラムの実行の開始から、端末102から順次取得される入力情報をファイルサーバ133の入力情報保持部137に順次転送する。したがって、ファイルサーバ133の入力情報保持部137は、ゲームプログラムの開始からの入力情報、つまり、例えば、順序情報0、1、2・・・(順序情報が0から始まる場合)を含む入力情報を保持する。
第1の実施形態と同様に、サーバ管理部511は、負荷監視部512からの負荷情報に基づき、第1のサーバ501で実現されているゲームインスタンスを、第2のサーバ502で再現するとともに、実行されているゲームプログラムを第2のサーバ502で継続して実行するためのマイグレーション指示を第1のサーバ501及び第2のサーバ502に送信する(S401、S402)。
第1の入力情報送信指示部139は、マイグレーション指示に応じて、対応する端末102に、第2のサーバ502へも入力情報を送信する入力情報送信指示を送信する(S403)。端末102は、当該入力情報送信指示を取得すると、その後、当該サーバ識別情報で識別されるサーバ(この場合、第2のサーバ502)に、入力情報の送信を開始する(S404)。具体的には、上記例の場合、当該入力情報送信指示を取得するまで時間が経過していることから、端末102は、例えば、順序情報が8以降の入力情報、つまり、順序情報8、9、10・・・を含む入力情報の送信を開始する。第2の入力情報保持部137123は、第1のサーバ501からの入力情報送信指示に応じた端末102から取得した入力情報の保持を開始する(S405)。具体的には、上記例の場合、順序情報8、9、10・・・を含む入力情報を順次保持する。
第2のサーバ502の入力情報要求部136は、ファイルサーバ133に要求する入力情報を特定するとともに(S406)、ファイルサーバ133に当該入力情報の要求指示を送信する(S407)。ここで、第2のサーバ502の入力情報要求部136は、例えば、第2の入力情報保持部135に保持されている順序情報のうちから不足している入力情報を特定し、当該不足している入力情報を要求する。具体的には、上記例の場合、第2の入力情報保持部135に保持されている順序情報は、8、9、10・・・であることから、順序情報8よりまえの順序情報、つまり、順序情報0乃至7を含む入力情報をファイルサーバ133に要求する入力情報として特定し、ファイルサーバ133に当該入力情報の要求指示を送信する。
ファイルサーバ133における入力情報送信部138は、第2のサーバ502からの入力情報の要求指示に基づいて、ファイルサーバ133の入力情報保持部137に保持された入力情報を第2のサーバ502に送信する(S408)。具体的には、上記例の場合、順序情報0乃至7を含む入力情報をファイルサーバ133の入力情報保持部137から取得し、第2のサーバ502に送信する。
第2のサーバ502における第2の入力情報保持部135は、第1のサーバ501からの要求した入力情報を保持する(S409)。これにより、第2の入力情報保持部135は、ゲームプログラム開始から現在の入力情報、つまり、上記例の場合、順序情報0、1、2・・・を含む入力情報を保持する。
第2の実行制御部515は、第2の実行部514に第2の入力情報保持部135に保持されている入力情報を用いて、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで早送り実行させる(S410)。具体的には、上記例の場合、例えば、ゲームプログラムの実行開始からの順序情報(順序情報0)以降を含む各入力情報を、現在の入力情報を用いたゲームプログラムの実行が開始可能となるまで、通常の入力速度よりも速い速度で第2の実行部514に入力することにより、第2の実行部514にゲームプログラムを早送り実行させる。なお、本実施の形態においては、第1乃至第3の実施形態と異なり、状態情報を用いないが、ゲームプログラムの開始から現在の入力情報を全て保持する構成としていることから、早送り実行により、第2の実行部514において第1の実行部504の実行状態を再現することができる。
第2の実行制御部515は、端末102からの現在の入力情報を用いたゲームプログラムの実行が開始可能となった後、つまり、上記早送り実行が終了した後、上記第1の速度に対応する速度で第2の実行部514にゲームプログラムを実行させる(S411)。第2の送信部516は、第2の実行部514における実行結果の端末102への送信を開始する(S412)。
第2の実行制御部515は、上記第2のサーバ502でのプロセスの終了を表す完了通知を第1のサーバ501へ送信する(S413)。第1の送信部506は、当該完了通知に応じて、第1の送信部506による第1の実行部504による実行結果の送信を停止する(S414)。なお、このとき、第1の実行部504によるゲームプログラムの実行や入力情報保持部137による入力情報の保持等についても停止するように構成してもよい。
第1の実行制御部505は、マイグレーション指示に応じた上記S403乃至S414に示した第1のサーバ501及び第2のサーバ502におけるマイグレーションプロセスの完了を示すマイグレーション完了通知を、管理サーバ103に送信する(S415)。管理サーバ103のサーバ管理部511は、当該マイグレーション完了指示に応じて、第1のサーバ501にサーバを停止するサーバ停止指示を送信する(S416)。当該サーバ停止指示に応じて、第1のサーバ501は、停止する(S417)。
本実施の形態によれば、例えば、各ゲームサーバ上で複数のゲームを実行する手段(ゲーム実行手段)が実現され、各ゲーム実行手段によるゲームプログラムの実行結果が各端末102に送信される情報処理システム110において、ユーザーの数が減少し、各サーバの負荷が低くなるような場合において、サーバ間でのマイグレーションを行うことにより、負荷の低い複数台のサーバを起動したまま維持することを抑制し、情報処理システム110全体として効率を向上するとともに、情報処理システム110全体としてのコストの増加を抑制することができる。また、ユーザーは、サーバ間でのマイグレーションが発生したことを認識することなく、ゲームの実行を継続することができる。
本発明は、上記第1乃至第4の実施の形態に限定されるものではなく、上記実施の形態で示した構成や処理のフローと実質的に同一の構成やフロー、同一の作用効果を奏する構成又は同一の目的を達成することができる構成やフローで置き換えてもよい。例えば、上記フローにおいては、サーバの停止前に第1の実行部504の実行結果の送信を停止する構成について説明したが、サーバが停止に応じて、第1の実行部504の実行結果の送信等が停止するように構成してもよい。また、上記第1のサーバ501や第2のサーバ502で実行されるゲームプログラムは、ゲームプログラムの一部(ミニゲーム)、例えば、所定のステージや所定の敵キャラクタとの対戦で構成されてもよい。この場合、例えば、実行部は、ミニゲームの開始における予め記憶された実行部504、514の状態情報を用いて、ゲームプログラムを実行することによりミニゲームの開始を行うことができる。また、ミニゲームの終了については、例えば、ゲームプログラムの実行により順次生成される画像情報の一部(例えば、ゴールの文字やWINの文字等)を画像認識することにより、ミニゲームの終了判定を行うように構成する。更に、上記においては、いわゆる仮想サーバを用いる場合について説明したが、本発明を、通常のサーバクライアントシステムに適用してもよい。更に、上記においては、主に、第1のサーバ501のサーバプロセスを、第2のサーバ502にマイグレーションする場合の情報処理システム110の機能的構成及び当該情報処理システム110のフロー、逆に、第2のサーバ502のサーバプロセスを、第1のサーバ501にマイグレーションする構成、または双方向にマイグレーションできる構成を有するように構成してもよいことはいうまでもない。また、当該マイグレーションは第1のサーバ501及び第2のサーバ502間のマイグレーションに限られず、第1または第2のサーバ、501、502及び他の仮想サーバ104と間において、または、他の仮想サーバ104間、仮想サーバ104と通常のサーバとの間においてマイグレーション可能なように構成してもよいことはいうまでもない。更に、上記においては、マイグレーションが行われたことをユーザーに認識させない構成としたが、マイグレーションが行われた場合にユーザーにその旨を通知するように構成してもよい。更に、上記おいては、第1のサーバ501及び第2のサーバ502が端末102から入力情報を取得し、ゲームプログラムを実行し、生成された動画像情報を圧縮・送信する場合等について説明したが、当該入力情報の取得や、動画像の圧縮等については、第1のサーバ501または第2のサーバ502とは異なる別のサーバで行うように構成してもよい。
100 クラウド基盤、101 ネットワーク、102 端末、103 管理サーバ、104 仮想サーバ、105 DB、111、131、520、801 第1のマイグレーション部、112、132、521、802 第2のマイグレーション部、114、803 第1の入力情報転送部、116 状態情報要求部、117、518、807 第2の状態情報保持部、118、136、519 入力情報要求部、119、137 入力情報保持部、120 状態情報保持部、121、138 入力情報送信部、123、135、517、806 第2の入力情報保持部、134 入力情報転送部、139、509、805 第1の入力情報送信指示部、201 制御部、202、506 通信部、203 記憶部、204 表示部、205 操作部、301 方向キー、302 ボタン、303 アナログ操作部、304 表示画面、401 仮想マシン制御部、402 物理マシン、403 ハイパーバイザ、501 第1のサーバ、502 第2のサーバ、503 第1の入力情報取得部、504 第1の実行部、506 第1の送信部、507 第1の入力情報保持部、508、804 第1の状態情報取得部、510 第1の入力情報送信部、511 サーバ管理部、512 負荷監視部、513 第2の入力情報取得部、514 第2の実行部、515 第2の実行制御部、516 第2の送信部。

Claims (11)

  1. 順次取得される入力情報を用いて、第1の速度で、アプリケーションの実行する第1の実行手段と、前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、を含む第1のサーバと、
    前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、を含む第2のサーバと、を含み、
    前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、
    前記第1のサーバは、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
    ことを特徴とする情報処理システム。
  2. 前記再現データは、前記第1の実行状態を表す実行状態情報を含み、
    前記第2の実行手段は、更に、前記実行状態情報を用いて、前記第2の実行手段において前記第1の実行手段の状態を再現することを特徴とする請求項1記載の情報処理システム。
  3. 前記再現データ取得手段は、前記再現データを、前記第1のサーバから取得することを特徴とする請求項1または2に記載の情報処理システム。
  4. 前記再現データ取得手段は、前記再現データの一部を、前記第1のサーバ及び前記第2のサーバと異なる第3のサーバから取得することを特徴とする請求項1に記載の情報処理システム。
  5. 前記第2の実行手段は、該第2の実行手段が前記端末からの現在の入力情報を用いた前記アプリケーションの実行が可能となる実行可能時まで、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現することを特徴とする請求項1乃至4のいずれかに記載の情報処理システム。
  6. 前記第2の実行手段は、前記実行可能時以後は、前記第2のサーバに含まれる前記入力情報取得手段により順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行することを特徴とする請求項5に記載の情報処理システム。
  7. 第1のサーバに含まれる第1の実行手段により、順次取得される入力情報を用いて、第1の速度で、アプリケーションの実行を開始し、
    前記第1のサーバにより、前記アプリケーションの実行結果の端末への送信を開始し、
    第2のサーバにより、前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得し、
    前記第2のサーバにより、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報の取得を開始し、
    前記第2のサーバに含まれる第2の実行手段により、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、
    前記第2の実行手段により、前記第1の実行手段の状態が再現された後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションの実行を開始し、
    前記第2のサーバにより、前記第2の実行手段による前記アプリケーションの実行結果の前記端末への送信を開始し、
    前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記第1のサーバは、前記アプリケーションの実行結果の前記端末への送信を停止する、
    ことを特徴とする情報処理方法。
  8. 順次取得される入力情報を用いて、第1の速度で、アプリケーションを実行する第1の実行手段と、前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、を含む第1のサーバ手段、及び、
    前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データを取得する再現データ取得手段と、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、含む第2のサーバ手段、としてコンピュータシステムを機能させるための情報処理プログラムであって、
    前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバ手段により順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、
    前記第1のサーバ手段は、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
    ことを特徴とする情報処理プログラム。
  9. 請求項8に記載の情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
  10. 順次取得される入力情報を用いて、第1の速度で、アプリケーションを実行する第1の実行手段と、
    前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、
    を含む第1のサーバであって、
    前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、を含む第2のサーバにおける前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、
    前記第1のサーバは、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
    ことを特徴とする第1のサーバ。
  11. 順次取得される入力情報を用いて、第1の速度で、アプリケーションを実行する第1の実行手段と、前記アプリケーションの実行結果を端末へ送信する第1の送信手段と、を含む第1のサーバにおける前記第1の実行手段の状態を再現する、前記順次取得された入力情報を含む再現データの取得する再現データ取得手段と、
    前記第2のサーバへの入力情報送信指示に応じた前記端末から順次送信される入力情報を取得する入力情報取得手段と、前記アプリケーションを実行する第2の実行手段と、前記第2の実行手段による前記アプリケーションの実行結果の前記端末へ送信する第2の送信手段と、
    を含む第2のサーバであって、
    前記第2の実行手段は、少なくとも前記再現データに含まれる前記順次取得された入力情報を用いて、前記第1の速度よりも早い第2の速度で、前記アプリケーションを実行することにより、前記第2の実行手段において前記第1の実行手段の状態を再現し、前記第1の実行手段の状態を再現した後に、前記第2のサーバにより順次取得された入力情報を用いて、前記第1の速度に対応する速度で、前記アプリケーションを実行し、
    前記第1のサーバは、前記第2の実行手段が前記アプリケーションの実行結果の前記端末への送信を開始した後に、前記アプリケーションの実行結果の前記端末への送信を停止する、
    ことを特徴とする第2のサーバ。
JP2011263650A 2011-12-01 2011-12-01 情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体 Pending JP2013117757A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011263650A JP2013117757A (ja) 2011-12-01 2011-12-01 情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
US13/606,282 US8972479B2 (en) 2011-12-01 2012-09-07 Methods and apparatus for online program application execution between servers
CN201210505783.XA CN103139198B (zh) 2011-12-01 2012-11-30 信息处理系统、信息处理服务器和信息处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011263650A JP2013117757A (ja) 2011-12-01 2011-12-01 情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体

Publications (1)

Publication Number Publication Date
JP2013117757A true JP2013117757A (ja) 2013-06-13

Family

ID=48498504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011263650A Pending JP2013117757A (ja) 2011-12-01 2011-12-01 情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体

Country Status (3)

Country Link
US (1) US8972479B2 (ja)
JP (1) JP2013117757A (ja)
CN (1) CN103139198B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017002729A1 (ja) * 2015-06-29 2018-03-01 株式会社Nttドコモ 制御方法及び制御装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10967259B1 (en) * 2018-05-16 2021-04-06 Amazon Technologies, Inc. Asynchronous event management for hosted sessions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6832260B2 (en) * 2001-07-26 2004-12-14 International Business Machines Corporation Methods, systems and computer program products for kernel based transaction processing
JP2005151497A (ja) * 2003-11-20 2005-06-09 Sharp Corp 情報処理装置,情報処理システム,及びそれらの制御プログラム
CN101336441B (zh) * 2005-12-22 2014-01-08 Pkr有限公司 在线游戏的改进
JP4733167B2 (ja) * 2008-08-20 2011-07-27 フェリカネットワークス株式会社 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム
EP2267942B1 (en) * 2009-06-22 2014-08-13 Citrix Systems, Inc. Systems and methods of handling non-http client or server push on http vserver
JP5560723B2 (ja) * 2010-01-13 2014-07-30 ソニー株式会社 情報処理装置および方法、並びに、情報処理システムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017002729A1 (ja) * 2015-06-29 2018-03-01 株式会社Nttドコモ 制御方法及び制御装置

Also Published As

Publication number Publication date
US8972479B2 (en) 2015-03-03
CN103139198A (zh) 2013-06-05
US20130144929A1 (en) 2013-06-06
CN103139198B (zh) 2016-01-13

Similar Documents

Publication Publication Date Title
JP6841952B2 (ja) クラウドゲーミングに関するゲームステートセーブ、転送および再開
CN112601589B (zh) 在游戏应用的玩游戏过程期间将玩家实时连接到专家帮助
JP6806810B2 (ja) 自動人工知能(ai)パーソナルアシスタント
KR101561249B1 (ko) 정보처리 시스템, 정보처리 방법, 정보처리 프로그램, 정보처리 프로그램을 기억한 컴퓨터 판독 가능한 기록매체
EP2750032B1 (en) Methods and systems for generation and execution of miniapp of computer application served by cloud computing system
WO2018089033A1 (en) Systems and methods for providing interactive streaming media
JP2018518766A (ja) 情報処理方法、端末、およびコンピュータ記憶媒体
US9437158B2 (en) Electronic device for controlling multi-display and display control method thereof
US9868061B2 (en) Information processing system, information processing method, information processing program, computer-readable recording medium on which information processing program is recorded, and information processing device
US20140317566A1 (en) Information processing system, information processing method, information processing program, computer-readable recording medium storing the same program, data structure, information processing server,and information processing terminal
JP7449403B2 (ja) 仮想シーンのデータ処理方法、装置、電子機器及びプログラム
JP5398692B2 (ja) 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
JP7343355B2 (ja) ゲーム制御方法および装置
JP2013109560A (ja) 情報処理システム、情報処理端末、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
JP5876600B1 (ja) 情報処理プログラム、及び情報処理方法
JP2013117757A (ja) 情報処理システム、情報処理サーバ、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
JP5705523B2 (ja) 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
US20240207720A1 (en) State based action buttons
JP6148288B2 (ja) 情報処理システム、情報処理方法、情報処理プログラム
CA3212951A1 (en) Controller state management for client-server networking
JP2012085822A (ja) 情報処理システム、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体
JP2023057315A (ja) プログラム、情報処理装置及び情報処理方法