(57)【要約】本発明は、分散型アプリケーションのオブジェクトに関するアップデート通知を提供するための方法、システム、およびコンピューター・プログラム製品に及ぶ。或るオブジェクトに依存されているオブジェクトの新バージョンが作成されると、依存側オブジェクトへ通知を付加して、その依存側オブジェクトを管理する人へ、アップデートされたオブジェクトが作成されたことを警告することができる。依存側オブジェクトは、仮想ディスク・オブジェクトを参照する仮想マシン・テンプレート・オブジェクトおよび１以上の仮想マシン・テンプレート・オブジェクトを参照するサービス・テンプレート・オブジェクトなどのようなテンプレート・オブジェクトと、テンプレート・オブジェクトからインスタンス化されるサービス・インスタンスを表すサービス・インスタンス・オブジェクトとを、含むことができる。ファミリー内のオブジェクトのバージョンは、ファミリー・ネームを共有すること及び異なるリリースを有することにより、識別することができる。ファミリー内でオブジェクトの何れのバージョンが最新バージョンであるかを判定するために、オブジェクトがリリースされた時を表すために、タイムスタンプを用いることができる。
2015505096.tif 000002
【特許請求の範囲】
【請求項１】
１以上のプロセッサーとシステム・メモリとを含むコンピューター・システムであって、前記コンピューター・システムは、複数の分散型アプリケーションを実行し、前記分散型アプリケーションのそれぞれは、テンプレート・オブジェクトからインスタンス化され、前記テンプレート・オブジェクトは、複数のオブジェクトを定め、前記オブジェクトのそれぞれは、対応する前記分散型アプリケーションのコンポーネントを表すものである前記コンピューター・システムにおける、仮想ストレージ・デバイスを表すオブジェクトに対してのアップデートの通知を提供する方法であって、
仮想ディスク・オブジェクトの新バージョンが作成されたことを検出するステップであって、前記仮想ディスク・オブジェクトは分散型アプリケーションで使用するための仮想ディスクを表す、ステップと、
前記仮想ディスク・オブジェクトに依存する１以上のテンプレート・オブジェクトを識別するステップと、
前記仮想ディスク・オブジェクトに依存する前記１以上のテンプレート・オブジェクトのそれぞれにおいて、前記仮想ディスク・オブジェクトの前記新バージョンが作成されたことの通知を提供するステップと、
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記仮想ディスク・オブジェクトは、前記オブジェクトのファミリー・ネームの識別子とリリースの識別子とを含む、方法。
【請求項３】
請求項２に記載の方法であって、分散型アプリケーションで使用するための仮想ディスク・オブジェクトの新バージョンが作成されたことを検出する前記ステップは、或るオブジェクトが、前記ファミリー・ネームの前記識別子と同じ識別子と、リリースの異なる識別子とを有することを検出するステップを更に含む、方法。
【請求項４】
請求項３に記載の方法であって、分散型アプリケーションで使用するための仮想ディスク・オブジェクトの新バージョンが作成されたことを検出する前記ステップは、前記オブジェクトの前記新バージョンと関連するタイムスタンプが、前記仮想ディスク・オブジェクトと関連するタイムスタンプよりも最近のものであることを検出するステップを更に含む方法。
【請求項５】
請求項２に記載の方法であって、前記仮想ディスク・オブジェクトに依存する１以上のテンプレート・オブジェクトを識別する前記ステップは、前記仮想ディスク・オブジェクトの前記ファミリー・ネームの前記識別子および前記リリースの前記識別子への参照を含む１以上のテンプレート・オブジェクトを識別するステップを更に含む、方法。
【請求項６】
請求項１に記載の方法であって、前記仮想ディスク・オブジェクトに依存する前記１以上のテンプレート・オブジェクトのそれぞれにおいて、前記仮想ディスク・オブジェクトの前記新バージョンが作成されたことの通知を提供する前記ステップは、前記仮想ディスク・オブジェクトに依存する前記１以上のテンプレート・オブジェクトにおいてフラッグを設定するステップを更に含む、方法。
【請求項７】
請求項１に記載の方法であって、前記１以上のテンプレート・オブジェクトのそれぞれは、仮想マシン・テンプレート・オブジェクトまたはサービス・テンプレート・オブジェクトを含む、方法。
【請求項８】
請求項１に記載の方法であって、前記仮想ディスク・オブジェクトの前記新バージョンは、前記オブジェクトにより表される仮想ハード・ディスクへのパッチを含む、方法。
【請求項９】
１以上のプロセッサーとシステム・メモリとを含むコンピューター・システムであって、前記コンピューター・システムは、複数の分散型アプリケーションを実行し、前記分散型アプリケーションのそれぞれは、複数のオブジェクトを定めるテンプレート・オブジェクトからインスタンス化され、前記複数のオブジェクトのそれぞれは、対応する前記分散型アプリケーションのコンポーネントを表すものである前記コンピューター・システムにおける、テンプレート・オブジェクトに対してのアップデートの通知を、前記テンプレート・オブジェクトから作成されたサービス・インスタンスを表す１以上のサービス・インスタンス・オブジェクトへ提供する方法であって、
分散型アプリケーションを定めるテンプレート・オブジェクトの新バージョンが作成されたことを検出するステップと、
前記テンプレート・オブジェクトから作成されたサービス・インスタンスを表す１以上のサービス・インスタンス・オブジェクトを識別するステップと、
前記テンプレート・オブジェクトの前記新バージョンが作成されたことの通知を、前記１以上のサービス・インスタンス・オブジェクトのそれぞれへ提供するステップと、
を含む方法。
【請求項１０】
請求項９に記載の方法であって、
前記通知を前記１以上のサービス・インスタンス・オブジェクトのそれぞれへ提供する前記ステップと関連して、前記１以上のサービス・インスタンス・オブジェクトのそれぞれへの前記通知を閉じるオプションを提供するステップ
を更に含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
１．背景および関連の技術
[0001]  コンピューター・システムおよび関連する技術は、社会の多くの面に影響を及ぼす。実際、コンピューター・システムの情報処理の能力は、我々の生活や仕事を変えた。現在、コンピューター・システムは、一般に、コンピューター・システムの出現以前は手作業で行っていたタスク（例えば、ワード・プロセッシング、スケジューリング、会計など）のホストを行う。最近では、コンピューター・システムは、互いに及び他の電子デバイスと結合されて有線およびワイヤレスの双方のコンピューター・ネットワークを形成し、このコンピューター・ネットワークを介して、コンピューター・システムおよび他の電子デバイスは電子データを転送できる。従って、多くの計算タスクのパフォーマンスが、多数の異なるコンピューター・システムおよび／または多数の異なる計算環境にわたって分散される。
【０００２】
[0002]  幾つかの環境では、多くの異なる物理リソースがグループにされて、仮想コンピューター・システムまたは「仮想マシン」を作るために仮想化される。例えば、仮想マシンは、指定された数のプロセッサー、指定された量のメモリ、１以上の仮想ストレージ・デバイス、仮想ストレージ・デバイスに格納されるアプリケーションや他のコンポーネントなどを、含むことができる。仮想マシンを作成するために、１以上のユーザーは、仮想マシンに対して望まれる構成を指定する。この構成は、仮想マシン・インスタンスの多数のプロパティ、例えば、特定の仮想ストレージ・デバイスを参照するプロパティなどを設定することを、含むことができる。
【０００３】
[0003]  この明細書では、仮想ストレージ・デバイスとそれらのデバイス（以下では広く仮想ディスクという）のコンテンツとの間で区別が行われる。仮想ハード・ドライブは仮想ストレージ・デバイスであり、仮想ハード・ドライブのコンテンツは仮想ハード・ディスクと呼ばれる。仮想ハード・ドライブは、仮想マシンにおけるプロパティとして表され、仮想ハード・ディスクは、仮想マシンにより用いられるオペレーティング・システムなどのようなデータを含むファイルである。同様に、仮想のＣＤドライブやＤＶＤドライブは仮想マシンにおけるプロパティとして表され、仮想ＣＤや仮想ＤＶＤはファイル（例えば、ＤＶＤのコンテンツに対しての．ＩＳＯ）として表される。別の形の仮想ディスクはＶｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｄｉｓｋ（ＶＭＤＫ）（バーチャル・マシン・ディスク）である。
【０００４】
[0004]  仮想マシンの作成を容易にするために、仮想マシン・テンプレート・オブジェクトから仮想マシンのインスタンスを作成することができる（プロパティを手作業で構成することを必要とするのとは逆である）。仮想マシン・テンプレート・オブジェクトは、仮想マシンを作成するための青写真と考えることができる。仮想マシン・テンプレート・オブジェクトは、望む物理リソースとそれらの構成とを、指定することができる。例えば、仮想マシン・テンプレート・オブジェクトは、プロセッサーの数、メモリの量などを指定するメタデータを含むことができる。仮想マシン・テンプレート・オブジェクトはまた、仮想マシンに、仮想ハード・ドライブ（または他の仮想ストレージ・デバイス）と仮想ハード・ドライブ内へ含まれるべきコンテンツとが含まれることを、識別することができる。例えば、仮想マシン・テンプレート・オブジェクトは、仮想ハード・ディスク・オブジェクトを参照することができる。
【０００５】
[0005]  更に、サービス・テンプレート・オブジェクトを、分散型アプリケーションを作成するための青写真として用いることができる。この明細書では、分散型アプリケーションという用語は、サービス・インスタンスという用語と交換可能に広く用いられる。分散型アプリケーションは、望まれる機能をインプリメントするように構成される１以上の仮想マシンのグループを含む。従って、サービス・テンプレート・オブジェクトは、１以上の仮想マシン・テンプレート・オブジェクトを参照することができ、仮想マシン・テンプレート・オブジェクトからは、分散型アプリケーションをインプリメントするために１以上の仮想マシン・インスタンスが作成される。図面を含めて、この明細書では、仮想マシン・テンプレート・オブジェクトとサービス・テンプレート・オブジェクトとは、合同的にテンプレート・オブジェクトと呼ばれる。
【０００６】
[0006]  仮想マシン・テンプレート・オブジェクトから仮想マシンが作成されるとき、仮想マシンは、仮想マシン・テンプレート・オブジェクトにおいて定められたプロパティを用いて構成される。従って、仮想マシン・テンプレート・オブジェクトは、仮想マシンの多くのインスタンスが同様に構成されることを保証するために、用いることができる。例えば、仮想マシン・テンプレート・オブジェクトを、一回定めるようにでき、仮想マシンの多くのインスタンスを、その仮想マシン・テンプレート・オブジェクトから作成するようにでき、それにより、各インスタンスは、同じプロパティ（例えば、同じ仮想ハード・ディスクのコピー、同じ数のプロセッサーおよびメモリなど）を有するようにできる。
【０００７】
[0007]  同様に、サービス・テンプレート・オブジェクトは、一回定めるようにでき、分散型アプリケーションの多くのインスタンスを、そのサービス・テンプレート・オブジェクトから作成するようにでき、それにより、分散型アプリケーションの各インスタンスは、同じ構成を持つ同じ数の仮想マシンを含むようにできる。本発明を理解するための本質的なことではないが、サービス・テンプレート・オブジェクトは、仮想マシン・テンプレート・オブジェクトを参照する層テンプレート・オブジェクトを含むことができる。層は、同一に構成された仮想マシンのグループである。従って、層テンプレート・オブジェクトは、仮想マシン・テンプレート・オブジェクトを参照すること、および仮想マシン・テンプレート・オブジェクトから作成すべき仮想マシン・インスタンスの数を示すことができる。
【０００８】
[0008]  仮想マシンを作成するために用いるリソースは、しばしば、様々な人物により設計および／または管理される。例えば、アプリケーションは、一般に、開発者により作成される。他方、仮想ハード・ディスクは、一般に、仮想マシンをホストする会社のサーバー管理者により作成される。テンプレート・オブジェクトは、一般に、仮想マシンを望む会社のＩＴ管理者または他のＩＴスタッフにより作成され、仮想マシンのインスタンスは、会社の異なるＩＴスタッフにより、また更には、その会社のテンプレートの使用を望む別の会社により、配置（deploy）される。
【０００９】
[0009]  多くの異なる関係者が仮想マシンの作成および開発のプロセスに関わることが少なくとも部分的に原因で、仮想マシンの作成に使用されるリソースに対する変更を、全ての関係する関係者へ通知することが困難になり得る。リソースの変更の通知を提供するための幾つかのアプローチは、Ｅメールや電話などのような伝統的様式の通信と関連する。それらの伝統的なアプローチは、冗長性が高く、面倒であり誤りを生じさせ易い。
【００１０】
[0010]  例えば、一般に、サーバー管理者が、特定の仮想ハード・ディスクに依存する各テンプレート・オブジェクトを決定して、次に、仮想ハード・ディスクに対する変更を関連する各関係者へ通知するには、時間を要する。更に、たとえ関連する全関係者へ変更が通知されたとしても（Ｅメールや電話による）、関係者は、変更に対して応じることを簡単に忘れてしまうことがあり得、また他には、アップデートされた仮想ハード・ディスクを使用するためにテンプレート・オブジェクトを変更することを失敗することもあり得る。
【００１１】
[0011]  アップデートされたテンプレート・オブジェクトが作成されるときにも、同様の問題が存在する。例えば、テンプレート・オブジェクトに依存するサービス・インスタンス・オブジェクトを管理する各関係者は、アップデートされたテンプレート・オブジェクトの可用性を通知される必要がある。説明したように、それらの関係者へ通知すること、および通知された関係者もまた通知に対して適切に応答することは、面倒であり誤りを生じさせ易い。
【発明の概要】
【００１２】
[0012]  本発明は、分散型アプリケーションを作成するために用いられるオブジェクトに関してのアップデート通知を提供するための方法、システム、およびコンピューター・プログラム製品に及ぶ。本発明は、関連する関係者へ新たな又はアップデートされたオブジェクトを通知するプロセスを簡素化し、そのような通知へ適切に応答することを容易にする。
【００１３】
[0013]  １つの実施形態では、仮想ディスク・オブジェクトの新たなバージョンの作成が、検出される。オブジェクトは、分散型アプリケーションで使用するための仮想ディスクを表す。１以上のテンプレート・オブジェクトが識別される。１以上のテンプレート・オブジェクトは、仮想ディスク・オブジェクトに依存する。１以上のテンプレート・オブジェクトのそれぞれへ、仮想ディスク・オブジェクトの新たなバージョンが作成されたことが通知される。
【００１４】
[0014]  別の実施形態では、テンプレート・オブジェクトの新たなバージョンの作成が、検出される。テンプレート・オブジェクトの新たなバージョンは、分散型アプリケーションを定める。テンプレート・オブジェクトから作成される１以上のサービス・インスタンス・オブジェクトが、識別される。１以上のサービス・インスタンス・オブジェクトのそれぞれへ、通知が提供される。通知は、テンプレート・オブジェクトの新たなバージョンが作成されたことを示す。
【００１５】
[0015]  この概要は、以下の詳細な説明で更に説明するものを簡素化した形で、選択した概念を紹介するものである。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、特許請求の範囲に記載の主題事項の範囲を決定する際の支援として用いることを意図していない。
【００１６】
[0016]  本発明の追加の特徴および利点は、後続の説明に記載されており、また、記載から部分的に明らかであり、また、本発明の実施により学ぶことができる。本発明の特徴および利点は、添付の特許請求の範囲で特に指摘している機器および組み合わせにより実現して得ることができる。本発明のこれら及び他の特徴は、後続の説明および添付の特許請求の範囲からより完全に明らかになり、また、以下で述べる本発明の実施により学ぶことができる。
【００１７】
[0017]  本発明の上記および他の利点及び特徴が得られる様式を説明するために、上記で簡単に説明した本発明のより特定的な説明を、添付の図面に例示する特定の実施形態を参照して行う。これらの図面は、本発明の単なる典型的な実施形態を示すものであり、従って、本発明の範囲を限定するものと考慮されないということが理解された上で、添付の図面を使用して、本発明を、追加の特定性および詳細を伴って記載および説明する。
【図面の簡単な説明】
【００１８】
【図１】図１は、分散型アプリケーション・オブジェクトに関してのアップデート通知を提供することを容易にする例示のコンピューター・アーキテクチャーを示す。
【図２Ａ】図２Ａは、図１の例示のコンピューター・アーキテクチャー内のコンピューター・システムにおける様々な論理スペースを示す。
【図２Ｂ】図２Ｂ〜図２Ｅは、どのようにコンピューター・システムの論理スペース内でオブジェクトへ通知が提供されるかを示す。
【図２Ｃ】図２Ｂ〜図２Ｅは、どのようにコンピューター・システムの論理スペース内でオブジェクトへ通知が提供されるかを示す。
【図２Ｄ】図２Ｂ〜図２Ｅは、どのようにコンピューター・システムの論理スペース内でオブジェクトへ通知が提供されるかを示す。
【図２Ｅ】図２Ｂ〜図２Ｅは、どのようにコンピューター・システムの論理スペース内でオブジェクトへ通知が提供されるかを示す。
【図３】図３は、仮想ディスク・オブジェクトに対してのアップデートの通知を、仮想ディスク・オブジェクトに依存する１以上のテンプレート・オブジェクトへ提供するための方法のフローチャートである。
【図４】図４は、テンプレート・オブジェクトに対してのアップデートの通知を、テンプレート・オブジェクトから生成された１以上のサービス・インスタンス・オブジェクトへ提供するための方法のフローチャートである。
【発明を実施するための形態】
【００１９】
[0023]  本発明は、分散型アプリケーションを作成するために用いられるオブジェクトに関してのアップデート通知を提供するための方法、システム、およびコンピューター・プログラム製品に及ぶ。本発明は、関連する関係者へ新たな又はアップデートされたオブジェクトを通知するプロセスを簡素化し、そのような通知へ適切に応答することを容易にする。
【００２０】
[0024]  １つの実施形態では、仮想ディスク・オブジェクトの新たなバージョンの作成が、検出される。オブジェクトは、分散型アプリケーションで使用するための仮想ディスクを表す。１以上のテンプレート・オブジェクトが識別される。１以上のテンプレート・オブジェクトは、仮想ディスク・オブジェクトに依存する。１以上のテンプレート・オブジェクトのそれぞれへ、仮想ディスク・オブジェクトの新たなバージョンが作成されたことを示す通知が、提供される。
【００２１】
[0025]  別の実施形態では、テンプレート・オブジェクトの新たなバージョンの作成が、検出される。テンプレート・オブジェクトの新たなバージョンは、分散型アプリケーションを定める。テンプレート・オブジェクトから作成される１以上のサービス・インスタンス・オブジェクトが、識別される。１以上のサービス・インスタンス・オブジェクトのそれぞれへ、通知が提供される。通知は、テンプレート・オブジェクトの新たなバージョンが作成されたことを示す。本発明は、分散型アプリケーションを作成するために用いられるオブジェクトに関してのアップデート通知を提供するための方法、システム、およびコンピューター・プログラム製品に及ぶ。本発明は、関連する関係者へ新たな又はアップデートされたオブジェクトを通知するプロセスを簡素化し、そのような通知へ適切に応答することを容易にする。
【００２２】
[0026]  １つの実施形態では、仮想ディスク・オブジェクトの新たなバージョンの作成が、検出される。オブジェクトは、分散型アプリケーションで使用するための仮想ディスクを表す。１以上のテンプレート・オブジェクトが識別される。１以上のテンプレート・オブジェクトは、仮想ディスク・オブジェクトに依存する。１以上のテンプレート・オブジェクトのそれぞれへ、仮想ディスク・オブジェクトの新たなバージョンが作成されたことを示す通知が、提供される。
【００２３】
[0027]  別の実施形態では、テンプレート・オブジェクトの新たなバージョンの作成が、検出される。テンプレート・オブジェクトの新たなバージョンは、分散型アプリケーションを定める。テンプレート・オブジェクトから作成される１以上のサービス・インスタンス・オブジェクトが、識別される。１以上のサービス・インスタンス・オブジェクトのそれぞれへ、通知が提供される。通知は、テンプレート・オブジェクトの新たなバージョンが作成されたことを示す。
【００２４】
[0028]  本発明の実施形態は、特定用途向けまたは汎用のコンピューターを含む又は用いることができ、そのコンピューターは、後に詳細に説明するように、例えば、１以上のプロセッサーやシステム・メモリなどのようなコンピューター・ハードウェアを含む。本発明の範囲内にある実施形態はまた、コンピューター実行可能命令および／またはデータ構造を伝送または格納するための物理的な又は他のコンピューター可読媒体を含む。そのようなコンピューター可読媒体は、汎用または特定用途向けのコンピューターによりアクセスできる任意の使用可能な媒体とすることができる。コンピューター実行可能命令を格納するコンピューター可読媒体は、コンピューター・ストレージ媒体（デバイス）である。コンピューター実行可能命令を伝送するコンピューター可読媒体は、伝送媒体である。従って、限定ではなく例として、本発明の実施形態は、コンピューター・ストレージ媒体（デバイス）および伝送媒体という少なくとも２つの異なる種類のコンピューター可読媒体を含むことができる。
【００２５】
[0029]  コンピューター・ストレージ媒体（デバイス）は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、ソリッド・ステート・ドライブ（ＳＳＤ）（例えば、ＲＡＭに基づく）、フラッシュ・メモリ、相変化メモリ（ＰＣＭ）、他のタイプのメモリ、他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気ストレージ・デバイス、または望まれるプログラム・コード手段をコンピューター実行可能命令またはデータ構造の形で格納するために使用でき、且つ汎用または特定用途向けのコンピューターによりアクセスできる任意の他の媒体を含む。
【００２６】
[0030]  「ネットワーク」は、コンピューター・システムおよび／またはモジュールおよび／または他の電子デバイスの間での電子データのトランスポートを可能にする１以上のデータ・リンクとして定められる。情報が、ネットワークまたは他の通信接続（有線、ワイヤレス、または有線とワイヤレスとの組み合わせ）を介してコンピューターへ伝送または提供されるとき、コンピューターは、適切に、接続を伝送媒体と見る。伝送媒体は、ネットワークおよび／またはデータ・リンクを含むことができ、それらは、望まれるプログラム・コード手段をコンピューター実行可能命令またはデータ構造の形で伝送するために用いることができ、且つ汎用または特定用途向けのコンピューターによりアクセスできる。上記のものの組み合わせも、コンピューター可読媒体の範囲内に含まれるべきである。
【００２７】
[0031]  更に、コンピューター実行可能命令またはデータ構造の形のプログラム・コード手段は、様々なコンピューター・システム・コンポーネントへ到達すると、伝送媒体からコンピューター・ストレージ媒体（デバイス）へ（またはその逆に）、自動的に送られ得る。例えば、ネットワークまたはデータ・リンクを介して受け取られたコンピューター実行可能命令またはデータ構造は、ネットワーク・インターフェース・モジュール（例えば、「ＮＩＣ」）内のＲＡＭにバッファされ、その後、最終的にコンピューター・システムのＲＡＭへ、および／またはコンピューター・システムにおける揮発性の低いコンピューター・ストレージ媒体（デバイス）へ送られることができる。従って、コンピューター・ストレージ媒体（デバイス）は、伝送媒体を用いる（主に用いる場合さえある）コンピューター・システム・コンポーネントに含まれ得ることを、理解すべきである。
【００２８】
[0032]  コンピューター実行可能命令は、例えば、命令およびデータを含み、これらは、プロセッサーで実行されたときに、汎用コンピューター、特定用途向けコンピューター、または特定用途向け処理デバイスに、特定の機能または機能のグループを行わせる。コンピューター実行可能命令は、例えば、バイナリー、アセンブリ言語などのような中間フォーマット命令、また、ソース・コードとすることができる。主題事項を、構造的な特徴や方法論的な動作に対して特定的な言語で記載したが、添付の特許請求の範囲において定める主題事項が必ずしも上記の説明した特徴や動作に限定されるものではないことは、理解される。むしろ、説明した特徴や動作は、特許請求の範囲を実施するための例示的な形として開示されたものである。
【００２９】
[0033]  当業者は、多くのタイプのコンピューター・システム構成を持つネットワーク計算環境において本発明を実施でき得ることを理解するであろう。そのコンピューター・システム構成は、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、メッセージ・プロセッサー、手持ち型デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブルの消費者向け電子製品、ネットワークＰＣ、マイクロコンピューター、メインフレーム・コンピューター、モバイル電話、ＰＤＡ、ページャー、ルーター、スイッチなどを含む。本発明はまた、ネットワークを通じてリンク（有線データ・リンク、ワイヤレス・データ・リンク、または有線とワイヤレスのデータ・リンクの組み合わせ）されるローカルとリモートとのコンピューター・システムの双方がタスクを行う分散型のシステム環境で実施することもできる。分散型のシステム環境では、プログラム・モジュールは、ローカルとリモートとの双方のメモリ・ストレージ・デバイスに配することができる。
【００３０】
[0034]  図１は、分散型アプリケーション・オブジェクトに関してのアップデート通知を提供することを容易にする例示のコンピューター・アーキテクチャー１００を示す。図１を参照すると、コンピューター・アーキテクチャー１００は、仮想マシンを作成および実行するための、複数の相互接続されたプロセッサーとメモリとストレージ・デバイスとを含むコンピューター・システム１０１を含む。例えば、コンピューター・システム１０１は、ストレージ・デバイス１０２と、プロセッサー１０３と、メモリ１０４とを含む。コンピューター・システム１０１は、計算システムのクラウドにおいてインプリメントすることができる。コンピューター・システム１０１の例は、マイクロソフト（登録商標）のＳｙｓｔｅｍ  Ｃｅｎｔｅｒ  Ｖｉｔｒｕａｌ  Ｍａｃｈｉｎｅ  Ｍａｎａｇｅｒ製品を構成するリソースを含むことができる。
【００３１】
[0035]  コンピューター・システム１０１は、コンピューター・システム１０６および１０７などのようなコンピューター・システムへ、ネットワークを介して接続することができ、ネットワークは、例えば、ローカル・エリア・ネットワーク（「ＬＡＮ」）、ワイド・エリア・ネットワーク（「ＷＡＮ」）、更にはインターネットなどである。従って、他のコンピューター・システムは、任意の使用可能な手段、例えば、データに関連するメッセージを作成して、ネットワークを介してデータに関連するメッセージを交換するなど（例えば、インターネット・プロトコル（「ＩＰ」）・データグラムおよびＩＰデータグラムを用いる他の高位の層のプロトコル、例えば、トランスミッション・コントロール・プロトコル（「ＴＣＰ」）、ハイパーテキスト・トランスファー・プロトコル（「ＨＴＴＰ」）、シンプル・メール・トランスファー・プロトコル（「ＳＭＴＰ」）など）により、コンピューター・システム１０１と通信することができる。そのような通信は、実行されている仮想マシンとインタラクションするためのコマンドや、コンピューター・システム１０１内の新たな又は既存の仮想マシンを構成するための命令を、含むことができる。
【００３２】
[0036]  図２Ａは、コンピューター・システム１０１内の様々な論理スペースを示す。コンピューター・システム１０１は、ライブラリー・スペース２０１、テンプレート・スペース２０２、およびインスタンス・スペース２０３を含むことができる。図２Ａはまた、コンピューター・システム１０１がリフレッシャー２０４を含むことができることを示す。リフレッシャー２０４の機能は後に説明する。
【００３３】
[0037]  ライブラリー・スペース２０１は、仮想ディスクを定めるオブジェクトを格納する。例えば、ライブラリー・スペース２０１は、コンピューター・システム１０１内で使用可能な仮想ハード・ディスクと、仮想ＣＤや仮想ＤＶＤなどのような他の仮想ディスクとを定めるオブジェクトが格納される物理的場所を、表すことができる。ライブラリー・スペース２０１はまた、アプリケーション、スクリプト、ドライバーなどのような、仮想マシン作成のために使用される他のアーティファクトを、格納することができる。示されているように、ライブラリー・スペース２０１は、仮想ハード・ディスク・オブジェクト２０５を格納する。仮想ハード・ディスク（または他の仮想ディスク）は、オペレーティング・システムなどのような仮想ハード・ディスクのコンテンツを格納するファイルである。仮想ハード・ディスクのインスタンスは、仮想ハード・ディスク・オブジェクトから作成することができる（例えば、仮想ハード・ディスクを表すファイルを、仮想ハード・ディスクを用いる仮想マシンを実行するホスト・システムへ、コピーする）。仮想ハード・ディスク・オブジェクト２０５は、Ａ．ＶＨＤというファミリー・ネームと、Ｒ−１というリリースとを有する。ファミリー・ネームおよびリリースの使用は、後に説明する。
【００３４】
[0038]  図面は、仮想ハード・ディスクの使用を示すが、本発明の実施形態内で、任意の他のタイプの仮想ディスク、例えば、仮想ＤＶＤなどを用いることもできる。更に、本発明に従った仮想マシンは、１より多くの仮想ディスクを用いることができる。後に説明する通知技術は、各仮想ディスクへ同等に適用することができる。
【００３５】
[0039]  テンプレート・スペース２０２は、仮想マシン・テンプレート・オブジェクトおよびサービス・テンプレート・オブジェクトなどのような、定められたテンプレート・オブジェクトを、格納する。例えば、テンプレート・スペース２０２は、コンピューター・システム１０１内のテンプレート・オブジェクトが格納される物理的場所を、表すことができる。特定の実施形態では、テンプレート・スペース２０２は、１以上のデータベース・テーブルを表すことができ、このデータベース・テーブルは、コンピューター・システム１０１において定められる様々なテンプレート・オブジェクトのコンポーネント値を、何れのコンポーネント値が何れのテンプレート・オブジェクトにより用いられるかの識別（identification）と共に、格納する。しかし、別の実施形態では、テンプレート・オブジェクトに対しての他のデータ構造を用いることができる。
【００３６】
[0040]  示されているように、テンプレート・スペース２０２はテンプレート・オブジェクト２０６を含む。テンプレート・オブジェクト２０６は、仮想マシン・テンプレート・オブジェクトを表す。仮想マシン・テンプレート・オブジェクトは、とりわけ、仮想ハード・ディスク・オブジェクト（また、可能性としては、他の仮想ディスク・オブジェクト）を識別し、プロセッサーの数、メモリの量、および仮想ハード・ディスクのインスタンスへインストールされるアプリケーションまたはコンポーネントを、指定する。仮想マシン・テンプレート・オブジェクトは、仮想マシンのインスタンスが作成されたときに、用いられる。例えば、テンプレート・オブジェクト２０６は、仮想ハード・ディスク・オブジェクト２０５を識別することができ、テンプレート・オブジェクト２０６から作成された仮想マシン・インスタンスが、仮想ハード・ディスク・オブジェクト２０５からインスタンス化された仮想ハード・ディスクを含むであろうことを、示す。
【００３７】
[0041]  テンプレート・オブジェクト２０６は、仮想マシン・テンプレート・オブジェクトを表すものとして説明したが、本発明の目的のために、テンプレート・オブジェクト２０６はまた、サービス・テンプレート・オブジェクトを表すことができる。例えば、サービス・テンプレート・オブジェクトは、１以上の仮想マシン・テンプレート・オブジェクトを含む。特定的には、サービス・テンプレート・オブジェクトは、サービス・テンプレート・オブジェクトから作成されるサービス・インスタンスを構成するであろう１以上の仮想マシン・テンプレート・オブジェクトを、識別する。サービス・テンプレート・オブジェクトはまた、サービス・インスタンスにおいて各仮想マシンが他の仮想マシンとどのようにして通信するかなどのような、サービス・インスタンスを定めるための他のプロパティおよび構成設定を定める。
【００３８】
[0042]  従って、サービス・テンプレート・オブジェクトは、サービス・テンプレート・オブジェクトにおいて参照される仮想マシン・テンプレート・オブジェクトにより直接的に参照される仮想ディスク・オブジェクトのそれぞれを間接的に参照する、ということが言える。従って、仮想ディスク・オブジェクトに対してのアップデートの通知は、仮想ディスク・オブジェクトを直接的に参照する仮想マシン・テンプレート・オブジェクトと、仮想ディスク・オブジェクトを参照する何れかの仮想マシン・テンプレート・オブジェクトを参照するサービス・テンプレート・オブジェクトとの双方に対して、同様に提供することができる。明細書の以下の部分および特許請求の範囲は、一般に、テンプレート・オブジェクトについて言及する。この言及は、定義されないかぎり、仮想マシンとサービスとのテンプレート・オブジェクトの双方を含むと解釈すべきである。
【００３９】
[0043]  インスタンス・スペース２０３は、サービス・インスタンス２１４などのようなサービス・インスタンスを含み、サービス・インスタンスは１以上の仮想マシン・インスタンスのコレクションである。例えば、インスタンス・スペース２０３は、仮想マシン・インスタンスが実行される物理的なプロセッサー、メモリ、およびストレージを表すことができる。示されているように、インスタンス・スペース２０３はまた、サービス・インスタンス・オブジェクトを含むことができる。サービス・インスタンス・オブジェクトは、サービス・インスタンスを表すデータ構造である。例えば、サービス・インスタンス・オブジェクト２１４ａは、サービス・インスタンス２１４を表すことができる。サービス・インスタンス２１４は、テンプレート・オブジェクト２０６から作成されたものであり、仮想マシン・インスタンス２０７を含む。仮想マシン・インスタンス２０７は、仮想ハード・ディスク・インスタンス２０５ａを参照する。サービス・インスタンス２１４は、１つの仮想マシン・インスタンスを含むものとして示されているが、任意の数の仮想マシン・インスタンスにより、サービス・インスタンス２１４を構成することができる。
【００４０】
[0044]  この明細書内で、サービス・インスタンスと分散型アプリケーションとは、一般に、類似のことを指すことを意図している。分散型アプリケーションは、１以上の仮想マシン・インスタンスのコレクション内で実行される。例えば、複数層分散型アプリケーションは、アプリケーションのフロントエンドをインプリメントする１以上の仮想マシン、アプリケーションの中間層をインプリメントする１以上の仮想マシン、およびアプリケーションのデータベース・バックエンドをインプリメントする１以上の仮想マシンを、含むことができる。この例では、複数層分散型アプリケーションの仮想マシンのそれぞれは、仮想マシン・テンプレート・オブジェクトから作成することができる。分散型アプリケーションを表すサービス・テンプレート・オブジェクトは、それら仮想マシン・テンプレート・オブジェクトのそれぞれを参照することができる。
【００４１】
[0045]  仮想マシン・インスタンス２０７を作成するために、仮想ハード・ディスク・インスタンス２０５ａは、テンプレート・オブジェクト２０６において識別された仮想ハード・ディスク・オブジェクト２０５からインスタンス化され、プロセッサーおよびメモリは、テンプレート・オブジェクト２０６において定められたように割り当てられ、テンプレート・オブジェクト２０６において定められたアプリケーションおよびコンポーネントは、仮想ハード・ディスク・インスタンス２０５ａにインストールされる。
【００４２】
[0046]  図２Ｂは、アップデートされた仮想ハード・ディスク・オブジェクトが作成されたときに、テンプレート・オブジェクトに関しての通知がどのように提供されるかを示す。図２Ｂは図２Ａと似ているが、仮想ハード・ディスク・オブジェクト２０８およびアップデート・リソース・リスト（updated resource list）２０９が追加されている。
【００４３】
[0047]  仮想ハード・ディスク・オブジェクト２０８は、仮想ハード・ディスク・オブジェクト２０５に対するアップデートを含む。例えば、仮想ハード・ディスク・オブジェクト２０５は、オペレーティング・システムの初期バージョンを含むことができ、仮想ハード・ディスク・オブジェクト２０８は、オペレーティング・システムのパッチ済みバージョンを含むことができる。図２Ｂは、仮想ハード・ディスク・オブジェクト２０８は仮想ハード・ディスク・オブジェクト２０５と同じファミリー・ネーム（Ａ．ＶＨＤ）を有するがリリース（Ｒ−２）は異なる、ということを示す。
【００４４】
[0048]  アップデート・リソース・リスト２０９は、テンプレート・オブジェクト２０６が依存しているリソースに対するアップデートのリストを含む。例えば、上述のように、テンプレート・オブジェクト２０６は、仮想ハード・ディスク・オブジェクト２０５を識別する。仮想ハード・ディスク・オブジェクト２０８は、仮想ハード・ディスク・オブジェクト２０５のアップデートされたバージョンであるので、仮想ハード・ディスク・オブジェクト２０５に対しての使用可能なアップデートとして仮想ハード・ディスク・オブジェクト２０８を識別するエントリーが、アップデート・リソース・リスト２０９へ付加される。通知は、オブジェクトのファミリー・ネームおよびリリースを用いることにより、アップデートされたオブジェクトを識別することができ、これについては後に完全に説明する。
【００４５】
[0049]  図２Ａおよび図２Ｂでは、１つのテンプレート・オブジェクトが仮想ハード・ディスク・オブジェクト２０５に依存し、１つのサービス・インスタンス・オブジェクト２１４ａがテンプレート・オブジェクト２０６に依存することを示すが、複数のテンプレート・オブジェクトおよびサービス・インスタンス・オブジェクトが１つの仮想ハード・ディスク・オブジェクトおよび１つのテンプレート・オブジェクトにそれぞれ依存することもできる。
【００４６】
[0050]  リフレッシャー２０４は、周期的に又は他の間隔で、仮想ハード・ディスク・オブジェクトまたはテンプレート・オブジェクトに対する何れかのアップデートが作成されているかどうかの判定を実行できるモジュールを含む。リフレッシャー２０４は、アップデートされたオブジェクトを識別すると、適切なアップデート・リソース・リストをアップデートする。例えば、リフレッシャー２０４は、仮想ハード・ディスク・オブジェクト２０８が作成されたときに、アップデート・リソース・リスト２０９へエントリーを付加することができる。
【００４７】
[0051]  本発明の実施形態はまた、オブジェクトへ即座に通知を提供する機構を、提供することができる。例えば、サーバー管理者が仮想ハード・ディスク・オブジェクトの新バージョンを作成する場合、サーバー管理者は、リフレッシャー２０４が再び実行されるまで待たずに、その仮想ハード・ディスク・オブジェクトに依存する各テンプレート・オブジェクトに関しての通知を即座に出させるようにできる。
【００４８】
[0052]  オブジェクトと関連するアップデート・リソース・リストへエントリーを付加することに加えて、本発明の実施形態はまた、オブジェクトへ、そのアップデート・リソース・リストが変更されたことを通知するために、オブジェクト内でフラッグを設定することができる。このフラッグは、オブジェクトのアップデート・リソース・リストが通知を含むかぎり、設定された状態で維持することができる。
【００４９】
[0053]  図２Ｃは、ライブラリー・スペース２０１へ別の仮想ハード・ディスク・オブジェクト２１１が付加されているところを示す。仮想ハード・ディスク・オブジェクト２１１は、仮想ハード・ディスク・オブジェクト２０８に対するアップデートを含む。図２Ｃは、仮想ハード・ディスク・オブジェクト２１１は仮想ハード・ディスク・オブジェクト２０５および２０８と同じファミリー・ネーム（Ａ．ＶＨＤ）を有するが、リリース（Ｒ−３）は仮想ハード・ディスク・オブジェクト２０５および２０８とは異なる、ということを示す。
【００５０】
[0054]  仮想ハード・ディスク・オブジェクト２１１を付加した結果として、図２Ｃは、アップデート・リソース・リスト２０９が変更されたことを示している。ここで、アップデート・リソース・リスト２０９は、仮想ハード・ディスク・オブジェクト２０８および２１１のそれぞれに対して１つずつの、２つの通知を含む。
【００５１】
[0055]  図２Ｄは、アップデートされたテンプレート・オブジェクトが作成されたときに、サービス・インスタンス・オブジェクトに関しての通知がどのように提供されるかを示す。図２Ｄは図２Ｂと似ているが、テンプレート・スペース２０２における新たなテンプレート・オブジェクト２１２と、アップデート・リソース・リスト２１０とが追加されている。図２Ｄでは、テンプレート・オブジェクト２０６および２１２の双方とも、ファミリー・ネームおよびリリースを含むものとして示されている。テンプレート・オブジェクト２１２は、テンプレート・オブジェクト２０６のアップデートされたバージョンであり、これは、双方のオブジェクトはファミリー・ネーム（Ｘ．Ｔｅｍｐｌａｔｅ）を共有するがリリース（それぞれにＲ−１とＲ−２）が異なるということにより、示されている。アップデートは、テンプレート・オブジェクト２０６に対する任意の変更であり得るが、図２Ｄは、テンプレート・オブジェクト２１２におけるアップデートが仮想ハード・ディスク・オブジェクト２０８への参照であることを示す。
【００５２】
[0056]  テンプレート・オブジェクト２１２のリリースの通知は、上述の様式と同様に、サービス・インスタンス・オブジェクト２１４ａにおいて設定することができる。例えば、示されているように、アップデート・リソース・リスト２１０は、ここで、テンプレート・オブジェクト２１２に関する通知を含む。
【００５３】
[0057]  アップデート・リソース・リスト２１０が、テンプレート・オブジェクト２１２に関する通知を付加する前には空である場合、サービス・インスタンス・オブジェクト２１４ａにおけるフラッグを設定して、サービス・インスタンス・オブジェクト２１４ａに対して、１以上の通知がアップデート・リソース・リスト２１０内に有ることを、示すことができる。しかし、アップデート・リソース・リスト２１０が既に通知を含む場合、フラッグは既に設定されているであろう。テンプレート・オブジェクト２１２に関する通知はまた、後に説明するように、閉じることができる。
【００５４】
[0058]  図２Ｄは、テンプレート・オブジェクト２１２に対するアップデート・リソース・リストを示していないが、テンプレート・オブジェクト２１２に対するアップデート・リソース・リストは、アップデート・リソース・リスト２０９と同様に現れ得る。例えば、テンプレート・オブジェクト２１２もまた、仮想ハード・ディスク・オブジェクト２０５を識別した場合、仮想ハード・ディスク・オブジェクト２０８に関する通知が、テンプレート・オブジェクト２１２に対するアップデート・リソース・リストへ追加され得る。当然であるが、テンプレート・オブジェクト２１２が仮想ハード・ディスク・オブジェクト２０８を識別した場合、そのような通知は不要であろう。
【００５５】
[0059]  図２Ｅは、オブジェクトのアップデート・リソース・リストから、通知をどのように閉じることができるかを示す。図２Ｅは、テンプレート・スペース２０３へ別のアップデート済みテンプレート・オブジェクト２１３が付加されているという点で、図２Ｄと異なる。テンプレート・オブジェクト２１３はまた、テンプレート・オブジェクト２０６に対するアップデートであり、これは、テンプレート・オブジェクト２１３はテンプレート・オブジェクト２０６と同じ名前を共有するがリリースは異なる、ということにより示されている。示されているように、アップデート・リソース・リスト２１０はテンプレート・オブジェクト２１３に関する新たに付加された通知を含むが、テンプレート・オブジェクト２１２に関する通知は閉じられている。
【００５６】
[0060]  図２Ｅでは、明瞭化のために、閉じられた通知は線を通して付して、示しているが、通知は、アップデート・リソース・リスト２１０から除去することもできる。サービス・テンプレート・オブジェクト２１４ａのマネージャーは、何れかの理由で通知を閉じることができる。例えば、マネージャーはまた、アップデート・リソース・リスト２１０においてテンプレート・オブジェクト２１２に関する通知を閉じることができる。
【００５７】
[0061]  図２Ｅに示した本発明の幾つかの実施形態では、サービス・インスタンス・オブジェクトのアップデート・リソース・リストにおける通知のみを閉じることができ、テンプレート・オブジェクトのアップデート・リソース・リストにおける通知は閉じることができない。別の実施形態では、テンプレート・オブジェクトのアップデート・リソース・リストにおける通知も閉じることができる。
【００５８】
[0062]  アップデート・リソース・リストへ通知を付加することに加えて、リフレッシャー２０４はまた、古い通知を除去することができる。例えば、再び図２Ｅを参照すると、テンプレート・オブジェクト２１３が削除された場合、リフレッシャー２０４は、その削除を検出することができ、従って、アップデート・リソース・リスト２１０をアップデートすることができる。同様に、仮想ディスクがライブラリー・スペース２０１から削除された場合、削除された仮想ディスクのテンプレート・オブジェクトに関する何れの通知も、削除することができる。上記の記載は、使用可能なアップデートの通知を説明し、従って、アップデートの手作業での解決を可能とするが、本発明の幾つかの実施形態では、使用可能なアップデートは、テンプレートやサービス・インスタンスのオブジェクトへ自動的に適用することができる。そのようなシナリオでは、使用可能なアップデートを人へ伝えるのではなく、アップデートが適用されることの通知を、提供することができる。使用可能なアップデートが自動的に適用されるかどうかは、ビジネスの知性および／または定義された指標に基づくことができる。
【００５９】
[0063]  更に、本発明の幾つかの実施形態では、通知は、アップデートされた仮想ディスク・オブジェクトのサービス・インスタンス・オブジェクトに関して提供することができる。換言すると、アップデートされた仮想ディスクが使用可能になったとき、仮想ディスクの以前のバージョンに依存する何れものテンプレート・オブジェクトに関しての通知を提供することに加えて、本発明は、仮想ディスクの以前のバージョンに依存する何れものサービス・インスタンス・オブジェクトに関しての類似の通知を提供することができる。
【００６０】
[0064]  ライブラリー・スペース２０１およびテンプレート・スペース２０２の中でリソースとリソースに対するアップデートとを識別するために、命名スキームを用いる。これらのスペース内で、各リソースは、ファミリー・ネームおよびリリースを用いて識別される。ファミリー・ネームは、関連するリソースのセットを識別する。ファミリー・ネームの例は、「Ｗｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒ  ２００８」である。リソースは、ファミリー内のリソースの特定のバージョンを識別する。例えば、「Ｗｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒ  ２００８」のファミリーは、「Ｗｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒ  ２００８」というファミリー・ネームおよび「ＲＴＭ」というリリースを有する仮想ハード・ディスク・オブジェクトと、同じファミリー・ネームを有するがリリースが「ＳＰ１」である別の仮想ハード・ディスク・オブジェクトとを、含むことができる。ファミリー・ネームを共有することにより、本発明のシステムは、２つの仮想ハード・ディスク・オブジェクトが関連していることを、知ることができる。
【００６１】
[0065]  更に、各リソースには、最初にリソースが発行された時を示すタイムスタンプが割り当てられる。リソースの発行とは、リソースを使用可能にする動作を指す。例えば、テンプレート・オブジェクトは、テンプレート・スペース２０２内で作成（即ち、定義）することができるが、指定された日までは使用のために発行されないようにできる。この発行の日付は、タイムスタンプに使用される日付である。しかし、別の実施形態では、リソースの作成の日付を、タイムスタンプとして用いることもできる。例えば、ライブラリー・スペース２０１におけるディスク・オブジェクトの存在が、発行を構成する。
【００６２】
[0066]  このタイムスタンプは、ファミリーの中で何れのリソースが最新バージョンであるかをシステムが知ることを、可能にする。例えば、上記の「Ｗｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒ  ２００８」のファミリーの例を用いると、「ＳＰ１」というリリースを有する仮想ハード・ディスク・オブジェクトは、「ＲＴＭ」というリリースを有する仮想ハード・ディスク・オブジェクトよりも、時間的に後のタイムスタンプを有することができる。
【００６３】
[0067]  リフレッシャー２０４が新たなリソースを捜すとき、リフレッシャー２０４は、各リソースと関連するタイムスタンプを用いて、新たなリソースが作成されているかどうかと、通知が必要かどうかとを、決定することができる。例えば、リフレッシャー２０４は、テンプレート・オブジェクトが、「Ｗｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒ  ２００８」というファミリー・ネームと「ＲＴＭ」というリリースとを有する仮想ハード・ディスクに依存することを、検出することができる。リフレッシャー２０４は、同じファミリー・ネームと「ＳＰ１」というリリースとを有する１つの仮想ハード・ディスクが、リリースが「ＲＴＭ」であるバージョンのタイムスタンプよりも後のタイムスタンプを有することを検出したとき、リフレッシャー２０４は、テンプレート・オブジェクトに関しての通知を出すが、これは、その通知をそのアップデート・リソース・リストへ付加することにより、また、必要であればフラッグを設定することにより、出すことができる。
【００６４】
[0068]  理解できるように、オブジェクトに関する通知を自動的に出すこのプロセスは、関連する人物へアップデートされたリソースを使用することができることを伝えるための効率的な手段である。一人の人物により管理されるオブジェクトのアップデート・リソース・リストは、関連するその人物により用いられるアプリケーションのユーザー・インターフェース内で、表示することができる。ユーザー・インターフェースはまた、人物が新たなテンプレート・オブジェクトや新たなサービス・インスタンス・オブジェクトを作成することを可能にする手段を、提供することができる。従って、アップデートされたリソースは、仮想マシン・インスタンスにおいて、より迅速かつ効率的に配置することができる。
【００６５】
[0069]  図３は、仮想ハード・ディスク・オブジェクトに対するアップデートの通知を、その仮想ハード・ディスク・オブジェクトに依存する１以上のテンプレート・オブジェクトへ提供するための例示の方法３００のフローチャートを示す。方法３００は、図２Ｂを参照して説明する。
【００６６】
[0070]  方法３００は、仮想ディスク・オブジェクトの新たなバージョンが作成されたことを検出する動作３０１を含む。仮想ディスク・オブジェクトは、分散型アプリケーションで用いる仮想ディスクを表す。例えば、リフレッシャー２０４は、仮想ハード・ディスク・オブジェクト２０８が作成されたことを、検出することができる。リフレッシャーはまた、各オブジェクトにおいて定められたファミリー・ネーム、リリース、およびタイムスタンプに基づいて、仮想ハード・ディスク・オブジェクト２０８が仮想ハード・ディスク・オブジェクト２０５の新しいバージョンであることを、検出することができる。
【００６７】
[0071]  方法３００は、仮想ディスク・オブジェクトに依存する１以上のテンプレート・オブジェクトを識別する動作３０２を含む。例えば、リフレッシャー２０４は、テンプレート・オブジェクト２０６が仮想ハード・ディスク・オブジェクト２０５に依存することを、識別することができる。
【００６８】
[0072]  方法３００は、仮想ディスク・オブジェクトに依存する１以上のテンプレート・オブジェクトのそれぞれにおいて、仮想ディスク・オブジェクトの新たなバージョンが作られたことの通知を提供する動作３０３を含む。例えば、リフレッシャー２０４は、仮想ハード・ディスク・オブジェクト２０８の作成の通知がアップデート・リソース・リスト２０９へ追加されるようにすることができる。リフレッシャー２０４はまた、アップデート・リソース・リスト２０９が、仮想ハード・ディスク・オブジェクト２０８に関する通知を付加される前には空であった場合、アップデート・リソース・リスト２０９においてフラッグを設定することができる。
【００６９】
[0073]  図４は、テンプレート・オブジェクトに対するアップデートの通知を、そのテンプレート・オブジェクトから作成された１以上のサービス・インスタンス・オブジェクトへ提供するための例示の方法４００のフローチャートを示す。方法４００は、図２Ｅを参照して説明する。
【００７０】
[0074]  方法４００は、分散型アプリケーションを定めるテンプレート・オブジェクトの新たなバージョンが作成されたことを検出する動作４０１を含む。例えば、リフレッシャー２０４は、テンプレート・オブジェクト２１２が作成されたことを、検出することができる。リフレッシャー２０４はまた、各オブジェクトにおいて定められたファミリー・ネーム、リリース、およびタイムスタンプに基づいて、テンプレート・オブジェクト２１２がテンプレート・オブジェクト２０６の新しいバージョンであることを、検出することができる。
【００７１】
[0075]  方法４００は、テンプレート・オブジェクトから作成された１以上のサービス・インスタンス・オブジェクトを識別する動作４０２を含む。例えば、リフレッシャー２０４は、サービス・インスタンス・オブジェクト２１４ａがテンプレート・オブジェクト２０６から作成されたことを、識別することができる。
【００７２】
[0076]  方法４００は、１以上のサービス・インスタンス・オブジェクトのそれぞれへ、テンプレート・オブジェクトの新たなバージョンが作成されたことの通知を提供する動作４０３を含む。例えば、リフレッシャー２０４は、テンプレート・オブジェクト２１２の作成の通知がアップデート・リソース・リスト２１０へ追加されるようにすることができる。リフレッシャー２０４はまた、アップデート・リソース・リスト２１０が、テンプレート・オブジェクト２１２に関する通知を付加される前には空であった場合、アップデート・リソース・リスト２１０においてフラッグを設定することができる。
【００７３】
[0077]  本発明は、本発明の精神および本質的特徴から離れずに、他の特定の形態で実施することができる。説明した実施形態は、全ての点に関して単なる例示であり限定ではないと考慮される。従って、本発明の範囲は、前記の説明ではなく、添付の特許請求の範囲により示される。特許請求の範囲と等価の意味および範囲の中にある全ての変更は、特許請求の範囲に含まれる。
【図１】
2015505096.tif 000003
【図２Ａ】
2015505096.tif 000004
【図２Ｂ】
2015505096.tif 000005
【図２Ｃ】
2015505096.tif 000006
【図２Ｄ】
2015505096.tif 000007
【図２Ｅ】
2015505096.tif 000008
【図３】
2015505096.tif 000009
【図４】
2015505096.tif 000010
【国際調査報告】
2015505096.tif 000011
2015505096.tif 000012