(58)【調査した分野】(Int.Cl.,DB名)
前記有効期限データが、有効期限時刻を含み、記憶された注釈を失効させることが、関連付けられた有効期限時刻が経過したときに注釈を失効させることを含む、請求項1に記載のコンピュータによって実装される方法。
前記有効期限データが、有効期限イベントを含み、記憶された注釈を失効させることが、前記有効期限イベントが発生した後に注釈を失効させることを含む、請求項1に記載のコンピュータによって実装される方法。
前記注釈の各々が、1つ以上のユーザーまたは構成要素が前記注釈を読み出す、変更する、または消去する権利を特定する1つ以上の認可をさらに含む、請求項1に記載のコンピュータによって実装される方法。
前記リソースが、前記分散実行環境内のコンピューティングリソースのインスタンスを提供するために利用されるハードウェアリソースを含む、請求項1に記載のコンピュータによって実装される方法。
前記有効期限データが、有効期限時刻を含み、記憶された注釈を失効させることが、関連付けられた有効期限時刻が経過したときに注釈を失効させることを含む、請求項8に記載のシステム。
前記有効期限データが、有効期限イベントを含み、記憶された注釈を失効させることが、前記有効期限イベントが発生した後に注釈を失効させることを含む、請求項8に記載のシステム。
【発明を実施するための形態】
【0005】
以下の詳細説明は、分散実行環境のリソースを注釈するための技術に関する。本明細書に記載される概念及び技術を利用して、分散実行環境のユーザーは、分散実行環境のリソースに注釈を割り当てることができる。注釈は、例えば、リソースの動作状態に関する、テキストまたは他の種類の情報を提供する場合がある。注釈は、それに割り当てられた有効期限データ及び/または名前空間も有する場合がある。有効期限データは、所定の時刻に、または特定のイベントの発生に応答して、注釈を「失効」させるために利用することができる。名前空間は、リソースの注釈を呼び出すリクエストに応答して、関係する注釈だけを返すために利用することができる。これらの機構の使用を通じて、分散実行環境内部のユーザー及び/または構成要素に、リソースの最新及び/または最も関係する注釈だけを提供することができる。これら及び他の特徴に関する追加の詳細を以下に提供する。
【0006】
本明細書に示される一態様に従い、分散実行環境内のリソースを注釈するための、コンピュータによって実装される機構が開示される。一実装において、機構は、顧客が、永続的にまたは必要な場合に応じて、仮想マシンインスタンス、データストレージリソース、ネットワーキングリソース、及びデータベースリソース等のコンピューティングリソースのインスタンスを購入、構成、及び利用することができる、ネットワークベースの分散実行環境と共に動作する。分散実行環境は、多様な構成において、購入及び使用するためのコンピューティングリソースのインスタンスを提供することができる。例えば、分散実行環境は、プロセッサ能力、メインメモリ、ディスクストレージ及びオペレーティングシステムの多数の異なる構成を有する、購入及び使用に利用可能である仮想マシンインスタンスを提供する場合がある。上記のように、顧客は、アプリケーションホスティング、バックアップ及びストレージ、コンテンツ配信、ウェブホスティング、エンタープライズITソリューション、データベースサービス等、多種多様な機能性を提供する「ソリューション」を作成するために、コンピューティングリソースのインスタンスの多様な組み合わせを作成、構成、及び配備する場合がある。
【0007】
上記の分散実行環境は、上記のようなコンピューティングリソース、サーバーコンピュータ等のハードウェアリソース、ソフトウェアリソース、顧客またはユーザーのアカウント等の分散実行環境の顧客及び他のユーザーを記述するリソース、ならびに他の種類のリソースのインスタンスを含むが、これらに限定されない、多種多様なリソースを含む場合がある。以下にさらに詳細を説明するように、本明細書に開示される技術は、分散実行環境内のこれらの、及び可能性として他の種類のリソースの注釈を作成及び利用するために利用することができる。
【0008】
分散実行環境内のリソースの注釈を促進するために、リソース状態表示ツールは、一実施形態における分散実行環境内部で、またはこれと共に稼動し、ユーザーが、リソース監視構成要素または別の構成要素によって収集される、リソースに関するリソース状態データを表示することができるユーザーインターフェース(「UI」)を提供する。例えば、一実装において、リソース状態表示ツールは、分散実行環境内のリソースに対応するリソースページを提供するように構成される。
【0009】
リソースページは、分散実行環境内の対応するリソースのリソース状態データを表示するために利用される場合がある。例えば、ユーザーは、分散実行環境内の特定のサーバーコンピュータのリソースページをリクエスト及び表示するために、デスクトップまたはラップトップコンピュータのようなユーザーコンピューティングシステムを利用する場合がある。サーバーコンピュータのリソースページは、サーバーコンピュータの動作状態を記述するリソース状態データを提供する。以下にさらに詳細を検討するように、リソースページは、分散実行環境内のユーザーまたは構成要素によって作成されたリソースの注釈も含む場合がある。リソースページは、分散実行環境内のリソースの注釈の作成を促進するための構成要素も含む場合がある。
【0010】
上記に概略を記載したように、注釈は、分散実行環境内のリソースと関連付けられるテキスト及び/または別の種類のデータである。注釈は、分散実行環境のユーザーによって、あるいは分散実行環境内部またはこれに外部の構成要素によって作成される場合がある。例えば、分散実行環境のユーザーは、リソースが何らかの理由で誤動作していることを示すテキスト等、リソースに関する所定の動作情報を特定する、リソースの注釈を作成する場合がある。
【0011】
分散実行環境内部またはこれに外部の構成要素は、リソースに関係するワークフローに対応する注釈等のリソースの注釈も作成する場合がある。一例として、ワークフロー構成要素は、ワークフローの特定のステップがリソースに関して実行されたことを示す、リソースと関連付けられた注釈を作成する場合がある。他の種類の注釈も作成され、分散実行環境のリソースと関連付けられる場合もある。
【0012】
注釈の作成を促進するために、リソース状態表示ツールまたは別の構成要素は、構成要素が、分散実行環境内のリソースの注釈が作成されることをリクエストすることができる、1つ以上のインターフェースを
提供する場合がある。例えば、リソース状態表示ツールは、ユーザーがリソースのための注釈を作成するために利用することができる注釈構成要素を含む、リソースのリソースページを生成及び提供する場合がある。ユーザーは次いで、注釈を作成するために注釈構成要素を利用する場合がある。この点で、ユーザーは、注釈そのもの(すなわち、注釈のテキストまたは他のコンテンツ)を指定するために、注釈構成要素によって提供されたUIを利用する場合がある。注釈構成要素は次いで、注釈作成リクエストをリソース状態表示ツールへ提出する。これに応答して、リソース状態表示ツールは、注釈データストアまたは別の適切なデータストア内にリソースの新しい注釈を作成する。新しく作成された注釈は次いで、他のユーザーに提示される、多様な用途の構成要素に利用可能にされる、または他の方式で利用される場合がある。
【0013】
いくつかの実施形態において、注釈を作成しているユーザーまたは構成要素は、注釈の有効期限データを指定することも許可される場合がある。有効期限データは、注釈を失効させるために利用されてもよい。例えば、一特定実装において、有効期限データは、有効期限時刻である。この実装において、注釈は、有効期限時刻が経過した後に失効する。別の実装において、有効期限データは、有効期限イベントである。この実装において、注釈は、指定されたイベントが発生した後に失効する。例えば、有効期限イベントは、ワークフロー構成要素がリソースに関する特定の動作を実行した後、注釈が失効することを指定する場合がある。他の種類の有効期限イベントも指定される場合がある。
【0014】
いくつかの実施形態において、注釈は、注釈を消去することによって失効する。他の実施形態において、失効した注釈は消去されなくてもよく、失効したとマークされてもよい。消去されるのではなく、失効とマークされた注釈は、注釈が失効したという指標とともに依然としてユーザーに提示される場合がある。例えば、このような注釈は、ユーザーに対して、注釈が失効していることを示す取り消し線書式または別の種類の書式を用いて表示される場合がある。失効した注釈は、ユーザーが、失効した注釈を表示するようにリクエストするまで、非表示の場合もある。この方式において、ユーザーは依然として、リソースの失効した注釈を表示し、注釈が失効していることを理解しているが、その中に含まれる可能性として価値がある情報を利用することができる。
【0015】
いくつかの実装において、注釈を作成しているユーザーまたは構成要素は、注釈と関連付けられた名前空間を指定することも許可される場合がある。各注釈と名前空間を関連付けることによって、異なる種類の注釈の相互の曖昧さを除去することができる。例えば、分散実行環境のユーザーによって作成された注釈は、動作問題に関係する名前空間に割り当てられる場合がある。ワークフロー構成要素によって作成された注釈は、特定のワークフローに関係する名前空間に割り当てられる場合がある。特定のリソースの注釈を呼び出すリクエストが処理されると、返された結果は、特定の名前空間に限定される場合がある。この様にして、例えば、ワークフローに関係する注釈だけをワークフロー構成要素に返すことができる。同様に、動作問題に関係する注釈だけがユーザーに表示されてもよい。これらの例は例示に過ぎず、他の種類の名前空間が注釈と関連付けられ、他の目的のために利用される場合があることを理解されたい。
【0016】
認可もまた、分散実行環境内のリソースと関連付けられた注釈に指定される場合がある。認可は、ユーザー及び/または構成要素が、注釈、ならびに注釈の有効期限データ及び名前空間等の注釈と関連付けられた情報を読み出す、変更する、及び/または消去する権利を特定する場合がある。他の実施形態において、他の種類の情報もまた、注釈と関連付けられる場合もある。分散実行環境内のリソースを注釈するための、上記の多様な構成要素及び過程に関する追加の詳細は、
図1〜9を参照して以下に示す。
【0017】
本明細書に示される主題は、コンピュータ過程、コンピュータによって制御される装置、コンピューティングシステム、またはコンピュータ可読記憶媒体等の製造品目として実装されてもよいことを理解されたい。本明細書に記載する主題は、1つ以上のコンピューティングデバイス上で稼動するプログラムモジュールの一般的なコンテキストにおいて示されるが、当業者は、他の実装が他の種類のプログラムモジュールと併用して実行されてもよいことを認識するであろう。概して、プログラムモジュールは、特定のタスクを実行する、または特定の抽象的なデータタイプを実装する、ルーチン、プログラム、構成要素、データ構造、及び他の種類の構造を含む。
【0018】
当業者はまた、本明細書に記載される主題の態様は、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能一般電子機器、ミニコンピュータ、メインフレームコンピュータ、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント、電子リーダー、セルラー式電話デバイス、特殊目的ハードウェアデバイス、ネットワーク機器等を含む、本明細書に記載される以外の他のコンピュータシステム構成上またはそれと併用して実践されてもよいことを理解するであろう。本明細書に記載される実施形態は、タスクが、通信ネットワークを通じて連結されるリモート処理デバイスによって実行される、分散実行環境において実践されてもよい。分散実行環境において、プログラムモジュールは、ローカル及びリモート両方のメモリストレージデバイス内に配置されてもよい。
【0019】
以下の詳細説明において、その一部を形成し、図示によって、特定の実施形態または例を示す、添付の図面を参照する。本明細書の図面は、一定の縮尺で描画されていない。同様な数字は、いくつかの図面(本明細書において「図」または「図(複数)」として参照される場合がある)を通じて同様な要素を表す。
【0020】
図1は、本明細書に示される一実施形態に従い、分散実行環境102内のリソースを注釈するための、本明細書に開示される機構の概要説明を提供するコンピュータシステム図である。一実施形態において、本明細書に開示される機構は、顧客が、永続的にまたは必要な場合に応じて、仮想マシンインスタンス等のコンピューティングリソース104Aのインスタンスを購入及び利用することができる、ネットワークベースの分散実行環境102と共に動作する。分散実行環境102は、多様な構成において、購入するためのコンピューティングリソース104Aのインスタンスを提供してもよい。例えば、分散実行環境102は、プロセッサ能力、メインメモリ、ディスクストレージ及びオペレーティングシステムの多数の異なる構成を有する、購入及び使用に利用可能である仮想マシンインスタンスを提供する場合がある。
【0021】
分散実行環境102は、仮想マシンインスタンス以外の、顧客によって購入及び使用されるためのコンピューティングリソース104Aのインスタンスも提供する場合がある。例えば、分散実行環境102は、永続的にまたは必要な場合に応じて、データストレージリソース、ネットワーキングリソース、データベースリソース、及び他の種類のリソースを提供する場合がある。分散実行環境102の運用者は、インスタンスを作成する顧客に対して、インスタンスを運用するための料金を課金してもよい。分散実行環境102内部のコンピューティングリソース104Aのインスタンスの使用に対して顧客に課金するために、多様な異なる料金体系モデルが利用される場合がある。分散実行環境102の構成及び動作に関する詳細は、
図7及び8を参照して以下に提供する。
【0022】
上記のコンピューティングリソース104Aのインスタンスに加えて、分散実行環境102は、多数の他の種類のリソースも含む場合がある。例えば、制限ではなく、分散実行環境102は、サーバーコンピュータ等のハードウェアリソース104B、ソフトウェアリソース104C、ならびに分散実行環境102の顧客及び他のユーザーを記述するリソース等の他のリソース104Dも含む場合がある。ハードウェアリソース104B及びソフトウェアリソース104Cは、コンピューティングリソース104Aのインスタンスを提供するために、または他の目的のために利用される場合がある。分散実行環境102は、
図1に図示されない、または上記に明示的に特定されていない、他の種類のリソース104も含む場合がある。以下にさらに詳細を説明するように、本明細書に開示される技術は、分散実行環境102内のこれらの、及び可能性として他の種類のリソース104と関連付けられた注釈を作成及び表示するために利用することができる。
【0023】
いくつかの実装において、リソース監視構成要素106は、分散実行環境102内部またはこれと併用して稼動し、分散実行環境102内のリソース104の状態に関するデータを収集する。例えば、リソース監視構成要素106は、分散実行環境102内の、サーバーコンピュータのようなハードウェアリソース104Bの動作状態を記述するリソース状態データ120を収集する場合がある。リソース監視構成要素106は、仮想マシンインスタンス等のコンピューティングリソース104Aのインスタンスの動作状態を記述するリソース状態データ120を同様に収集する場合がある。リソース監視構成要素106はまた、分散実行環境102内の、顧客に関する情報のような他の種類のリソースに対するリソース状態データ120も収集する場合がある。
【0024】
いくつかの実装において、リソース監視構成要素106はまた、収集されたリソース状態データ120を他の構成要素による消費及び使用のために利用可能にする。例えば、いくつかの実施形態において、リソース監視構成要素106は、他の構成要素が、特定のリソース104のリソース状態データ120をリクエスト及び受信することができるAPIを
提供するように構成される。リソース状態データ120は本明細書において主に、リソース104の動作状態を記述するデータのコンテキストで説明されるが、リソース状態データ120は、リソース104に関する他の情報を含む場合があることを理解されたい。このように、リソース監視構成要素106は、分散実行環境102内のリソース104に関する、ほぼあらゆる種類の情報を取得するために利用することができる。
【0025】
いくつかの実施形態において、リソース状態表示ツール108はまた、分散実行環境102内部またはこれと併用して稼動し、ユーザー112が、リソース監視構成要素106によって収集されたリソース状態データ120を表示することができるUIを提供する。例えば、一実装において、リソース状態表示ツール108は、分散実行環境102内のリソース104に対応するリソースページ110を提供するように構成される。リソースページ110は、分散実行環境102内の対応するリソース104のリソース状態データ120を表示するために利用される場合がある。例えば、ユーザー112は、分散実行環境102内の特定のサーバーコンピュータのリソースページ110をリクエスト及び表示するために、デスクトップまたはラップトップコンピュータのようなユーザーコンピューティングシステム114上で稼動する適切なクライアントアプリケーション(
図1には図示せず)を利用する場合がある。サーバーコンピュータのリソースページ110は、サーバーコンピュータの動作状態、及び上記のように可能性として他の情報を記述するリソース状態データ120を提供する。
【0026】
一実施形態において、各リソースページ110は、分散実行環境102内のリソース104に対応する。例えば、一特定実装において、固有のユニフォームリソースロケーター(「URL」)が、各リソースページ110と関連付けられる。URLは、分散実行環境102内の関連付けられたリソース104に対応する、リソース104の固有の識別子を含む場合がある。このように、分散実行環境102のユーザー112は、関連付けられたリソース104のリソースページ110にアクセスするために、固有のURLを利用することができる。この実装において、ユーザーコンピューティングシステム114上で稼動するワールドワイドウェブ(「ウェブ」)ブラウザアプリケーション(
図1には図示せず)は、各リソースページ110を呼び出し及び描画するために利用される場合がある。しかしながら、リソースページ110を生成及び提供するために異なる機構が利用される場合があり、リソースページ110を受信及び描画するために、他の実施形態において、異なる種類のクライアントアプリケーションが利用される場合があることも理解されたい。
【0027】
図1に示されるように、リソースページ110はまた、リソースページ110に対応するリソース104と関連付けられた1つ以上の注釈も含む場合がある。上記のように、注釈122は、リソース104と関連付けられたテキストまたは他の種類のデータである。例えば、ユーザー112は、テキスト、画像、音声、ビデオ、または他の種類のデータを分散実行環境102内の特定のリソース104と関連付けるために、本明細書に開示される機構を利用する場合がある。分散実行環境102内部またはこれの外部で動作する構成要素はまた、注釈122を作成及び利用するために、本明細書に開示される多様な機構を利用する場合もある。例えば、
図1に示される例において、ワークフロー構成要素138は、注釈122を作成及び利用している。ワークフロー構成要素138は、ソフトウェアを配備するため、リソース104上で保守を実行するため、または他のタスクを実行するためのワークフロー等、リソース104に関して実行されるワークフローを管理する構成要素である。注釈122を作成及び利用するために、本明細書に開示される多様な過程に関する追加の詳細を以下に提供する。
【0028】
ユーザー112が注釈122を作成することを許可するために、一実施形態において、リソースページ110は、注釈構成要素124を含む。注釈構成要素124は、ユーザー112が注釈122を指定することができる適切なUIを提供する。注釈構成要素124によって提供されるUIはまた、ユーザーが、有効期限データ、名前空間、及び認可等、注釈122と関連付けられた他の種類の情報を指定することも可能にする場合がある。このデータに関する追加の詳細を以下に提供する。
【0029】
ユーザー112が、リソース状態表示ツール108へ注釈122を提出する準備ができると、ユーザーは、注釈構成要素124によって提供された適切なユーザーインターフェースを選択する場合がある。これに応答して、注釈構成要素124は、リソースのリソース識別子128、注釈122、及び可能性としてユーザー112によって提供される追加情報を含む、注釈作成リクエスト126をリソース状態表示ツール108へ伝送する。注釈作成リクエスト126は、ウェブサービスAPIまたは別の適切な機構によって、リソース状態表示ツール108へ提供される場合がある。
【0030】
注釈作成リクエスト126を受信することに応答して、リソース状態表示ツール108は、注釈122及び関連付けられたデータを注釈データストア118内に記憶する。一実施形態において、注釈データストア118は、注釈122を記憶するために構成されたMySQLデータベースである。しかしながら、本明細書に記載される様式において、注釈122を記憶及びアクセスするために、他の適切なデータベース技術も利用される場合があることを理解されたい。
【0031】
上記に概略を記載したように、リソース104の注釈122は、リソース104のリソースページ110上で、ユーザー112に提示される場合がある。加えて、分散実行環境102内部またはこれの外部のソフトウェア及びハードウェア構成要素はまた、同様な様式において注釈122を作成及び利用する場合もある。
図1に示された例において、例えば、ワークフロー構成要素138は、リソース104のための注釈を作成するために、注釈作成リクエスト126をリソース状態表示ツール108へ提出することができる。ワークフロー構成要素138はまた、適切なAPIまたは他の機構によって、注釈122をリクエストし、リソース状態表示ツール108から受信する場合もある。以下にさらに詳細を説明するように、名前空間130はまた、対象の注釈122だけを対象当事者に返すことができるように、各注釈122と関連付けられる場合もある。分散実行環境102内のリソース104の新しい注釈122の作成に関する追加の詳細は、
図2を参照して以下に提供する。
【0032】
上記に概略を記載したように、ユーザー112または構成要素のいずれかから受信された注釈作成リクエスト126は、リソース識別子128及び注釈122に加えて、情報を含む場合がある。具体的には、一実装において、注釈作成リクエスト126は、注釈122の有効期限データも含む。例えば、一特定実装において、有効期限データは、有効期限時刻132であり、関連付けられた注釈122が失効する日付及び/または時刻を指定する場合がある。この実装において、注釈122は、有効期限時刻132が経過した後、失効したと見なされる。
【0033】
別の実装において、有効期限データは、有効期限イベント134である。この実装において、注釈122は、指定された有効期限イベント134が発生した後、失効したと見なされる。例えば、有効期限イベント134は、ワークフロー構成要素138が、関連付けられたリソース104に関する特定の動作を実行した後、注釈122が失効したと見なされることを指定する場合がある。ユーザー112または構成要素は、他の種類の有効期限イベント134も指定する場合がある。
【0034】
いくつかの実施形態において、注釈122は、注釈122を消去することによって失効する。他の実施形態において、失効した注釈122は消去されなくてもよく、失効したとマークされてもよい。消去されるのではなく、失効とマークされた注釈122は、注釈122が失効したという指標とともに依然としてユーザー112に提示される場合がある。例えば、このような注釈122は、ユーザー112に対して、注釈122が失効していることを示す取り消し線書式または別の種類の書式を用いて表示される場合がある。失効した注釈は、ユーザーが、失効した注釈を表示するようにリクエストするまで、非表示の場合もある。このように、ユーザー112は依然として、リソース104の失効した注釈122を表示し、注釈122が失効していることを理解しているが、その中に含まれる可能性として価値がある情報を利用することができる。注釈を失効させるための1つの過程に関する追加の詳細は、
図3を参照して以下に提供する。
【0035】
上記に概略を記載したように、注釈122を作成しているユーザー122またはソフトウェアもしくはハードウェア構成要素は、注釈122と関連付けられた名前空間130を指定することも許可される場合がある。各注釈122と名前空間130を関連付けることによって、異なる種類の注釈122の相互の曖昧さを除去することができる。例えば、分散実行環境102のユーザー112によって作成された注釈122は、動作問題に関係する名前空間130に割り当てられる場合がある。ワークフロー構成要素138によって作成された注釈122は、特定のワークフローに関係する異なる名前空間に割り当てられる場合がある。
【0036】
リソース状態表示ツール108、または別の構成要素が、特定のリソース104の注釈122を呼び出すリクエストを処理すると、返された注釈122は、特定の名前空間130に限定される場合がある。このように、例えば、ワークフローに関係する注釈122だけをワークフロー構成要素138に返すことができる。同様に、リソースページ110または他のUIによって、動作問題に関する注釈122だけがユーザー112に表示されてもよい。これらの例は例示に過ぎず、他の種類の名前空間130が注釈122と関連付けられ、他の目的のために利用される場合があることを理解されたい。注釈122を呼び出すリクエストを処理するために名前空間130を使用することに関する追加の詳細は、
図4及び5を参照して以下に提供する。
【0037】
これも上記に概略を記載したように、注釈作成リクエスト126はまた、注釈122のための1つ以上の認可136も指定する場合がある。認可136は、ユーザー112及び/または構成要素が、注釈122、ならびに/あるいは注釈122の有効期限データ及び/または名前空間130等の注釈122と関連付けられた情報を読み出す、変更する、及び/または消去する権利を特定する場合がある。他の実施形態において、他の種類の情報もまた、注釈122と関連付けられる場合がある。注釈122及びそれらの関連付けられた情報を読み出す、変更する、及び/または消去するリクエストを処理するために認可136を使用することに関する追加の詳細は、
図4〜6を参照して提供する。
【0038】
分散実行環境102のユーザー112は、分散実行環境102の所有者または運用者によって雇用されたユーザーの場合があることを理解されたい。この場合、ユーザー122は、無限の様式でリソースページ110を表示することが許可されている場合がある。ユーザー112はまた、セキュリティまたはクリアランスレベル、あるいは何らかの他の機構に基づいて、所定のリソースページ110に限定される場合もある。しかしながら、他の実施形態において、ユーザー112は、分散実行環境102の顧客、または顧客の従業員の場合がある。この場合、ユーザー112は、顧客によって購入されている、分散実行環境102のリソース104のリソースページ110を表示することに限定されている場合がある。このように、顧客は、その所有するリソース104のリソースページ110だけを表示することができる。分散実行環境102のユーザー112へリソースページ110を提供することは、他の方式で限定される場合もある。
【0039】
また、
図1に示されたリソースページ110のコンテンツは例示に過ぎず、リソースページ110は、
図1に示された項目のうちのいくつか、または全てを含む場合があることも理解されたい。
図1に示されたリソースページ110はまた、
図1に示されない他のソフトウェア構成要素も含む場合がある。本明細書に記載される機能性を提供するために、多数のさらに多くの構成要素、ネットワーキングデバイス、ネットワーク、ソフトウェア構成要素、及び他のデバイスが利用される場合がある。その上、これらのデバイスは、本明細書に開示される技術的結果を達成するために、
図1に示された以外の方式で、配置、構成、及び相互接続される場合がある。本明細書に示された実施形態は、
図1または他の図面に示された特定の配置に限定されてはならない。
【0040】
図2は、本明細書に開示される一実施形態に従い、分散実行環境102内のリソース104のために新しい注釈122を作成するための一例示的ルーチン200の態様を示すフロー図である。
図2及び他の図面に関して本明細書に記載される論理的動作は、(1)コンピューティングシステム上で稼動するコンピュータによって実装された動作またはプログラムモジュールのシークエンスとして、及び/あるいは(2)コンピューティングシステム内部の相互接続された機械論理回路または回路モジュールとして実装される。本明細書に記載された多様な構成要素の実装は、コンピューティングシステムの性能及び他の要件に依存する選択の問題である。したがって、本明細書に記載される論理演算は、操作、構造的デバイス、振る舞い、またはモジュールとして、多様に参照される。これらの操作、構造的デバイス、振る舞い、及びモジュールは、ソフトウェア、ファームウェア、特殊目的デジタルロジック、及びこれらの任意の組み合わせにおいて実装されてもよい。図面に示され、本明細書に記載されるよりも多いまたは少ない操作が実行されてもよいことも理解されたい。これらの操作はまた、並行に、または本明細書の記載とは異なる順序で実行されてもよい。
【0041】
ルーチン200は、操作202で開始し、リソース状態表示ツール108、または分散実行環境102内部またはこれの外部で稼動する別の構成要素が、注釈作成リクエスト126を受信するためのインターフェースを
提供する。上記のように、インターフェースは、注釈構成要素124から、ワークフロー構成要素138から、または別の種類の構成要素から、注釈作成リクエスト126を受信する適切なウェブサービスAPIまたは別の種類のインターフェースの場合がある。いくつかの実施形態において、構成要素は、注釈122、及び注釈データストア118に直接関連付けられた任意の情報も記憶する場合がある。他の実装も利用される場合がある。
【0042】
操作202から、ルーチン200は、操作204に進み、リソース状態表示ツール108が、注釈作成リクエスト126を受信する。
図1に示される例において、例えば、リソース状態表示ツール108は、リソースページ110の注釈構成要素124から、注釈作成リクエスト126を受信している。
図1にも示され、上記に説明したように、注釈作成リクエスト126は、注釈122、及び注釈122が作成されるべきリソース104のリソース識別子128を含む。リソース識別子128は、グローバル固有識別子(「GUID」)、インターネットプロトコル(「IP」)アドレス、アセット番号、または新しい注釈122が作成されるべきリソース104を固有に特定する別の種類の指標子の場合がある。
【0043】
操作204から、ルーチン200は、操作206に進み、リソース状態表示ツール108が、注釈作成リクエスト126で受信された注釈122を注釈データストア118に記憶する。加えて、注釈作成リクエスト126を提出したユーザー、構成要素、またはシステムを特定するデータが記憶される場合がある。ルーチン200は次いで、操作208に進み、リソース状態表示ツール108は、名前空間130が注釈作成リクエスト126に提供されている場合、注釈122と関連付けられた名前空間130を注釈データストア118に記憶する。上記に概略を記載したように、ならびに
図5及び6を参照して以下にさらに詳細を説明するように、名前空間130は、異なる種類の注釈122の相互の曖昧さを除去するために利用される場合がある。
【0044】
操作208から、ルーチン200は操作210及び212に進み、注釈作成リクエスト126に提供された任意の有効期限データもまた、注釈データストア118に記憶される。例えば、操作210で、新しい注釈122の有効期限時刻132は、注釈作成リクエスト126に提供されていた場合、注釈データストア118に記憶されてもよい。同様に、操作212で、新しい注釈122の有効期限イベント134は、注釈作成リクエスト126に指定されていた場合、注釈データストア118に記憶されてもよい。新しい注釈122を失効させるための有効期限データの使用に関する詳細は、
図3を参照して以下に提供する。
【0045】
操作212から、ルーチン200は操作214に進み、注釈作成リクエスト126に記述された認可136もまた、注釈データストア118に記憶される。注釈122へのアクセス及び変更を制限する注釈122の認可136の使用に関する追加の詳細は、提供されている場合、
図5及び6を参照して以下に説明する。
【0046】
操作214から、ルーチン200は操作216に進み、いくつかの実施形態において、注釈データストア118内の新しい注釈122の作成を記述するデータは、ログまたはジャーナルに記憶される場合がある。
図6を参照して以下に説明するように、注釈122及び/またはその関連付けられた情報の変更または消去もまた、同様な様式で記録される場合がある。このように、その寿命を通じて、注釈122への変更に関する完全な記録を保存することが可能である。この情報は、多様な方式の使用のために、分散実行環境102のユーザー112、及び/または構成要素に利用可能にされる場合がある。操作216から、ルーチン200は操作218に進み、終了する。
【0047】
図3は、分散実行環境102内のリソース104と関連付けられた注釈122を失効させるための、本明細書に開示される一例示的ルーチン300の態様を示すフロー図である。上記に説明したように、注釈122と関連付けられる有効期限データは、注釈を消去するため、または失効していると注釈をマークするために利用される場合がある。
図3に示される実施形態において、例えば、リソース状態表示ツール108、または別の構成要素は、注釈122が失効しているかを決定するために、各注釈122の有効期限データを検証する過程を定期的に実行する。他の実施形態において、しかしながら、注釈122の失効をトリガーするために、提供された有効期限データに基づいて、イベントが生成される場合がある。他の実装は、注釈122が失効しているかを決定し、失効している場合、消去する、またはその他失効したと注釈122をマークするために、有効期限データを評価するために利用される場合もある。
【0048】
ルーチン300は、操作302で開始し、注釈データストア118内の第1の注釈122を特定するデータを記憶するために、処理されている最新の注釈122を記述するデータを記憶するための変数が初期化される。例えば、操作302で、注釈データストア118内の第1の注釈122のリソース識別子128が、変数内に記憶される場合がある。
【0049】
操作302から、ルーチン300は操作304に進み、最新の注釈122の有効期限時刻132が経過したかについての決定が行われる。有効期限時刻132が経過していた場合、ルーチン300は、操作304から操作308に進み、最新の注釈122が消去、または失効したとマークされる。操作308から、ルーチン300は、以下に記載するように、操作310に進む。
【0050】
操作304で、最新の注釈122の有効期限時刻132が経過していないと決定された場合、ルーチン300は、操作304から操作306へ進む。操作306で、最新の注釈122に指定された有効期限イベント134が発生したかについての決定が行われる。指定されたイベントが発生していた場合、ルーチン300は、操作306から操作308に進み、最新の注釈122が消去、または失効したとマークされる。操作308から、ルーチン300は、以下に記載するように、操作310に進む。
【0051】
操作306で、最新の注釈122の有効期限イベント134が発生していないと決定された場合、ルーチン300は、操作306から操作310へ進む。操作310で、注釈データストア118内に、処理されるべき任意の追加の注釈122が残っているかについての決定が行われる。残っている場合、ルーチン300は、操作310から操作312に進み、処理されている最新の注釈122を記憶する変数は、データストア118内の次の注釈122へ増分される。ルーチン300は次いで、操作312から操作304へ進み、次の注釈122が、上記の様式で処理される。処理されるべき追加の注釈122が残っていない場合、ルーチン300は、操作310から操作314に進み、終了する。
【0052】
上記に簡単に記載したように、
図3に示されるルーチン300は、注釈データストア118内に記憶された注釈122を失効させるために、定期的に実行される場合がある。例えば、この過程は、失効した注釈122が頻繁に消去、または失効とマークされることを確実にするために、15分または他の時間毎に実行される場合がある。これも上記に記載したように、有効期限時刻132または有効期限イベント134が発生する時刻に、またはその前後で注釈122を失効させるために、他のイベントベースの機構が利用される場合もある。他の機構も利用される場合がある。
【0053】
図4は、本明細書に示される一実施形態に従い、分散実行環境102内のリソース104の注釈122を呼び出すための、本明細書に開示される一機構の態様を示すコンピュータシステム図である。
図4に示され、上記に概略を記載したように、多様な構成要素は、リソース状態表示ツール108から、または注釈データストア118を維持し、その中に含まれる注釈122に対するリクエストに応答するように構成された他の構成要素から、リソース104の注釈122をリクエストすることができる。
【0054】
例えば、
図4に示される例において、リソースページ110内の注釈構成要素124は、注釈リクエスト402をリソース状態表示ツール108へ伝送している。注釈構成要素124は、存在する場合、リクエスト402に応答して返された注釈122を、ユーザーコンピューティングシステム114によってユーザー112に提示されたリソースページ110内に表示することができる。ワークフロー構成要素138等の他の構成要素もまた、注釈リクエスト402をリソース状態表示ツール108へ提出する場合がある。
【0055】
これも
図4に示されるように、注釈リクエスト402は、注釈122が返されるべきリソース104のリソース識別子128を含む。いくつかの実施形態において、注釈リクエスト402は、名前空間130も含む。以下にさらに詳細を説明するように、注釈リクエスト402とともに提供される名前空間130は、リクエスト402に応答して返される注釈122をフィルタリングするために利用される場合がある。具体的には、返される注釈122は、リクエスト402内のリソース識別子128と関連付けられ、かつリクエスト402内の名前空間と同じ名前空間130を有する注釈122に限定される場合がある。この過程に関する追加の詳細は、
図5を参照して以下に提供する。
【0056】
上記の機能を提供するために、リソース状態表示ツール108、または注釈データストア118を管理するように構成された別の構成要素は、注釈リクエスト402を受信し、かつ応答するための適切なインターフェースを
提供する場合がある。例えば、リソース状態表示ツール108は、注釈リクエスト402を受信かつ応答するためのウェブサービスAPIを
提供する場合がある。他の実施形態において、承認された構成要素は、注釈データストア118から直接注釈122を呼び出す場合がある。他の構成も利用される場合がある。
【0057】
図5は、本明細書に示される一実施形態に従い、分散実行環境102内のリソース104と関連付けられた注釈122に対するリクエスト402を処理するための一例示的ルーチン500の態様を示すフロー図である。ルーチン500は操作502で開始し、リソース状態表示ツール108、または注釈リクエスト402を処理するように構成された別の構成要素が、注釈リクエスト402を受信する。
図4を参照して上記に記載したように、注釈リクエスト402は、リソース識別子128及び名前空間130を含む場合がある。
【0058】
注釈リクエスト402を受信することに応答して、ルーチン500は操作504に進み、注釈リクエスト402を作成している構成要素が、特定されたリソース104のための注釈122を呼び出すための認可を有するかの決定が行われる。上記のように、構成要素が注釈122を読み出す、変更する、及び/または消去する能力を定義する認可136は、注釈122が作成された時点で指定される場合がある。認可136はまた、注釈122が作成される時点以外の時点で指定及び/または変更される場合もある。
【0059】
認可136が、注釈リクエスト402を提出した構成要素が、特定されたリソース104の注釈122を読み出す認可を有さないことを示す場合、ルーチン500は、操作504から操作506へ進む。操作506で、注釈リクエスト402が拒否されたことを示す応答が、注釈リクエスト402に返される。ルーチン500は次いで、操作506から操作514に進み、終了する。
【0060】
しかしながら、注釈リクエスト402を提出した構成要素が、注釈122を読み出す適切な認可を有する場合、ルーチン500は、操作504から操作508へ進む。操作508で、注釈リクエスト402に指定されたリソース識別子128によって特定されたリソース104に対して、任意の注釈122が存在するかに関して決定が行われる。特定されたリソース104のための注釈122が存在しない場合、ルーチン500は、操作508から操作510へ進み、リクエスト402に応答して、利用可能な注釈が全くないことを示す指標が返される。ルーチン500は次いで、操作510から操作514に進み、終了する。
【0061】
しかしながら、操作508で、注釈リクエスト402に指定されたリソース識別子128によって特定されたリソース104のための注釈122が存在すると決定された場合、ルーチン500は、操作508から操作512へ進む。操作512で、注釈リクエスト402に指定されたのと同じ名前空間130も有する、リソース識別子128と関連付けられた任意の失効していない注釈122が返される。他の実施形態において、失効した注釈122は、注釈が失効したことの指標122とともに返される場合もある。この様式で名前空間130を使用することによって、返された注釈122は、特定の種類の注釈122にフィルタリングすることができる。例えば、上記に説明したように、リソース104の動作問題に関する注釈122は、所定の名前空間130に割り当てられ、注釈構成要素124からのリクエストに応答して返される場合がある。同様に、ワークフローに関係する注釈122は、異なる名前空間130に割り当てられ、ワークフロー構成要素138からのリクエストに応答して返される場合がある。他の名前空間130もまた割り当てられ、他の構成要素からのリクエストに応答して返される場合もある。操作512から、ルーチン500は操作514に進み、終了する。
【0062】
図6は、本明細書に示される一実施形態に従い、分散実行環境102内のリソース104と関連付けられた注釈122を変更または消去するリクエストを処理するための一例示的ルーチン600の態様を示すフロー図である。
図6に示された機能性を提供するために、リソース状態表示ツール108、または別の構成要素は、他の構成要素が、注釈122、ならびに名前空間130、有効期限データ、及び/または認可136等のそれらに関連付けられたデータを変更及び/または消去するリクエストを提出することができる適切なインターフェースを提供する場合がある。例えば、構成要素がこのような消去及び/または変更リクエストを提出することができる、ウェブサービスAPIまたは別の種類のAPIが
提供される場合がある。
図6は、本明細書に開示される一実施形態に従い、これらのリクエストの処理を図示する。
【0063】
ルーチン600は、操作602で開始し、注釈122、または上記の注釈122および関連付けられたデータを消去または変更するリクエストが受信される。このようなリクエストを受信することに応答して、ルーチン600は、操作602から操作604に進み、リクエストを作成している構成要素が、リクエストされた変更または消去を実行する認可を有するかに関しての決定が行われる。一実施形態において、注釈122が変更または消去されるための認可136は、この決定を行うために利用されてもよい。
【0064】
認可136が、消去または変更リクエストを提出した構成要素がリクエストされた操作を実行する認可を有さないことを示す場合、ルーチン600は、操作604から操作606へ進む。操作606で、リクエストが拒否されたことを示す応答が、消去または変更リクエストに返される。ルーチン600は次いで、操作606から操作614に進み、終了する。
【0065】
しかしながら、操作604で、リクエストしている構成要素がリクエストされた変更または消去を実行する必要な認可を有すると決定された場合、ルーチン600は、操作604から操作608へ進む。操作608で、注釈122のリクエストされた変更または消去が実行される。ルーチン600は次いで、操作610に進み、実行された操作を記述するデータが、上記の様式においてログまたはジャーナルに記憶される。このように、注釈122及びそれらに関連付けられたデータの変更及び消去を記述するデータが記録される。上記のように、ユーザー112または構成要素は、この情報を多様な目的のために利用する場合がある。
【0066】
操作610から、ルーチン600は操作612に進み、成功メッセージが、消去または変更をリクエストした構成要素に返される。成功メッセージは、リクエストされた操作の実行に成功したことを示す。操作612から、ルーチン600は操作614に進み、終了する。
【0067】
上記の機能性を利用する多様な事例が可能になる場合があることを理解されたい。例えば、分散実行環境102のユーザー112は、コンピュータの操作ステータスに関係するコンピューティングリソース104のインスタンスを提供するために利用されたホストコンピュータの注釈122を定義する場合がある。具体的な例として、ユーザー112は、仮想マシンインスタンスを提供するために利用されたホストコンピュータが、誤動作していることを示す注釈122を定義し、ホストコンピュータのトラブルシューティングを記述する情報を定義する場合がある。
【0068】
上記の注釈122はまた、大規模のサービス中断に関与するホストコンピュータを追跡するために利用される場合もある。リソース104はまた、それらの製造者、業者、ソフトウェアまたはハードウェア改訂番号、及び可能性として他の類似の情報を示す注釈122を用いてタグ付けされる場合もある。他の実施形態において、注釈122を検索するための機能性も提供される場合がある。例えば、所定の関連付けられた注釈122及び/または名前空間130を有する全てのホストコンピュータは、このような検索を通じて特定される場合がある。いくつかの実施形態において、消去されていない失効した注釈が検索可能であってもよい。
【0069】
上記のように、所定の構成要素はまた、リソース104に関して実行されている特定のワークフローに関係するリソース104の注釈122を定義する場合もある。一特定例として、ワークフロー構成要素138は、分散実行環境102における故障または誤動作しているホストコンピュータを検出する場合がある。これに応答して、ワークフロー構成要素138は、ホストコンピュータが修理されることが必要であることを示す、ホストコンピュータと関連付けられた注釈122を作成する場合がある。
【0070】
ワークフロー構成要素138、または別の構成要素は、修理が必要であることを示す関連付けられた注釈122を有するホストコンピュータを検索する場合もある。ワークフロー構成要素138は次いで、修理ワークフロー中の異なる時点で、異なる注釈122をホストコンピュータと関連付けることができる。修理が完了すると、ワークフロー構成要素138は、上記の様式において、ワークフロー注釈122を失効させる場合がある。これらの例の事例は例示に過ぎず、上記の概念及び技術の使用を通じて他の事例が可能な場合があることを理解されたい。
【0071】
本開示の実施形態は、以下の付記を考慮して説明することができる。
付記1.
分散実行環境内のリソースを注釈するためのコンピュータによって実装される方法であって、方法が、
分散実行環境内のリソースと関連付けられた注釈を記憶するリクエストであって、リソースのリソース識別子と、注釈と、名前空間と、注釈の有効期限データとを含むリクエストを受信することと、
リクエストを受信することに応答して、リソース識別子と、注釈と、名前空間と、有効期限データとを記憶することと、
記憶された注釈を定期的に失効させるために、有効期限データを利用することと、
リソースと関連付けられた注釈に対するリクエストであって、リソースに対するリソース識別子と、名前空間とを含むリクエストを受信することと、
リクエストに応答して、リソース識別子と関連付けられ、リクエストに指定された名前空間に一致する関連付けられた名前空間を有する注釈を返すことと、のためのコンピュータによって実装される操作を実行することを含む、コンピュータによって実装される方法。
【0072】
付記2.
有効期限データが、有効期限時刻を含み、記憶された注釈を失効させることが、関連付けられた有効期限時刻が経過したときに注釈を失効させることを含む、付記項1に記載のコンピュータによって実装される方法。
【0073】
付記3.
有効期限データが、有効期限イベントを含み、記憶された注釈を失効させることが、有効期限イベントが発生した後に注釈を失効させることを含む、付記項1に記載のコンピュータによって実装される方法。
【0074】
付記4.
記憶された注釈を失効させることが、注釈を消去すること、または注釈を失効しているとマークすることを含む、付記項1に記載のコンピュータによって実装される方法。
【0075】
付記5.
注釈の各々が、1つ以上のユーザーまたは構成要素が注釈を読み出す、変更する、または消去する権利を特定する1つ以上の認可をさらに含む、付記項1に記載のコンピュータによって実装される方法。
【0076】
付記6.
リソースが、分散実行環境内のコンピューティングリソースのインスタンスを提供するために利用されるハードウェアリソースを含む、付記項1に記載のコンピュータによって実装される方法。
【0077】
付記7.
リソースが、ソフトウェアリソースを含む、付記項1に記載のコンピュータによって実装される方法。
【0078】
付記8.
リソースが、分散実行環境のユーザーまたは顧客を記述するデータを含む、付記項1に記載のコンピュータによって実装される方法。
【0079】
付記9.
名前空間が、ワークフローと関連付けられる、付記項1に記載のコンピュータによって実装される方法。
【0080】
付記10.
名前空間が、リソースの動作情報と関連付けられる、付記項1に記載のコンピュータによって実装される方法。
【0081】
付記11.
分散実行環境内のリソースを注釈するためのシステムであって、
注釈を分散実行環境内のリソースと関連付けることができるインターフェースを
提供し、
インターフェースによって、分散実行環境内のリソースと関連付けられた注釈を記憶するリクエストであって、リソースのリソース識別子と、注釈と、注釈の有効期限データとを含むリクエストを受信し、
リクエストを受信することに応答して、リソース識別子と、注釈と、有効期限データ戸を記憶するように構成された第1の構成要素を実行し、かつ、
注釈の有効期限データに基づいて、記憶された注釈を定期的に失効させるように構成された第2の構成要素を実行する、1つ以上のコンピュータシステムを備える、システム。
【0082】
付記12.
記憶された注釈を失効させることが、注釈を失効しているとマークすることを含む、付記11に記載のシステム。
【0083】
付記13.
記憶された注釈を失効させることが、注釈を消去することを含む、付記項11に記載のシステム。
【0084】
付記14.
有効期限データが、有効期限時刻を含み、記憶された注釈を失効させることが、関連付けられた有効期限時刻が経過したときに注釈を失効させることを含む、付記項11に記載のシステム。
【0085】
付記15.
有効期限データが、有効期限イベントを含み、記憶された注釈を失効させることが、有効期限イベントが発生した後に注釈を失効させることを含む、付記項11に記載のシステム。
【0086】
付記16.
リソースを記憶するリクエストが、注釈と関連付けられた名前空間をさらに含む、付記項11に記載のシステム。
【0087】
付記17.
名前空間が、ワークフローと関連付けられる、付記項16に記載のシステム。
【0088】
付記18.
名前空間が、リソースの操作情報と関連付けられる、付記項16に記載のシステム。
【0089】
付記19.
コンピュータによって実行されると、コンピュータに、
分散実行環境内のリソースと関連付けられた注釈に有効期限データを割り当てることと、
注釈を失効させるために割り当てられた有効期限データを利用することとを実行させる、その上に記憶されたコンピュータが実行可能な命令を有するコンピュータ可読記憶媒体。
【0090】
付記20.
有効期限データが、注釈の有効期限時刻を含み、注釈を失効させることが、有効期限時刻が経過した後に注釈を消去すること、または失効したと注釈をマークすることを含む、付記項19に記載のコンピュータ可読記憶媒体。
【0091】
付記21.
有効期限データが、注釈の有効期限イベントを含み、注釈を失効させることが、有効期限イベントが発生すると注釈を消去すること、または失効したと注釈をマークすることを含む、付記項19に記載のコンピュータ可読記憶媒体。
【0092】
付記22.
コンピュータによって実行されると、コンピュータに、注釈に名前空間を割り当てることと、注釈を呼び出すリクエストに対応する際に名前空間を利用することとを実行させる、その上に記憶されたコンピュータによって実行可能な命令をさらに有する、付記項19に記載のコンピュータ可読記憶媒体。
【0093】
図7及び以下の説明は、本明細書に記載される実施形態が実装されてもよい適切なコンピューティング環境の簡単な一般的な説明を提供することを目的とする。具体的には、
図7は、分散実行環境102を含む、例示的動作環境を示すシステム及びネットワーク図である。上記のように、分散実行環境102は、永続的にまたは必要な場合に応じて、コンピューティングリソース104Aのインスタンスを提供することができる。
【0094】
分散実行環境102によって提供されるコンピューティングリソースのインスタンスは、データ処理リソース、データストレージリソース、ネットワーキングリソース、データ通信リソース等の多様な種類のリソースを含むことができる。各種類のコンピューティングリソースは、汎用目的であってもよく、またはいくつかの特定の構成において利用可能であってもよい。例えば、以下にさらに詳細を記載するように、データ処理リソースのインスタンスは、いくつかの異なる構成において仮想マシンインスタンスとして利用可能であってもよい。仮想マシンインスタンスは、ウェブサーバー、アプリケーションサーバー、メディアサーバー、データベースサーバー、及び他の種類のアプリケーションを含む、アプリケーションを実行するように構成されてもよい。データストレージリソースのインスタンスは、ファイルストレージデバイス、ブロックストレージデバイス等を含むことができる。各種または構成のコンピューティングリソースのインスタンスは、多数のプロセッサ、大量のメモリ、及び/または大規模ストレージ容量からなる大規模リソース、ならびにより少数のプロセッサ、より少量のメモリ、及び/またはより小規模のストレージ容量からなる小規模リソース等、異なるサイズにおいて利用可能であってもよい。
【0095】
分散実行環境102によって提供されるコンピューティングリソースのインスタンスは、1つ以上のデータセンター704A〜704N(本明細書において、個別に「データセンター(単数)704」または総称して「データセンター(複数)704」と参照されてもよい)による一実装において有効である。データセンター704は、コンピュータシステム及び関連付けられた構成要素を収容し、操作するために利用される施設である。データセンター704は典型的に、冗長及びバックアップ電力、通信、冷却、ならびにセキュリティシステムを含む。データセンター704はまた、地理的に分散した場所に位置する場合もある。分散実行環境102内のリソースを注釈するための、本明細書に開示される概念及び技術のいくつかまたは全てを実装するデータセンター704の一例示的構成は、
図8を参照して以下に記載する。
【0096】
分散実行環境102のユーザー112は、広域ネットワーク(「WAN」)702等の適切なデータ通信ネットワーク上から、データセンター704によって提供されるコンピューティングリソースにアクセスすることができる。
図7にはWAN702が図示されるが、ローカルエリアネットワーク(「LAN」)、インターネット、またはデータセンター704をユーザーコンピューティングシステム114に接続する、当技術分野で周知の任意の他のネットワーキングトポロジーが利用されてもよいことを理解されたい。また、このようなネットワークの組み合わせが利用される場合もあることも理解されたい。
【0097】
図8は、リソース104を注釈するための、本明細書に開示される概念及び技術のいくつかまたは全てを含む、分散実行環境102の態様を実装する、データセンター704の一構成を図示するコンピューティングシステム図である。
図8に示される例示的なデータセンター704は、コンピューティングリソースのインスタンスを提供するための、いくつかのサーバーコンピュータ802A〜802F(本明細書において、単独で「サーバーコンピュータ(単数)802」または複数で「サーバーコンピュータ(複数)802」)として参照されてもよい)を含む。サーバーコンピュータ802は、本明細書に記載されるコンピューティングリソースを提供するために適切に構成された標準のタワーまたはラックマウント式サーバーコンピュータであってもよい。例えば、一実装において、サーバーコンピュータ802は、コンピューティングリソース104A〜104Nのインスタンスを提供するように構成される。
【0098】
一実施形態において、コンピューティングリソース104Aのインスタンスのうちのいくつかは、仮想マシンインスタンスである。当技術分野において周知のように、仮想マシンインスタンスは、物理的マシンのようにプログラムを実行するマシン(すなわち、コンピュータ)のソフトウェア実装のインスタンスである。サーバー802の各々は、コンピューティングリソースのインスタンスをインスタンス化し、管理することが可能であるインスタンスマネージャー808を実行するように構成されてもよい。仮想マシンインスタンスの場合、例えば、インスタンスマネージャー808は、例えば、単一のサーバーコンピュータ802状で複数の仮想マシンインスタンスの実行を可能にするように構成されるハイパーバイザまたは別の種類のプログラムの場合がある。
【0099】
本明細書に開示される実施形態は主に、仮想マシンインスタンスのコンテキストにおいて説明されるが、本明細書に開示される概念及び技術を用いて、他の種類のコンピューティングリソースのインスタンスを利用することが可能であることを理解されたい。例えば、本明細書に開示される技術は、ハードウェアリソースのインスタンス、データストレージリソースのインスタンス、データ通信リソースのインスタンス、ネットワーキングリソースのインスタンス、データベースリソースのインスタンスとともに、及び他の種類のコンピューティングリソースのインスタンスとともに利用される場合がある。
【0100】
図8に示されるデータセンター704はまた、データセンター704、サーバーコンピュータ802、コンピューティングリソース104のインスタンス、及び分散実行環境102内部の他のリソースの動作を管理するためのソフトウェア構成要素を実行するために予約されたサーバーコンピュータ802Fも含む。具体的には、サーバーコンピュータ802Fは、リソース監視構成要素106、リソース状態表示ツール108を実行し、1つ以上のリソースページ110を記憶する場合がある。これらの構成要素の各々の操作に関する詳細は上記に提供されている。この点に関して、これらの構成要素は、分散実行環境102内部で実行すると図示されるが、これらの構成要素のいくつかまたは全てを実行するために、分散実行環境102の外部にあるコンピューティングシステムも利用される場合があることを理解されたい。他の構成も利用される場合がある。
【0101】
図8に示される例示的データセンター704において、適切なローカルエリアネットワーク(「LAN」)804は、サーバーコンピュータ802A〜802E及びサーバーコンピュータ802Fを相互接続するために利用される。LAN804は、
図7に図示されるWAN702にも接続される。
図7及び8に図示される構成及びネットワークトポロジーは、大幅に簡素化されていること、本明細書に開示される多様なコンピューティングシステムを相互接続するために、多数のさらに多くのコンピューティングシステム、ネットワーク、及びネットワーキングデバイスが利用されてもよいことを理解されたい。適切な負荷バランスデバイスまたはソフトウェアモジュールもまた、データセンター704A〜704Nの各々の間、各データセンター704内のサーバーコンピュータ802A〜802Fの各々の間、及び分散実行環境102によって提供されるコンピューティングリソース104のインスタンスの間の負荷をバランスするために利用される場合がある。
【0102】
図8に記載されるデータセンター704は例示に過ぎず、他の実装も利用される場合があることを理解されたい。具体的には、本明細書において、リソース監視構成要素106及びリソース状態表示ツール108によって実行されると説明される機能は、相互に実行される場合、他の構成要素によって実行される場合、あるいはこれらのまたは他の構成要素の組み合わせによって実行される場合がある。加えて、これらの構成要素によって提供される機能は、ソフトウェア、ハードウェア、またはソフトウェア及びハードウェアの組み合わせにおいて実装される場合があることを理解されたい。当業者には他の実装が明らかであろう。
【0103】
図9は、分散実行環境102においてリソース104を注釈するための上記のプログラム構成要素を実行することが可能であるコンピュータ900の例示的コンピュータアーキテクチャを示す。
図9に示されるコンピュータアーキテクチャは、従来のサーバーコンピュータ、ワークステーション、デスクトップコンピュータ、ラップトップ、タブレット、ネットワーク機器、パーソナルデジタルアシスタント(「PDA」)、電子リーダー、デジタルセルラー電話、または他のコンピューティングデバイスを図示し、ユーザーコンピューティングシステム114上、データセンター704A〜704N内部、サーバーコンピュータ802A〜802F上、または本明細書に記載される任意の他のコンピューティングシステム上で実行すると記載される、本明細書において示されたソフトウェア構成要素の任意の態様を実行するために利用されてもよい。
【0104】
コンピュータ900は、多数の構成要素またはデバイスが、システムバスまたは他の電子通信経路によって接続されてもよい印刷回路基板である、ベースボード902、または「マザーボード」を含む。一例示的実施形態において、1つ以上の中央処理装置(「CPU」)904は、チップセット906とともに操作する。CPU904は、コンピュータ900の操作に必要な演算及び論理演算を実行する標準のプログラム可能なプロセッサであってもよい。
【0105】
CPU904は、これらの状態間を区別し、変更するスイッチ素子の操作を通じて、1つの個別の物理的状態から、次へ転位することによって演算を実行する。スイッチ素子は一般に、フリップフロップ等の2つのバイナリ状態のうちの1つを維持する電子回路、及び論理ゲート等の1つ以上の他のスイッチ素子の状態の論理的組み合わせに基づいて出力状態を提供する電子回路を含むことができる。これらの基本的なスイッチ素子は、レジスタ、加算器−減算器、演算論理装置、浮動小数点装置等を含む、より複雑な論理回路を作成するために組み合わされてもよい。
【0106】
チップセット906は、CPU904と、ベースボード902上の構成要素及びデバイスの残りとの間のインターフェースを提供する。チップセット906は、コンピュータ900のメインメモリとして使用される、ランダムアクセスメモリ(「RAM」)908へのインターフェースを提供することができる。チップセット906はさらに、コンピュータ900の起動を補助する基本的ルーチンを記憶するため、及び多様な構成要素及びデバイス間で情報を転送するための読み出し専用メモリ(「ROM」)910または不揮発性RAM(「NVRAM」)等のコンピュータ可読記憶媒体へのインターフェースを提供することができる。ROM910またはNVRAMは、本明細書に記載される実施形態に従い、コンピュータ900の操作のために必要な他のソフトウェア構成要素も記憶することができる。
【0107】
コンピュータ900は、ローカルエリアネットワーク804等のネットワークを通じて、遠隔のコンピューティングデバイス及びコンピュータシステムへの論理接続を使用するネットワーク接続環境において動作することができる。チップセット906は、ギガビットイーサネットアダプタ等のNIC912を通じてネットワーク接続性を提供するための機能性を含むことができる。NIC912は、コンピュータ900を、ネットワーク804上から他のコンピューティングデバイスへ接続することが可能である。複数のNIC912がコンピュータ900に存在してもよく、コンピュータを他の種類のネットワーク及び遠隔のコンピュータシステムへ接続することを理解されたい。
【0108】
コンピュータ900は、コンピュータのために不揮発性記憶装置を提供する、大容量記憶装置デバイス918へ接続されてもよい。大容量記憶装置デバイス918は、システムプログラム、アプリケーションプログラム、他のプログラムモジュール、及びデータを記憶することができ、本明細書にさらに詳細を記載した。大容量記憶装置デバイス918は、チップセット906に接続されたストレージコントローラ914を通じて、コンピュータ900に接続されてもよい。大容量記憶装置デバイス918は、1つ以上の物理的記憶装置からなることができる。ストレージコントローラ914は、シリアル接続SCSI(「SAS」)インターフェース、シリアルアドバンスト技術接続(「SATA」)インターフェース、ファイバーチャンネル(「FC」)インターフェース、またはコンピュータと物理的記憶装置との間を物理的に接続し、データを伝送するための他の種類のインターフェースを通じて、物理的記憶装置とインターフェースすることができる。
【0109】
コンピュータ900は、記憶されている情報を反映するために、物理的記憶装置の物理的状態を変換することによって、大容量記憶装置デバイス918上にデータを記憶することができる。物理的状態の特定の変換は、この記述の異なる実装において、多様な因子に依存することができる。このような因子の例として、物理的記憶装置を実装するために使用された技術、大容量記憶装置デバイス918が一次または二次記憶装置として特徴付けられるか等を挙げることができるが、これらに限定されない。
【0110】
例えば、コンピュータ900は、磁気ディスクドライブ装置内部の特定の場所の磁気特性、光学式記憶装置内の特定の場所の反射または屈折特性、あるいはソリッドステート記憶装置内の特定のキャパシタ、トランジスタ、または他の離散構成要素の電子特性を変更するために、ストレージコントローラ914を通じて命令を発行することによって、大容量記憶装置918に情報を記憶することができる。本発明の範囲及び精神を逸脱することなく、本発明を促進するためにのみ提供された前述の例を用いて、物理的媒体の他の変換が可能である。コンピュータ900はさらに、物理的記憶装置内部の1つ以上の特定の場所の物理的状態または特性を検出することによって、大容量記憶装置デバイス918から情報を読み出すことができる。
【0111】
上記の大容量記憶装置デバイス918に加えて、コンピュータ900は、プログラムモジュール、データ構造、または他のデータ等の情報を記憶し、呼び出すために、他のコンピュータ可読記憶媒体へのアクセスを有することができる。コンピュータ可読記憶媒体は、非一時的データの記憶を提供し、かつコンピュータ900によってアクセス可能である、任意の有効な媒体にすることができることが当業者によって理解されるであろう。
【0112】
例としてであって、限定ではなく、コンピュータ可読記憶媒体は、任意の方法または技術において実装された、揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を含むことができる。コンピュータ可読記憶媒体として、RAM、ROM、消去可能プログラム可能ROM(「EPROM」)、電子的に消去可能プログラム可能ROM(「EEPROM」)、フラッシュメモリまたは他のソリッドステートメモリ技術、コンパクトディスクROM(「CD−ROM」)、デジタル多用途ディスク(「DVD」)、高解像度DVD(「HD−DVD」)、BLU−RAY(登録商標)、または他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは非一時的様式において所望される情報を記憶するために使用することができる任意の他の媒体が挙げられるが、これらに限定されない。
【0113】
大容量記憶装置デバイス918は、コンピュータ900の操作を制御するために利用されるオペレーティングシステム930を記憶することができる。一実施形態に従い、オペレーティングシステムは、LINUXオペレーティングシステムを含む。別の実施形態に従い、オペレーティングシステムは、MICROSOFT社のWINDOWS(登録商標)SERVERオペレーティングシステムを含む。さらなる実施形態に従い、オペレーティングシステムは、UNIX(登録商標)またはSOLARISオペレーティングシステムを含むことができる。他のオペレーティングシステムも利用されてもよいことを理解されたい。大容量記憶装置デバイス918は、リソース監視構成要素106、リソース状態表示ツール108、ならびに/または上記の任意の他のソフトウェア構成要素及びデータ等、コンピュータ900によって利用される他のシステムまたはアプリケーションプログラム及びデータを記憶することができる。大容量記憶装置デバイス918はまた、本明細書に具体的に特定されていない、他のプログラム及びデータも記憶する場合がある。
【0114】
一実施形態において、大容量記憶装置デバイス918または他のコンピュータ可読記憶媒体は、コンピュータ900にロードされると、汎用目的のコンピューティングシステムのコンピュータを、本明細書に記載される実施形態を実装することが可能である特殊目的のコンピュータに変換する、コンピュータが実行可能な命令で符号化される。これらのコンピュータが実行可能な命令は、上記のように、CPU904がどのように状態間を遷移するかを指定することによって、コンピュータ900を変換する。一実施形態に従い、コンピュータ900は、コンピュータ900によって実行されると、
図2、3、5、及び6を参照して上記に説明した多様なルーチンを実行する、コンピュータ実行可能命令を記憶するコンピュータ可読記憶媒体へのアクセスを有する。
【0115】
コンピュータ900はまた、キーボード、マウス、タッチパッド、タッチ画面、電子スタイラス、または他の種類の入力デバイス等、いくつかの入力デバイスから入力を受信し、処理するための1つ以上の入力/出力コントローラ916も含むことができる。同様に、入力/出力コントローラ916は、コンピュータモニタ、フラットパネルディスプレイ、デジタルプロジェクタ、プリンタ、プロッタ、または他の種類の出力デバイス等、ディスプレイへの出力を提供することができる。コンピュータ900は、
図9に示される構成要素の全てを含まなくてもよく、
図9に明示的に示されない他の構成要素を含んでもよく、または
図9に示されるものとは完全に異なるアーキテクチャを利用してもよいことが理解されるであろう。
【0116】
前述に基づいて、分散実行環境内のリソースを注釈するための技術が本明細書に示されたことを理解されたい。その上、本明細書に示される主題は、コンピュータ構造機能、方法論的動作、及びコンピュータ可読媒体に特異的な言語において記載されたが、添付の請求項に定義される本発明は必ずしも本明細書に記載される特定の機能、動作、または媒体に限定されないことを理解されたい。そうではなく、特定の機能、動作、及び媒体は、請求項を実装する例示的な形式として開示される。
【0117】
上記の主題は、図示のみによって提供され、制限として解釈されてはならない。さらに、請求される主題は、本開示のいずれかの部分に記される任意または全ての不利を解決する実装に限定されない。多様な変形及び変更は、図示及び記載の例示的実施形態及び適用に従うことなく、以下の請求項に記載される、本発明の真の精神及び範囲を逸脱することなく、本明細書に記載される主題に行われてもよい。