プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、前記コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実行させるコンピュータ実行可能命令を具備したコンピュータ記憶媒体であって、前記方法は、分散コンピューティング環境を通してアクセス可能なサービスによって前記コンポーネントが使用されることを自動的に判定するステップであって、前記サービスは、前記アプリケーションイメージによって表されるアプリケーションのインスタンスである、ステップと、前記コンポーネント向けの更新が利用可能であるという指示を受信するステップと、前記アプリケーションイメージが前記コンポーネントを使用していることを識別するステップと、前記分散コンピューティング環境の分離コンピューティング環境において前記アプリケーションイメージを自動的に実行して、前記コンポーネントを更新するステップと、前記分散コンピューティング環境内に、更新された前記コンポーネントを有する前記アプリケーションを反映する新規アプリケーションイメージを格納するステップとを含むことを特徴とするコンピュータ記憶媒体。コンポーネントの判定は、前記アプリケーションの開発者によって提供されるインベントリであることを特徴とする請求項1に記載の方法。前記アプリケーションイメージが前記コンポーネントを使用していることを識別するステップは、ユーザによる介入なしで行われることを特徴とする請求項1に記載の方法。前記アプリケーションイメージが前記コンポーネントを使用していることを識別するステップは、前記アプリケーションによって使用されるコンポーネントのインベントリを参照することを含むことを特徴とする請求項1に記載の方法。前記分離コンピューティング環境は、前記分散コンピューティング環境内の定義されたネットワーク接続を有する仮想マシンであることを特徴とする請求項1に記載の方法。前記分離コンピューティング環境は、前記アプリケーションのユーザによって制御されない、前記分散コンピューティング環境内のリソースであることを特徴とする請求項1に記載の方法。前記新規アプリケーションイメージは、前記アプリケーションイメージに特有のカスタマイズ特徴を保持することを特徴とする請求項1に記載の方法。前記新規アプリケーションイメージを格納するステップに続いて、前記アプリケーションイメージを維持するステップをさらに含むことを特徴とする請求項1に記載の方法。前記アプリケーションのユーザに、前記新規アプリケーションイメージが前記分散コンピューティング環境に格納されたことを通知するステップをさらに含むことを特徴とする請求項1に記載の方法。前記アプリケーションの新規インスタンスのために前記新規アプリケーションイメージをインスタンス化する指示を、前記ユーザから受信するステップをさらに含むことを特徴とする請求項9に記載の方法。前記アプリケーションの新規インスタンスのために前記新規アプリケーションイメージの代わりに前記アプリケーションイメージをインスタンス化する指示を、前記ユーザから受信するステップをさらに含むことを特徴とする請求項9に記載の方法。アプリケーションイメージのコンポーネントを更新する方法を実施するコンピュータシステムであって、前記コンピュータシステムは、コンピュータ記憶媒体に結合されたプロセッサを備え、前記コンピュータ記憶媒体は、前記プロセッサによって実行可能な複数のコンピュータソフトウェアを格納し、前記コンピュータソフトウェアは、分散コンピューティング環境において1つまたは複数のアプリケーションによって使用されるコンポーネントに対する更新を受信する、受信サービスと、前記1つまたは複数のアプリケーションのうちのあるアプリケーションについて、前記コンポーネントを使用するアプリケーションイメージを自動的に識別する、コンポーネント更新サービスと、前記分散コンピューティング環境内の分離コンピューティング環境である仮想マシンにおいて前記アプリケーションイメージを実行する前記コンポーネント更新サービスと、前記分離コンピューティング環境内で前記コンポーネントに前記更新を適用して、更新エージェントを容易にする前記コンポーネント更新サービスと、前記アプリケーションの新規イメージの格納を容易にする前記コンポーネント更新サービスとを備えることを特徴とするコンピュータシステム。前記仮想マシン内での前記アプリケーションイメージの実行は、人間の介入なしで動作することを特徴とする請求項12に記載のシステム。前記新規イメージは、前記アプリケーションイメージに特有の特徴を自動的に維持することを特徴とする請求項12に記載のシステム。プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、前記コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実行させるコンピュータ実行可能命令を具備したコンピュータ記憶媒体であって、前記方法は、アプリケーションイメージによって表されるアプリケーションによって使用される複数のコンポーネントを判定するステップと、前記複数のコンポーネントをインベントリとして記録するステップと、前記複数のコンポーネントのうち、あるコンポーネント向けの更新の指示を受信するステップと、前記インベントリから、前記アプリケーションイメージが前記コンポーネントを使用すると自動的に識別するステップと、前記アプリケーションイメージを、前記分散コンピューティングシステムの分離コンピューティング環境において実行するステップと、前記分離コンピューティング環境において前記コンポーネント向けの前記更新を受信するステップと、前記分離コンピューティング環境における前記コンポーネントの更新を容易にするステップと、前記コンポーネントが前記分離コンピューティング環境内で更新されることを確認するステップと、前記更新されたコンポーネントを使用して、前記アプリケーションの新規アプリケーションイメージを作成するステップと、前記新規アプリケーションイメージを前記分散コンピューティング環境において格納するステップと、前記アプリケーションのユーザに、前記新規アプリケーションイメージが前記分散コンピューティング環境内で利用可能であることを通知するステップとを含むことを特徴とするコンピュータ記憶媒体。したがって、アプリケーションのコンポーネントを更新するための現在のプロセスは、ユーザが、更新が利用可能であることを手動で識別し、アプリケーションを構築し直すことに依拠するのだが、アドホックな解決策であり、労働集約的であり、エラーが起こりやすい。さらに、こうした解決策は、アプリケーションで使用される複数のコンポーネントを有する複数のアプリケーションを提供する分散コンピューティング環境にわたって適用し、および更新が利用可能であることを識別するのには、スケーラブルでない。本発明の実施形態は、分散コンピューティング環境内のアプリケーションによって使用されるコンポーネントを更新するシステム、方法およびコンピュータ記憶媒体に関する。分散コンピューティング環境内のアプリケーションが依拠するコンポーネントのインベントリが、作成および維持されて、ある特定のコンポーネントを使用するアプリケーションの識別を容易にする。ある特定のコンポーネントを使用するアプリケーションの判定が行われる。その特定のコンポーネント向けに更新が利用可能であるという指示が受信される。特定のコンポーネントを使用するアプリケーション用のアプリケーションイメージが、コンポーネントを更新させるように、分離コンピューティングisolatedcomputing環境内でブートされる。更新されたコンポーネントを反映するアプリケーションの新規イメージが作成される。例示的な実施形態では、アプリケーションの開発者などのユーザに、その新規イメージがそのアプリケーションの今後のインスタンス化に利用可能であることが通知される。本概要は、発明を実施するための形態において後でさらに説明する概念の選択を、簡略化した形で紹介するためのものである。本概要は、特許請求の対象の主要な特徴または本質的な特徴を識別することは意図しておらず、特許請求の対象の範囲を決定する際の助けとして使用されることも意図していない。本発明の例示的実施形態について、参照によって本明細書に組み込まれている、添付の図面を参照して後で詳しく説明する。法的要件を満たすように、本発明の実施形態の主題を本明細書において具体的に説明する。ただし、この説明自体は、本特許の範囲を限定することを意図していない。そうではなく、本発明者は、特許請求の対象が、本文書において説明されるものと類似した、異なるステップまたはステップの組合せを含むように、現在または将来の他の技術とともに、他の方法でも実施されることを企図している。本発明の実施形態は、分散コンピューティング環境内のアプリケーションによって使用されるコンポーネントを更新するシステム、方法およびコンピュータ記憶媒体に関する。分散コンピューティング環境内のアプリケーションが依拠するコンポーネントのインベントリが作成および維持されて、ある特定のコンポーネントを使用するアプリケーションの識別を容易にする。ある特定のコンポーネントを使用するアプリケーションの判定が行われる。その特定のコンポーネント向けに更新が利用可能であるという指示が受信される。特定のコンポーネントを使用するアプリケーション用のアプリケーションイメージが、分離コンピューティング環境内でブートされ、コンポーネントを更新するのを可能にする。更新されたコンポーネントを反映するように、アプリケーションの新規イメージが作成される。例示的な実施形態では、アプリケーションの開発者などのユーザに、アプリケーションの今後のインスタンス化に新規イメージが利用可能であることが通知される。したがって、一態様では、本発明は、プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実行させるコンピュータ実行可能命令を具備するコンピュータ記憶媒体を提供する。この方法は、分散コンピューティング環境を通してアクセス可能なサービスによってコンポーネントが使用されることを自動的に判定することを含み、サービスは、アプリケーションイメージによって表されるアプリケーションをインスタンス化したものである。この方法は、コンポーネント向けの更新が利用可能であるという指示を受信することも含む。さらに、この方法は、アプリケーションイメージがコンポーネントを使用中であることを識別することを含む。さらに、この方法は、分散コンピューティング環境の分離コンピューティング環境において、アプリケーションイメージを自動的に実行して、コンポーネントを更新することを含む。この方法は、分散コンピューティング環境において、更新されたコンポーネントを有するアプリケーションを反映する新規アプリケーションイメージを格納することも含む。別の態様では、本発明は、アプリケーションイメージのコンポーネントを更新する方法を実行するためのコンピュータシステムを提供し、コンピュータシステムは、コンピュータ記憶媒体に結合されたプロセッサを備え、コンピュータ記憶媒体は、プロセッサによって実行可能な複数のコンピュータソフトウェアを格納する。コンピュータソフトウェアは、分散コンピューティング環境において1つまたは複数のアプリケーションによって使用されるコンポーネントに対する更新を受信する受信サービスを含む。コンピュータソフトウェアは、コンポーネントを使用して、1つまたは複数のアプリケーションのうち、あるアプリケーション用のアプリケーションイメージを自動的に識別するコンポーネント更新サービスも含む。コンポーネント更新サービスは、分散コンピューティング環境内の分離コンピューティング環境である仮想マシンにおいてアプリケーションイメージを実行する。さらに、コンポーネント更新サービスは、分離コンピューティング環境内でコンポーネントに更新を適用することにより、更新エージェントを助けるように機能する。コンポーネント更新サービスは、アプリケーションの新規イメージの格納を容易にする。本発明の第3の態様は、プロセッサおよびメモリを有するコンピューティングシステムによって実行されると、コンピューティングシステムに、アプリケーションイメージをコンポーネントで更新する方法を実施させるコンピュータ実行可能命令を具備したコンピュータ記憶媒体を提供する。この方法は、アプリケーションイメージによって表されるアプリケーションによって使用される複数のコンポーネントを判定することを含む。この方法は、複数のコンポーネントをインベントリとして記録することも含む。さらに、この方法は、複数のコンポーネントのうち、あるコンポーネント向けの更新の指示を受信することを含む。さらに、この方法は、インベントリから、アプリケーションイメージがコンポーネントを使用することを自動的に識別することを含む。この方法は、分散コンピューティングシステムの分離コンピューティング環境内でアプリケーションイメージを実行することも含む。この方法は、分離コンピューティング環境においてコンポーネント向けの更新を受信することをさらに含む。この方法は、分離コンピューティング環境内でのコンポーネントの更新を容易にすることも含む。この方法は、コンポーネントが分離コンピューティング環境内で更新されることを確認することをさらに含む。この方法は、更新されたコンポーネントを使用して、アプリケーションの新規アプリケーションイメージを作成することも含む。この方法は、分散コンピューティング環境内で新規アプリケーションイメージを格納することも含む。さらに、この方法は、アプリケーションのユーザに、分散コンピューティング環境内で新規アプリケーションイメージが利用可能であることを通知することを含む。本発明の実施形態の概要を簡単に説明したが、本発明の実施形態の実装に適した例示的な動作環境について、以下に記載する。図面全体を参照するが、最初は特に図1を参照すると、本発明の実施形態を実装するのに適した例示的な動作環境が示されており、全体がコンピューティングデバイス100コンピューティング環境と指定されている。コンピューティングデバイス100は、適切なコンピューティング環境の一例に過ぎず、本発明の用途または機能性の範囲に関していかなる限定を示唆することも意図していない。コンピューティングデバイス100は、図示するモジュール/コンポーネントのいずれか1つまたはその組合せに関するいかなる依存または要件を有するように解釈されるべきでもない。実施形態は、コンピュータまたは携帯情報端末もしくは他のハンドヘルドデバイスなどの他のマシンによって実行されるプログラムモジュールなど、コンピュータ実行可能命令を含むコンピュータコードまたはマシン使用可能命令という一般的コンテキストで記載され得る。概して、ルーチン、プログラム、オブジェクト、モジュール、データ構造などを含むプログラムモジュールは、特定のタスクを実施し、または特定の抽象データタイプを実装するコードを指す。実施形態は、ハンドヘルドデバイス、家電製品、汎用コンピュータ、特殊コンピューティングデバイス、クラウドコンピューティング環境、サーバ、ノードなどを含む、様々なシステム構成で実施することができる。本発明の実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実施される分散コンピューティング環境において実施することもできる。図1の参照を続けると、コンピューティングデバイス100は、メモリ112、1つまたは複数のプロセッサ114、1つまたは複数の提示モジュールpresentationmodule116、入出力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は、複数のコンポーネントからなる。例えば、コンポーネント1204、コンポーネント2、206、およびコンポーネントN208である。コンポーネントは、例示的な実施形態において、アプリケーションに機能性を提供する、アプリケーションのコードの目立たない部分discreetportionである。コンポーネントは、少なくとも一部の実施形態において、他のコンポーネントと組み合わされると、アプリケーションによって提供される最終的な機能性を作成するビルディングブロックとみなすことができる。したがって、アプリケーション202は、複数のコンポーネントすなわち、コンポーネント1204、コンポーネント2、206、およびコンポーネントN208から構築され、これらのコンポーネントはそれぞれ、単独または組み合わせで、アプリケーション202のサービスによって提供される様々な機能を担う。例示的な実施形態では、エラー、欠陥、新規機能性、追加リソース、追加オプション、リソースの変更などに応答してアプリケーションが更新されると、アプリケーションの1つまたは複数のコンポーネントは、アプリケーションにおいて所望の変更が実装されやすくなるように更新される。その結果、アプリケーションは、該アプリケーションが使用する1つまたは複数のコンポーネントを更新することによって更新され得る。したがって、アプリケーションを表すコードをすべて更新するのではなく、アプリケーションのいくつかの部分またはコンポーネントを更新して、更新に必要とされるリソースを削減することができる。本明細書で使用するコンポーネントとは、クラウドコンピューティングシステムなどの分散コンピューティングシステムにおいて、機能性を提供するアプリケーションの一部分または全体であることが理解されよう。アプリケーション202などのアプリケーションは、開発者によって開発される。開発者は、ときには、アプリケーションの所有者と呼ばれ、アプリケーションが提供することを意図している機能性を識別し、単独または組み合わせて使われると、アプリケーションの機能性をユーザに提供するコンポーネントを作成、調整、および/または識別する。開発者は、アプリケーションによって提供される機能性の更新を望む場合もある。機能性を更新しやすくするために、アプリケーションの開発者は、1つまたは複数のコンポーネントに更新を提供すればよい。同様に、アプリケーションによって使用されるコンポーネントは、第三者の開発者によって開発され得る。第三者の開発者は、コンポーネントを更新し、次いで、更新されたコンポーネントを、アプリケーションによる使用のために提供することができる。例示的な実施形態では、開発者が、いくつかのコンポーネントからなるアプリケーションを開発する。アプリケーションを備えるコンポーネントは、開発者によって部分的に開発され、第三者の開発者によってやはり部分的に開発されてもよい。第三者の開発者によって開発されたアプリケーションのコンポーネントに関して、第三者の開発者は、ある特定のコンポーネントに対する更新を開発者に通知すればよい。別の実施形態では、第三者の開発者は、更新されたコンポーネントを開発者に通知しなくてよく、その代わり、開発者が自力で更新を発見するのに頼ってよい。したがって、開発者は、この例では、コンポーネントを使用するある特定のアプリケーション用に、コンポーネント更新が利用可能であると識別する責任がある。開発者が手動でのコンポーネント更新の識別を担っていないとき、管理およびリソースコストの削減を実現され得る。図2の参照を続けると、アプリケーションイメージなどのイメージ210は、マシン内のアプリケーションの状態のスナップショットである。例えば、イメージは、仮想マシン内のアプリケーションのスナップショットを含む。スナップショットは、変数、プログラムカウンタ、メモリ状態などを含み得る。イメージ210などのイメージは、サービス212、サービス214、またはサービス216などのサービスを要求側ユーザに提供するようにインスタンス化され得る。例示的な実施形態では、イメージ210は、分散コンピューティング環境の仮想マシン内で動作しているアプリケーション202のスナップショットである。マシン1218、マシン2220、およびマシンN222は、分散コンピューティング環境内で動作するマシンである。例示的な実施形態では、マシン1218、マシン2220、およびマシンN222は、それぞれのサービスにリソースを提供するように機能する仮想マシンである。上で論じたように、サービスとは、イメージをインスタンス化したものである。したがって、マシン1218は、この例では、サービス212によって要求される、必要なリソースを提供する。仮想マシンとは、物理マシンであるかのようにコンピューティングコードを実行するマシン例えば、コンピューティングデバイスの実装である。したがって、クラウドコンピューティング環境において、仮想マシンは、最低限の手動リソースが消費されるような拡張および削減を助けるフレームワークを提供する。例示的な実施形態では、アプリケーション202の開発者は、コンポーネント1204など、複数のコンポーネントを含むアプリケーション202を提供する。分散コンピューティング環境は、アプリケーション202からイメージ210を生成するように機能する、ワシントン州レドモンドのマイクロソフトコーポレーションから販売されているWINDOWS登録商標AZUREなどの動作環境を含み得る。イメージ210は、仮想マシンなどのマシン内のアプリケーション202のスナップショットである。イメージ210によって提供されるサービスが要求されると、イメージ210は、マシン1218などのマシンのリソースを使用するサービス212などのサービスとして、動作環境によってインスタンス化される。図2に関連して挙げた様々な実施形態および例は、本質的に例示的であって、包括的ではない。分散コンピューティング環境内におけるアプリケーションの配布を達成するために追加プロセス、サービス、マシン、ネットワークアプリケーションなどを実装することができることが理解されよう。さらに、本明細書に記載する要素の多くは、離散もしくは分散コンポーネントとして、または他のコンポーネントとともに、適切な任意の組合せおよび場所で実装することができる機能的エンティティである。1つまたは複数のエンティティによって実施されるものとして本明細書に記載する様々な機能は、ハードウェア、ファームウェア、および/またはソフトウェアによって実施され得る。例えば、メモリに格納された命令を実行するプロセッサによって、様々な機能が実施され得る。図3を参照すると、本発明の実施形態を用いることができる例示的な分散コンピューティング環境300を示すブロック図が提供されている。本明細書に記載するこの配置および他の配置は、例として説明されるだけであることを理解されたい。図示してあるものに加え、またはその代わりに、他の配置および要素例えば、マシン、インターフェイス、イメージ、コンポーネント、およびアプリケーションなどを使用することもでき、一部の要素は完全に省いてもよい。図示していない他のコンポーネントの中で、環境300は、更新サービスマシン302、イメージストア304、コンポーネント情報マシン310、分離環境マシン312、インベントリ314、ユーザマシン316、マシン1318、マシン2、320、およびマシンN322を含み得る。図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を限定するように、リソース、接続、パラメータ、アクセス、および他の制御を制限することによって、衝突を防止することができる。分散コンピューティング環境内の衝突は、更新プロセスにおいて、分離コンピューティング環境が、コンポーネントに関連付けられた様々なリソースをブロードキャストする例えば、伝達するのを禁止または防止することによって、回避することができる。マシン1318、マシン2320、およびマシンN322は、イメージすなわち、イメージ306、新規イメージ308のインスタンス化などのサービスによって使用するためのリソースを提供するように機能する、仮想的または物理的なマシンである。例示的な実施形態では、コンポーネント情報マシン310は、インベントリ314において、イメージ306中で使用される全てのコンポーネントのインベントリを作成し、維持する。したがって、開発者、第三者の開発者などが、ある特定のコンポーネント向けの更新の指示を与えると、更新サービスマシン302は、この指示を受信し、インベントリ314にアクセスして、そのコンポーネントを使用するアプリケーションイメージを識別する。本例示的実施形態では、更新サービスマシン302は、更新されたコンポーネントを含むか使用するものとして、イメージ306を識別する。この例を続けると、更新サービスマシンは、分離環境マシン312内でイメージ306をブートし、または実行する。先に論じたように、分離環境マシン312は、分散コンピューティング環境300内での可能性のある衝突を防止するように、分散コンピューティング環境300内で、限られたリソースおよび接続を有する。例えば、イメージ306のインスタンス化は、例えば更新サービスマシン302がイメージ306を更新しようと試みているのと同時に、マシン1320上で稼働中である場合がある。したがって、マシン1318上で動作するサービスが、分離環境マシン312内でイメージ306の並列リソースがブートされるときにそのリソースに気づくまたは依拠するのを防止するために、分離環境マシンのリソースおよび接続は、潜在的な衝突を防止するように制御され、制限される。例に戻ると、分散コンピューティング環境のファブリック層に関連付けられるか、その一部とすることができる更新サービスマシン302が、分離環境マシン312内でイメージ306を実行させると、コンポーネントに対する更新が適用される。特定の実施形態では、更新の指示は、更新サービスマシン302によって受信される。したがって、更新サービスマシン302は、イメージ306に適用されるべき更新を取得する。追加の実施形態では、更新は、更新サービスマシンまたは信頼できないコンピューティング環境の他のユニットによって、受信される指示の一部として受信される。一実施形態では、更新は、更新エージェントを含む。更新エージェントは、コンポーネントの更新を制御および/または管理するために、開発者、第三者の開発者などによって提供される。追加の実施形態では、更新エージェントは、分散コンピューティング環境300によって使用されるファブリックコントローラまたは他のオペレーティングプラットフォームによって提供され得る。更新エージェントは、一実施形態において、結果的に生じるイメージの機能性を維持できるだけでなく、ある特定のコンポーネントが更新されるのも可能にするように、分離環境マシン内のコンポーネントの更新を整理する。さらにこの例を続けると、イメージ306は、分離環境マシン上において、更新されたコンポーネントを用いて更新される。更新されたイメージのスナップショットをキャプチャして、イメージストア304に格納される新規イメージ308を生成することができる。新規イメージ308は、イメージ306に類似し、基礎のアプリケーションの状態のスナップショットである。ただし、新規イメージ308は、イメージ306とは異なり、更新されたコンポーネントの使用を反映する。例示的な実施形態では、イメージ306および新規イメージ308は双方とも、イメージストア304内で維持される。さらに、例示的な実施形態では、イメージ306は、新規イメージ308がユーザ、開発者などによって認証されるまで、様々なマシン例えば、マシン1318においてサービスを提供するように、継続してインスタンス化される。追加の例示的実施形態では、新規イメージ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つまたは複数のエンティティへの関連サービスの提供が容易になる。図示した様々なコンポーネントの異なる多くの配置、ならびに図示していないコンポーネントは、本発明の精神および範囲から逸脱することなく可能である。本発明の実施形態は、制限的ではなく例示的であることを意図して記載されている。本発明の範囲から逸脱しない代替的実施形態が、当業者には明らかであろう。当業者は、本発明の範囲から逸脱することなく、上述した改善を実装する代替手段を開発することができる。特定のいくつかの特徴およびサブコンビネーションは有用であり、他の特徴およびサブコンビネーションと関係なく利用されてよく、特許請求の範囲内で企図されることが理解されよう。様々な図面に列挙したすべてのステップを、必ずしも記載した具体的順序で実施する必要はない。