(57)【要約】【課題】状況の変化に対応できる情報処理サービスを実現する。【解決手段】クライアント端末１０はユーザ操作に従い、情報処理部１４または処理実行サーバ３０ａが生成した出力データを出力する。切り替え処理部１８は情報処理部１４における処理の進行を加味しながら、実行主体をクライアント端末１０／処理実行サーバ３０ａ間で切り替える処理を行う。管理サーバ７０の切り替え処理部７２は、外的状況の変化に応じて実行主体の切り替えの要、不要を判定する。処理実行サーバ３０ａの情報処理部３４は、クライアント端末１０におけるユーザ操作の情報を取得し、管理サーバ７０から割り当てられた情報処理を実施して出力データをクライアント端末１０へ送信する。切り替え処理部３６は情報処理部３４における処理の進行を加味しながら、実行主体をクライアント端末１０／処理実行サーバ３０ａ間または処理実行サーバ間で切り替える処理を行う。【選択図】図２
2014241119.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ操作に係る入力情報を受け付ける入力部と、
前記入力情報に基づき情報処理を実行する情報処理部と、
前記情報処理部が実行した情報処理の結果、生成されたデータを順次出力する出力部と、
前記情報処理の実行中、所定の契機により、ネットワークを介して接続した外部の装置へ当該情報処理の実行主体を切り替えるための処理を行う切り替え処理部と、を備え、
前記切り替え処理部は、前記情報処理部における情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置はユーザが直接操作するクライアント端末であり、
前記出力部は、前記情報処理部が情報処理の結果、生成した動画のデータと、前記外部の装置による情報処理の結果、生成され送信された動画のデータと、を実行主体の切り替え前後の期間にそれぞれ出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置はユーザが直接操作するクライアント端末とネットワークを介して接続した処理実行サーバであり、
前記入力部は、前記クライアント端末からユーザ操作に係る入力情報を逐次受信し、
前記出力部は、前記入力情報に応じて前記情報処理部が行った情報処理の結果、生成した動画のデータを、前記クライアント端末にストリーム転送することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記情報処理部は、複数のクライアント端末から送信された入力情報に応じて情報処理を実行し、
前記切り替え処理部は、各クライアント端末との位置関係が所定の条件を満たしたことを契機に、他の処理実行サーバへ実行主体を切り替えるための処理を行うことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記切り替え処理部は、前記クライアント端末において情報処理を実行するためのソフトウェアがダウンロードされたことを契機に、当該クライアント端末へ実行主体を切り替えるための処理を行うことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記切り替え処理部は、ユーザが、前記情報処理部において処理できない機能を選択したことを契機に、当該機能を処理可能な外部の装置へ実行主体を切り替えるための処理を行うことを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項７】
ユーザが操作するクライアント端末と、当該クライアント端末とネットワークを介して接続し、クライアント端末におけるユーザ操作に応じて生成した出力データを当該クライアント端末に送信する処理実行サーバと、を含み、
前記クライアント端末は、
ユーザ操作に基づき情報処理を実行する情報処理部と、
前記情報処理の実行中、所定の契機により、前記処理実行サーバへ当該情報処理の実行主体を切り替えるための処理を行う切り替え処理部と、
前記情報処理部が情報処理の結果、生成した出力データ、または前記処理実行サーバによる情報処理の結果、生成され送信された出力データを順次出力する出力部と、を備え、
前記処理実行サーバは、
前記クライアント端末からユーザ操作に係る入力情報を受信し情報処理を実行する情報処理部と、
前記情報処理部が情報処理の結果、生成した出力データをクライアント端末へ順次出力する出力部と、
前記情報処理の実行中、所定の契機により、前記クライアント端末へ当該情報処理の実行主体を切り替えるための処理を行う切り替え処理部と、を備え、
前記クライアント端末および前記処理実行サーバの前記切り替え処理部はいずれも、内部の情報処理部における情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整することを特徴とする情報処理システム。
【請求項８】
情報処理装置が行う情報処理方法であって、
ユーザ操作に係る入力情報を入力装置またはネットワークを介して受け付けるステップと、
前記入力情報に基づき情報処理を実行するステップと、
実行した情報処理の結果、生成されたデータを順次、出力装置またはネットワークへ出力するステップと、
前記情報処理の実行中、所定の契機により、ネットワークを介して接続した外部の装置へ当該情報処理の実行主体を切り替えるための処理を行うステップと、を含み、
前記切り替えるための処理を行うステップは、前記情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整することを特徴とする情報処理方法。
【請求項９】
ユーザ操作に係る入力情報を入力装置またはネットワークを介して受け付ける機能と、
前記入力情報に基づき情報処理を実行する機能と、
実行した情報処理の結果、生成されたデータを順次、出力装置またはネットワークへ出力する機能と、
前記情報処理の実行中、所定の契機により、ネットワークを介して接続した外部の装置へ当該情報処理の実行主体を切り替えるための処理を行う機能と、をコンピュータに実現させるコンピュータプログラムであって、
前記切り替えるための処理を行う機能は、前記情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整することを特徴とするコンピュータプログラム。
【請求項１０】
ユーザ操作に係る入力情報を入力装置またはネットワークを介して受け付ける機能と、
前記入力情報に基づき情報処理を実行する機能と、
実行した情報処理の結果、生成されたデータを順次、出力装置またはネットワークへ出力する機能と、
前記情報処理の実行中、所定の契機により、ネットワークを介して接続した外部の装置へ当該情報処理の実行主体を切り替えるための処理を行う機能と、をコンピュータに実現させるコンピュータプログラムであって、
前記切り替えるための処理を行う機能は、前記情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整するコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを利用して情報処理のサービスを提供する技術に関する。
【背景技術】
【０００２】
近年の情報処理技術の発展、ネットワークの充実化などにより、パーソナルコンピュータ、携帯端末などユーザが操作する装置の性能や使用環境によらず、様々な情報処理をサーバとの連携により実現させることが可能となっている。例えばユーザが操作する端末と、それに応じた情報処理を実施する情報処理装置とを分離することにより、簡素な構成の携帯端末などでも高度な情報を出力できるような技術が提案されている（例えば特許文献１参照）。クラウドコンピューティングのように、サーバが提供する様々なサービスをネットワークを介して利用することにより、高度な情報処理や膨大なデータ管理を、ユーザが置かれた環境によらず実現できるようにする技術的傾向は益々強くなっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２０１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のようにユーザのための処理をサーバが集約的に行う技術は、ユーザが操作する端末の処理負荷を軽減できる利点に加え、複数の端末やユーザ間で情報処理の結果や管理データを共有できるという効果をもたらす。一方、サーバやネットワークなど処理を媒介する機構が増えることにより、それを利用するユーザの数や通信帯域など流動的な要素が増え、場合によっては却って非効率な状況が発生し得る。またユーザ自身が処理の途中で状況を変化させたい場合もある。システムのリソースを十分に活用しながら、そのような状況変化に応じて臨機応変に好適な環境を提供できる技術が望まれている。
【０００５】
本発明はこのような課題に鑑みてなされたものであり、その目的は、状況の変化に対応して情報処理の形態を変化させることのできる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、ユーザ操作に係る入力情報を受け付ける入力部と、入力情報に基づき情報処理を実行する情報処理部と、情報処理部が実行した情報処理の結果、生成されたデータを順次出力する出力部と、情報処理の実行中、所定の契機により、ネットワークを介して接続した外部の装置へ当該情報処理の実行主体を切り替えるための処理を行う切り替え処理部と、を備え、切り替え処理部は、情報処理部における情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整することを特徴とする。
【０００７】
本発明の別の態様は情報処理システムに関する。この情報処理システムは、ユーザが操作するクライアント端末と、当該クライアント端末とネットワークを介して接続し、クライアント端末におけるユーザ操作に応じて生成した出力データを当該クライアント端末に送信する処理実行サーバと、を含み、クライアント端末は、ユーザ操作に基づき情報処理を実行する情報処理部と、情報処理の実行中、所定の契機により、処理実行サーバへ当該情報処理の実行主体を切り替えるための処理を行う切り替え処理部と、情報処理部が情報処理の結果、生成した出力データ、または処理実行サーバによる情報処理の結果、生成され送信された出力データを順次出力する出力部と、を備え、処理実行サーバは、クライアント端末からユーザ操作に係る入力情報を受信し情報処理を実行する情報処理部と、情報処理部が情報処理の結果、生成した出力データをクライアント端末へ順次出力する出力部と、情報処理の実行中、所定の契機により、クライアント端末へ当該情報処理の実行主体を切り替えるための処理を行う切り替え処理部と、を備え、クライアント端末および処理実行サーバの切り替え処理部はいずれも、内部の情報処理部における情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整することを特徴とする。
【０００８】
本発明のさらに別の態様は情報処理方法に関する。この情報処理方法は、情報処理装置が行う情報処理方法であって、ユーザ操作に係る入力情報を入力装置またはネットワークを介して受け付けるステップと、入力情報に基づき情報処理を実行するステップと、実行した情報処理の結果、生成されたデータを順次、出力装置またはネットワークへ出力するステップと、情報処理の実行中、所定の契機により、ネットワークを介して接続した外部の装置へ当該情報処理の実行主体を切り替えるための処理を行うステップと、を含み、切り替えるための処理を行うステップは、情報処理の進行状況に基づき、切り替え処理を開始するタイミングを調整することを特徴とする。
【０００９】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１０】
本発明によると、状況変化に応じた好適な情報処理の形態を常時提供できる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態における情報処理システムの構成を示す図である。
【図２】本実施の形態におけるクライアント端末、処理実行サーバ、管理サーバの構成をより詳細に示す図である。
【図３】本実施の形態の情報処理システムにおいて実行主体を切り替える処理手順例を示すシーケンス図である。
【図４】本実施の形態の情報処理システムにおいて実行主体を切り替える処理手順の別の例を示すシーケンス図である。
【図５】本実施の形態の情報処理システムにおいて実行主体を切り替える処理手順のさらに別の例を示すシーケンス図である。
【発明を実施するための形態】
【００１２】
図１は本実施の形態における情報処理システムの構成を示す。情報処理システム１はクライアント端末１０ａ、１０ｂ、１０ｃ、・・・（以下、それらを総称してクライアント端末１０とも呼ぶ）、処理実行サーバ３０ａ、３０ｂ、・・・（以下、それらを総称して処理実行サーバ３０とも呼ぶ）、管理サーバ７０を含み、それぞれネットワーク３を介して相互に接続可能に構成する。
【００１３】
クライアント端末１０はそれぞれのユーザが操作する装置であり、クライアント端末１０自身で情報処理を実施するほか、処理実行サーバ３０または他のクライアント端末１０が行った処理の結果を出力する端末としても機能する。後者の場合、クライアント端末１０はユーザが行った操作内容を、通信先の処理実行サーバ３０または他のクライアント端末１０へ入力情報として送信し、それに応じた処理を実施させて出力データを得る、という処理の流れをリアルタイムで実現する。クライアント端末１０はタブレット、携帯電話、携帯端末、パーソナルコンピュータなど、一般的な装置や端末のいずれでもよい。
【００１４】
管理サーバ７０は、クライアント端末１０が要求する情報処理を処理実行サーバ３０ａ、３０ｂ、・・・のいずれかに割り当てる。処理実行サーバ３０は割り当てられた情報処理を実施し、その結果生成した出力データを要求元のクライアント端末１０に送信する。クライアント端末１０、処理実行サーバ３０、管理サーバ７０は、ネットワーク３へ有線または無線で接続する。ネットワークへの接続手法やデータ送受信に係る手続きには一般的な技術を適用することができる。なお情報処理システム１を構成するクライアント端末１０、処理実行サーバ３０、管理サーバ７０の数は限定されない。
【００１５】
本実施の形態においてクライアント端末１０または処理実行サーバ３０が実施する情報処理は特に限定されないが、以下の説明では主にゲームを実現する態様について述べる。処理実行サーバ３０が処理を実行する場合、管理サーバ７０から処理を割り当てられた処理実行サーバ３０は、処理要求元のクライアント端末１０においてユーザが指定したゲームを起動し、当該クライアント端末１０におけるユーザの操作に従いゲームを進捗させる。そしてその結果として生成したゲームの画像や音声などの出力データをクライアント端末１０にストリーム転送するなどして逐次送信する。
【００１６】
クライアント端末１０では、処理実行サーバ３０から送信された出力データを順次、復号するなどして出力可能な形態に変換し、画像や音声として出力する。あるいは自らがゲームを処理した結果、生成した出力データを画像や音声として出力する。これにより、いずれのケースであっても、ユーザの操作に応じたゲーム画像、音声がクライアント端末１０から出力される。ただしクライアント端末１０および処理実行サーバ３０で実施する情報処理はゲームのほか、文書作成、画像描画、電子掲示板などのコミュニケーションツールなど、一般的な情報処理のいずれでもよい。また出力データは、画像データのみ、音声データのみ、画像データと音声データの双方のいずれでもよく、実施する情報処理の内容などによって適宜決定する。
【００１７】
処理実行サーバ３０はさらに、複数のクライアント端末１０に同じ出力データを送信することにより、複数のユーザが当該出力データを共有できるようにしてもよい。例えば実施する情報処理を、複数のユーザが参加可能なネットワークゲームとした場合、処理実行サーバ３０は複数のクライアント端末１０からそれぞれのユーザの操作に係る情報を逐次受信し、ゲームの進捗に反映させる。そして生成したゲームの出力データを全てのクライアント端末１０に送信することにより対戦型のゲームを実現できる。
【００１８】
本実施の形態では、ゲームの実行中、必要に応じて当該ゲームを実行している主体（以下、「実行主体」と呼ぶ）を、処理実行サーバ３０ａ／処理実行サーバ３０ｂ間、あるいは処理実行サーバ３０／クライアント端末１０間で切り替える。切り替えは、ユーザ操作に応じる場合のほか、外的な状況の変化によっても行う。前者の例として、処理実行サーバ３０でトライアルとして実施していたゲームを途中でユーザが購入した場合が考えられる。この場合、ゲームのソフトウェアがクライアント端末１０へダウンロードされた時点で、実行主体を処理実行サーバ３０から当該クライアント端末１０へ切り替える。
【００１９】
あるいはクライアント端末１０でゲームを実行中、ユーザが処理実行サーバ３０でのみ実行可能な機能を選択した時点で、実行主体をクライアント端末１０から処理実行サーバ３０へ切り替える。逆に、処理実行サーバ３０でゲームを実行中、クライアント端末１０でも実行可能な機能をユーザが選択した時点で、実行主体を処理実行サーバ３０からクライアント端末１０へ切り替える。また、処理実行サーバ３０ごとに提供できる機能が異なる場合に、ある処理実行サーバ３０ａで実行可能な機能から、別の処理実行サーバ３０ｂで実行可能な機能へ移行する操作をユーザが行ったとき、処理実行サーバ３０ａ／処理実行サーバ３０ｂ間で実行主体を切り替える。好適な品質の出力データを得たり、レイテンシを抑えたりする目的で、ユーザ自らが直接切り替えを要求することも考えられる。
【００２０】
外的な状況の変化としては、ゲームの参加人数の増減や参加者の位置関係の変化などがある。例えばゲーム参加者が増加した場合、実行主体である処理実行サーバ３０ａの負荷が増大し処理速度が低下するのを防ぐため、実行主体を複数の処理実行サーバ３０ａ、３０ｂ、・・・に分散させる。また実行主体を分散させた結果、パブリッククラウドサーバなど外部の有料サーバを利用することになった場合は、参加者の減少に応じて、ゲームベンダーなど自社の処理実行サーバ３０へ実行主体を集約させることによりコストを削減できる。
【００２１】
また広域からの参加がある場合、実行主体である処理実行サーバ３０と各クライアント端末１０ａ、１０ｂ、・・・との距離に偏りが生じると、ネットワーク環境によっては距離に応じて応答性にばらつきが生じ、ゲームの進行に公平性が保たれなくなることが考えられる。そこで、参加者の増減などによってその位置関係が変化しても、クライアント端末１０からの距離ができるだけ等しくなる位置にある処理実行サーバ３０を選択することにより、実行主体を随時切り替える。本実施の形態では、上記のように臨機応変に実行主体を切り替えることにより、様々な状況変化に対し最適な環境を提供できるシステムを実現する。
【００２２】
図２はクライアント端末１０、処理実行サーバ３０ａ、管理サーバ７０の構成をより詳細に示している。図２において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、記録媒体や記憶装置に格納されメモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００２３】
なお同図では、処理実行サーバ３０として処理実行サーバ３０ａのみを代表して図示しているが、その他の処理実行サーバ３０ｂ、・・・なども同様の構成を有してよい。また必要に応じて複数の処理実行サーバ３０ａ、３０ｂ、・・・間でも通信が確立され、データの送受信が行われるものとする。クライアント端末１０も同様に、複数のクライアント端末１０ａ、１０ｂ、・・・間でデータの送受信を可能としてもよい。
【００２４】
クライアント端末１０は、ユーザ操作を受け付ける入力部１２、ユーザ操作に従いゲームなどの情報処理を実施する情報処理部１４、実行主体の切り替えに係る処理を行う切り替え処理部１８、ゲーム画像や音声などの出力データを出力する出力部１６、処理実行サーバ３０ａや管理サーバ７０と通信を確立して必要なデータを送受信する通信部２０を含む。
【００２５】
管理サーバ７０は、実行主体の切り替えに係る処理を行う切り替え処理部７２、クライアント端末１０から要求された情報処理をいずれかの処理実行サーバ３０に割り当てる割り当て部７４、および、クライアント端末１０や処理実行サーバ３０と通信を確立して必要なデータを送受信する通信部７６を含む。処理実行サーバ３０ａは、クライアント端末１０や管理サーバ７０と通信を確立して必要なデータを送受信する通信部３２、管理サーバ７０から割り当てられた情報処理を実施する情報処理部３４、実行主体の切り替えに係る処理を行う切り替え処理部３６を含む。
【００２６】
クライアント端末１０の入力部１２は、ユーザが、ゲームを指定したり、当該ゲームに対する操作を行ったりコマンドを入力したりするための入力手段であり、ボタン、タッチパネル、キーボード、マウス、ジョイスティックなど一般的な入力装置のいずれかによって実現する。情報処理部１４は、実行主体がクライアント端末１０自身にあるとき、入力部１２が受け付けたユーザ操作に応じてゲームを起動させたり進捗させたりして画像や音声のデータを生成する。
【００２７】
切り替え処理部１８は、入力部１２が受け付けたユーザ操作などによって実行主体を切り替える必要が生じたか否かを判断し、切り替える場合、その旨を管理サーバ７０または処理実行サーバ３０ａへ通知する。また実行主体をゲームの途中で処理実行サーバ３０ａへ切り替える際、当該処理実行サーバ３０ａが処理を引き継ぐために必要な情報を情報処理部１４に生成させる。さらに、処理実行サーバ３０ａからクライアント端末１０へ実行主体を切り替えるとき、情報処理部１４が処理を引き継ぐために必要な情報を取得し、情報処理部１４へ供給する。以後、このように他の装置へ実行主体を切り替える際、切り替え先の装置が処理を引き継ぐために切り替え元の装置が生成する情報を「引き継ぎ情報」と呼ぶ。
【００２８】
切り替え処理部１８はさらに、切り替え処理中にその旨をユーザに知らせる画像や音声（以下、「切り替え通知」と呼ぶ）のデータを内部で保持し、切り替え処理の期間に出力部１６に出力させるようにしてもよい。通信部２０は、実行主体を処理実行サーバ３０ａとした場合に、管理サーバ７０や処理実行サーバ３０ａと一般的な手法により通信を確立し、処理開始要求やゲームに対するユーザの操作内容を入力情報として送信する。そして処理実行サーバ３０ａから処理結果として送信された出力データを受信する。またクライアント端末１０／処理実行サーバ３０ａ間で実行主体を切り替える際、引き継ぎ情報を送受信する。
【００２９】
出力部１６は、情報処理部１４がゲームを実行した結果として生成した出力データを画像や音声として出力する。また、実行主体である処理実行サーバ３０ａから送信された出力データを適宜復号して画像や音声として出力する。さらに切り替え処理中、切り替え通知のデータを切り替え処理部１８から受け取り、必要に応じて出力する。出力部１６はビデオデコーダ、オーディオデコーダ、画像を表示する液晶ディスプレイ、有機ＥＬディスプレイ、プラズマディスプレイなどの一般的なディスプレイ、音声信号を音響として出力するスピーカ、イヤフォン、ヘッドフォンなどの音声出力機器、およびそれらの装置を制御するコントローラによって実現する。
【００３０】
管理サーバ７０の切り替え処理部７２は、外的な状況変化などによって実行主体を切り替える必要が生じたか否かを判断する。外的な状況とは上述の通り、ゲームの参加人数や参加者の位置などである。切り替え処理部７２はそのため、各処理実行サーバ３０の処理の負荷や通信帯域、接続しているクライアント端末１０の数、各クライアント端末１０との距離などのパラメータを監視する。そしてそれらのいずれかが実行主体を切り替えるべき条件を満たしたとき、実行主体の切り替えが必要と判定する。
【００３１】
割り当て部７４は、クライアント端末１０から処理開始要求がなされたとき、所定の基準によって実行主体とする処理実行サーバ３０を選択する。例えばクライアント端末１０の位置、処理実行サーバ３０のリソースの空き状況、クライアント端末１０と処理実行サーバ３０間の通信帯域の空き状況、処理実行サーバ３０が提供できる機能などの少なくともいずれかを選択基準とする。また切り替え処理部７２が、実行主体を新たな処理実行サーバ３０へ切り替える必要があると判定した場合、あるいはクライアント端末１０または処理実行サーバ３０から切り替え要求があった場合も、同様の選択基準で切り替え後の処理実行サーバ３０を選択する。
【００３２】
通信部７６は、クライアント端末１０から処理開始要求に係る信号を受信する。また、割り当て部７４が選択した処理実行サーバ３０ａへ、処理の開始や引き継ぎを要求する信号を送信する。さらに実行主体を切り替える場合は、元の実行主体であるクライアント端末１０や処理実行サーバ３０ｂに、切り替え先の処理実行サーバ３０ａの識別情報、例えばＩＰアドレスやＵＲＬ(Uniform Resource Locator）などの情報を送信する。これにより、切り替え元のクライアント端末１０や処理実行サーバ３０ｂが引き継ぎ情報を送信できるようにする。
【００３３】
処理実行サーバ３０ａの情報処理部３４は、管理サーバ７０からの要求に従いゲームを起動させ、ゲームに対するユーザ操作を示す入力情報を処理要求元のクライアント端末１０から取得して適宜ゲームを進捗させる。そしてゲームの画像や音声のデータを生成する。切り替え処理部３６は、クライアント端末１０や他の処理実行サーバ３０ｂへ実行主体を切り替える際、情報処理部３４に、それまで行っていた処理に基づき引き継ぎ情報を生成させる。また、実行主体が他の処理実行サーバ３０ｂやクライアント端末１０から自サーバへ切り替えられたとき、送信された引き継ぎ情報を取得し、情報処理部３４へ供給する。
【００３４】
通信部３２は、処理要求元のクライアント端末１０から、ゲームに対するユーザ操作を示す入力情報を逐次受信し、情報処理部３４に供給するとともに、処理の結果生成された出力データを適宜圧縮符号化するなどしてクライアント端末１０へ送信する。通信部３２はまた、実行主体を切り替える際、元の実行主体であるクライアント端末１０や他の処理実行サーバ３０ｂから送信された引き継ぎ情報を受信したり、自装置内で生成した引き継ぎ情報を新たな実行主体へ送信したりする。さらに管理サーバ７０から、処理開始要求や、新たな実行主体である処理実行サーバ３０ｂの識別情報を受信する。
【００３５】
クライアント端末１０を一般的なコンピュータとした場合、情報処理部１４をゲームのソフトウェアの処理機構、その他の機能ブロックをプラットフォームとして実現できる。処理実行サーバ３０ａも同様に、情報処理部３４をゲームのソフトウェアの処理機構、その他の機能ブロックをプラットフォームとして実現できる。これまで述べたようにゲームの途中で実行主体を切り替えるようにすると、場合によってはゲーム画像が唐突に途切れたりゲームの重要な局面で待機時間が発生したりして、却ってユーザにとって好ましくない状況が発生し得る。
【００３６】
そこで本実施の形態では、ゲームの進捗を担当するアプリケーションソフトウェアの処理機構と、実行主体の切り替えを担当するプラットフォームとの連携によって切り替えのタイミングを調整することにより、上記のような不都合の発生を抑える。具体的には、ゲームの進行上、実行主体の切り替え処理が挿入されても問題ないタイミングが到来した時点で、実行主体における情報処理部１４または３４が、切り替え処理部１８または３６にその旨を通知する。そしてそのタイミングでのみ切り替え処理部１８または３６が切り替え処理を実行する。情報処理部１４または３４がゲーム等のアプリケーションプログラムを実行しているとすると、この処理は実際には、アプリケーションレイヤからシステムＡＰＩを介してＯＳレイヤに対し切り替えが可能なタイミングを通知することで実現される。以後の説明においても、情報処理部１４および３４と、切り替え処理部１８および３６はそれぞれ、アプリケーションレイヤとＯＳレイヤに置き換えることができる。
【００３７】
例えばロールプレイングゲームにおいて舞台や場面が切り替わったときや、データのセーブやロード、機能選択などで元から待機時間を要するときなどが当該タイミングと考えられる。なお切り替えが必要になった段階で、実行主体における切り替え処理部１８または３６から情報処理部１４または３４へ、切り替え処理の実行可否を問い合わせるようにしてもよい。また管理サーバ７０の切り替え処理部７２が、実行主体の切り替えが必要と判断した際、その時点での実行主体のクライアント端末１０または処理実行サーバ３０ａに問いあわせを行い、さらに当該実行主体の切り替え処理部１８または３６が、情報処理部１４または３４に問いあわせを行うなどでもよい。
【００３８】
また上述のように切り替え処理期間において、クライアント端末１０の出力部１６が切り替え通知を出力するようにすると、切り替え処理による待機時間が発生してもユーザから理解が得られやすい。切り替え通知は、その旨を文字情報や音声として出力してもよいし、所定の図形を表示させてもよい。砂時計のマークや、処理完了までの残り時間を表すゲージなど、バックグラウンドで処理中であることを表す一般的な図柄でもよい。このように切り替え通知を画像として出力する場合、元の出力データであるゲーム画像上に重ねて表示してもよいし、所定の背景上に当該画像のみを表示してもよい。
【００３９】
次にこれまで述べた構成によって実現できる情報処理システムの動作について説明する。図３は情報処理システム１において実行主体を切り替える処理手順例を示すシーケンス図である。この例は初期状態として、実行主体が処理実行サーバ３０ａであり、クライアント端末１０が当該処理実行サーバ３０ａから受信した出力データを出力しているとする（Ｓ８）。そして管理サーバ７０が上記外的状況変化などにより切り替えを決定し、別の処理実行サーバ３０ｂへ実行主体を切り替える処理手順を示している。
【００４０】
なおＳ８のデータ出力期間においては、クライアント端末１０におけるユーザ操作に係る情報が随時処理実行サーバ３０ａに送信され、処理実行サーバ３０ａからはそれに応じた出力データがストリーム転送などの形式で送信されているものとする。以後の説明におけるデータ出力期間も同様である。
【００４１】
まず切り替え前の実行主体である処理実行サーバ３０ａの情報処理部３４は、ゲームの進行上、切り替え処理が望ましくない期間においては、切り替え不許可の信号を切り替え処理部３６に送信する（Ｓ１０）。この期間に、管理サーバ７０が実行主体の切り替え可否を処理実行サーバ３０ａに確認すると（Ｓ１２）、処理実行サーバ３０ａからは切り替えを不許可とする返信がなされるため（Ｓ１４）、切り替え処理は実行されない。
【００４２】
処理実行サーバ３０ａにおいて切り替え処理が可能なタイミングが到来したら、情報処理部３４は切り替え許可の信号を切り替え処理部３６に送信する（Ｓ１６）。なおＳ１０やＳ１６の処理は、情報処理部３４が所定の時間間隔で実施してよい。あるいは情報処理部３４は、切り替え処理部３６が記憶するフラグを、不許可から許可、許可から不許可に転じるタイミングで更新するようにしてもよい。切り替えが許可されている期間に、管理サーバ７０が、実行主体の切り替え可否を処理実行サーバ３０ａに確認すると（Ｓ１８）、処理実行サーバ３０ａからは切り替えを許可する返信がなされるため（Ｓ２０）、管理サーバ７０によって切り替え処理が開始される。
【００４３】
まず管理サーバ７０は、実行主体である処理実行サーバ３０ａに対し、切り替え要求信号を発行する（Ｓ２２）。この切り替え要求信号には、割り当て部７４が新たな実行主体として選択した処理実行サーバ３０ｂの識別情報を含ませる。切り替え要求信号を受信した処理実行サーバ３０ａの切り替え処理部３６は、情報処理部３４に引き継ぎ情報を生成させる（Ｓ２４）。情報処理部３４は例えば、実行中のゲームシーンの全情報をシリアライズするなどして引き継ぎ情報を生成し、切り替え処理部３６に供給する（Ｓ２６）。この場合の引き継ぎ情報には、その時点での得点やキャラクタの位置などのほか、そこに至るまでの経過や経路など、ゲームシーンにおける過去の進捗状況に係る情報も含める。
【００４４】
ただしゲームの内容や実施形態によって、処理を引き継ぐのに必要な情報は様々考えられるため、引き継ぎ情報の内容は適宜設定しておく。情報処理部３４がエミュレータによりゲームを実行している場合は、エミュレータが有するスナップショットの機能を利用し、スナップショットデータを引き継ぎ情報としてもよい。そのほか、ゲームのプログラムにおいて、ゲームの引き継ぎに必要な情報を生成する処理、当該情報を用いてゲームを再開する処理、を記述しておき、実行主体によらずゲーム内で共通の手続きにより処理を引き継ぐようにしてもよい。
【００４５】
また処理実行サーバ３０ａは、切り替え処理が開始された旨をクライアント端末１０に通知する（Ｓ２８）。クライアント端末１０ではこの通知を受け、出力部１６において切り替え通知の出力を開始する（Ｓ３０）。一方、処理実行サーバ３０ａは、切り替え後の処理実行サーバ３０ｂに対し引き継ぎ情報を送信する（Ｓ３２）。処理実行サーバ３０ｂの識別情報は、Ｓ２２において管理サーバ７０から送信されている。引き継ぎ情報を受信した処理実行サーバ３０ｂの切り替え処理部３６は、それを情報処理部３４に供給することによりゲームの再開を要求する（Ｓ３４）。処理実行サーバ３０ｂの情報処理部３４は、引き継ぎ情報を用いてゲームを再開する（Ｓ３６）。それにより作成された出力データは通信部３２からクライアント端末１０へ送信される（Ｓ３８）。
【００４６】
クライアント端末１０は、新たな実行主体である処理実行サーバ３０ｂからの出力データを受信すると、それまで出力していた切り替え通知から、当該出力データへ出力を切り替える（Ｓ４０）。これにより、クライアント端末１０では再開後のゲーム画像や音声が出力されることになる。一方、元の実行主体であった処理実行サーバ３０ａは、Ｓ３２で引き継ぎ情報を送信した時点で、少なくとも同図のクライアント端末１０が要求するゲームの実行主体ではなくなる。したがってその旨を管理サーバ７０に通知することにより、管理サーバ７０側では処理実行サーバ３０ａを割り当てから解放するように処理実行サーバの管理情報を更新する（Ｓ４２）。当該管理情報は、割り当て部７４が次に処理を割り当てる際などに参照される。
【００４７】
図４は情報処理システム１において実行主体を切り替える処理手順の別の例を示すシーケンス図である。この例はユーザがネットワークを介してゲームのソフトウェアを購入し、そのダウンロードの期間、処理実行サーバ３０ａで先行してゲームを実行する場合の処理手順である。ここでソフトウェアの購入受け付けやダウンロード処理は、処理実行サーバ３０ａと異なる処理実行サーバ３０ｃが担うものとする。
【００４８】
まずユーザが、クライアント端末１０にゲーム選択画面を表示させるなどして購入するゲームの選択操作を行うことにより、処理実行サーバ３０ｃからゲームソフトウェアのダウンロードが開始される（Ｓ５０、Ｓ５２）。この処理には、ネットワークを介したソフトウェア購入に係る一般的な技術を適用できる。ダウンロードが完了するまでの期間、当該ゲームを処理実行サーバ３０ａで先行して実行することにより、ユーザがより早く実体験できるようにする。そのためクライアント端末１０は、当該ゲームの処理開始要求信号を管理サーバ７０に発行する（Ｓ５４）。
【００４９】
すると管理サーバ７０の割り当て部７４は、上述したような基準により処理を割り当てる処理実行サーバ３０ａを選択し、当該処理実行サーバ３０ａに、ゲームやクライアント端末１０の識別情報などとともに処理要求を発行する（Ｓ５６）。すると処理実行サーバ３０ａの切り替え処理部３６は、情報処理部３４に対し当該ゲームの開始を要求する（Ｓ５８）。これに応じて情報処理部３４は、ゲームを起動し処理を開始する（Ｓ６０）。それにより作成された出力データは通信部３２からクライアント端末１０へ送信される（Ｓ６２）。
【００５０】
出力データを受信したクライアント端末１０が、それを復号するなどして出力部１６から出力することにより、ゲーム画像や音声が出力されることになる。（Ｓ６４）。この期間において、Ｓ５０で購入したソフトウェアのダウンロードが完了すると、クライアント端末１０の切り替え処理部１８はそれを検知し、その時点での実行主体である処理実行サーバ３０ａへ、自らのクライアント端末１０へ実行主体を切り替えるように要求信号を発行する（Ｓ６６）。すると処理実行サーバ３０ａの切り替え処理部３６は、情報処理部３４に引き継ぎ情報を生成させる（Ｓ６８）。この際、切り替え処理部３６は上述のように、ゲームの進行上、切り替え処理が可能なタイミングか否かを情報処理部３４に問いあわせることにより、切り替え処理開始のタイミングを調整するが、ここでは図示を省略している。
【００５１】
処理実行サーバ３０ａはこれと同時に、切り替え処理が開始された旨をクライアント端末１０に対し通知する（Ｓ７０）。この通知を受けクライアント端末１０では、出力部１６において切り替え通知の出力を開始する（Ｓ７２）。一方、処理実行サーバ３０ａの情報処理部３４は引き継ぎ情報を生成し、切り替え処理部３６に供給する（Ｓ７４）。当該引き継ぎ情報は、処理実行サーバ３０ａからクライアント端末１０へ送信される（Ｓ７６）。クライアント端末１０はダウンロードが完了したソフトウェアを起動させ、送信された引き継ぎ情報を用いてゲームを再開する（Ｓ７８）。詳細には、クライアント端末１０の切り替え処理部１８が情報処理部１４に引き継ぎ情報を供給してゲーム再開の要求をすることにより、情報処理部１４でゲームが再開される。
【００５２】
情報処理部１４が再開したゲームの出力データを作成したら、それまで出力していた切り替え通知から、当該出力データへ出力を切り替える（Ｓ８０）。これにより、クライアント端末１０では自装置内で処理したゲームの画像や音声が出力されることになる。一方、元の実行主体であった処理実行サーバ３０ａが、実行主体でなくなった時点で管理サーバ７０にその旨を通知することにより、管理サーバ７０は割り当てを解放する（Ｓ８２）。
【００５３】
なお同図の例はゲーム購入と同時に、処理実行サーバ３０ａによってゲームが開始されていたが、まず処理実行サーバ３０ａでゲームを実行し、その途中でユーザがゲームの購入を決めた場合でも、その後の処理は同様となる。この場合、購入前に処理実行サーバ３０ａが実行するゲームはトライアル版など内容が制限されたものでもよい。
【００５４】
図５は情報処理システム１において実行主体を切り替える処理手順のさらに別の例を示すシーケンス図である。この例は初期状態として、実行主体がクライアント端末１０であり、クライアント端末１０内で処理されたゲームの結果が出力部１６から出力されているとする（Ｓ９０）。そして当該ゲーム内で、クライアント端末１０では実行できない機能をユーザが選択した場合に、実行主体を処理実行サーバ３０ａへ切り替える処理手順を示している。このような機能として、例えばあるゲーム内でさらに副次的なゲームを行ったり、元のゲーム世界と異なる世界へ一時的に移動したりする場合が考えられる。他のユーザとのコミュニケーションが図れる機能などでもよい。
【００５５】
ユーザが当該機能を選択すると（Ｓ９２）、クライアント端末１０の切り替え処理部１８は、管理サーバ７０に対し、当該機能を実行可能な処理実行サーバ３０について問いあわせを行う（Ｓ９４）。それに応じて管理サーバ７０の割り当て部７４は、実行主体となり得る処理実行サーバ３０ａを選択し処理を割り当てる（Ｓ９６）。そして当該処理実行サーバ３０ａのＩＰアドレスやＵＲＬなどの識別情報をクライアント端末１０に返信する（Ｓ９８）。なおリソース不足などに起因して適当な割り当て先が見つからない場合は、クライアント端末１０へその旨を通知してもよい。この場合、クライアント端末１０では、Ｓ９２で選択された機能の実行が困難である旨をユーザに通知し、他の機能を選択させたり待機させたりしてもよい。
【００５６】
実行主体となるべき処理実行サーバ３０ａの識別情報を受信したら、クライアント端末１０の出力部１６は、切り替え通知の出力を開始する（Ｓ１００）。さらに切り替え処理部１８は、情報処理部１４に引き継ぎ情報を生成させる（Ｓ１０２）。この場合の引き継ぎ情報は、実行中のシーンに含まれる全ての情報でなくてよく、例えばその時点での得点や状態など、選択された機能に用いる情報のみでよい。また同図に示すように、ユーザが機能を選択することをきっかけとして実行主体を切り替えるような場合は、ゲーム進行上の区切りであることが明らかなため、切り替え処理の開始タイミングを調整しなくてもよい。
【００５７】
クライアント端末１０は、情報処理部１４が生成した引き継ぎ情報を、実行主体として割り当てられた処理実行サーバ３０ａに送信する（Ｓ１０４）。引き継ぎ情報を受信した処理実行サーバ３０ａの切り替え処理部３６は、それを情報処理部３４に供給することにより処理の開始を要求する（Ｓ１０６）。情報処理部３４は当該引き継ぎ情報を用いて、要求された機能を処理する（Ｓ１０８）。それにより作成された出力データは通信部３２からクライアント端末１０へ送信される（Ｓ１１０）。
【００５８】
クライアント端末１０は、処理実行サーバ３０ａからの出力データを受信すると、それまで出力していた切り替え通知から、当該出力データへ出力を切り替える（Ｓ１１２）。これによりクライアント端末１０では、ユーザが選択した機能に対応する画像や音声が出力されることになる。ユーザは当該機能に対し適宜入力を行い、処理実行サーバ３０ａがそれに応じた出力データを作成、送信する。そして当該機能がユーザ操作などにより終了すると（Ｓ１１４）、クライアント端末１０は、実行主体をクライアント端末１０自身に戻すための切り替え要求信号を処理実行サーバ３０ａへ発行する（Ｓ１１６）。同時にクライアント端末１０の出力部１６は、切り替え通知の出力を開始する（Ｓ１１８）。
【００５９】
一方、切り替え要求を受けた処理実行サーバ３０ａの切り替え処理部３６は、情報処理部３４に引き継ぎ情報を生成させる（Ｓ１２０）。この場合も、ゲーム進行上の区切りであることが明らかなため、切り替え処理の開始タイミングを調整しなくてもよい。また引き継ぎ情報は、機能終了に応じて元のゲームを再開させるのに必要な情報のみでよい。例えば、実施した機能が副次的なゲームであった場合、その勝敗や対戦成績など、元のゲームに反映させるべき情報のみでよい。情報処理部３４は引き継ぎ情報を生成し、切り替え処理部３６に供給する（Ｓ１２２）。当該引き継ぎ情報は処理実行サーバ３０ａからクライアント端末１０へ送信される（Ｓ１２４）。
【００６０】
クライアント端末１０は、送信された引き継ぎ情報を用いて元のゲームを再開する（Ｓ１２６）。詳細には、クライアント端末１０の切り替え処理部１８が情報処理部１４に引き継ぎ情報を供給してゲーム再開の要求をすることにより、情報処理部１４でゲームが再開される。情報処理部１４が再開したゲームの出力データを作成したら、それまで出力していた切り替え通知から、当該出力データへ出力を切り替える（Ｓ１２８）。これにより、クライアント端末１０では再開後のゲーム画像や音声が出力されることになる。
【００６１】
一方、処理実行サーバ３０ａが、実行主体でなくなった時点で管理サーバ７０にその旨を通知することにより、管理サーバ７０がその割り当てを解放する（Ｓ１３０）。このような処理手順により、機能の選択や終了というユーザ操作をきっかけとして実行主体を切り替えることができる。なお機能の選択のほか、ユーザがそれまでのゲームデータをセーブしたことを契機として実行主体を切り替える場合も同様の処理手順となる。この場合、引き継ぎ情報はセーブされたゲームデータとしてもよい。また、図５のシーケンスにおいて機能が選択された時点でユーザにデータのセーブを行わせ、それを引き継ぎ情報としてもよい。
【００６２】
ここまで、情報処理システム１が行える実行主体切り替え処理手順の例をいくつか示したが、類似の処理手順で様々な態様が実現できる。実行主体を切り替えるきっかけとしては上述のようにユーザ操作によるものと、外的な状況変化によるものが考えられる。切り替え処理の要求元は、クライアント端末１０、管理サーバ７０、処理実行サーバ３０が考えられる。また切り替え先として、クライアント端末１０から処理実行サーバ３０への切り替え、処理実行サーバ３０からクライアント端末１０への切り替え、処理実行サーバ３０間での切り替えが考えられる。場合によっては、他のクライアント端末１０を処理実行サーバ３０と同様に利用することにより、クライアント端末１０間で実行主体を切り替えることも考えられる。
【００６３】
切り替え処理においては、図示したように管理サーバ７０が処理実行サーバ３０の割り当てのみを行う場合のほか、管理サーバ７０が切り替え要求や引き継ぎ情報など切り替え処理に必要な情報を媒介する場合が考えられる。これらの要素を適宜組み合わせることにより多様な処理手順を実現できる。したがって、各装置の処理能力、通信帯域など与えられた環境や、ゲームの内容や機能などに応じて最適な組み合わせを選択すればよい。
【００６４】
なお図３から図５では、実行主体切り替え処理の開始から終了までの全期間において、クライアント端末１０で切り替え通知を出力していたが、切り替え処理が開始しても、切り替え前の実行主体が並行して処理を継続させ、出力データを生成し続けてもよい。この場合、切り替え通知は、切り替え後の実行主体が生成した出力データの出力を開始する直前のごく短時間のみ出力してもよいし、場合によっては出力しなくてもよい。
【００６５】
また切り替え通知のデータはクライアント端末１０内部で保持、描画する場合のほか、切り替え前の実行主体であった処理実行サーバ３０が引き継ぎ情報の生成期間に切り替え通知のデータを継続して送信することによってクライアント端末１０で表示できるようにしてもよい。あるいは切り替え後の実行主体となるべき処理実行サーバ３０が、本来の出力データの送信前に切り替え通知のデータを送信することによってクライアント端末１０に表示させてもよい。後者の場合、切り替え後の処理実行サーバ３０として割り当てられた時点で、当該処理実行サーバ３０は、管理サーバ７０または切り替え前の実行主体からその旨の通知を受け、引き継ぎ情報の取得を待たずに切り替え通知のデータ送信を開始する。あるいは切り替え通知のデータ送信元自体を好適なタイミングで切り替えてもよい。
【００６６】
いずれにしろ、切り替えのタイミングを適切に選ぶことにより、切り替え前後で画像や音声が厳密に連続していなくてもゲームの進行や見栄えに影響しないようにすることができる。例えばユーザ操作と関係なく動画が進捗するムービーシーンの出力期間に切り替え処理を行ってもよい。この場合、切り替え前の実行主体である処理実行サーバ３０によって動画のストリーム転送がなされている間に切り替え処理を完了させ、ムービーシーン終了のタイミングで切り替え後の実行主体が生成した出力データを出力するようにすると、切り替え処理の実施そのものを隠蔽できる。
【００６７】
また外的な状況変化によりユーザの意思と関わりなく実行主体を切り替える場合に、切り替えが短期間に集中すると、ユーザのゲームプレイを阻害することがあり得る。そこで管理サーバ７０は、クライアント端末１０ごとに、その出力データを生成する実行主体の切り替え履歴を記録していき、直前の切り替え処理から所定時間内に次の切り替えがなされないように管理してもよい。この場合、必要に応じて別のクライアント端末１０の実行主体を切り替え対象として選択していくことにより、切り替え処理の対象となるクライアント端末１０を分散させることができる。
【００６８】
以上述べた本実施の形態によれば、ユーザが要求するゲームなどの情報処理を、ユーザが操作するクライアント端末以外に、ネットワークを介して接続した処理実行サーバでも実行できるようにする。そして、機能選択などユーザ操作による状況変化や、ゲームの参加人数、位置関係、リソースの空き具合など外的な状況変化に応じて、情報処理の途中で実行主体を切り替える。これにより、ユーザにとって常時好適な環境が提供できるとともに、実行可能な処理を多様化できる。
【００６９】
切り替えは、情報処理のためのソフトウェアを実施する機構との連携により、ゲームシーンの区切れなど情報処理の進行状況に基づく好適なタイミングで行う。これにより、ゲームプレイが阻害されたり唐突に待機時間が発生するなど、実行主体を処理の途中で切り替えることによる弊害をできるだけ回避することができる。結果として、ゲームの進行、環境の変化、ユーザのニーズのいずれにも対応して臨機応変に形態を変化させる情報処理システムを実現することができる。
【００７０】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７１】
例えば本実施の形態の情報処理システムは、処理実行サーバ間での実行主体の切り替えと、クライアント端末／処理実行サーバ間での実行主体の切り替えの双方を実現できる構成を有していたが、クライアント端末を簡素な構成とし、実行主体を処理実行サーバ間に限ってもよい。この場合、クライアント端末はユーザの操作を受け付け処理実行サーバへ送信し、返信された出力データを出力するのみの構成でよい。あるいは、クライアント端末と処理実行サーバを１対１に対応させ、実行主体の切り替えをクライアント端末／処理実行サーバ間に限定する構成としてもよい。
【符号の説明】
【００７２】
１  情報処理システム、  １０  クライアント端末、  １２  入力部、  １４  情報処理部、  １６  出力部、  １８  切り替え処理部、  ２０  通信部、  ３０  処理実行サーバ、  ３２  通信部、  ３４  情報処理部、  ３６  切り替え処理部、  ７０  管理サーバ、  ７４  割り当て部、  ７６  通信部。
【図１】
2014241119.tif 000003
【図２】
2014241119.tif 000004
【図３】
2014241119.tif 000005
【図４】
2014241119.tif 000006
【図５】
2014241119.tif 000007