(57)【要約】【課題】用途に応じた範囲で仮想マシンを動作させる。【解決手段】機能利用制御装置が、物理マシンを仮想化して仮想マシンを動作させる仮想化部と、物理マシンまたは仮想マシンによる所定の動作状況を監視する監視部と、監視部が監視する所定の動作状況に応じて、仮想マシンによる仮想マシンの外部機能の利用可否を制御する利用可否制御部と、を備える。【選択図】図１
2014119789.tif 000002
【特許請求の範囲】
【請求項１】
物理マシンを仮想化して仮想マシンを動作させる仮想化部と、
前記物理マシンまたは前記仮想マシンによる所定の動作状況を監視する監視部と、
前記監視部が監視する前記所定の動作状況に応じて、前記仮想マシンによる当該仮想マシンの外部機能の利用可否を制御する利用可否制御部と、
を備えることを特徴とする機能利用制御装置。
【請求項２】
前記仮想化部は、第１の仮想マシンと、第２の仮想マシンとを前記物理マシン上に動作させ、
前記第１の仮想マシンは、前記仮想化部に対して前記外部機能の利用要求を出力する外部機能利用制御部を備え、
前記第２の仮想マシンは、前記外部機能の利用要求を前記第１の仮想マシンに出力する外部機能利用要求部を備え、
前記利用可否制御部は、前記第２の仮想マシンの前記外部機能利用要求部から前記利用要求が出力されると、当該利用要求の利用可否を判定し、
前記第１の仮想マシンの前記外部機能利用制御部は、前記利用可否制御部によって利用可と判定された場合、前記第２の仮想マシンの外部機能利用要求部から出力された前記利用要求を、前記仮想化部に出力する
ことを特徴とする請求項１に記載の機能利用制御装置。
【請求項３】
複数の前記外部機能ごとに、前記所定の動作状況に応じた前記外部機能の利用可否が対応付けられた条件テーブルが記憶される条件テーブル記憶部を備え、
前記利用可否制御部は、前記条件テーブルに基づいて、前記仮想マシンによる前記外部機能の利用可否を制御する
ことを特徴とする請求項１または請求項２に記載の機能利用制御装置。
【請求項４】
複数の前記外部機能ごとに、当該外部機能の利用可否が対応付けられた制御テーブルが記憶される制御テーブル記憶部を備え、
前記利用可否制御部は、前記監視部が監視する前記所定の動作状況に対応する前記外部機能の利用可否を前記条件テーブルから読み出して前記制御テーブルを更新し、更新した当該制御テーブルに基づいて前記外部機能の利用可否を制御する
ことを特徴とする請求項３に記載の機能利用制御装置。
【請求項５】
前記外部機能ごとに、当該外部機能の利用可否の適用順序を示す順序テーブルが記憶される順序テーブル記憶部を備え、
前記利用可否制御部は、前記順序テーブルに示される適用順序に基づいて、前記外部機能の利用可否を制御する
ことを特徴とする請求項１から請求項４までのいずれか１項に記載の機能利用制御装置。
【請求項６】
機能利用制御装置が、
物理マシンを仮想化して仮想マシンを動作させるステップと、
前記物理マシンまたは前記仮想マシンによる所定の動作状況を監視するステップと、
監視する前記所定の動作状況に応じて、前記仮想マシンによる当該仮想マシンの外部機能の利用可否を制御するステップと、
を備えることを特徴とする機能利用制御方法。
【請求項７】
機能利用制御装置のコンピュータに、
物理マシンを仮想化して仮想マシンを動作させるステップと、
前記物理マシンまたは前記仮想マシンによる所定の動作状況を監視するステップと、
監視する前記所定の動作状況に応じて、前記仮想マシンによる当該仮想マシンの外部機能の利用可否を制御するステップと、
を実行させる機能利用制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンからの外部機能の利用を制御する技術に関する。
【背景技術】
【０００２】
物理マシンのコンピュータリソースを仮想化して仮想マシンを動作させる仮想化技術が研究されている。このような仮想マシンは、その仮想マシンにとっては外部機能である物理マシンの各種デバイス（例えば、通信デバイス、入出力デバイス、記憶デバイス等）を利用することができる。例えば、特許文献１には、このような仮想マシンから、物理マシンが備えるネットワークデバイスを利用する技術が記載されている。あるいは、同一の物理マシン上に複数の仮想マシンを起動して動作させ、その仮想マシン間で通信を行わせることもできる。この場合、仮想マシンは、その仮想マシンにとっての外部機能である仮想的なＬＡＮ（Local Area Network）を介して、同一物理マシン上において動作する他の仮想マシンに接続する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−９３９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、このような仮想マシンが、物理マシンの各種デバイスや同一物理マシン上に動作する他の仮想マシン等の外部機能を利用する場合、その利用は仮想マシンの用途に沿った範囲、方法で行われることが望ましい。例えば、その物理マシンがスマートフォンのような、移動体通信網を介して通信可能な可搬端末である場合、移動体通信網から他の端末と通信ができない場合にのみ、物理マシン上に動作する仮想マシン間の通信を行わせたいようなことが考えられる。あるいは、例えば、仮想マシンの権限が乗っ取られたような場合（ルート化）には、外部機能の利用を禁止したいようなことが考えられる。
【０００５】
本発明は、このような状況に鑑みてなされたもので、用途に応じた範囲で仮想マシンを動作させる機能利用制御装置、機能利用制御方法、機能利用制御プログラムを提供する。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の一態様は、物理マシンを仮想化して仮想マシンを動作させる仮想化部と、物理マシンまたは仮想マシンによる所定の動作状況を監視する監視部と、監視部が監視する所定の動作状況に応じて、仮想マシンによる仮想マシンの外部機能の利用可否を制御する利用可否制御部と、を備えることを特徴とする機能利用制御装置である。
【０００７】
また、本発明の一態様は、仮想化部が、第１の仮想マシンと、第２の仮想マシンとを物理マシン上に動作させ、第１の仮想マシンは、仮想化部に対して外部機能の利用要求を出力する外部機能利用制御部を備え、第２の仮想マシンは、外部機能の利用要求を第１の仮想マシンに出力する外部機能利用要求部を備え、利用可否制御部は、第２の仮想マシンの外部機能利用要求部から利用要求が出力されると、利用要求の利用可否を判定し、第１の仮想マシンの外部機能利用制御部は、利用可否制御部によって利用可と判定された場合、第２の仮想マシンの外部機能利用要求部から出力された利用要求を、仮想化部に出力することを特徴とする。
【０００８】
また、本発明の一態様は、複数の外部機能ごとに、所定の動作状況に応じた外部機能の利用可否が対応付けられた条件テーブルが記憶される条件テーブル記憶部を備え、利用可否制御部は、条件テーブルに基づいて、仮想マシンによる外部機能の利用可否を制御することを特徴とする。
【０００９】
また、本発明の一態様は、複数の外部機能ごとに、外部機能の利用可否が対応付けられた制御テーブルが記憶される制御テーブル記憶部を備え、利用可否制御部は、監視部が監視する所定の動作状況に対応する外部機能の利用可否を条件テーブルから読み出して制御テーブルを更新し、更新した制御テーブルに基づいて外部機能の利用可否を制御することを特徴とする。
【００１０】
また、本発明の一態様は、外部機能ごとに、外部機能の利用可否の適用順序を示す順序テーブルが記憶される順序テーブル記憶部を備え、利用可否制御部は、順序テーブルに示される適用順序に基づいて、外部機能の利用可否を制御することを特徴とする。
【００１１】
また、本発明の一態様は、機能利用制御装置が、物理マシンを仮想化して仮想マシンを動作させるステップと、物理マシンまたは仮想マシンによる所定の動作状況を監視するステップと、監視する所定の動作状況に応じて、仮想マシンによる仮想マシンの外部機能の利用可否を制御するステップと、を備えることを特徴とする機能利用制御方法である。
【００１２】
また、本発明の一態様は、機能利用制御装置のコンピュータに、物理マシンを仮想化して仮想マシンを動作させるステップと、物理マシンまたは仮想マシンによる所定の動作状況を監視するステップと、監視する所定の動作状況に応じて、仮想マシンによる仮想マシンの外部機能の利用可否を制御するステップと、を実行させる機能利用制御プログラムである。
【発明の効果】
【００１３】
以上説明したように、本発明によれば、機能利用制御装置が、物理マシンを仮想化して仮想マシンを動作させる仮想化部と、物理マシンまたは仮想マシンによる所定の動作状況を監視する監視部と、監視部が監視する所定の動作状況に応じて、仮想マシンによる仮想マシンの外部機能の利用可否を制御する利用可否制御部と、を備えるようにしたので、仮想マシンからの外部機能の利用を動的に制御し、用途に応じた範囲で仮想マシンを動作させることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による仮想マシン制御装置の構成を示すブロック図である。
【図２】本発明の一実施形態による条件テーブルのデータ例を示す図である。
【図３】本発明の一実施形態による制御テーブルのデータ例を示す図である。
【図４】本発明の一実施形態による順序テーブルのデータ例を示す図である。
【図５】本発明の一実施形態による仮想マシン制御装置の動作例を示すフローチャートである。
【図６】本発明の一実施形態による仮想マシン制御装置の実施例を示す概念図である。
【図７】本発明の一実施形態による条件テーブルのデータ例を示す図である。
【図８】本発明の一実施形態による制御テーブルのデータ例を示す図である。
【図９】本発明の一実施形態によるスマートフォンの動作を説明する第１の図である。
【図１０】本発明の一実施形態によるスマートフォンの動作を説明する第２の図である。
【図１１】本発明の一実施形態によるスマートフォンの動作を説明する第３の図である。
【図１２】本発明の一実施形態によるスマートフォンの動作を説明する第４の図である。
【図１３】本発明の一実施形態によるスマートフォンの動作を説明する第５の図である。
【図１４】本発明の一実施形態によるスマートフォンの動作を説明する第６の図である。
【図１５】本発明の一実施形態によるスマートフォンの動作を説明する第７の図である。
【図１６】本発明の一実施形態によるスマートフォンの動作を説明する第８の図である。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施形態について、図面を参照して説明する。
図１は、本実施形態による仮想マシン制御装置１００の構成を示すブロック図である。仮想マシン制御装置１００は、ＰＣ（Personal computer）、タブレットＰＣ、スマートフォン等のコンピュータ装置であり、物理マシンである。本実施形態では、仮想マシン制御装置１００はスマートフォンであるとして説明する。仮想マシン制御装置１００は、デバイス１１０−１、デバイス１１０−２、デバイス１１０−３、デバイス１１０−４、・・・と、仮想化部１２０と、管理ＯＳ１３０と、仮想マシン１４０−１、仮想マシン１４０−２、・・・とを備えており、仮想マシン１４０−１、仮想マシン１４０−２、・・・からの外部機能の利用を制御する機能利用制御装置である。
【００１６】
デバイス１１０−１、デバイス１１０−２、デバイス１１０−３、デバイス１１０−４、・・・等は同様の構成であるので、特に区別しない場合にはデバイス１１０として説明する。デバイス１１０は、物理マシンである仮想マシン制御装置１００が備えるハードウェアデバイスであり、例えば、無線ＬＡＮデバイス、移動通信網との通信デバイス、赤外線通信デバイス、ＩＣ通信デバイス、ＮＦＣ（near field communication）デバイス、内部ストレージデバイス、メモリデバイス、タッチパネルデバイス、マイクデバイス、カメラデバイス、スピーカデバイス、ＵＳＢ（Universal Serial Bus）デバイス等が考えられる。
【００１７】
仮想化部１２０は、物理マシンである仮想マシン制御装置１００の各種デバイス１１０のハードウェアを仮想化し、仮想化したハードウェア上に仮想マシンを動作させるハイパーバイザである。本実施形態では、仮想化部１２０は、第１の仮想マシンである管理ＯＳ１３０と、第２の仮想マシンである仮想マシン１４０−１、仮想マシン１４０−２、・・・等とを物理マシン上に動作させる。仮想化部１２０は、仮想マシン制御装置１００上に動作する管理ＯＳ１３０からの各種デバイスの利用要求に応じて、各種デバイス１１０を動作させるデバイスドライバであるネイティブデバイスドライバ（Native Device Driver）を備える。また、仮想化部１２０は、同一の仮想マシン制御装置１００上に動作する複数の仮想マシン１４０間で通信を行わせる仮想的なＬＡＮの接続状態等を制御する。
管理ＯＳ１３０は、仮想化部１２０によって仮想化されたハードウェア上に動作する仮想マシンのひとつであり、他の仮想マシンを管理するための機能を備えるものである。
【００１８】
仮想マシン１４０−１、仮想マシン１４０−２、・・・は、仮想化部１２０によって仮想化されたハードウェア上に動作する仮想マシンである。ここでは２つの仮想マシンを図示して説明するが、仮想化部１２０には１つ、または３つ以上の仮想マシンが動作してもよい。仮想マシン１４０−１、仮想マシン１４０−２、・・・は同様の構成であるので、特に区別しない場合には仮想マシン１４０として説明する。仮想マシン１４０は、例えば、ユーザに利用される各種アプリケーションを起動し、実行する。仮想マシン１４０−１、仮想マシン１４０−２は、それぞれ外部機能利用要求部１４１−１、外部機能利用要求部１４１−２を備えている。外部機能利用要求部１４１−１、外部機能利用要求部１４１−２は同様の構成であるので、特に区別しない場合には外部機能利用要求部１４１として説明する。
【００１９】
外部機能利用要求部１４１は、仮想マシン１４０が、仮想マシン１４０の外部機能を利用するための要求を出力する。仮想マシン１４０の外部機能とは、その仮想マシン１４０にとっての外部の機能部である各種デバイス１１０や、同一の仮想マシン制御装置１００上に動作する他の仮想マシン１４０に接続するための仮想的なＬＡＮ等をいい、外部機能を利用するとは、これらの機能を利用することをいう。外部機能利用要求部１４１は、仮想マシンが備える仮想的なデバイスドライバである。外部機能利用要求部１４１が出力する外部機能の利用要求には、例えば、仮想マシン１４０がデバイス１１０である記憶デバイスにファイルをアクセスするためのコマンド（関数の呼び出し）や、他の物理マシンと他の仮想マシン１４０と通信するためのコマンド等が含まれる。ここで、外部機能利用要求部１４１は、常に、後述する管理ＯＳ１３０の外部機能利用制御部１３６に外部機能の利用要求を出力する。すなわち、管理ＯＳ１３０に対して出力した外部機能の利用要求が利用不可と判定されれば、仮想マシン１４０から外部機能を利用することはできない。
【００２０】
管理ＯＳ１３０は、条件テーブル記憶部１３１と、制御テーブル記憶部１３２と、順序テーブル記憶部１３３と、監視部１３４と、利用可否制御部１３５と、外部機能利用制御部１３６とを備えている。
条件テーブル記憶部１３１には、複数の外部機能ごとに、所定の動作状況に応じたその外部機能の利用可否が対応付けられた条件テーブルが記憶される。図２は、条件テーブル記憶部１３１に記憶される条件テーブルのデータ例を示す図である。「可」は利用可であることを示し、「否」は利用不可であることを示す。「−」は、その外部機能が制御対象外であることを示し、動作状況が変化しても、対応する外部機能の利用可否を変更しないことを示す。ここでは、例えば、移動通信網通信が不可である（移動通信網通信ができない）場合、デバイスＡ、デバイスＣの外部機能を利用可とすることが示されている。
【００２１】
制御テーブル記憶部１３２には、複数の外部機能ごとに、その外部機能の利用可否が対応付けられた制御テーブルが記憶される。図３は、制御テーブル記憶部１３２に記憶される制御テーブルのデータ例を示す図である。ここでは、例えば、デバイスＡは利用可であり、デバイスＢは利用不可（否）であり、デバイスＣは利用不可（否）であることが示されている。このような制御テーブルに示される情報に基づいて、後述する利用可否制御部１３５により仮想マシン１４０からの外部機能の利用が制御される。
【００２２】
順序テーブル記憶部１３３には、外部機能ごとに、その外部機能の利用可否の適用順序を示す順序テーブルが記憶される。適用順序とは、制御テーブル記憶部１３２に記憶されている制御テーブルに基づいて、利用可否制御部１３５が仮想マシン１４０からの外部機能の利用を制御する際に、実際にどの順序で利用可否を適用するかを示す情報である。制御テーブル記憶部１３２に記憶されている制御テーブルの情報が更新された場合、更新された情報の全てを反映して更新後の制御を開始すればよいのであるが、現実的に全くのずれなく全ての更新を反映することは困難である。そこで、更新を反映した制御を行う順序を定義しておき、この順序に沿って更新を反映する。これにより、仮想マシン１４０が意図しない動作を行うことを防ぐことができる。図４は、順序テーブル記憶部１３３に記憶される順序テーブルのデータ例を示す図である。ここでは、デバイスＡの適用順序が１であり、デバイスＢの適用順序が２であり、デバイスＣの適用順序が３であることが示されている。
【００２３】
図１に戻り、監視部１３４は、物理マシンである仮想マシン制御装置１００と、仮想マシン１４０との少なくともいずれかによる所定の動作状況を監視する。本実施形態では、双方の所定の動作状況を監視するものとする。所定の動作状況とは、例えば、移動通信網通信が可の状態であるか否か、仮想マシン１４０のルート化が行われたか否か等の状態である。仮想マシン１４０のルート化とは、その仮想マシン１４０に対して管理者権限によるシステム操作ができるようにすることをいう。監視部１３４は、それぞれのデバイス１１０を監視すること等により、このような動作状況を検知する。ルート化が行われたか否かは、例えば、ＳＵコマンドが入力されたか否か、あるいはＳｕｐｅｒＵｓｅｒ．ａｐｋがインストールされたか否か等により検知することができる。
【００２４】
利用可否制御部１３５は、監視部１３４が監視する所定の動作状況に応じて、仮想マシン１４０による外部機能の利用可否を制御する。具体的には、利用可否制御部１３５は、仮想マシン１４０の外部機能利用要求部１４１から利用要求が出力されると、その利用要求の利用可否を判定する。ここで、利用可否制御部１３５は、条件テーブル記憶部１３１に記憶されている条件テーブルに基づいて、仮想マシン１４０による外部機能の利用可否を制御する。すなわち、利用可否制御部１３５は、監視部１３４が監視する所定の動作状況に対応する外部機能の利用可否を条件テーブルから読み出し、読み出した利用可否によって制御テーブル記憶部１３２に記憶されている制御テーブルを更新する。また、利用可否制御部１３５は、更新した制御テーブルに基づいて、外部機能の利用可否を制御する。利用可否を制御するとは、外部機能利用要求部１４１から出力される利用要求を受信し、制御テーブルを参照して、受信した利用要求による外部機能の利用可否を判定し、利用可であればその外部機能を利用させ、利用不可であればその外部機能を利用させないように制御することをいう。具体的には、例えば、その外部機能を利用させる場合には、その利用要求をそのまま後述する外部機能利用制御部１３６に出力し、その外部機能を利用させない場合には、その利用要求を外部機能利用制御部１３６に出力せずに、利用要求の出力元である外部機能利用要求部１４１にエラーを返す。このように、利用可否制御部１３５によって、仮想マシン１４０の外部機能利用要求部１４１と管理ＯＳ１３０の外部機能利用制御部１３６との接続可否が制御される。また、利用可否制御部１３５は、順序テーブルに示される適用順序に基づいて、外部機能の利用可否を制御する。
【００２５】
外部機能利用制御部１３６は、外部機能利用要求部１４１から出力される外部機能の利用要求に応じて、その外部機能を利用させる。外部機能利用制御部１３６は、管理ＯＳが備える仮想的なデバイスドライバであり、仮想化部１２０に対して外部機能の利用要求を出力することにより、仮想マシン１４０に外部機能を利用させる。すなわち、仮想化部１２０によって仮想マシン制御装置１００上に動作する全ての仮想マシン１４０は、管理ＯＳ１３０の外部機能利用制御部１３６を介さなければ、仮想マシン制御装置１００の仮想マシン制御装置１００にアクセスできないように構成される。外部機能利用制御部１３６は、仮想マシン１４０の外部機能利用要求部１４１から出力された利用要求が、利用可否制御部１３５によって利用可と判定された場合、その利用要求を、仮想化部１２０に出力する。利用可否制御部１３５によって利用不可と判定された場合、その利用要求は、仮想化部１２０に出力されない。
【００２６】
次に、図面を参照して、本実施形態による仮想マシン制御装置１００の動作例を説明する。図５は、本実施形態による仮想マシン制御装置１００の動作例を示すフローチャートである。仮想マシン制御装置１００に、管理ＯＳ１３０と、仮想マシン１４０−１と、仮想マシン１４０−２とが起動すると、管理ＯＳ１３０は、仮想マシン制御装置１００の各部および起動した仮想マシン１４０−１と仮想マシン１４０−２との動作状況を監視する（ステップＳ１）。
【００２７】
監視部１３４が、動作状況の変化を検知すると、利用可否制御部１３５は、変化した動作状況に応じた外部機能の利用可否を条件テーブル記憶部１３１から読み出して制御テーブル記憶部１３２に記憶されている制御テーブルを更新する（ステップＳ２）。利用可否制御部１３５は、順序テーブル記憶部１３３に記憶されている順序テーブルを読み出し、読み出した順序で、制御テーブルに更新した利用可否を適用する（ステップＳ３）。
【００２８】
以上説明したように、本実施形態によれば、複数の仮想マシン１４０ごとの外部機能の利用可否を、動作状況に応じて動的に変更し、制御できるようにした。これにより、仮想マシン制御装置１００上で動作する仮想マシン１４０が、その仮想マシン１４０に必要のない外部機能を利用したり、予期しない振る舞いをしたりすることを制限できる。これにより、仮想マシン１４０を用途に応じた範囲で動作させることができるようになる。
【００２９】
＜実施例＞
次に、上述した仮想マシン制御装置１００の実施例を説明する。図６は、本実施形態の仮想マシン制御装置１００の実施例を示す概念図である。ここでは、仮想マシン制御装置１００を適用したスマートフォン２００のハードウェア上に、管理ＯＳ２３０と、仮想マシン２４０−１と、仮想マシン２４０−２との仮想マシンが動作している例を説明する。
【００３０】
本実施例では、スマートフォン２００上で動作する仮想マシン２４０−１は、移動体通信網等のネットワークを介して接続されたサーバ３００と通信して、サーバ３００によって提供されるサービスを利用するサービス利用アプリケーション（ＡＰ）を動作させるＯＳ（ユーザＯＳ１）であり、サーバ３００に対するクライアントであるサービス利用端末としての機能を有する。仮想マシン２４０−１は、ユーザからユーザＩＤやパスワード等、サーバ３００に送信するデータの入力を受け付け、入力されたデータをサーバ３００に送信する等の処理を行う。サービス利用アプリケーションとは、例えば何らかの決済を行うアプリケーション等が適用できる。このように、仮想マシン２４０−１とサーバ３００とが移動体通信網により通信する場合、通信状況によって通信可である場合と通信不可である場合とが頻繁に切り替わる場合があると考えられる。このとき、例えば、ユーザが仮想マシン２４０−１に情報を入力した後に、仮想マシン２４０−１とサーバ３００との通信状況が悪化してエラーにより送信できず、ユーザがもう一度同じ情報を入力することになれば、ユーザにとって面倒である。
【００３１】
そこで、このような場合のために、サーバ３００の疑似的なサーバである仮想マシン２４０−２をスマートフォン２００に動作させておく。そして、管理ＯＳ２３０が、移動体通信網の電波が受信できない等の理由により通信不可能状態であることを検知すると、移動体通信網との通信デバイスを無効化してサーバ３００に対する通信をできなくする代わりに、仮想マシン２４０−１と仮想マシン２４０−２との通信を可能にする。そして、仮想マシン２４０−１は、サーバ３００に対して送るべき情報を、仮想マシン２４０−２に送信する。仮想マシン２４０−２は、仮想マシン２４０−１から送信された情報を記憶しておく。スマートフォン２００による移動体通信網通信ができる状態になると、仮想マシン２４０−２は、記憶しておいた情報を、仮想マシン２４０−１に代わってサーバ３００に送信する。このようにすれば、ユーザは、通信状況に関わらず入力処理を完了させることができる。
【００３２】
管理ＯＳ２３０は、仮想マシン制御装置１００の管理ＯＳ１３０に対応する。管理ＯＳ２３０は、ポリシ２３２と、モニタリング機能２３４と、ドライバ制御機能２３５と、Ｍ−ＶＤＤ（Management Virtual Device Driver）２３６と、ネイティブデバイスドライバ２３７と、外部入力ＩＦ（インタフェース）とを備えている。
【００３３】
ポリシ２３２、モニタリング機能２３４、ドライバ制御機能２３５、Ｍ−ＶＤＤ２３６は、仮想マシン制御装置１００が備える条件テーブル記憶部１３１から順序テーブル記憶部１３３、監視部１３４、利用可否制御部１３５、外部機能利用制御部１３６に対応する。仮想マシン２４０−１は、仮想マシン１４０−１に対応する。仮想マシン２４０−１が備えるＵ−ＶＤＤ（User Virtual Device Driver）２４１−１は、仮想マシン１４０−１が備える外部機能利用要求部１４１−１に対応する。Ｕ−ＶＤＤ２４１−１は、例えば、ＬＣＤ、外部入力ＩＦ、ＳＤアクセス、外部ＮＷ、ＯＳ間通信等の外部機能を利用するためのドライバ群である。
【００３４】
ここで、例えば、動作状況に関わらずそもそも仮想マシン２４０−１からのＳＤアクセスを禁止するのであれば、ＳＤアクセスの利用を禁止状態にして仮想マシン２４０−１を起動させることもできる。あるいは、仮想マシン２４０−１の起動時に、ＳＤアクセスのドライバをインストールしないこともできる。本実施形態では、このように、仮想マシン２４０−１の起動時の制御により、外部機能の利用可否を制御することを、静的制御という。これに対し、動作状況に応じて、外部機能の利用可否を制御することを、動的制御という。仮想マシン２４０−２は、仮想マシン１４０−２に対応する。仮想マシン２４０−２が備えるＵ−ＶＤＤ２４１−２は、仮想マシン１４０−２が備える外部機能利用要求部１４１−２に対応する。
【００３５】
図７は、本実施例における条件テーブルのデータ例を示す図である。ここでは、モニタリング対象の外部機能の所定の動作状況ごとに、その動作状況に応じて制御テーブルを更新する所定のアクションが対応付けられている。例えば、３Ｇネットワーク（移動体通信網）が通信できない状態であれば（ｉｆ  Ｄｉｓａｂｌｅ）、デバイスＡの制御ポリシを、ＯＳ１、ＯＳ２ともにＯＮ（１）（利用可）にすることを示している。ここでは、複数のＡＮＤ条件の動作状況の例のみを示しているが、ＯＲ条件の動作状況により所定のアクションを対応付けることもできる。
【００３６】
図８は、本実施例における制御テーブルのデータ例を示す図である。ここでは、外部機能であるデバイスごとに、そのデバイスの利用可否を示す情報が対応付けられている。０は、利用不可を示す。１は、利用可を示す。ここでは、０と１とのみを説明するが、２以上の数値を定めてもよい。例えば、２であれば、通信機能において、特定の通信先との通信のみ利用可とすることが考えられる。あるいは、例えば３であれば、特定の時間帯のみ利用可とすることが考えられる。
【００３７】
図９は、本実施例におけるスマートフォン２００の動作を説明する第１の図である。初期状態では、仮想マシン２４０−１の外部ＮＷは利用可であり、ＯＳ間通信は利用不可であるとする。仮想マシン２４０−１においてサービス利用ＡＰを起動させると、サービス利用ＡＰは、Ｕ−ＶＤＤ２４１−１と、Ｍ−ＶＤＤ２３６と、ネイティブデバイスドライバ２３７とを介して、外部機能である外部入力ＩＦ２３８を利用して、入力データの入力を受け付けて取得する（ステップＳ１１）。
【００３８】
図１０は、本実施例におけるスマートフォン２００の動作を説明する第２の図である。ステップＳ１１においてサービス利用ＡＰが取得した入力データに所定の処理を行うと、サービス利用ＡＰは、Ｕ−ＶＤＤ２４１−１を介して、入力データを、サーバ３００を宛先として送信する。このとき、モニタリング機能２３４が、移動体通信網による通信が可能であるか否かを検知する（ステップＳ１２）。
【００３９】
図１１は、本実施例におけるスマートフォン２００の動作を説明する第３の図である。ステップＳ１２において、モニタリング機能２３４が、移動体通信網による通信が可能であると判定すると、管理ＯＳ２３０は、ステップＳ１２においてサービス利用ＡＰから送信された入力データを、Ｍ−ＶＤＤ２３６とネイティブデバイスドライバ２３７とを介してサーバ３００に送信する（ステップＳ１３）。
【００４０】
図１２は、本実施例におけるスマートフォン２００の動作を説明する第４の図である。一方、ステップＳ１２において、モニタリング機能２３４が、移動体通信網による通信が可能でないと判定すると、ドライバ制御機能２３５が、ポリシ２３２に記憶されている条件テーブルに基づいて、制御テーブルを更新する。これにより、外部ＮＷから仮想マシン２４０−１へのアクセスを不可にし、仮想マシン２４０−１と仮想マシン２４０−２との間の通信を可にする（ステップＳ１４）。
【００４１】
図１３は、本実施例におけるスマートフォン２００の動作を説明する第５の図である。ステップＳ１４において、仮想マシン２４０−１と仮想マシン２４０−２との間の通信を可にすると、ドライバ制御機能２３５は、ステップＳ１２においてサービス利用ＡＰからサーバ３００に対して送信された入力データを、Ｍ−ＶＤＤ２３６を介して仮想マシン２４０−２に送信する。仮想マシン２４０−２の疑似サーバＡＰは、送信された入力データを受信して、自身の記憶領域に記憶させる（ステップＳ１５）。
【００４２】
図１４は、本実施例におけるスマートフォン２００の動作を説明する第６の図である。モニタリング機能２３４は、Ｍ−ＶＤＤ２３６を介してスマートフォン２００の通信状況を監視する。移動体通信網による通信が不可の状態であれば、移動体通信網による通信を利用不可とし、ＯＳ間通信を利用可とする状態を維持する（ステップＳ１６）。
【００４３】
図１５は、本実施例におけるスマートフォン２００の動作を説明する第７の図である。モニタリング機能２３４が、移動体通信網による通信が可能な状態になったことを検知すると、疑似サーバＡＰは、ステップＳ１５において記憶した入力データを読み出し、Ｍ−ＶＤＤ２３６とネイティブデバイスドライバ２３７とを介してサーバ３００に送信する（ステップＳ１７）。
【００４４】
図１６は、本実施例におけるスマートフォン２００の動作を説明する第８の図である。ステップＳ１７において、入力データをサーバ３００に送信すると、ドライバ制御機能２３５が、ポリシ２３２に記憶されている条件テーブルに基づいて、制御テーブルを更新する。これにより、外部ＮＷから仮想マシン２４０−１へのアクセスを可にし、仮想マシン２４０−１と仮想マシン２４０−２との間の通信を不可にする（ステップＳ１８）。
【００４５】
また、本実施形態の実施例としては、例えば、スマートフォンを、特定のアプリケーションのみが動作する専用端末として利用させたい場合に用いて好適である。例えば、ひとつの端末をあるアプリケーションの専用端末として利用させるとともに、他のアプリケーションの専用端末としても利用させたい場合、それぞれのアプリケーションを異なる仮想マシン１４０にそれぞれ動作させて異なるドメインとなるように構成しておくことができる。これにより、あるアプリケーションが動作する仮想マシンを、同一の端末内において他のアプリケーションが動作する仮想マシンから隔離、隠ぺいすることができる。またこのとき、仮想マシン（アプリケーション）の利用を切り替える際には、利用する外部機能を、仮想マシンごとに変化させることができる。
【００４６】
また、本実施形態によれば、例えば、仮想マシンがルート化された場合に、その仮想マシンからの全ての外部機能の利用を不可にすることが可能となる。これにより、複数の仮想マシンが動作している物理マシン上で、特定の仮想マシンがルート化された場合、その仮想マシンから他の仮想マシンの情報が読み出されること等を防ぐことができる。また、例えば、ＵＳＢメモリ等に記憶されたＯＳ等のプログラムを仮想マシン制御装置１００に接続させてＵＳＢメモリ内のＯＳを起動するようなことを防ぐこともできる。
【００４７】
なお、順序テーブル記憶部１３３に記憶された適用順序は、例えば、移動通信網を利用不可にしてＯＳ間通信を利用可にする場合と、移動通信網を利用可にしてＯＳ間通信を利用不可にする場合とで、適用順序を逆にすることもできる。
また、条件テーブル記憶部１３１に記憶させる条件テーブル、制御テーブル記憶部１３２に記憶させる制御テーブルは、複数の仮想マシン１４０全体に対して適用するものであってもよいし、仮想マシン１４０ごとにテーブルを用意して記憶させてもよい。
また、本実施形態では、仮想化部１２０上に管理ＯＳ１３０を起動させる例を説明したが、仮想化部１２０自体が、管理ＯＳ１３０が備える各部と同様の処理部を備えるようにしてもよい。
【００４８】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより仮想マシンの制御を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４９】
また、上述した機能の一部または全部を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【００５０】
１００  仮想マシン制御装置
１１０  デバイス
１２０  仮想化部
１３０  管理ＯＳ
１３１  条件テーブル記憶部
１３２  制御テーブル記憶部
１３３  順序テーブル記憶部
１３４  監視部
１３５  利用可否制御部
１３６  外部機能利用制御部
１４０  仮想マシン
１４１  外部機能利用要求部
２００  スマートフォン
２３２  ポリシ
２３４  モニタリング機能
２３５  ドライバ制御機能
２３６  Ｍ−ＶＤＤ
２３７  ネイティブデバイスドライバ
２３８  外部入力ＩＦ
２４１  Ｕ−ＶＤＤ
３００  サーバ
【図１】
2014119789.tif 000003
【図２】
2014119789.tif 000004
【図３】
2014119789.tif 000005
【図４】
2014119789.tif 000006
【図５】
2014119789.tif 000007
【図６】
2014119789.tif 000008
【図７】
2014119789.tif 000009
【図８】
2014119789.tif 000010
【図９】
2014119789.tif 000011
【図１０】
2014119789.tif 000012
【図１１】
2014119789.tif 000013
【図１２】
2014119789.tif 000014
【図１３】
2014119789.tif 000015
【図１４】
2014119789.tif 000016
【図１５】
2014119789.tif 000017
【図１６】
2014119789.tif 000018