JP2013522769A - 仮想マシンイメージ更新サービス - Google Patents

仮想マシンイメージ更新サービス Download PDF

Info

Publication number
JP2013522769A
JP2013522769A JP2013500109A JP2013500109A JP2013522769A JP 2013522769 A JP2013522769 A JP 2013522769A JP 2013500109 A JP2013500109 A JP 2013500109A JP 2013500109 A JP2013500109 A JP 2013500109A JP 2013522769 A JP2013522769 A JP 2013522769A
Authority
JP
Japan
Prior art keywords
application
component
computing environment
image
update
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.)
Pending
Application number
JP2013500109A
Other languages
English (en)
Other versions
JP2013522769A5 (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 JP2013522769A publication Critical patent/JP2013522769A/ja
Publication of JP2013522769A5 publication Critical patent/JP2013522769A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • 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

Landscapes

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

Abstract

分散コンピューティング環境内のアプリケーションによって使用されるコンポーネントを更新するシステム、方法およびコンピュータ読取可能媒体。分散コンピューティング環境内のアプリケーションが依拠するコンポーネントのインベントリを作成および維持して、ある特定のコンポーネントを使用するアプリケーションの識別を容易にする。インベントリから、ある特定のコンポーネントを使用するアプリケーションの判定が行われる。その特定のコンポーネント向けに更新が利用可能であるという指示が受信される。特定のコンポーネントを使用するアプリケーション用のアプリケーションイメージは、分離コンピューティング環境内でブートされ、コンポーネントが更新されることを可能にする。更新されたコンポーネントを反映する、アプリケーションの新規イメージが作成される。アプリケーションの開発者などのユーザに、アプリケーションの将来のインスタンスのために新規イメージが利用可能であることが通知される。

Description

本発明は、仮想マシンイメージ更新サービスに関する。
分散コンピューティングシステムが、アプリケーションを稼働し、データを維持するための様々な設定において利用される。例えば、従来はパーソナルコンピュータに格納および維持されていた、1つまたは複数の所望の機能を実行するためのアプリケーションは、分散コンピューティングシステムにおいて実行されると、パーソナルコンピュータにあるアプリケーションの個々のコピーに関連付けられたローカルリソース、維持、および他の負担を必要することなく、同様の機能性を提供することができる。
分散コンピューティングシステム(環境)を通してアクセス可能なアプリケーションは、ある特定のユーザグループに特有の特徴を含み得る。特定のユーザグループに特有のこうした特徴は、アプリケーションによって使用されるコンポーネントに対する従来の更新の自動化を妨げる。従来、分散コンピューティングシステムアプリケーションを更新するとき、そのプロセスは面倒であり、結果として、更新より前の、アプリケーションにとって独自の特徴の多くを回復するのに、手動介入が行われる。したがって、アプリケーションの開発者などのユーザは、更新プロセスを開始して、特徴と、アプリケーション内のコンポーネントの更新の前に存在していたカスタマイズとを展開し直す。
さらに、アプリケーションによって使われるコンポーネントの更新を開始するユーザは従来、そのコンポーネントが、ある特定のアプリケーションによって使われること、およびコンポーネント向けの更新が存在することを知っている必要がある。その結果、分散コンピューティング環境にわたるコンポーネントの更新は、システム規模でコンポーネントの更新の集中および自動化がなされないことによって妨げられる。
したがって、アプリケーションのコンポーネントを更新するための現在のプロセスは、ユーザが、更新が利用可能であることを手動で識別し、アプリケーションを構築し直すことに依拠するのだが、アドホックな解決策であり、労働集約的であり、エラーが起こりやすい。さらに、こうした解決策は、アプリケーションで使用される複数のコンポーネントを有する複数のアプリケーションを提供する分散コンピューティング環境にわたって適用し、および更新が利用可能であることを識別するのには、スケーラブルでない。
本発明の実施形態は、分散コンピューティング環境内のアプリケーションによって使用されるコンポーネントを更新するシステム、方法およびコンピュータ記憶媒体に関する。分散コンピューティング環境内のアプリケーションが依拠するコンポーネントのインベントリが、作成および維持されて、ある特定のコンポーネントを使用するアプリケーションの識別を容易にする。ある特定のコンポーネントを使用するアプリケーションの判定が行われる。その特定のコンポーネント向けに更新が利用可能であるという指示が受信される。特定のコンポーネントを使用するアプリケーション用のアプリケーションイメージが、コンポーネントを更新させるように、分離コンピューティング(isolated computing)環境内でブートされる。更新されたコンポーネントを反映するアプリケーションの新規イメージが作成される。例示的な実施形態では、アプリケーションの開発者などのユーザに、その新規イメージがそのアプリケーションの今後のインスタンス化に利用可能であることが通知される。
本概要は、「発明を実施するための形態」において後でさらに説明する概念の選択を、簡略化した形で紹介するためのものである。本概要は、特許請求の対象の主要な特徴または本質的な特徴を識別することは意図しておらず、特許請求の対象の範囲を決定する際の助けとして使用されることも意図していない。
本発明の例示的実施形態について、参照によって本明細書に組み込まれている、添付の図面を参照して後で詳しく説明する。
本発明の実施形態の実装に適した例示的なコンピューティングデバイスを示す図である。 本発明の実施形態が利用され得る例示的なアプリケーション配布システムを示すブロック図である。 本発明の実施形態が利用され得る例示的な分散コンピューティング環境を示すブロック図である。 本発明の実施形態による例示的な分散コンピューティング環境を示す図である。 本発明の実施形態による分散コンピューティング環境において、コンポーネントを用いてアプリケーションイメージを更新する方法を示すフロー図である。 本発明の実施形態による分散コンピューティング環境において、コンポーネントを用いてアプリケーションイメージを更新する方法を示す別のフロー図である。
法的要件を満たすように、本発明の実施形態の主題を本明細書において具体的に説明する。ただし、この説明自体は、本特許の範囲を限定することを意図していない。そうではなく、本発明者は、特許請求の対象が、本文書において説明されるものと類似した、異なるステップまたはステップの組合せを含むように、現在または将来の他の技術とともに、他の方法でも実施されることを企図している。
本発明の実施形態は、分散コンピューティング環境内のアプリケーションによって使用されるコンポーネントを更新するシステム、方法およびコンピュータ記憶媒体に関する。分散コンピューティング環境内のアプリケーションが依拠するコンポーネントのインベントリが作成および維持されて、ある特定のコンポーネントを使用するアプリケーションの識別を容易にする。ある特定のコンポーネントを使用するアプリケーションの判定が行われる。その特定のコンポーネント向けに更新が利用可能であるという指示が受信される。特定のコンポーネントを使用するアプリケーション用のアプリケーションイメージが、分離コンピューティング環境内でブートされ、コンポーネントを更新するのを可能にする。更新されたコンポーネントを反映するように、アプリケーションの新規イメージが作成される。例示的な実施形態では、アプリケーションの開発者などのユーザに、アプリケーションの今後のインスタンス化に新規イメージが利用可能であることが通知される。
したがって、一態様では、本発明は、プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実行させるコンピュータ実行可能命令を具備するコンピュータ記憶媒体を提供する。この方法は、分散コンピューティング環境を通してアクセス可能なサービスによってコンポーネントが使用されることを自動的に判定することを含み、サービスは、アプリケーションイメージによって表されるアプリケーションをインスタンス化したものである。この方法は、コンポーネント向けの更新が利用可能であるという指示を受信することも含む。さらに、この方法は、アプリケーションイメージがコンポーネントを使用中であることを識別することを含む。さらに、この方法は、分散コンピューティング環境の分離コンピューティング環境において、アプリケーションイメージを自動的に実行して、コンポーネントを更新することを含む。この方法は、分散コンピューティング環境において、更新されたコンポーネントを有するアプリケーションを反映する新規アプリケーションイメージを格納することも含む。
別の態様では、本発明は、アプリケーションイメージのコンポーネントを更新する方法を実行するためのコンピュータシステムを提供し、コンピュータシステムは、コンピュータ記憶媒体に結合されたプロセッサを備え、コンピュータ記憶媒体は、プロセッサによって実行可能な複数のコンピュータソフトウェアを格納する。コンピュータソフトウェアは、分散コンピューティング環境において1つまたは複数のアプリケーションによって使用されるコンポーネントに対する更新を受信する受信サービスを含む。コンピュータソフトウェアは、コンポーネントを使用して、1つまたは複数のアプリケーションのうち、あるアプリケーション用のアプリケーションイメージを自動的に識別するコンポーネント更新サービスも含む。コンポーネント更新サービスは、分散コンピューティング環境内の分離コンピューティング環境である仮想マシンにおいてアプリケーションイメージを実行する。さらに、コンポーネント更新サービスは、分離コンピューティング環境内でコンポーネントに更新を適用することにより、更新エージェントを助けるように機能する。コンポーネント更新サービスは、アプリケーションの新規イメージの格納を容易にする。
本発明の第3の態様は、プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実施させるコンピュータ実行可能命令を具備したコンピュータ記憶媒体を提供する。この方法は、アプリケーションイメージによって表されるアプリケーションによって使用される複数のコンポーネントを判定することを含む。この方法は、複数のコンポーネントをインベントリとして記録することも含む。さらに、この方法は、複数のコンポーネントのうち、あるコンポーネント向けの更新の指示を受信することを含む。さらに、この方法は、インベントリから、アプリケーションイメージがコンポーネントを使用することを自動的に識別することを含む。この方法は、分散コンピューティングシステムの分離コンピューティング環境内でアプリケーションイメージを実行することも含む。この方法は、分離コンピューティング環境においてコンポーネント向けの更新を受信することをさらに含む。この方法は、分離コンピューティング環境内でのコンポーネントの更新を容易にすることも含む。この方法は、コンポーネントが分離コンピューティング環境内で更新されることを確認することをさらに含む。この方法は、更新されたコンポーネントを使用して、アプリケーションの新規アプリケーションイメージを作成することも含む。この方法は、分散コンピューティング環境内で新規アプリケーションイメージを格納することも含む。さらに、この方法は、アプリケーションのユーザに、分散コンピューティング環境内で新規アプリケーションイメージが利用可能であることを通知することを含む。
本発明の実施形態の概要を簡単に説明したが、本発明の実施形態の実装に適した例示的な動作環境について、以下に記載する。
図面全体を参照するが、最初は特に図1を参照すると、本発明の実施形態を実装するのに適した例示的な動作環境が示されており、全体がコンピューティングデバイス100(コンピューティング環境)と指定されている。コンピューティングデバイス100は、適切なコンピューティング環境の一例に過ぎず、本発明の用途または機能性の範囲に関していかなる限定を示唆することも意図していない。コンピューティングデバイス100は、図示するモジュール/コンポーネントのいずれか1つまたはその組合せに関するいかなる依存または要件を有するように解釈されるべきでもない。
実施形態は、コンピュータまたは携帯情報端末もしくは他のハンドヘルドデバイスなどの他のマシンによって実行されるプログラムモジュールなど、コンピュータ実行可能命令を含むコンピュータコードまたはマシン使用可能命令という一般的コンテキストで記載され得る。概して、ルーチン、プログラム、オブジェクト、モジュール、データ構造などを含むプログラムモジュールは、特定のタスクを実施し、または特定の抽象データタイプを実装するコードを指す。実施形態は、ハンドヘルドデバイス、家電製品、汎用コンピュータ、特殊コンピューティングデバイス、クラウドコンピューティング環境、サーバ、ノードなどを含む、様々なシステム構成で実施することができる。本発明の実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散コンピューティング環境において実施することもできる。
図1の参照を続けると、コンピューティングデバイス100は、メモリ112、1つまたは複数のプロセッサ114、1つまたは複数の提示モジュール(presentation module)116、入出力(I/O)ポート118、I/Oモジュール120、および例示的電源122というデバイスを直接または間接的に結合するバス110を含む。バス110は、1つまたは複数のバスが何(アドレスバス、データバス、またはその組合せなど)であり得るかを表す。図1の様々なブロックは、分かりやすくするために線で示してあるが、実際には、様々なモジュールの線引きはあまり明確でなく、例えて言うと、その線はより正確にはグレーであり曖昧であろう。例えば、ディスプレイデバイスなどの提示モジュールを、I/Oモジュールであるとみなすことができる。また、プロセッサはメモリを有する。本発明者は、このようなことが当該分野の性質であると認識しており、図1の線図は、1つまたは複数の実施形態に関連して使うことができる例示的なコンピューティングデバイスを例示するに過ぎないことを繰り返しておく。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」のようなカテゴリはすべて、図1の範囲内であることが企図されており、「コンピュータ」または「コンピューティングデバイス」を指すので、こうしたカテゴリの間は区別されない。
コンピューティングデバイス100は典型的に、様々なコンピュータ読取可能媒体を含む。限定ではなく例として、コンピュータ読取可能媒体は、RAM(ランダムアクセスメモリ)、ROM(読み取り専用メモリ)、EEPROM(電子的消去可能プログラム可能読み取り専用メモリ)、フラッシュメモリもしくは他のメモリ技術、CDROM、DVD(デジタル多用途ディスク)または他の光もしくはホログラフメディア、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイスなどのコンピュータ記憶媒体、あるいは所望の情報をエンコードするのに使うことができ、コンピューティングデバイス100によってアクセスすることができる他の任意の媒体を備えることができる。
メモリ112は、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。メモリは、取外し可能、取外し不可能、またはその組合せとすることができる。例示的なハードウェアデバイスは、半導体メモリ、ハードドライブ、光ディスクドライブなどを含む。コンピューティングデバイス100は、メモリ112やI/Oモジュール120など、様々なエンティティからデータを読み取る1つまたは複数のプロセッサを含む。提示モジュール(複数可)116は、ユーザまたは他のデバイスにデータ指示を提示する。例示的な提示モジュールは、ディスプレイデバイス、スピーカ、印刷モジュール、振動モジュールなどを含む。I/Oポート118は、コンピューティングデバイス100を、その一部が内蔵型とすることができるI/Oモジュール120を含む他のデバイスに論理的に結合させる。例示的モジュールは、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、プリンタ、無線デバイスなどを含む。
図2を参照すると、本発明の実施形態を用いることができる例示的なアプリケーション配布システム200を示すブロック図が提供されている。本明細書に記載するこの配置および他の配置は、単に例として説明されることを理解されたい。図示してあるものに加え、またはその代わりに、他の配置および要素(例えば、マシン、インターフェイス、イメージ、コンポーネント、およびアプリケーションなど)を使用することもでき、一部の要素は完全に省いてもよい。
アプリケーション配布システム200を、分散コンピューティングシステムの一部として用いることができる。分散コンピューティングシステムの例は、クラウドコンピューティングシステムなどを含む。例えば、クラウドコンピューティングシステムとは、インフラストラクチャ(例えば、処理能力、メモリ、リソース)を、「クラウド」内でエンドユーザからプロバイダにシフトさせる、インターネットベースのコンピューティングシステムである。クラウドという用語は、インターネットを表す比喩として使用され得る。したがって、クラウドコンピューティングは、ある実施形態では、コンピューティングリソースと基礎の技術アーキテクチャ(例えば、サーバ、ストレージ、ネットワーク)との間の抽象化を提供するコンピューティング能力を表し、最低限の管理作業またはサービスプロバイダ対話を用いた迅速なプロビジョニングおよびリリースが可能な構成可能コンピューティングリソースの共有プールへの、便利なオンデマンドネットワークアクセスを可能にする。
アプリケーション配布システム220は、アプリケーション202からなる。アプリケーション202は、クラウドアプリケーションなど、例示的なアプリケーションである。アプリケーションは、ソフトウェアアーキテクチャにおいてクラウドコンピューティングを使用して、エンドユーザのコンピュータ上でアプリケーションをインストールし、かつ/または稼働する必要性を、削減するか潜在的には除去する。したがって、アプリケーション配布システム200を通して配信されるアプリケーションは、エンドユーザのソフトウェア維持、継続操作およびサポートの負担を軽減することができる。アプリケーション202の例は、アプリケーションコードの少なくとも一部と、エンドユーザによって使用されるコンピューティングデバイスとは別個のインフラストラクチャとを維持しながら、エンドユーザによって、コンピューティングタスクを実施するのに用いられるサービスを含む。
アプリケーション202は、複数のコンポーネントからなる。例えば、コンポーネント1 204、コンポーネント2、206、およびコンポーネントN 208である。コンポーネントは、例示的な実施形態において、アプリケーションに機能性を提供する、アプリケーションのコードの目立たない部分(discreet portion)である。コンポーネントは、少なくとも一部の実施形態において、他のコンポーネントと組み合わされると、アプリケーションによって提供される最終的な機能性を作成するビルディングブロックとみなすことができる。したがって、アプリケーション202は、複数のコンポーネント(すなわち、コンポーネント1 204、コンポーネント2、206、およびコンポーネントN 208)から構築され、これらのコンポーネントはそれぞれ、単独または組み合わせで、アプリケーション202のサービスによって提供される様々な機能を担う。
例示的な実施形態では、エラー、欠陥、新規機能性、追加リソース、追加オプション、リソースの変更などに応答してアプリケーションが更新されると、アプリケーションの1つまたは複数のコンポーネントは、アプリケーションにおいて所望の変更が実装されやすくなるように更新される。その結果、アプリケーションは、該アプリケーションが使用する1つまたは複数のコンポーネントを更新することによって更新され得る。したがって、アプリケーションを表すコードをすべて更新するのではなく、アプリケーションのいくつかの部分またはコンポーネントを更新して、更新に必要とされるリソースを削減することができる。本明細書で使用する「コンポーネント」とは、クラウドコンピューティングシステムなどの分散コンピューティングシステムにおいて、機能性を提供するアプリケーションの一部分または全体であることが理解されよう。
アプリケーション202などのアプリケーションは、開発者によって開発される。開発者は、ときには、アプリケーションの所有者と呼ばれ、アプリケーションが提供することを意図している機能性を識別し、単独または組み合わせて使われると、アプリケーションの機能性をユーザに提供するコンポーネントを作成、調整、および/または識別する。開発者は、アプリケーションによって提供される機能性の更新を望む場合もある。機能性を更新しやすくするために、アプリケーションの開発者は、1つまたは複数のコンポーネントに更新を提供すればよい。
同様に、アプリケーションによって使用されるコンポーネントは、第三者の開発者によって開発され得る。第三者の開発者は、コンポーネントを更新し、次いで、更新されたコンポーネントを、アプリケーションによる使用のために提供することができる。例示的な実施形態では、開発者が、いくつかのコンポーネントからなるアプリケーションを開発する。アプリケーションを備えるコンポーネントは、開発者によって部分的に開発され、第三者の開発者によってやはり部分的に開発されてもよい。第三者の開発者によって開発されたアプリケーションのコンポーネントに関して、第三者の開発者は、ある特定のコンポーネントに対する更新を開発者に通知すればよい。別の実施形態では、第三者の開発者は、更新されたコンポーネントを開発者に通知しなくてよく、その代わり、開発者が自力で更新を発見するのに頼ってよい。したがって、開発者は、この例では、コンポーネントを使用するある特定のアプリケーション用に、コンポーネント更新が利用可能であると識別する責任がある。開発者が手動でのコンポーネント更新の識別を担っていないとき、管理およびリソースコストの削減を実現され得る。
図2の参照を続けると、アプリケーションイメージなどのイメージ210は、マシン内のアプリケーションの状態のスナップショットである。例えば、イメージは、仮想マシン内のアプリケーションのスナップショットを含む。スナップショットは、変数、プログラムカウンタ、メモリ状態などを含み得る。イメージ210などのイメージは、サービス212、サービス214、またはサービス216などのサービスを要求側ユーザに提供するようにインスタンス化され得る。例示的な実施形態では、イメージ210は、分散コンピューティング環境の仮想マシン内で動作しているアプリケーション202のスナップショットである。
マシン1 218、マシン2 220、およびマシンN 222は、分散コンピューティング環境内で動作するマシンである。例示的な実施形態では、マシン1 218、マシン2 220、およびマシンN 222は、それぞれのサービスにリソースを提供するように機能する仮想マシンである。上で論じたように、サービスとは、イメージをインスタンス化したものである。したがって、マシン1 218は、この例では、サービス212によって要求される、必要なリソースを提供する。仮想マシンとは、物理マシンであるかのようにコンピューティングコードを実行するマシン(例えば、コンピューティングデバイス)の実装である。したがって、クラウドコンピューティング環境において、仮想マシンは、最低限の手動リソースが消費されるような拡張および削減を助けるフレームワークを提供する。
例示的な実施形態では、アプリケーション202の開発者は、コンポーネント1 204など、複数のコンポーネントを含むアプリケーション202を提供する。分散コンピューティング環境は、アプリケーション202からイメージ210を生成するように機能する、ワシントン州レドモンドのマイクロソフトコーポレーションから販売されているWINDOWS(登録商標) AZUREなどの動作環境を含み得る。イメージ210は、仮想マシンなどのマシン内のアプリケーション202のスナップショットである。イメージ210によって提供されるサービスが要求されると、イメージ210は、マシン1 218などのマシンのリソースを使用するサービス212などのサービスとして、動作環境によってインスタンス化される。
図2に関連して挙げた様々な実施形態および例は、本質的に例示的であって、包括的ではない。分散コンピューティング環境内におけるアプリケーションの配布を達成するために追加プロセス、サービス、マシン、ネットワークアプリケーションなどを実装することができることが理解されよう。
さらに、本明細書に記載する要素の多くは、離散もしくは分散コンポーネントとして、または他のコンポーネントとともに、適切な任意の組合せおよび場所で実装することができる機能的エンティティである。1つまたは複数のエンティティによって実施されるものとして本明細書に記載する様々な機能は、ハードウェア、ファームウェア、および/またはソフトウェアによって実施され得る。例えば、メモリに格納された命令を実行するプロセッサによって、様々な機能が実施され得る。
図3を参照すると、本発明の実施形態を用いることができる例示的な分散コンピューティング環境300を示すブロック図が提供されている。本明細書に記載するこの配置および他の配置は、例として説明されるだけであることを理解されたい。図示してあるものに加え、またはその代わりに、他の配置および要素(例えば、マシン、インターフェイス、イメージ、コンポーネント、およびアプリケーションなど)を使用することもでき、一部の要素は完全に省いてもよい。
図示していない他のコンポーネントの中で、環境300は、更新サービスマシン302、イメージストア304、コンポーネント情報マシン310、分離環境マシン312、インベントリ314、ユーザマシン316、マシン1 318、マシン2、320、およびマシンN 322を含み得る。図3に示すユニットはそれぞれ、例えば、図1を参照して記載したコンピューティングデバイス100など、任意のタイプのコンピューティングデバイスとすることができる。コンポーネントは、限定はしないが、1つもしくは複数のLAN(ローカルエリアネットワーク)および/またはWAN(ワイドエリアネットワーク)を含み得るネットワーク(図示せず)を介して互いと通信することができる。このようなネットワーク接続環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見られる。任意の数のマシンおよびストアが、本発明の範囲内である環境300において利用され得ることを理解されたい。さらに、図示していない他のユニットも環境300に含まれ得る。
更新サービスマシン302は、仮想的または実際に、他の責務の中でも特にイメージの更新を管理および容易にするマシンである。例示的な実施形態では、更新サービスマシンは、クラウドコンピューティング環境において動作する仮想マシンである。イメージストア304は、イメージ306および新規イメージ308など、1つまたは複数のイメージを維持するように機能するコンピュータ読取可能媒体である。更新サービスマシン302およびイメージストア304は、インターネットなど、1つまたは複数のネットワークにより通信する。同様に、例示的な分散コンピューティング環境300の他のマシンおよびストアは、1つまたは複数のネットワークにより通信する。
ユーザマシン316は、ユーザ、開発者、および/または第三者の開発者によって使用される、コンピューティングデバイスなどのマシンである。例えば、開発者は、分散コンピューティング環境300内で使用するために開発者によって開発されたアプリケーションに、ユーザマシン316によりアクセスすることができる。追加の実施形態では、ユーザマシン316、同様に分散コンピューティング環境300のすべてのマシンは、仮想マシンとすることができる。
コンポーネント情報マシン310は、分散コンピューティング環境300内で動作するアプリケーションによって使用されるコンポーネントを識別および判別するように機能する、コンピューティングデバイス、仮想マシン、プロセス、アプリケーション、エージェントなどのマシンである。例えば、ユーザマシン316を使って開発者によって提供されるアプリケーションは、コンポーネント情報マシン310によって分析されて、アプリケーションによって使用される複数のコンポーネントを識別し、判別する。したがって、コンポーネント情報マシン310は、この例では、識別されたコンポーネントのリストを、インベントリとしてインベントリ314内で維持する。
インベントリ314は、例示的な実施形態では、分散コンピューティング環境300内で動作する1つまたは複数のアプリケーションによって使用されるコンポーネントのリストまたはインベントリを維持するデータストアである。例えば、インベントリ314は、コンピューティングデバイスとともに、アプリケーションが依拠するコンポーネントのインベントリを維持し、監視するコンピュータ読取可能媒体とすることができる。
分離環境マシン312は、分散コンピューティング環境300内の分離コンピューティング環境である。例えば、分離コンピューティング環境とは、例示的な実施形態では、限られたリソースおよび接続を有する仮想マシンである。この例では、分離コンピューティング環境は、クラウドコンピューティング環境内での衝突を防止するように設計され、分散コンピューティング環境内でのサービス中断を防止する。分散コンピューティング環境内の分離コンピューティング環境の足跡(footprint)を限定するように、リソース、接続、パラメータ、アクセス、および他の制御を制限することによって、衝突を防止することができる。分散コンピューティング環境内の衝突は、更新プロセスにおいて、分離コンピューティング環境が、コンポーネントに関連付けられた様々なリソースをブロードキャストする(例えば、伝達する)のを禁止または防止することによって、回避することができる。マシン1 318、マシン2 320、およびマシンN 322は、イメージ(すなわち、イメージ306、新規イメージ308)のインスタンス化などのサービスによって使用するためのリソースを提供するように機能する、仮想的または物理的なマシンである。
例示的な実施形態では、コンポーネント情報マシン310は、インベントリ314において、イメージ306中で使用される全てのコンポーネントのインベントリを作成し、維持する。したがって、開発者、第三者の開発者などが、ある特定のコンポーネント向けの更新の指示を与えると、更新サービスマシン302は、この指示を受信し、インベントリ314にアクセスして、そのコンポーネントを使用するアプリケーションイメージを識別する。本例示的実施形態では、更新サービスマシン302は、更新されたコンポーネントを含むか使用するものとして、イメージ306を識別する。
この例を続けると、更新サービスマシンは、分離環境マシン312内でイメージ306をブートし、または実行する。先に論じたように、分離環境マシン312は、分散コンピューティング環境300内での可能性のある衝突を防止するように、分散コンピューティング環境300内で、限られたリソースおよび接続を有する。例えば、イメージ306のインスタンス化は、(例えば)更新サービスマシン302がイメージ306を更新しようと試みているのと同時に、マシン1 320上で稼働中である場合がある。したがって、マシン1 318上で動作するサービスが、分離環境マシン312内でイメージ306の並列リソースがブートされるときにそのリソースに「気づく」または依拠するのを防止するために、分離環境マシンのリソースおよび接続は、潜在的な衝突を防止するように制御され、制限される。
例に戻ると、分散コンピューティング環境のファブリック層に関連付けられるか、その一部とすることができる更新サービスマシン302が、分離環境マシン312内でイメージ306を実行させると、コンポーネントに対する更新が適用される。特定の実施形態では、更新の指示は、更新サービスマシン302によって受信される。したがって、更新サービスマシン302は、イメージ306に適用されるべき更新を取得する。追加の実施形態では、更新は、更新サービスマシン(または信頼できないコンピューティング環境の他のユニット)によって、受信される指示の一部として受信される。
一実施形態では、更新は、更新エージェントを含む。更新エージェントは、コンポーネントの更新を制御および/または管理するために、開発者、第三者の開発者などによって提供される。追加の実施形態では、更新エージェントは、分散コンピューティング環境300によって使用されるファブリックコントローラまたは他のオペレーティングプラットフォームによって提供され得る。更新エージェントは、一実施形態において、結果的に生じるイメージの機能性を維持できるだけでなく、ある特定のコンポーネントが更新されるのも可能にするように、分離環境マシン内のコンポーネントの更新を整理する。
さらにこの例を続けると、イメージ306は、分離環境マシン上において、更新されたコンポーネントを用いて更新される。更新されたイメージのスナップショットをキャプチャして、イメージストア304に格納される新規イメージ308を生成することができる。新規イメージ308は、イメージ306に類似し、基礎のアプリケーションの状態のスナップショットである。ただし、新規イメージ308は、イメージ306とは異なり、更新されたコンポーネントの使用を反映する。例示的な実施形態では、イメージ306および新規イメージ308は双方とも、イメージストア304内で維持される。さらに、例示的な実施形態では、イメージ306は、新規イメージ308がユーザ、開発者などによって認証されるまで、様々なマシン(例えば、マシン1 318)においてサービスを提供するように、継続してインスタンス化される。追加の例示的実施形態では、新規イメージ308は、サービスをインスタンス化するために自動的に使用され、イメージ306は、ロールバックの目的で維持される。
例示的な実施形態では、コンポーネントが更新されると、確認(verification)が実施される。確認は、分離環境マシン312または分散コンピューティング環境300の別のマシンによって実施され得る。確認は、更新がコンポーネントに適用済みであることを保証するために、更新を列挙することを含み得る。追加の確認には、正しく適用された更新のファイル名、拡張、ログまたは他の指示を識別することを含めることができる。
新規イメージ308がイメージストア304に格納されると、例示的な実施形態では、影響を受けるアプリケーションの開発者、所有者、制御者などに通知が与えられる。この通知は、どのような更新が適用されたか、いつ適用されたか、更新とともに何が含まれていたか、更新により何が影響を受けるか、および更新されたコンポーネントを反映する新規イメージが利用可能であることを示す詳細を提供する。この例では、この通知の受信エンティティは、追加確認を実施し、またはイメージ306の代わりに新規イメージ308の使用を開始するためのコマンドを与え得る。または、先に示したように、例示的な実施形態では、新規イメージ308を使用して、イメージ306のサービスを自動的にリブートする。
したがって、本発明の実施形態の範囲内の所望の機能性を達成するのに、任意の数のユニット、マシン、およびストアが利用され得る。図3の様々なユニットは、分かりやすくするために線で示してあるが、実際には、様々なコンポーネントの線引きはそれほど明らかではなく、比喩的には、線は、より正確にはグレーまたは曖昧であろう。さらに、図3の一部のユニットは、単一ブロックとして示してあるが、こうした図示は性質および数において例示的であり、限定的であることは企図していない。
本発明の実施形態による例示的な分散コンピューティング環境400を示す図4に移る。分散コンピューティング環境400は、少なくとも部分的に、プロセッサ402、コンピュータ読取可能媒体404、仮想マシン412、およびストア414からなる。コンピュータ読取可能媒体404は、少なくとも部分的に、受信サービス406、コンポーネント更新サービス408、および更新エージェント410に関連付けられた機能を実施するコードからなる。図4を参照して本明細書に示し論じる要素は、本質的に例示的であり、本発明の範囲に関して限定的ではない。追加要素、マシン、媒体、コード、サービスなどが、分散コンピューティング環境400内で実装され得ることが理解されよう。例えば、単一の仮想マシン412のみを視覚的に示してあるが、現実には、複数の仮想マシンを、分散コンピューティング環境400内でいつでも使用することができる。
プロセッサ402は、コンピューティングプロセッサである。例示的な実施形態では、プロセッサ402は、図1を参照して先に論じたプロセッサ(複数可)114と本質的に同様である。
コンピュータ読取可能媒体404は、分散コンピューティング環境400内で使用するためのコンピュータ読取可能媒体である。コンピュータ読取可能媒体404は、例示的な実施形態では、1つまたは複数のコンポーネント、アプリケーション、サービス、および他の機能性を維持するために機能し、プロセッサ402によって実行されると、分散コンピューティング環境400内でデータ、情報、および他の入力の変換を起こす。
受信サービス406は、例示的な実施形態では、分散コンピューティング環境内の1つまたは複数のアプリケーションによって使用されるコンポーネントに対する更新を受信するように機能する。例えば、アプリケーションのコンポーネントは、コンポーネント内部での既知の衝突またはエラーにパッチをあてるように、コンポーネントの開発者によって更新することができる。更新の可用性の指示は、開発者から分散コンピューティング環境400に伝えられる。この指示は、電子メッセージとすることができ、この例では、受信サービス406によって受信される。指示の受信に応答して、受信サービス406または分散コンピューティング環境400の他の要素によって更新が自動的に要求され得る。追加の例では、指示を受信すると、受信サービス406は、分散コンピューティング環境400内にある、またはそこで動作するアプリケーションに更新が適しているかどうか判定するための指示または指示の派生物を、分散コンピューティング環境400の1つまたは複数の他のサービス/マシンに渡すことができる。
さらに、受信サービス406は、更新の指示を受信するのとは反対に、コンポーネント更新を受信するように機能する。例えば、コンポーネントの開発者は、コンポーネントの既知のユーザ、加入者、および/またはサービスに更新を「プッシュする」ことができる。この例では、受信サービス406は、更新を受信し、分散コンピューティング環境400の1つまたは複数のサービス/マシンに更新を使用させ、例えば関連コンポーネントを更新させるように機能する。したがって、例示的な実施形態では、受信サービス406は、プロセッサによって実行されると、更新または更新の指示の受信を可能にするサービスである。
コンポーネント更新サービス408は、他の責務の中でも特に、アプリケーション内のコンポーネントを識別し、コンポーネントをインベントリし、コンポーネントを有するアプリケーションをインベントリから識別し、更新によるコンポーネントの更新を容易にするように機能する。例示的な実施形態では、コンポーネント更新サービス408は、プロセッサ402によって実行されると、分散コンピューティング環境400内のアプリケーションによって使用されるコンポーネントの更新を容易にするコンピュータコードである。例示的な実施形態では、コンポーネント更新サービス408は、図3を参照して先に論じた更新サービスマシン302と機能的に等価である。したがって、先に論じたように、更新サービスマシン302は、分散コンピューティング環境内で動作するサービスを行う仮想マシンとすることができる。
例示的な実施形態では、コンポーネント更新サービス408は、更新用に利用可能なコンポーネントを使用し、またはコンポーネントに依拠するアプリケーションイメージ(またはアプリケーション)を自動的に識別するように機能する。本明細書で使用するように、アプリケーションイメージおよびアプリケーションは、それぞれが理解される抽象化のレベルに依存して、互換的に使うことができる。例示的な実施形態では、アプリケーションは概念的には、分散コンピューティングシステム内で1つまたは複数の機能を実現させるための一連のコードを構築するレシピまたは青写真と考えることができる。アプリケーションイメージは、例示的な実施形態では、概念的にはマシン(例えば、仮想マシン)内で実行/構造化されるアプリケーションのスナップショットと思われ得る。したがって、例示的な実施形態では、アプリケーションのコンポーネントの更新は、アプリケーションの「レシピ」において要求されていた可能性がある以前の(すなわち、古くなった)コンポーネントとは反対に、更新されたコンポーネントを含むように、マシン内のアプリケーションをリブートすることに過ぎない。
さらに、例示的な実施形態では、コンポーネント更新サービス408は、分散コンピューティング環境において仮想マシン内でアプリケーションイメージを実行するように機能する。先に論じたように、コンポーネントを更新する目的でのアプリケーションイメージの実行は、限られたネットワーク接続、リソース、および/またはアクセスを有する分離コンピューティング環境において行われ得る。例示的な実施形態では、コンポーネントを更新する目的のための、仮想マシンにおけるアプリケーションイメージの実行は、アプリケーションの開発者にとって、開発者の直接の制御下で、更新されたコンポーネント向けのアプリケーションをコンピューティングデバイスから構成することとは大きく異なる。例えば、分散コンピューティング環境の分離コンピューティング環境においてアプリケーションイメージを実行することは、更新目的でアプリケーションイメージを実行させるための第三者(例えば、開発者)による介入を必要としない。さらに、分離コンピューティング環境内でアプリケーションイメージを自動的に実行することにより、第三者によってそれ以外の方法では実現することができない、分散コンピューティング環境によるリソースの最適化が可能になる。さらに、アプリケーションイメージが分散コンピューティング環境の分離環境においてブートされるためには、第三者ではなく、コンポーネント更新サービス408が、アプリケーションイメージを、更新されるべきコンポーネントに依拠し、またはコンポーネントを使用するものとして識別する。
更新エージェント410は、アプリケーションを更新するように機能する。例えば、イメージは、仮想マシンにおいて実行することもブートすることもできる。更新エージェント410は、更新されるべきアプリケーションにおいて使用されているある特定のコンポーネントに対する更新を可能にする情報を含む。先に論じたように、更新エージェントは、アプリケーションの開発者、コンポーネントの開発者(例えば、第三者の開発者)、分散コンピューティング環境のオペレーティングシステム/制御ソフトウェアなどによって提供され得る。さらに、更新エージェントは、アプリケーションの更新を容易にするように組み合わせて使うことができる、命令、アプリケーションプログラムインターフェイス、サービス、コンピュータアプリケーションなどの組合せであることが企図される。
例示的な実施形態では、コンポーネント更新サービス408は、分離コンピューティング環境におけるある特定のアプリケーションおよび/またはコンポーネント向けの更新プロセスを先導するための更新エージェント410を利用する(すなわち、呼び出す)ことによって、コンポーネントの更新を容易にする。例えば、コンポーネント更新サービス408は、更新エージェント410を呼び出し、またはエージェント410に、コンポーネントの更新を開始させることができる。追加の実施形態では、更新サービス408は、更新エージェント410がコンポーネントの更新を進めるのに必要なリソースを予約し、または呼び出すことができる。さらに、コンポーネント更新サービス408に依存しない第三者によって更新エージェント410が提供されることが企図される。この例では、コンポーネント更新サービス408は、コンポーネントに対する更新が開始され得る更新エージェント410を呼び出し、または通知することによって、コンポーネントの更新を容易にする。
仮想マシン412は、少なくとも部分的に、分散コンピューティング環境400内で動作する仮想マシンである。例示的な実施形態では、仮想マシン412は、アプリケーションイメージをブートし、コンポーネントを更新し、更新されたコンポーネントを反映するように新規アプリケーションイメージを構成する分離コンピューティング環境である。追加の例示的実施形態では、仮想マシン412は、アプリケーションイメージの1つまたは複数のインスタンスが分散コンピューティング環境400のユーザ向けのサービスとしてその中で動作しているコンピューティングデバイスである。先に論じたように、分散コンピューティング環境内でアプリケーションのコンポーネントを更新するとき、仮想マシン412など、複数の仮想マシンが使われることが企図される。
ストア414は、アプリケーションイメージを維持するデータストアである。例えば、ストア414は、分散ストレージプラットフォームに組み込まれ、アプリケーションイメージと、コンポーネントの更新後のアプリケーションを反映する新規アプリケーションイメージとの双方を格納するように機能し得る。例示的な実施形態では、コンポーネント更新サービス408は、ストア414に、コンポーネントの更新後の「新規」アプリケーションイメージを格納することを容易にする。
例示的な実施形態では、分散コンピューティング環境400において、アプリケーションが利用可能である。コンポーネント更新サービス408は、アプリケーションによって使用されるコンポーネントを判定し、こうしたコンポーネントのインベントリを生成する。受信サービス406は、分散コンピューティング環境400内で使用中であるコンポーネント向けの更新が利用可能であるという指示を第三者の開発者から受信する。コンポーネント更新サービスは、インベントリに問い合わせて、アプリケーションにおいてコンポーネントが要求されることを識別する。したがって、受信サービス406は、第三者の開発者に更新を要求して受信する。更新を受信すると、コンポーネント更新サービス408は、仮想マシン412によって提供される分離コンピューティング環境においてアプリケーションイメージを実行させる。分離コンピューティング環境におけるブートは、更新エージェント410が、分散コンピューティング環境400全体を通じて潜在的な衝突を生じさせることなく、コンポーネントを更新させるのを可能にする。コンポーネントの更新の後、コンポーネント更新サービス408は、コンポーネントが更新されたことを確認する。コンポーネント更新サービス408は、更新されたアプリケーションのスナップショットを生成させ、その結果、サービスがインスタンス化され得る「新規」アプリケーションイメージが生じる。この新規アプリケーションイメージは次いで、サービスの今後のインスタンスを実装するため、アプリケーションの開発者/制御者によるアクセスのためにストア414に格納される。
例示的な実施形態では、分離コンピューティング環境におけるアプリケーションのブートは、人間の介入なしで起こる。例えば、コンポーネントを更新し、または新規アプリケーションイメージを取り込む目的でアプリケーションイメージのブートを開始し、または承認するのに、ユーザは必要とされない。同様に、例示的な実施形態では、コンポーネント更新サービスに関して本明細書で論じた機能性を起こさせ、または実現させるのに、人間の介入は必要とされない。その結果、コンポーネントの更新の前のアプリケーション特有の特徴を維持したまま、アプリケーションによって使用されるコンポーネントの更新を自動化することができる。
図3に関して述べたのと同様に、本発明の実施形態の範囲内の所望の機能性を達成するのに、任意の数のユニット、マシン、サービス、およびストアが利用され得る。図4の様々なユニットは、分かりやすくするために線で示してあるが、実際には、様々なコンポーネントの線引きはそれほど明らかではなく、比喩的には、線は、より正確にはグレーまたは曖昧であろう。さらに、図4の一部のユニットは、単一ブロックとして示してあるが、こうした図示は性質および数において例示的であり、限定的であることは企図していない。
図5は、本発明の実施形態による分散コンピューティング環境において、アプリケーションイメージをコンポーネントで更新する方法500を示すフロー図を示す。
ブロック502において、コンポーネントが、分散コンピューティング環境を通してアクセス可能なサービスによって使用されるものと自動的に判定される。コンポーネントは、基礎のアプリケーションが、1つまたは複数の機能性を関連アプリケーションのインスタンス化によって達成するために、そのコンポーネントの使用を要求するときに、サービスによって使用される。先に論じたように、アプリケーションイメージのインスタンス化の結果、分散コンピューティング環境内でサービスが実施されて、1つまたは複数の所望の機能を実施することができる。コンポーネントの自動判定により、分散コンピューティングシステムは、アプリケーションを更新する目的で、手動介入から独立したままである。したがって、更新プロセスにおける効率が実現され利用可能である。
ブロック504において、コンポーネント向けの更新が利用可能であるという指示を受信する。例示的な実施形態では、この指示は、更新または更新の少なくとも一部分(例えば、コード、コードセグメント)の受信である。追加の例示的実施形態では、指示は、システム内で使用されるコンポーネントのインベントリが評価されることを自動的に求める通知である。さらに、指示は、キューに入れられ、所定の閾値に達する(例えば、複数のコンポーネントが更新に利用可能であること、期間の経過、利用可能なリソースのレベル)と直ちに、更新プロセスを開始させる通知である。
さらに、コンポーネント向けに更新が利用可能であるという指示の受信は、例示的な実施形態において、開発者の要求で、コンポーネントの追加または除去を容易にすることを含むことができる。例えば、コンポーネントを含んでいるか、または含むことになるイメージを更新することを望む開発者は、「更新」が利用可能であるという指示を提供する。この例では、コンポーネントに対する「更新」は、コンポーネントを、アプリケーションイメージに/から全体的または部分的に追加し、および/または除去することを含む。したがって、開発者は、ある特定のコンポーネントに対する更新が利用可能であるという指示を送ることにより、そのコンポーネントがアプリケーションイメージに/から追加され、または除去されることを要求することができる。したがって、例示的な実施形態において、更新の指示を受信することは、コンポーネントをアプリケーションイメージに追加すべきこと、およびまたはアプリケーションイメージから除去すべきであることの指示を受信することを含むことが理解されよう。
ブロック506において、更新すべきコンポーネントを使用しているアプリケーションイメージが識別される。例示的な実施形態では、複数のアプリケーションによって使用されるコンポーネントの予め生成されたインベントリを参照して、これら複数のアプリケーションのうちのいずれのアプリケーションが、更新を受信したコンポーネントに依拠するかを識別する。アプリケーションイメージの識別は、いずれのアプリケーションがコンポーネントを使用するかを識別することによって遂行することができ、その結果、アプリケーションに対する関連アプリケーションイメージが識別される。例示的な実施形態では、アプリケーションイメージは、更新すべきコンポーネントの分離環境においてブートされるが、追加実施形態では、アプリケーションは、分離環境において復元されて、更新されたコンポーネントを反映する新規アプリケーションイメージとなる。
ブロック508において、ブロック506において識別されたアプリケーションイメージが、分離コンピューティング環境において自動的に実行される。アプリケーションまたはアプリケーションイメージを自動的に実行することにより、基礎のアプリケーションの開発者または所有者に対するリソースの要求で、コンポーネントを更新させるために手動介入することが回避される。したがって、更新指示の受信と、分離環境におけるアプリケーションイメージの実際のブートとの間の時間の削減などの効率を達成することができる。さらに、コンポーネントは、コンポーネント更新の結果として、以前に適用されたカスタマイズが開発者によって手動で適用し直されることを求めることなく、アプリケーション内で更新することができる。例えば、アプリケーション用の汎用ベースイメージを更新し、開発者がアプリケーションにカスタマイズ特徴(例えば、アプリケーションイメージに特有の特徴)および要素を適用することを求めるのではなく、既存のアプリケーションイメージを自動的にブートすることによって、コンポーネントの更新を内部で続けながら、アプリケーション向けの予め適用されたカスタマイズが維持または保存され得る。
ブロック510において、更新されたコンポーネントを有するアプリケーションを反映する、新規アプリケーションイメージが格納される。例示的な実施形態では、アプリケーションイメージは、ブロック508において示したように、分離コンピューティング環境においてブート/実行される。コンポーネント向けの更新は、分離コンピューティング環境内のコンポーネントに適用され、その後、更新は、適用済みであると確認され得る。
例示的な実施形態では、新規アプリケーションイメージは、分散コンピューティング環境において、規定の命名規則に従う一意の名前とともに格納される。この例では、コンポーネントアップグレードに先立つアプリケーションイメージと、コンポーネントアップグレードの事後のアプリケーションとの双方が、システム内で維持される。新規アプリケーションイメージが利用可能であることと、承認によりアプリケーションの将来のインスタンスが新規イメージに基づくものとなることとを示す通知が、アプリケーションの開発者などのユーザに送られる。規定の命名規則により、ユーザは、アプリケーションの将来のインスタンスのために新しいアプリケーションイメージが使用されるべきかどうかを判定するとき、そのイメージを容易に識別することができる。
図6は、本発明の実施形態による、アプリケーションイメージをコンポーネントで更新する方法600を示すブロック図を示す。
ブロック602において、アプリケーションイメージによって表されるアプリケーションによって使用される複数のコンポーネントが判定される。例えば、様々なコンポーネントを呼び出すアプリケーションの検討に基づいて、こうしたコンポーネントは、ブロック604において示されるように、インベントリとして記録される。コンポーネントのインベントリは、リソース、許可、制約などのような付加情報を含み得る。例示的な実施形態では、インベントリは、様々なコンポーネントを使用するアプリケーションおよびアプリケーションイメージの識別を容易にする、電子的に検索可能なフォーマットとして維持される。
ブロック606において、コンポーネント向けの更新の指示が受信される。先に論じたように、この指示は、更新が利用可能であるという通知でよい。または、追加の例示的実施形態では、アップグレードの指示は、コンポーネントの更新が起こるのに必要なコードを含む。指示は、コードがどのコンポーネントに関連付けられるかについての識別を含む。例えば、指示は、ファイル名、コード、または一般的に使われる別の命名規則によってコンポーネントを識別することができる。
ブロック608において、コンポーネントを使用するアプリケーションが、インベントリから自動的に識別される。例えば、ブロック604で論じたインベントリへの記録に基づいて、アプリケーションおよびアプリケーションイメージが、アプリケーションの既知のコンポーネントと、受信した指示に関連付けられたコンポーネントとの間の相関に基づいて識別可能である。
ブロック610において、識別されたアプリケーションイメージが、分離コンピューティング環境において実行される。分離コンピューティング環境は、例示的な実施形態では、仮想マシンは、限られた接続およびリソースを有するクラウドコンピューティング環境内の仮想マシンである。
ブロック612において、ブロック606において受信した指示に関連付けられた更新が受信される。この例示的実施形態において、更新の受信は、エンティティ(例えば、開発者)による「プッシュ」、あるいは分散コンピューティング環境の1つまたは複数のサービスおよびマシンによる「プル」の結果とすることができる。
ブロック614において、コンポーネントの更新が容易にされる。例示的な実施形態では、コンポーネントの更新を容易にすることは、開発者によって提供された更新エージェントに、アプリケーションまたはコンポーネントへのパッチを適用させることによって達成される。例示的な実施形態では、更新を容易にすることは、更新を起こさせるリソースを獲得し、または予約することを含む。さらに、更新を容易にすることは、実際に更新を起こさせることを含む。
ブロック616において、コンポーネントが更新されたことの確認が行われる。先に論じたように、この確認は、結果として得られたアプリケーションのインスタンスによって使用されている、ある特定の新たなファイル名の拡張(例えば、*.dll)などを識別することを含み得る。
ブロック618において、更新されたコンポーネントを使用して、アプリケーションの新規アプリケーションイメージが作成される。新規アプリケーションイメージの作成は、例示的な実施形態では、アプリケーションを実行している間に、分離コンピューティング環境の状態のスナップショットを生成することを含む。
ブロック620において、新規アプリケーションイメージが、分散コンピューティング環境内で格納される。先に論じたように、アプリケーションイメージおよび新規アプリケーションイメージは双方とも、ロールバックおよび他のトラブルシューティングプロセスを容易にするために、分散コンピューティング環境において維持することができる。アプリケーションによって定義されたサービスが要求されると、新規アプリケーションイメージをインスタンス化して、要求されたサービスの新規インスタンスを提供することができる。
ブロック622において、アプリケーションのユーザに、新規アプリケーションイメージが利用可能であることが通知される。例えば、アプリケーションの開発者は、例示的な実施形態において、アプリケーションのユーザである。同様に、所有者、制御者、および他の関係者は、例示的な実施形態において、アプリケーションのユーザである。
さらに、ある実施形態では、ユーザに与えられる通知は、新規アプリケーションが利用可能であり、新規アプリケーションがどこで維持されるか示す指示を含む。同様に、通知は、コンポーネントおよび/または新規アプリケーションイメージに適用される更新に関連した詳細も含むことができる。さらに、通知は、新規アプリケーションイメージがサービスのインスタンス化に使用されている実施形態では、コンポーネントの更新より前の、以前のアプリケーションイメージへのロールバックに使用可能な情報を含む。
この通知に応答して、ユーザは、サービスのインスタンス化のために、ある特定のアプリケーションイメージが請願されるべきであるという応答を与えることができる。したがって、関連サービスのインスタンス化にどのイメージが請願されるべきであるかに関するユーザ選択が、分散コンピューティング環境によって受信され、これにより、1つまたは複数のエンティティへの関連サービスの提供が容易になる。
図示した様々なコンポーネントの異なる多くの配置、ならびに図示していないコンポーネントは、本発明の精神および範囲から逸脱することなく可能である。本発明の実施形態は、制限的ではなく例示的であることを意図して記載されている。本発明の範囲から逸脱しない代替的実施形態が、当業者には明らかであろう。当業者は、本発明の範囲から逸脱することなく、上述した改善を実装する代替手段を開発することができる。
特定のいくつかの特徴およびサブコンビネーションは有用であり、他の特徴およびサブコンビネーションと関係なく利用されてよく、特許請求の範囲内で企図されることが理解されよう。様々な図面に列挙したすべてのステップを、必ずしも記載した具体的順序で実施する必要はない。

Claims (15)

  1. プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、前記コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実行させるコンピュータ実行可能命令を具備したコンピュータ記憶媒体であって、前記方法は、
    分散コンピューティング環境を通してアクセス可能なサービスによって前記コンポーネントが使用されることを自動的に判定するステップであって、前記サービスは、前記アプリケーションイメージによって表されるアプリケーションのインスタンスである、ステップと、
    前記コンポーネント向けの更新が利用可能であるという指示を受信するステップと、
    前記アプリケーションイメージが前記コンポーネントを使用していることを識別するステップと、
    前記分散コンピューティング環境の分離コンピューティング環境において前記アプリケーションイメージを自動的に実行して、前記コンポーネントを更新するステップと、
    前記分散コンピューティング環境内に、更新された前記コンポーネントを有する前記アプリケーションを反映する新規アプリケーションイメージを格納するステップと
    を含むことを特徴とするコンピュータ記憶媒体。
  2. コンポーネントの判定は、前記アプリケーションの開発者によって提供されるインベントリであることを特徴とする請求項1に記載の方法。
  3. 前記アプリケーションイメージが前記コンポーネントを使用していることを識別するステップは、ユーザによる介入なしで行われることを特徴とする請求項1に記載の方法。
  4. 前記アプリケーションイメージが前記コンポーネントを使用していることを識別するステップは、前記アプリケーションによって使用されるコンポーネントのインベントリを参照することを含むことを特徴とする請求項1に記載の方法。
  5. 前記分離コンピューティング環境は、前記分散コンピューティング環境内の定義されたネットワーク接続を有する仮想マシンであることを特徴とする請求項1に記載の方法。
  6. 前記分離コンピューティング環境は、前記アプリケーションのユーザによって制御されない、前記分散コンピューティング環境内のリソースであることを特徴とする請求項1に記載の方法。
  7. 前記新規アプリケーションイメージは、前記アプリケーションイメージに特有のカスタマイズ特徴を保持することを特徴とする請求項1に記載の方法。
  8. 前記新規アプリケーションイメージを格納するステップに続いて、前記アプリケーションイメージを維持するステップをさらに含むことを特徴とする請求項1に記載の方法。
  9. 前記アプリケーションのユーザに、前記新規アプリケーションイメージが前記分散コンピューティング環境に格納されたことを通知するステップをさらに含むことを特徴とする請求項1に記載の方法。
  10. 前記アプリケーションの新規インスタンスのために前記新規アプリケーションイメージをインスタンス化する指示を、前記ユーザから受信するステップをさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記アプリケーションの新規インスタンスのために前記新規アプリケーションイメージの代わりに前記アプリケーションイメージをインスタンス化する指示を、前記ユーザから受信するステップをさらに含むことを特徴とする請求項9に記載の方法。
  12. アプリケーションイメージのコンポーネントを更新する方法を実施するコンピュータシステムであって、前記コンピュータシステムは、コンピュータ記憶媒体に結合されたプロセッサを備え、前記コンピュータ記憶媒体は、前記プロセッサによって実行可能な複数のコンピュータソフトウェアを格納し、前記コンピュータソフトウェアは、
    分散コンピューティング環境において1つまたは複数のアプリケーションによって使用されるコンポーネントに対する更新を受信する、受信サービスと、
    前記1つまたは複数のアプリケーションのうちのあるアプリケーションについて、前記コンポーネントを使用するアプリケーションイメージを自動的に識別する、コンポーネント更新サービスと、
    前記分散コンピューティング環境内の分離コンピューティング環境である仮想マシンにおいて前記アプリケーションイメージを実行する前記コンポーネント更新サービスと、
    前記分離コンピューティング環境内で前記コンポーネントに前記更新を適用して、更新エージェントを容易にする前記コンポーネント更新サービスと、
    前記アプリケーションの新規イメージの格納を容易にする前記コンポーネント更新サービスと
    を備えることを特徴とするコンピュータシステム。
  13. 前記仮想マシン内での前記アプリケーションイメージの実行は、人間の介入なしで動作することを特徴とする請求項12に記載のシステム。
  14. 前記新規イメージは、前記アプリケーションイメージに特有の特徴を自動的に維持することを特徴とする請求項12に記載のシステム。
  15. プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、前記コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実行させるコンピュータ実行可能命令を具備したコンピュータ記憶媒体であって、前記方法は、
    アプリケーションイメージによって表されるアプリケーションによって使用される複数のコンポーネントを判定するステップと、
    前記複数のコンポーネントをインベントリとして記録するステップと、
    前記複数のコンポーネントのうち、あるコンポーネント向けの更新の指示を受信するステップと、
    前記インベントリから、前記アプリケーションイメージが前記コンポーネントを使用すると自動的に識別するステップと、
    前記アプリケーションイメージを、前記分散コンピューティングシステムの分離コンピューティング環境において実行するステップと、
    前記分離コンピューティング環境において前記コンポーネント向けの前記更新を受信するステップと、
    前記分離コンピューティング環境における前記コンポーネントの更新を容易にするステップと、
    前記コンポーネントが前記分離コンピューティング環境内で更新されることを確認するステップと、
    前記更新されたコンポーネントを使用して、前記アプリケーションの新規アプリケーションイメージを作成するステップと、
    前記新規アプリケーションイメージを前記分散コンピューティング環境において格納するステップと、
    前記アプリケーションのユーザに、前記新規アプリケーションイメージが前記分散コンピューティング環境内で利用可能であることを通知するステップと
    を含むことを特徴とするコンピュータ記憶媒体。
JP2013500109A 2010-03-15 2011-03-11 仮想マシンイメージ更新サービス Pending JP2013522769A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/724,010 2010-03-15
US12/724,010 US8533701B2 (en) 2010-03-15 2010-03-15 Virtual machine image update service
PCT/US2011/028156 WO2011115842A2 (en) 2010-03-15 2011-03-11 Virtual machine image update service

Publications (2)

Publication Number Publication Date
JP2013522769A true JP2013522769A (ja) 2013-06-13
JP2013522769A5 JP2013522769A5 (ja) 2014-04-03

Family

ID=44561154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013500109A Pending JP2013522769A (ja) 2010-03-15 2011-03-11 仮想マシンイメージ更新サービス

Country Status (4)

Country Link
US (1) US8533701B2 (ja)
EP (1) EP2548116A4 (ja)
JP (1) JP2013522769A (ja)
WO (1) WO2011115842A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020534587A (ja) * 2017-09-21 2020-11-26 オラクル・インターナショナル・コーポレイション 多層クラウドベースアプリケーションスタックをアップデートするためのシステムおよび方法
JP2021039393A (ja) * 2019-08-30 2021-03-11 株式会社日立製作所 パッケージ化支援システムおよびパッケージ化支援方法

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8505005B1 (en) * 2007-07-24 2013-08-06 United Services Automobile Association (Usaa) Multi-platform network-based software distribution
US8954859B2 (en) 2011-11-04 2015-02-10 International Business Machines Corporation Visually analyzing, clustering, transforming and consolidating real and virtual machine images in a computing environment
US8935375B2 (en) 2011-12-12 2015-01-13 Microsoft Corporation Increasing availability of stateful applications
US8694986B2 (en) * 2011-12-15 2014-04-08 Microsoft Corporation Providing update notifications on distributed application objects
US8782632B1 (en) * 2012-06-18 2014-07-15 Tellabs Operations, Inc. Methods and apparatus for performing in-service software upgrade for a network device using system virtualization
JP6102254B2 (ja) * 2012-12-27 2017-03-29 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理システム、情報処理方法、及び、コンピュータプログラム
US9411621B2 (en) 2013-01-24 2016-08-09 International Business Machines Corporation Grouping and automatically propagating updates to equivalent online and offline virtual machines in a data center
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
GB2510874B (en) * 2013-02-15 2020-09-16 Ncr Corp Server system supporting remotely managed IT services
KR102055613B1 (ko) * 2013-06-26 2019-12-13 한국전자통신연구원 스마트 디바이스 및 센서노드 통합 응용프로그램 업데이트 장치 및 방법
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US20160350099A1 (en) * 2015-05-29 2016-12-01 Hewlett Packard Enterprise Development Lp Application deployment to virtual machines
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10042628B2 (en) * 2016-06-29 2018-08-07 Vmware, Inc. Automated upgrade system for a service-based distributed computer system
US10728090B2 (en) * 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
JP6304418B2 (ja) * 2017-02-23 2018-04-04 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理方法、及び、コンピュータプログラム
US11896390B2 (en) 2017-11-10 2024-02-13 Lvis Corporation Efficacy and/or therapeutic parameter recommendation using individual patient data and therapeutic brain network maps
US10545750B2 (en) * 2017-12-06 2020-01-28 Vmware, Inc. Distributed upgrade in virtualized computing environments
US11281451B2 (en) 2017-12-06 2022-03-22 Vmware, Inc. Distributed backup and restoration in virtualized computing environments
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11489827B2 (en) * 2018-10-08 2022-11-01 Oracle International Corporation Dedicated network authentication and allocation for dedicated virtual machine host clusters
US10862816B2 (en) * 2018-10-08 2020-12-08 Oracle International Corporation Cloud computing cluster isolation with authentication and automatic configuration deployment
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11336549B2 (en) * 2020-01-15 2022-05-17 Cisco Technology, Inc. Systems and methods for dynamically optimizing TCP flow in WAN networks
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
CN111610989B (zh) * 2020-06-17 2023-09-29 中国人民解放军国防科技大学 一种面向离线容器云环境的应用发布/更新方法及系统
CN111596932B (zh) * 2020-06-22 2021-03-02 腾讯科技(深圳)有限公司 一种镜像文件生成方法、装置和计算机可读存储介质
EP3955542A1 (en) 2020-08-12 2022-02-16 Nokia Technologies Oy Enhancements for secure updating in communication networks
US12117972B2 (en) 2021-08-19 2024-10-15 Nutanix, Inc. File server managers and systems for managing virtualized file servers
US12072770B2 (en) 2021-08-19 2024-08-27 Nutanix, Inc. Share-based file server replication for disaster recovery
US11671379B1 (en) * 2022-01-07 2023-06-06 Dell Products L.P. System and method for subscription management using dynamically composed management entities
US11907153B2 (en) 2022-01-07 2024-02-20 Dell Products L.P. System and method for distributed subscription management
US12093102B2 (en) 2022-01-07 2024-09-17 Dell Products L.P. System and method for power state enforced subscription management

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163885A (ja) * 2004-12-08 2006-06-22 Hitachi Ltd デプロイ方法、プログラム及びサーバシステム
US20090007105A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Updating Offline Virtual Machines or VM Images
WO2009042327A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Software deployment in large-scale networked systems
US20090100420A1 (en) * 2007-09-10 2009-04-16 Moka5, Inc. Automatic Acquisition and Installation of Software Upgrades for Collections of Virtual Machines
JP2009538469A (ja) * 2006-05-22 2009-11-05 マイクロソフト コーポレーション パッチなどによるバーチャルマシンの更新

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6343313B1 (en) * 1996-03-26 2002-01-29 Pixion, Inc. Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability
US6487718B1 (en) * 1999-03-31 2002-11-26 International Business Machines Corporation Method and apparatus for installing applications in a distributed data processing system
US7155710B2 (en) * 2001-06-08 2006-12-26 Igt Method and apparatus for gaming device software configuration
US6954929B2 (en) * 2001-07-30 2005-10-11 Hewlett-Packard Development Company, L.P. Method for just-in-time updating of programming parts
US7299463B2 (en) * 2001-09-28 2007-11-20 Intel Corporation Method for atomically updating a plurality of files
US7251812B1 (en) * 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
US7376944B2 (en) * 2001-12-18 2008-05-20 Hewlett-Packard Development Company, L.P. Hardware ROM upgrade through an internet or intranet service
JP4408033B2 (ja) * 2002-09-24 2010-02-03 株式会社リコー 遠隔管理システム
JP4085930B2 (ja) * 2002-11-08 2008-05-14 コニカミノルタホールディングス株式会社 画像処理装置
US7549148B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Self-describing software image update components
US7389503B2 (en) * 2004-04-16 2008-06-17 International Business Machines Corporation Apparatus and method to update code in an information storage and retrieval system while that system remains in normal operation
FR2870615B1 (fr) * 2004-05-18 2006-11-24 Canon Kk Procedes et dispositifs de manipulation, transmission et affichage d'images numeriques
US7788662B2 (en) * 2004-07-28 2010-08-31 Microsoft Corporation Automatic upgrade of pluggable components
US7552430B2 (en) * 2004-08-31 2009-06-23 Microsoft Corporation Patch sequencing
US7698698B2 (en) * 2004-09-30 2010-04-13 Smith Micro Software, Inc. Method for over-the-air firmware update of NAND flash memory based mobile devices
US20060080656A1 (en) * 2004-10-12 2006-04-13 Microsoft Corporation Methods and instructions for patch management
US9329905B2 (en) * 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
US7890919B1 (en) * 2004-10-27 2011-02-15 Adobe Systems Incorporated Automatic component update and integration
US8387037B2 (en) * 2005-01-28 2013-02-26 Ca, Inc. Updating software images associated with a distributed computing system
US7685148B2 (en) * 2005-01-31 2010-03-23 Computer Associates Think, Inc. Automatically configuring a distributed computing system according to a hierarchical model
US7590653B2 (en) * 2005-03-02 2009-09-15 Cassatt Corporation Automated discovery and inventory of nodes within an autonomic distributed computing system
US7594003B2 (en) * 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
KR20070034239A (ko) * 2005-09-23 2007-03-28 삼성전자주식회사 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체
US7447896B2 (en) * 2005-12-12 2008-11-04 Microsoft Corporation OS mini-boot for running multiple environments
US7496576B2 (en) * 2006-03-30 2009-02-24 Microsoft Corporation Isolated access to named resources
US7996829B2 (en) * 2006-07-31 2011-08-09 Hewlett-Packard Development Company, L.P. Managing software revisions for servers in an infrastructure
US8286238B2 (en) * 2006-09-29 2012-10-09 Intel Corporation Method and apparatus for run-time in-memory patching of code from a service processor
US20080104588A1 (en) * 2006-10-27 2008-05-01 Barber Michael J Creation of temporary virtual machine clones of multiple operating systems
US8336046B2 (en) * 2006-12-29 2012-12-18 Intel Corporation Dynamic VM cloning on request from application based on mapping of virtual hardware configuration to the identified physical hardware resources
US8239646B2 (en) * 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
US8291406B2 (en) * 2008-01-16 2012-10-16 Verizon Patent And Licensing Inc. Data imaging system and methods
US8341625B2 (en) * 2008-05-29 2012-12-25 Red Hat, Inc. Systems and methods for identification and management of cloud-based virtual machines
US20100146481A1 (en) * 2008-12-09 2010-06-10 Microsoft Corporation Developing applications at runtime

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006163885A (ja) * 2004-12-08 2006-06-22 Hitachi Ltd デプロイ方法、プログラム及びサーバシステム
JP2009538469A (ja) * 2006-05-22 2009-11-05 マイクロソフト コーポレーション パッチなどによるバーチャルマシンの更新
US20090007105A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Updating Offline Virtual Machines or VM Images
US20090100420A1 (en) * 2007-09-10 2009-04-16 Moka5, Inc. Automatic Acquisition and Installation of Software Upgrades for Collections of Virtual Machines
WO2009042327A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Software deployment in large-scale networked systems

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CSND200900770010; 山市 良: '徹底検証 Hyper-V 2.0' Windows Server World Vol.14,No.12(通巻234号), 20091201, p.64, 株式会社アイ・ディ・ジー・シャパン *
CSND201000125009; 矢口竜太郎: '徹底取材 クラウド管理ソフト ユーザー自ら仮想マシンを構築 課金管理もおまかせ' 日経コンピュータ 第750号, 20100217, p.100-105, 日経BP社 *
JPN6014055533; 山市 良: '徹底検証 Hyper-V 2.0' Windows Server World Vol.14,No.12(通巻234号), 20091201, p.64, 株式会社アイ・ディ・ジー・シャパン *
JPN6014055536; 矢口竜太郎: '徹底取材 クラウド管理ソフト ユーザー自ら仮想マシンを構築 課金管理もおまかせ' 日経コンピュータ 第750号, 20100217, p.100-105, 日経BP社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020534587A (ja) * 2017-09-21 2020-11-26 オラクル・インターナショナル・コーポレイション 多層クラウドベースアプリケーションスタックをアップデートするためのシステムおよび方法
JP7169973B2 (ja) 2017-09-21 2022-11-11 オラクル・インターナショナル・コーポレイション 多層クラウドベースアプリケーションスタックをアップデートするためのシステムおよび方法
JP2021039393A (ja) * 2019-08-30 2021-03-11 株式会社日立製作所 パッケージ化支援システムおよびパッケージ化支援方法
JP7231518B2 (ja) 2019-08-30 2023-03-01 株式会社日立製作所 パッケージ化支援システムおよびパッケージ化支援方法

Also Published As

Publication number Publication date
WO2011115842A3 (en) 2012-01-26
US20110225574A1 (en) 2011-09-15
WO2011115842A2 (en) 2011-09-22
US8533701B2 (en) 2013-09-10
EP2548116A4 (en) 2014-07-23
EP2548116A2 (en) 2013-01-23

Similar Documents

Publication Publication Date Title
JP2013522769A (ja) 仮想マシンイメージ更新サービス
US10931599B2 (en) Automated failure recovery of subsystems in a management system
US10826975B2 (en) System and method for providing java cloud services for use with a cloud computing environment
US9661071B2 (en) Apparatus, systems and methods for deployment and management of distributed computing systems and applications
US8683464B2 (en) Efficient virtual machine management
US8495609B2 (en) Methods, systems, and computer program products for taking a snapshot of installed software on a data processing system as part of a software update process
KR101574366B1 (ko) 가상 머신 및 애플리케이션 수명들의 동기화
US20140075520A1 (en) System and method for providing whitelist functionality for use with a cloud computing environment
JP2017519309A (ja) マルチテナントアプリケーションサーバ環境におけるパーティションマイグレーションのためのシステムおよび方法
US20140122666A1 (en) Automatic Deployment, Configuration, and Lifecycle Management of Applications and Infrastructure Components
US10728169B1 (en) Instance upgrade migration
US20170048331A1 (en) Platform runtime abstraction
US20210311715A1 (en) Software and firmware updates in a combined single pane of glass interface
US10474491B2 (en) Method and apparatus for managing cloud server in cloud environment
US9336020B1 (en) Workflows with API idiosyncrasy translation layers
US20240012632A1 (en) Coordinating updates to an agent platform appliance in which agents of cloud services are deployed
US20210182412A1 (en) System and method for managing data object creation
US11425203B2 (en) Commissioning a virtualized network function
US11435997B2 (en) Desired state model for managing lifecycle of virtualization software installed in heterogeneous cluster of hosts
CN116401013A (zh) 支持多云资源的脚本作业方法、装置、设备及存储介质
Kaufman et al. Implementing High Availability

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140212

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150403

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151013