JP5367074B2 - 仮想マシンとアプリケーション・ライフ・サイクルの同期 - Google Patents

仮想マシンとアプリケーション・ライフ・サイクルの同期 Download PDF

Info

Publication number
JP5367074B2
JP5367074B2 JP2011513536A JP2011513536A JP5367074B2 JP 5367074 B2 JP5367074 B2 JP 5367074B2 JP 2011513536 A JP2011513536 A JP 2011513536A JP 2011513536 A JP2011513536 A JP 2011513536A JP 5367074 B2 JP5367074 B2 JP 5367074B2
Authority
JP
Japan
Prior art keywords
application
virtual machine
virtual machines
virtual
deployed
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.)
Expired - Fee Related
Application number
JP2011513536A
Other languages
English (en)
Other versions
JP2011524053A (ja
JP2011524053A5 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011524053A publication Critical patent/JP2011524053A/ja
Publication of JP2011524053A5 publication Critical patent/JP2011524053A5/ja
Application granted granted Critical
Publication of JP5367074B2 publication Critical patent/JP5367074B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/62Uninstallation
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、仮想マシンとアプリケーション・ライフ・サイクルの同期に関する。
今や、従来型のコンピュータ・システムは、生産業向けや娯楽向け等であろうとなかろうと、広範囲な目的で一般的に使用されている。その1つの理由は、コンピュータ・システムにより作業の自動化がより効率的になりやすいだけでなく、時間とともにかかる作業に対してコンピュータ・システムを容易に構成および再構成できることである。例えば、1つまたは複数のアプリケーション・プログラムの実行が遅すぎることにユーザが気づいた場合、そのユーザがメモリ(例えば、RAM)を増設し、1つまたは複数のプロセッサ(例えば、CPU、GPU、等)を増設または交換するのが比較的分かりやすい方法であろう。また、現在の記憶装置を追加もしくは改良すること、または、作業負荷を共有もしくは処理するために使用できる他の周辺機器を追加または交換することも分かりやすい方法であろう。同様に、ユーザが、オペレーティング・システムを含む様々なアプリケーション・プログラムをコンピュータにインストールするかまたはアップグレードすることも比較的分かりやすいであろう。これは、大型の企業規模にも理論上は当てはまる傾向にある。
しかし、実際には、単に物理的なコンピュータ・ハードウェアの追加または交換ということは、特に大規模な場合は、しばしば厄介である可能性があり、新しいコンピュータ・システムを配置し構成する(またはコンポーネントをアップグレードする)のに、数時間の余計な時間がかかることとなる。幸いなことに、仮想マシン(「VM」)技術における近年の発展により、この種の制約の多くは改善または排除された。例えば、別の物理ホスト・コンピュータ・システムの制約や資源上の制限においても、仮想マシンは、追加の一意なコンピュータ・システムとして動作する1組の電子ファイルを含む。
さらに、仮想マシンごとの1組のファイルは、資源へのアクセスという点で容易に構成および再構成できるので、単一の物理ホストにインストールされた幾つかの異なる仮想マシンが存在しうる。さらに、各仮想マシンは様々なレベルでホストの資源にアクセスできる。さらに、任意の所与のホスト・コンピュータ・システム上の仮想マシンの数、および仮想マシンごとの資源割当も、その時々に応じて比較的容易に変更することができる。しかし、各仮想マシンのユーザは、そのような変更に影響を受けず、一般に、様々な仮想マシンを、まるでそれ自身が資源を有する別々の独立した物理的なコンピュータ・システムであるかのようにアクセスし参照することができる。少なくともこれらの理由のために、企業はますます高い割合で仮想マシンの技術を用いている。
さらに、仮想システムの別の利点としては、管理者があるアプリケーション・プログラムを実行するためにほぼ必要な数の仮想マシンを即座に追加できるということである。例えばシステム管理者は、1つのネットワーク・ロケーションにおいてデータベース・アプリケーションを扱う1つまたは複数の仮想マシンを作成する必要性を何らかの時点で決定し、別のネットワーク・ロケーションでネットワークや電子メールのトラフィックを扱う別の1組の仮想マシンを作成する必要性を決定してもよい。決定すると、システム管理者は原則として必要に応じて仮想マシンを作成し、次いで、これらのアプリケーション向けに仮想マシンを構成する。かかる構成には、システム管理者(または、ある場合は、別のアプリケーション管理者)が関連アプリケーション・プログラムを新しい仮想マシンにインストールすることにより関与する。このようなプロビジョニングとインストールは全て、最初に必要性を決定してから、わずか数時間で実施することができる。
もちろん、管理者が容易に仮想マシンを確立しセットアップしてアプリケーションを扱うことができることは、仮想マシンの管理に限らずその上で実行されているアプリケーション・プログラムの管理についても、他の問題をもたらすことがある。具体的には、企業が追跡できるよりも速く企業が仮想マシンを作成し使用していることがよくあるという、ますます一般化している問題がある。仮想マシンは迅速に作成できるため、任意の所与の管理者は、どれだけ多くの仮想マシンが所与の時点で作成され、どの仮想マシンが任意の特定の物理ホストに対して作成されているかさえ気付いていないかもしれない。
同様に、どの仮想マシンが実行されているか、どのアプリケーションが仮想マシン上で実行されているかの特定において生ずる、記録の不連続性がしばしば存在する。一般に、かかる情報を追跡し続けるための従来のメカニズムとしては、管理者が、何を作成し、削除し、廃止したかについての(例えば、スプレッドシート上での)詳細なログを保持することがよくある。多数の仮想マシンおよびアプリケーション・プログラムがある場合に、この方法は非常に煩雑であるだけでなく、ある管理者が将来作成するものと、他の管理者がログに入力するものとの間に一貫性が欠如することがよくある。このようなことは、仮想マシンをインストールして使用している多数の管理者およびユーザを有する企業のシステムに関して特に当てはまる。
したがって、特に大企業では、あるシステム管理者が、1組の物理ホスト上で特定の1組の仮想マシンを追跡し続けているのに、これらの仮想マシンに他のアプリケーションを別の管理者がインストールしたことに気づかないということが稀ではない。最初に仮想マシンを作成した管理者が仮想マシンを削除または廃棄しようとした場合、その管理者は他のアプリケーションがその仮想マシンで実行されていることを示すエラーメッセージを受け取るかもしれない。すると、その最初の管理者は仮想マシンをそのままにしておくかもしれない。仮想マシンを削除できなかった原因である他のアプリケーション・プログラムを後に別の管理者が除去した場合でも、仮想マシンはシステム上にほぼ永久に残存するおそれがある。
その結果、所与のアプリケーション・プログラムのライフ・サイクルが、仮想マシンのライフ・サイクルと一致しないことがよくあることは理解されよう。この理由の1つとして、管理者がアプリケーション・プログラムをアンインストールし仮想マシンがもう必要でない場合に、管理者が仮想マシンを廃棄または除去することが保証される可能性がほとんどないことがある。これらおよびその他の理由により、仮想化技術を実現している企業が「仮想マシン・スプロール」(あるいは「VMスプロール」)として一般に知られている問題に陥ることがよくある。
基本的には、仮想マシン・スプロールとは、企業が仮想マシンを継続的に作成できるが、仮想マシンがどのように使用されているか、および/または、誰が仮想マシンを使用しているかを追跡ができない状況のことをいう。仮想マシン・スプロールが企業の資源を不必要に流出させうることは理解されよう。少なくともこの流出が生ずる理由の1つとして、他の仮想マシンが使用できない様々なハードウェア資源を、削除されるべき仮想マシンが保持し続けることがある。この流出が生ずる理由のもう1つは、少なくとも、企業のスタッフがシステム内の各仮想マシンの詳細を正しく特定しどの仮想マシンが結局必要であるかを決定するために、多数の資源を拡張する必要があることである。
従って、企業内には、仮想マシンの管理に関して対処しうる幾つかの問題がある。かかる問題は、幾つかの異なる仮想マシン(および物理マシン)で実行している幾つかのコンポーネントを含む分散アプリケーション・プログラムを企業が使用している場合に、特に深刻となりうることは理解されよう。
本発明の実装形態により、企業における仮想マシンの作成、操作、および廃棄を効率的に管理するように構成されたシステム、方法、およびコンピュータ・プログラム製品に関する当分野における1つまたは複数の問題が克服される。例えば、1実装形態では、システムは、アプリケーション・プログラムをインストールまたはアンインストールする要求に応じて1つまたは複数の仮想マシン層を通じて仮想マシンの作成と削除を調整し指示するアプリケーション層を含む。アプリケーション層は、さらに、システム内で動作する他のエグゼクティブ・アプリケーションによって参照できる共通データ構造を通して、何がインストールおよび/またはアンインストールされているかを整理することができる。そのため、アプリケーション層は、仮想マシンとアプリケーション・プログラムのライフ・サイクルとを確実に一致させることができる。
例えば、本発明の方法は、アプリケーション層という観点からは、アプリケーション・プログラムを開始するための1つまたは複数の要求をアプリケーション層で受け取ることを含むことができる。また、この方法は、要求されたアプリケーション・プログラムの1つまたは複数のプロパティから、1つまたは複数の仮想マシンのうちどれをデプロイして要求されたアプリケーション・プログラムを実行すべきかを決定することも含むことができる。さらに、この方法は、1つまたは複数の仮想マシン命令をアプリケーション層から仮想マシン層に送信して、決定された1つまたは複数の仮想マシンを要求されたアプリケーション・プログラムに対してデプロイすることを含むことができる。さらに、この方法は、要求されたアプリケーション・プログラムを、デプロイされた1つまたは複数の仮想マシンにインストールすることを含むことができる。
上記に加えて、本発明の方法は、1つまたは複数の仮想マシンの作成、操作、および廃棄を管理するシステム全体の観点からは、アプリケーション・プログラムを開始するための1つまたは複数の要求をアプリケーション層(103)で受け取ることを含むことができる。要求されたアプリケーション・プログラムは、使用すべき仮想マシンの種類と数を示す1つまたは複数のプロパティを含む。また、この方法は、アプリケーション層における1つまたは複数のデータ構造を参照して、コンピュータ化した環境で利用可能な1つまたは複数の仮想マシンを特定することを含むことができる。さらに、この方法は、1つまたは複数の物理ホストでインストールされた1つまたは複数の利用可能な仮想マシンに、要求されたアプリケーション・プログラムをインストールするよう仮想マシン層に指示することを含むことができる。さらにこの方法では、要求されたアプリケーション・プログラムが仮想マシンからアンインストールされたことを、データ構造を通して特定すると、アプリケーション層が自動的に、仮想マシンを対応する物理ホストから除去することを指示することを含むことができる。
本要約は選択した概念を簡潔な形で導入するために与えた。これらの概念は以下の「発明を実施するための形態」でさらに詳細に説明する。本要約は、請求項に記載の主題の重要な特徴または本質的な特徴を特定することを意図していない。また、この概要は、請求項に記載の主題の範囲を決定する際の支援として使用することを意図しているものでもない。
本発明のさらなる特徴および利点は、以下の記載で説明され、その記載から部分的に明らかとなり、または、本発明を実施することで習得することができる。本発明の特徴および利点は、添付の特許請求の範囲で特に指摘した手段および組合せによって実現および取得することができる。本発明のこれらおよびその他の特徴は、以下の記載および添付の特許請求の範囲からより完全に明確となり、以降で説明する本発明を実施することによって習得することができる。
上述した本発明の利点および特徴ならびに他の利点および特徴を得ることができる方法を説明するために、上で簡潔に説明した発明のより具体的な説明を、添付の図面に示す具体的な実施形態を参照して行うこととする。これらの図面は本発明の典型的な実施形態を示すにすぎず、したがって本発明の範囲を限定するものとは考えられないことを理解して、添付の図面を参照して本発明をさらに具体的かつ詳細に記載し説明することとする。
本発明の実装形態に従って、アプリケーション層が、1つまたは複数のアプリケーションのインストール指示を仮想マシン層で実装する概略を示す図である。 アプリケーション層が、仮想マシン層によってセットアップされた1つまたは複数の仮想マシンにおいて、要求されたアプリケーションをインストールまたは構成する図1Aの略図である。 以前にインストールされたアプリケーションがアンインストールされ、したがって対応する仮想マシンが除去されたことを、仮想マシン層を通してアプリケーション層が特定する概略を示す図である。 要求されたアプリケーションに対応する仮想マシンをインストールするための、アプリケーション層の観点からの流れ図である。 アプリケーションのライフ・サイクルを仮想マシンと調整するための、システム全体の観点からの方法の流れ図である。
本発明の実装形態は、企業において仮想マシンの作成、操作、および廃止を効率的に管理するように構成されたシステム、方法、およびコンピュータ・プログラム製品に拡張される。例えば、1実装形態では、システムは、アプリケーション・プログラムをインストールまたはアンインストールする要求に応じて1つまたは複数の仮想マシン層を通して仮想マシンの作成と削除を調整し指示するアプリケーション層を含む。アプリケーション層は、さらに、システム内で動作する他のエグゼクティブ・アプリケーションによって参照できる共通データ構造を通して、何がインストールおよび/またはアンインストールされているかを整理することができる。そのため、アプリケーション層は、仮想マシンとアプリケーション・プログラムのライフ・サイクルとを確実に一致させることができる。
本明細書からより完全に理解されるように、本発明の実装形態はこれらおよび他の目的を、アプリケーション層と仮想化管理層(または、「仮想マシン層」)を含むソフトウェア・システムで達成することができる。これらの2つの層は異なる責任を持ち、一意なダイアログを用いて相互に通信する。本明細書に記載されたこれらおよび他のコンポーネントが混合型の仮想および物理ハードウェア環境、ならびに提案するソフトウェア・スタック・アーキテクチャの具体的な実装に対するサポートを提供できることは理解されよう。特に、本発明の実装形態を使用して、連携する仮想マシン・マネージャに対して連携したアプリケーション・プラットフォームを提供することができる。次いで、この連携したアプリケーション・プラットフォームを、アプリケーションと仮想環境の宣言的モデルを示す1つまたは複数のデータ構造により駆動させることができる。
例えば、本発明の実装に従う少なくとも1つの方法は、アプリケーションの宣言的モデルに基づいて仮想環境を構築することを含む。さらに、本発明の実装形態に従う方法は、アプリケーション・ライフ・サイクルと調整された仮想環境における仮想マシンのライフ・サイクルを制御することを含むことができる。さらに、かかる方法は、宣言的モデルに基づく仮想環境内で実行されるアプリケーションを監視し管理することを含むことができる。本明細書で理解されるように、かかる方法を、オン・プレミスまたは「クラウド」(すなわち、ネットワークのどこか)で構築される仮想環境を含めて事実上任意の動作環境で実現することができ、またはアプリケーション・モジュールがオン・プレミスまたはクラウドで実行されるところで実現することができる。
図1Aは、アプリケーション層103と仮想マシン層107を備えるシステム100の全体図を示し、これらはアプリケーションと関連して仮想マシンをインストールし管理するために共に動作する。例えば、図1Aは、アプリケーション層103が少なくともエグゼクティブ・アプリケーション105を含むことを示す。一般に、エグゼクティブ・アプリケーション105は、宣言的なモデル記述ワークフローを実行することにより様々な要求(例えば、アプリケーションをインストールすること)を行う1つまたは複数の組の実行可能命令を備える。以下でより完全に理解されるように、エグゼクティブ・アプリケーション105は、様々な宣言的モデル115から所与のアプリケーションに関する情報を受け取り、この情報を、様々な仮想マシンに送られる具体的な命令へと詳細化する。
例えば、図1Aは、アプリケーション層103がアプリケーション・リポジトリ110を備えることを示す。アプリケーション・リポジトリ110はさらに、アプリケーションに対する様々な「意図」を含めた、様々なアプリケーション135を対応するプロパティ137と関連付ける1組の前述の宣言的モデル115を備える。宣言的モデル115内の係るアプリケーションの意図(すなわち、プロパティ137)は、アプリケーション135ごとの様々なハードウェアおよび仮想マシンの仕様、ならびにアプリケーション・ライフ・サイクルの情報を含むことができる。具体的には、アプリケーション・プログラムに対する所与の宣言的モデル115の意図は、使用できまたは使用すべき仮想マシンの数に加えて、実行すべき所与のアプリケーション135に対して要求されうる仮想マシン(例えば、特別に構成された仮想マシンのテンプレート、または既存の仮想マシン)の種類を含むことができる。例えば、要求されたアプリケーション115が分散アプリケーションであった場合は、宣言的な意図は幾つかの異なる仮想マシン(および仮想マシンの種類)、および分散アプリケーションのコンポーネントごとの幾つかの異なる物理ホスト(または物理ホストの種類)を指定することができる。係る宣言的モデルの意図はまた、インストール前にアプリケーションを実行できる最大のタイム・インターバルのような、所与のアプリケーション・プログラムに関する様々なライフ・サイクル情報を含むことができる。
さらに、図1Aは、エグゼクティブ・アプリケーション105を介して、アプリケーション層103が1つまたは複数の共通のデータ構造123を備えうることを示す。一般に、(システム内の他のエグゼクティブ・アプリケーションを含む)様々な種類のコンポーネントによって1つまたは複数の共通データ構造123にアクセスすることができる。共通データ構造123は、システム100内にインストールされたアプリケーションと仮想マシンに関する状態情報を格納し関連付けることができる。例えば、少なくとも1つの実装形態では、データ構造123は、いつどこで様々なアプリケーション・プログラムがインストールされたか(物理的な位置および/またはネットワーク上の位置)、ならびにいつどこで様々な仮想マシンがインストールされたか(物理的な位置および/またはネットワーク上の位置)を示す。前述のように、データ構造123はさらに、エグゼクティブ・アプリケーション105が宣言的モデル115から詳細化および決定した、アプリケーションおよび/または仮想マシンのライフ・サイクルに関する情報を含むことができる。一般にデータ構造123に多数のコンポーネントからアクセスすることができるので、データ構造123を、アプリケーション層103および仮想マシン層107の両方において幾つかの異なるコンポーネントによって参照し更新して、一貫性の保持を支援することができる。
再度図面を参照すると、図1Aは、仮想マシン層107が1つまたは複数の仮想マシン・マネージャ120を備えうることを示す。仮想マシン・マネージャ120は、次いで、仮想マシンをインストールしアンインストールするための、ならびに仮想マシンの資源を所与のホストに割り当てるための、1つまたは複数の組の実行可能命令を備える。仮想マシン・マネージャ120はまた、物理ホスト上の各仮想マシンの性能を監視する。例えば、仮想マシン・マネージャ120は所与の仮想マシンをインストールするときに、仮想マシン・マネージャ120はまた、仮想マシン・マネージャ120にフィードバックを提供する1つまたは複数の監視エージェントをインストールする。係るフィードバックは、割り当てられた資源の使用量の性質(例えば、プロセッサおよびメモリの割当てが十分であるか否か)、ならびにインストールされた様々なアプリケーション・プログラムがどのように実行されているかの性質を含むことができる。
さらに、図1Aは、仮想マシン・マネージャ120を、1つまたは複数の仮想マシン・ライブラリ125と通信するように構成できることを示す。一般に、仮想マシン・ライブラリ125は、それぞれが「ホット・スタンバイ」を表す1つまたは複数の仮想マシン・テンプレート150から構成され、仮想マシン・マネージャ120はそれらの仮想マシン・テンプレート150をコピーして所与の物理ホスト(例えば、130)にインストールすることができる。例えば、図1Aは、仮想マシン・ライブラリ125が、仮想マシン「VM1」150a、仮想マシン「VM2」150b、仮想マシン「VM3」150c、仮想マシン「VM4」150dに対する記憶領域を備えることを示す。これらの仮想マシン150(a〜d)の各々は、特定の種類のアプリケーションおよび特定のバージョンのアプリケーションと動作するように特別に構成することができる。例えば、仮想マシン150aと150bを特定のバージョンのデータベース・アプリケーションと動作するように(資源割当て、資源要件の点で)特別に構成し、仮想マシン150cと150dを他のバージョンのデータベース・アプリケーション、または、インターネット・アプリケーションと動作するように(資源割当て、資源要件の点で)構成することができる。
何れの場合でも、システム100内の上述のコンポーネントの各々は、アプリケーションと仮想マシンが同一のライフ・サイクルの一部として共にインストールされ共にアンインストールされることを保証するために協働するように構成される。少なくとも1つの実装形態では、この調整は一般にエグゼクティブ・アプリケーション105を介してアプリケーション層103を通じて扱われる。例えば、図1Aは、アプリケーション層103が、アプリケーション(すなわち、アプリケーション135a)をインストールする1つまたは複数の要求/指示113を受け取り、この要求113がエグゼクティブ・アプリケーション105によって受け取られることを示す。それに応じて、エグゼクティブ・アプリケーション105は、その要求をどのように扱うべきかを決定するためのアプリケーション層103内の1つまたは複数の要求140を送信する。例えば、図1Aは、エグゼクティブ・アプリケーション105が、意図したプロパティまたは関連する要求されたアプリケーションを特定する1つまたは複数の要求をアプリケーション・リポジトリ110に送信することを示す。具体的には、図1Aは、エグゼクティブ・アプリケーション105が要求140を送信し、要求140は、アプリケーション135aに関連付けられたプロパティを要求する。
アプリケーション・リポジトリ110は、次いで、要求されたアプリケーション135aに関連付けられた1つまたは複数の宣言的モデル115を特定する。例えば、図1Aは、アプリケーション・リポジトリ110が宣言的モデル115に対する記憶領域を含むことを示し、宣言的モデル115がプロパティ137aと137bをアプリケーション135aと135bに関連付ける。これらのプロパティは、各アプリケーション・プログラム135に関する様々な宣言的な意図を記述する。係る宣言的な意図は、アプリケーション・プログラムが実行すべき期間、アプリケーションを処理するためにインストールすべき仮想マシンの数および/または種類を含むことができる。係る宣言的な意図は、また、アプリケーション・プログラムを実行すべき様々なネットワーク位置(または物理的位置)のような情報を含むことができる。例えば、管理者は、幾つかのアプリケーションのみがセキュアなサーバ上および/またはセキュアなネットワーク位置内で実行されると指定することができる。
いずれの場合でも、要求140を受け取ると、アプリケーション・リポジトリ110が1つまたは複数のメッセージ145でエグゼクティブ・アプリケーション105に応答することを図1Aは示す。エグゼクティブ・アプリケーション105は次いでリポジトリ110から受け取ったプロパティ137aを解釈または「詳細化」して、プロパティ137aを1組の対応する命令/指令として1つまたは複数の共通データ構造123の1つに格納することができる。一般に、この文脈での詳細化とは、例えばデータを(例えば、メッセージ145でプロパティ137aから受け取った)宣言的モデルに追加し追加したデータをデータ構造123に書き込むことによって、リポジトリ110から受け取った情報から細部を漸進的に精緻化することを意味する。本明細書でより完全に理解されるように、詳細化では、宣言的モデルが理解され特定の仮想マシン・ドライバによって変換される程度に十分に具体化されるまで、細部を精緻化する。
少なくとも1つの実装形態では、アプリケーションの宣言的モデルに対応するプロパティ137は、特定のアプリケーション135aが2つの異なる仮想マシンにインストールされるのが理想的であること、および、これらの仮想マシンがデータベースを利用するために構成されるべきであることを示す情報を含むこともある。そのため、図1Aは、アプリケーション135aを仮想マシン150aと150bにインストールするという指示をデータ構造123が少なくとも含むことを示す。さらに、プロパティ137aはまた、特定の物理ホスト上でアプリケーション・プログラム135aを実行するための優先度を含むことができる。したがって、例えば、図1Aは、アプリケーション135が物理ホスト130にインストールされるべきであることをデータ構造125が示すことも示している。
要求されたアプリケーション・プログラムに対する様々なプロパティと指示を決定すると、アプリケーション層103は、適切な仮想マシンをインストールするという1つまたは複数の指示を仮想マシン層107に送ることができる。例えば、図1Aは、エグゼクティブ・アプリケーション105が、データ構造123に格納された詳細化した情報に対応する1つまたは複数の指示147を仮想マシン層107に送ることを示す。具体的には、図1Aは、指示147が仮想マシン150a(「VM1」)と仮想マシン150b(「VM2」)をインストールするという1つまたは複数の要求を含むこと、および、仮想マシン層107の中の仮想マシン・マネージャ120がこれらの指示を受けとることを示している。
次に、仮想マシン層107がそれらの要求を実行する。例えば、図1Aは、仮想マシン・マネージャ120が仮想マシン・ライブラリ125と調整して、インストールすべき要求されたテンプレート、この場合は仮想マシン150aと150b、を特定することを示す。さらに、図1Aは、仮想マシン・マネージャ120が、仮想マシン150aと150bをインストールする1つまたは複数の要求155を物理ホスト130に送信することを示す。少なくとも1つの実装形態では、仮想マシン層107は(例えば、仮想マシン・マネージャ120を介して)さらに、仮想マシンのインストールおよび構成が今完了したこと示す1つまたは複数のメッセージ(図示せず)でアプリケーション層103(例えば、エグゼクティブ・アプリケーション105)と通信する。
例えば、仮想マシン・マネージャ120はインストール確認情報(図示せず)を直接データ構造123に渡すことができる。次に、エグゼクティブ・アプリケーション105は、定期的な検査の一部として、または、データ構造123が更新されたという何らかの信号へ応答して、データ構造123を読むことができる。次に、エグゼクティブ・アプリケーション105は、要求された仮想マシンがインストールを完了したことを確認する。他の場合では、仮想マシン・マネージャ120はこの情報を直接エグゼクティブ・アプリケーション105に渡し、次いでこの情報をデータ構造123に入力する。いずれの場合でも、仮想マシン・マネージャ120によって提供された情報は、ホスト130へインストールされたという単なる事実だけではなく、仮想マシンの名前およびネットワーク・アドレスのような他の関連情報も含むことができる。
要求された仮想マシンのインストール/デプロイを確認すると、アプリケーション層103は、要求されたアプリケーション(複数可)を、仮想マシン層107を介してインストールし、構成することができる。これを示すため、図1Bは、エグゼクティブ・アプリケーション105が、ホスト30にデプロイされた仮想マシン150のドライバと直接通信することを示している。例えば、エグゼクティブ・アプリケーション105は、仮想マシン名およびネットワーク・アドレスのような仮想マシン・マネージャ120が提供した情報を用いて、適切な仮想マシン・ドライバを発見し、特定することができる。
さらに、図1Bは、アプリケーション層103が(エグゼクティブ・アプリケーション105を介して)1つまたは複数のメッセージ/指示160aおよび160bを仮想マシン層107に送ることを示す。次に、対応して指定された仮想マシン150aと150bのドライバは、メッセージ160aおよび160bを物理ホスト130で受けとる。一般に、メッセージ160aおよび160bは、要求されたアプリケーション135aに対するアプリケーションのインストール指示だけでなく、アプリケーション・リポジトリ110から以前に受け取ったプロパティ137aに関連した指示も含むことができる。例えば、メッセージ160aおよび160bは特に、アプリケーションのライフ・サイクル、アプリケーションをどのように仮想マシン内で実行すべきか、および任意の監視情報、に関する変換/詳細化された宣言的な意図の情報を具体的な命令の形で含むことができる。
各仮想マシン150(a〜b)に対するドライバは、次に、仮想マシン内の対応するアプリケーション・コンテナ(図示せず)に対するこれらの命令(160)を変換および/または実装する。具体的には、図示した仮想マシンのドライバは、十分に詳細化された宣言的なモデルを、仮想マシンで実行されるべき命令動作に変換する。これらの変換された指示は(例えば、プロパティ137を介して)、次いで、モデル内で宣言された意図に従って、インストールされた仮想マシン150内のアプリケーション・コンテナおよびアプリケーション・モジュールを制御し、構成する。
これらの流れに沿って、ドライバによる変換において、アプリケーション・コンテナの実装とその現在の構成との詳細に関する知識を考慮できることは理解されよう。したがって、1実装形態では、仮想マシンのドライバがさらに、エグゼクティブ・アプリケーション105と通信し、任意の追加のモデル・データ(例えば、データ構造123に格納できるモデル・データ)を要求することができる。例えば、仮想マシン150のドライバは、その変換作業に関連するモデル・データを、命令(複数可)を完了する前に限り、要求するかもしれない。仮想マシンのドライバはまた、アプリケーション・モジュールおよびそれらのアプリケーション・コンテナに、それらの動作と環境における変化とに関するイベントをモデル内で宣言するように発するよう指示することができる。
仮想マシンのドライバが提供した情報は、インストールされたアプリケーション135aおよび/または仮想マシン150(a〜b)に関する健全性情報だけでなく、アプリケーション終了イベントに関する情報も含むことができる。例えば、仮想マシンのドライバは、ホスト130でアプリケーションがアンインストールされているとき、ホスト130でアプリケーションがアンインストールされたとき、またはホスト130でアプリケーションがアンインストールされようとしているとき、1つまたは複数のメッセージをエグゼクティブ・アプリケーション105に送ることができる。次いで、仮想マシンのドライバが提供した情報を受け取り、データ構造123に格納することができる。例えば、仮想マシン150のドライバは、1つまたは複数の係るメッセージをデータ構造123、または、エグゼクティブ・アプリケーション105に直接送り、次いでエグゼクティブ・アプリケーション105がそれに応じてデータ構造123を更新する。何れの場合でも、アプリケーション層103は、エグゼクティブ・アプリケーション105を介して、対応する仮想マシン(複数可)をいつ廃止し始める必要があるかを特定することができる。
例えば、図1Cは特定のアプリケーション・プログラムが仮想マシン150からアンインストールされた場合に何が生じうるか示す。具体的には、アプリケーション・プログラムがアンインストールされた場合、図1Cは、仮想マシン層107が(例えば、物理ホスト130にあるドライバを介して)、アプリケーション135aがアンインストールされること、またはアンインストールされたことを示す1つまたは複数のメッセージ170をアプリケーション層103に送ることを示す。前述したように、例えば、物理ホスト130はメッセージ170をデータ構造123に直接渡すことができ、代替的な実装形態では、物理ホスト130がメッセージ170をエグゼクティブ・アプリケーション105に直接送る。いずれの場合でも、データ構造123は、最終的にはアプリケーションの除去を反映するように更新される。例えば、図1Cは、データ構造123が、アプリケーション135aが今アンインストールされたという情報を含むことを示す。この実施例では、アプリケーション135aは、仮想マシン150aと150bにインストールされた唯一のアプリケーションであるので、アプリケーション層103は、エグゼクティブ・アプリケーション105を介して、仮想マシン150aと150bがもはや使用されていないからそれらを物理ホスト130から削除する必要があると判断する。
従って、図1Cは、エグゼクティブ・アプリケーション105を介して、アプリケーション層103が1つまたは複数のメッセージ180を仮想マシン層107に送ることを示す。次に、前と同様、仮想マシン・マネージャ120は仮想マシン層107においてメッセージ180を受け取る。図示した例では、メッセージ180は、仮想マシン150aと105b(すなわち、「VM1」と「VM2」)をそれらがインストールされている1つまたは複数の物理ホスト、この場合は物理ホスト130、から除去する指示を含む。それに応じて、仮想マシン層107は仮想マシンを除去しその除去の確認をするために必要な任意の動作を実行する。例えば、図1Cは、仮想マシン・マネージャ120が1つまたは複数の対応するメッセージ190を物理ホスト130に送り、それらのメッセージは、仮想マシン150aと150bを除去するかまたはアンインストールするよう物理ホスト130に指示する。
仮想マシン(150b)を「除去」または「廃止」するための幾つかの方法および機構があることは理解されよう。例えば、先行する「チェックポイント」に基づいて任意の所与の仮想マシンを設定または格納することができる。一般に、チェックポイントはオペレーティング・システム(または、仮想マシンにおける他の1組のファイル構造)の特定の時点における状態を示す。例えば、ユーザがオペレーティング・システムのパッチを仮想マシンに適用する都度、仮想マシン(または、仮想マシンを実行または格納している管理コンポーネント)は、この特定のファイル状態をチェックポイントとして保存することもある。
さらに、仮想マシン(または、仮想マシンを実行または格納している管理コンポーネント)は所与の仮想マシンに対して、幾つかの異なるチェックポイントを保持することもある。このように、例えば、仮想マシン・ライブラリ125内の仮想マシンの一部を、具体的なアプリケーション構成と関連しているだけでなく、オペレーティング・システムのパッチまたはアップグレードを適用するための様々なチェックポイントに基づいて、別々にセットアップすることができる。同様に、物理ホスト130にインストールされる仮想マシン150a〜bが幾つかの異なるチェックポイントの更新を受けた可能性もあり、そのうちの幾つかは実行されているアプリケーション135aに対して特に適用可能であるかもしれない。
結果として、幾つかの場合では、仮想マシンを一緒に除去するかまたは単に仮想マシンを特定のチェックポイントの状態に戻すことによってアプリケーション135aを除去するときに、管理者は物理ホスト130で特定のバージョンの仮想マシン150a〜bを「除去」または「廃止」することを選択することができる。かかる場合、仮想マシン120から送られた指令190は代替的または追加的に、物理ホスト130で後にインストールできる他のアプリケーション・プログラムに対してより広く適用可能な前のチェックポイントの状態に仮想マシン150a〜bを戻す指令を含むことができる。
以前のバージョンの仮想マシン150a〜bを物理ホスト130上で保持することにより、仮想マシン150全体をライブラリ125からもとの物理ホスト130にコピーするために後の時点で必要となりうる資源を節約できることは理解されよう。もちろん、どのように除去または廃棄(すなわち、完全な除去、または特定のチェックポイントへの復帰)しても、システム100は、システム100が特定の仮想マシンおよびアプリケーションの状態または存在を見失わないようにデータ構造123が関連情報を保持できることを保証するように構成される。
例えば、図1Cはさらに、仮想マシンを除去、廃棄、アンインストール、復帰する際に物理ホスト130が1つまたは複数の構成メッセージを送ることができる。具体的には、仮想マシン層107はアプリケーション103に対して、仮想マシンの除去(すなわち、削除、廃棄、または復帰)が完了したことを確認する。例えば、物理ホスト130は1つまたは複数の確認メッセージを元の仮想マシン・マネージャ120に送ることができ、仮想マシン・マネージャ120は次いでかかる情報をアプリケーション層103に送る。すなわち、仮想マシン・マネージャ120がデータ構造123を除去(削除または復帰)情報で更新することができ、または、そうでなければ対応する通信情報をエグゼクティブ・アプリケーション105に送ることができ、エグゼクティブ・アプリケーション105が次いで同じことに関してデータ構造123を更新する。追加のまたは代替的な実装形態では、物理ホスト130はデータ構造123および/またはエグゼクティブ・アプリケーション105と直接通信して、仮想マシン150(a〜b)の除去(削除または復帰)を確認する。
従って、図1Aから1Cは、仮想マシンからのアプリケーション・プログラムのライフ・サイクルを調整するための様々なコンポーネント、機構、および略図を示す。上述のプロセスの一部または全部を自動的に実施でき、従って仮想マシンとアプリケーション・プログラムの正確な記録保存と管理を最小限の管理オーバヘッドで達成できることは理解されよう。
上述したことに加えて、本発明の実装形態を、特定の結果を達成するための方法における1つまたは複数の動作を含む流れ図の観点で説明することもできる。例えば、図2は、単一のアプリケーションを用いて仮想マシンとアプリケーション・プログラムの両方を物理ホストにインストールするためのエグゼクティブ・アプリケーション105の観点から見た流れ図を示し、図3は、アプリケーション・プログラムと仮想マシンのインストールとライフ・サイクルを調整するためのシステム100の観点から見た代替的な流れ図を示す。図2と図3の動作は、図1Aから1Cのコンポーネントと図に関して以下でより完全に説明する。
例えば、図2は、エグゼクティブ・アプリケーション105の観点から見た方法が、アプリケーションを開始するための要求を受け取る動作200を含むことができることを示す。動作200は、アプリケーション・プログラムを開始するための1つまたは複数の要求をアプリケーション層で受け取ることを含む。例えば、図1Aは、アプリケーション層103がエグゼクティブ・アプリケーション105を介してインストール命令113を受けとり、インストール命令113にはアプリケーション・プログラム135aをインストールするための1つまたは複数の要求が含まれる。
図2はまた、この方法が、デプロイすべき仮想マシンを決定する動作210を含むことができることを示す。動作210は、要求されたアプリケーション・プログラムの1つまたは複数のプロパティから、1つまたは複数の仮想マシンのうちどれをデプロイして要求されたアプリケーション・プログラムを実行すべきかを決定することを含む。例えば、図1Aは、エグゼクティブ・アプリケーション105が、アプリケーション・リポジトリ110と通信し、メッセージ140およびメッセージ145を交換して、要求されたアプリケーション135aに対するプロパティを特定することを示す。これらのプロパティ137aは、要求されたアプリケーション135aに対応する宣言的モデル115の様々な宣言的な意図に関する。さらに、エグゼクティブ・アプリケーション105は、受け取ったプロパティ137aを、データ構造123内でそのとき保持される具体的な指示に詳細化および/または変換する。1実装形態では、これらの命令の変換は、要求されたアプリケーション135aを実施するためにインストールすべき仮想マシン150の数および種類を含む。
さらに、図2は、エグゼクティブ・アプリケーション105の観点からの方法が、適切な仮想マシンをデプロイする動作220を含むことができることを示す。動作220は、1つまたは複数の要求をアプリケーション層から仮想マシン層に送り、決定された1つまたは複数の仮想マシンを要求されたアプリケーション・プログラムに対してデプロイすることを含む。例えば、図1Aは、アプリケーション層103内のエグゼクティブ・アプリケーション105が、1つまたは複数のメッセージ147を、仮想マシン層107内の仮想マシン・マネージャ120へ送ることを示す。図1Aに示されているように、指示147が、特定された仮想マシン150aと150bをインストールする1つまたは複数の要求を含む。
さらに、図2は、この方法は、要求されたアプリケーションを仮想マシンにインストールする動作230を含むことができることを示している。動作230は、デプロイされた1つまたは複数の仮想マシンのアプリケーション・プログラムをインストールすることを含む。例えば、図1Bに示すように、仮想マシンの150aと150bが仮想マシン・マネージャ120によって物理ホスト130にインストールされると、エグゼクティブ・アプリケーション105を介して、アプリケーション層103が1つまたは複数のメッセージ160aと160bを、仮想マシン150ドライバを介して、対応する仮想マシン層107に送る。仮想マシン・ドライバは、次いで、プロパティ137aに従って、要求されたアプリケーション135aのインストールおよび構成を指示する。
上記に加えて、図3は、本発明の実装形態に従うシステム100全体の観点からの追加または代替の方法が、インストール要求に対してアプリケーション・プロパティを特定する動作300を含むことができることを示す。動作300は、アプリケーション・プログラムを開始するための1つまたは複数の要求をアプリケーション層で受け取ることを含み、要求されたアプリケーション・プログラムは、使用すべき仮想マシンの種類と数を示す1つまたは複数のプロパティを含む。例えば、図1Aは、インストール要求113を受け取ると、アプリケーション層103内のエグゼクティブ・アプリケーション105とアプリケーション・リポジトリ110が通信して、要求されたアプリケーション135aに関するプロパティ137aを受け取ることを示す。前述のように、プロパティ137aは、物理ホストの種類または位置、アプリケーション・プログラムを実行するために使用すべき仮想マシンの種類、数またはリソース要件のような、要求されたアプリケーション・プログラム135aに関する様々な種類の情報を含むことができる。
また、図3は、エグゼクティブ・アプリケーション105の観点からの方法が、利用可能な仮想マシンに関するデータ構造を検証する動作310を含むことができることを示す。動作310は、アプリケーション層における1つまたは複数のデータ構造を検証して、コンピュータ化された環境で利用可能な1つまたは複数の仮想マシンを特定することを含む。例えば、図1Aおよび図1Bは、アプリケーション層103におけるエグゼクティブ・アプリケーション105が、受け取ったプロパティ137aを解釈しおよび/または詳細化して、ホスト130および2つの異なる仮想マシン、この場合は仮想マシン150aと150b、内にインストールすべきアプリケーション135aを決定することを示す。
さらに、図3は、エグゼクティブ・アプリケーション105の観点からの方法が、アプリケーションを適切な仮想マシンにインストールする動作320を含むことができることを示す。動作320は、仮想マシン層に指示して、1つまたは複数の物理ホストにインストールされた1つまたは複数の利用可能な仮想マシンに、要求されたアプリケーション・プログラムをインストールすることを含む。例えば、図1Aに示すように、エグゼクティブ・アプリケーション105を介して、アプリケーション層103が1つまたは複数のメッセージ147を、仮想マシン・マネージャ120を介して仮想マシン層107に送る。図示したメッセージ147は、仮想マシンの150aと150bを物理ホスト130にインストールする指示を含む。図1Aは、さらに、仮想マシン・マネージャ120が1つまたは複数の対応するメッセージ155を物理ホスト130に送るという点で、仮想マシン層107が要求に作用することを示す。メッセージ155は、次に、物理ホスト130に指示して、要求された仮想マシン150aと150bをインストールする。
さらに、図3は、エグゼクティブ・アプリケーション105の観点から見た方法が、アプリケーションが除去されたときに仮想マシンを削除する動作330を含むことができることを示す。動作330は、要求されたアプリケーション・プログラムが仮想マシンからアンインストールされたことを、データ構造を通して特定すると、アプリケーション層が仮想マシンを対応する物理ホストから除去することを指示することを含む。例えば、図1Cに示すように、アプリケーション層103は、直接的にまたは最初に、エグゼクティブ・アプリケーション105を通してデータ構造123へのメッセージ170を受け取る。次に、エグゼクティブ・アプリケーション105は、アプリケーション135aがアンインストールされ、仮想マシン150aと150bを除去する(すなわち、物理ホスト130から削除するか、または、物理ホスト130の前のバージョンに復帰する)必要があることを特定する。従って、アプリケーション層103は、エグゼクティブ・アプリケーション105を介して、1つまたは複数のメッセージ180を仮想マシン層107に送り、仮想マシン150aと150bをホスト130から除去する(すなわち、削除または復帰する)。
したがって、本発明の実装形態は、仮想マシン・スプロールを管理する一貫した効率的なアプローチを提供する。具体的には、多数の異なる一意な仮想マシン構成を複合型のアプリケーションとして抽象化し管理することによって、本明細書で説明した宣言的なモデル駆動型のアプローチは簡潔性(したがって、主として、管理コストの削減)をもたらす。具体的には、本明細書で説明したプラットフォーム/システムは、複合型のアプリケーションの宣言的なモデルを用いて、要求されたアプリケーションを実行し、仮想マシンのライフ・サイクルを管理するための、適切な仮想マシン構成を自動的に作成する。任意数の仮想マシンを動作可能なアプリケーションの減少として表すことで、仮想化の管理における大幅な効率性の増加がもたらされる。
さらに、本明細書で説明した仮想マシン層およびアプリケーション層の両方を構成して、オン・プレミスとクラウド両方のデプロイをサポートできることは理解されよう。このように、仮想マシンをオン・プレミスで実行するだけでなく、クラウド内でも実行することもでき、アプリケーション層は、任意の様々なウェブ・サービスまたはデータベース・アプリケーション・モジュールをオン・プレミスでデプロイし実行でき、または、アプリケーション・モジュールをクラウドでデプロイし実行することができる。係るアプローチにより、アジリティが可能となり、事実上どんな企業においても、実行されているビジネス・アプリケーションに関する管理コストが削減されることは理解されよう。
以下でさらに詳細に論ずるように、本発明の実施形態は、様々なコンピュータ・ハードウェアを含む特殊目的または汎用目的のコンピュータを備えることができる。本発明の範囲内の実施形態にはまた、コンピュータ実行可能命令またはデータ構造を保持または格納したコンピュータ読取可能媒体が含まれる。係るコンピュータ読取可能媒体は、汎用目的または特殊目的のコンピュータによってアクセスできる任意の利用可能な媒体であることができる。
限定ではなく例として、係るコンピュータ読取可能媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶装置、または所望のプログラム・コード手段をコンピュータ実行可能命令もしくはデータ構造の形で運搬もしくは記憶するために使用でき且つ汎用目的もしくは特殊目的のコンピュータによってアクセスできる任意の他の媒体を備えることができる。情報をネットワークまたは別の通信接続(ハードワイヤード、無線、またはハードワイヤードもしくは無線の組合せ)を介してコンピュータに転送または提供する場合、コンピュータは当該接続を適切にコンピュータ読取可能媒体とみなす。したがって、任意の上記の接続を適切にコンピュータ読取可能媒体と称する。上記の組合せも、コンピュータ読取可能媒体の範囲に含まれるべきである。
コンピュータ実行可能命令は、例えば、汎用目的のコンピュータ、特殊目的のコンピュータ、または特殊目的の処理装置に特定の機能または機能群を実行させる命令およびデータを含む。主題を構造的な特徴および/または方法論的な動作に固有な言葉で説明したが、添付の特許請求の範囲で定義した主題は、必ずしも上述の特定の特徴または動作に限定されないことは理解されよう。そうではなく、上述した特定の特徴および動作は、特許請求の範囲を実装する形態の例として開示されている。
本発明は、その趣旨または本質的な特徴から逸脱することなく、他の特定の形態で具体化してもよい。説明した実施形態は、あらゆる面において限定的ではなく、例示にすぎないと解釈すべきである。したがって、本発明の範囲は、上述の説明ではなく、添付の特許請求の範囲によって画される。特許請求の範囲の意味および均等の範囲にあるあらゆる変更は、その範囲に包含される。

Claims (15)

  1. 仮想マシンを実行するための1つまたは複数の物理ホストを有するコンピュータシステムにおいて、前記コンピュータシステム内のアプリケーション層が、前記コンピュータシステム内の仮想マシン層を通して1つまたは複数のアプリケーション・プログラムに対する1つまたは複数の仮想マシンの作成と操作を開始し管理するために、コンピュータによって実行される方法であって、
    前記コンピュータシステムの前記アプリケーション層において実行されるエグゼクティブ・アプリケーションが、前記コンピュータシステムの前記仮想マシン層にて1つまたは複数の仮想マシン内でアプリケーション・プログラムをインストールするための1つまたは複数の要求を受け取るステップと、
    前記1つまたは複数の要求を受け取るステップに応答して、前記エグゼクティブ・アプリケーションが、アプリケーション・リポジトリと通信して、前記1つまたは複数の要求において特定される前記要求されたアプリケーション・プログラムの1つまたは複数のプロパティを決定するステップであって、前記プロパティは、前記要求されたアプリケーション・プログラムに対してデプロイされうる仮想マシンの1つまたは複数の構成を特定する、決定するステップと、
    前記1つまたは複数のプロパティに基づいて、前記エグゼクティブ・アプリケーションが、前記要求されたアプリケーション・プログラムを実行するためにデプロイされるべき、仮想マシン・ライブラリから入手可能な1つまたは複数の仮想マシンを特定するステップと、
    前記1つまたは複数の仮想マシンを特定すると、前記エグゼクティブ・アプリケーションが、前記要求されたアプリケーション・プログラムに対して前記仮想マシン・ライブラリから特定された1つまたは複数の仮想マシンをデプロイするように仮想マシン・マネージャに指示する1つまたは複数の仮想マシン命令を、前記アプリケーション層から、前記仮想マシン層において実行される前記仮想マシン・マネージャに送るステップと、
    前記1つまたは複数の特定された仮想マシンがデプロイされた時に、前記1つまたは複数の特定された仮想マシンがデプロイされたことを示すように、前記アプリケーション層内のデータ構造を更新するステップと、
    前記エグゼクティブ・アプリケーションが、前記データ構造を参照して前記1つまたは複数の仮想マシンがデプロイされたことを確認すると、前記1つまたは複数のデプロイされた仮想マシンの各々に、前記要求されたアプリケーション・プログラムを前記1つまたは複数のプロパティから特定された構成に従ってインストールするように指示する1つまたは複数の指示を送るステップと
    前記要求されたアプリケーション・プログラムが前記1つまたは複数のデプロイされた仮想マシンのうちの少なくとも1つからアンインストールされた時に、前記要求されたアプリケーション・プログラムがアンインストールされたことを示すように、前記データ構造を更新するステップと、
    前記データ構造を通して、前記要求されたアプリケーション・プログラムが前記1つまたは複数のデプロイされた仮想マシンのうちの少なくとも1つからアンインストールされたことを特定すると、前記エグゼクティブ・アプリケーションが、前記少なくとも1つの仮想マシンを前記対応する物理ホストから削除する1つまたは複数の指示を前記アプリケーション層から前記仮想マシン層に送るステップと
    を含む方法。
  2. 前記エグゼクティブ・アプリケーションが、前記受け取ったプロパティを前記1つまたは複数の仮想マシン命令に変換する
    ことを特徴とする請求項1に記載の方法。
  3. 前記要求されたアプリケーションに対応する前記プロパティが、前記要求されたアプリケーション・プログラムに関連付けられた1つまたは複数の宣言的なモデルを備え、
    前記1つまたは複数の宣言的なモデルが、前記決定された仮想マシンに対する1つまたは複数の構成を備える
    ことを特徴とする請求項2に記載の方法。
  4. 前記要求されたアプリケーションに対応する前記プロパティが、前記要求されたアプリケーションをデプロイすべき1つまたは複数の物理ホストを示すことを特徴とする請求項に記載の方法。
  5. 前記要求されたアプリケーションに対応する前記プロパティが、前記要求されたアプリケーション・プログラムに対してデプロイすべき仮想マシンの数と種類を示すことを特徴とする請求項に記載の方法。
  6. 前記仮想マシンの前記数と種類の一部または全部が、前記要求されたアプリケーションのバージョンに依存することを特徴とする請求項に記載の方法。
  7. 前記要求されたアプリケーション・プログラムを前記1つまたは複数のプロパティから特定された構成に従ってインストールすることは、さらに、前記アプリケーション層が1つまたは複数の指示を前記1つまたは複数のデプロイされた仮想マシンの各々のドライバに送るステップを含むことを特徴とする請求項1に記載の方法。
  8. 記要求されたアプリケーションが前記デプロイされた1つまたは複数の仮想マシンに、および1つまたは複数の物理ホストに、インストールされたことを示すために、前記データ構造を更新するステップをさらに備えることを特徴とする請求項に記載の方法。
  9. 前記要求されたアプリケーションがアンインストールされたことを決定する前に、
    前記要求されたアプリケーションを前記1つまたは複数のデプロイされた仮想マシンからアンインストールすべきことを特定し、
    前記要求されたアプリケーションをアンインストールするための1つまたは複数の指示を前記仮想マシン層に送る
    ステップをさらに含むことを特徴とする請求項に記載の方法。
  10. 前記要求されたアプリケーションを前記1つまたは複数のデプロイされた仮想マシンからアンインストールすべきと特定するステップが、前記アプリケーションがアンインストールまたは廃棄する準備ができていることを、前記要求されたアプリケーションに対応する前記データ構造内の1つまたは複数のプロパティから特定するステップを含むことを特徴とする請求項に記載の方法。
  11. 記以前にデプロイした1つまたは複数の仮想マシンが前記対応する物理ホストから削除されたことを示すために、前記データ構造を更新するステップをさらに含むことを特徴とする請求項に記載の方法。
  12. 1つまたは複数の物理ホストを有するコンピュータシステムにおいて、前記コンピュータシステム内のアプリケーション層が、1つまたは複数の仮想マシンを1つまたは複数のアプリケーション・プログラムに沿って作成し、操作し、廃棄することを開始および管理するために、コンピュータによって実行される方法であって、
    前記コンピュータシステムの前記アプリケーション層において実行されるエグゼクティブ・アプリケーションが、前記コンピュータシステムの仮想マシン層にて1つまたは複数の仮想マシン内でアプリケーション・プログラムをインストールするための1つまたは複数の要求を受け取るステップであって、前記要求されたアプリケーション・プログラムが、使用される仮想マシンの種類と数および特定された前記仮想マシンの種類と数の範囲内での使用のためのアプリケーション構成を示す1つまたは複数のプロパティを含む、受け取るステップと、
    前記1つまたは複数の要求を受け取るステップに応答して、前記エグゼクティブ・アプリケーションが、前記アプリケーション層内の1つまたは複数のデータ構造を検証して、前記仮想マシン層内のデプロイに利用可能な1つまたは複数の仮想マシンを仮想マシン・ライブラリから特定するステップと、
    前記1つまたは複数の仮想マシンの特定に基づいて、前記エグゼクティブ・アプリケーションが、前記仮想マシン層において実行される仮想マシン・マネージャに、前記1つまたは複数の物理ホストにて前記仮想マシン・ライブラリから特定された1つまたは複数の仮想マシンをデプロイするように指示するステップと、
    前記1つまたは複数の特定された仮想マシンがデプロイされた時に、前記1つまたは複数の特定された仮想マシンがデプロイされたことを示すように、前記1つまたは複数のデータ構造を更新するステップと、
    前記エグゼクティブ・アプリケーションが、前記1つまたは複数のデータ構造を参照して前記1つまたは複数の仮想マシンがデプロイされたことを確認すると、前記1つまたは複数のデプロイされた仮想マシンの各々に指示して、前記要求されたアプリケーション・プログラムを、前記1つまたは複数の仮想マシンのデプロイに基づく前記アプリケーション構成に従って、対応する仮想マシンにてインストールするステップと、
    前記要求されたアプリケーション・プログラムが前記1つまたは複数のデプロイされた仮想マシンのうちの少なくとも1つからアンインストールされた時に、前記要求されたアプリケーション・プログラムがアンインストールされたことを示すように、前記1つまたは複数のデータ構造を更新するステップと、
    前記1つまたは複数のデータ構造を通して、前記要求されたアプリケーション・プログラムが前記1つまたは複数のデプロイされた仮想マシンのうちの少なくとも1つからアンインストールされたことを特定すると、前記エグゼクティブ・アプリケーションが、前記少なくとも1つのデプロイされた仮想マシンを対応する物理ホストから削除するように前記仮想マシン・マネージャに指示するステップと
    を含む方法。
  13. 前記特定された1つまたは複数の仮想マシンが、オペレーティング・システムのチェックポイントに対して設定された1つまたは複数の仮想マシン・テンプレートを備え、
    前記仮想マシンを前記対応する物理ホストから削除する動作が、前記仮想マシンを以前のチェックポイントに復帰させ、更新されたバージョンの前記仮想マシンが前記物理ホストから削除され、前記以前のチェックポイントに対応する以前のバージョンの前記仮想マシンが前記物理ホストに留まるようにする
    ことを特徴とする請求項12に記載の方法。
  14. 前記データ構造が、前記システム内にデプロイされた全ての仮想マシンと、前記仮想マシンにインストールされた全てのアプリケーション・プログラムと、前記インストールされたアプリケーションおよびデプロイされた仮想マシンの各々に対する意図されたライフ・サイクルを示す1つまたは複数のプロパティと、を示すことを特徴とする請求項12に記載の方法。
  15. コンピュータに、コンピュータシステム内のアプリケーション層が前記コンピュータシステム内の仮想マシン層を通して1つまたは複数のアプリケーション・プログラムに対する1つまたは複数の仮想マシンの作成と操作を開始し管理する方法を実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体であって、前記方法は、
    前記コンピュータシステムの前記アプリケーション層において実行されるエグゼクティブ・アプリケーションが、前記コンピュータシステムの前記仮想マシン層にて1つまたは複数の仮想マシン内でアプリケーション・プログラムをインストールするための1つまたは複数の要求を受け取るステップと、
    前記1つまたは複数の要求に基づいて、前記エグゼクティブ・アプリケーションが、アプリケーション・リポジトリと通信して、前記要求されたアプリケーション・プログラムの1つまたは複数のプロパティを決定するステップであって、前記プロパティは、前記要求されたアプリケーション・プログラムに対してデプロイされうる、仮想マシン・ライブラリにて入手可能な仮想マシンの1つまたは複数の種類、これらの仮想マシンの1つまたは複数の構成、前記要求されたアプリケーション・プログラムの1つまたは複数の構成を特定する、決定するステップと、
    前記1つまたは複数のプロパティに基づいて、前記エグゼクティブ・アプリケーションが、前記要求されたアプリケーション・プログラムを実行するためにデプロイされるべき仮想マシン・ライブラリから入手可能な1つまたは複数の仮想マシン、および前記1つまたは複数の仮想マシンの1つまたは複数の構成を特定するステップと、
    前記1つまたは複数の仮想マシンを特定すると、前記エグゼクティブ・アプリケーションが、前記要求されたアプリケーション・プログラムに対して前記仮想マシン・ライブラリから特定された1つまたは複数の仮想マシンを、前記特定された1つまたは複数の仮想マシンの1つまたは複数の構成に従ってデプロイするように仮想マシン・マネージャに指示する1つまたは複数の仮想マシン命令を、前記アプリケーション層から、前記仮想マシン層において実行される前記仮想マシン・マネージャに送るステップと、
    前記1つまたは複数の特定された仮想マシンがデプロイされた時に、前記1つまたは複数の特定された仮想マシンがデプロイされたことを示すように、前記アプリケーション層内のデータ構造を更新するステップと、
    前記データ構造を参照することで、前記1つまたは複数の仮想マシンのデプロイに応答して、前記エグゼクティブ・アプリケーションが、前記1つまたは複数のデプロイされた仮想マシンの各々に、前記要求されたアプリケーション・プログラムを前記要求されたアプリケーション・プログラムの1つまたは複数の構成に従ってインストールするように指示する1つまたは複数の指示を送るステップと、
    前記エグゼクティブ・アプリケーションが、前記データ構造において、前記要求されたアプリケーション・プログラムが前記1つまたは複数のデプロイされた仮想マシン上にインストールされているという識別情報を格納するステップと、
    前記要求されたアプリケーション・プログラムが前記1つまたは複数のデプロイされた仮想マシンのうちの少なくとも1つからアンインストールされた時に、前記要求されたアプリケーション・プログラムがアンインストールされたことを示すように、前記データ構造を更新するステップと、
    前記データ構造を通して、前記要求されたアプリケーション・プログラムが前記1つまたは複数のデプロイされた仮想マシンのうちの少なくとも1つからアンインストールされたことを特定すると、前記エグゼクティブ・アプリケーションが、前記少なくとも1つの仮想マシンを前記対応する物理ホストから削除する1つまたは複数の指示を前記アプリケーション層から前記仮想マシン層に送るステップと
    を含む、コンピュータ読み取り可能な記録媒体。
JP2011513536A 2008-06-13 2009-05-15 仮想マシンとアプリケーション・ライフ・サイクルの同期 Expired - Fee Related JP5367074B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/138,591 US8161479B2 (en) 2008-06-13 2008-06-13 Synchronizing virtual machine and application life cycles
US12/138,591 2008-06-13
PCT/US2009/044263 WO2009151875A1 (en) 2008-06-13 2009-05-15 Synchronizing virtual machine and application life cycles

Publications (3)

Publication Number Publication Date
JP2011524053A JP2011524053A (ja) 2011-08-25
JP2011524053A5 JP2011524053A5 (ja) 2012-06-28
JP5367074B2 true JP5367074B2 (ja) 2013-12-11

Family

ID=41415945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011513536A Expired - Fee Related JP5367074B2 (ja) 2008-06-13 2009-05-15 仮想マシンとアプリケーション・ライフ・サイクルの同期

Country Status (10)

Country Link
US (1) US8161479B2 (ja)
EP (1) EP2310940A4 (ja)
JP (1) JP5367074B2 (ja)
KR (1) KR101574366B1 (ja)
CN (1) CN102057355B (ja)
AU (1) AU2009257865B2 (ja)
BR (1) BRPI0911610B1 (ja)
CA (1) CA2723907C (ja)
RU (1) RU2498394C2 (ja)
WO (1) WO2009151875A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430207B2 (en) 2016-03-25 2019-10-01 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Method and electronic device for directly starting application on second virtual machine in operating environment of first virtual machine
US10915312B2 (en) * 2019-07-02 2021-02-09 Vmware, Inc. Lifecycle management of virtual compute templates

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101506683B1 (ko) * 2008-08-06 2015-03-30 삼성전자 주식회사 다수개의 운영 시스템을 지원하는 장치 및 방법
US8453144B1 (en) 2008-09-23 2013-05-28 Gogrid, LLC System and method for adapting a system configuration using an adaptive library
US8255496B2 (en) 2008-12-30 2012-08-28 Juniper Networks, Inc. Method and apparatus for determining a network topology during network provisioning
US8565118B2 (en) 2008-12-30 2013-10-22 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US8190769B1 (en) 2008-12-30 2012-05-29 Juniper Networks, Inc. Methods and apparatus for provisioning at a network device in response to a virtual resource migration notification
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
US20100250228A1 (en) * 2009-03-30 2010-09-30 International Business Machines Corporation Modeling a composite application
US8954487B2 (en) * 2009-06-23 2015-02-10 Samsung Electronics Co., Ltd. Management server and method for providing cloud computing service
US8812796B2 (en) 2009-06-26 2014-08-19 Microsoft Corporation Private memory regions and coherence optimizations
US8953603B2 (en) 2009-10-28 2015-02-10 Juniper Networks, Inc. Methods and apparatus related to a distributed switch fabric
US8442048B2 (en) 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US8789041B2 (en) * 2009-12-18 2014-07-22 Verizon Patent And Licensing Inc. Method and system for bulk automated virtual machine deployment
US9130912B2 (en) 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
WO2011114655A1 (ja) * 2010-03-16 2011-09-22 パナソニック株式会社 情報処理装置、仮想マシン生成方法及びアプリ配信システム
US8601226B1 (en) 2010-05-20 2013-12-03 Gogrid, LLC System and method for storing server images in a hosting system
US10310696B1 (en) 2010-05-28 2019-06-04 Bromium, Inc. Supporting a consistent user interface within a virtualized environment
US9104837B1 (en) 2012-06-18 2015-08-11 Bromium, Inc. Exposing subset of host file systems to restricted virtual machines based on upon performing user-initiated actions against host files
US9135038B1 (en) 2010-05-28 2015-09-15 Bromium, Inc. Mapping free memory pages maintained by a guest operating system to a shared zero page within a machine frame
US9558051B1 (en) 2010-05-28 2017-01-31 Bormium, Inc. Inter-process communication router within a virtualized environment
US9386021B1 (en) 2011-05-25 2016-07-05 Bromium, Inc. Restricting network access to untrusted virtual machines
US8752047B2 (en) 2010-05-28 2014-06-10 Bromium, Inc. Automated management of virtual machines to process untrusted data based on client policy information
US10095530B1 (en) 2010-05-28 2018-10-09 Bromium, Inc. Transferring control of potentially malicious bit sets to secure micro-virtual machine
US9767274B2 (en) 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US8972980B2 (en) * 2010-05-28 2015-03-03 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9116733B2 (en) 2010-05-28 2015-08-25 Bromium, Inc. Automated provisioning of secure virtual execution environment using virtual machine templates based on requested activity
US9148428B1 (en) 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
US9239909B2 (en) 2012-01-25 2016-01-19 Bromium, Inc. Approaches for protecting sensitive data within a guest operating system
US8171349B2 (en) 2010-06-18 2012-05-01 Hewlett-Packard Development Company, L.P. Associating a monitoring manager with an executable service in a virtual machine migrated between physical machines
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
JP5653151B2 (ja) * 2010-09-17 2015-01-14 キヤノン株式会社 クラウドコンピューティングシステム、クラウドコンピューティングシステムの制御方法、および管理アプリケーション
US9384054B2 (en) * 2010-09-22 2016-07-05 Nokia Technologies Oy Process allocation to applications executing on a mobile device
US8584121B2 (en) 2010-11-19 2013-11-12 International Business Machines Corporation Using a score-based template to provide a virtual machine
US9128803B2 (en) 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US8891406B1 (en) 2010-12-22 2014-11-18 Juniper Networks, Inc. Methods and apparatus for tunnel management within a data center
US8745734B1 (en) * 2010-12-29 2014-06-03 Amazon Technologies, Inc. Managing virtual computing testing
US8607067B1 (en) 2011-03-01 2013-12-10 Amazon Technologies, Inc. Techniques for attesting to information
US8918785B1 (en) 2010-12-29 2014-12-23 Amazon Technologies, Inc. Managing virtual machine network through security assessment
US8839241B2 (en) * 2010-12-31 2014-09-16 Emc Corporation Virtual appliance deployment
US8799915B1 (en) * 2010-12-31 2014-08-05 Emc Corporation Decommissioning virtual appliances
US8601472B1 (en) 2010-12-31 2013-12-03 Emc Corporation Instantiating virtual appliances
JP5592303B2 (ja) * 2011-04-07 2014-09-17 株式会社日立製作所 実行環境構築装置および実行環境構築システム
US9015710B2 (en) * 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US8799888B1 (en) 2011-05-20 2014-08-05 Amazon Technologies, Inc. Updating an application
US8869135B1 (en) 2011-05-20 2014-10-21 Amazon Technologies, Inc. Deploying updates to an application during periods of off-peak demand
US8850419B1 (en) * 2011-05-20 2014-09-30 Amazon Technologies, Inc. Descaling computing resources
DE112012001660T5 (de) * 2011-05-23 2014-01-16 International Business Machines Corporation Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
US9921860B1 (en) 2011-05-25 2018-03-20 Bromium, Inc. Isolation of applications within a virtual machine
US10546118B1 (en) 2011-05-25 2020-01-28 Hewlett-Packard Development Company, L.P. Using a profile to provide selective access to resources in performing file operations
US10846396B1 (en) 2011-05-25 2020-11-24 Hewlett-Packard Development Company, L.P. Downloading data in a dedicated virtual machine
US8839245B1 (en) 2012-06-18 2014-09-16 Bromium, Inc. Transferring files using a virtualized application
US10013281B2 (en) * 2011-06-29 2018-07-03 Microsoft Technology Licensing, Llc Controlling network utilization
US8819679B2 (en) * 2011-07-28 2014-08-26 International Business Machines Corporation Methods and systems for on-boarding applications to a cloud
JP5681279B2 (ja) * 2011-08-01 2015-03-04 日本電気株式会社 試験装置、システム、プログラム、及び、方法
US9639402B2 (en) * 2011-08-05 2017-05-02 Oracle International Corporation Systems and methods for automatic hardware provisioning based on application characteristics
US20130055243A1 (en) * 2011-08-24 2013-02-28 Dell Products, Lp Unified Management Architecture to Support Multiple Platform-as-a-Service Workloads
US9094449B2 (en) 2011-09-14 2015-07-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
US8640238B2 (en) * 2011-09-14 2014-01-28 Architecture Technology Corporation Fight-through nodes for survivable computer network
US9766986B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US9769250B2 (en) 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US9838415B2 (en) 2011-09-14 2017-12-05 Architecture Technology Corporation Fight-through nodes for survivable computer network
JP5134149B1 (ja) * 2011-09-26 2013-01-30 株式会社北洋銀行 ネットワークシステム及びその制御方法
US9245095B2 (en) 2011-10-25 2016-01-26 Ca, Inc. System and method for license management of virtual machines at a virtual machine manager
US8924723B2 (en) * 2011-11-04 2014-12-30 International Business Machines Corporation Managing security for computer services
TWI478063B (zh) * 2011-11-21 2015-03-21 Inst Information Industry 於虛擬機器提供應用程式之系統以及方法以及儲存其之電腦可讀取記錄媒體
US8826277B2 (en) 2011-11-29 2014-09-02 International Business Machines Corporation Cloud provisioning accelerator
US10310878B2 (en) * 2011-12-16 2019-06-04 Vmware, Inc. Execution of an application in a runtime environment installed in a virtual appliance
US9069607B1 (en) 2012-01-31 2015-06-30 Vmware, Inc. Selective migration of virtualized applications and configuration settings thereof
US20130219387A1 (en) * 2012-02-22 2013-08-22 Vmware, Inc. Establishing secure two-way communications in a virtualization platform
US9038128B2 (en) 2012-02-29 2015-05-19 Red Hat, Inc. Applying security category labels to multi-tenant applications of a node in a platform-as-a-service environment
US9720668B2 (en) 2012-02-29 2017-08-01 Red Hat, Inc. Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system
US9058198B2 (en) * 2012-02-29 2015-06-16 Red Hat Inc. System resource sharing in a multi-tenant platform-as-a-service environment in a cloud computing system
US9047107B2 (en) 2012-02-29 2015-06-02 Red Hat, Inc. Applying a custom security type label to multi-tenant applications of a node in a platform-as-a-service environment
JP5978659B2 (ja) * 2012-03-06 2016-08-24 日本電気株式会社 シンクライアントシステム、管理サーバ、業務環境設定方法、及び業務環境設定プログラム
US9245108B1 (en) 2012-03-13 2016-01-26 Bromium, Inc. Dynamic adjustment of the file format to identify untrusted files
US8666938B1 (en) * 2012-03-28 2014-03-04 Vmware, Inc. Installed application cloning and failover to virtual server
WO2013145434A1 (ja) * 2012-03-29 2013-10-03 株式会社北洋銀行 ネットワークシステム及びその制御方法
US20130275968A1 (en) * 2012-04-17 2013-10-17 Petio Petev Application management methods and systems
US9571332B2 (en) * 2012-04-17 2017-02-14 Adara Networks, Inc. Methods and apparatuses for remote application provisioning automation over virtualized IT infrastructure
US8850514B2 (en) 2012-05-01 2014-09-30 Red Hat, Inc. Cartridges in a multi-tenant platforms-as-a-service (PaaS) system implemented in a cloud computing environment
US9665411B2 (en) 2012-05-01 2017-05-30 Red Hat, Inc. Communication between a server orchestration system and a messaging system
US9245111B2 (en) 2012-05-01 2016-01-26 Red Hat, Inc. Owner command execution in a multi-tenant cloud hosting environment
US9378255B2 (en) 2012-05-11 2016-06-28 Sap Se Cloud logistics
US9342330B2 (en) * 2012-05-11 2016-05-17 Sap Se Deploying a user-configured virtual appliance template including a portion of an existing computing application to enhance functionality
US10169000B2 (en) * 2012-05-30 2019-01-01 Red Hat Israel, Ltd. Provisioning composite applications using secure parameter access
US9384026B1 (en) 2012-06-18 2016-07-05 Bromium, Inc. Sharing and injecting cookies into virtual machines for retrieving requested web pages
US10095662B1 (en) 2012-06-18 2018-10-09 Bromium, Inc. Synchronizing resources of a virtualized browser
US9734131B1 (en) 2012-06-18 2017-08-15 Bromium, Inc. Synchronizing history data across a virtualized web browser
US11023088B2 (en) 2012-06-18 2021-06-01 Hewlett-Packard Development Company, L.P. Composing the display of a virtualized web browser
US9727534B1 (en) 2012-06-18 2017-08-08 Bromium, Inc. Synchronizing cookie data using a virtualized browser
US9201850B1 (en) 2012-06-18 2015-12-01 Bromium, Inc. Composing the display of a virtualized web browser
US9183031B2 (en) * 2012-06-19 2015-11-10 Bank Of America Corporation Provisioning of a virtual machine by using a secured zone of a cloud environment
US9887872B2 (en) 2012-07-13 2018-02-06 Microsoft Technology Licensing, Llc Hybrid application environments including hosted applications and application servers for interacting with data in enterprise environments
US8978035B2 (en) 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
CN103677983B (zh) * 2012-09-20 2018-05-04 三亚中兴软件有限责任公司 应用的调度方法及装置
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
GB2513535A (en) * 2012-12-14 2014-11-05 Ibm Software installer with built-in hypervisor
CN103049268B (zh) * 2012-12-25 2016-08-03 中国科学院深圳先进技术研究院 一种基于Naplet的应用开发管理系统
US20140282581A1 (en) * 2013-03-15 2014-09-18 Mckesson Financial Holdings Method and apparatus for providing a component block architecture
US9348608B2 (en) 2013-04-24 2016-05-24 QRC, Inc. System and method for registering application and application transforms on a radiofrequency digitization and collection device
US9729465B2 (en) 2013-05-01 2017-08-08 Red Hat, Inc. Policy based application elasticity across heterogeneous computing infrastructure
US9584364B2 (en) 2013-05-21 2017-02-28 Amazon Technologies, Inc. Reporting performance capabilities of a computer resource service
US9292328B2 (en) 2013-05-24 2016-03-22 Bromium, Inc. Management of supervisor mode execution protection (SMEP) by a hypervisor
US9383986B2 (en) 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
EP3022649A1 (en) * 2013-07-19 2016-05-25 Hewlett Packard Enterprise Development LP Virtual machine resource management system and method thereof
WO2015030717A1 (en) * 2013-08-27 2015-03-05 Empire Technology Development Llc Consolidating operations associated with a plurality of host devices
US10599565B2 (en) 2013-12-24 2020-03-24 Hewlett-Packard Development Company, L.P. Hypervisor managing memory addressed above four gigabytes
US10430614B2 (en) 2014-01-31 2019-10-01 Bromium, Inc. Automatic initiation of execution analysis
CN103823657A (zh) * 2014-02-17 2014-05-28 汉柏科技有限公司 一种超线程设备板间通信的方法
RU2573789C2 (ru) * 2014-04-18 2016-01-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ запуска виртуальной машины
US20150347170A1 (en) * 2014-05-27 2015-12-03 Vmware, Inc. Grouping virtual machines in a cloud application
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms
US9680873B1 (en) 2014-06-30 2017-06-13 Bromium, Inc. Trusted network detection
EP3169025A4 (en) * 2014-07-08 2017-12-06 Ntt Docomo, Inc. Control node, node creation system and node creation method
US10311122B1 (en) 2014-08-22 2019-06-04 Bromium, Inc. On-demand unprotected mode access
US10009292B2 (en) 2014-10-03 2018-06-26 International Business Machines Corporation Cloud independent tuning service for autonomously managed workloads
US9619266B2 (en) 2014-10-10 2017-04-11 International Business Machines Corporation Tearing down virtual machines implementing parallel operators in a streaming application based on performance
CN104375877A (zh) * 2014-10-15 2015-02-25 国云科技股份有限公司 一种虚拟机在线快照生成与删除方法
KR101951273B1 (ko) * 2014-12-04 2019-02-22 노키아 솔루션스 앤드 네트웍스 게엠베하 운트 코. 카게 가상화된 자원들의 조종
JP6107801B2 (ja) * 2014-12-12 2017-04-05 日本電気株式会社 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
JP6312139B2 (ja) * 2014-12-26 2018-04-18 日本電信電話株式会社 動的制御システム及び動的制御方法
US10795856B1 (en) * 2014-12-29 2020-10-06 EMC IP Holding Company LLC Methods, systems, and computer readable mediums for implementing a data protection policy for a transferred enterprise application
CN104506651B (zh) * 2015-01-05 2018-02-23 浪潮(北京)电子信息产业有限公司 一种虚拟应用服务管理方法及系统
US9614931B2 (en) * 2015-01-20 2017-04-04 Sphere 3D Inc. Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system
US10242122B2 (en) 2015-05-05 2019-03-26 DGD Systems, Inc. Automated workflow management system for application and data retirement
US9213540B1 (en) * 2015-05-05 2015-12-15 Archive Solutions Providers Automated workflow management system for application and data retirement
US9658894B2 (en) 2015-10-15 2017-05-23 International Business Machines Corporation Automatically and dynamically reclaiming resources during virtual machine decommission
US10200401B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Evaluating results of multiple virtual machines that use application randomization mechanism
US10284592B1 (en) 2015-12-17 2019-05-07 Architecture Technology Corporation Application randomization mechanism
US10412114B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Application randomization mechanism
US10412116B1 (en) 2015-12-17 2019-09-10 Architecture Technology Corporation Mechanism for concealing application and operation system identity
US10200406B1 (en) 2015-12-17 2019-02-05 Architecture Technology Corporation Configuration of application randomization mechanism
US10007498B2 (en) 2015-12-17 2018-06-26 Architecture Technology Corporation Application randomization mechanism
US10394587B2 (en) 2016-01-06 2019-08-27 International Business Machines Corporation Self-terminating or self-shelving virtual machines and workloads
US10255092B2 (en) * 2016-02-09 2019-04-09 Airwatch Llc Managed virtual machine deployment
US10169027B2 (en) * 2016-05-05 2019-01-01 International Business Machines Corporation Upgrade of an operating system of a virtual machine
US10768920B2 (en) 2016-06-15 2020-09-08 Microsoft Technology Licensing, Llc Update coordination in a multi-tenant cloud computing environment
WO2018003031A1 (ja) * 2016-06-29 2018-01-04 富士通株式会社 仮想化管理プログラム、仮想化管理装置および仮想化管理方法
US10885219B2 (en) * 2017-02-13 2021-01-05 Microsoft Technology Licensing, Llc Privacy control operation modes
US10554685B1 (en) 2017-05-25 2020-02-04 Architecture Technology Corporation Self-healing architecture for resilient computing services
US11070432B2 (en) * 2017-07-20 2021-07-20 Cisco Technology, Inc. Dynamic and customizable virtual network functions
US10990432B1 (en) 2017-11-30 2021-04-27 Ila Corporation Method and system for interactive cyber simulation exercises
US11221865B2 (en) * 2018-07-31 2022-01-11 Nutanix, Inc. Batch management of operations over virtualized entities
US20200073678A1 (en) * 2018-08-31 2020-03-05 Dell Products L.P. Systems and methods for operating system deployment
US11301338B2 (en) * 2018-09-20 2022-04-12 EMC IP Holding Company LLC Recovery on virtual machines with existing snapshots
US10848379B2 (en) 2019-01-30 2020-11-24 Hewlett Packard Enterprise Development Lp Configuration options for cloud environments
US11605166B2 (en) 2019-10-16 2023-03-14 Parsons Corporation GPU accelerated image segmentation
WO2021150594A1 (en) 2020-01-20 2021-07-29 Parsons Corporation Narrowband iq extraction and storage
US11619700B2 (en) 2020-04-07 2023-04-04 Parsons Corporation Retrospective interferometry direction finding
US11569848B2 (en) 2020-04-17 2023-01-31 Parsons Corporation Software-defined radio linking systems
US11575407B2 (en) 2020-04-27 2023-02-07 Parsons Corporation Narrowband IQ signal obfuscation
US20220156100A1 (en) * 2020-11-16 2022-05-19 Sap Se Dynamic configuration of access restrictions for an application in relation to databases running in a cloud environment
US11849347B2 (en) 2021-01-05 2023-12-19 Parsons Corporation Time axis correlation of pulsed electromagnetic transmissions

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2000276872A1 (en) * 2000-10-16 2002-04-29 Shima, Masahiko Software rental system
JP2002351682A (ja) * 2001-05-30 2002-12-06 Canon Inc 情報処理方法および情報処理システム
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
JP2004102398A (ja) * 2002-09-05 2004-04-02 Sharp Corp アプリケーション管理装置、その方法およびそのコンピュータ・プログラム
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US20050005018A1 (en) 2003-05-02 2005-01-06 Anindya Datta Method and apparatus for performing application virtualization
EP1678617A4 (en) 2003-10-08 2008-03-26 Unisys Corp COMPUTER SYSTEM PARAVIRTUALIZATION BY USING A HYPERVISOR IMPLEMENTED IN A PARTITION OF THE HOST SYSTEM
US20050132367A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for proxying, aggregating and optimizing virtual machine information for network-based management
JP4094560B2 (ja) 2004-01-23 2008-06-04 株式会社エヌ・ティ・ティ・データ リソース分割サーバ及びリソース分割サーバプログラム
US7454748B2 (en) * 2004-07-27 2008-11-18 Nokia Corporation System and method for specifying virtual machines
US20060070066A1 (en) 2004-09-30 2006-03-30 Grobman Steven L Enabling platform network stack control in a virtualization platform
EP1669864B1 (en) 2004-12-03 2010-06-02 STMicroelectronics Srl A process for managing virtual machines in a physical processing machine, corresponding processor system and computer program product therefor
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US7434218B2 (en) 2005-08-15 2008-10-07 Microsoft Corporation Archiving data in a virtual application environment
EP1934794B1 (en) 2005-09-15 2017-08-02 CA, Inc. Apparatus, method and system for rapid delivery of distributed applications
US8490082B2 (en) * 2005-11-03 2013-07-16 International Business Machines Corporation System and method for representing user processes as software packages in a software package management system
US9032164B2 (en) 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US8015563B2 (en) * 2006-04-14 2011-09-06 Microsoft Corporation Managing virtual machines with system-wide policies
US8108668B2 (en) 2006-06-26 2012-01-31 Intel Corporation Associating a multi-context trusted platform module with distributed platforms
JP2010500667A (ja) 2006-08-07 2010-01-07 ベア・システムズ・インコーポレイテッド 仮想マシン環境におけるハードウェア仮想化を提供するためのシステムおよび方法
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
JP2008107966A (ja) * 2006-10-24 2008-05-08 Hitachi Ltd 計算機システム
US8448161B2 (en) * 2007-07-30 2013-05-21 Adobe Systems Incorporated Application tracking for application execution environment
CN100553214C (zh) * 2007-09-17 2009-10-21 北京航空航天大学 移动虚拟环境系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430207B2 (en) 2016-03-25 2019-10-01 Cloudminds (Shenzhen) Robotics Systems Co., Ltd. Method and electronic device for directly starting application on second virtual machine in operating environment of first virtual machine
US10915312B2 (en) * 2019-07-02 2021-02-09 Vmware, Inc. Lifecycle management of virtual compute templates

Also Published As

Publication number Publication date
CA2723907C (en) 2016-03-01
BRPI0911610B1 (pt) 2019-11-12
EP2310940A4 (en) 2014-01-01
US8161479B2 (en) 2012-04-17
CN102057355A (zh) 2011-05-11
EP2310940A1 (en) 2011-04-20
CA2723907A1 (en) 2009-12-17
WO2009151875A1 (en) 2009-12-17
RU2498394C2 (ru) 2013-11-10
KR101574366B1 (ko) 2015-12-03
RU2010150809A (ru) 2012-06-20
AU2009257865B2 (en) 2015-02-26
US20090313620A1 (en) 2009-12-17
KR20110030447A (ko) 2011-03-23
AU2009257865A1 (en) 2009-12-17
JP2011524053A (ja) 2011-08-25
CN102057355B (zh) 2013-08-07
BRPI0911610A2 (pt) 2015-10-06

Similar Documents

Publication Publication Date Title
JP5367074B2 (ja) 仮想マシンとアプリケーション・ライフ・サイクルの同期
US9851989B2 (en) Methods and apparatus to manage virtual machines
US11237811B2 (en) Software installation onto a client using existing resources
US9471365B2 (en) Techniques for performing virtual machine software upgrades using virtual disk swapping
KR101432463B1 (ko) 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법
US9645839B2 (en) Stateful applications operating in a stateless cloud computing environment
US7979869B2 (en) Method and system for performing I/O operations using a hypervisor
CN107992355B (zh) 一种部署应用软件的方法、装置及虚拟机
US20100325624A1 (en) Method and System for Application Portability
US10715594B2 (en) Systems and methods for update propagation between nodes in a distributed system
US20090006062A1 (en) Progressively implementing declarative models in distributed systems
US10721125B2 (en) Systems and methods for update propagation between nodes in a distributed system
US20090013321A1 (en) Managing virtual computers
CN102710814A (zh) 虚拟机ip地址的控制方法及装置
CN103793259A (zh) 一种虚拟器件的生成和部署方法
CN116360834A (zh) 基于OSTree的Kubernetes集群原地升级方法及系统
US11853275B2 (en) Upgrading a database management system deployed in a cloud platform

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120508

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130326

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130515

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130626

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130705

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130718

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20130718

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: 20130812

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130910

R150 Certificate of patent or registration of utility model

Ref document number: 5367074

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees