(57)【要約】【課題】  本発明の課題は、効果的なバーチャルマシーンの動的生成技術を提供することである。【解決手段】  上記課題を解決するため、本発明は、バーチャルマシーンを生成する方法であって、プログラムの実行中に前記プログラムから受け付けたクローン化リクエストに応答して、クローン化するバーチャルマシーン（ＶＭ）の状態を特定するステップと、前記ＶＭのクローンを生成するのに何れにおける何れかのハードウェアリソースを決定するステップと、前記決定されたハードウェアリソースにおいて前記ＶＭのクローンを生成するステップとを有する方法を提供する。【選択図】  図３
2008165795.tif 000002
【特許請求の範囲】
【請求項１】
バーチャルマシーンを生成する方法であって、
プログラムの実行中に前記プログラムから受け付けたクローン化リクエストに応答して、クローン化するバーチャルマシーン（ＶＭ）の状態を特定するステップと、
前記ＶＭのクローンを生成するのに何れにおける何れかのハードウェアリソースを決定するステップと、
前記決定されたハードウェアリソースにおいて前記ＶＭのクローンを生成するステップと、
を有する方法。
【請求項２】
前記決定するステップは、前記ハードウェアリソースのそれぞれについてリソース使用ケースを選択するステップを有する、請求項１記載の方法。
【請求項３】
前記リソース使用ケースを選択するステップは、前記クローン化するＶＭの等価なリソースのすべてのコンフィギュレーションが前記ハードウェアリソースに複製される場合、複製使用ケースを選択する、請求項２記載の方法。
【請求項４】
前記リソース使用ケースを選択するステップは、前記クローン化するＶＭの等価なリソースへの参照が前記ハードウェアリソースとして複製される場合、共有使用ケースを選択する、請求項２記載の方法。
【請求項５】
前記リソース使用ケースを選択するステップは、前記クローン化するＶＭの等価なリソースへの参照が前記ハードウェアリソースとして複製され、前記ハードウェアリソースのコンフィギュレーションへの変更がなされるとき、前記変更が他のハードウェアリソースに複製される場合、コピー・オン・チェンジ使用ケースを選択する、請求項２記載の方法。
【請求項６】
前記決定するステップはさらに、１以上のプロセッサ、メモリ及び／又はストレージリソースを特定する、請求項１記載の方法。
【請求項７】
前記決定するステップはさらに、１以上の入出力（Ｉ／Ｏ）及び／又はネットワークアクセスリソースを特定する、請求項１記載の方法。
【請求項８】
前記決定するステップはさらに、
リソースを特定するステップと、
前記リソースの能力、前記リソースに対する遅延、又は前記リソースの信頼性の１以上を決定するステップと、
を有する、請求項１記載の方法。
【請求項９】
バーチャルマシーン（ＶＭ）上で実行されているアプリケーションから、前記ＶＭをクローン化するクローン化リクエストを受け付けるステップと、
前記ＶＭの動作状態を決定するステップと、
前記クローンを生成する何れかにおいて利用可能なリソースを特定するステップと、
前記決定された動作状態により前記特定されたリソース上で前記クローンを生成するステップと、
を含む処理をデバイスに実行させる命令を提供するコンテンツを格納したマシーン可読記憶媒体から構成される生産物。
【請求項１０】
前記クローン化リクエストを受け付ける命令を提供するコンテンツは、前記クローンを生成する関数の関数呼び出しを受け付ける命令を提供するコンテンツを有する、請求項９記載の生産物。
【請求項１１】
前記クローン化リクエストを受け付ける命令を提供するコンテンツは、前記リクエストのクローンに関するヒントを受け付ける命令を提供するコンテンツを有する、請求項９記載の生産物。
【請求項１２】
前記ヒントを受け付ける命令を提供するコンテンツは、前記リクエストのクローンの予想寿命の表示を受け付ける命令を提供するコンテンツを有する、請求項１１記載の生産物。
【請求項１３】
前記クローン化リクエストを受け付ける命令を提供するコンテンツは、前記クローンの生成に関する選好を受け付ける命令を提供するコンテンツを有する、請求項９記載の生産物。
【請求項１４】
前記選好を受け付ける命令を提供するコンテンツは、前記利用可能なリソースの特定を単一のハードウェアデバイス上にすべてがあるリソースに限定するための表示を受け付ける命令を提供するコンテンツを有する、請求項１３記載の生産物。
【請求項１５】
バーチャルマシーン（ＶＭ）生成装置であって、
ＶＭ状態を有するＶＭと、クローン化するＶＭのバーチャルハードウェアマッピングとを特定し、前記ＶＭ状態と前記バーチャルハードウェアマッピングとのクローン化を含む、前記特定されたＶＭをクローン化する何れかにおいて何れのハードウェアリソースが利用可能であるか決定するクローン化エンジンと、
前記特定されたＶＭをクローン化する何れかにおいて前記利用可能なハードウェアリソースの何れかを決定するため、前記クローン化エンジンに接続される配置エンジンと、
前記ＶＭ状態によって前記配置エンジンにより決定されるハードウェアリソース上でクローンをインスタンス化するＶＭインスタンス化モジュールと、
を有するＶＭ生成装置。
【請求項１６】
前記クローン化エンジンは、
前記利用可能なハードウェアリソースを特定し、
前記利用可能なハードウェアリソースのそれぞれのロードを決定する、請求項１５記載のＶＭ生成装置。
【請求項１７】
前記配置エンジンは、前記特定されたＶＭをクローン化する何れかにおけるハードウェアリソースとして、最も低いロードを有するハードウェアリソースをデフォルトとして選択する、請求項１６記載のＶＭ生成装置。
【請求項１８】
バーチャルマシーン（ＶＭ）マネージャであって、
ＶＭリソースを管理するＶＭコントローラと、
前記ＶＭコントローラに接続され、ＶＭ状態を有するＶＭとクローン化するＶＭのバーチャルハードウェアマッピングとを特定し、前記ＶＭ状態と前記バーチャルハードウェアマッピングとのクローン化を含む、前記特定されたＶＭをクローン化する何れかにおいて何れのハードウェアリソースが利用可能であるか決定するクローン化エンジンと、前記特定されたＶＭをクローン化する何れかにおいて前記利用可能なハードウェアリソースの何れかを決定するため、前記クローン化エンジンに接続される配置エンジンと、前記ＶＭ状態によって前記配置エンジンにより決定されるハードウェアリソース上でクローンをインスタンス化するＶＭインスタンス化モジュールとを有するＶＭ生成装置と、
を有するＶＭマネージャ。
【請求項１９】
前記ＶＭ生成装置のクローン化エンジンは、各リソースについてリソース使用ケースを選択し、
前記ＶＭ生成装置の配置エンジンは、各リソースのリソース使用ケースに少なくとも部分的に基づき、前記特定されたＶＭをクローン化する何れかにおける利用可能なハードウェアリソースを決定する、請求項１８記載のＶＭマネージャ。
【請求項２０】
前記インスタンス化モジュールは、前記ＶＭコントローラを介し前記クローンをインスタンス化する、請求項１８記載のＶＭマネージャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、バーチャルマシーン技術に関し、より詳細には、バーチャルマシーンの動的生成に関する。
【背景技術】
【０００２】
複数の独立したオペレーティング環境が利用可能なハードウェア上で実行されることを可能にするのにバーチャルマシーンが使用されるに従って、バーチャル化の利用が増大してきている。従来、バーチャルマシーンの生成は管理アクションを通じて行われ、通常は管理者が各バーチャルマシーンを設定及び有効化することを伴う。一部のケースでは、１以上の処理がスクリプト可能であり、バーチャルマシーン（呼び出し可能なサーバなど）を設定及び有効化することが可能な管理者のために、スクリプトの実行が可能である。従来のバーチャルマシーンの生成に必要とされるユーザ入力は、特にバーチャルマシーンをセットアップすることに伴う労力がバーチャルマシーンの期待される使用に対して妥当なものとならないかもしれない場合、特殊な目的（個別のプロセスのテスト及び実行など）のためのバーチャルマシーンの使用において、作業環境におけるバーチャル化の利用機会を低下させてきた。これは特に、バーチャルマシーンの寿命が相対的に短くなる（数秒単位など）ことが意図される場合に、真となるかもしれない。バーチャル化を利用する機会の欠落は、バーチャル化により提供されるものなど、孤立した環境において特定のプロセス又はタスクを実行することを不可にすることに伴う配置コストとセキュリティリスクをより高いものにするかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の課題は、上記問題点に鑑み、効果的なバーチャルマシーンの動的生成技術を提供することである。
【課題を解決するための手段】
【０００４】
上記課題を解決するため、本発明は、バーチャルマシーンを生成する方法であって、プログラムの実行中に前記プログラムから受け付けたクローン化リクエストに応答して、クローン化するバーチャルマシーン（ＶＭ）の状態を特定するステップと、前記ＶＭのクローンを生成するのに何れにおける何れかのハードウェアリソースを決定するステップと、前記決定されたハードウェアリソースにおいて前記ＶＭのクローンを生成するステップとを有する方法を提供する。
【０００５】
また、本発明は、バーチャルマシーン（ＶＭ）上で実行されているアプリケーションから、前記ＶＭをクローン化するクローン化リクエストを受け付けるステップと、前記ＶＭの動作状態を決定するステップと、前記クローンを生成する何れかにおいて利用可能なリソースを特定するステップと、前記決定された動作状態により前記特定されたリソース上で前記クローンを生成するステップとを含む処理をデバイスに実行させる命令を提供するコンテンツを格納したマシーン可読記憶媒体から構成される生産物を提供する。
【０００６】
さらに、本発明は、バーチャルマシーン（ＶＭ）生成装置であって、ＶＭ状態を有するＶＭと、クローン化するＶＭのバーチャルハードウェアマッピングとを特定し、前記ＶＭ状態と前記バーチャルハードウェアマッピングとのクローン化を含む、前記特定されたＶＭをクローン化する何れかにおいて何れのハードウェアリソースが利用可能であるか決定するクローン化エンジンと、前記特定されたＶＭをクローン化する何れかにおいて前記利用可能なハードウェアリソースの何れかを決定するため、前記クローン化エンジンに接続される配置エンジンと、前記ＶＭ状態によって前記配置エンジンにより決定されるハードウェアリソース上でクローンをインスタンス化するＶＭインスタンス化モジュールとを有するＶＭ生成装置を提供する。
【０００７】
さらに、本発明は、バーチャルマシーン（ＶＭ）マネージャであって、ＶＭリソースを管理するＶＭコントローラと、前記ＶＭコントローラに接続され、ＶＭ状態を有するＶＭとクローン化するＶＭのバーチャルハードウェアマッピングとを特定し、前記ＶＭ状態と前記バーチャルハードウェアマッピングとのクローン化を含む、前記特定されたＶＭをクローン化する何れかにおいて何れのハードウェアリソースが利用可能であるか決定するクローン化エンジンと、前記特定されたＶＭをクローン化する何れかにおいて前記利用可能なハードウェアリソースの何れかを決定するため、前記クローン化エンジンに接続される配置エンジンと、前記ＶＭ状態によって前記配置エンジンにより決定されるハードウェアリソース上でクローンをインスタンス化するＶＭインスタンス化モジュールとを有するＶＭ生成装置とを有するＶＭマネージャを提供する。
【発明の効果】
【０００８】
本発明によると、効果的なバーチャルマシーンの動的生成技術を提供することが可能となる。
【発明を実施するための最良の形態】
【０００９】
ここで使用される１以上の“実施例”という表現は、本発明の少なくとも１つの実現形態に含まれる特定の機能、構成又は特徴を記載するものとして理解されるべきである。“一実施例では”又は“他の実施例では”などの表現が使用されるが、これらは本発明の各種実施例及び実現形態を表すものであり、そのすべてが同一の実施例を参照しているとは限らない。しかしながら、それらはまた互いに排他的である必要はない。本発明の実施例の全体的な記載と共に、詳細及び実現形態の説明が、図面を参照して詳細な説明により行われる。
【００１０】
システムは、実行中に動的にバーチャルマシーン（ＶＭ）を生成するためのバーチャルマシーン生成装置を有する。管理動作を必要とする従来のＶＭ生成と対照的に、アプリケーション又はサービスは、バーチャルマシーンの生成をそれの基本アプリケーションロジックに搭載することが可能である。ここで使用される“アプリケーション”という用語は、説明の簡単化のためのものであり、ＶＭ生成の呼び出しを記載するのに使用される。実際、アプリケーション、サービス又は他のソフトウェアエンティティは、ここに記載されるようなＶＭ生成を呼び出し可能なロジックを有することが可能である。従って、“アプリケーション”がＶＭ生成のためのパラメータ又はリクエストを提供するものとして記述されるとき、それはサービス又は他のソフトウェアエンティティにも等しく提供されることが理解されるべきである。アプリケーションは、ＶＭ生成装置からのＶＭ（“ｖｍｆｏｒｋ”プログラミング言語コンストラクトなどを介し）の生成をリクエストすることができる。ＶＭ生成装置は、処理リクエストを受け付け、実行中のＶＭを複製する。
【００１１】
ここに記載されるようなＶＭ生成装置は、実行中のバーチャルマシーンをクローン化する“ｖｍｆｏｒｋ”処理を利用することが可能である。ＶＭ生成装置は、ＶＭクローン化機構と新規ＶＭ配置機構の２つの主要な部分を有すると考えることができる。一実施例では、アプリケーションによるＶＭクローン化処理の呼び出しは、ＶＭ生成装置において両方の機構を開始する。このため、アプリケーションは、ＶＭクローンの生成をリクエスト可能であり、ＶＭ生成装置は、クローンを生成するために何れのリソースが割り当てられる必要があるか決定し、クローンを生成すべき場所を決定し、決定された場所にクローンを生成する。
【００１２】
一実施例では、ｖｍｆｏｒｋ処理が呼び出されると、バーチャルリソースの生成、クローンＶＭの状態又はソフトウェア環境の複製、及び新たなＶＭの識別子を要求元のアプリケーションに返すことを含む論理アクションが実行される。バーチャルリソースの生成は、システムコンフィギュレーションの何れかを提供することを含むかもしれない。以下でより詳細に説明されるように、リソースは、複製、共有又はコンフィギュレーションの変更が導入される際に初期的に共有及び複製されるかもしれない。ＶＭクローン内には異なるリソース使用ケースが存在する可能性があり、それは、異なる使用ケースが１つのＶＭ内の異なるリソースの間に存在する可能性があることを意味する。従って、例えば、１つのリソースはＶＭクローンにおいて複製され（ストレージリソースなど）、他のリソースはＶＭクローンにおいて共有される（ネットワークインタフェースなど）。ＶＭクローンのリソースコンフィギュレーションの選択は、クローンの目的、クローンの予想寿命、クローン化に利用可能なリソースなどを含む任意数のファクタに依存する。
【００１３】
クローンＶＭの状態を複製することは、クローン化されるＶＭが実行されているオペレーティングシステムとソフトウェア環境とを複製することを含むかもしれない。状態の複製は、コンフィギュレーションの設定などを含むかもしれない。ＶＭの状態の複製は、ディスクコンテンツ、プロセス、メモリコンテンツ、周辺の状態などの複製又は共有を含むかもしれない。
【００１４】
新たなＶＭの識別子を要求元のアプリケーションに返すことは、クローン化が成功したＶＭのハンドル、ＩＰアドレス又は他の識別子を返すことを含めることが可能である。クローン化が不成功であった場合、要求元のアプリケーションにエラーが返されるかもしれない。
【００１５】
クローン処理機構をサポートする処理／アクションに加えて、ＶＭ生成装置は、クローンＶＭの場所の決定をサポートするため、何れかの個数の処理／アクションを実行する。ＶＭをクローン化する場所は、（新たな）クローンＶＭ（オリジナルＶＭを継承したもの、クローン化を呼び出したプロセスにより指定されるものなど）の性質、現在の計算環境の性質（マシーン上のロード、パワー要求など）及び／又は他のファクタを含む多数のファクタにより決定することができる。ＶＭ生成装置により考慮されるファクタは、リソース割当て及び／又は利用可能性（メモリ、ディスク／ストレージ（ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）を含む）、プロセッサ／コアの利用可能性、利用可能なＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）、ネットワークへのアクセス、他のコンピュータとの接続、リソース遅延、デバイスへの遅延、ネットワーク位置への遅延、信頼性など）、要求元アプリケーションからのヒント及び／又は選好（１つのハードウェアデバイスの新たなＶＭをより選好し、ＶＭはｘ秒／分間存在し、要求される利用可能性など）、又は他の何れかの考慮する事項を含むかもしれない。
【００１６】
いくつかの現在のオペレーティングシステムは、独立したアドレススペースにおいて実行中のプロセスをクローン化する標準的な“ｆｏｒｋ”処理（Ｐｏｒｔａｂｌｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ｕｎｉＸ（ＰＯＳＩＸ）をサポートするオペレーティングシステム）を含む。このような処理の有用性は、当該処理がサポートされる環境において、関連するプロセス生成処理（又は“ｆｏｒｋ”処理）がソフトウェアアプリケーション及びサービスにより実行される頻度によって示される。同様に、“ｖｍｆｏｒｋ”処理の提供は、アプリケーション及び／又はサービスが関連するＶＭを生成することを可能にする。さらに、アプリケーションロジックを介しここに説明されるようなＶＭ生成の呼び出しは、新たなＶＭを生成する場所の決定を（部分的に又は完全に）排除する。このような決定を排除することは、コードの配布場所及び方法を実行時に動的に決定するためのコードを記述する負担をプログラマーから解消する。その代わりに、当該決定は、ＶＭ生成装置によって処理することができる。
【００１７】
一実施例では、ＶＭ生成（“ｖｍｆｏｒｋ”など）の呼び出しは、ＶＭ生成を処理するＶＭ生成装置のサブルーチンへの関数呼び出しとして実行される。あるいは、ＶＭ生成は、ＶＭ生成装置へのメッセージ又は信号の送信、ＶＭ生成装置を起動する割り込みの呼び出し、又は他の手段などの他の機構を介して呼び出し可能である。
【００１８】
図１は、ＶＭを動的に生成するバーチャルマシーン（ＶＭ）生成装置を有するシステムの実施例のブロック図である。システム１００は、クローン化対象となるＶＭであるＶＭ１１０を有する。簡単化のため、限定することなく、ＶＭ１１０は“オリジナルＶＭ１１０”と呼ばれる。それは、ＶＭ１１０が存在しており、ここに記載されるクローン化処理が開始される際に実行されているという事実を表す。システム１００のＶＭ１２０は、オリジナルＶＭ１１０のクローンを表し、簡単化のため、限定されることなく、“新規ＶＭ１２０”と呼ばれる。それは、新規ＶＭ１２０がオリジナルＶＭ１１０から導出されているという事実を表している。
【００１９】
オリジナルＶＭ１１０は、具体的なオペレーティングシステムだけでなく、織り地なりＶＭ１１０のソフトウェア環境又はソフトウェア状態も表すオペレーティングシステム（ＯＳ）１１２を含む。オリジナルＶＭ１１０はまた、オリジナルＶＭ１１０のハードウェア状態を表すバーチャルハードウェア１１４を含む。バーチャルハードウェア１１４は、オリジナルＶＭ１１０に割り当てられたすべてのハードウェアリソースを表す。バーチャルハードウェア１１４は、メモリ、プロセッサ、ネットワークインタフェース、ストレージ、ディスクドライブなど、システム１００内の実際のデバイスを表す物理的ハードウェア１４０にマップされる。物理的ハードウェア１４０は、システム１００の１以上の物理的デバイス又はマシーン内に存在するかもしれないということに留意されたい。すなわち、物理的ハードウェア１４０はすべて、１つのボックス内に存在するかもしれず、又は複数のボックスのリソースのバーチャルな集合体として存在するかもしれない。物理的ハードウェア１４０は、ネットワークリソースとして利用可能な物理的デバイス（ＮＡＳ、ラック搭載されたリソースなど）及び／又は複数のネットワークデバイスから利用可能なリソースを含む可能性がある。
【００２０】
ＶＭＭ１３０は、物理的ハードウェア１４０の物理的リソースと、バーチャルハードウェア１１４から物理的リソースへの割当て若しくはマッピングとを管理するバーチャルマシーンマネージャ又はハイパバイザを表す。一実施例では、ＶＭＭ１３０は、ＶＭクローン化機構と新規ＶＭ配置機構とを有するＶＭ生成装置１５０に接続される。ここで使用される“接続”とは、電気的、機械的及び／又は通信的などの何れ他のタイプの接続を表す。１つのハードウェアコンポーネントと他のハードウェアコンポーネントとの接続は、他のハードウェアを介して実行されるかもしれない。ソフトウェアコンポーネントは、関数呼び出し又はルーチン／サブルーチンの他の呼び出しを介して互いに接続可能である。ハードウェアとソフトウェアは、ソフトウェアモジュールが制御コマンドをハードウェアコンポーネントに提供することを可能にするドライバ又は他のソフトウェアを介し接続可能である。一実施例では、ＶＭ生成装置１５０は、ＶＭＭ１３０１３０の一部であり、又はＶＭＭ１３０の拡張を提供する。ＶＭ生成装置１５０はＶＭＭ１３０からスタンドアローンとすることが可能であることに留意されたい。ＶＭＭ１３０は、ＶＭを実行するマルチプラットフォーム環境（マルチコアマシーンなど）に設けられてもよく、又はＶＭを実行するプラットフォームを管理するネットワークエンティティであってもよい。
【００２１】
バーチャルマシーンマネージャ（ＶＭＭ）１３０は、ＶＭを管理する１以上のコンポーネントを表すＶＭコントローラ１３２を含む。ＶＭコントローラ１３２は、ＶＭＭ１３０がＶＭのリソースを管理し、中断されたＶＭの診断及び復元を実行することを可能にする。一実施例では、ＶＭ生成装置はＶＭコントローラ１３２を介しＶＭクローンを生成する。
【００２２】
ＶＭ生成装置１５０は、アプリケーションからオリジナルＶＭ１１０をクローン化するリクエストを受け付ける。オリジナルＶＭ１１０をクローン化するため、ＶＭ生成装置１５０は、ＶＭをクローン化するため何れのリソースが必要か決定する。ＶＭ生成装置１５０は、ＶＭＭ１３０から何れの物理的リソースが使用されるか（例えば、バーチャルハードウェア１１４を特定する）、オリジナルＶＭ１１０のオペレーティング環境を決定する（ＯＳ１１２の状態が何れであるかなど）。ＶＭ生成装置１５０は、例えば、コンフィギュレーション情報を要求し、当該情報を読み込むことを介して、オリジナルＶＭ１１０の状態を特定することができる。
【００２３】
ＶＭ生成装置１５０は、物理的ハードウェア１４０、特定された物理的リソース及びオリジナルＶＭ１１０の動作状態から、クローンが生成可能な場所を決定する。新規ＶＭ１２０は、オリジナルＶＭ１１０のものと等価なハードウェアリソースへのマッピングを有するバーチャルハードウェア１２４を有する。同様に、ＯＳ１２２はＯＳ１１２の状態に等しい。一実施例では、新たなＶＭ１２０を生成した後、ＶＭ生成装置１５０は要求元のアプリケーションに新規ＶＭ１２０の識別子を返す。
【００２４】
図２は、解析エンジンと配置エンジンとを有するバーチャルマシーン（ＶＭ）生成装置を有するシステムの実施例のブロック図である。システム２００は、アプリケーション２２２を有するＶＭ２０２を有する。アプリケーション２２２は、アプリケーションの処理フローを表す各種命令ラインを有する。アプリケーションの処理フローのある時点において、アプリケーション２２２は、パラメータ“ａ”、“ｂ”及び“ｃ”によるＶＭ２０２のクローンを生成するためのリクエストを表す命令ｖ＝ｖｍｆｏｒｋ（ａ，ｂ，ｃ）を有する。パラメータは、ＶＭ２０２のクローンであるＶＭ２０４の生成に関する選好又はヒントを示す。例えば、呼出元のアプリケーション２２２は、ＶＭ２０２と同一の物理的デバイス内で生成されるＶＭ２０４の選好、又は１つのハードウェアデバイスのすべてのリソースにより生成されるＶＭ２０４の選好を示すかもしれない。アプリケーション２２２はまた、クローンの目的、クローンの予想寿命などに関するヒントを示すことが可能である。一実施例では、パラメータはアプリケーション２２２がそれのソフトウェア環境に関する情報をＶＭ生成装置２１０にわたすことを可能にする。
【００２５】
ＶＭ生成装置２１０は、わたされたパラメータと共にｖｍｆｏｒｋ命令を受け付け、ＶＭ２０２をクローン化するため何れのリソースが必要であるか、クローンＶＭ２０４がどこで生成されるか決定する。一実施例では、ＶＭ生成装置２１０は、必要とされる各種ハードウェアリソースとクローン化されるＶＭ２０２のソフトウェア状態とをＶＭ生成装置２１０が特定することを可能にする解析エンジン２１２を有する。一実施例では、ＶＭ生成装置２１０は、ソフトウェア状態がＶＭ２０４においてクローン化されるバーチャルハードウェアにマッピングされる物理的リソースをＶＭ生成装置２１０が特定することを可能にする配置エンジン２１４を有する。ＶＭ２０４は、アプリケーション２２２のクローンを表すアプリケーション２２４により示される。ｖｍｆｏｒｋ命令が処理及び実行された後（ＶＭ２０４を生成する）、アプリケーション実行は、それが中断されたｖｍｆｏｒｋ命令後の命令から継続される。アプリケーションの実行は、ＶＭ２０４と同様にＶＭ２０２において継続されることに留意されたい。このため、アプリケーション２２２は、バーチャルマシーンを要求し、バーチャルマシーンを生成する１以上のセクションによりプログラム可能であり、バーチャルマシーンを要求するコードが、独立した環境において実行される。
【００２６】
図３は、バーチャルマシーン（ＶＭ）生成装置の実施例のブロック図である。ＶＭ生成装置３００は、ＶＭ生成装置３００の処理を指示する論理機能制御を実現する制御ロジック３０２及び／又はＶＭ生成装置３００の処理の指示に係るハードウェアを有する。ＴＭ生成装置３００に表される各コンポーネントは、それがハードウェア、ソフトウェア又はそれらの組み合わせにより実現可能であることを意味する。ロジック３０２は、ハードウェア論理回路及び／又はソフトウェアルーチンであるかもしれない。一実施例では、ロジック３０２は、計算装置のプロセッサ上で実行される命令であるかもしれない。このため、ソフトウェア実現形態では、ロジック３０２は、ＶＭ生成装置３００を実行するプロセッサの処理を制御するための命令を提供する。ハードウェア実現形態では、ロジック３０２は、機能制御（信号ラインによる出力など）を提供する回路を表す。ロジック３０２はまた、ソフトウェアとハードウェアが組み合わされた実現形態による埋め込みプロセッサを制御する動作命令及び回路を表す。
【００２７】
一実施例では、部分的又は完全なソフトウェアである実現形態では、ＶＭ生成装置３００は、命令を制御論理３０２に提供するコードシーケンス及び／又はプログラムを表す１以上のアプリケーションを有する。アプリケーション３０４は、ＶＭ生成装置３００を実行する共通のプロセッサ上で実行されるコードであるかもしれない。
【００２８】
一実施例では、ＶＭ生成装置３００は、データ及び／又は命令を格納するため、メモリ３０６及び／又はメモリリソース３０６へのアクセスを有する。ハードウェアによる実現形態では、ＶＭ生成装置３００を表すハードウェア回路は、メモリデバイスを有するかもしれない。ソフトウェアによる実現形態では、メモリ３０６は、ソフトウェアモジュールがデータをメモリに格納し、コードの実行のため、レジスタにアクセスする機能を表すと理解することができる。従って、メモリ３０６は、ＶＭ生成装置３００にローカルなメモリを有するか、さらに若しくは代わりに、ＶＭ生成装置３００があるデバイスのメモリを有するかもしれない。
【００２９】
ＶＭ生成装置３００はまた、ＶＭ生成装置３００の外部のエンティティに関して、ＶＭ生成装置３００との間のアクセスインタフェース（入出力インタフェース）を表す１以上のインタフェース３０８を有する。一実施例では、ＶＭ生成装置３００は、ユーザインタフェースを介しユーザにより外部的に操作可能なシステムのコンポーネントとしてアクセス可能である。このため、インタフェース３０８は、ＶＭ生成装置３００がユーザにアクセス可能である実現形態では、グラフィカルユーザインタフェース、キーボード、ポインタデバイスなどを含むかもしれない。他の実施例では、ＶＭ生成装置３００は、ユーザに対して、モジュールがユーザに視認されることなくそれの機能を実行することを意味する“ビハインド・ザ・シーン（ｂｅｈｉｎｄ  ｔｈｅ  ｓｃｅｎｅ）”を実行する。しかしながら、独立したコンポーネントとしてユーザに視認されない場合であっても、ＶＭ生成装置３００は、外部の電子コンポーネント又は外部のソフトウェアアプリケーションにアクセス可能である。このため、一実施例では、インタフェース３０８は、外部のプログラムがモジュールにアクセス可能な機構を有する（ＶＭ生成装置３００のハードウェアによる実現形態におけるドライバ、ソフトウェアによる実現形態におけるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）など）。
【００３０】
ＶＭ生成装置３００はまた、ＶＭ生成装置３００がＶＭクローン化のためリソース割当てを提供することを可能にする１以上の機能コンポーネントを表すクローン化エンジン３１０を有する。ＶＭ生成装置３００はまた、ＶＭ生成装置３００がクローンＶＭの配置を提供することを可能にする１以上の機能コンポーネントを表す配置エンジン３２０を有する。クローン化エンジン３１０と配置エンジン３２０は、ハードウェア及び／又はソフトウェアとして実現可能であり、ＶＭ生成装置３００の機能を提供する。これらのコンポーネントの機能又は特徴は、状態判定装置３１２、入力パラメータモジュール３１４、リソース判定装置３１６、クローン化エンジン３１０のためのリソース利用セレクタ３１８、リソース入力モジュール３２２、物理的ハードウェア（ｈｗ）識別子３２４、及び配置エンジン３２０のためのヒント／選好（ｐｒｅｆ）判定装置３２６を含む１以上手段を含むか、又はそれらにより提供される。各コンポーネントはさらに、具体的な機能を提供するための他のモジュールを有するかもしれない。ここで使用される“モジュール”とは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現されるルーチン、サブシステムなどを表す。
【００３１】
状態判定装置３１２は、クローン化エンジン３１０がクローン化するＶＭの動作状態を決定することを可能にする。動作状態は、ＶＭ上で実行されるオペレーティングシステム、オペレーティングシステム上で実行されるアプリケーション及びシステムコンフィギュレーションを含むことが可能である。セキュリティ情報、パーミッション、パスワードなどが、動作状態内に含まれるかもしれない。クローンＶＭにおける等価な動作状態とは、必ずしも正確に同一のコンフィギュレーションを示すものでないことに留意されたい。たとえな、独立した物理的リソースが使用される場合、ＩＰアドレス又は他のネットワーク識別子は異なっているかもしれず、またデジタル証明書が異なっているかもしれない。このため、“等価”という要素が、正確に同一であることを意味するものとしてここでは理解されるべきでなく、ある変数の例外による実質的に同一な状態を意味すると理解されるべきである。一実施例では、状態判定装置３１２は、クローン化されるＶＭの状態を決定するため、コンフィギュレーションテーブル及び／又はファイルにアクセスする。
【００３２】
入力パラメータモジュール３１４は、クローン化エンジン３１０が要求元のアプリケーションからヒント及び／又は選好パラメータを受け付けることを可能にする。一実施例では、状態情報はまたパラメータとしてわたされる。入力パラメータはまた、システム及びネットワーク情報を含むかもしれない。入力パラメータモジュール３１４は、各種入力パラメータを解析及び処理する。入力パラメータは、クローン化エンジン３１０に選択された／特定されたＶＭをクローン化するのに何れのリソースが利用可能であるか決定する際に利用可能な情報を提供する。
【００３３】
リソース判定装置３１６は、クローン化エンジン３１０がクローン化対象となるＶＭのバーチャルハードウェアコンフィギュレーション／プロファイルにあるリソースを特定することを可能にする。リソース判定装置３１６はまた、クローンを要求したアプリケーションが実行されているデバイスにおいて何れのリソースが利用可能であるか、また何れのネットワークリソースが利用可能であるか決定する。一実施例では、ＶＭ生成装置３００は、ロードの最も低いリソースによりＶＭを生成するよう構成される。一実施例では、リソース判定装置３１６は、必要とされるリソース、利用可能なリソース及び利用可能なリソースの潜在的な状態に関する情報を含むリスト又はデータ構造を編集する。このようなデータ構造は、配置エンジン３２０のコンポーネントなど、他の関数又はモジュールにリソース判定装置３１６によりわたすことができる。
【００３４】
リソース使用セレクタ３１８は、クローン化エンジン３１０がクローン化されると特定された各リソースについての使用ケースを決定することを可能にする。使用ケース選択の詳細は、図４を参照してより完全に記載され、ここでは簡単にしか説明しない。オリジナルＶＭと新規ＶＭの両方がそれらのバーチャルハードウェアコンフィギュレーションを介し１つの物理的コンポーネントにマップする場合、リソースを共有することが可能である。オリジナルＶＭによりマップされた物理的コンポーネントが新規ＶＭにより複製及びマップされる使用ケースを参照して、リソースを複製することも可能である。リソースの複製は、コンテンツの複製を含む。リソースはまた、初期的には共有可能であり、変更されると複製される（格納のためのコピー・オン・ライトなど）。このため、リード又はアクセスのため、双方のＶＭが同一の物理的デバイスにマップされるかもしれない。しかしながら、コンフィギュレーションの変更又はコンテンツの変更が新規ＶＭにおいて生じた場合、物理的デバイスの少なくとも当該部分は、新規ＶＭについて複製される。このため、リソースは全体的に又は部分的に複製することが可能である。
【００３５】
リソース入力モジュール３２２は、ＶＭクローンを生成するため何れのリソースが必要であるか決定可能な他のエンティティ又はクローン化エンジンのリソース判定を配置エンジン３２０が受け付けることを可能にする。例えば、リソース入力モジュール３２２は、リソース判定装置３１６に接続され、リソース判定装置の判定出力を受け付ける。配置エンジン３２０は、何れのリソースが利用可能であると知られているか、またこれらのリソースは何れの状態にあるかについて、リソース要求を考慮する。ここで使用される“利用可能”とは、一般にリソースが識別可能であり、ＶＭにアクセス可能であることを意味することに留意されたい。利用可能なリソースについて、リソースロード、パーミッション、セキュリティなどの他の考慮する事項は、特定されたリソースがＶＭのバーチャルハードウェアを介しマップ可能であるか判断するため考慮されるかもしれない。
【００３６】
物理的ハードウェアの識別子３２４は、配置エンジン３２０がクローンＶＭを生成するのに考慮することが可能な利用可能な物理的ハードウェアリソースを特定することを可能にする。一実施例では、すべてのシステムリソースはＶＭＭの起動に応答してＶＭＭに示され、当該情報はＶＭ生成装置３００に利用可能とすることができる。リソースはまた、それらがシステムにおいて利用可能になると、ＶＭ生成装置に示すことができる。（例えば、新たに追加されたリソースは、システムに自らを識別させることができる。）物理的ハードウェアの識別子３２４は、一般に利用可能なハードウェアを特定可能であり、具体的には、配置エンジン３２０がＶＭクローンのために使用される特定のハードウェアリソースを特定することを可能にする。このため、ＶＭクローンのために使用される特定のハードウェアが、物理的ハードウェアの識別子３２４又は等価なモジュールにより決定される。ＶＭのために使用されるハードウェアは１つの物理的位置（単一のデバイス又は単一のラックなど）にないかもしれないが、ハードウェアは、ＶＭの場所を特定し、又はＶＭが生成される場所を特定する。このため、ある場所又は他の場所におけるＶＭの生成を参照するとき、場所という表現は、ＶＭのバーチャルハードウェアコンフィギュレーションにおいてマップされるＶＭに割り当てられるハードウェアリソースを表す。
【００３７】
ヒント／選好判定装置３２６は、配置エンジン３２０が要求元アプリケーションにより提供される選好又はヒントに従ってクローンＶＭを生成する場所の判定を調整することを可能にする。ヒント又は示唆の具体例については上述されているため、ここでは繰り返されない。このようなヒント又は選好は、ＶＭについて何れの識別可能なハードウェアリソースが実際に割当て可能であるかに影響を与える可能性がある。例えば、あるロード選好が示された場合、配置エンジン３２０は、あるプロセッサが示された選好以上のロードを有しているため、ＶＭのバーチャルハードウェアコンフィギュレーションに対する適切な選択でないと判断するかもしれない。
【００３８】
ＶＭ生成装置３００はまた、ＶＭインスタンス化装置３３０を有する。ＶＭインスタンス化装置３３０は、ＶＭインスタンス化モジュールとも呼ばれ、ＶＭ生成装置３００が特定されたリソースにより決定された位置にクローンＶＭを生成するできることを表す。一実施例では、クローンＶＭの生成は、ＶＭＭからＶＭの生成を要求すること、又はクローンＶＭを生成するためＶＭＭをトリガーすることを表す、ＶＭを生成する具体的なアルゴリズムは、ＶＭが生成されるシステムと、ＶＭＭ１３０のコンフィギュレーション及び機能に従う特定の実現形態である。このため、特定のアルゴリズムの記載はここでの説明の範囲外であり、当業者はインスタンス化プロセスに精通していると考えられる。
【００３９】
モジュールに関するここでの記載は、ハードウェア、ソフトウェア及び／又はこれらの組み合わせを含むコンポーネントを説明する。ここでの処理を実行するコンポーネントがソフトウェア、ソフトウェアデータ、命令及び／又はコンフィギュレーションを含むケースでは、それは、マシーン／電子装置／ハードウェアによって生産物を介し提供されるかもしれない。生産物は、命令やデータなどを提供するコンテンツを有するマシーン可読媒体を含むかもしれない。これらのコンテンツは、ここに記載される電子装置に各種処理を実行させるかもしれない。マシーン可読媒体は、マシーン（計算装置、電子装置、電子システム／サブシステムなど）によりアクセス可能な形式により情報／コンテンツを提供（すなわち、格納及び／又は送信）する何れかの機構を含む。例えば、マシーン可読媒体は、記録可能／記録不可な媒体（ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなど）を含むかもしれない。マシーン可読媒体はさらに、電子装置が実行されているときに実行可能なストレージ上にロードされるコードを有する電子装置を含むかもしれない。従って、このようなコードを電子装置に提供することは、ここに記載されるコンテンツを生産物に提供することとして理解されるかもしれない。さらに、データベース又は他のメモリ位置にコードを格納し、通信媒体を介しダウンロードするコードを提供することは、ここに記載されるコンテンツを生産物に提供することとして理解されるかもしれない。
【００４０】
図４は、可能な各種リソース使用ケースによりＶＭを動的に生成するバーチャルマシーン（ＶＭ）生成装置を有するシステムの実施例のブロック図である。システム４００は、ここに記載される何れかの実施例によるＶＭ生成装置を有するシステムを表す。図示されるように、ＶＭ生成装置４２０は、アプリケーションにより生成されるような何れかのタイプのＶＭクローンに対するリクエストを表す入力４１０を受け付ける。このため、入力４１０は、それのコードの実行中にアプリケーションにより生成され、要求されたＶＭを生成するため、ＶＭ生成装置に提供される。一実施例では、入力４１０は、ＶＭ識別子（ＩＤ）４１２、ネットワーク情報（ｉｎｆｏ）４１４及びヒント／選好（ｐｒｅｆ）４１６を含む。他のアイテムがまた、入力４１０に含めることができる。
【００４１】
ＶＭ識別子４１２は、クローン化されるべきＶＭを特定する。この特定の一部は、ハードウェア及びソフトウェア状態を含むＶＭのコンフィギュレーションを含む可能性がある。ネットワーク情報４１４は、ネットワークリソースが利用可能であるか示し、そうである場合、何れのリソースが利用可能であるか、又は利用可能であるものの表示を取得する場所を示すかもしれない。ヒント／選好４１６は、ＶＭをクローン化するためのアプリケーションのリクエストに示されるヒント又は選好を表す。
【００４２】
入力４１０は、ＶＭをクローン化するのに何れのリソースが必要であるか決定し、ＶＭをクローン化するのに使用されるリソースを特定するＶＭ生成装置４２０により受け付けされる。当該決定の後、ＶＭ生成装置４２０は出力を生成し、又は特定されたＶＭを実際にクローン化するのに使用されるものを決定する。ここでの“出力”とは、単に物理的リソースの新規ＶＭに対するバーチャルハードウェアコンフィギュレーションへのマッピングを生成するプロセスとすることが可能であり、またクローン生成前後に行われるレポート、データ構造又はリストの生成を表す。ＶＭフォーク（ｆｏｒｋ）出力４３０は、ＶＭ生成装置４２０によりなされる出力又は決定を表す。何れのリソースを使用するか、またどのようにＶＭがクローン化されるかについての決定は全体としてＶＭに対して行われ、又は一実施例では、各リソースについて個別に行われる。このため、一実施例では、同じ使用ケースがすべてのリソースに適用可能である。（例えば、すべてのリソースが複製される。）あるいは、異なる使用ケースが異なるリソースに適用可能である。（例えば、ネットワークインタフェースが共有され、ストレージはコピー・オン・ライトであり、メモリは複製される。）
【００４３】
１つの可能な出力は、複製リソース４４２を含む。オリジナルＶＭ“Ａ”又はクローン化対象となるＶＭがリソースＦを有する場合、クローンＶＭ“Ｂ”は、Ｆ’として示されるＦの複製を有する。このとき、各ＶＭは使用及び管理するための自らのリソースを有する。リソースのコンフィギュレーション及び状態は、各ＶＭについて異なりうる。
【００４４】
他の可能な出力は、共有リソース４４４を含む。オリジナルＶＭ“Ａ”がそれのバーチャルハードウェアマッピングにリソースＦを有する場合、ＶＭ“Ｂ”はまたそれのバーチャルハードウェアマッピングにおいてＦに指示される。Ｆのコピーは、単にＶＭ“Ｂ”のバーチャルハードウェアにマップされるＦへの参照であるかもしれない。このため、双方のＶＭが同一のリソースにアクセスし、双方のＶＭにアクセス可能なリソースのコンフィギュレーション、コンテンツ及び状態の間には整合性がある。ＶＭ“Ａ”によるリソースＦへの変更はＶＭ“Ｂ”には視認可能であり、ＶＭ“Ｂ”は変更された状態によりＦにアクセスする必要がある。
【００４５】
他の可能な出力は、コピー・オン・チェンジ（ｃｏｐｙ  ｏｎ  ｃｈａｎｇｅ）４４６を含む。オリジナルＶＭ“Ａ”がそれのバーチャルハードウェアマッピングにリソースＦを有する場合、クローンＶＭ“Ｂ”はまずＦに指示され、ＶＭ“Ａ”とＶＭ“Ｂ”の双方が同一のリソースにアクセスすることとなる。コンフィギュレーションの変更がＶＭ“Ａ”又はＶＭ“Ｂ”によりなされる場合、変更が新たな（複製された）リソースとして書き込まれることによって、Ｆ’が生成される。このため、Ｆ’は実際にはＦであり（共有）、ＦとＦ’は同一であり、図４においてＦに指示されるように示される。しかしながら、変更に対しては、ＦとＦ’は異なるものとなり、ＢはそれのリソースＦ’として変更に指示される。
【００４６】
図５は、ＶＭ生成装置を有するバーチャルマシーン（ＶＭ）をフォークするためのプロセスの実施例のフロー図である。ここに示されるようなフロー図は、各種処理シーケンスの一例を与える。特定のシーケンス又は順序により示されているが、特段の断りがない場合、処理順序は変更可能である。従って、図示された実現形態は単なる一例として理解されるべきであり、異なる順序により処理は実行可能であり、一部の処理はパラレルに実行されるかもしれない。さらに、１以上の処理が本発明の各種実施例において省略可能であり、必ずしもすべての処理がすべての実現形態において必要とされるとは限らない。他の処理フローも可能である。
【００４７】
ＶＭ生成装置は、ＶＭをフォークするリクエストをアプリケーションから受け付ける（５０２）。当該リクエストは、アプリケーションロジック内で生成される。ＶＭ生成装置は、クローン化するＶＭを特定する（５０４）。クローン化対象となるＶＭは、リクエストを生成したアプリケーションから受け付けされる入力パラメータから特定することができる。ＶＭ生成装置は、クローン化するＶＭの状態を特定する（５０６）、当該処理は、コンフィギュレーションファイルの読み込み、又はクローン化されるＶＭからの揮発性メモリの複製を含むかもしれない。ＶＭ生成装置はまた、ＶＭクローンに必要なハードウェアリソースを特定する（５０８）。ハードウェアリソースは、ハードウェアシステムコンフィギュレーション、同様のファイル又は設定ストアを読み込むことから特定されるかもしれない。利用可能なハードウェアリソースはまた、ＶＭ生成装置により特定される（５１０）。システムおける利用可能なリソースは、ＶＭＭ１３０にプログラムすることが可能であり、ＶＭ生成装置に利用可能とされる。ネットワーク又はシステム管理エンティティは、利用可能なハードウェアリソースを特定するため問い合わせ可能であり、又は他の技術が利用されてもよい。
【００４８】
ＶＭ生成装置は、ＶＭクローン化処理について選好パラメータが指定されているか判断する（５１２）。クローンをリクエストするアプリケーションは、存在する場合には選好を指定する。選好が示されている場合、ＶＭ生成装置は、ＶＭをクローン化する場所を判断するのに選好を考慮する。ＶＭ生成装置はまた、ＶＭクローンの各リソースについて使用ケースシナリオを決定することができる（５１４）。上述されるように、リソースの使用ケースは、クローン化されるすべてのリソースについて同一であってもよく、又は異なる仕様ケースが各リソースについて適用可能であり、又は一部は一緒に処理され、他のものは別々に処理されるかもしれない。すべてのクローン化実現形態について、必ずしも可能なすべてのリソースが必要であるとは限らないことに留意されたい。ＶＭは、特定のタスクに必要なリソースのみへのアクセスしか有していないかもしれず、ＶＭクローンはこれらのリソースしか有しない。必要なリソースは、ハードウェアリソースのクローン化の使用シナリオを決定する際に、重要な考慮する事項となりうる。
【００４９】
ＶＭ生成装置は、特定された環境と受け付けされるかもしれない何れかの選好パラメータとに基づきＶＭクローンをインスタンス化すべき場所を決定する（５１６）。何れのリソースが必要であるか、また何れのリソースが利用可能であるか、何れのリソースがまず考慮されるべきか重み付けする潜在的な選好に関する情報は、ＶＭ生成装置による判断において一緒に考慮される。このような判断は、判定アルゴリズムと呼ばれるかもしれない。アルゴリズムのタイプ数及びそれぞれの形式は実現形態の問題であり、その可能性は潜在的には無限となることに留意されたい。
【００５０】
リソースとＶＭをインスタンス化する場所についての決定によって、ＶＭ生成装置は決定された場所において特定された環境によりクローンをインスタンス化する（５１８）。ＶＭクローンを生成した後、ＶＭ生成装置はクローン化の成功を示すハンドルを要求元のアプリケーションに返す（５２０）。クローン化処理が失敗した場合、それは要求元のアプリケーションに示され、エラー処理が実行される。
【００５１】
ここに記載されたものに加えて、本発明の範囲から逸脱することなく、本発明の開示された実施例及び実現形態に対して様々な改良が可能であるかもしれない。従って、ここでの説明及び実施例は例示的な意味で解釈されるべきであり、限定的な意味に解釈されるべきでない。本発明の範囲は、請求項を参照することによってのみ画定されるべきである。
【図面の簡単な説明】
【００５２】
【図１】図１は、バーチャルマシーン（ＶＭ）を動的に生成するＶＭ生成装置を有するシステムの実施例のブロック図である。
【図２】図２は、解析エンジンと配置エンジンとを備えるＶＭ生成装置を有するシステムの実施例のブロック図である。
【図３】図３は、ＶＭ生成装置の実施例のブロック図である。
【図４】図４は、可能な各種リソース使用ケースにより動的にＶＭを生成するＶＭ生成装置を有するシステムの実施例のブロック図である。
【図５】図５は、ＶＭ生成装置によりＶＭをフォークするプロセスの実施例のフロー図である。
【符号の説明】
【００５３】
１００、２００、４００  システム
１１０、１２０、２０２、２０４  バーチャルマシーン（ＶＭ）
１３０  バーチャルマシーンマネージャ（ＶＭＭ）
２００  システム
２１０、３００  ＶＭ生成装置
３３０  ＶＭインスタンス化装置
【図１】
2008165795.tif 000003
【図２】
2008165795.tif 000004
【図３】
2008165795.tif 000005
【図４】
2008165795.tif 000006
【図５】
2008165795.tif 000007