(57)【特許請求の範囲】
【請求項１】
仮想マシンを生成するための、コンピュータにより各ステップが実行される方法であって、
仮想マシン（ＶＭ）のための仮想マシン（ＶＭ）プロファイルおよびＶＭファイル・システムを構成するステップであって、前記仮想マシン（ＶＭ）が、ハードウェア非依存の態様でソフトウェアを実行するためのソフトウェア生成仮想化環境であり、前記ＶＭプロファイルが、どのオペレーティング・システム（ＯＳ）を前記ＶＭによって用いるかを定義し、前記ＶＭファイル・システムが、少なくとも１つの仮想アプリケーション・ディスクにおける仮想ファイルと少なくとも１つの物理ディスクにおける物理ファイルとの間のマップされた関係を定義する、前記構成するステップと、
前記少なくとも１つの仮想アプリケーション・ディスクにおけるファイルを、前記ＶＭにおける仮想ＯＳディスクの特定のファイル・システム位置にリンクするステップであって、前記ＶＭが前記仮想ＯＳディスクおよび前記少なくとも１つの仮想アプリケーション・ディスクを含む、前記リンクするステップと、
を有する、方法。
【請求項２】
前記少なくとも１つの仮想アプリケーション・ディスクのためのセキュリティを構成するステップを更に有する、請求項１に記載の方法。
【請求項３】
前記構成されたセキュリティが、前記少なくとも１つの仮想アプリケーション・ディスクと前記ＶＭ内の前記仮想ＯＳディスクとの間の新たにリンクされたアプリケーションを利用することをどのユーザに許可するかを制御する、請求項２に記載の方法。
【請求項４】
前記構成されたセキュリティが、前記少なくとも１つの仮想アプリケーション・ディスクにおけるファイルについてのファイル設定を変更することをどのユーザに許可するかを制御する、請求項３に記載の方法。
【請求項５】
前記構成されたセキュリティ、および、前記少なくとも１つの仮想アプリケーション・ディスクにおける前記ファイルの仮想オペレーティング・システム（ＯＳ）・ディスクにおける前記特定のファイル・システム位置に対するファイルのリンクが、前記少なくとも１つの仮想アプリケーション・ディスクにおけるエージェントによって実行される、請求項４に記載の方法。
【請求項６】
前記ＶＭがハイパーバイザによって活性化され、前記ハイパーバイザが、多数のオペレーティング・システムが同一のホスト・コンピュータ上で稼働することを可能とする仮想化プラットフォームである、請求項５に記載の方法。
【請求項７】
前記ＶＭが複数の仮想アプリケーション・ディスクを含み、前記複数の仮想アプリケーション・ディスクの各々が異なるベンダーからのものである、請求項１に記載の方法。
【請求項８】
プロセッサと、
前記プロセッサに結合されたシステム・バスと、
前記システム・バスに結合されたメモリとを備え、
前記メモリに格納されたコンピュータ・プログラム・コードが含む命令が、前記プロセッサによって実行可能であり、前記命令によって前記プロセッサは、
仮想マシン（ＶＭ）のための仮想マシン（ＶＭ）・プロファイルおよびＶＭファイル・システムを構成するステップであって、前記仮想マシン（ＶＭ）が、ハードウェア非依存の態様でソフトウェアを実行するためのソフトウェア生成仮想化環境であり、前記ＶＭプロファイルが、どのオペレーティング・システム（ＯＳ）を前記ＶＭによって用いるかを定義し、前記ＶＭファイル・システムが、少なくとも１つの仮想アプリケーション・ディスクにおける仮想ファイルと少なくとも１つの物理ディスクにおける物理ファイルとの間のマップされた関係を定義する、前記構成するステップと、
前記少なくとも１つの仮想アプリケーション・ディスクにおけるファイルを、前記ＶＭにおける仮想ＯＳディスクの特定のファイル・システム位置にリンクするステップであって、前記ＶＭが前記仮想ＯＳディスクおよび前記少なくとも１つの仮想アプリケーション・ディスクを含む、前記リンクするステップと、
を実行することによって仮想マシン（ＶＭ）を生成するために構成されている、
システム。
【請求項９】
前記命令によって前記プロセッサは、
前記少なくとも１つの仮想アプリケーション・ディスクのためのセキュリティを構成するために更に構成されている、請求項８記載のシステム。
【請求項１０】
前記構成されたセキュリティが、前記ＶＭを利用することをどのユーザに許可するかを制御する、請求項９に記載のシステム。
【請求項１１】
前記構成されたセキュリティが、前記少なくとも１つの仮想アプリケーション・ディスクにおけるファイルについてのファイル設定を変更することをどのユーザに許可するかを制御する、請求項１０に記載のシステム。
【請求項１２】
前記ＶＭが複数の仮想アプリケーション・ディスクを含み、前記複数の仮想アプリケーション・ディスクの各々が異なるベンダーからのものである、請求項８に記載のシステム。
【請求項１３】
請求項１ないし請求項７の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの分野に関し、具体的にはソフトウェアに関する。更に具体的には、本発明は、仮想マシン（ＶＭ：Virtual Machine）に関する。
【背景技術】
【０００２】
仮想マシン（ＶＭ）は、その特定のインスタンスが仮想イメージを用いる仮想アプライアンスと称され、ソフトウェアのための新しい配布手段（distribution vehicle）として現れたものである。各ＶＭは、典型的に、オープンソースのＬｉｎｕｘ（Ｒ）ＯＳ等の固定オペレーティング・システム（ＯＳ）から成り、これが仮想コンテナ（純粋にソフトウェア・ベース）において１つ以上のアプリケーションを稼働させる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
サード・パーティのベンダーからのコードを用いて仮想マシンを生成する方法およびシステムを提供する。
【課題を解決するための手段】
【０００４】
各々を異なるサード・パーティのベンダー（供給業者）からのものとすることができる仮想オペレーティング・システム（ＯＳ）・ディスクおよび仮想アプリケーション・ディスクを用いて、仮想マシン（ＶＭ）を生成する。仮想アプリケーション・ディスクは、ＶＭにおいて交換可能であり、複数のアプリケーションから選択可能であり、ＶＭプロファイルに従ってＶＭにおいて利用される。そして、仮想アプリケーション・ディスクにおける１つ以上のファイルを、仮想ＯＳディスクにおける特定のファイル・システム位置（ノード）にリンクする。
【０００５】
本発明の上述および追加の目的、特徴、および利点は、以下の詳細な記載において明らかとなろう。
【０００６】
これより、以下の図面を参照して、一例としてのみ、本発明の好適な実施形態について説明する。
【図面の簡単な説明】
【０００７】
【図１】本発明を実装することができる例示的な物理コンピュータを示すブロック図である。
【図２】本発明によって生成される例示的な仮想マシン（ＶＭ）を示す図である。
【図３】図２に示したＶＭが用いる仮想アプリケーション・ディスクについて更に詳細に示す図である。
【図４】サード・パーティのベンダーからのコードを用いてＶＭを生成するために本発明によって行われる例示的なステップを示す高レベルのフローチャートである。
【発明を実施するための形態】
【０００８】
当業者には明らかであるように、本発明は、方法、システム、またはコンピュータ・プログラムとして具現化することができる。従って、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、またはソフトウェアおよびハードウェアの側面を組み合わせた実施形態という形態を取ることができ、これらは全て、本明細書においては一般的に「回路」、「モジュール」、または「システム」と称することができる。更に、本発明は、コンピュータ使用可能記憶媒体上に具現化されたコンピュータ使用可能プログラム・コードを有するコンピュータ・プログラムとして具現化することも可能である。
【０００９】
いずれかの適切なコンピュータ使用可能またはコンピュータ可読媒体を利用することができる。例えば、コンピュータ使用可能またはコンピュータ可読媒体は、電子、磁気、光、電磁、赤外線、または半導体システム、装置、デバイス、または伝搬媒体等とすることができる。コンピュータ可読媒体の更に具体的な例は、１つ以上のワイヤを有する電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ（ＣＤ‐ＲＯＭ）、光記憶デバイス、インターネットもしくはイントラネットをサポートする伝送媒体、または磁気記憶デバイス等を含む。コンピュータ使用可能またはコンピュータ可読媒体は、プログラムが印刷された紙または別の適切な媒体とすることも可能であることに留意すべきであり、この場合は、プログラムを、例えば紙または他の媒体の光学スキャンによって電子的に捕獲し、次いでコンパイルし、解釈、または必要な場合には他の適切な方法で処理し、次いでコンピュータ・メモリに記憶することができる。本明細書の文脈では、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、もしくはデバイスによって用いるか、またはそれらと関連付けて用いるために、プログラムを保持し、格納し、伝達し、伝搬し、または移送することができるいずれかの媒体とすれば良い。コンピュータ使用可能媒体は、ベースバンドにおいてまたは搬送波の一部としてコンピュータ使用可能プログラム・コードが具現化された伝搬データ信号を含むことができる。コンピュータ使用可能プログラム・コードは、インターネット、ワイヤライン、光ファイバ・ケーブル、ＲＦ等を含むいずれかの適切な媒体を用いて、伝送することができる。
【００１０】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のオブジェクト指向プログラミング言語で記述することができる。しかし、本発明の動作を実行するためのコンピュータ・プログラム・コードは、「Ｃ」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語で記述することも可能である。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータ上もしくはサーバ上で、実行することができる。後者の場合には、遠隔コンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を介してユーザのコンピュータに接続することができ、または、この接続は、（例えば、インターネット・サービス・プロバイダを用いてインターネットを介して）外部のコンピュータに対して行うことも可能である。
【００１１】
以下、本発明の実施形態に従った方法、装置（システム）、およびコンピュータ・プログラムのフローチャートおよび／またはブロック図を参照して、本発明を説明する。フローチャートおよび／またはブロック図の各ブロック、およびフローチャートおよび／またはブロック図におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装可能であることは理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供すると、当該コンピュータまたは他のプログラマブル・データ処理装置のプロセッサ上で実行される命令が、フローチャートおよび／またはブロック図の１つ以上のブロックにおいて特定された機能／行為を実装するための手段を生成することを目的として、機械を生成することができる。
【００１２】
また、これらのコンピュータ・プログラム命令を、コンピュータ可読メモリに格納すると、当該コンピュータ可読メモリに格納された命令が、フローチャートおよび／またはブロック図の１つ以上のブロックにおいて特定された機能／行為を実装する命令手段を含む製品を生成することを目的として、当該コンピュータまたは他のプログラマブル・データ処理装置に対し特定の態様で機能するように指示することができる。
【００１３】
また、コンピュータ・プログラム命令を、コンピュータまたは他のプログラマブル・データ処理装置上にロードすると、そのコンピュータまたは他のプログラマブル装置上で実行される命令が、フローチャートおよび／またはブロック図の１つ以上のブロックにおいて特定された機能／行為を実装するためのプロセスを提供することを目的として、コンピュータ実装プロセスを生成するように当該コンピュータまたは他のプログラマブル装置上で一連の動作ステップを実行させることができる。
【００１４】
ここで図１を参照すると、本発明を利用することができる例示的なコンピュータ１００のブロック図が示されている。コンピュータ１００は、システム・バス１０６に結合されたプロセッサ・ユニット１０４を含む。また、システム・バス１０６には、ディスプレイ１１０を駆動／サポートするビデオ・アダプタ１０８も結合されている。システム・バス１０６は、バス・ブリッジ１１２を介して入出力（Ｉ／Ｏ）バス１１４に結合されている。Ｉ／Ｏバス１１４には、Ｉ／Ｏインタフェース１１６が結合されている。Ｉ／Ｏインタフェース１１６は、キーボード１１８、マウス１２０、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）ドライブ１１２、およびフラッシュ・メモリ・ドライブ１２６を含む様々なＩ／Ｏデバイスとの通信を提供する。Ｉ／Ｏインタフェース１１６に接続されたポートのフォーマットは、ユニバーサル・シリアル・バス（ＵＳＢ）ポート等を含む、当業者において周知のいずれかとすれば良い。
【００１５】
コンピュータ１００は、システム・バス１０６に結合されたネットワーク・インタフェース１３０を用いてネットワーク１２８を介してサーバ１５０と通信を行うことができる。ネットワーク１２８は、インターネット等の外部ネットワーク、イーサネット（Ｒ）または仮想プライベート・ネットワーク（ＶＰＮ）等の内部ネットワークとすることができる。サーバ１５０は、コンピュータ１００について示した態様でアーキテクチャ的に構成することができる。
【００１６】
また、システム・バス１０６には、ハード・ドライブ・インタフェース１３２も結合されている。ハード・ドライブ・インタフェース１３２は、ハード・ドライブ１３４とインタフェースする。一実施形態においては、ハード・ドライブ１３４は、システム・メモリ１３６をポピュレートする。システム・メモリ１３６もシステム・バス１０６に結合されている。システム・メモリ１３６は、コンピュータ１００における最下位レベルの揮発性メモリとして定義される。この揮発性メモリは、キャッシュ・メモリ、レジスタ、およびバッファを含む付加的な上位レベルの揮発性メモリ（図示せず）等を含むことができる。システム・メモリ１３６をポピュレートするコードは、オペレーティング・システム（ＯＳ）１３８およびアプリケーション・プログラム１４４を含む。
【００１７】
ＯＳ１３８は、アプリケーション・プログラム１４４等のリソースに対するトランスペアレントなユーザ・アクセスを提供するためのシェル１４０を含む。一般に、シェル１４０（ＵＮＩＸ（Ｒ）において呼ばれているように）は、ユーザとオペレーティング・システムとの間のインタープリタおよびインタフェースを提供するプログラムである。シェル１４０は、システム・プロンプトを提供し、キーボード１１８、マウス１２０、または他のユーザ入力媒体によって入力されたコマンドを解釈し、解釈した１つ以上のコマンドを処理するために適切な下位レベルのオペレーティング・システム（例えばカーネル１４２）に送信する。図示するように、ＯＳ１３８はカーネル１４２も含み、これはＯＳ１３８のための下位レベルの機能性を含む。カーネル１４２は、ＯＳ１３８の他の部分およびアプリケーション・プログラム１４４によって必要とされる不可欠なサービスを提供する。カーネル１４２が提供するサービスは、メモリ管理、プロセスおよびタスク管理、ディスク管理、およびＩ／Ｏデバイス管理を含む。
【００１８】
アプリケーション・プログラム１４４は、ブラウザ１４６を含む。ブラウザ１４６は、ワールド・ワイド・ウェブ（ＷＷＷ）のクライアント（すなわちコンピュータ１００）が、ネットワーク・メッセージをインターネットに送信および受信することを可能とするプログラム・モジュールおよび命令を含む。コンピュータ１００は、サーバ１５０との通信を可能とするために、ハイパーテキスト転送プロトコル（ＨＴＴＰ）メッセージングを利用することができる。また、システム・メモリ１３６におけるアプリケーション・プログラム１４４は、仮想マシン・アセンブラ（ＶＭＡ）１４８を含む。ＶＭＡ１４８は、以下で図２〜図４を参照して説明するステップで生成される、仮想マシン（ＶＭ）を実行する。ＶＭＡ１４８は、多数の動作システムを管理し監督するハイパーバイザ（仮想マシン・マネージャ（ＶＭＭ）としても知られる）の機能性を含むことができるが、かかるハイパーバイザのユーザは本発明にとって不可欠ではないことに留意すべきである。すなわち、本発明にとって、ハイパーバイザが本明細書に記載されるＶＭの動作に関与するか否かは重要でない。更に、ＶＭが、仮想ＯＳディスクにおける特定のノードにアプリケーションをリンクするための本明細書に記載した特徴を用いる限り、本発明の使用は、いずれかの特定の仮想マシンの実装に限定されない。
【００１９】
一実施形態においては、コンピュータ１００は、好ましくは「オン・デマンド」ベースで、サービス・プロバイダ・サーバ１５０からＶＭＡ１４８をダウンロードすることができる。
【００２０】
コンピュータ１００内に図示したハードウェア要素は、網羅的であることは意図されず、本発明によって必要な不可欠なコンポーネントを強調するために表されている。例えば、コンピュータ１００は、磁気カセット、デジタル・バーサタイル・ディスク（ＤＶＤ）、ベルヌーイ・カートリッジ（Bernoulli cartridge）等の代替的なメモリ記憶デバイスを含むことができる。本発明において、これらおよび他の変形が可能である。サービス・プロバイダ・サーバ１５０のためのハードウェア・アーキテクチャは、コンピュータ１００について示したものと実質的に同様とすることができることに留意すべきである。
【００２１】
ここで図２を参照すると、以下に説明する態様で異なるベンダーからのコードおよびファイルをアセンブルすることによって生成された仮想マシン（ＶＭ）２０２の概要が示されている。図１に示したＶＭＡ１４８によって生成されてその一部となるＶＭ２０２は、ハードウェア非依存型（hardware-agnostic）でソフトウェアを実行するためのソフトウェア生成仮想化環境であり、仮想オペレーティング・システム（ＯＳ）・ディスク２０４および１つ以上の仮想アプリケーション・ディスク２０６ａ〜２０６ｂを含む。仮想ＯＳディスク２０４および仮想アプリケーション・ディスク２０６ａ〜２０６ｂは、全て論理ディスクであり、１つ以上の物理ディスク２１８上に記憶されたデータの論理グループ化として定義されることに留意すべきである。ＶＭプロファイル２０８は、物理ディスク２１８上に位置する多数の利用可能なアプリケーション・システムからの仮想アプリケーション・ディスク２０６ａ〜２０６ｂの参照インスタンスを有する。一実施形態においては、仮想アプリケーション・ディスク２０６ａは、仮想アプリケーション・ディスク２０６ｂにおいて見出されるアプリケーションとは異なるソフトウェア・アプリケーションであり、従って、異なるベンダー／ソースからのものとすることができる。このため、各仮想アプリケーション・ディスク２０６ａ〜２０６ｂは、１つ以上の物理ディスク２１８上にある場合がある複数のパーティションから成る。
【００２２】
各仮想ＯＳディスク２０４および仮想アプリケーション・ディスク２０６から稼働するＯＳおよびアプリケーションは、ファイル・システムの観点からノードを有するツリーとして編成される。アプリケーションを適正に実行するために、各仮想アプリケーション・ディスク２０６における１つ以上のディレクトリ・ノードは、仮想ＯＳディスク２０４におけるＯＳのディレクトリ・ノードにマップ（ファイル・リンク）される。例えば、仮想アプリケーション・ディスク２０６ｂが、ＷｅｂＳｐｈｅｒｅ（Ｒ）という名前のアプリケーション・サービスのためのものであり、ノード２２０におけるファイル・ディレクトリ（例えば、／ＷｅｂＳｐｈｅｒｅ）が、ノード２２２において見出されるLinuxＯＳディレクトリの下になければならない（例えば、／ｏｐｔ／ＩＢＭ／ＷｅｂＳｐｈｅｒｅ）と仮定する。従って、ノード２２０はノード２２２にマップされる。このマッピングは、仮想アプリケーション・ディスクに対するシステム・シンボリック・リンクによって実行される。この点で、／ｏｐｔ／ＩＢＭ／ＷｅｂＳｐｈｅｒｅの下にあるＯＳに見えるプログラムは、実際は、仮想アプリケーション・ディスク２０６ｂ上にある。
【００２３】
ここで図３を参照すると、仮想アプリケーション・ディスク３０２（図２に示した仮想アプリケーション・ディスク２０６ａまたは２０６ｂと同等）について更に詳細に提示されている。仮想アプリケーション・ディスク３０２内にエージェント３０４がある。エージェント３０４は、スマートなエージェントであり、セキュリティを構成し（システム内にリンクされているアプリケーション・ディスクに関連した新しいユーザを生成すること、または新しいもしくは既存のシステム・ユーザに関連したファイル・レベルのセキュリティ設定を変更することから成る）、仮想アプリケーション・ディスク３０２内にあるファイルについて、他の仮想ディスク（他の仮想アプリケーション・ディスクおよび仮想ＯＳディスクの双方）に対するリンクを生成することができる。エージェント３０４は、仮想アプリケーション・ディスク３０２におけるファイルを、図２に示した仮想ＯＳディスク２０４の特定のパスまたはディレクトリにリンクする柔軟性を有する。
【００２４】
ここで図４を参照すると、仮想マシン（ＶＭ）を生成するために行われる例示的なステップのフローチャートが示されている。開始ブロック４０２は、仮想マシンの入力状態を表し、これは仮想ＯＳディスクを保持するＶＭプロファイルを含む。上述のように、ＶＭは、ハードウェア非依存の態様でソフトウェアを実行するためのソフトウェア生成仮想化環境である。ＶＭプロファイルは、ＶＭ内で開始される仮想ＯＳディスクを定義する。次いで、ＶＭプロファイル内に新しい仮想アプリケーション・ディスクを構成し（ブロック４０４）、それらをＶＭに見えるようにする。次いで、仮想アプリケーション・ディスクにおける１つ以上のファイルおよび／またはディレクトリを、ＶＭにおける仮想ＯＳディスクの特定のファイル・システム位置（例えばノード）にリンクする（ブロック４０６）。従って、ＶＭは、仮想ＯＳディスクおよび少なくとも１つの仮想アプリケーション・ディスクを含み、当該仮想アプリケーション・ディスク内に保持される１つ以上のアプリケーションをＶＭに利用可能とする。次いで、図３において上述したように、適切なセキュリティを構成し（ブロック４０８）、終了ブロック４１０において、仮想ＯＳディスクおよびリンクされた仮想アプリケーション・ディスクの出力がＶＭ２０２として配布されると、プロセスは終了する。
【００２５】
上述したように、本発明は、異なるベンダーからの仮想アプリケーション・ディスクを保持する単一の仮想イメージをアセンブルする機能を提供する。例えば、Ｌｉｎｕｘ（Ｒ）ＯＳ配布は、ＩＢＭ（Ｒ）のＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーションを含む第２の仮想アプリケーション・ディスクと一体にすることができる。各仮想アプリケーション・ディスクのインストールは１度だけ実行され、次いでＬｉｎｕｘ（Ｒ）ファイル・リンクを用いてアセンブルすることができる。このため、ＶＭにおける特定のＯＳについて、各アプリケーションを別個に選択し、配布し、維持することができる。
【００２６】
本発明によって提供される利点は、次の通りである。
１．柔軟性 − アプライアンス（例えばＶＭ）のベンダーは、使用可能なオペレーティング・システム配布について、より多くの選択肢を有する。これらのベンダーは、別個に生成し提供することができる完全サポート配布（例えばＲｅｄＨａｔ（Ｒ））を選択することができる。従来技術においては、ＶＭの一部として特定のＯＳが構築され配布されたので、ユーザは好みの別のＯＳを利用することができなかった。本発明は、アプリケーションの保守および配布からＯＳの保守および配布を分離するための方法を提供する。更に、ＶＭのユーザ（カスタマ）は、ＯＳのためのパッチ、サービス・パック、更新等を提供するために、もはやＶＭのプロバイダーに頼らなくて済む。
２．１度のインストール／構成 − オペレーティング・システムならびにミドルウェアおよびアプリケーションは双方とも、１度インストールするだけである。簡単なアセンブリ・ステップがあり、その後は、イメージを何度も用いることができる。
３．ミドルウェアおよびアプリケーションからのＯＳのクリーンな分離。いかなるミドルウェアおよびアプリケーションからもオペレーティング・システムをクリーンに分離して、オペレーティング・システムまたはアプリケーションの完全な置換またはパッチングによる、自動化されて独立した更新を可能とする。これにより、カスタマの現在のシステム上で実行しているものとは異なるＯＳを有するＶＭを実行することに関するカスタマの懸念を取り除く。
【００２７】
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実装のアーキテクチャ、機能性、および動作を例示することに留意すべきである。この点で、フローチャートまたはブロック図における各ブロックは、特定された１つ以上の論理機能を実装するための１つ以上の実行可能命令を含む、コードのモジュール、セグメント、または部分を表すことができる。また、いくつかの代替的な実装においては、ブロックに記載された機能は、図面に記載された順序に従わずに実行される場合があることに留意すべきである。例えば、連続して示された２つのブロックが、関連する機能性に応じて、実際には実質的に同時に実行されることがあり、または、これらのブロックが逆の順序で実行されることもある。また、ブロック図および／またはフローチャートの各ブロック、および複数ブロックの組み合わせは、特定された機能もしくは行為を実行する特殊目的ハードウェア・ベース・システムによって、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実装可能であることに留意すべきである。
【００２８】
本明細書において用いた用語は、特定の実施形態を説明するためだけのものであり、本発明を限定することは意図していない。本明細書において用いる場合、文脈によって明らかに他の場合が示されない限り、単数形は、複数の形態も含むように意図される。更に、本明細書において用いられる場合、「〜を含む」および／または「〜を含んでいる」という用語は、記載された特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはそれら全ての存在を特定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそのグループあるいはそれら全ての存在または追加を除外しないことは理解されよう。
【００２９】
特許請求の範囲において、全てのミーンズ・オア・ステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に特許請求の範囲に記載された他の要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことが意図される。本発明の記載は、例示および説明のために提示されているが、網羅的であることも、開示する形態の本発明に限定することも意図していない。当業者には多くの変更および変形が明らかであろう。実施形態は、本発明の原理および実際の適用を最良に説明するため、更に、想定される特定の使用に適した様々な変更と共に様々な実施形態について当業者が本発明を理解することができるように、選択し記載したものである。
【００３０】
従って、本発明を、その実施形態を参照して詳細に記載したので、変更および変形が可能であることは明らかであろう。
【図１】
0005201696.tif 000002
【図２】
0005201696.tif 000003
【図３】
0005201696.tif 000004
【図４】
0005201696.tif 000005