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