JP2011501846A - サード・パーティのコードを含む仮想マシンを生成するための方法、システム、およびコンピュータ・プログラム(サード・パーティのコードを含む仮想マシンの生成) - Google Patents

サード・パーティのコードを含む仮想マシンを生成するための方法、システム、およびコンピュータ・プログラム(サード・パーティのコードを含む仮想マシンの生成) Download PDF

Info

Publication number
JP2011501846A
JP2011501846A JP2010529375A JP2010529375A JP2011501846A JP 2011501846 A JP2011501846 A JP 2011501846A JP 2010529375 A JP2010529375 A JP 2010529375A JP 2010529375 A JP2010529375 A JP 2010529375A JP 2011501846 A JP2011501846 A JP 2011501846A
Authority
JP
Japan
Prior art keywords
virtual
disk
computer
file
virtual application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010529375A
Other languages
English (en)
Other versions
JP5201696B2 (ja
Inventor
ウィレンボーグ、ルース、エディス
ワン、チンボー
シュミット、ステファン、ジョン
ドイル、ロナルド、パトリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2011501846A publication Critical patent/JP2011501846A/ja
Application granted granted Critical
Publication of JP5201696B2 publication Critical patent/JP5201696B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 サード・パーティのベンダーからのコードを用いて仮想マシンを生成する方法およびシステムを提供する。
【解決手段】 各々を異種のサード・パーティの供給者からのものとすることができる仮想オペレーティング・システム(OS)・ディスクおよび仮想アプリケーション・ディスクを用いて、仮想マシン(VM)を生成する。仮想アプリケーション・ディスクにおける1つ以上のファイルを、仮想OSディスクにおける特定のファイル・システム位置(ノード)にリンクする。
【選択図】 図2

Description

本開示は、コンピュータの分野に関し、具体的にはソフトウェアに関する。更に具体的には、本開示は、仮想マシン(VM:Virtual Machine)に関する。
仮想マシン(VM)は、その具体的な例が仮想イメージを用いる仮想アプライアンスと称され、ソフトウェアのための新しい分散手段(distribution vehicle)として現れたものである。各VMは、典型的に、オープンソースのLinux(R)OS等の固定オペレーティング・システム(OS)から成り、これが仮想コンテナ(純粋にソフトウェア・ベース)において1つ以上のアプリケーションを実行する。
サード・パーティのベンダーからのコードを用いて仮想マシンを生成する方法およびシステムを提供する。
各々を異種のサード・パーティの供給者からのものとすることができる仮想オペレーティング・システム(OS)・ディスクおよび仮想アプリケーション・ディスクを用いて、仮想マシン(VM)を生成する。仮想アプリケーション・ディスクは、VMにおいて互換性があり、複数のアプリケーションから選択可能であり、VMプロファイルに従ってVMにおいて利用される。そして、仮想アプリケーション・ディスクにおける1つ以上のファイルを、仮想OSディスクにおける特定のファイル・システム位置(ノード)にリンクする。
本発明の上述および追加の目的、特徴、および利点は、以下の詳細な記載において明らかとなろう。
これより、以下の図面を参照して、一例としてのみ、本発明の好適な実施形態について説明する。
本発明の実施形態を実施することができる例示的な物理コンピュータを示す。 本発明の好適な実施形態によって生成される例示的な仮想マシン(VM)を示す。 図2に示したVMが用いる仮想アプリケーション・ディスクについて更に詳細に示す。 サード・パーティのベンダーからのコードを用いてVMを生成するために本発明の好適な実施形態によって行われる例示的なステップの高レベルのフローチャートを示す。
当業者には明らかであるように、本発明は、方法、システム、またはコンピュータ・プログラムとして具現化することができる。従って、本発明は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、これらは全て、本明細書においては一般的に「回路」、「モジュール」、または「システム」と称することができる。更に、本発明は、コンピュータ使用可能記憶媒体上に具現化されたコンピュータ使用可能プログラム・コードを有する媒体上のコンピュータ・プログラムとして具現化することも可能である。
いずれかの適切なコンピュータ使用可能またはコンピュータ読み取り可能な媒体を利用することができる。例えば、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体システム、装置、デバイス、または伝搬媒体とすることができる。コンピュータ読み取り可能媒体の更に具体的な例(非網羅的なリスト)は、以下を含む。すなわち、1つ以上のワイヤを有する電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EEPROMもしくはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD‐ROM)、光記憶デバイス、インターネットもしくはイントラネットをサポートするもの等の伝送媒体、または磁気記憶デバイスである。コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、プログラムが印刷された紙または別の適切な媒体とすることも可能であることに留意すべきであり、この場合は、プログラムを、例えば紙または他の媒体の光学スキャンによって電子的に捕獲し、次いでコンパイルし、解釈、または必要な場合には他の適切な方法で処理し、次いでコンピュータ・メモリに記憶することができる。この文書の状況においては、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、命令実行システム、装置、もしくはデバイスによって用いるか、またはそれらと関連付けて用いるプログラムを含有、記憶、伝達、伝搬、または移送することができるいずれかの媒体とすれば良い。コンピュータ使用可能媒体は、ベースバンドにおいてまたは搬送波の一部としてコンピュータ使用可能プログラム・コードが具現化された伝搬データ信号を含むことができる。コンピュータ使用可能プログラム・コードは、限定ではないが、インターネット、ワイヤライン、光ファイバ・ケーブル、RF等を含むいずれかの適切な媒体を用いて、伝送することができる。
本発明の実施形態の動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のオブジェクト指向プログラミング言語で記述することができる。しかしながら、本発明の実施形態の動作を実行するためのコンピュータ・プログラム・コードは、「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語で記述することも可能である。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的に遠隔コンピュータ上で、または全体的に遠隔コンピュータ上もしくはサーバ上で、実行することができる。後者の場合には、遠隔コンピュータを、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を介してユーザのコンピュータに接続することができ、または、この接続は、外部のコンピュータに対して行うことも可能である(例えば、インターネット・サービス・プロバイダを用いてインターネットを介して)。
方法、装置(システム)、およびコンピュータ・プログラムのフローチャート図またはブロック図あるいはその両方を参照して、本発明の実施形態について以下に説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供して、機械を生成することで、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックにおいて特定された機能/行為を実施するための手段を生成することが可能となっている。
また、これらのコンピュータ・プログラム命令は、コンピュータ読み取り可能メモリに記憶することができ、このメモリが、コンピュータまたは他のプログラマブル・データ処理装置に、特定の方法で機能するように指示することによって、コンピュータ読み取り可能メモリに記憶された命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックにおいて特定された機能/行為を実施する命令手段を含む製造品を生成することが可能となっている。
また、コンピュータ・プログラム命令を、コンピュータまたは他のプログラマブル・データ処理装置上にロードして、そのコンピュータまたは他のプログラマブル装置上で一連の動作ステップを実行させ、コンピュータ実施プロセスを生成することによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートまたはブロック図あるいはその両方のブロックまたは複数のブロックにおいて特定された機能/行為を実施するためのステップを提供することが可能となっている。
ここで図1を参照すると、本発明の実施形態を利用することができる例示的なコンピュータ100のブロック図が示されている。コンピュータ100は、システム・バス106に結合されたプロセッサ・ユニット104を含む。また、システム・バス106には、ディスプレイ110を駆動/サポートするビデオ・アダプタ108も結合されている。システム・バス106は、バス・ブリッジ112を介して入出力(I/O)バス114に結合されている。I/Oバス114には、I/Oインタフェース116が結合されている。I/Oインタフェース116は、キーボード118、マウス120、コンパクト・ディスク−読み取り専用メモリ(CD−ROM)ドライブ112、およびフラッシュ・メモリ・ドライブ126を含む様々なI/Oデバイスとの通信を提供する。I/Oインタフェース116に接続されたポートのフォーマットは、限定ではないが、ユニバーサル・シリアル・バス(USB)ポートを含むコンピュータ・アーキテクチャの当業者に既知のいずれかとすれば良い。
コンピュータ100は、システム・バス106に結合されたネットワーク・インタフェース130を用いてネットワーク128を介してサーバ150と通信を行うことができる。ネットワーク128は、インターネット等の外部ネットワーク、イーサネットまたは仮想プライベート・ネットワーク(VPN)等の内部ネットワークとすることができる。サーバ150は、コンピュータ100について示した方法でアーキテクチャ的に構成することができる。
また、システム・バス106には、ハード・ドライブ・インタフェース132も結合されている。ハード・ドライブ・インタフェース132は、ハード・ドライブ134とインタフェースする。一実施形態においては、ハード・ドライブ134は、システム・メモリ136をポピュレートする。システム・メモリ136もシステム・バス106に結合されている。システム・メモリ136は、コンピュータ100における最も低いレベルの揮発性メモリとして定義される。この揮発性メモリは、限定ではないが、キャッシュ・メモリ、レジスタ、およびバッファを含む付加的なもっと高いレベルの揮発性メモリ(図示せず)を含むことができる。システム・メモリ136をポピュレートするコードは、オペレーティング・システム(OS)138およびアプリケーション・プログラム144を含む。
OS138は、アプリケーション・プログラム144等のリソースに対するトランスペアレントなユーザ・アクセスを提供するために、シェル140を含む。一般に、シェル140(UNIX(R)において呼ばれているように)は、ユーザとオペレーティング・システムとの間のインタープリタおよびインタフェースを提供するプログラムである。シェル140は、システム・プロンプトを提供し、キーボード118、マウス120、または他のユーザ入力媒体によって入力されたコマンドを解釈し、解釈したコマンド(複数のコマンド)を処理するために適切なもっと下のレベルのオペレーティング・システム(例えばカーネル142)に送信する。図示するように、OS138はカーネル142も含み、これはOS138のためのもっと低いレベルの機能性を含む。カーネル142は、OS138の他の部分およびアプリケーション・プログラム144によって必要とされる不可欠なサービスを提供する。カーネル142が提供するサービスは、メモリ管理、プロセスおよびタスク管理、ディスク管理、およびI/Oデバイス管理を含む。
アプリケーション・プログラム144は、ブラウザ146を含む。ブラウザ146は、ワールド・ワイド・ウェブ(WWW)のクライアント(すなわちコンピュータ100)が、ネットワーク・メッセージをインターネットに送信および受信することを可能とするプログラム・モジュールおよび命令を含む。コンピュータ100は、サーバ150との通信を可能とするために、ハイパーテキスト転送プロトコル(HTTP)メッセージングを利用することができる。また、システム・メモリ136におけるアプリケーション・プログラム144は、仮想マシン・アセンブラ(VMA)148を含み、これが、図2から図4において以下に記載するステップで生成される仮想マシン(VM)を実行する。VMA148は、多数の動作システムを管理し監督するハイパーバイザ(仮想マシン・マネージャ(VMM)としても知られる)の機能性を含むことができるが、かかるハイパーバイザのユーザは不可欠ではないことに留意すべきである。すなわち、本発明の一実施形態において、ハイパーバイザが本明細書に記載されるVMの動作に関与するか否かは重要でない。更に、VMが、仮想OSディスクにおける特定のノードにアプリケーションをリンクするための本明細書に記載した特徴を用いる限り、本発明の実施形態の使用は、いずれかの特定の仮想マシンの実施に限定されない。
一実施形態においては、コンピュータ100は、好ましくは「オン・デマンド」で、サービス・プロバイダ・サーバ150からVMA148をダウンロードすることができる。
コンピュータ100に図示したハードウェア要素は、網羅的であることは意図されず、本発明の実施形態によって必要な不可欠なコンポーネントを強調するために表されている。例えば、コンピュータ100は、磁気カセット、デジタル・バーサタイル・ディスク(DVD)、ベルヌーイ・カトリッジ(Bernoulli cartridge)等の代替的なメモリ記憶デバイスを含むことができる。本発明の実施形態において、これらおよび他の変形が可能である。サービス・プロバイダ・サーバ150のためのハードウェア・アーキテクチャは、コンピュータ100について示したものと実質的に同様とすることができることに留意すべきである。
ここで図2を参照すると、以下に説明する方法で異なる供給者からのコードおよびファイルをアセンブルすることによって生成された仮想マシン(VM)202の概要が示されている。VM202は、図1に示したVMA148によって生成されてその一部となり、ハードウェア非依存型(hardware-agnostic)でソフトウェアを実行するためのソフトウェア生成仮想化環境であり、仮想オペレーティング・システム(OS)・ディスク204および1つ以上の仮想アプリケーション・ディスク206a〜206bを含む。OSディスク204およびアプリケーション・ディスク206a〜206bは、全て論理ディスクであり、1つ以上の物理ディスク218上に記憶されたデータの論理グループ化として定義されることに留意すべきである。VMプロファイル208は、物理ディスク218上に位置する多数の利用可能なアプリケーション・システムからの仮想アプリケーション・ディスク206a〜206bの参照インスタンスを有する。一実施形態においては、仮想アプリケーション・ディスク206aは、仮想アプリケーション・ディスク206bにおいて見出されるアプリケーションとは異なるソフトウェア・アプリケーションであり、従って、異なるベンダー/供給者/ソースからのものとすることができる。このため、各仮想アプリケーション・ディスク206a〜206bは、1つ以上の物理ディスク218上にある場合がある複数のパーティションから成る。
各仮想OSディスク204および仮想アプリケーション・ディスク206から実行するOSおよびアプリケーションは、ノードを有するツリーとしてのファイル・システムの観点から組織化される。アプリケーションが適正に実行するために、各仮想アプリケーション・ディスク206における1つ以上のディレクトリ・ノードは、仮想OSディスク204におけるOSのディレクトリ・ノードにマップ(ファイル・リンク)される。例えば、仮想アプリケーション・ディスク206bが、WebSphere(R)という名前のアプリケーション・サービスのためのものであり、ノード220におけるファイル・ディレクトリ(例えば、/WebSphere)が、ノード222において見出されるLinuxOSディレクトリの下になければならない(例えば、/opt/IBM/WebSphere)と仮定する。従って、ノード220はノード222にマップされる。このマッピングは、仮想アプリケーション・ディスクに対するシステム・シンボリック・リンクによって実行される。この点で、/opt/IBM.WebSphereの下にあるOSに見えるプログラムは、実際は、アプリケーション論理ディスク206b上にある。
ここで図3を参照すると、仮想アプリケーション・ディスク302(図2に示した仮想アプリケーション・ディスク206aまたは206bと同等)について更に詳細に提示されている。仮想アプリケーション・ディスク302内にエージェント304がある。エージェント304は、スマートなエージェントであり、セキュリティを構成し(システム内にリンクされているアプリケーション・ディスクに関連した新しいユーザを生成すること、または新しいもしくは既存のシステム・ユーザに関連したファイル・レベルのセキュリティ設定を変更することから成る)、仮想アプリケーション・ディスク302内にあるファイルについて、他の仮想ディスク(他の仮想アプリケーション・ディスクおよび仮想OSディスクの双方)に対するリンクを生成することができる。エージェント304は、仮想アプリケーション・ディスク302におけるファイルを、図2に示したOS仮想ディスク204の特定のパスまたはディレクトリにリンクする柔軟性を有する。
ここで図4を参照すると、仮想マシン(VM)を生成するために行われる例示的なステップのフローチャートが示されている。開始ブロック402は、仮想マシンの入力状態を表し、これはOS論理ディスクを含むVMプロファイルを含む。上述のように、VMは、ハードウェア非依存型でソフトウェアを実行するためのソフトウェア生成仮想化環境である。VMプロファイルは、VM内で開始されるOS論理ディスクを定義する。次いで、VMプロファイル内に新しいアプリケーション論理ディスクを構成し(ブロック404)、それらをVMに見えるようにする。次いで、仮想アプリケーション・ディスクにおける1つ以上のファイルまたはディレクトリあるいはその両方を、VMにおける仮想OSディスクの特定のファイル・システム位置(例えばノード)にリンクする(ブロック406)。従って、VMは、仮想OSディスクおよび少なくとも1つの仮想アプリケーション・ディスクを含み、アプリケーション仮想アプリケーション・ディスク(複数のディスク)内に含まれるアプリケーション(複数のアプリケーション)をVMに利用可能とする。次いで、適切なセキュリティを構成し(ブロック408に示し、図3において上述したように)、終了ブロック410において、仮想OSディスクおよびリンクされた仮想アプリケーション・ディスク(複数のディスク)の出力がVM202として送出されると、プロセスは終了する。
本明細書において述べたように、本発明の実施形態は、異なる組織からの論理仮想アプリケーション・ディスクを含む単一の仮想イメージをアセンブルする機能を提供する。例えば、Linux(R)OS分散は、IBM(R)のWebSphere(R)アプリケーションを含む第2の論理仮想ディスクと一体にすることができる。各論理アプリケーション・ディスクのインストールは1度だけ実行され、次いでLinux(R)ファイル・リンクを用いてアセンブルすることができる。このため、VMにおける特定のOSについて、各アプリケーションを別個に選択し、分散させ、維持することができる。
本発明の実施形態によって提供される利点は、限定ではないが、以下を含む。
1.柔軟性 − アプライアンス(例えばVM)のベンダーは、使用可能なオペレーティング・システム分散について、より多くの選択肢を有する。彼らは、別個に生成し提供することができる完全サポート分散(例えばRedHat(R))を選択することができる。従来技術においては、VMの一部として特定のOSが構築され分散されたので、ユーザは好みの別のOSを利用することができなかった。本発明の実施形態は、アプリケーションの保守および分散からOSの保守および分散を分離するための方法を提供する。更に、VMのユーザ(カスタマ)は、OSのための保守を分散させる(パッチ、サービス・パック、更新等を提供する)ために、もはやVMのプロバイダーに頼らなくて済む。
2.1度のインストール/構成 − オペレーティグ・システムならびにミドルウェアおよびアプリケーションは双方とも、1度インストールするだけである。簡単なアセンブリ・ステップがあり、次いでイメージを何度も用いることができる。
3.ミドルウェアおよびアプリケーションからのOSのクリーンな分離。いかなるミドルウェアおよびアプリケーションからもオペレーティング・システムをクリーンに分離して、オペレーティング・システムまたはアプリケーションの完全な置換またはパッチングによる、自動化されて独立した更新を可能とする。これにより、カスタマの現在のシステム上で実行しているものとは異なるOSを有するVMを実行することに関するカスタマの懸念を取り除く。
図面におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を例示することに留意すべきである。この点で、フローチャートまたはブロック図における各ブロックは、特定された論理機能(複数の機能)を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または部分を表すことができる。また、いくつかの代替的な実施においては、ブロックに記載された機能は、図面に記載された順序に従わずに実行される場合があることに留意すべきである。例えば、呼び出される機能性に応じて、連続して示された2つのブロックは、実際には実質的に同時に実行されることがあり、または、ブロックは時として逆の順序で実行される場合もある。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、特定された機能もしくは行為を実行する特殊目的ハードウェア・ベース・システムによって、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
本明細書において用いた用語は、特定の実施形態を説明するためだけのものであり、本発明を限定することは意図していない。本明細書において用いる場合、文脈によって明らかに他の場合が示されない限り、単数形の「a」、「an」、および「the」は、複数の形態も含むように意図される。更に、本明細書において用いられる場合、「〜を含む」または「〜を含んでいる」あるいはその両方の言葉は、規定された特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはそれら全ての存在を特定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、コンポーネント、またはそのグループあるいはそれら全ての存在または追加を除外しないことは理解されよう。
特許請求の範囲において、全てのミーンズ・オア・ステップ・プラス・ファンクション(means or step plus function)要素の対応する構造、材料、行為、および均等物は、具体的に特許請求された他の請求された要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことが意図される。本発明の実施形態の記載は、例示および説明のために提示されているが、網羅的であることも、開示する形態の本発明に限定することも意図していない。当業者には多くの変更および変形が明らかであろう。実施形態は、本発明の原理および実際の適用を最良に説明するため、更に、想定される特定の使用に適した様々な変更と共に様々な実施形態について当業者が本発明を理解することができるように、選択し記載したものである。
従って、本出願の発明を、その実施形態を参照して詳細に記載したので、変更および変形が可能であることは明らかであろう。

Claims (20)

  1. サード・パーティ・コードを含む仮想マシンを生成するための方法であって、
    仮想マシン(VM)のための仮想マシン(VM)プロファイルおよびVMファイル・システムを構成するステップであって、前記仮想マシン(VM)が、ハードウェア非依存型でソフトウェアを実行するためのソフトウェア生成仮想化環境であり、前記VMプロファイルが、どのオペレーティング・システム(OS)を前記VMによって用いるかを規定し、前記VMファイル・システムが、少なくとも1つの仮想アプリケーション・ディスクにおける仮想ファイルと少なくとも1つの物理ディスクにおける物理ファイルとの間のマップされた関係を規定する、ステップと、
    前記少なくとも1つの仮想アプリケーション・ディスクにおけるファイルを、前記VMにおける仮想OSディスクにおける特定のファイル・システム位置にリンクするステップであって、前記VMが前記仮想OSディスクおよび前記少なくとも1つの仮想アプリケーション・ディスクを含み、前記少なくとも1つの仮想アプリケーション・ディスクからの前記ファイルにおける命令を、前記仮想OSディスクにおける前記特定のファイル・システム位置に位置するOS命令にリンクし、このOS命令と関連付けて実行する、ステップと、
    を含む、方法。
  2. 前記少なくとも1つの仮想アプリケーション・ディスクのためのセキュリティを構成するステップを更に含む、請求項1に記載の方法。
  3. 構成されたセキュリティが、前記少なくとも1つの仮想アプリケーション・ディスクと前記VM内の前記仮想OSディスクとの間の新たにリンクされたアプリケーションを利用することをどのユーザに許可するかを制御する、請求項2に記載の方法。
  4. 前記構成されたセキュリティが、少なくとも1つの仮想アプリケーション・ディスクにおけるファイルについてのファイル設定を変更することをどのユーザに許可するかを制御する、請求項3に記載の方法。
  5. 前記構成されたセキュリティ、および、前記少なくとも1つの仮想アプリケーション・ディスクにおける前記ファイルの仮想オペレーティング・システム(OS)・ディスクにおける前記特定のファイル・システム位置に対するファイルのリンクが、前記少なくとも1つの仮想アプリケーション・ディスクにおけるエージェントによって実行される、請求項4に記載の方法。
  6. 前記エージェントが、前記VMが活性化されたことに応答してシステム・サービスとして自動的に実行される、請求項5に記載の方法。
  7. 前記VMがハイパーバイザによって活性化され、前記ハイパーバイザが、多数のオペレーティング・システムが同一のホスト・コンピュータ上で実行することを可能とする仮想化プラットフォームである、請求項6に記載の方法。
  8. 前記エージェントが前記VMのユーザによって手動で呼び出される、請求項5に記載の方法。
  9. 前記VMが多数の仮想アプリケーション・ディスクを含み、前記多数の仮想アプリケーション・ディスクの各々が異なるベンダーからのものである、請求項1に記載の方法。
  10. プロセッサと、
    前記プロセッサに結合されたデータ・バスと、
    前記データ・バスに結合されたメモリと、
    コンピュータ・プログラム・コードを具現化するコンピュータ使用可能媒体であって、前記コンピュータ・プログラム・コードが含む命令が、前記プロセッサによって実行可能であり、
    仮想マシン(VM)のための仮想マシン(VM)・プロファイルおよびVMファイル・システムを構成するステップであって、前記仮想マシン(VM)が、ハードウェア非依存型でソフトウェアを実行するためのソフトウェア生成仮想化環境であり、前記VMプロファイルが、どのオペレーティング・システム(OS)を前記VMによって用いるかを規定し、前記VMファイル・システムが、少なくとも1つの仮想アプリケーション・ディスクにおける仮想ファイルと少なくとも1つの物理ディスクにおける物理ファイルとの間のマップされた関係を規定する、ステップと、
    前記少なくとも1つの仮想アプリケーション・ディスクにおけるファイルを、前記VMにおける仮想OSディスクにおける特定のファイル・システム位置にリンクするステップであって、前記VMが前記仮想OSディスクおよび前記少なくとも1つの仮想アプリケーション・ディスクを含み、前記少なくとも1つの仮想アプリケーション・ディスクからの前記ファイルにおける命令を、前記仮想OSディスクにおける前記特定のファイル・システム位置に位置するOS命令にリンクし、このOS命令と関連付けて実行する、ステップと、
    を実行することによって仮想マシン(VM)を生成するために構成されている、コンピュータ使用可能媒体と、
    を含む、システム。
  11. 前記命令が、
    前記少なくとも1つの仮想アプリケーション・ディスクのためのセキュリティを構成するために更に構成されている、請求項10記載のシステム。
  12. 構成されたセキュリティが、前記VMを利用することをどのユーザに許可するかを制御する、請求項11に記載のシステム。
  13. 前記構成されたセキュリティが、少なくとも1つの仮想アプリケーション・ディスクにおけるファイルについてのファイル設定を変更することをどのユーザに許可するかを制御する、請求項12に記載のシステム。
  14. 前記VMが多数の仮想アプリケーション・ディスクを含み、前記多数の仮想アプリケーション・ディスクの各々が異なるベンダーからのものである、請求項10に記載のシステム。
  15. 仮想マシン(VM)を生成するためのコンピュータ・プログラムであって、
    コンピュータ使用可能プログラム・コードが具現化されたコンピュータ使用可能媒体であって、
    仮想マシン(VM)のための仮想マシン(VM)・プロファイルおよびVMファイル・システムを構成するために構成されたコンピュータ使用可能プログラム・コードであって、前記仮想マシン(VM)が、ハードウェア非依存型でソフトウェアを実行するためのソフトウェア生成仮想化環境であり、前記VMプロファイルが、どのオペレーティング・システム(OS)を前記VMによって用いるかを規定し、前記VMファイル・システムが、少なくとも1つの仮想アプリケーション・ディスクにおける仮想ファイルと少なくとも1つの物理ディスクにおける物理ファイルとの間のマップされた関係を規定する、コンピュータ使用可能プログラム・コードと、
    前記少なくとも1つの仮想アプリケーション・ディスクにおけるファイルを、前記VMにおける仮想OSディスクにおける特定のファイル・システム位置にリンクするために構成されたコンピュータ使用可能プログラム・コードであって、前記VMが前記仮想OSディスクおよび前記少なくとも1つの仮想アプリケーション・ディスクを含み、前記少なくとも1つの仮想アプリケーション・ディスクからの前記ファイルにおける命令を、前記仮想OSディスクにおける前記特定のファイル・システム位置に位置するOS命令にリンクし、このOS命令と関連付けて実行する、コンピュータ読み取り可能プログラム・コードと、
    を含む、コンピュータ使用可能媒体を含む、コンピュータ・プログラム。
  16. 前記少なくとも1つの仮想アプリケーション・ディスクのためのセキュリティを構成するために構成されたコンピュータ読み取り可能プログラム・コードを更に含む、請求項15記載のコンピュータ・プログラム。
  17. 構成されたセキュリティが、前記VMを利用することをどのユーザに許可するかを制御する、請求項16に記載のコンピュータ・プログラム。
  18. 前記構成されたセキュリティが、少なくとも1つの仮想アプリケーション・ディスクにおけるファイルについてのファイル設定を変更することをどのユーザに許可するかを制御する、請求項17に記載のコンピュータ・プログラム。
  19. 前記コンピュータ使用可能媒体が遠隔サーバのコンポーネントであり、前記コンピュータ実行可能命令が前記遠隔サーバからローカル・コンピュータに展開可能である、請求項15に記載のコンピュータ・プログラム。
  20. 前記コンピュータ実行可能命令を、サービス・プロバイダによって、オン・デマンドでカスタマに提供することができる、請求項15に記載のコンピュータ・プログラム。
JP2010529375A 2007-10-16 2008-10-15 仮想マシンを生成するための方法、システム、およびコンピュータ・プログラム Active JP5201696B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/872,793 2007-10-16
US11/872,793 US8276137B2 (en) 2007-10-16 2007-10-16 Creating a virtual machine containing third party code
PCT/EP2008/063889 WO2009050206A2 (en) 2007-10-16 2008-10-15 Creating a virtual machine containing third party code

Publications (2)

Publication Number Publication Date
JP2011501846A true JP2011501846A (ja) 2011-01-13
JP5201696B2 JP5201696B2 (ja) 2013-06-05

Family

ID=40532578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010529375A Active JP5201696B2 (ja) 2007-10-16 2008-10-15 仮想マシンを生成するための方法、システム、およびコンピュータ・プログラム

Country Status (6)

Country Link
US (2) US8276137B2 (ja)
EP (1) EP2212781A2 (ja)
JP (1) JP5201696B2 (ja)
KR (1) KR101159435B1 (ja)
CN (1) CN101828170B (ja)
WO (1) WO2009050206A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157296B2 (en) 2007-10-16 2021-10-26 International Business Machines Corporation Creating a virtual machine containing third party code

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266578B2 (en) * 2007-01-10 2012-09-11 Angela Bazigos Virtual validation of software systems
US8276186B2 (en) * 2008-01-22 2012-09-25 Honeywell International Inc. System and method for synchronizing security settings of control systems
US8365274B2 (en) * 2008-09-11 2013-01-29 International Business Machines Corporation Method for creating multiple virtualized operating system environments
US9514089B1 (en) 2010-03-31 2016-12-06 EMC IP Holding Company LLC Mobile device network data synchronization
US9152650B1 (en) 2010-03-31 2015-10-06 Emc Corporation Mobile device data recovery
US8489708B2 (en) 2010-04-06 2013-07-16 Microsoft Corporation Virtual application extension points
US20110258624A1 (en) * 2010-04-19 2011-10-20 Fuat Bahadir Virtual machine based secure operating system
US9239860B1 (en) * 2010-06-30 2016-01-19 Emc Corporation Augmenting virtual directories
CN103309690B (zh) * 2012-03-12 2016-08-17 联想(北京)有限公司 处理数据的方法和电子设备
KR101493828B1 (ko) * 2012-05-31 2015-02-16 주식회사 케이티 가상머신 초기 설정 자동화 방법 및 가상머신 초기 설정 자동화 서비스 제공 방법
US20140052558A1 (en) * 2012-06-18 2014-02-20 Redigi, Inc. Methods and apparatus for sharing digital books and other digital media objects
CN102932408B (zh) * 2012-09-21 2016-02-03 中国电信股份有限公司 一种服务器集群的管理方法和平台
US9292318B2 (en) * 2012-11-26 2016-03-22 International Business Machines Corporation Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
US9251115B2 (en) 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US9456003B2 (en) 2013-07-24 2016-09-27 At&T Intellectual Property I, L.P. Decoupling hardware and software components of network security devices to provide security software as a service in a distributed computing environment
US9537932B2 (en) * 2013-10-23 2017-01-03 Microsoft Technology Licensing, Llc Emulating test distributed application on server
WO2015109593A1 (zh) * 2014-01-27 2015-07-30 华为技术有限公司 虚拟化方法和装置及计算机设备
GB2522677A (en) 2014-02-03 2015-08-05 Ibm Updating software products on virtual machines with software images of new levels thereof
CN106126303B (zh) * 2016-07-01 2019-09-17 合一信息技术(北京)有限公司 Linux操作系统的安装方法、装置及系统
US12079171B2 (en) 2016-08-02 2024-09-03 Microsoft Technology Licensing, Llc Symbolic link based placeholders
US10616327B2 (en) 2016-09-20 2020-04-07 Microsoft Technology Licensing, Llc Policy based hydration behavior in cloud storage synchronization
US11368528B2 (en) 2016-09-20 2022-06-21 Microsoft Technology Licensing, Llc Dynamic storage management in cloud storage synchronization
US11321114B2 (en) * 2019-07-19 2022-05-03 Vmware, Inc. Hypervisor assisted application virtualization

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022713A (ja) * 1999-05-19 2001-01-26 Internatl Business Mach Corp <Ibm> メモリ・アクセス割込みを介して生成されるプロセッサ・リセット
US6195650B1 (en) * 2000-02-02 2001-02-27 Hewlett-Packard Company Method and apparatus for virtualizing file access operations and other I/O operations
JP2005514699A (ja) * 2002-01-10 2005-05-19 スフェラ・コーポレーション 複数の専用サーバをホスティングする方法およびシステム
US20050268336A1 (en) * 2004-05-28 2005-12-01 Microsoft Corporation Method for secure access to multiple secure networks
JP2006155583A (ja) * 2004-11-08 2006-06-15 Ntt Docomo Inc デバイス管理装置、デバイス及びデバイス管理方法
US20070165937A1 (en) * 2005-12-30 2007-07-19 Markov Mladen L System and method for dynamic VM settings

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594745B2 (en) * 2001-01-31 2003-07-15 Hewlett-Packard Development Company, L.P. Mirroring agent accessible to remote host computers, and accessing remote data-storage devices, via a communcations medium
JP2002288255A (ja) * 2001-03-26 2002-10-04 Toshiba Corp ハードウェア記述言語で記述されたシステムlsiの回路部品、及びその検証方法、検証支援回路、システムlsiの製造方法
CN1241124C (zh) * 2001-09-14 2006-02-08 北京瑞星科技股份有限公司 一种在计算机系统中完全控制文件的方法
CN100389408C (zh) * 2001-11-08 2008-05-21 联想(北京)有限公司 硬盘数据加密备份及还原方法
US7886291B1 (en) * 2003-06-11 2011-02-08 Symantec Corporation Layer typed prioritizing application layered systems
US7421533B2 (en) 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines
GB2419703A (en) * 2004-10-29 2006-05-03 Hewlett Packard Development Co Isolated virtual overlay infrastructures each having an interface to control interaction with others
US20060184935A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from users and services
US8370819B2 (en) * 2005-03-25 2013-02-05 Microsoft Corporation Mechanism to store information describing a virtual machine in a virtual disk image
US8234640B1 (en) * 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
WO2008117500A1 (ja) * 2007-03-27 2008-10-02 Nec Corporation 仮想マシン運用システム、仮想マシン運用方法およびプログラム
US8245217B2 (en) * 2007-10-12 2012-08-14 Microsoft Corporation Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
US8276137B2 (en) 2007-10-16 2012-09-25 International Business Machines Corporation Creating a virtual machine containing third party code

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001022713A (ja) * 1999-05-19 2001-01-26 Internatl Business Mach Corp <Ibm> メモリ・アクセス割込みを介して生成されるプロセッサ・リセット
US6195650B1 (en) * 2000-02-02 2001-02-27 Hewlett-Packard Company Method and apparatus for virtualizing file access operations and other I/O operations
JP2005514699A (ja) * 2002-01-10 2005-05-19 スフェラ・コーポレーション 複数の専用サーバをホスティングする方法およびシステム
US20050268336A1 (en) * 2004-05-28 2005-12-01 Microsoft Corporation Method for secure access to multiple secure networks
JP2006155583A (ja) * 2004-11-08 2006-06-15 Ntt Docomo Inc デバイス管理装置、デバイス及びデバイス管理方法
US20070165937A1 (en) * 2005-12-30 2007-07-19 Markov Mladen L System and method for dynamic VM settings

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11157296B2 (en) 2007-10-16 2021-10-26 International Business Machines Corporation Creating a virtual machine containing third party code

Also Published As

Publication number Publication date
US11157296B2 (en) 2021-10-26
JP5201696B2 (ja) 2013-06-05
WO2009050206A3 (en) 2009-07-09
WO2009050206A2 (en) 2009-04-23
CN101828170A (zh) 2010-09-08
EP2212781A2 (en) 2010-08-04
US20130014110A1 (en) 2013-01-10
CN101828170B (zh) 2013-04-03
KR101159435B1 (ko) 2012-07-13
US20090100423A1 (en) 2009-04-16
KR20100080527A (ko) 2010-07-08
US8276137B2 (en) 2012-09-25

Similar Documents

Publication Publication Date Title
JP5201696B2 (ja) 仮想マシンを生成するための方法、システム、およびコンピュータ・プログラム
US11178207B2 (en) Software version control without affecting a deployed container
US9405529B2 (en) Designing and cross-configuring software
US9645858B2 (en) Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud infrastructure
US9195453B1 (en) Remediation of known defects and vulnerabilities in cloud application packages
JP6058628B2 (ja) マルチノードアプリケーションのデプロイメント・システム
US9087076B2 (en) Automated filer technique for use in virtualized appliances and applications
CN113711541A (zh) 响应于触发因素的检测动态改变容器化工作负载隔离
US20120030672A1 (en) Microcloud platform delivery system
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
US20090276770A1 (en) Systems, methods and computer program products for automating packaging and provisioning of j2ee web modules to eclipse-based rich clients
US9733918B2 (en) Using cloud patterns for installation on unmanaged physical machines and appliances
JP5951002B2 (ja) 選択的ポリシーによるホストと複数のゲストとの間での構成要素伝播の実現
US20230021723A1 (en) Automated migration of monolithic applications to container platforms
Peacock Creating Development Environments with Vagrant
US9292318B2 (en) Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
Tulloch Windows Server 2008 Server Core Administrator's Pocket Consultant
Yan Automated administration of virtual machines and networks on the vmware esx platform
Babar et al. An Investigation into the Use of OpenStack for Submarine Mission
Tankersley Docker for Developers
Muller Scripting VMware Power Tools: Automating Virtual Infrastructure Administration
Krishnan et al. Next Generation DevOps Initiatives
Studio Developer’s Guide to Building vApps and Virtual Appliances

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110818

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121030

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121203

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20121203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130123

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130207

R150 Certificate of patent or registration of utility model

Ref document number: 5201696

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3