(57)【要約】【課題】ハードウェアに依存するアプリケーションも移動できるＶＭ移動において高速にアプリケーションを転送することが可能な情報処理装置を提供する。【解決手段】アプリケーションの起動指示を生成する指示生成部と、前記指示生成部での前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理部と、を備える、情報処理装置が提供される。係る情報処理装置は、ハードウェアに依存するアプリケーションも移動できるＶＭ移動において高速にアプリケーションを転送することが可能となる。【選択図】図１
2014106767.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの起動指示を生成する指示生成部と、
前記指示生成部での前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理部と、
を備える、情報処理装置。
【請求項２】
前記仮想マシン管理部は、確保した前記計算機資源を用いて仮想マシンを起動させた後に起動指示されたアプリケーションを該仮想マシンで起動させ、
前記仮想マシン管理部が前記仮想マシンで起動させた前記アプリケーションで使用されるデータを該アプリケーションへ提供するデータ管理部をさらに備える、請求項１に記載の情報処理装置。
【請求項３】
前記仮想マシンへの計算機資源の割当量を変更する計算機資源割当量制御部を備える、請求項１に記載の情報処理装置。
【請求項４】
前記計算機資源割当量制御部は、前記仮想マシン管理部が前記仮想マシンを起動できる計算機資源を確保できない場合に他の前記仮想マシンへの計算機資源の割当量を変更する、請求項３に記載の情報処理装置。
【請求項５】
前記計算機資源割当量制御部は、起動された前記仮想マシンでの計算機資源の使用状況に基づいて該仮想マシンへの計算機資源の割当量を変更する、請求項３に記載の情報処理装置。
【請求項６】
前記仮想マシン管理部は、前記仮想マシンで起動されたアプリケーションの実行が終了すると、該アプリケーションで使用されたデータを回収する、請求項２に記載の情報処理装置。
【請求項７】
前記データ管理部は、前記仮想マシン管理部が回収した前記データを取得する、請求項６に記載の情報処理装置。
【請求項８】
前記仮想マシン管理部は、前記仮想マシンで起動されたアプリケーションの実行が終了すると、該仮想マシンを停止させる、請求項２に記載の情報処理装置。
【請求項９】
前記仮想マシン管理部は、前記仮想マシンで起動されたアプリケーションの実行が終了すると、該仮想マシンを他のアプリケーションのために再利用する、請求項２に記載の情報処理装置。
【請求項１０】
前記仮想マシン管理部は、前記仮想マシンで起動されているアプリケーションの対応関係が記述されたリストを管理する対応表管理部を備える、請求項２に記載の情報処理装置。
【請求項１１】
前記仮想マシン管理部は、前記対応表管理部で管理されているリストを用いて前記仮想マシンで起動されているアプリケーション同士の通信を仲介する、請求項１０に記載の情報を。
【請求項１２】
前記仮想マシン管理部は、起動させた前記仮想マシンの計算機資源の使用履歴を管理する使用履歴管理部を備える、請求項２に記載の情報処理装置。
【請求項１３】
前記仮想マシン管理部は、前記使用履歴管理部が管理する前記使用履歴に基づき、仮想マシンを起動させる際に該仮想マシンへの計算機資源割当量を決定する、請求項１２に記載の情報処理装置。
【請求項１４】
前記仮想マシン管理部は、前記使用履歴管理部が管理する前記使用履歴に基づき、起動させている前記仮想マシンへの計算機資源割当量を決定する、請求項１２に記載の情報処理装置。
【請求項１５】
前記仮想マシン管理部は、起動させた前記仮想マシンを他の装置に移動させる、請求項２に記載の情報処理装置。
【請求項１６】
アプリケーションの起動指示を生成する指示生成ステップと、
前記指示生成ステップでの前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理ステップと、
を備える、情報処理方法。
【請求項１７】
コンピュータに、
アプリケーションの起動指示を生成する指示生成ステップと、
前記指示生成ステップでの前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理ステップと、
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータ、スマートフォン、タブレット端末、テレビその他の機器で実行される、特定の機能を有するアプリケーションがある。そのようなアプリケーションは「アプリ（Ａｐｐ）」とも称され、多種多様なアプリが提供されている。
【０００３】
また、ある機器で使用されているアプリケーションを別の機器で引き続き使用できるようにする要求もあり、その要求に応えるための技術も開示されてきている。例えば、スマートフォンでゲームのアプリケーションを実行しており、そのゲームをより大きな画面で遊ぶために、アプリケーションをタブレット端末やテレビ等に移動させるような場合である。このように、アプリケーションを別の機器で引き続き使用できるようにする技術として、プロセス移動及びＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ；仮想マシン）移動がある。
【０００４】
これらの技術は、アプリケーションを他の機器で引き続き使用するために、アプリケーションが使用する計算機資源の内容を転送することで、アプリケーションを移動させるものである。プロセス移動は、アプリケーション単体を高速に他の機器へ移動できるが、ハードウェアに依存するアプリケーションは移動できない。一方、ＶＭ移動はどのようなアプリケーションでも他の機器へ移動することができるが、移動に時間がかかる。これは、１つのＶＭ上で複数のアプリケーションを稼働させるために、移動時に、対象のアプリケーションとは無関係のアプリケーションも含めて移動させることになり、転送量が多くなるからである。
【０００５】
このＶＭ移動の際のアプリケーションの転送を高速化するための技術が開示されている（特許文献１、２。非特許文献１）。非特許文献１は、ＶＭ移動時のメモリ転送量を減らすために、ＶＭが使用していないメモリ領域は転送しないようにする技術を開示している。特許文献１は、移動先に配置されるＶＭが、移動するＶＭと同一のメモリページを持つ場合に、そのメモリページを転送しないようにする技術を開示している。特許文献２は、ＶＭのストレージなどの計算機資源をサーバで一元管理し、ＶＭの移動前後の両方においてその計算機資源を利用し続けることで、ＶＭ移動時の転送量を減らす技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２３１６８４号公報
【特許文献２】特開２００９−１１６８５９号公報
【非特許文献】
【０００７】
【非特許文献１】Ｐｏｓｔ−Ｃｏｐｙ  Ｂａｓｅｄ  Ｌｉｖｅ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｉｇｒａｔｉｏｎ  Ｕｓｉｎｇ  Ａｄａｐｔｉｖｅ  Ｐｒｅ−Ｐａｇｉｎｇ  ａｎｄ  Ｄｙｎａｍｉｃ  Ｓｅｌｆ−Ｂａｌｌｏｏｎｉｎｇ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した技術は、いずれもＶＭ移動を高速化するための技術であるが、いずれの技術においても、上述のＶＭ移動の説明でも触れたように、対象のアプリケーションとは無関係のアプリケーションも含めて移動させることに変わりはない。従って、このような事情を鑑みれば、アプリケーションの移動の高速化という観点ではまだ改善の余地が残されている。
【０００９】
そこで本開示は、ハードウェアに依存するアプリケーションも移動できるＶＭ移動において高速にアプリケーションを転送することが可能な、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供する。
【課題を解決するための手段】
【００１０】
本開示によれば、アプリケーションの起動指示を生成する指示生成部と、前記指示生成部での前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理部と、を備える、情報処理装置が提供される。
【００１１】
また本開示によれば、アプリケーションの起動指示を生成する指示生成ステップと、前記指示生成ステップでの前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理ステップと、を備える、情報処理方法が提供される。
【００１２】
また本開示によれば、コンピュータに、アプリケーションの起動指示を生成する指示生成ステップと、前記指示生成ステップでの前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理ステップと、を実行させる、コンピュータプログラムが提供される。
【発明の効果】
【００１３】
以上説明したように本開示によれば、ハードウェアに依存するアプリケーションも移動できるＶＭ移動において高速にアプリケーションを転送することが可能な、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本開示の一実施形態に係る情報処理装置の機能構成例を示す説明図である。
【図２】本開示の一実施形態に係る情報処理装置１００で稼働されるアプリＶＭ１４０の機能構成例を示す説明図である。
【図３】本開示の一実施形態に係る情報処理装置１００で稼働されるメインＶＭ１３０の機能構成例を示す説明図である。
【図４】本開示の一実施形態に係る情報処理装置１００に含まれる、ＶＭ管理部１２１の機能構成例を示す説明図である。
【図５】本開示の一実施形態に係る情報処理装置１００の動作を示す流れ図である。
【図６】本開示の一実施形態に係る情報処理装置１００の動作を示す説明図である。
【図７】本開示の一実施形態に係る情報処理装置１００の動作を示す流れ図である。
【図８】本開示の一実施形態に係る情報処理装置１００の動作を示す流れ図である。
【図９】本開示の一実施形態に係る情報処理装置１００の変形例を示す説明図である。
【図１０】本開示の一実施形態に係る情報処理装置１００の変形例を示す説明図である。
【図１１】情報処理装置のハードウェア構成例を示す説明図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１６】
なお、説明は以下の順序で行うものとする。
＜１．本開示の一実施形態＞
［情報処理装置の機能構成例］
［アプリＶＭの機能構成例］
［メインＶＭの機能構成例］
［ＶＭ管理部の機能構成例］
［情報処理装置の動作例］
［変形例］
＜２．ハードウェア構成例＞
＜３．まとめ＞
【００１７】
＜１．本開示の一実施形態＞
［情報処理装置の機能構成例］
まず、図面を参照しながら本開示の一実施形態に係る情報処理装置の機能構成例について説明する。図１は、本開示の一実施形態に係る情報処理装置の機能構成例を示す説明図である。以下、図１を用いて本開示の一実施形態に係る情報処理装置の機能構成例について説明する。
【００１８】
図１に示したように、本開示の一実施形態に係る情報処理装置１００−１は、計算機資源部１１０と、仮想化機構部１２０と、を含んで構成される。そして本開示の一実施形態に係る情報処理装置１００−１は、アプリケーションを他の情報処理装置１００−２へ仮想マシン（ＶＭ）移動によって移動させることができる装置である。例えば、情報処理装置１００−１はタブレット型の情報処理装置であり、情報処理装置１００−２はスマートフォン（高機能携帯電話）であるような形態が考えられる。
【００１９】
なお、以下の説明では情報処理装置１００−１、１００−２を特に区別する必要がない場合には、単に情報処理装置１００として説明する。
【００２０】
計算機資源部１１０は、後述の仮想化機構部１２０によって起動される仮想マシン（ＶＭ）によって使用される、メモリ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ネットワークリソース等である。計算機資源部１１０に含まれるメモリには、揮発性メモリ、不揮発性メモリの両方が含まれる。
【００２１】
仮想化機構部１２０は、情報処理装置１００の内部で仮想マシンを立ち上げ、その仮想マシンでアプリケーションを起動させるような制御を実行する。仮想化機構部１２０は、図１に示したように、ＶＭ管理部１２１を含んで構成される。ＶＭ管理部１２１は、仮想マシンの立ち上げや、立ち上げられた仮想マシンで実行されるアプリケーションについての情報を管理する。ＶＭ管理部１２１は、例えばソフトウェアモジュールの形式で提供されていてもよい。ＶＭ管理部１２１は、ユーザによる移動指示が行われた場合など、必要に応じて、立ち上げられた仮想マシンを他の情報処理装置１００−２へ仮想マシン（ＶＭ）移動によって移動させる。
【００２２】
仮想化機構部１２０によって情報処理装置１００の内部で稼働する仮想マシンは２種類存在する。１つは、図１に符号１４０で示した、アプリケーションに１対１で割り当てられる仮想マシンであり、本実施形態では、アプリケーションに１対１で割り当てられる仮想マシンを「アプリＶＭ」と称する。もう１つは、図１に符号１３０で示した、ユーザにアプリケーションを選択させたり、選択されたアプリケーションの実行ファイルや、そのアプリケーションが使用するデータ等をアプリＶＭに転送したりする仮想マシンである。本実施形態では、このような仮想マシンを「メインＶＭ」と称する。
【００２３】
図１には、情報処理装置１００の内部で稼働するメインＶＭ及びアプリＶＭも図示されている。図１では、情報処理装置１００−１の内部ではアプリＶＭが１つ稼働している状態が図示されているが、上述したように、アプリＶＭはアプリケーションに１対１で割り当てられる仮想マシンであり、アプリケーション毎に情報処理装置１００−１の内部に存在する。
【００２４】
アプリＶＭは、ユーザの指示によって情報処理装置１００−１から情報処理装置１００−２に転送されることができる。本開示の一実施形態に係る情報処理装置１００は、アプリケーション毎にアプリＶＭを用意し、アプリＶＭ単位で他の装置へ転送することで、他の装置へて高速にアプリケーションを転送することが可能になる。
【００２５】
以上、図１を用いて本開示の一実施形態に係る情報処理装置の機能構成例について説明した。次に、本開示の一実施形態に係る情報処理装置１００で稼働されるアプリＶＭの機能構成例について説明する。
【００２６】
［アプリＶＭの機能構成例］
図２は、本開示の一実施形態に係る情報処理装置１００で稼働されるアプリＶＭ１４０の機能構成例を示す説明図である。以下、図２を用いて本開示の一実施形態に係る情報処理装置１００で稼働されるアプリＶＭ１４０の機能構成例について説明する。
【００２７】
図２に示したように、本開示の一実施形態に係る情報処理装置１００で稼働されるアプリＶＭ１４０は、ゲストＯＳ１４１と、アプリケーション１４７と、を含んで構成される。ゲストＯＳ１４１は、アプリＶＭ１４０でアプリケーション１４７を起動させるためのオペレーティングシステムである。
【００２８】
図２に示したように、ゲストＯＳ１４１は、アプリケーション起動部１４２と、アプリケーション終了部１４３と、ストレージ管理部１４４と、計算機資源割当量制御部１４５と、アプリケーション間通信部１４６と、を含んで構成される。
【００２９】
アプリケーション起動部１４２は、ユーザが起動を指示したアプリケーションをアプリＶＭ１４０上で起動させる。またアプリケーション終了部１４３は、ユーザによって、アプリＶＭ１４０上で起動されているアプリケーションが終了されると、アプリケーションが終了したことをＶＭ管理部１２１へ通知する。
【００３０】
ストレージ管理部１４４は、アプリケーション起動部１４２が起動させたアプリケーションが使用するデータの、計算機資源部１１０に含まれるストレージ（ＨＤＤや不揮発性メモリ等）への読み書きを管理する。具体的な処理については後述するが、ストレージ管理部１４４は、アプリケーションの起動時に、メインＶＭ１３０から当該アプリケーションの実行ファイルや、当該アプリケーションが使用するデータを受け取り、計算機資源部１１０の内、アプリＶＭ１４０が使用する部分に受け取ったファイルやデータを書き込む、そしてストレージ管理部１４４は、アプリケーションの終了時に、計算機資源部１１０の内、アプリＶＭ１４０が使用する部分に書き込んだファイルやデータを読み出して、読みだしたファイルやデータをメインＶＭ１３０に送る。ストレージ管理部１４４はこのように動作をすることで、あるアプリＶＭで実行されたアプリケーションが、別のアプリＶＭで実行される場合であっても、そのアプリケーションで使用されるデータを引き続き使用することができる。
【００３１】
計算機資源割当量制御部１４５は、アプリＶＭ１４０が使用する計算機資源部１１０の割当量を制御する。図１に示した仮想化機構部１２０のＶＭ管理部１２１は、それぞれのアプリＶＭ１４０上のアプリが、計算機資源をどの程度使用しているのかを検知することが出来ない。従って、ＶＭ管理部１２１は、単独でアプリＶＭ１４０に必要最小限の計算機資源を割り当てることができない。そこで、本実施形態では、ＶＭ管理部１２１は、計算機資源割当量制御部１４５を通じて、アプリＶＭ１４０上で実行されるアプリケーションの計算機資源の使用量を監視する。つまり、計算機資源割当量制御部１４５は、アプリＶＭ１４０上で実行されるアプリケーションの計算機資源の使用量を監視し、使用量の情報をＶＭ管理部１２１に提供する役割を有する。計算機資源割当量制御部１４５は、アプリＶＭ１４０による計算機資源の使用状況に基づいて、アプリＶＭ１４０への計算機資源の割当量を変更する制御を実行しても良い。例えば、計算機資源割当量制御部１４５は、計算機資源の使用量の監視により、起動されたアプリＶＭ１４０で使用されている計算機資源の使用量が所定の閾値を超えたことが分かった場合に、そのアプリＶＭ１４０への計算機資源の割当量を増加する制御を実行しても良い。また例えば、計算機資源割当量制御部１４５は、計算機資源の使用量の監視により、起動されたアプリＶＭ１４０で使用されている計算機資源の使用量が増加する傾向にあることを予測できた場合に、そのアプリＶＭ１４０への計算機資源の割当量を増加する制御を実行しても良い。
【００３２】
アプリケーション間通信部１４６は、同一の情報処理装置１００で稼働している、異なるアプリＶＭ１４０の間での通信を行なう。各アプリケーションを個別のアプリＶＭで実行させると、従来のアプリケーション間通信が行えない。これは、これらのアプリＶＭが同一の情報処理装置１００で稼働していても、それぞれのゲストＯＳからは、お互いが別の装置（物理計算機）上で稼働しているように見えるからである。従って、同一の情報処理装置１００で稼働している異なるアプリＶＭ１４０で実行されているアプリケーションの間での通信をサポートする必要がある。アプリケーション間通信部１４６は、異なるアプリＶＭ１４０で実行されているアプリケーションの間での通信をサポートするためのものである。アプリケーション間通信部１４６は、同一の情報処理装置１００で稼働している異なるアプリＶＭ１４０で実行されているアプリケーションの間での通信を可能にするために、アプリケーション間の通信を中継する役割を果たす。アプリケーション間通信部１４６を用いたアプリケーション間の通信処理の詳細については後に詳述する。
【００３３】
以上、図２を用いて本開示の一実施形態に係る情報処理装置１００で稼働されるアプリＶＭ１４０の機能構成例について説明した。次に、本開示の一実施形態に係る情報処理装置１００で稼働されるメインＶＭ１３０の機能構成例について説明する。
【００３４】
［メインＶＭの機能構成例］
図３は、本開示の一実施形態に係る情報処理装置１００で稼働されるメインＶＭ１３０の機能構成例を示す説明図である。以下、図３を用いて本開示の一実施形態に係る情報処理装置１００で稼働されるメインＶＭ１３０の機能構成例について説明する。
【００３５】
図３に示したように、本開示の一実施形態に係る情報処理装置１００で稼働されるメインＶＭ１３０は、ゲストＯＳ１３１と、一覧表示部１３３と、を含んで構成される。ゲストＯＳ１３１は、メインＶＭ１３０で各種処理を実行するためのオペレーティングシステムである。メインＶＭ１３０が実行する処理として、ここではユーザにアプリケーションを選択させる処理と、選択されたアプリケーションの実行ファイルや、当該アプリケーションが使用するデータを、当該アプリケーションが実行されるアプリＶＭ１４０へ転送する処理を示す。もちろん、メインＶＭ１３０が実行する処理はこれらに限定されるものではないことは言うまでもない。
【００３６】
一覧表示部１３３は、情報処理装置１００がユーザに対して提供可能なアプリケーションの一覧を情報処理装置１００の画面（図示せず）に表示する。一覧表示部１３３は、アプリケーションの一覧を様々な形態で画面に表示することができる。例えば一覧表示部１３３は、リストの形式で画面に表示してもよく、アイコンを並べたような形式で画面に表示してもよい。一覧表示部１３３は、ユーザが選択したアプリケーションの起動指示を生成し、生成した起動指示をＶＭ管理部１２１へ送る。従って一覧表示部１３３は、本開示の指示生成部の一例としての機能を有する。
【００３７】
図３に示したように、メインＶＭ１３０のゲストＯＳ１３１は、メインストレージ管理部１３２を含んで構成される。メインストレージ管理部１３２は、一覧表示部１３３によって情報処理装置１００の画面（図示せず）に表示され、ユーザによって選択されたアプリケーションの実行ファイルや、当該アプリケーションが使用するデータを計算機資源部１１０から読み出し、当該アプリケーションが実行されるアプリＶＭ１４０へ転送する処理を実行する。またメインストレージ管理部１３２は、アプリＶＭ１４０の終了時に、アプリＶＭ１４０に転送されていたデータを回収する処理を実行する。
【００３８】
以上、図３を用いて本開示の一実施形態に係る情報処理装置１００で稼働されるメインＶＭ１３０の機能構成例について説明した。次に、本開示の一実施形態に係る情報処理装置１００に含まれる、ＶＭ管理部１２１の機能構成例について説明する。
【００３９】
［ＶＭ管理部の機能構成例］
図４は、本開示の一実施形態に係る情報処理装置１００に含まれる、ＶＭ管理部１２１の機能構成例を示す説明図である。以下、図４を用いて本開示の一実施形態に係る情報処理装置１００に含まれる、ＶＭ管理部１２１の機能構成例について説明する。
【００４０】
図４に示したように、ＶＭ管理部１２１は、使用履歴管理部１２２と、対応表管理部１２３と、を含んで構成される。
【００４１】
使用履歴管理部１２２は、アプリＶＭ１４０で実行されるアプリケーションが使用している計算機資源部１１０の計算機資源の使用履歴を管理する。使用履歴管理部１２２で管理されている計算機資源の使用履歴は、アプリＶＭ１４０の起動時に、またはアプリＶＭ１４０の起動中にそのアプリＶＭ１４０に割り当てる計算機資源の量の決定に用いられる。
【００４２】
対応表管理部１２３は、アプリＶＭとアプリケーションとの対応表を管理する。つまり対応表管理部１２３は、どのアプリＶＭでどのアプリケーションが実行されているかを示す対応表を管理する。対応表管理部１２３が管理する対応表は、アプリケーション間通信部１４６によるアプリケーション間の通信処理に用いられる。
【００４３】
以上、図４を用いて本開示の一実施形態に係る情報処理装置１００に含まれる、ＶＭ管理部１２１の機能構成例について説明した。次に、本開示の一実施形態に係る情報処理装置１００の動作例について説明する。
【００４４】
［情報処理装置の動作例］
以下では、本開示の一実施形態に係る情報処理装置１００の動作例として、アプリケーションの起動処理、アプリケーションの終了処理、アプリＶＭへの計算機資源割当量の制御処理、アプリケーション間の通信処理を説明する。
【００４５】
（１）アプリケーションの起動処理
図５は、本開示の一実施形態に係る情報処理装置１００の動作を示す流れ図である。図５に示したのは、情報処理装置１００の内部でアプリＶＭ１４０を確保し、そのアプリＶＭ１４０でアプリケーションを起動する際の情報処理装置１００の動作である。以下、図５を用いて本開示の一実施形態に係る情報処理装置１００の動作について説明する。
【００４６】
メインＶＭ１３０の一覧表示部１３３によって情報処理装置１００の画面に表示されたアプリケーションの中から、起動されるアプリケーションがユーザによって選択される（ステップＳ１０１）と、一覧表示部１３３は、選択されたアプリケーションをＶＭ管理部１２１に通知する。
【００４７】
ＶＭ管理部１２１は、選択されたアプリケーションの通知を一覧表示部１３３から受けると、使用履歴管理部１２２で管理されている計算機資源部１１０の計算機資源の使用履歴に基づいて、選択されたアプリケーションのためのアプリＶＭ１４０への計算機資源の割当量を決定し、そのアプリＶＭ１４０が起動できるかどうかを判断する（ステップＳ１０２）。ＶＭ管理部１２１は、アプリＶＭ１４０が起動できるかどうかを、選択されたアプリケーションが使用する計算機資源部１１０の計算機資源を確保できるかどうかで判断する。
【００４８】
上記ステップＳ１０２の判断の結果、ステップＳ１０１で選択されたアプリケーションのためのアプリＶＭ１４０が起動できる場合は、ＶＭ管理部１２１は、選択されたアプリケーションのためのアプリＶＭ１４０を、仮想マシンのスナップショット技術によって起動する（ステップＳ１０３）。なおＶＭ管理部１２１は、仮想マシンのスナップショット技術を用いる他に、一時停止状態にある仮想マシンがあれば、その仮想マシンを復帰させても良い。ここで一時停止状態にある仮想マシンとは、メモリは展開されているものの実行されていない状態にある仮想マシンを言う。
【００４９】
一方、上記ステップＳ１０２の判断の結果、既に起動されているアプリＶＭ１４０によって計算機資源が使用されている等の理由で、ステップＳ１０１で選択されたアプリケーションのためのアプリＶＭ１４０が起動できない場合は、ＶＭ管理部１２１は、既に起動されているアプリＶＭ１４０への計算機資源部１１０の計算機資源の割当量を変更する（ステップＳ１０４）。そしてステップＳ１０４で既に起動されているアプリＶＭ１４０への計算機資源部１１０の計算機資源の割当量を変更した結果、ステップＳ１０１で選択されたアプリケーションのためのアプリＶＭ１４０が起動できるようになると、ＶＭ管理部１２１は、選択されたアプリケーションのためのアプリＶＭ１４０を、仮想マシンのスナップショット技術によって起動する（ステップＳ１０３）。
【００５０】
なお、ステップＳ１０４で既に起動されているアプリＶＭ１４０への計算機資源部１１０の計算機資源の割当量を変更しても、なおもステップＳ１０１で選択されたアプリケーションのためのアプリＶＭ１４０が起動できない場合は、ＶＭ管理部１２１は、既に起動されているアプリＶＭ１４０によって実行されているアプリケーションを終了させるようなメッセージを、情報処理装置１００の画面に表示させるようにしても良い。
【００５１】
上記ステップＳ１０３によって、アプリＶＭ１４０を起動すると、続いてＶＭ管理部１２１は、メインＶＭ１３０のメインストレージ管理部１３２と、アプリＶＭ１４０のストレージ管理部１４４とを連携させて、ステップＳ１０１で選択されたアプリケーションの実行ファイル及び当該アプリケーションが使用するデータをメインＶＭ１３０からアプリＶＭ１４０へ転送する（ステップＳ１０５）。
【００５２】
上記ステップＳ１０５によって、ステップＳ１０１で選択されたアプリケーションの実行ファイル及び当該アプリケーションが使用するデータがメインＶＭ１３０からアプリＶＭ１４０へ転送されると、ＶＭ管理部１２１は、ステップＳ１０１で選択されたアプリケーションを、ステップＳ１０３によって起動されるアプリＶＭ１４０のアプリケーション起動部１４２へ通知する。ＶＭ管理部１２１から、ステップＳ１０１で選択されたアプリケーションの通知を受けたアプリケーション起動部１４２は、上記ステップＳ１０５によって転送された実行ファイルを用いて、ステップＳ１０１で選択されたアプリケーションを起動する（ステップＳ１０６）。
【００５３】
上記ステップＳ１０６で、ステップＳ１０１で選択されたアプリケーションをアプリケーション起動部１４２が起動すると、ＶＭ管理部１２１は、対応表管理部１２３が管理する、アプリケーションとアプリＶＭとの対応表を更新する（ステップＳ１０７）。
【００５４】
本開示の一実施形態に係る情報処理装置１００は、図５に示したような動作を実行することで、アプリケーション単位でアプリＶＭ１４０を稼働させることができる。そして本開示の一実施形態に係る情報処理装置１００（例えば図１に示した情報処理装置１００−１）は、アプリケーション１４７を実行しているアプリＶＭ１４０を他の情報処理装置（例えば図１に示した情報処理装置１００−２）に転送することで、ハードウェアに依存するアプリケーションも移動できるＶＭ移動において高速にアプリケーションを転送することが可能になる。
【００５５】
以上、図５を用いて情報処理装置１００の内部でアプリＶＭ１４０を確保し、そのアプリＶＭ１４０でアプリケーションを起動する際の情報処理装置１００の動作について説明した。
【００５６】
（２）アプリケーションの終了処理
図６は、本開示の一実施形態に係る情報処理装置１００の動作を示す説明図である。図６に示したのは、アプリＶＭ１４０で実行されているアプリケーションを終了させる際の動作である。以下、図６を用いて本開示の一実施形態に係る情報処理装置１００の動作について説明する。
【００５７】
ユーザが、アプリＶＭ１４０で実行されているアプリケーションを終了させ、アプリＶＭ１４０のアプリケーション終了部１４３が、アプリケーションの終了を検知すると、アプリケーション終了部１４３はＶＭ管理部１２１へ、アプリケーションの終了を通知する（ステップＳ１１１）。
【００５８】
アプリケーション終了部１４３からアプリケーションの終了通知を受けたＶＭ管理部１２１は、そのアプリケーションで使用されていたデータを書き戻す（ステップＳ１１２）。具体的には、ＶＭ管理部１２１は、そのアプリケーションを実行していたアプリＶＭ１４０のストレージ管理部１４４から、そのアプリケーションで使用されていたデータを取得して、メインＶＭ１３０のメインストレージ管理部１３２へ渡すことで、そのアプリケーションで使用されていたデータを書き戻す。
【００５９】
上記ステップＳ１１２で、ＶＭ管理部１２１がデータを書き戻すと、続いてＶＭ管理部１２１は、対応表管理部１２３が管理する、アプリケーションとアプリＶＭとの対応表を更新する（ステップＳ１１３）。ここでは、ＶＭ管理部１２１は例えば対応表から当該アプリケーションとアプリＶＭとの関係を消去するよう、対応表管理部１２３が管理する対応表を更新する。
【００６０】
上記ステップＳ１１３でＶＭ管理部１２１が対応表を更新すると、ＶＭ管理部１２１は、終了されるアプリケーションを実行していたアプリＶＭ１４０を停止させる（ステップＳ１１４）。
【００６１】
なお、上記ステップＳ１１４では、ＶＭ管理部１２１は、終了されるアプリケーションを実行していたアプリＶＭ１４０を停止していたが、本開示は係る例に限定されるものではない。例えば、ＶＭ管理部１２１は、終了されるアプリケーションを実行していたアプリＶＭ１４０を停止させるのではなく一時停止状態にしておき、アプリＶＭ１４０を他のアプリケーションで再利用出来る状態にしておいてもよい。
【００６２】
以上、図６を用いてアプリＶＭ１４０で実行されているアプリケーションを終了させる際の情報処理装置１００の動作について説明した。
【００６３】
（３）資源割当量の変更処理
図７は、本開示の一実施形態に係る情報処理装置１００の動作を示す流れ図である。図７に示したのは、アプリＶＭ１４０への計算機資源部１１０の計算機資源の割当量を制御する際の動作である。以下、図７を用いて本開示の一実施形態に係る情報処理装置１００の動作について説明する。またここでは、計算機資源部１１０の計算機資源として、メモリを例にして説明する。
【００６４】
ＶＭ管理部１２１は、アプリＶＭ１４０のゲストＯＳ１４１に含まれる計算機資源割当量制御部１４５を通じて、アプリＶＭ１４０が実行するアプリケーションのメモリ使用量を調べることで、アプリＶＭ１４０が実行するアプリケーションのメモリ使用量を定期的に取得する（ステップＳ１２１）。
【００６５】
上記ステップＳ１２１で、アプリＶＭ１４０が実行するアプリケーションのメモリ使用量を取得すると、続いてＶＭ管理部１２１は、上記ステップＳ１２１で取得した値を、使用履歴管理部１２２で管理させる（ステップＳ１２２）。
【００６６】
そしてＶＭ管理部１２１は、使用履歴管理部１２２で管理されている、計算機資源部１１０の計算機資源の使用履歴に基づいて、アプリケーションのためのアプリＶＭ１４０への計算機資源の割当量を決定して制御する（ステップＳ１２３）。
【００６７】
上記ステップＳ１２３で、アプリＶＭ１４０への計算機資源の割当量を決定して制御すると、ＶＭ管理部１２１は、一定時間待機した（ステップＳ１２４）後に、上記ステップＳ１２１の処理に戻る。
【００６８】
なお、図７では、ＶＭ管理部１２１は、資源割当量の変更処理を定期的に実行していたが、本開示は係る例に限定されるものではない。例えば、情報処理装置１００が実行するシステム全体で計算機資源の残りが所定の閾値を下回った等の計算機資源が不足した状態、または、いずれかのアプリＶＭ１４０で計算機資源が不足した状態になると、ＶＭ管理部１２１は資源割当量の変更処理を実行するようにしてもよい。もちろん、ＶＭ管理部１２１は、定期的な資源割当量の変更処理と、計算機資源の使用状況に応じた資源割当量の変更処理とを組み合わせて実行するようにしてもよい。
【００６９】
以上、図７を用いて本開示の一実施形態に係る情報処理装置１００が、アプリＶＭ１４０への計算機資源部１１０の計算機資源の割当量を制御する際の動作について説明した。
【００７０】
（４）アプリケーション間の通信処理
図８は、本開示の一実施形態に係る情報処理装置１００の動作を示す流れ図である。図８に示したのは、同一の情報処理装置１００で稼働中の異なるアプリＶＭ１４０で実行されているアプリケーション間で通信を実行する際の動作である。以下、図８を用いて本開示の一実施形態に係る情報処理装置１００の動作について説明する。
【００７１】
本開示の一実施形態に係る情報処理装置１００は、アプリＶＭ１４０で実行されているアプリケーション間での通信を可能にするために、アプリＶＭ１４０のゲストＯＳ１４１に含まれるアプリケーション間通信部１４６が、アプリケーション間の通信を中継する。なお本実施形態では、アプリケーション間の通信の一例として、パイプ通信を例に説明する。アプリケーション間通信部１４６が、アプリケーション間の通信を中継することで、それぞれのアプリケーションが同一のＯＳ上で実行されている場合と同様の通信を可能にする。
【００７２】
まず、あるアプリＶＭ１４０で実行されているアプリケーション１４７が、他のアプリＶＭ１４０で実行されているアプリケーション１４７へのパイプ通信を開始する（ステップＳ１３１）。
【００７３】
上記ステップＳ１３１で、アプリケーション１４７が別のアプリケーション１４７へのパイプ通信を開始すると、通信元のアプリケーション間通信部１４６は、通信元のアプリケーション１４７が通信をしようとしている通信先のアプリケーション１４７が、どのアプリＶＭ１４０で稼働しているかをＶＭ管理部１２１に問い合わせる（ステップＳ１３２）。
【００７４】
ＶＭ管理部１２１は、対応表管理部１２３が管理する、アプリケーションとアプリＶＭとの対応表を参照し、通信先のアプリケーション１４７を実行しているアプリＶＭ１４０の情報を、通信元のアプリケーション間通信部１４６へ返す（ステップＳ１３３）。
【００７５】
ＶＭ管理部１２１から通信先のアプリケーション１４７を実行しているアプリＶＭ１４０の情報を取得した通信元のアプリケーション間通信部１４６は、上記ステップＳ１３１で通信元のアプリケーション１４７が開始したパイプ通信をソケット通信の形式に変換する（ステップＳ１３４）。
【００７６】
そして通信元のアプリケーション間通信部１４６は、上記ステップＳ１３４でソケット通信に変換した内容を、上記ステップＳ１３３でＶＭ管理部１２１から取得した通信先のアプリケーション１４７を実行しているアプリＶＭ１４０へ転送する（ステップＳ１３５）。
【００７７】
通信先のアプリケーション１４７を実行している通信先のアプリＶＭ１４０は、通信元のアプリケーション間通信部１４６からの転送を受けると、通信先のアプリＶＭ１４０のアプリケーション間通信部１４６は、ソケット通信をパイプ通信の形式に変換する（ステップＳ１３６）。
【００７８】
上記ステップＳ１３７で通信先のアプリＶＭ１４０のアプリケーション間通信部１４６がソケット通信をパイプ通信の形式に変換すると、変換した内容を、通信先のアプリＶＭ１４０が実行しているアプリケーション１４７に転送する（ステップＳ１３７）。
【００７９】
本開示の一実施形態に係る情報処理装置１００は、図８に示したような一連の動作を実行することで、異なるアプリＶＭ１４０で実行されているアプリケーション１４７同士の通信を可能にする。
【００８０】
［変形例］
続いて本開示の一実施形態に係る情報処理装置１００の変形例について説明する。上述の説明では、メインＶＭ１３０の中にメインストレージ管理部１３２及び一覧表示部１３３が含まれている構成を示したが、本開示は係る例に限定されるものではない。
【００８１】
図９は、本開示の一実施形態に係る情報処理装置１００の変形例を示す説明図である。図９に示したのは、メインストレージ管理部１３２及び一覧表示部１３３がＶＭ管理部１２１に含まれている場合の変形例である。このように、ＶＭ管理部１２１が、メインストレージ管理部１３２及び一覧表示部１３３を含んでいてもよい。
【００８２】
また、メインストレージ管理部１３２及び一覧表示部１３３が有している機能をアプリケーションとして実現するようにしてもよい。図１０は、本開示の一実施形態に係る情報処理装置１００の変形例を示す説明図である。図１０に示したのは、メインストレージ管理部１３２及び一覧表示部１３３を、アプリＶＭ１４０上で動作させている場合の変形例である。このように、本開示の一実施形態に係る情報処理装置１００は、メインストレージ管理部１３２及び一覧表示部１３３が有している機能をアプリケーションとして実現し、図１のようにメインＶＭ１３０とアプリＶＭ１４０とを区別しないような構成を採っても良い。
【００８３】
＜２．ハードウェア構成例＞
上記の各アルゴリズムは、例えば、図１１に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図１１に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、ＰＨＳ、ＰＤＡ等の携帯情報端末、ゲーム機、接触式又は非接触式のＩＣチップ、接触式又は非接触式のＩＣカード、又は種々の情報家電がこれに含まれる。但し、上記のＰＨＳは、Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ−ｐｈｏｎｅ  Ｓｙｓｔｅｍの略である。また、上記のＰＤＡは、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔの略である。
【００８４】
図１１に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０と、を有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６と、を有する。但し、上記のＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。また、上記のＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。そして、上記のＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。
【００８５】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【００８６】
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【００８７】
出力部９１８としては、例えば、ＣＲＴ、ＬＣＤ、ＰＤＰ、又はＥＬＤ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略である。また、上記のＬＣＤは、Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略である。そして、上記のＰＤＰは、Ｐｌａｓｍａ  ＤｉｓｐｌａｙＰａｎｅｌの略である。さらに、上記のＥＬＤは、Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略である。
【００８８】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【００８９】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。但し、上記のＩＣは、Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【００９０】
接続ポート９２４は、例えば、ＵＳＢポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。但し、上記のＵＳＢは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓの略である。また、上記のＳＣＳＩは、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅの略である。
【００９１】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ用の通信カード、光通信用のルータ、ＡＤＳＬ用のルータ、又は接触又は非接触通信用のデバイス等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。また、上記のＷＵＳＢは、Ｗｉｒｅｌｅｓｓ  ＵＳＢの略である。そして、上記のＡＤＳＬは、Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅの略である。
【００９２】
＜３．まとめ＞
以上説明したように本開示の一実施形態によれば、アプリケーション毎にアプリＶＭを用意し、アプリＶＭ単位で他の装置へ転送することで、他の装置へて高速にアプリケーションを転送することが可能な情報処理装置１００を提供することができる。
【００９３】
本明細書の各装置が実行する処理における各ステップは、必ずしもシーケンス図またはフローチャートとして記載された順序に沿って時系列に処理する必要はない。例えば、各装置が実行する処理における各ステップは、フローチャートとして記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
【００９４】
また、各装置に内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアを、上述した各装置の構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供されることが可能である。また、機能ブロック図で示したそれぞれの機能ブロックをハードウェアで構成することで、一連の処理をハードウェアで実現することもできる。
【００９５】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００９６】
なお、本技術は以下のような構成も取ることができる。
（１）
アプリケーションの起動指示を生成する指示生成部と、
前記指示生成部での前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理部と、
を備える、情報処理装置。
（２）
前記仮想マシン管理部は、確保した前記計算機資源を用いて仮想マシンを起動させた後に起動指示されたアプリケーションを該仮想マシンで起動させ、
前記仮想マシン管理部が前記仮想マシンで起動させた前記アプリケーションで使用されるデータを該アプリケーションへ提供するデータ管理部をさらに備える、前記（１）に記載の情報処理装置。
（３）
前記仮想マシンへの計算機資源の割当量を変更する計算機資源割当量制御部を備える、前記（１）または（２）に記載の情報処理装置。
（４）
前記計算機資源割当量制御部は、前記仮想マシン管理部が前記仮想マシンを起動できる計算機資源を確保できない場合に他の前記仮想マシンへの計算機資源の割当量を変更する、前記（３）に記載の情報処理装置。
（５）
前記計算機資源割当量制御部は、起動された前記仮想マシンでの計算機資源の使用状況に基づいて該仮想マシンへの計算機資源の割当量を変更する、前記（３）に記載の情報処理装置。
（６）
前記仮想マシン管理部は、前記仮想マシンで起動されたアプリケーションの実行が終了すると、該アプリケーションで使用されたデータを回収する、前記（２）に記載の情報処理装置。
（７）
前記データ管理部は、前記仮想マシン管理部が回収した前記データを取得する、前記（６）に記載の情報処理装置。
（８）
前記仮想マシン管理部は、前記仮想マシンで起動されたアプリケーションの実行が終了すると、該仮想マシンを停止させる、前記（２）〜（７）のいずれかに記載の情報処理装置。
（９）
前記仮想マシン管理部は、前記仮想マシンで起動されたアプリケーションの実行が終了すると、該仮想マシンを他のアプリケーションのために再利用する、前記（２）〜（８）のいずれかに記載の情報処理装置。
（１０）
前記仮想マシン管理部は、前記仮想マシンで起動されているアプリケーションの対応関係が記述されたリストを管理する対応表管理部を備える、前記（２）〜（９）のいずれかに記載の情報処理装置。
（１１）
前記仮想マシン管理部は、前記対応表管理部で管理されているリストを用いて前記仮想マシンで起動されているアプリケーション同士の通信を仲介する、前記（１０）に記載の情報を。
（１２）
前記仮想マシン管理部は、起動させた前記仮想マシンの計算機資源の使用履歴を管理する使用履歴管理部を備える、前記（２）〜（１１）のいずれかに記載の情報処理装置。
（１３）
前記仮想マシン管理部は、前記使用履歴管理部が管理する前記使用履歴に基づき、前記仮想マシンへの計算機資源割当量を決定する、前記（１２）に記載の情報処理装置。
（１４）
前記仮想マシン管理部は、前記使用履歴管理部が管理する前記使用履歴に基づき、起動させている前記仮想マシンへの計算機資源割当量を決定する、前記（１２）に記載の情報処理装置。
（１５）
前記仮想マシン管理部は、起動させた前記仮想マシンを他の装置に移動させる、前記（２）〜（１４）のいずれかに記載の情報処理装置。
（１６）
アプリケーションの起動指示を生成する指示生成ステップと、
前記指示生成ステップでの前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理ステップと、
を備える、情報処理方法。
（１７）
コンピュータに、
アプリケーションの起動指示を生成する指示生成ステップと、
前記指示生成ステップでの前記起動指示の生成に応じて、起動が指示されたアプリケーションに対応する仮想マシンを起動するための計算機資源を確保する仮想マシン管理ステップと、
を実行させる、コンピュータプログラム。
【符号の説明】
【００９７】
１００    情報処理装置
１１０    計算機資源部
１２０    仮想化機構部
１２１    ＶＭ管理部
１３０    メインＶＭ
１３１    ゲストＯＳ
１３２    メインストレージ管理部
１３３    一覧表示部
１４０    アプリＶＭ
１４１    ゲストＯＳ
１４２    アプリケーション起動部
１４３    アプリケーション終了部
１４４    ストレージ管理部
１４５    計算機資源割当量制御部
１４６    アプリケーション間通信部
１４７    アプリケーション
【図１】
2014106767.tif 000003
【図２】
2014106767.tif 000004
【図３】
2014106767.tif 000005
【図４】
2014106767.tif 000006
【図５】
2014106767.tif 000007
【図６】
2014106767.tif 000008
【図７】
2014106767.tif 000009
【図８】
2014106767.tif 000010
【図９】
2014106767.tif 000011
【図１０】
2014106767.tif 000012
【図１１】
2014106767.tif 000013