(58)【調査した分野】(Int.Cl.,DB名)
1つまたは複数の属性の前記第3の集合が、前記特定の構成アイテムに関連付けられていると前記決定することが、(a)プログラムインターフェースを介して修正要求を受信すること、または(b)リソース使用状況相関分析を実行することのうちの1つまたは複数を含む、請求項3に記載の方法。
前記エンドポイント検出アルゴリズムが、(a)一連の接続確立及び接続終了の要求を発行することと、(b)連続するネットワークパケットの受信間の遅延と、連続するネットワークパケットの送信間の遅延を照合することと、(c)パケットシーケンス番号を分析することのうちの1つまたは複数を含む、請求項6に記載の方法。
【発明を実施するための形態】
【0005】
実施形態が、いくつかの実施形態及び例示の図面の例として本明細書に記載されている一方で、当業者は、実施形態が記載される実施形態または図面に限定されないことを認識するであろう。それらについての図面及び詳細な説明は、実施形態を特定の開示される形式に限定することを意図しておらず、逆に、その意図は、添付の特許請求の範囲によって定義される精神及び範囲内にあるすべての修正物、同等物、及び代替物をカバーすることである。本明細書で使用される表題は、構成を目的としているにすぎず、詳細な説明または請求項の範囲を限定するために使用されることを意味していない。この出願全体を通じて使用されるように、用語「may」は、必須な意味(すなわち、〜しなければならないを意味する)ではなく、許容的な意味(すなわち、〜する可能性があるを意味する)で使用される。同様に、単語「include(含む)」、「including(含む)」、及び「includes(含む)」は、「含むが、その対象を限定しない」ことを意味する。特許請求の範囲で使用されるとき、単語「or(または)」は、は包括の「または」として使用され、排他の「または」としては使用されない。例えば、句「x、yまたはzのうちの少なくとも1つ」は、x、y及びzのいずれか1つ、及びそれらの任意の組み合わせを意味する。
【0006】
アプリケーションの移行に関する意思決定を行う際のネットワークアクセス可能検出サービスで実施されるインテリジェント構成検出技術のための方法及び装置の様々な実施形態、構成情報の自動的に更新されたビューを提供するための視覚化技術、ならびに検出サービスの顧客及び移行ファシリテーターを支援する移行マーケットプレイスサービスが説明される。高レベルで、構成検出サービスは(他の機能の中でも)、構成アイテム(アプリケーションを構成する物理的または仮想化された計算サーバ、記憶デバイス、データベース、ソフトウェアスタック構成要素など)の自動検出、様々なデータソースによって収集された生のデータに基づくアプリケーションパターンの分散、構成アイテムへの一意の識別子の割り当て、相互作用(例えば、トランザクション、ネットワークトラフィックフローなど)の追跡、アイテム間の依存関係、経時的なアプリケーション構成の変化、及び複雑なアプリケーション実行環境のための望ましい粒度のレベルでのパフォーマンス監視などを可能にし得る。構成検出サービスは、構成アイテムがアプリケーションを形成する構成要素であるため、一部の環境では、アプリケーション検出サービスまたはリソース検出サービスとも呼ばれ得る。構成検出サービスは、構成関連クエリへの応答を取得するためにサービスクライアントによって使用することができる、及び移行マーケットプレイスサービス及び高レベルの機能を提供する視覚化サービスを含む他のサービスによってビルディングブロックとして使用することもできる、様々なプログラムインターフェース(例えば、ウェブサービスアプリケーションプログラムインターフェース、コマンドラインインターフェースなど)を実施し得る。いくつかの実施形態では、構成検出サービスに関連付けられた、または構成検出サービスの一部である視覚化サービスは、例えば、顧客が、使用されている特定のクライアント側表示環境に適合したアプリケーション実行環境のカスタマイズされた表現を見ることができ、視覚化インターフェースを介して構成関連のクエリを発行し、及び/またはあるリソースのセットから別のリソースのセットへの部分的または完全なアプリケーション移行を開始することができ得る、構成検出サービスのクライアントに対する相互作用の主なモードの1つとして機能し得る。様々な実施形態では、移行マーケットプレイスは、例えば、クライアント設備からクラウドベースのコンピューティング環境へ、またはあるクラウドベースの環境から別のクラウド環境へアプリケーションを移動するために、クライアントが適切な移行ファシリテーターを識別できるようにする、及び移行ファシリテーターが候補者クライアントを識別するための仲介サービスとして機能し得る。
【0007】
少なくともいくつかの実施形態では、サービスの一部または全部をプロバイダネットワークで実施し得る。インターネット及び/または他のネットワークを介して、分散しているクライアントのセットにアクセス可能な(様々な種類のクラウドベースのコンピューティングまたはストレージサービスなどの)1つまたは複数のサービスを提供するために、企業または公共部門の組織などのエンティティによって設定されたネットワークは、本明細書では、プロバイダネットワークと称され得る。プロバイダネットワークは、「パブリッククラウド」環境と呼ばれることもあり得る。プロバイダネットワークのリソースは、場合によっては、複数のデータセンターに分散され得て、データセンターは多数の都市、州、国に分散され得る。構成検出サービス、視覚化サービス、及び/または移行マーケットプレイスサービスは、特定のプロバイダネットワーク内で実施され得る一方で、これらのサービスの一部または全部は、他のプロバイダネットワークから(例えば、異なる事業組織によって運営されるプロバイダネットワークから)の情報にアクセスするための適切なアクセス権が承認され付与され得ることに留意されたい。例えば、運用者O1によって実行されるプロバイダネットワークPN1で実行している構成検出サービスは、運用者O2によって実行されるプロバイダネットワークPN2から(ならびにクライアント所有のデータセンター及びPN1の独自のデータセンターなどの他の設備から)収集された構成データを収集することができ得て、PN1で実行している視覚化サービスにより、クライアントは、PN2で実行している構成要素を含む分散アプリケーションアーキテクチャを見ることができ得て、及び/またはPN1で実行している移行マーケットプレイスサービスは、PN2で実行している構成要素をPN1に移行するために、移行ファシリテーターに関する情報をクライアントに提供でき得る。いくつかの実施形態では、視覚化サービス及び/または移行マーケットプレイスサービスは、構成検出サービスのサブ構成要素として実施され得る。構成検出サービスは、本明細書では単に検出サービスとも呼ばれ得る。
【0008】
構成検出サービスでは、構成レコードのリポジトリを構築するために、多種多様なデータソースを使用し得る。例えば、いくつかの実施形態では、データソースは、(構成データが、プログラムインターフェース経由で一括してインポートされることがあり得る)クライアントデータセンターの既存の構成管理データベース、様々なリソースで構成検出サービスのためにインストールされたエージェントまたは構成データコレクタ、サードパーティ製または業界標準の構成管理ツールなどを含み得る。各データソースは、例えば、構成アイテムのいくつかのセットに対するいくつかの属性と値とのペアを含む、構成情報を1つまたは複数の時点で構成検出サービスに提供し得る。いくつかのデータソースは、一定の間隔で生の構成データを提供し得て、他のデータソースは、少なくともいくつかの実施形態でイベント駆動型であり得る。様々な実施形態のサービスで(例えば、サービスのためにインストールされたエージェントを介して)値が取得される構成アイテム属性は、とりわけ、ユーザ情報(例えばユーザ名及びホームディレクトリなど)、グループ情報(例えばグループ名やグループメンバーシップなど)、インストールされたソフトウェアパッケージ/プログラムのリスト、及びカーネルモジュールのリストを含み得る。(関連付けられたプロセス識別子を含む)プロセスの作成/終了、ドメインネームサービス(DNS)クエリ及び応答、ネットワークスタックの様々な層でのパケットの送受信など、いくつかの異なるタイプの構成関連イベントに関する情報はまた、少なくともいくつかの実施形態で収集し得る。(例えば、使用されているイーサネット(登録商標)、サポートされている最大帯域幅、関連付けられたメディアアクセス制御またはMACアドレスなどのネットワーク相互接続のタイプを含む)物理的及び/または仮想的なネットワークインターフェースの様々な属性の値は、対象の実行環境のデバイスから収集し得る。様々なリソースで使用されているTCP(伝送制御プロトコル)またはUDP(ユーザデータグラムプロトコル)ポートなどの特定のネットワークポートを識別し得て、TCPバージョン4またはバージョン6の接続属性(接続のいずれかの端のプロセスの識別子、接続確立時間、接続が開いたままの期間など)を収集し得る。例えば、様々なホスト及び仮想マシンで使用されているオペレーティングシステムの特定のバージョンを含む、オペレーティングシステム関連の属性が、いくつかの実施形態で収集され得る。異なる実施形態では、システムパフォーマンス及びプロセスパフォーマンスメトリックを様々な間隔で収集し得る。いくつかの実施形態では、検出サービスの複数のエージェントを、所与のホストまたはデバイスにインストールして、1つまたは複数の構成アイテムの構成属性値のそれぞれのサブセットを収集し得て、他の実施形態では、単一のエージェントまたはツールは、いくつかの異なるソースから属性値を抽出することができ得る。
【0009】
構成検出サービスは、それぞれの粒度のレベルで、及びそれぞれのスケジュールに従って、様々なデータソースから収集された、期限切れの、競合する及び/または曖昧な可能性のある生の構成情報のコンバイナ及びキュレータとして機能し得る。異なるデータソースから、いくつかの実施形態では、構成検出サービスは、結合され、選別された構成レコードを生成し格納する役割を果たし得て、そのような結合レコードは、視覚化及び移行マーケットプレイスサービス(または検出サービスに依存する他のサービス)の構成データの信頼できるソースとして機能し得る。少なくともいくつかの実施形態では、構成検出サービスは、サービスによって定義されたオントロジーに少なくとも部分的に基づいて、一意のサービス側識別子を生成して、それぞれの構成アイテムに割り当て得る。例えば、所与のハードウェアサーバは、(経時的に変化し得る)サーバのIPアドレスの1つに基づいてあるデータソースによって、サーバ名またはMAC(メディアアクセス制御)アドレスに基づいて別のデータソースによって、分散アプリケーション内のサーバによって果たされる役割(例えば、「ウェブサーバ」または「データベースサーバ」)に基づいて第3のデータソースによって、識別され得る。データソースは、それぞれ、構成検出サービスに提供された生の構成データ内のサーバに対するそれぞれの識別子/名前を含み得る。そのような識別子は、本明細書ではデータソース側識別子と呼ばれ得る。構成検出サービスは、1つまたは複数の異なるデータソースから受信した生の構成データを検査し、(生のデータの属性値のサブセットを考慮に入れ得る)定義されたオントロジー及び命名規則に基づいてサーバの一意のサービス側識別子を生成し得る。
【0010】
一意のサービス側識別子は、データソースによって使用される識別子/名前の少なくともいくつかとは異なり得る。生の構成データの新しいセットが、サービスで受信または分析されると、サービスは、少なくともいくつかの実施形態では、生のデータに一意の識別子が存在しないにもかかわらず、生のデータの少なくとも一部が適用される一意に識別された構成アイテムを決定することができ得る。いくつかの実施形態では、サービスは、データソース提供の識別子と一意のサービス側識別子との間のマッピングを維持し、そのようなマッピングに関連付けられた曖昧性(例えば、データソースが所与の構成アイテムの識別子を変更した場合に生じ得る曖昧性)を解決する役割を果たし得る。曖昧性は、例えば、ある期間にわたって他のデータソースから受信した生の構成データに関する相関分析に基づいて、クライアントのフィードバックに基づいてなど、異なる実施形態で様々な機構を使用して解決し得る。一例のシナリオでは、例えば、2つの個別の一意のサービス側識別子が、最初は同じ構成アイテムに、(誤って)割り当てられ得る。例えば、2つの異なるデータソースから受信したそれぞれの生の構成データセットDS1及びDS2に基づいて、その結果、それぞれ個別のサービス側識別子を有する2つの異なる結合構成レコードR1及びR2が、サービスリポジトリに格納され得る。後で、例えば、1つまたは複数の追加の生のデータセットを処理した後、及び/またはクライアントとのプログラムインターフェースを介した相互作用の後に、エラーを検出して訂正し得る。すなわち、サービスは、値がR2に格納されている属性は、実際にはR1に対応する基礎となる構成要素の属性であると決定し得る。そのような判定は、例えば、リソース使用情報の分析に基づいて行われ得る。R1とR2に関連付けられた2つの構成アイテムが、異なるハードウェアサーバであると誤って仮定されているが、2つのアイテムのCPU使用率レベルまたはネットワークパケット流出に関する収集されたメトリックが、ある期間にわたって非常に類似している、または同一であることが判明した場合、レコードR1及びR2は、同じサーバを参照するものとして識別され得る。そのようなシナリオでは、R2に格納された情報の一部は、R1を更新するために使用され得て、R2は削除され得る(または逆に、R1の情報は、R2を変更するために使用され得て、次いでR1が削除され得る)。少なくとも1つの実施形態では、誤り訂正APIが検出サービスによって実施され、クライアント(及び/またはプロバイダネットワーク運用者の専門サービスアナリスト、コンサルタント、またはパートナーなどの他の権限を持つエンティティ)がそのような誤りについてサービスに通知でき得る。そのようなAPIを介して提供される訂正は、様々な実施形態でより広範にサービス業務を改善するために使用され得る。例えば、所与のサービス顧客の構成データの所与のセットに関してある権限を持つエンティティによって行われた訂正は、一般化され、同じ顧客または他の顧客の他の構成データの他のセットに関して行われた潜在的なエラーを検出及び訂正するために使用され得る。
【0011】
少なくともいくつかの実施形態では、構成検出サービスは、それぞれの信頼スコアを異なるデータソースに関連付け得て、そのような信頼スコアは、競合する、または期限切れの可能性がある構成データ要素のセットのうちのどれを受け入れるかを決定するときに使用され得る。信頼スコアは、経時的に変化し得る。例えば、クライアントデータセンターを表すクライアントの構成管理データベースのダンプが、サービスで取得された場合、クライアントのデータベースの初期の信頼スコアは高い値に設定され得るが、時間が経過し、クライアントデータセンターで構成の変更が発生すると、スコアが低下し得る。信頼スコアは、少なくともいくつかの実施形態で、生の構成データから結合構成レコードを生成するときに使用され得る。例えば、高信頼性データソースから取得された属性値は、低信頼性データソースから取得された属性値よりも結合レコードに高い確率で含まれ得る。現在の信頼スコアTS1を有するデータソースDS1からの属性値V1が、より高い現在の信頼スコアTS2を有する異なるデータソースDS2からの属性値V2と矛盾または競合するシナリオでは、より高い信頼スコアを有するソースからの属性値(この場合はV2)は、結合構成レコードに含まれ得て、より低い信頼スコアを有するソースからの属性値は除外され得る。少なくともいくつかの実施形態では、経時的に信頼スコアを生成し、更新するために、機械学習技術が使用され得る。
【0012】
アプリケーション構成要素の自動パターンベースのグループ化及びタグ付け、難読化仲介を介して受信されたネットワークパケットのソースを検出し、関連性スコアを構成アイテムに関連付けるアルゴリズム、クエリへの応答性を高めるために使用されるデータモデル及びプリロード技術などを含む、構成検出サービスの動作の様々な態様に関する追加の詳細が以下に提供される。視覚化サービス及びマーケットプレイス移行サービスについては、検出サービスの詳細について説明した後で説明する。
【0013】
システム環境の実施例
図1は、少なくともいくつかの実施形態による、マルチデータセンターアプリケーションのためのインテリジェント構成検出サービスを実施し得る例示的なシステム環境を示す。図示されるように、システム100は、描写される実施形態では、プロバイダネットワーク102A及び102B、ならびに顧客設備ネットワーク172などの複数のプロバイダネットワークを含み得る。各プロバイダネットワーク102内で、1つまたは複数のネットワークアクセス可能なサービスは、それぞれのプロバイダネットワーク運用者によって実施され得る。例えば、プロバイダネットワーク102Aは、構成検出サービス104、仮想化コンピューティングサービス132、及び潜在的な顧客がプロバイダネットワーク102Aの外部の実行環境からプロバイダネットワーク102Aにアプリケーションを移行するために利用し得る1つまたは複数の移行関連サービス130を含む。移行関連サービスの詳細は、以下に提供される。プロバイダネットワーク102Bは、仮想コンピューティングサービス132で使用されるよりも仮想化コンピューティングサーバに対する異なる手法が利用され得る、それ自体の仮想化コンピューティングサービス192を含み得る。例えば、異なるタイプのハイパーバイザまたは仮想化管理ソフトウェアスタックが使用され得て、仮想マシンの取得及び使用などのために、異なるプログラムインターフェースのセットがサポートされ得る。
【0014】
いくつかの分散アプリケーションは、描写される実施形態では、プロバイダネットワーク102A及び102B及び/または顧客設備ネットワーク172のリソースを使用して、様々な顧客のために実行され得る。所与のアプリケーションまたは関連付けられたアプリケーションのセットに使用されるリソースのセットは、本明細書ではアプリケーション実行環境(AEE)144と呼ばれ得る。所与のAEEは、例えば、仮想及び/または物理コンピューティングサーバ、記憶デバイス、ネットワークデバイス、多層ソフトウェアスタックなどの広範囲のリソースを含み得る。リソースの少なくともいくつかは、構成情報(例えば、属性値の集合)のそれぞれのセットが収集され、構成検出サービス104内に格納される構成アイテム(CI)136を含み得る。一般的に言えば、構成検出サービス及びそのクライアントの観点から、構成アイテム136は、構成設定及び/または状態情報が1つまたは複数のアプリケーションを管理するのに有用であり得る、及び構成検出サービスによってプログラムインターフェースを介して取得することができる、任意の物理的、仮想的または論理的エンティティを含み得る。例示的な構成アイテムは、とりわけ、仮想化されていないハードウェアサーバ、仮想マシン、ソフトウェアプロセスまたは関連プロセスの集合、回転磁気ディスクまたはソリッドステートドライブ(SSD)などの記憶デバイス、ルータなどのネットワークデバイスなどを含み得る。いくつかの実施形態では、構成検出サービスは、所与の構成アイテム136に関する構成データのそれぞれのデータセットを、例えば、一定の間隔で、または指定されたイベントの発生に応答して、1つまたは複数の構成データソース(CDSrcs)134から繰り返し取得し得る。後者のシナリオでは、サービス104に格納された構成データは、構成アイテムの複数のタイムスタンプ付きレコードを含み得る。様々な実施形態では、例えば、構成検出サービス104のためにインストールされるソフトウェア及び/またはハードウェアエージェント、業界標準構成管理ツール、カスタム構成管理ツール、顧客構成管理データベースなど、いくつかの異なるタイプの構成データコレクタまたはソースを使用し得る。
【0015】
AEE144AまたはAEE144Cなどの一部のAEEは、所与のネットワークの境界内にリソースを含み得る。AEE144Aは、顧客設備ネットワーク172の構成アイテム136Q、136R及び136Sを含み、AEE144Cは、プロバイダネットワーク102Bの構成アイテム136I及び136Jを含む。他のAEEは、複数のネットワーク及び/またはデータセンターに分散された構成アイテムを含み得る。例えば、AEE144Bは、プロバイダネットワーク102Aの構成アイテム136A〜136D、及びプロバイダネットワーク102Bの構成アイテム136Hを含む。少なくともいくつかの実施形態では、経時的にAEE144及びAEEの構成アイテムが配置されているネットワークとの間のマッピングが変更され得ることに留意されたい。例えば、1つまたは複数の構成アイテムが、異なるプロバイダネットワークに、顧客設備ネットワークからプロバイダネットワークに、またはプロバイダネットワークから顧客設備ネットワークに移行され得る。
【0016】
描写される実施形態では、各ネットワークは、構成検出サービス104と通信し得る、複数の構成データソース134を含み得る。例えば、プロバイダネットワーク102Aは、構成アイテム136A〜136Fの構成データセットを取得して、サービス104に送信することに対して連帯して役割を果たす構成データソース134A〜134Cを含む。同様に、プロバイダネットワーク102Bは、構成アイテム136H〜136Lに関する報告を行う役割を果たすデータソース134E〜134Gを含み、顧客設備ネットワーク172は、構成アイテム136N及び136P〜136Sに関する構成データセットをサービス104に送信する役割を果たすデータソース134H及び134Iを含む。場合によっては、所与の構成データソース134は、複数の構成アイテム136に関する構成データを収集する役割を果たし得て、他の場合には、構成データソース134は、単一の構成アイテム136を報告し得る。少なくともいくつかの構成アイテム136では、構成データセットは、例えば、ソフトウェア/ハードウェアスタックのそれぞれの粒度レベルで、及び/またはそれぞれのレイヤで、複数の構成データソース134によって収集され得る。いくつかの実施形態では、所与の構成データソース134は、例えば、構成アイテムを表すサーバで実行されているプロセスまたは実行スレッドとしての構成アイテム136のサブ構成要素であり得る。例えば、データソース134Gは、構成アイテム136Lの一部として示されている。いくつかの構成データソースは、既存の構成管理ツールのサブ構成要素を含み得る。例えば、描写される実施形態では、顧客の構成管理データベース167は、サービス104に報告するためのデータソース134Gを含む。
【0017】
構成検出サービス104は、描写される実施形態では、プログラムインターフェース150の1つまたは複数のセットを実施し得て、これらのいずれも、例えば、アプリケーションプログラミングインターフェース(API)、ウェブベースのコンソール、コマンドラインツール及び/またはグラフィカルユーザインターフェースを含み得る。クライアントフェイシングプログラムインターフェース150Aは、例えば、アプリケーション実行環境144に関連付けられた構成データの収集権限を識別及び/または付与するために、(例えば、以下にさらに詳細に説明するような視覚化サービスを使用して)サービス104によって収集された構成情報を表示するために、クライアントのフィードバックを必要とし得るイベントまたは条件に関する通知を取得するために、などのために顧客によって使用され得る。データ収集のセット及び/またはサービス側プログラムインターフェース150Bは、描写される実施形態では、構成データソース134とサービス104との間の相互作用のために、及びサービス104の収集された構成データを使用して、移行関連サービス130及び/または他のサービスによる追加の機能を構築するために使用され得る。
【0018】
構成検出サービス104は、描写される実施形態では、以下に説明するように、構成レコードリポジトリ108、生の構成データを結合する/曖昧性を解消するための役割を果たす構成要素110、及び/またはデータソース134に、それぞれの信頼スコアを割り当てる/変更する、及び/または構成レコードに関連スコアを割り当てる/変更するための役割を果たす1つまたは複数のスコアリング構成要素112など、いくつかのサブ構成要素を含み得る。少なくともいくつかの実施形態では、サービスは、以下に説明するように、異なるパフォーマンス機能及び/またはデータモデルを有する、いくつかのデータストアを含み得る。例えば、構成レコードは、中央リポジトリ108からの低遅延キャッシュに予めロードされ、予想されるタイプのクエリに対する応答性を向上させ得る。
【0019】
構成データソース134は、描写される実施形態では、構成検出サービス104に様々なフォーマットで、異なる間隔で生の構成データセットを提供し得る。場合によっては、1つまたは複数の構成アイテム136に関してサービス104で受信された生のデータは、古くなっている、または期限切れ、または不正確であり得る。さらに、異なるデータソース134によって提供される生のデータセットで構成アイテムを識別する方法は、場合によっては矛盾する場合がある。例えば、所与のハードウェアサーバ構成アイテムが複数のIPアドレスを有する場合、異なる構成データソースによって、(「データセンターDC1のルーム3のラックR1のサーバ5」などの)名前または位置によって、または他のデータソースによって、異なるIPアドレスを使用してサーバを参照し得る。構成検出サービス104は、描写される実施形態では、様々な技術を使用して生の構成データセットを結合し、曖昧性を解消し選別する役割を果たし得る。そのような技術の1つでは、生の構成データのセットを受信すると、サービス104は、データが周知の構成アイテム136(構成データが以前にサービスで受信され記録されたアイテム)を参照しているかどうかを識別しようと試行し得る。新たに受信したデータが周知の構成アイテムに対応していないと思われる場合、命名規則またはアルゴリズムは、サービス104で定義されたオントロジー及び/または生のデータに示される構成アイテムの1つまたは複数の属性値に少なくとも部分的に基づいて、生のデータが対応する構成アイテムの一意のサービス側識別子を生成するために使用し得る。一意のサービス側識別子は、少なくともいくつかの実施態様では、生のデータセットのデータソースによって使用される識別子とは異なり得る。実際には、そのような実施態様では、サービス104は、データソースが報告した識別子と一意のサービス側識別子との間のマッピングを維持する役割を果たし得る。後続の生のデータセットがサービスで受信されると、いくつかの実施形態では、結合/曖昧性解消構成要素110は、そのようなマッピングを利用し、及び/または生の構成データと、これまでにあったデータとの相関を使用して、生のデータセットが適用される構成アイテムを識別し得る。いくつかの実施形態では、所与の構成アイテム136に割り当てられたサービス側識別子は、サービス104に格納された構成レコードの集合全体内で一意であり得て、他の実施形態では、識別子は特定の構成ドメインまたは名前空間(例えば、所与の顧客に関連付けられたドメインまたは名前空間)内で一意であり得る。
【0020】
一意のサービス側識別子を生成するために、構成アイテムに関する利用可能な構成データが分析及び使用される方法は、異なる実施形態で異なり得る。一実施形態では、異なるデータソースごとに、XML(拡張マークアップ言語)、JSON(JavaScript(登録商標) Object Notation)、プレーンテキスト、またはCBOR(Concise Binary Object Representation)などのバイナリフォーマットで提供され得る生の構成データは、最初に解析され、共通フォーマットに正規化され得る。いくつかの名前空間内の一意性に関連付けられたキーワード(インターネットプロトコルアドレスの場合は「IPAddr」、またはメディアアクセス制御アドレスの場合は「MACAddr」など)に対して提供された属性値の検索は、生のデータまたは正規化されたデータ内で実行され得て、検索の結果は、一意のサービス側識別子(例えば、「DBServer.<DBVendorName>.<IP address>」)を生成するために、オブジェクトタイプ名(例えば、「データベースサーバ」または「仮想化ホスト」)と結合/連結され得る。一実施形態では、構成アイテムの一意のサービス側の名前を生成するプロセスを改善するために、機械学習技術が使用され得る。例えば、識別子を生成するための機械学習モデルは、プロバイダネットワーク(例えば、構成検出サービスが実行される同一のプロバイダネットワーク)の仮想化されたコンピューティングサービスの様々な構成要素から収集された大規模な匿名化された構成データセットを使用して訓練し得る。モデルの初期バージョンによって行われた命名決定の一部には、例えば、同じ基礎となる構成アイテムに2つの異なる一意の識別子が付与され得る、または2つの構成アイテムに同じ識別子が付与され得る、などの誤りがあり得る。経時的に、より大きい入力データセットでモデルの訓練が進行するにつれて、誤り率は減少し得る。
【0021】
少なくともいくつかの実施形態では、それぞれの信頼スコアがそれぞれの構成データソース134に(例えば、スコアリング構成要素112によって)割り当てられ、実際には、競合する可能性がある2つのソースのうちのどれが、所与の時点でより正確である可能性が高いのかを決定するために使用され得る。例えば、いくつかのデータソースは、インストールされる前にプロバイダネットワーク102Bの運用者の要員によって設計、開発、及びテストされた検出サービス104のエージェントを含み得るが、他のデータソースに関連付けられた起点及び/または試験レベルはあまり知られ得ない。後者のシナリオでは、よりよく知られた、またはより理解されたデータソースに高い信頼スコアが割り当てられることがあり得る。いくつかの実施形態では、所与のデータソースの信頼スコアは、値が考慮されている属性、または属性値が生成されたソフトウェア/ハードウェアスタックのレベルに基づいて変化し得る。例えば、データソースDS1及びDS2は、所与のプログラムまたはプロセスのCPU使用率に関するそれぞれのメトリックC1及びC2をそれぞれ提供し得る。DS1が、ハイパーバイザ層でCPU使用率測定値C1のバージョンを収集し、DS2はオペレーティングシステムによって提供されるツールを使用してバージョンC2を収集する場合、2つのソースからのCPU使用率属性値には、異なる信頼スコアを割り当て得る。複数のデータソースが同じ属性に対してそれぞれの値を提供し得る少なくともいくつかの実施形態では、各データソース(または{データソース、属性}のペア)に現在の信頼レベルを示すそれぞれの重みを割り当て得て、重みは、検出サービスによって使用され、保存される属性の最終的な値を決定するために使用され得る。一実施形態では、同じ構成アイテム136に対応する2つの異なる生のデータセットが、それぞれのデータソース134から受信され、一方の生のデータセットの少なくとも1つの属性値が、他方の生のデータセットに示される属性値と競合または矛盾する場合、より低い信頼スコアを有するデータソースの競合する属性値を除外した結合構成レコードが生成され、リポジトリ108に格納され得る。異なるデータソース134の信頼スコアは、いくつかの実施形態では、時間加重され得る。例えば、あるデータソースCDSrc1によって生の構成データが時刻T1に収集され、別のデータソースCDSrc2によって時刻T2(T2はT1よりも遅い)で見かけ上競合する生のデータが収集された場合、より最近に収集された生のデータが、より信頼できるとみなされ得る。結合/曖昧性解消構成要素110によって生成された結合データレコードは、様々な実施形態では、(例えば、顧客からの、またはプロバイダネットワーク102Aの他のサービスからの)プログラムインターフェース150A及び/または150Bを介して受信される構成クエリに応答を提供するために使用され得る。
【0022】
少なくともいくつかの実施形態では、データソース134から受信した生の構成データを選別するまたは結合することに加えて、検出サービス104の構成要素は、共に分散アプリケーションパターンに対応する構成アイテムのグループに自動的に識別する、そのようなグループ内の役割をそれぞれの構成アイテムに割り当てる、仲介デバイスによってソースが難読化され得るネットワークトラフィックのトラフィックソース検出アルゴリズムを実施する、高機能クエリ処理をサポートするための構成データを事前に準備するなどの、いくつかの他の機能を実行し得る。これら及びその他の機能の詳細は、以下に提供される。
【0023】
前述のように、少なくともいくつかの実施形態では、構成検出サービスは、構成アイテムのオントロジーを定義し利用し得る。
図2は、少なくともいくつかの実施形態による、構成情報を編成するために使用され得る検出サービスオントロジーの例示的な構成要素を示す。オントロジー202は、描写される実施形態では、複数のオブジェクトタイプ、及び各オブジェクトタイプに対応する1つまたは複数の属性のリストを含み得る。所与の構成アイテムの所与の属性リストの属性の少なくともいくつかのそれぞれの値は、様々な構成データソースによって構成検出サービスに送信される生の構成データセットに含まれ得る。オントロジー及び生の属性値は、様々な実施形態では、構成アイテムのための一意のサービス側識別子を生成するために使用され得る。例えば、いくつかの実施形態では、いくつかの属性値(そのうちのいくつかは異なるデータソースから取得され得る)を、サービス生成のテキスト識別子プレフィックスと連結することによって、構成アイテムの一意のサービス側識別子を構成し得る。
【0024】
例えば、オブジェクトタイプ204Aは、物理的なホストまたはサーバに対応する。対応する属性リスト205Aは、CPUタイプ、CPUまたはコアの数、現在割り当てられているホスト名、ハイパーバイザ(インストールされている場合)、オペレーティングシステム情報の様々な要素(OSdata)、1つまたは複数のIPアドレスなどを含み得る。205Aなどの属性リストの所与の属性の値は、それ自体、いくつかの個別のデータ要素を含み得る。例えば、「CPUタイプ」属性は、CPU、CPUベンダ、CPUのクロック周波数、モデル名などによってサポートされる命令セットアーキテクチャに関する情報を含み得る。
【0025】
オブジェクトタイプ204Bは、プロセス(すなわち、サーバでの実行の単位)を表す。プロセスの属性リスト205Bは、とりわけ、プロセスの名前、プロセスを呼び出すために使用されるコマンドライン、プロセスに使用される実行可能ファイルの場所及び/またはプロセスのホームディレクトリに対応するホストのオペレーティングシステムでのパス(例えば、ディレクトリパスまたはフォルダパス)、プロセスのスレッドの数などを含み得る。
【0026】
オブジェクトタイプ204Cは、ネットワーク接続(この例では、伝送制御プロトコル/インターネットプロトコルまたはTCP/IPスイートを使用して確立されると仮定される)を表す。属性リスト205Cは、ソース及び(例えば、接続を確立するためにconnect()呼び出しを発行したエンドポイントとして識別されるソースを有する)宛先IPアドレス(それぞれsrcIP及びdestIP)、ソース及び宛先プロセス識別子(それぞれsrcProcess及びdestProcess)及び/または宛先ポート(destPort)を含む。
【0027】
オブジェクトタイプ204Dは、特定の技術ベンダV1から取得した仮想化フレームワークを使用して生成された仮想マシンに対応する。仮想マシンの属性リスト205Dは、ベンダ定義の仮想マシン識別子(VMID)、仮想マシンを実行している、または実行していたデータセンター、及び仮想マシンを現在実行している、実行を予定している、または実行していたホストの識別子を含む。
【0028】
いくつかの他のオブジェクトタイプは、様々な実施形態では、オントロジー202内に定義され得る。例えば、いくつかの実施形態では、それぞれのオブジェクトタイプは、記憶デバイス、データベースインスタンスなどのエンティティ、ロードバランサ/ルータなどのネットワークデバイスなどに定義され得る。一実施形態では、それぞれのオブジェクトタイプは、リソースの地理的グループまたは他のグループに定義され得る。例えば、データセンターは、それ自体のオブジェクトタイプを有し得て、サーバラックは、それ自体のオブジェクトタイプを有し得る。いくつかの実施形態では、オントロジーは、例えば、いくつかのプロセスは、所与のホストで実行され得て、したがって、ホスト内に含まれ得る、アプリケーションのマスタープロセスは、マスターの子プロセスとして指定され得る様々なプロセスを起動し得るなど、様々なオブジェクト間の階層関係または包含関係を定義し得る。オントロジーの様々なエンティティ間の関係は、少なくともいくつかの実施態様では、オブジェクト指向の方法で定義され得る。
【0029】
結合及び選別される構成レコード
図3は、少なくともいくつかの実施形態による、それぞれの信頼スコアを有する複数のデータソースから生の構成情報を結合して、選別属性値リストを生成する例を示す。描写される実施形態では、所与の構成アイテムに関するデータセット320A、320B、及び320Kを含む複数の生の構成データセット320が、それぞれのデータソース310(例えば、データソース310A、310B、及び310K)によって検出サービスに送信される。各生の構成データセット320は、それぞれの属性値リスト325を含む。例えば、所与のホストの場合、属性及びそれらに対応する値は、「Name:Host100」、「IP Address:a.b.c.d」、「operating system: <OSVersion>」などを含み得る。少なくともいくつかの実施形態では、すべての属性値が必ずしも単一の構成アイテムに対応し得ない。例えば、1つまたは複数の構成データソースが複数の構成アイテムを報告し得る。異なるデータセット320は、異なる粒度レベルを表し得る。例えば、あるデータセットは、発行または受信されたデータベーストランザクションの数などのアプリケーションレベルの情報を含み得て、別のデータセットは、送信または受信されるネットワークパケットの数などの下位レベルの詳細を含み得る。2つの異なるデータソースによって送信された生の構成データのいくつかは、異なる時間に対応し得る。例えば、データセット320Aは、データセット320Kとは異なる時間に収集され得る。場合によっては、所与の構成アイテムに関する2つ以上の属性値が互いに競合し得る。例えば、あるデータセットは、あるホストH1でプロセス識別子PID1を有する特定のプロセスが、異なるホストと通信するための役割を果たしていたことを示し得て、別のデータセットは、別のプロセス識別子PID2を有するプロセスが、そのような通信のための役割を果たしていたことを示し得る。いくつかの実施形態では、構成データソースの少なくともいくつかは、データを検出サービスに提供する構成アイテムのためのそれぞれの識別子を生成し、これらの識別子をデータセット320に含め得る。そのような識別子は、検出サービスによって生成された識別子と区別するために、データソース側識別子と呼ばれ得る。2つのデータソースは、個別のデータソース側の識別子を使用して同じ基本構成アイテムを参照することがあり得る。例えば、あるデータソースは、名前(例えば、「hostK.<domainname>」)によってホストを参照し得て、別のデータソースは、IPアドレスによって同じホストを参照し得て、別のデータソースは関数(例えば、「database server DBS1」)によって参照し得る。
【0030】
描写される実施形態では、構成検出サービスの結合/曖昧性解消構成要素360は、すべての生の構成データセット320を検査及び処理し、データセット320に生のデータが含まれる1つまたは複数の構成アイテムに対応する、それぞれの結合構成レコード350を更新(または作成)し得る。2つの異なるソースからの2つの生の構成データセットを結合するために使用され得るアルゴリズムは、一実施形態では、以下のステップの少なくともいくつかを含み得る。最初に、それぞれのデータセットが、同じタイプの構成アイテム(
図2のオントロジー202内のObjectTypeとして定義されているホスト、プロセス、仮想マシンなど)に関する属性値を含むかどうかについての判定が行われ得る。そのためには、いくつかの実施形態では、属性名は、検出サービスのオントロジーでの様々な構成アイテムに対して定義された属性リスト(例えば、
図2のAttrLists205)と比較し得る。属性リストは、場合によっては、同義語を示し得る。例えば、同じ属性名は、あるデータソースによってAttrName1という名前によって識別され、別のデータソースによってAttrName2という名前によって識別される。両方のデータセットが、同じ構成アイテムタイプに関する少なくともいくつかの属性値を含むと決定された場合、これらの<属性:値>のペアは、相関、一致または重複について検査され得る。例えば、両方のデータセットが、(a)ホストでのCPU使用率が特定の時間間隔中に約75%であり、(b)そのホストからその時間間隔中に2500UDPパケットが送信されたことを示す場合、これにより、同じホストに対して異なるデータソース側の識別子が使用されたとしても、データセットが同じホストを参照していることを示すものとして解釈され得る。そのような一致が(いくつかの最小信頼レベルで)検出された場合、ホストの単一の結合レコードを作成する決定が行われ得る。そうでない場合は、2つのデータセットは、2つの異なるホストを参照するとみなされ得て、個別の結合レコードが生成され得る。単一の結合レコード内には、一方または両方のデータセットから取得された<属性:値>ペアのサブセットが含まれ得る。例えば、それらに含まれる情報は、含まれる他の属性値から推測可能であるため、または同じデータのより正確なデータソースが分かっているため、冗長/重複した属性値は破棄され得て、いくつかの属性値は結合レコードに含まれ得ない。データセットに含まれるデータの種類に応じて、場合によっては、既存の結合構成レコードの1つまたは複数の要素または属性値が、新しい結合構成レコードを生成する代わりに更新(または新しい属性が既存の結合構成レコードに追加)され得る。
【0031】
結合構成レコード350は、単一の生の構成データ320から提供することができる特性よりも、多くの構成アイテムの完全な特性をしばしば提供し得る。結合構成レコード350は、描写される実施形態では、生のデータセット320に示された、それぞれのデータソース側識別子とは異なり得て、構成検出サービスのオントロジー及び/または生の構成データセットの要素に少なくとも部分的に基づいて生成され得る、構成アイテムの一意のサービス側識別子352を含み得る。少なくともいくつかの実施形態では、結合構成レコード350は、構成アイテムに関するすべての属性値リスト325の結合を必ずしも含む必要のない、選別属性値リスト354を含み得る。代わりに、例えば、結合/曖昧性解消構成要素は、値が古くなっているため(例えば、値が他のソースから取得された同じ基礎となる属性に対してより新しい値に置き換えられたため、または単に値が収集された時間と値が処理される時間との差が閾値を超えたため)、1つまたは複数のデータソースからいくつかの属性値を破棄し得る。いくつかの実施形態では、異なるデータソースのそれぞれの信頼スコア315(例えば、スコア315A〜315K)はまた、または代わりに所与の属性値を結合構成レコードに含めるかどうかを判定するために使用され得る。信頼スコアは、2つの異なるデータソースが同じ属性に対応する生のデータを提供する場合に特に有用であり得る。そのようなシナリオでは、より高い信頼スコアを有するソースによって提供される属性値が優先され得る。各生のデータセット320が、データがいつ収集されたかを示す関連付けられたタイムスタンプを有するいくつかの実施形態では、タイムスタンプ及び信頼スコアの両方を考慮に入れる(実際には、時間加重信頼スコアが得られる)式は、どの属性を選別属性値リスト354に含めるべきかを選択するために使用し得る。
【0032】
いくつかの実施形態では、所与のアイテムまたは生のデータセット320内のアイテムが関係する構成アイテムが不明である場合、構成検出サービスの結合/曖昧性解消構成要素360は、パターンマッチング手法を利用して構成アイテムを識別し得る。例えば、生のデータセット320B及び320Kの両方が、いくつかの構成アイテムの所与の時間間隔にわたって、近似のアウトバウンドネットワークトラフィックについて報告し、データセット320Bが、構成アイテムのホスト名を含むが、データセット320Kは含まないという簡単なシナリオを検討する。この簡単な例のシナリオでは、結合/曖昧性解消構成要素360は、同様の期間の他のデータセットの属性値と一致するデータセット320Kに含まれる属性値を検索しようと試行し得る。アウトバウンドネットワークトラフィックレートが、データセット320Kと320Bとの間で、ある閾値レベルの正確さ、または精度に一致する場合、(矛盾する証拠がなければ)2つのデータセットは、同じ基本構成アイテムを参照するものと想定し得る。
【0033】
前述のように、様々なプログラムインターフェースが、様々な実施形態の構成検出サービスで使用され得る。
図4は、少なくともいくつかの実施形態による、構成検出サービスで実施し得る例示的なアプリケーションプログラミングインターフェースを示す。(生の構成データセットをサービスに提供するために使用される)構成データ取込インターフェースの4つの例が示され、(サービスに対して行われたクエリに対する応答を取得するために使用される)構成データ使用インターフェースの一例が示される。
【0034】
少なくとも1つの実施形態では、構成検出サービス460は、例えば、大量の情報をクライアントの構成管理データベース410からサービスに転送するために使用され得る一括インポート/エクスポートのアプリケーションプログラミングインターフェース(API)415Aを提供し得る。少なくともいくつかの実施形態では、サービスは、構成データを取得する様々な物理デバイスまたは仮想デバイスにインストールし得る、いくつかの異なるソフトウェアエージェント412を(例えば、ダウンロードによって)提供し得る。そのようなエージェントは、サービスと通信するために、エージェントAPI415Bを使用し得る。様々な実施形態では、エージェント412の少なくともいくつかは、特定のイベント(例えば、X秒に1回、CPU使用率収集イベントがサーバでスケジュールされ得る)に関してデータを収集し得て、その結果、エージェントのAPI415Bを介して一度に送信されるデータの量は、エクスポート/インポートAPI415Aを介して転送されるデータの量に比べて比較的少なくなり得る。
【0035】
いくつかの実施形態では、構成検出サービスは、例えば、簡易ネットワーク管理プロトコル(SNMP)、Windows管理インストルメンテーション(WMI)、またはWBEM(ウェブベースエンタープライズ管理)を利用するツールを含む、様々な構成ツール414から生の構成データを受け入れ得る。ツール固有のAPI415Cは、そのようなツールと構成サービス検出との間の相互作用のために実施され得る。汎用レポートAPI415Dは、いくつかの実施形態では、開発及び展開され得るカスタムデータソース416(すなわち、エージェント自体ではなく、サードパーティの構成ツールと関連付けられておらず、クライアント構成管理データベースと提携していないデータソース)のために実施され得る。
【0036】
検出サービスの結合構成情報を使用するエンティティに対して、いくつかの異なるクエリAPI416を実施し得る。そのようなエンティティは、視覚化サービス及び/または移行マーケットプレイスサービスまたは移行計画サービスを含む1つまたは複数の移行関連サービスなどのプロバイダネットワークの他のサービス、ならびに構成検出サービスのプロバイダネットワークの顧客を含み得る。いくつかのクエリAPI416は、構造化クエリ言語(SQL)などの周知のクエリ言語の変形を利用し得る。一実施形態では、OpenTSDBによってサポートされる言語などの時系列指向のクエリ言語を、テンポラル構成関連のクエリに使用し得る。
【0037】
パターンベースのグループ化及び役割の割り当て
図5は、少なくともいくつかの実施形態による、構成アイテムが果たす役割を自動的に検出するために検出サービスで使用され得るアプリケーションアーキテクチャパターンの例を示す。様々な実施形態では、サービスは、構成アイテムをグループ化するために使用されるアプリケーション、ソフトウェア、及び/またはハードウェア構成パターンを検索するためのクエリをサポートし得る。描写される実施形態では、構成検出サービスの構成アイテムグループ記述子データベース590は、510Aまたは510Bなどのいくつかのグループ記述子510を含み得る。各グループ記述子510は、「3層ウェブアプリケーション」または「段階的分割及び結合アプリケーション」、ならびにアプリケーションまたは関連付けられた一連のアプリケーションを集合的に実施する様々なエンティティ間の関係の表現などの、それぞれのパターン名577(例えば、577Aまたは577B)を含み得る。
【0038】
各エンティティは、アプリケーションパターン内で特定の論理的役割を果たし得て、異なる役割が割り当てられたエンティティによって提示されると予想される通信動作は、グループ記述子510に示され得る。例えば、グループ記述子510Aは、ロードバランサ(LB)役割511、ウェブサーバ役割512、アプリケーションサーバ(Appserver)役割513、及びデータベースサーバ(DBserver)役割514の4つの役割を定義する。511A〜511Cなどの1つまたは複数のロードバランサは、記述子510Aに対応する構成アイテムのグループのインスタンスの512A〜512Nなどの、1つまたは複数のウェブサーバとネットワークパケットを介して相互作用し得る。それぞれのウェブサーバ512はまた、1つまたは複数のアプリケーションサーバ513(例えば、513A〜513K)と相互作用し得て、各アプリケーションサーバは、514A〜514Jなどの1つまたはバックエンドのデータベースサーバと相互作用し得る。グループ記述子510Bでは、役割は、タスクをサブタスクに細分化するための役割を果たすTaskSplitter551、サブタスクを実行するための役割を果たすフェーズ1のワーカー552、フェーズ1のタスクの結果を収集し、フェーズ2の分析の結果を分割するための役割を果たすフェーズ1のResultCombiners553、分割された結果を分析するための役割を果たすフェーズ2のワーカー554、フェーズ2の分析の結果を収集するFinalResultCombiner555を含み得る。少なくともいくつかの役割に対応する構成アイテムの具体的な数は、グループインスタンスごとに異なり得る。例えば、単一のTaskSplitter、フェーズ1のResultCombiner及びFinalResultCombinerエンティティは、記述子510Bに対応する構成アイテムグループ内でインスタンス化され得るが、フェーズ1のワーカーまたはフェーズ2のワーカーとして構成される構成アイテムの数は、記述子の実施例ごとに異なり得る。
【0039】
いくつかの実施形態では、検出サービスのクライアントは、プログラムインターフェースを介して記述子510の表現をサービスに送信し得て、サービスは、記述子に示されたパターンを示す構成アイテムの対応する例を識別し得る。所与の記述子510は、アプリケーションに関連付けられた構成アイテムの予想される相互接続トポロジ、アプリケーションに関連付けられた予想されるアイテム名リスト(例えば、プロセス名またはパス)、及び/または、アプリケーションに関連付けられた一対の構成アイテム間の予想される通信パターン(例えば、特定のタイプの要求/応答動作、または初期化/終了ハンドシェイク手順を表すパケットの交換)など、分散アプリケーションの様々な態様の表示を含み得る。サービスは、構成アイテムによって果たされる役割を決定するために、様々な構成アイテムの観察された動作を記述子要素に一致させようと試行し得る。例えば、
図5に示す実施形態では、様々なデータソースからの収集された構成データを使用して、サービスは、結合構成レコード580Aによって表される、一意のサービス側識別子582Aを有する構成アイテムが、ItemGroupID586Aによって識別されるグループテンプレートの1つの特定のインスタンス(例えば、4層ウェブアプリケーションのインスタンス1)内のItemGroupRoleID588Aによって示される役割(例えば、ウェブサーバの役割)を果たしていると判定し得る。結合構成レコード580Bによって表されるアイテムなどの他の構成アイテムは、必ずしも所与のパターンまたはグループ記述子に関連付けられた役割を果たし得ない。そのような構成アイテムのフィールドItemGroupRoleID及びItemGroupIDは、描写される実施形態ではNullに設定され得る。ItemGroupRoleID及びIetmGroupIDに使用されるラベルは、いくつかの実施形態では、同じ役割を果たすか、または同じ動作パターンを示す複数の構成アイテムを参照するための「タグ」として使用され得る。そのようなタグは、検出サービスのクライアントによって要求された様々なオペレーションのオペランドを識別するために使用され得る。例えば、クエリ「タグ「Webserver」を使用してデータセンターDC1のすべての構成アイテムを一覧表示する」またはコマンド「データセンターDC1のタグ「DBserver」を使用してデータセンターDC2への構成アイテムの自動移行を開始する」という論理等価は、クライアントによって発行され得る。クライアントは、いくつかの実施形態では、様々な構成アイテムのタグをプログラムによって指定し得て、そのようなタグは検出サービスによって使用され、より大きなパターンまたはグループ記述子を識別し得る。一実施形態では、検出サービスのある顧客によって示されるパターン及び/またはタグは、他の顧客の構成アイテム間で役割をグループ化及び割り当てるための検出サービスによって(例えば、パターン/タグを提供した顧客の許可を得て)使用され得る。
【0040】
難読化されたネットワークトラフィックソースの自動検出
多くのアプリケーションでは、ネットワークアドレス変換(NAT)デバイス、ポート変換デバイスなどのネットワーク仲介は、所与のパケットの真のソースが、それらのパケットの宛先に関連付けられた構成データソースに対して直ちに検出され得ないような方法でネットワークパケットを修正することがあり得る。
図6は、少なくともいくつかの実施形態による、構成検出サービスでのネットワークパケットのソースアイデンティティ検出アルゴリズムの使用を示す。そのようなソースアイデンティティ検出アルゴリズムは、本明細書ではソースエンドポイント検出アルゴリズムとも呼ばれ得る。図示されるように、描写される実施形態では、トラフィックソースエンドポイント610からの(検出サービスで構成アイテムとして表現可能であり得る)パケットセット622は、トラフィック宛先エンドポイント628に対して、1つまたは複数のアドレス難読化仲介612を介して送信され得る。アドレス難読化仲介は、逆方向、例えば、エンドポイント628からエンドポイント610へのトラフィックにも使用し得る。宛先及びソースエンドポイントの両方に、それらに関連付けられた1つまたは複数の構成データソースがあり、構成データを検出サービスに送信する役割を果たし得る。しかし、単一の仲介612または複数の仲介612によって実行される難読化動作(例えば、パケットヘッダ変更、包囲パケット内のカプセル化など)のために、(送信パケットセット622に対応する)受信パケットセット623の送信者のアイデンティティは、宛先エンドポイント628に関連付けられたデータソース(複数可)に対して不明であり得る。顧客のためにエンドポイント610及び628で使用されている検出サービスの観点から、または一方または両方のエンドポイントに関する構成情報を取得する別のサービス(例えば、移行関連サービス)の観点から、送信者のアイデンティティを検出することが重要であり得る。
【0041】
いくつかの技術のうちのいずれかが、受信パケットセット623の送信者のエンドポイントを識別するために、検出サービスによって使用され得る。少なくとも1つの実施形態では、サービスからコマンドを発行することができる、それぞれのデータソースが、2つのエンドポイントで実行されている場合、特別なパケットシーケンス655は、エンドポイント検出アルゴリズムの一部として、1つの難読化仲介612または複数の難読化仲介612を介して、エンドポイント628からエンドポイント610に発行され得る。例えば、正確にTミリ秒間隔のN個の「余分な」パケット(通常のアプリケーショントラフィックの一部ではない)は、エンドポイント628に関連付けられたデータソースによってパケットシーケンス655で発行され、エンドポイント610を含む様々な他のエンドポイントのデータソースは、そのような正確に間隔を置いたパケットの着信トラフィックを実際に監視し得る。エンドポイント間のパスにネットワーキングのボトルネックまたは問題がないと仮定すると、エンドポイント610でのデータソースが、受信した余分なパケットの到着間隔時間をエンドポイント628でのデータソースの送信間隔時間と一致させることが可能であり得て、それによって、合理的に高い確率でパケットセット623の送信者のアイデンティティを確立し得る。いくつかの実施形態では、様々なパケットのIPアドレス及び/またはポートが仲介612で難読化され得るが、パケットのシーケンス番号は変更され得ず、パケットのシーケンス番号は、エンドポイント検出アルゴリズムのパケットのソースを識別するために、受信者及び送信者のデータソースでの一致について分析され得る。一実施形態では、接続確立要求のシーケンスと、その後にすぐに続く接続終了要求は、エンドポイント628からエンドポイント610に発行され、そのような通常とは異なる管理要求のパターンが、エンドポイント検出アルゴリズムのパケットソースを識別するために使用され得る。一実施形態では、エンドポイント628で実行しているサービスエージェントなどのデータソースは、エンドポイント610で実行している(別のサービスエージェントなどの)データソースにサービス側の一意のサービス側識別子の要求を発行し得て、一意のサービス側識別子は、送信者を識別するために使用され得る。送信者を検出するために使用される特定のエンドポイント検出アルゴリズムに関係なく、送信者が識別された後、送信者のアイデンティティを示す結合構成レコードは、様々な実施形態で更新され得る。
【0042】
関連性スコア
図7は、少なくともいくつかの実施形態による、関連性スコアを構成アイテムに割り当てるために構成検出サービスで使用され得る例示的な要素を示す。関連性スコアは、構成アイテムに対して行われたクエリに対する少なくとも初期応答を決定するために使用され得る。例えば、「ホストH1で実行中のプロセスを一覧表示する」などの一般的なクエリに対する応答は、閾値を上回る関連性スコアが割り当てられたプロセスを含み得て、それによって、応答の合計サイズが減少し、ノイズの多いまたは情報の少ない応答を回避し得る。
図7に示される特定の例示的な要素はプロセスに適用されるが、同様の手法は、様々な実施形態で他のタイプの構成アイテムに関しても行われ得る。
【0043】
所与の物理的または仮想化された計算サーバは、通常、多くのリソースを使用せず、バックグラウンドタスクを実行するか、または、通常とは異なる状況に応答するために(例えば、オペレーティングシステムレベルまたはカーネルレベルで)使用される、多くの下位レベルまたはバックグラウンドプロセスを含む、何百ものプロセスを含み得る。そのようなプロセスの多くは、所与のバージョンのオペレーティングシステムのすべてのインスタンスに存在し得る。例えば、50台のLinux(登録商標)サーバを含む実行環境では、同様のデーモンプロセスのセットが、50台のサーバすべてで実行され得る。構成サービスのデータの少なくとも一部の使用者は、アプリケーション固有のプロセスに関心があり、したがって、既定では、必ずしもすべてのサーバのプロセスリストに表示され得ない。したがって、構成サービスは、関連性スコア割り当てアルゴリズム710で、異なるホストまたはサーバでの所与の頻度の繰り返し頻度712を考慮に入れ得て、すべてのホスト(またはほぼすべてのホスト)で実行されるプロセスは、より低い関連性を割り当てられる。最近のCPU使用率714、ネットワークポート使用状況716(例えば、プロセスが1つまたは複数のネットワークポートを介してトラフィックを送信または受信しているかどうか)及び/またはI/Oデバイス使用状況718などのプロセスのリソース使用状況レベルは、描写される実施形態では、関連性スコアとそれぞれ正の相関を有し得る。例えば、非常に低いレベルのリソースを使用する傾向がある、及び/またはネットワークから切断されているプロセスは、関連性が低いと考えられ得る。少なくともいくつかの実施形態では、構成検出サービスは、所与の種類のプロセス(例えば、「httpd」という名前のプロセスに対して行われたクエリ)を特に対象とする(例えば、所与のクライアント、クライアントの集合、またはすべてのクライアント/使用者のいずれかからの)クエリの数を追跡し得る。クエリ履歴メトリック724はまた、プロセスの関連性を決定するために使用され得る。例えば、X日前以内に名前または役割によって、具体的にプロセスに対して行われたクエリがあった場合、高い関連性スコアをプロセスに割り当て得る。
【0044】
描写される実施形態では、アルゴリズム710によって生成された関連性スコアは、プロセスを少なくとも2つのカテゴリ、すなわち、描写される実施形態では、選択された閾値より高いスコアを有する「より興味深い」プロセス730、及び閾値以下のスコアを有する「興味のない」プロセス732に分類またはランク付けするために使用され得る。所与のプロセス関連クエリが、すべてのプロセスを応答に含めることを指定していないか、または「興味のない」プロセスとして分類される特定のクエリに関する情報を特に要求しない限り、描写される実施形態では、より興味深いプロセスのリストは、クエリ応答を準備するために使用され得る。同様のヒューリスティック手法は、少なくともいくつかの実施形態では、他のタイプの構成アイテムに関するクエリへの応答をクレンジングまたは短縮するために使用され得る。様々な実施形態では、
図1に示すスコアリング構成要素112は、関連スコア、信頼スコアなどを生成するために機械学習技術を利用し得る。
【0045】
構成クエリパフォーマンスの向上
検出サービスの多くの顧客は、大規模なアプリケーション実行環境を有し得て、いくつかのデータセンターに分散された数千の構成アイテムを含む可能性があり得る。アプリケーション構成要素の構成の最近の変更、及び/またはアプリケーション構成要素のパフォーマンスまたは動作の最近の傾向は、しばしば、古い構成データよりも、そのような顧客にとっては大きな関心事になり得る。経時的に、所与のアプリケーション実行環境の検出サービスで収集され格納される構成データの総量が非常に大きくなり得て、特に、いくつかの従来のデータモデルが最適化され得ないテンポラルクエリに関しては、クエリ応答性が低下する可能性があり得る。
図8は、少なくともいくつかの実施形態による、テンポラルクエリに対する応答性を向上させるために構成検出サービスで使用され得る技術の概要を示す。
【0046】
データソース802によって取得された生の構成データセット871は、前述したように、構成アイテムの1つまたは複数の一意のサービス側識別子にそれぞれ関連付けられた、タイムスタンプ付き結合構成レコード872を生成または更新するために、検出サービスの結合構成要素804で使用され得る。結合構成レコード872は、描写される実施形態では、一連の永続検出サービスリポジトリ810の一部を形成する自動スケーリング分割データストア820に格納され得る。各パーティションは、一実施態様では、Mギガバイトなどの選択された最大量の構成レコードデータを含み得て、検出サービスの各クライアントは最初に1つのパーティションに割り当てられる。クライアントの構成データが、クライアントの既存のパーティション(複数可)の最大パーティションサイズに近づくと、関連付けられたリソースのセット(例えば、割り当てられた記憶スペース及び/または計算能力)を有する新しいパーティションは、クライアントに対して自動的に作成され得て、いくつかの実施態様では、クライアントのデータのいくつかのサブセットは、負荷分散のために新しいパーティションに移動され得る。いくつかの実施形態では、プロバイダネットワークによって実施されるデータベースサービス及び/またはストレージサービスを、永続リポジトリ810に使用し得る。永続リポジトリはまた、いくつかの実施形態では、以前に生成されたクエリ結果のためのオプションのストア822を含み得る。永続リポジトリ810は、レコード取得のための平均待ち時間L1を有し得る。
【0047】
図8に描写される実施形態では、少なくともいくつかの構成レコードを、矢印875で示すように、特定の予想されるタイプのクエリに最適化された低遅延リポジトリ850に事前にプリロードし得る。レコードは、様々な実施形態では、作成及び/または最新の変更タイムスタンプをそれぞれ含み得る。レコードは、逆時間順にロードされ得、例えば、少なくともいくつかの実施形態では、より最近更新された(またはより最近作成された)プリロードするレコードにより高い優先度が割り当てられる。リポジトリ850からレコードにアクセスするための平均待ち時間L2は、リポジトリ810へのレコードアクセスの待ち時間L1よりも短くし得る。少なくともいくつかの実施態様では、リポジトリ850は、主に最近の構成データに対して行われたテンポラルクエリまたは時系列クエリを含む、クライアントクエリを処理するように指定された検出サービスの様々なコンピューティングデバイスの揮発性メモリの一部を含み得る。リポジトリ850の構成データキャッシュ852は、いくつかの実施形態では、OpenTSDBで使用されるデータモデルなどの、特にテンポラルクエリ(例えば、「最近の1時間にサーバS1及びS2で発生した構成変更を一覧表示する」という論理等価)を対象とするデータモデルを実施し得る。少なくともいくつかの実施形態では、キャッシュ852に利用可能な最大スペースは、永続レコードリポジトリで利用可能なスペースよりも小さくし得て、その結果、より新しいエントリのための余地を作成するために、必要に応じて、古いキャッシュエントリ892を破棄し得る。少なくともいくつかの実施形態では、いくつかのクエリの結果は、クエリ結果ストア822に任意選択で格納され得て、矢印877によって示されるように、必要に応じて再利用され得る。
【0048】
いくつかの実施形態では、
図8に示すもの以上の追加のストレージ層を使用し得る。例えば、コールドストレージのバックエンド層は、閾値月齢(1ヶ月または6ヶ月など)に達した構成データに使用され得る。そのようなコールドストレージ層は、プライマリ永続データリポジトリよりも低コストであり得る(場合によっては、データに対してより空間効率の良いフォーマットを使用し得る)が、コールドストレージからレコードを取得するための待ち時間が長くなり得る。少なくともいくつかの実施形態では、指定されたタイムスタンプまたは期間に対応する構成レコードを、使用されている異なるストレージ層のいずれかから取得できるように、構成検出サービスによって一連のスナップショットベースのプログラムインターフェース(または他の時間的指向のプログラムインターフェース)を実施し得る。一実施形態では、異なる時点でのクライアントの構成データのそれぞれのスナップショットは、検出サービスによって個別のオブジェクトとして自動的にまたは要求に応じて作成及び格納され得て、少なくともいくつかの時間ベースの構成クエリに迅速に応答することができ得る。様々な時点に対応するスナップショットは、様々な実施形態では、他の層からキャッシュ852への要求に応じて(または要求を見越して)ロードされ得る。一実施形態では、スナップショットベースのAPIは、クライアントが、2つのスナップショット構成が、比較が有用となるのに十分に類似しているかどうかを判定し、そうであれば、そのような比較の結果(構成スナップショットレベルの「diff」コマンドの結果と概念が類似する)を提供し得る。
【0049】
構成検出サービスをサポートするための方法
図9は、少なくともいくつかの実施形態による、構成検出サービスで実行され得る動作の態様を示すフロー図である。要素901に示すように、クライアントの1つまたは複数のアプリケーション実行環境からの構成情報の自動検出を、検出サービスで開始させるという決定が行われ得る。実行環境は、1つまたは複数のプロバイダネットワークの(例えば、検出サービス自体が実施されている同じプロバイダネットワーク、ならびに他のプロバイダネットワークの仮想コンピューティングサービス及び/またはストレージサービスの)、及び/または顧客所有または顧客管理設備のリソースを含み得る。自動検出を開始させるという決定は、例えば、検出サービスのプログラムインターフェースを介して顧客から受信した要求に応答して行われ得る。例えば、サービスが Startdatacollection APIを公開すると、サービスのエージェントが自動検出を開始する可能性がある。例えば、エージェントはステータス変更のためにAPIをポーリングするように構成できる。検出サービスがデータベースのステータスを変更してデータ収集を開始すると、エージェントはこの状態更新を受信してデータ収集を開始できる。
【0050】
例えば、検出サービスエージェントによって構成データソースの初期セットが識別され得て(要素904)、(例えば、エージェントを介して)検出サービスとデータソースとの間にネットワーク接続が確立され得る。例えば、クライアントの既存の構成管理データベース、サードパーティの構成管理及び/またはパフォーマンス管理ツール、及び/またはクライアント専用に生成されたカスタムデータソースを含む、様々なデータソースを使用し得る。サービスは、一括エクスポート/インポートインターフェース、イベント駆動型構成更新のためのインターフェースを含む、様々なカテゴリのデータソースから生の構成データセットを受信するためのプログラムインターフェースを実施し得る。エージェントは、プログラムインターフェースにデータを送信するように構成できる。例えば、エージェントは、プログラムインターフェースのエンドポイント(複数可)を識別する情報を使用してプログラムすることができる。
【0051】
サービスは、データソースからの生の構成データセットの収集を開始し得る(要素907)。各データセットは、いくつかの属性値のセット及び関連付けられた構成アイテムについてのいくつかの識別情報(例えば、データソースによって取得された識別子)を含み得る。例えば、検出サービスで定義されたデータソース側識別子、属性値、及び/またはオントロジーの要素を組み合わせた命名規則に基づいて、描写される実施形態では、様々な構成アイテムに対して一意のサービス側識別子を作成し得る(要素910)。サービス側識別子は、少なくともいくつかのデータソース提供識別子とは異なり得て、いくつかの実施形態では、構成アイテムが物理的に移動され、様々な目的などのために再配置された場合でも、そのライフサイクル中にサーバなどの構成アイテムを一意に識別するために使用され得る。いくつかの実施形態では、特定の構成アイテムに適用される構成変更の範囲によって、検出サービスは、経時的に一意のサービス側識別子を変更し得る。サービス側識別子を変更するための閾値条件は、構成アイテムのカテゴリごとに異なり得る。一例のシナリオでは、例えば、メモリまたはディスクスペースがホストに追加された場合、ホストのサービス側の一意の識別子は変更され得ないが、CPUまたはマザーボードがスワップアウトされた場合、一意の識別子は変更され得る。
【0052】
描写される実施形態では、検出サービスで、異なる粒度、異なる時間、または異なるツールを使用して、同じ基本エンティティについての構成詳細を含み得る、様々なデータソースからの生の構成データセットを結合させ得る(要素913)。いくつかの実施形態では、生のデータセットは、共通の識別子を使用して構成アイテムを識別し得ず(例えば、それぞれの生の構成データセットの同じ構成アイテムに対して異なるデータソース側識別子を提供し得る)、及びサービスは、異なるソースから受信した様々な属性値間の相関または一致を利用して、2つの異なるデータセットの構成データが、実際に同じ構成アイテムを参照していることを検出し得る。結合構成レコードは、検出サービスの1つまたは複数の永続リポジトリで生成され格納され得る。
【0053】
少なくともいくつかの実施形態では、それぞれの信頼スコアを異なるデータソースに関連付けさせ得て、そのような信頼スコアは、報告された構成データ間の競合を解決し、及び/または信頼性の低いソースから受信したいくつかの属性値を任意選択で破棄するために使用し得る(要素916)。したがって、結合され選別された構成レコードは、生の構成データセットに示された属性値のいくつかのサブセットを除外し得る。一部の属性値は、信頼スコアのために除外されるのに加えて、または除外される代わりに、失効によって(例えば、値が収集されてから経過した時間が、サービスで選択された閾値を超えているため)除外され得る。信頼スコア自体は、例えば、機械学習技術及び/またはクライアントフィードバックを使用して、経時的に調整され得る。
【0054】
様々な実施形態では、検出サービスは、アプリケーションパターンに従って構成アイテムをグループ化するための記述子を維持し得る。構成アイテムの動作及び/または通信パターンが、そのような記述子に示された動作またはパターンと一致する場合、サービスは対応する役割識別子を使用して、構成アイテムの構成レコードに自動的にタグを付け得る(要素919)。例えば、サービスで収集された構成データ(例えば、ネットワークパケットフローのパターン)により、サービスは、サーバによって果たされている役割をクライアントによって知らされることなく、特定のサーバが、多層ウェブアプリケーションパターンのウェブサーバであること、別のサーバが、そのパターンのアプリケーションサーバであることなどを十分認識し得る。
【0055】
いくつかの実施形態では、結合及び選別される構成レコードの少なくとも一部は、予想されるタイプのクエリに適したデータモデルが実施される低遅延リポジトリに、保存された元の永続リポジトリからプリロードされ得る(要素922)。低遅延リポジトリは、いくつかの実施形態では、テンポラルクエリに対する迅速な応答を提供し得る(例えば、揮発性メモリに実装された)キャッシュを含み得る。いくつかの実施形態では、データは、より最近の変更またはメトリックに対して行われたクエリが優先されるように、(結合レコードの更新タイムスタンプを使用して)逆時間順にロードされ得る。結合レコードの内容は、検出サービスのプログラムインターフェースを介して受信されたクエリに応答して提供され得る(要素925)。
【0056】
検出された構成情報のための視覚化サービス
図10は、少なくともいくつかの実施形態による、検出サービスで収集された構成レコードの視覚化サービスを実施し得る例示的なシステム環境を示す。図示されるように、システム1000は、プロバイダネットワーク1002A及び1002B、ならびに顧客設備ネットワーク1072を含む。
図1から
図9の文脈において上述したものと同様の構成検出サービス1004を含む、いくつかのネットワークアクセス可能なサービスは、プロバイダネットワーク1002Aで実施され得る。描写される実施形態では、視覚化サービス1006は、例えば、検出サービス1004に格納された構成データのカスタマイズされたグラフィカル表現を提供するために、構成検出サービス1004の構成要素として実施され得る。他の実施形態では、視覚化サービス1006は、検出サービス1004から構成レコードを取得するスタンドアロンサービスとして実施され得る。
【0057】
システム1000は、描写される実施形態では、プロバイダネットワーク1002Aの構成アイテム1036A〜1036C、プロバイダネットワーク1002Bの構成アイテム1036F〜1036H、及び顧客設備ネットワーク1072の構成アイテム1036L〜1036Nを含む、多数の構成アイテム1036を含む。構成アイテムに関連付けられた生の構成データセット(例えば、属性値のセット)は、プロバイダネットワーク1002Aのデータソース1034A及び1034B、プロバイダネットワーク1002Bのデータソース1034K、及び顧客設備ネットワーク1072のデータソース1034Mなどの様々な構成データソース(CDSrcs)1034で取得し得る。生の構成データセットは、構成検出サービス1004に送信され得、前述したように、結合構成レコードが生のデータから生成され、1つまたは複数のリポジトリに格納され得る。
【0058】
視覚化サービス1006は、描写される実施形態では、複雑なアプリケーション環境の構成を動的に更新した状況依存のグラフィカル表現をクライアントに提供し得る。所与のクライアントが視覚化コンソールにログオンするか、または、そうでない場合は、クライアントのアプリケーション実行環境のグラフィカル表現が所望されているという指示を送信すると、視覚化サービスは、構成データが表示されるクライアントに関連付けられた構成アイテムのセットを識別するために、検出サービスのプログラムインターフェースを使用して1つまたは複数のクエリを発行し得る。所与のクライアント側表示環境でクライアントのために情報が視覚化される構成アイテム1036の集合は、本明細書では視覚化ターゲット環境(VTE)と呼ばれ得る。所与のVTEは、異なるネットワークの複数のデータセンターに分散された構成アイテムを含み得る。例えば、クライアントC1のVTE1044Aは、プロバイダネットワーク1002Aの1つまたは複数のデータセンターの構成アイテム1036B及び1036C、ならびにプロバイダネットワーク1002Bの場合、1つまたは複数のデータセンターの構成アイテム1036F及び1036Gを含み得る。クライアントC2のVTE1044Bは、描写される例では、プロバイダネットワーク1002Bの構成アイテム1036H及び顧客設備ネットワーク1072の構成アイテム1036Lを含み得る。
【0059】
少なくともいくつかの実施形態では、視覚化サービス1006は、VTEのグラフィカル表現(例えば、表示に利用可能なスクリーンの種類、表示をレンダリングする役割を果たすクライアント側デバイスの計算能力など)が表示される表示環境の様々な特性または制約を検出し、それに応じて表示されるコンテンツを調整することができ得る。所与のクライアントは、いくつかの異なる表示環境を利用することができ得る。例えば、クライアントC1の表示環境1082Aは、複数のモニタを有するデスクトップを含み、クライアントC1のもう1つの表示環境1082Bは、タブレットコンピューティングデバイスを含み得る。クライアントC2の表示環境1082Cは、1084x768画素スクリーンを備えた13インチのラップトップを含む。場合によっては、単一のクライアントのために複数の表示環境を同時に使用し得て、視覚化サービスは、異なる表示環境に異なる粒度レベルで情報を送信し得る。
【0060】
所与のクライアントのVTE1044の一部として識別された構成アイテムのセットに少なくとも部分的に、及び表示環境の制約または特性に少なくとも部分的に基づいて、視覚化サービスは、VTEが表示される粒度レベルを選択し得る。視覚化サービスとのクライアントの相互作用セッション中に、利用可能なクライアントの構成情報の様々な(またはすべての)サブセットのいくつかの異なるビューが提供され得て、セッションのクライアントの目的に応じて、ビューの特定の組み合わせまたはシーケンスが提供される。例えば、あるセッション中に、クライアントがパフォーマンス上の問題のトラブルシューティングを所望し得る、別のセッション中に、クライアントが、ある期間にわたるアプリケーションの構成に対する変更の表示を所望し得る、第3のセッション中に、クライアントがネットワークパケットのソースの識別を所望し得る、など。そのようなセッションまたはワークフローはそれぞれ、グラフィカル表示またはビューのそれぞれのシーケンスを含み得る。描写される実施形態では、視覚化サービスによって、「ビューカテゴリ」と呼ばれ得る、例えば、階層的またはツリー指向のビュー、グラフまたはネットワーク指向のビュー、またはテーブルビューなどの、構成データを表示するいくつかの異なるモードがサポートされ得る。所与のセッション中に所与の表示に使用される特定のビューカテゴリは、少なくともいくつかの実施形態では、視覚化サービスによって自動的に選択され得る。この選択は、セッションまたはワークフローの現在の状態に最も関連付けられたと考えられる構成データの特定のタイプ(例えば、パフォーマンス測定値、ネットワーク接続性情報、構成の時間的変化、構成アイテム間の階層/包含関係、クライアント指定の基準に基づく特定のタイプの構成アイテムのランキングなど)に少なくとも部分的に基づき得る、及び/またはクライアントの目的に関するサービスの予測または期待に少なくとも部分的に基づき得る。クライアントは、必要に応じて、ビューカテゴリの選択をオーバーライドするための制御要素(例えば、ボタン、ドロップダウンメニューなど)を提供し得る。例えば、クライアントは、ビューをテーブルビューから階層ビューに、またはその逆に変更する要求を発行し得る。使用されるビューカテゴリと共に、それぞれが選択された粒度レベルでVTEの少なくとも一部を表す、動的にカスタマイズされた構成視覚化1022(例えば、視覚化1022A〜1022C)を生成するために使用できるデータ及び/または命令は、クライアントの表示環境のデバイスに送信され得る。次いで、VTE構成要素に対応するデータは、クライアントのデバイスで表示するためにレンダリングされ得る。視覚化サービスは、少なくともいくつかの実施形態では、同じVTEのいくつかの異なる表現の表示を並行して開始し得る。
【0061】
少なくともいくつかの実施形態では、VTE1044の全体または一部のグラフィカル表現の生成を開始することに加えて、視覚化サービスはまた、クライアント向けのダッシュボードに含まれる優先度の高いまたは重要度の高いコンテンツを提供し得る。視覚化サービスは、例えば、時間ウィンドウの境界を決定し、時間ウィンドウ中に発生した少なくともいくつかの構成変更に関する情報を、ダッシュボードの「最近の変更」セクションに表示させ得る。以下でさらに詳細に説明するように、様々な実施形態では、ダッシュボードはまた、視覚化サービス及び/または検出サービスによって識別される曖昧性に関するクライアントのフィードバックを受信するために使用され得る。ダッシュボードのレイアウト及び提示はまた、少なくともいくつかの実施形態では、クライアントの表示環境の制約及び能力に基づいて変更し得る。
【0062】
新しい構成情報が検出サービス1004で収集されるとき、視覚化サービスは、クライアントに提供されるグラフィカル表現を自動的に更新し得る。以下にさらに詳細に説明するように、時間の関数として構成情報を再生するためのスライダなどの、いくつかのインタラクティブな制御が、視覚化インターフェースではクライアントに利用可能にされ得る。
【0063】
コンテキストベースのビュー遷移
視覚化サービスは、構成データを表示するためのクライアントワークフローのステップを予測し、表示されたコンテンツを自動的に調整して、様々な実施形態で最も有用なビューを提供することができ得る。
図11は、少なくともいくつかの実施形態による、視覚化サービスによって自動的に実施され得るビュー間の例示的なコンテキストベースの遷移を示す。テーブルビュー1120A、ツリーまたは階層ビュー1120B、及びグラフまたはネットワークビュー1120Cの3つの例示的なビューカテゴリが示される。場合によっては、ビューカテゴリのいくつかまたはすべてを使用して、構成アイテム1102A〜1102Fなどの構成アイテムのほぼ同じセットを表示することが可能であり得る。
【0064】
視覚化サービスは、描写される実施形態では、例えば、クライアントによって次に入力されると予想される相互作用ワークフローの特定の段階に基づいて、表示される構成データのタイプ、表示のために選択された粒度など、様々な要素に基づいて、使用される特定のビューカテゴリを選択し得る。様々な実施形態では、ビューカテゴリを選択するために使用され得る構成データタイプの例には、とりわけ、パフォーマンス測定、トランザクションフロー、構成の時間的変化、アクティブな接続の数などのネットワーク接続インジケータ、包含/階層関係情報、構成アイテムの位置ベースのグループ化、
図5に示すようなアプリケーションパターンのメンバーシップなどを含まれ得る。そのような自動化されたワークフローコンテキストベースの遷移1105(例えば、遷移1105A〜1105C)は、少なくともいくつかの実施形態では、クライアントによってオーバーライドされ得る。例えば、表示されるデータに使用されているビューカテゴリの変更をクライアントが要求するために、使用されているグラフィカルインターフェースのリンクまたは他の制御要素が提供され得る。
【0065】
視覚化サービスは、少なくともいくつかの実施形態では、頻繁に使用されるクライアントワークフローの知識ベースを維持し、各ワークフローは、視覚化サービスとのセッション中に、クライアントの目的を達成するために、クライアントに典型的に提供される表示のそれぞれのシーケンスを表し得る。例えば、そのようなワークフローの1つは、クライアントが視覚化コンソールにログインし、クライアントのアプリケーションに使用されているすべてのホストなど、選択されたタイプの構成アイテムのテーブルビューを提供することから開始され得る。テーブルビューでは、様々な属性など(例えば、ホスト名、IPアドレス、現在の動作可能時間、最近の時間間隔中の平均CPU使用率、最近の時間間隔中に使用された平均ネットワーク帯域幅など)の値が、異なるホストに対して提供され得る。クライアントがログインした後に、最初に表形式で提示される特定の構成アイテムタイプは、例えば、一実施態様では、クライアントのプリファレンス設定で示され得る。クライアントが最初のログイン後の表示のプリファレンスを指定していない場合、一実施形態では、視覚化サービスは、クライアントの視覚化ターゲット環境に関連付けられた最大または最も包括的な階層構成アイテムタイプ(例えば、クライアントのリソースが分散されるデータセンター、クライアントによって使用されるネットワークサブネット、
図5に示されるものと同様のアプリケーションパターンのインスタンス、またはホスト)を検索し、そのタイプの構成アイテムを一覧表示しようと試行し得る。
【0066】
ワークフローの次の表示のためのビューカテゴリは、クライアントと(例えば、以前に使用されたワークフローとの一致に基づいて、ワークフローのクライアントの目的を示すものとして解釈され得る)第1の表示との相互作用に基づいて選択され得る。第1の表示がホスト情報のテーブルを含み、クライアントがネットワーク帯域幅使用状況のメトリックに基づいてホストを並び替えを要求する場合、例えば、サービスは、クライアントが次の表示でネットワーク接続情報を見ることを望んでいると想定し得る。したがって、例えば、ホスト間のネットワークパス、ホスト間でオープンしている接続などを示す、選択されたホストのセットのネットワークビューが次に表示され得る。第1の表示が可用性コンテナまたはデータセンターなどの階層的コンテナのリストを含み、クライアントがコンテナの1つをクリックした場合、クライアントが、含まれている構成アイテムを見ることを望んでいるという想定の下に、階層またはツリービューカテゴリが、次の表示のために選択され得る。様々な実施形態では、自動ビューカテゴリ選択のために、表示される構成データのタイプ及び以前に使用されたワークフローとの一致以外のいくつかの要素が考慮され得る。例えば、ワークフローの所与の段階で情報が利用可能なクライアントの構成アイテムの総数、クライアントの表示環境の予想されるサイズ(例えば、画素単位)などが、カテゴリビュー選択に影響を及ぼし得る。例えば、クライアントのアプリケーションが1000台のホストを使用し、スマートフォンがクライアントの表示環境として検出された場合、(例えば、データセンターの場所に基づいて、またはサブネットメンバーシップに基づいて)ホストの階層ビューまたは要約ビューが、1000台のホストすべてのテーブルビューの代わりに提供され得る。一実施形態では、クライアントは、(場合によっては、自動ビューカテゴリ選択決定のクライアントのオーバーライドを含み得る)視覚化サービスとの相互作用のレコードを保存するように要求し得て、そのようなカスタマイズされたレコードは、後続のセッションでビューカテゴリを選択するために使用し得る。
【0067】
視覚化インターフェース構成要素の実施例
前述のように、視覚化サービスは、1つまたは複数のアプリケーション実行環境の少なくとも一部のグラフィカルビュー及び、ダッシュボードの両方を提供し得る。
図12は、少なくともいくつかの実施形態による、視覚化サービスのグラフィカルユーザインターフェースの例示的な要素を示す。図示されるように、視覚化インターフェース1202は、描写される実施形態では、視覚化ターゲット環境1205及びダッシュボード1270の一部または全部を示し得る。いくつかの実施形態では、グラフィカルユーザインターフェースは、ブラウザの一部としてレンダリングされ得て、他の実施形態では、スタンドアロンツールが使用され得る。
【0068】
VTE部分1205は、構成アイテムのいくつかの位置ベースのグループ分けを示し得る。描写される例では、プロバイダネットワーク1220及び顧客所有のデータセンター1230で検出された構成アイテムに関する情報がVTE部分に含まれる。少なくともいくつかの実施形態では、プロバイダネットワークは複数の地理的領域に編成し得て、各領域は、「可用性ゾーン」とも呼ばれ得る、1つまたは複数の可用性コンテナを含み得る。次いで、可用性コンテナは、所与の可用性コンテナ内のリソースが他の可用性コンテナ内の不具合から隔離されるような手段で、(例えば、電力関連装置、冷房装置、または物理的機密保護構成要素などの独立したインフラ構成要素を使用して)設計された、1つまたは複数の異なる場所またはデータセンターの一部または全部を含み得る。1つの可用性コンテナ内の不具合が、他のあらゆる可用性コンテナ内に不具合をもたらすことは予期され得ず、したがって、所与のリソースの可用性プロファイルは、異なる可用性コンテナ内のリソースの可用性プロファイルから独立していることが意図される。したがって、それぞれの可用性コンテナ内に複数のアプリケーションインスタンスを起動することによって、様々なタイプのサービス及び/またはアプリケーションを単一の場所での不具合から保護し得る。少なくとも一部のプロバイダネットワーク顧客にとって、異なる可用性コンテナ間で顧客に割り当てられたリソースの分布を、視覚的に表現することは有用であり得る。
図12に示すシナリオでは、顧客に割り当てられた仮想マシンは、少なくとも2つの可用性コンテナに分散される。仮想マシン(VM)1222A及び1222Bは、プロバイダネットワーク1220の可用性コンテナ1210A内で実行され、VM1222K及び1222Lは、第2の可用性コンテナ1210B内で実行される。
【0069】
視覚化サービスによってプロバイダネットワークに関して表示される位置ベースのグループは、例えば、位置の詳細に関する異なる権限に基づいて、顧客設備ネットワークに関して表示されるグループと異なることがあり得る。例えば、仮想マシン1222は、可用性コンテナによってグループ化されて示されているが、顧客所有のデータセンター1230内に示されるリソースは、ルーム及びサーバラックによってグループ化される。データセンター1230のルーム1214は、顧客のVTEの2つのラック1232A及び1232Bを含む。ラック1232Aは、2つのサーバ1234A及び1234Bを含み、ラック1232Bはサーバ1234Cを含む。構成アイテム間に確立されたネットワーク接続も表示し得る。例えば、VM1222Aはサーバ1234A及びVM1222Kに接続されて示され、VM1222BはVM1222L及びサーバ1234K接続される、など。位置ベースのグループ化の粒度は、例えば、構成アイテムの総数、表示環境のプロパティなどに基づいて、仮想化サービスによって自動的に選択され得る。少なくとも1つの実施形態では、特定のグラフィカル表現で、(そうするための明示的な要求を受信せずに)自動的に含まれる位置ベースの境界カテゴリは、例えば、プロバイダネットワークの可用性コンテナ境界、データセンターの境界、ラックの境界、ルームの境界、ネットワーク相互接続トポロジの境界、物理マシンの境界、処理コンテナの境界または仮想マシンの境界を含むセットから選択し得る。それぞれの隔離されたアプリケーションセットに対応する複数の処理コンテナは、例えば、単一のハードウェアホストでサポートされ得て、視覚化サービスは、特定のビューに対してサーバ内のコンテナのグラフィカル表現を提供し得る。
【0070】
ダッシュボード1270は、描写される実施形態では、最近の構成変更(セクション1271の選択された時間ウィンドウに示される)、及び曖昧性解消セクション1272の2つのタイプの情報を含み得る。最近の時間ウィンドウで生じた構成変更は、描写される実施形態では、セクション1271で(例えば、上記の種類の関連性スコア及び/または他の要素に基づいて)ランク付けされ得て、順序またはランクで表示され得る。これにより、クライアントはアプリケーションの実行環境がどのように変化しているかを迅速に理解でき得る。
【0071】
いくつかの実施形態では、構成検出サービスは、視覚化インターフェースを利用してクライアントのフィードバックを取得し、構成アイテムのアイデンティティに関する質問を確認または解決するのを助けることができる。特定の構成アイテムのアイデンティティのクライアントのフィードバックに基づく曖昧性解消を開始させるという決定が行われた場合、曖昧性解消の要求はインターフェースのセクション1272に示され得る。例えば、要求は、提案されたアイデンティティ及び/または提案されたアイデンティティの確認を要求するシンボル(例えば、疑問符またはテキストバルーン)を有する構成アイテムの1つまたは複数の属性値を示すことができる。クライアントは、フィードバック(例えば、チェックマーク)を入力するか、代替の識別子または名前を提供することによってアイデンティティを確認し得る。クライアントのフィードバックの助けによって、曖昧なアイデンティティが解決された場合、構成検出サービスはその構成レコードを更新(または確認済みとしてマーク)し得て、曖昧性解消要求は、描写される実施形態では、セクション1272から削除され得る。
【0072】
いくつかの実施形態では、視覚化サービスは、クライアントが構成検出サービスによって識別された様々なタイプのトランザクションに関連付けられた詳細(例えば、待ち時間)を調べることを可能にし得る。
図13は、少なくともいくつかの実施形態による、視覚化サービスの支援を受けて表示され得るトランザクション関連情報の例を示す。図示されるように、視覚化インターフェース1302は、「トランザクション表示」制御要素1350(例えば、ボタン)及び情報を表示する粒度をクライアントが増減できるようにするズーム制御要素1349を含み得る。ズーム制御要素1349は、例えば(プロバイダネットワーク1320内の)個々の仮想マシン1322及び(顧客所有データセンター1330内の)サーバ1334が示されている粒度レベルに到達するために使用され得る。クライアントが「トランザクション表示」ボタンをクリックすると、表示が更新され、領域1370A及び1370Bが示され得る。領域1370Aは、(トランザクションの定義が、サービス選択またはクライアント選択であり得る)12500個のトランザクションの要求が、顧客所有のデータセンターのルーム1314のラック1332Aのサーバ1334Bからプロバイダネットワーク1320の可用性コンテナ1310Bの仮想マシン1322Kにある期間(この例では100秒)の間に送信されたことを示す。平均スループットは12.5トランザクション/秒で、平均トランザクション待ち時間または応答時間は500ミリ秒だった。同様に、領域1370Bは、サーバ1334Kから仮想マシン1322Bに送信されたトランザクションの数、スループット及び待ち時間を示す。
【0073】
描写される実施形態では、最近のトランザクションリスト1385を表示に含め得る。視覚化ターゲット環境の現在表示されている部分に関連付けられたいくつかの最近のトランザクションについての詳細は、送信者構成アイテム1387の識別子(例えば、トランザクションが開始されたプロセスまたはホスト)、応答者1388、送信タイムスタンプ1389、トランザクションコマンド/要求の詳細1390、完了時刻及びステータス(例えば、コミット/中止)1391などである。クライアントは、視覚化インターフェースを使用して選択された属性に基づいて最近のトランザクションを並び替え、選択された期間のトランザクションを表示するように要求し、及び/またはトランザクション送信者またはトランザクション応答者に関する追加の詳細を見ることができ得る。いくつかの実施形態では、クライアントは、(例えば、パケットフローシーケンス、トランザクション要求及び応答のフォーマットなどを示す)視覚化サービスを介してトランザクション記述子を送信し、トランザクションが発生したときに構成検出サービスが監視することを可能にし得る。他の実施形態では、検出サービスは、様々な構成アイテム間の通信の頻繁な要求/応答パターンを検出することができ得て、これらのパターンを使用して、トランザクションを定義し得る。
【0074】
図14は、少なくともいくつかの実施形態による、視覚化サービスの支援を受けて表示され得るネットワークトラフィック関連情報の例を示す。前述のように、ネットワークトラフィック経路には、1つまたは複数のパケットが送信された真の送信元を検出することを困難にするアドレス変換器またはポート変換器が含まれ得る。描写される実施形態では、視覚化サービスは、選択された構成アイテム(例えば、仮想マシン1422A)で受信されたネットワークパケットの数に関する統計を示す制御要素(制御要素1448など)を提供し得る。示される例のシナリオでは、領域1470は、いくつかの選択された時間間隔の間に、可用性コンテナ1410A及びプロバイダネットワーク1420の仮想マシン1422Aで合計4500パケットが受信されたことを示す。
【0075】
「トラフィックソースの表示」とラベル付けされた制御要素1450は、受信パケットのソース検出クエリを、視覚化サービスを介して構成検出サービスに送信するために使用され得る。これに応答して、検出サービスは、
図6の文脈において論じられたような、いくつかのソース識別検出アルゴリズムのいずれかを使用して、難読化仲介を介して仮想マシン1422Aにパケットを送信し得る構成アイテムの予想されるアイデンティティを確認し得る。アルゴリズムは、例えば、通常とは異なるパターンで複数の接続確立及び切断要求を送信し、パケット到着間隔時間を厳密に追跡し、それらを送信間隔時間と照合し、シーケンス番号を監視するなどを含み得る。描写される例では、領域1471A及び1471Bに示されているように、構成検出サービスにより、サーバ1434Aが、4500パケットのうちの500パケットのソースである可能性が高いと識別され、サーバ1434Kが、残りの4000パケットのソースである可能性が高いと識別される。一部のパケットのソース識別では、本明細書で論じられた種類の識別検出アルゴリズムの呼び出しを必ずしも必要とし得ないことに留意されたい。すなわち、難読化仲介を通過しないパケットのソースは、構成検出サービスによってパケットヘッダから簡単に取得し得る。
【0076】
いくつかの実施形態では、視覚化インターフェースは、受信タイムスタンプ1487、見かけの送信者IPアドレス1488、受信者IPアドレス1489、パケットサイズ1490及び/またはシーケンス番号1491などの詳細が表示され得る、最近の受信パケットリスト領域1485を含み得る。クライアントは、視覚化インターフェースによって提供される制御を介して、最新の受信パケットリスト領域1485の内容を、所望通りに並び替え及び/または再配置することができ得る。
【0077】
図15は、少なくともいくつかの実施形態による、視覚化サービスの支援を受けて経時的な構成変更の視覚化を得るためのスライダ制御要素の使用例を示す。スライダ制御要素1571は、クライアントが、様々な時点での視覚化ターゲット環境の状態を見ることを可能にし得る。描写される例では、視覚化インターフェース1502Aは、クライアントのターゲット環境が、要素1574Aに示される時点での5つの構成アイテム(プロバイダネットワーク1520の可用性コンテナ1510AのCI1522A及び1522B、可用性コンテナ1510BのCI1522K及び1522L、外部データセンター1533のCI1522P)を含むことを示す。
【0078】
例えば、クライアントによって使用されている表示環境に応じて、マウスまたは指先を使用して、スライダを右に(矢印1551によって示されるように)移動すると、要素1574Aに示された時間が進み、インターフェースに示された構成アイテムが変化し得る。要素1574Bに対応する時点で、例えば、インターフェース1502Bは、2つの新しい構成アイテムがクライアントのターゲット環境に追加されたことを示す。構成アイテム1522Rが可用性コンテナ1510Bに追加され、構成アイテム1522Sが外部データセンターに追加されている。少なくともいくつかの実施態様では、矢印1555で示すように、新たに追加された構成アイテムを強調表示(例えば、異なる色で一時的に表示)し得る。いくつかの実施形態では、スライダ以外のインタラクティブ制御(例えば、ラジオスタイルボタンまたは早送り/巻き戻し制御)を、時間ベースの構成表示のために提供し得る。インターフェースはまた、例えば、クライアントが、視覚化ターゲット環境の状態の機械読み取り可能なスナップショットを様々な時点でキャプチャすることを可能にするために、指定された時点での構成の違いのみを表示するために、タイムライン上の変更をプロットするために、などのテンポラルクエリに関連付けられた追加の制御を提供し得る。スライダ1571及び視覚化インターフェースの他の時系列指向制御は、様々な実施形態では、検出サービスのスナップショットベース及び/または(
図8の文脈において上述した)他の時間指向のAPIに依存し得る。
【0079】
いくつかの実施形態では、視覚化サービスは、クライアントがアプリケーション構成要素を、あるデータセンターまたはプロバイダネットワークから別のデータセンターまたはプロバイダネットワークに移行させるための機構を提供し得る。
図16は、少なくともいくつかの実施形態による、アプリケーション実行環境の段階的な移行を開始するための視覚化サービスの使用例を示す。描写されるシナリオでは、アプリケーションパターン内の様々な構成アイテムによって果たされる役割を示すタグが、視覚化インターフェース1602Aに示され得る。例えば、クライアントの構成アイテム間の相互作用のパターンに基づいて、構成検出サービスは、多層ウェブアプリケーションを識別し得る。外部データセンター1633で実行される構成アイテム1622Qは、多層ウェブアプリケーションのウェブサーバとして識別され得るが、構成アイテム1622Rは、多層ウェブアプリケーションのデータベースサーバとして識別され得る。タグ1674A及び1674Bは、構成アイテム1622Q及び1622Rに対してそれぞれ生成され得る。
【0080】
段階的に多層ウェブアプリケーションの構成要素をプロバイダネットワーク1620に移行するための計画は、描写される実施形態では、例えば、移行計画及び実施サービスで生成され得る。移行の各段階は、特定の役割を果たす構成アイテム(例えば、「ウェブサーバ」または「データベースサーバ」)をプロバイダネットワークに移行させることを含み得る。各役割の移行計画の詳細は、制御1633A(データベースサーバ用)及び1633B(ウェブサーバ用)を使用して表示し得る。制御要素1675は、クライアントが特定のタグに関連付けられた構成アイテムのための段階的な移行を開始することを可能とするために提供され得る。
【0081】
描写される例では、クライアントがデータベースサーバのラベル「DB」でタグ付けされた構成アイテムの移行を要求する場合、描写される実施形態では、視覚化サービスは、対応する要求をプログラムによって検出サービス及び/または移行実施サービスに送信し得る。構成アイテム1622Rに対応するデータベースサーバが、プロバイダネットワーク1620の可用性コンテナ1610Bへの段階的な移行の一部として移行された後、クライアントのビューが更新され、インターフェース1602Bに示すように、移行された構成アイテム(ラベル1674C)を示し得る。
【0082】
少なくともいくつかの実施形態では、視覚化サービスは、移行に関する前後のパフォーマンス比較を可能にするインターフェースもサポートし得る。例えば、移行前のアプリケーションのパフォーマンス(例えば、スループット、トランザクション待ち時間/応答時間など)のベースラインビューを領域1646に示し得て、対応する移行後のパフォーマンス統計を領域1647に示し得る。移行後パフォーマンスの統計が不十分である場合、クライアントは、必要に応じて、逆の移行を開始し得る(例えば、描写される例では、外部データベースにデータベースサーバを戻す)。
【0083】
一実施形態では、視覚化インターフェースは、アプリケーション内の構成アイテムによって果たされる様々な役割に関連付けられたタグを直接指定するために、クライアントによって使用され得る。例えば、クライアントが新しいタグを定義するために、または既存のタグをインターフェースを介して選択された構成アイテムと関連付けるために、「タグの追加」制御を提供し得る。経時的に、タグのライブラリが蓄積され得て、クライアントは、利用可能なタグを検査する、ライブラリの既存のタグに関するタグ付け要求を発行する、または新しいタグをライブラリに追加するために、視覚化インターフェースを使用し得る。実際には、クライアントは、視覚化サービスによって提供されるそのような制御を使用して、アプリケーションパターンに関する検出サービスを「教示」し得る。クライアントが、例えば、視覚化サービスを使用する1つまたは複数の構成アイテムとウェブサーバタグとを関連付けた後、検出サービスは、タグ付けされたアイテムの動作(例えば、他の構成アイテムとのネットワーク相互作用のパターン)を監視し得る。検出サービスは、観察された動作に基づいて、ヒューリスティックを生成することができ得て、クライアントによって明示的に要求されることなく、クライアントによって提供される例と同じラベル/タグで他の構成アイテムを自動的にタグ付けするために使用することができる。例えば、クライアントが多層ウェブアプリケーションアーキテクチャを実施する環境内にウェブサーバまたはデータベースサーバのいくつかの例を提供した後、検出サービスは、類似のアプリケーションアーキテクチャを独自に実施する他の環境内の他のウェブサーバ及び/またはデータベースサーバを識別し、それに応じて自動的に生成されたタグを表示することができ得る。
【0084】
構成データ視覚化サービスをサポートするための方法
図17は、少なくともいくつかの実施形態による、構成レコードのグラフィカル表現を提供するために視覚化サービスによって実行され得る動作の態様を示すフロー図である。要素1701に示すように、例えば、クライアントが視覚化ツールまたはコンソールにログインするとき、またはクライアントがプログラムインターフェースを介して視覚化要求を発行するとき、クライアントの1つまたは複数のアプリケーション実行環境に関連付けられた構成情報のグラフィカル表現を提供するという決定が行われ得る。アプリケーション実行環境は、1つまたは複数のデータセンターに分散されたリソースを含み得る。データセンターの一部は、プロバイダネットワークの一部であり得て、顧客所有の設備にあり得る。結合構成レコードの検出サービスのリポジトリに対して行われた1つまたは複数のクエリを使用して、視覚化サービスは、情報を表示する特定の視覚化ターゲット環境を識別し得る(要素1704)。いくつかの実施形態では、視覚化サービスは構成検出サービスの外部にあり得て、他の実施形態では視覚化サービスは構成検出サービスの一部を形成し得る。場合によっては、視覚化サービス(または検出サービス)の所与の顧客アカウントが、アカウントに関連付けられたいくつかの異なるアプリケーション実行環境を有し得て、表示できる構成アイテムの特定のセットは、クライアント側の表示環境によって異なり得る。顧客のオフィス内に配置されたワークステーション、例えば、クライアントのアプリケーション実行環境のより大きなサブセットからは、タブレットコンピュータよりも視覚的にアクセスし得る。少なくともいくつかの実施形態では、アイデンティティ及びアクセス管理システムは、表示を提供することができる構成アイテムの種類を決定するために使用し得る。
【0085】
視覚化サービスは、(例えば、クライアント側デバイスオペレーティングシステムによってサポートされるAPIを使用して)クライアント側表示環境の様々な特性を識別し得る(要素1707)。特性は、利用可能な画面の数とサイズ、グラフィカル表現を提供するクライアント側デバイスの計算能力、サービスとクライアントデバイスとの間の通信に利用可能なネットワーク帯域幅などを含み得る。視覚化ターゲット環境に利用可能な構成データの量及び/または表示環境の特性に基づいて、クライアント用に生成される初期のグラフィカル表現に関する視覚化サービスでいくつかの決定を行い得る。これらの決定は、構成情報を表示する(例えば、データセンターレベル、可用性コンテナレベル、ルームレベル、サーバレベルなどで集約される)粒度を選択すること、及び使用するビューカテゴリ(例えば、表形式のビュー、グラフ/ネットワークビューまたはツリー/階層ビュー)を選択することを含み得る(要素1710)。
【0086】
少なくともいくつかの実施形態では、例えば、視覚化インターフェースのダッシュボード部分を使用して、構成変更が強調表示される時間ウィンドウが決定され得る(要素1713)。選択された粒度及びビューカテゴリを使用して、視覚化ターゲット環境の動的に更新された表示は、クライアント側表示環境で開始され得る(要素1716)。新しい構成データが検出サービスから利用可能になったとき、またはクライアントによってプログラムによって発行された要求に応じて、表示が更新され得る(要素1719)。一実施形態では、クライアント側表示環境の特性は、クライアントによって要求された情報を表示するには不十分であるとみなされることがあり得る。例えば、使用可能な画面領域が小さすぎてクライアントによって要求された詳細レベルを表示し得ない、またはクライアントデバイスで使用可能なネットワーク帯域幅が小さすぎて、要求されたデータ量を妥当な時間内に転送し得ない。そのようなシナリオの中には、例えば、現在のクライアント側表示環境を介して、視覚化要求を満たすことに関連付けられたリソース使用状況の見積もりに基づいて、視覚化サービスは、視覚化要求で要求された情報を表示するためのオフラインツール(または、現在使用されているものとは異なるクライアント側の表示環境)を利用するための推奨事項を送信し得る。
【0087】
移行マーケットプレイスサービス
図1の文脈で述べたように、プロバイダネットワークは、いくつかの実施形態では、顧客が、必要に応じて、例えば、コストの削減、アプリケーションの可用性または復元性の向上、管理の簡素化などを支援するために、アプリケーションやアプリケーション構成要素を物理的または仮想的なプラットフォームのあるセットから別のセットに移行できるようにするという高レベルの目標と共に、1つまたは複数の移行関連サービスを実施し得る。検出サービスによって収集された情報は、前述したように、移行関連の決定を行うのに有用であり得る。しかし、複雑なアプリケーションスタックの構成要素間の多くの依存関係のために、ある環境から別の環境にアプリケーションを移行するプロセスは、アプリケーション所有者組織内では利用し得ない専門知識の助けを借りることがあり得る。いくつかの実施形態では、構成検出サービスが実行されるプロバイダネットワークは、移行マーケットプレイスサービスを実施することによって、移行ファシリテーターまたはエキスパートとアプリケーション所有者との間の仲介として機能し得る。顧客所有のデータセンターからプロバイダネットワークへ、またはあるプロバイダネットワークから別のプロバイダネットワークへなど、ある実行プラットフォームセットから別のプラットフォームへのアプリケーションまたはアプリケーション構成要素の移行を計画及び/または実施するのに役立てることができるビジネスエンティティは、本明細書では、移行ファシリテーターまたは移行実行者と称され得る。移行ファシリテーターが、(アプリケーションが移行される)ターゲット実行プラットフォームのセットを操作するエンティティと異なり、アプリケーションが移行されるエンティティと異なる場合、移行ファシリテーターは、サードパーティの移行ファシリテーターと呼ばれ得る。少なくとも一部の移行ファシリテーターは、サードパーティと特徴付けられ得ない。例えば、移行が実行されるプロバイダネットワークの一部である(または提携している)専門サービスまたはコンサルティング組織は、いくつかの実施形態では、移行ファシリテーターの役割において移行マーケットプレイスサービスを利用し得る。高レベルで、移行マーケットプレイスサービスは、アプリケーション所有者が、複雑なアプリケーション移行タスクの手助けをしてくれる可能性があるパートナーについて知ることを可能にし、移行ファシリテーターが顧客を見つけることを可能にし得る。移行ファシリテーターには、様々な実施形態では、ツールプロバイダ(例えば、アプリケーションの移行を実施するために、クライアントが使用できる移行ツールを開発する独立系ソフトウェアベンダまたはISV)、プロフェッショナルサービス組織、プロバイダネットワーク運用者のパートナーなどのツールを提供する代わりに、実際に移行を計画し実施する技術専門家が含まれ得る。
【0088】
図18は、少なくともいくつかの実施形態による、構成検出サービスで収集されたデータを利用する移行マーケットプレイスサービスを実施し得る例示的なシステム環境を示す。図示されるように、システム1800は、いくつかのネットワークアクセス可能なサービスが実施されるプロバイダネットワーク1802を含む。サービスは、仮想化コンピューティングサービス1810、パッケージ化プログラム実行サービス1812、1つまたは複数のストレージまたはデータベースサービス1814、構成検出サービス1804、移行マーケットプレイスサービス1806、ならびに移行計画及び実施サービス1808を含む。各サービスは、描写される実施形態では、サービスとそのクライアントとの間の相互作用に使用し得る、プログラムインターフェースのセットを実施し得て、場合によっては、サービス間の相互作用にも使用され得る。仮想化コンピューティングサービス1810に関連付けられたVCSプログラムインターフェース1844は、仮想マシンを取得、使用、及び解放するために使用され得る。パッケージ化プログラム実行サービス1812のPESインターフェース1845は、リクエスタに明示的にサーバを割り当てずに、プログラム実行の要求を送信し、プログラム実行の結果を受信するために使用され得る。SDSプログラムインターフェース1846は、様々なアプリケーションに関連付けられたデータセットを格納しアクセスするために使用され得る。検出サービス1804のCDSプログラムインターフェース1841は、前述したように、構成情報の自動検出を開始し、自動検出の結果を見るために使用され得る。移行計画及び実施サービス1808のMPISインターフェース1843は、詳細な移行計画を生成し、計画を実行するために使用し得る。
【0089】
移行マーケットプレイスサービス1806は、描写される実施形態では、
図18に示す他のサービスの一部または全部を利用し得る。移行マーケットプレイスサービスのMMSプログラムインターフェース1842は、潜在的な移行クライアント1834(例えば、移行され得るアプリケーションの所有者)及び移行ファシリテーター1836の少なくとも2つのタイプのエンティティによって利用され得る。一実施形態によれば、クライアント1834は、1人または複数の移行ファシリテーターがクライアントのアプリケーションに関連付けられた構成情報の少なくとも一部のサブセットにアクセスすることを可能にするために、移行マーケットプレイスサービスに要求を送信し得る。アクセス許可が付与される構成情報は、例えば、検出サービス1804で維持されるリポジトリの結合構成レコードに格納され得る。前述したように、クライアント1834の所与のアプリケーション実行環境は、例えば、プロバイダネットワーク1802外のいくつかのリソース及び/またはプロバイダネットワーク1802内にあるいくつかのリソースを含む、複数のプラットフォームに分散された構成アイテムまたはリソースを含み得る。いくつかの実施形態では、クライアント1834は、構成の詳細の少なくとも一部を難読化または匿名化してから、移行ファシリテーターに提供するように要求し得る。すなわち、ファシリテーターには、完全な詳細を提供することなく、構成情報のいくつかの態様にアクセスすることを許可し得る。場合によっては、クライアントは、構成情報を調べるために指定された一組の移行ファシリテーターのみを許可し得て、他の実施形態では、移行マーケットプレイスサービスによって登録または承認された任意の移行ファシリテーターにアクセス許可を与え得る。クライアントの構成レコード収集へのアクセスを共有するクライアント要求に応じて、移行マーケットプレイスサービス1806は、(例えば、移行マーケットプレイスサービス自体によって維持されるメタデータ内、または検出サービス1804のメタデータ内のいずれかの)構成レコードの1つまたは複数のセキュリティ設定の変更を開始し得る。
【0090】
移行マーケットプレイスサービス1806は、描写される実施形態では、MMSプログラムインターフェース1842を介して、移行ファシリテーターから、それぞれのメンバーシップ要求を受信し得る。少なくともいくつかの実施形態では、移行マーケットプレイスサービスは、マーケットプレイスの承認されたメンバーとして移行ファシリテーターを登録する前に(例えば、ファシリテーターのアイデンティティ及び事業背景を確認するための)一連の検証手順を開始し得る。
【0091】
登録された移行ファシリテーターは、描写される実施形態では、インターフェース1842を介して移行候補照合要求1837を送信し得る。そのような要求は、例えば、ファシリテーターの専門知識または能力(例えば、ファシリテーターが過去に支援してきた移行のアプリケーションスタックの種類)及び/またはファシリテーターが望む移行クライアントの種類の特徴(例えば、移行対象アプリケーション実行環境の最小サイズまたは最大サイズ、移行対象アプリケーション実行環境または移行先環境の地理的位置など)を含み得る。検出サービス1804のクライアントの中からファシリテーターの1人または複数の潜在的顧客を識別する、移行候補照合要求1837に対する応答は、移行ファシリテーターがアクセスを許可された構成情報を使用してサービス1806で生成し得る。以下にさらに詳細に説明するいくつかの実施形態では、移行マーケットプレイスサービス1806は、一致する顧客を見つけるために、サービス生成アルゴリズムを実行し得て、他の実施形態では、ファシリテーターは、潜在的顧客を見つけるために、独自の実行可能コードモジュールを提供し得て、ファシリテーター提供コードは、事前パッケージ化プログラム実行サービス1812または他のいくつかのプラットフォームで実行し得る。
【0092】
移行ファシリテーター1836は、サービス1806によって提供される潜在的な移行候補に関する提供された情報を調べ、移行提案をインターフェース1842を介してサービス1806に送信し得る。提案は、例えば、指定されたサブセットまたはアプリケーション実行環境のすべての移行のための予備コスト見積、予備スケジュールまたは実施計画などを含む、ファシリテーターが提供しようとする支援の様々な態様を記述し得る。移行ファシリテーターが、実際に移行を実施することに関心のある技術専門家ではなく、移行ツールを提供する独立系ソフトウェアベンダである場合、いくつかの実施形態では、(クライアントがアプリケーションを移行するために使用することができる)ツールの名前を提案に含め得る。次に、サービス1806は、提案1837の表現を、プログラムインターフェース1842を介して潜在的な移行クライアント1834に送信し得る。サービス1806は、いくつかの実施形態では、同一の潜在的な移行クライアント1834の所与のアプリケーション環境について多数の提案を受信し得て、それぞれがプログラムによってクライアントに提供され得る。
【0093】
クライアント1834が、許容できる提案の1つを見つけ、詳細な移行計画及び/または実施を進めることを望む場合、いくつかの実施形態では、承認メッセージは、インターフェース1842を介して移行マーケットプレイスサービスに送信し得る。そのような承認メッセージに応答して、一実施形態では、移行マーケットプレイスサービスは、例えば、別の移行相互作用をMPISインターフェース1842にシームレス及びプログラムによって転送することによって、クライアント1834が移行計画/実施サービス1808のワークフローを実行できるようにする動作を開始し得る。したがって、少なくともいくつかの実施形態では、移行マーケットプレイスサービス1806は、移行の詳細な計画及び実際の実施に必ずしも役割を果たし得ない。代わりに、移行マーケットプレイスサービス1806の主要な役割は、移行の計画及び実行の詳細な作業が開始される前に、潜在的な移行クライアントと移行ファシリテーターとの間の情報の信頼できるパイプ役として機能することを含み得る。他の実施形態では、移行マーケットプレイスサービスは、移行の少なくともいくつかの態様の実施を計画及び/または調整する役割を果たし得る。
図10〜
図17の文脈において本明細書で論じられた視覚化サービスは、いくつかの実施形態では、移行マーケットプレイスサービス1806及び/または移行計画/実施サービス1808と共に使用し得ることに留意されたい。視覚化サービスは、アプリケーション実行環境構成データを表示し、アプリケーション移行のための潜在的なファシリテーターを識別し、そのような実施形態では、必要に応じて、そのような移行を計画及び実施するために使用できる統一されたシームレスなグラフィカルインターフェースのセットを提供し得る。
【0094】
移行マーケットプレイスサービスとのプログラムによる相互作用
図19は、少なくともいくつかの実施形態による、クライアントと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用を示す。図示されるように、クライアント1920は、プログラム可能なインターフェースを介して、移行マーケットプレイスサービス1922の1つまたは複数のコンピューティングデバイスに検出データアクセス許可要求1925を送信し得る。検出データアクセス許可要求1925は、例えば、クライアントの構成レコード集合に対応する1組のアプリケーション環境識別子1928、1つまたは複数のセキュリティ制約1931及び/またはファシリテーターリスト1934を含み得る。ファシリテーターリスト1934は、必要に応じてクライアント1920の構成情報が開示される1人または複数の特定のファシリテーターを示し得るか、または任意の登録/承認されたファシリテーターが構成情報を提供され得ることを示し得る。セキュリティ制約1931は、明らかにされた構成データに制限を設けるべきかどうか(例えば、クライアントは、集約された情報は明らかにされ得るが、いくつかのタイプの構成アイテムの詳細は、個々の構成アイテムレベルで明らかにされないことを好み得る)、また、匿名化または難読化する必要がある場合に、構成情報のどの態様なのか、などを示し得る。
【0095】
移行マーケットプレイスサービス1922は、要求1925の内容に少なくとも部分的に基づいて、例えば、マーケットプレイスメタデータリポジトリ1955及び/または構成検出サービス1957で、クライアントの構成レコードに関連付けられたセキュリティ設定を変更し得る。要求されたアクセス許可変更が適用されたことを示す確認メッセージ1975は、プログラムインターフェースを介してクライアント1920に送信され得る。
【0096】
図20は、少なくともいくつかの実施形態による、移行ファシリテーターと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用の第1のセットを示す。描写される実施形態では、移行ファシリテーター2020は、プログラムインターフェースを介して移行候補識別クエリ2025を、移行マーケットプレイスサービス2022に送信し得る。クエリ2025は、ファシリテーター能力2028のそれぞれの記述子(例えば、移行のためのファシリテーターが支援を提供することに関心のあるアプリケーションのタイプ)及び候補プリファレンス2031(例えば、ファシリテーターが支援しようとする移行の最小及び/または最大のアプリケーション構成サイズ、ファシリテーターの観点からの好ましい地理的地域または場所、など)を含み得る。
【0097】
候補識別クエリ2025に応答して、構成検出サービスデータベース2040から一致する構成データを取得するためのフィルタ仕様2037を、移行マーケットプレイスサービス2022で準備し得る。いくつかの実施形態では、構成データアノニマイザー2034は、フィルタ仕様2037の準備に参加し得て、その結果、
図19の文脈において論じられた種類のアクセス許可要求を介して潜在的な移行クライアントによってアクセスが許可された構成データのサブセットのみが取得される。様々な実施形態では、(例えば、潜在的な移行クライアントによって提供されるか、ヒューリスティックに基づいて移行マーケットプレイスサービスによって生成される)難読化基準は、クライアント構成セキュリティまたは機密性の侵害を回避するために、フィルタを準備するために使用され得る。一実施形態では、フィルタ仕様を生成する代わりに、またはそれに加えて、構成データアノニマイザー2034は、検出サービスデータベースから取得された構成要素データを処理し、潜在的な移行クライアントによって示されたセキュリティ制約が破られていないことを確認し得る。
【0098】
移行ファシリテーター2020の能力及び好みに一致するアプリケーション実行環境及び/またはクライアントを示す、選別候補環境リスト2046は、サービスのプログラムインターフェースを介してファシリテーターに送信され得る。ファシリテーターは、次に、リスト2046に示された候補環境及びクライアントの一部または全部に対応する、移行提案のリスト2049をサービス2022に送信し得る。次いで、移行マーケットプレイスサービスは、描写される実施形態では、サービスのプログラムインターフェースを介して、適切なクライアント2080(例えば、2080Aまたは2080B)に移行提案2051(例えば2051A及び2051B)の表現を送信し得る。提案2051の少なくともいくつかは、描写される実施形態では、提案された移行作業のための予備コスト見積2054(例えば、2054Aまたは2054B)のそれぞれの指示を含み得る。一実施形態では、提案2051はまた、または代わりに、移行スケジュールの見積、または提案に関連付けられたファシリテーターによって実施される、より早い移行を示すフィードバックレコード(例えば、レビューまたは評価/ランキングスコア)を含み得る。
【0099】
図21は、少なくともいくつかの実施形態による、移行ファシリテーターと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用の第2のセットを示す。
図21と
図20の主な違いは、
図21に示すシナリオでは、移行ファシリテーターは、移行マーケットプレイスサービスに依存して、サービス生成マッチングアルゴリズムを使用する代わりに、ファシリテーターの要件に一致する移行候補を識別するために実行できる実行可能プログラムコードモジュールを送信し得る。そのような手法により、例えば、移行ファシリテーターは、マーケットプレイスサービスに提供する必要があるファシリテーターの能力または制約に関する詳細情報の量を削減することができ、マーケットプレイスサービにかかる負担を軽減し、正確で効率的なマッチングアルゴリズムを開発し得る。
【0100】
図21に示す実施形態では、移行ファシリテーター2120は、実行可能な候補照合アルゴリズムコードモジュール2128の指示を含む移行候補識別クエリ2125を、移行マーケットプレイスサービス2122に送信する。いくつかの実施態様では、クエリ2125は、候補照合コードモジュール2128が実行される実行プラットフォームまたはサービスのいくつかの指示を含み得る。サービス2122は、コード2128を選択された実行サービス2175(例えば、
図18のパッケージ化プログラム実行サービス1812)に送信する。パッケージ化プログラム実行サービスを使用すると、移行ファシリテーターに対するリソースの事前割り当てが不要になり得るという利点があり得て、その代わりに、パッケージ化プログラム実行サービスは、プラットフォームのプールの中から利用可能な実行プラットフォームを簡単に見つけ出し、そのプラットフォーム上でモジュールを実行し、実行結果を提供し得る。移行ファシリテーターは、モジュールの実行に実際に使用された計算リソースに対してのみ役割を果たし得る。場合によっては、プロバイダネットワークの仮想化コンピューティングサービスの仮想マシンなどの他の実行プラットフォームを使用し得る。
【0101】
照合アルゴリズムコードの実行の結果として、フィルタ仕様2178を構成検出サービスに送信し得て、それに応じて、照合候補構成環境2181のセットが生成され得る。照合アルゴリズムコードは、候補構成環境を使用して、移行マーケットプレイスサービスに送信される移行提案リスト2183を生成し得る。次いで、リストの個々の提案2184(例えば、2184Aまたは2184B)は、描写される実施形態では、適切なクライアント2180(例えば、2180または2180B)に送信され得る。
【0102】
マーケットプレイスメタデータ
図22は、少なくともいくつかの実施形態による、移行マーケットプレイスサービスのメタデータリポジトリに格納され得るエントリの例を示す。図示されるように、メタデータリポジトリ2205は、情報の少なくとも2つのカテゴリ、移行ファシリテーターレコード2231及び検出サービスクライアントレコード2251を含み得る。
【0103】
移行ファシリテーターレコード2231は、例えば、ファシリテーターの能力2233または専門知識(例えば、ファシリテーターが経験してきたファシリテーターの移行のアプリケーションスタックの種類)の記述子を含み得る。レコード2231はまた、様々な実施形態では、ファシリテーターに適した移行候補(例えば、移行前または移行後の構成アイテムの地理的分布、移行対象のアプリケーション環境の許容可能なサイズまたは好ましいサイズの範囲、またはファシリテーターの操作の好ましい地理的地域または場所)を作成する特徴に関するファシリテーターのプリファレンスまたは要件2235を含み得る。少なくとも1つの実施形態では、レコード2231はまた、ファシリテーターの以前の支援の評価を示すフィードバック2237または証拠を含み得る。フィードバックは、いくつかの実施形態では、評価またはランキング(例えば、1〜5の間の星の数で、1つは悪い評価を示し、5つは優秀な評価を示す)及びテキストレビューを含み得る。描写される実施形態では、レコード2231はまた、(過去にファシリテーターによって生成された1つまたは複数の提案を示す)移行提案履歴2239及びクライアントによって受け入れられた提案のサブセットを示す提案変換履歴2241を含み得る。
【0104】
検出サービスクライアントレコード2251は、様々なクライアントに対応する構成データアクセス許可2253を含み得る。さらに、少なくとも1つの実施形態では、クライアントの移行履歴を示すエントリ2255も維持し得る。いくつかの実施形態では、
図22に示される種類の要素のうちの少なくともいくつかは、必ずしも移行マーケットプレイスサービスに格納され得ないことに留意されたい。
【0105】
ウェブベースのマーケットプレイスサービスインターフェース
図23は、少なくともいくつかの実施形態による、移行マーケットプレイスサービスによって実施され得る例示的なウェブベースのインターフェースを示す。図示されるように、インターフェースは、メッセージ領域2310、それぞれの登録された移行ファシリテーターに対応するいくつかの広告領域2315(例えば、2315A〜2315D)、及び相互作用制御(例えば、ボタンまたはウェブリンク)2325、2327、及び2329を含むウェブページ2302を含む。
【0106】
メッセージ領域2302は、広告に示されたリンクによって、様々な移行ファシリテーターに関する追加情報を取得できることを、移行マーケットプレイスサービスのクライアントに通知し得る。それぞれの広告は、特定のファシリテーターが支援しようとするアプリケーションスタック、例えば、広告領域2315A内のファシリテーターF1がサポートするアプリケーションスタック2322A、広告領域2315B内のファシリテーターF2がサポートするアプリケーションスタック2322Bなどを示し得る。ファシリテーターのためのランキング/評価フィードバック2324ならびに例示的な価格情報2325も、いくつかの実施形態では広告に含まれ得る。
【0107】
(例えば、顧客が所有するデータセンターからプロバイダネットワークへの)アプリケーションの移行の利点を示すケーススタディは、ウェブページ2302のボタン制御2325を介してクライアントに利用可能にされ得る。構成アイテムの自動検出及び/または移行計画に関する追加情報(例えば、ホワイトペーパーまたはオンラインチュートリアル)は、ボタン制御2327を介してアクセスし得る。描写される実施形態では、クライアントは、制御2329を使用する移行ファシリテーターに関する推奨事項にサインアップし得る。様々な実施形態では、クライアントは、移行マーケットプレイスサービスのインターフェースを使用して、移行の支援のための要求を送信し得る。例えば、いくつかの実施形態では、検出サービスの使用をまた開始していないが、将来、アプリケーションの移行に関心を持つ可能性があり得るプロバイダネットワークのクライアントは、マーケットプレイスサービスのプログラムインターフェースを介して要求を送信して、構成アイテムの自動検出を開始し得る。そのような要求に応答して、移行マーケットプレイスサービスは、クライアントのアプリケーションに関連付けられたデータソースから構成情報の取得を開始できるように、クライアントのために構成検出サービスのプログラムインターフェースを呼び出し得る。収集された情報は、クライアントを適切な移行ファシリテーターと照合するために後で使用し得る。少なくとも1つの実施形態では、クライアントのために構成データが検出サービスで既に収集されている場合、移行支援サービス要求を移行マーケットプレイスサービスに送信し得る。移行マーケットプレイスサービスは、クライアントの構成データ及び(例えば、
図22のリポジトリ2205内の)ファシリテーターに関して格納されたメタデータに基づいて、自身の照合アルゴリズムを実行し、ファシリテーターの推奨事項をクライアントに提供し得る。
【0108】
移行マーケットプレイスをサポートするための方法
図24は、少なくともいくつかの実施形態による、移行マーケットプレイスサービスで実行され得る動作の態様を示すフロー図である。要素2401に示すように、移行ファシリテーターがクライアントのアプリケーション環境の構成レコードにアクセスすることを可能にする要求は、プロバイダネットワークの移行マーケットプレイスサービスで受信し得る。構成レコードは、前述したように、構成検出サービスに関連付けられた様々なデータソースから収集され得る。それに応じて、クライアントの構成レコード収集のためのセキュリティメタデータは、変更され得る(要素2404)。前述のように、場合によっては、セキュリティ設定は、検出サービスで変更し得て、他の実施形態では、セキュリティメタデータは、移行マーケットプレイスサービス自体によって維持され得る。
【0109】
移行候補識別要求またはクエリは、移行ファシリテーターからマーケットプレイスサービスで受信され得る(要素2407)。クライアントのアクセス許可及び/またはデータ難読化要件に基づいて検出サービスデータベースから取得された構成データを制限するフィルタ仕様またはクエリは、検出サービスに送信され得る(要素2410)。いくつかの実施形態では、移行マーケットプレイスサービスは、フィルタ仕様またはクエリを送信し得る。他の実施形態では、移行候補照合アルゴリズムのための実行可能コードは、移行ファシリテーターによって供給され得て、プロバイダネットワークの異なるサービス(コード用のサーバの事前割り当てを必要としないパッケージ化プログラム実行サービスなど)で実行され得て、その結果、フィルタ仕様またはクエリが送信される。
【0110】
フィルタリングを受けて取得された構成情報は、例えば、移行ファシリテーターがクライアントの実行環境の移行を支援することに関心があることを示す、1つまたは複数の移行提案を生成するために使用し得る(要素2413)。少なくともいくつかの実施形態では、提案は予備コスト見積を含み得る。マーケットプレイスサービスは、提案が適用されるクライアントに、プログラムインターフェースを介して提案の表現を送信し得る(要素2416)。任意選択で、プログラムインターフェースを介した提案のクライアントの受け入れに応答して、移行マーケットプレイスサービスは、個別の移行計画または実施サービスのワークフローを開始し得る(要素2419)。
【0111】
様々な実施形態では、
図9、
図17、及び
図24のフロー図に示されたもの以外の少なくともいくつかの動作は、上述の構成検出関連及び移行マーケットプレイス関連技術を実施するために使用され得ることに留意されたい。示される動作のうちのいくつかは、いくつかの実施形態では、実施され得ないか、または逐次ではなく異なる順序で、または並列で実施され得る。
【0112】
ユースケース
上述の、複数のネットワークでの様々なソースからの構成データの自動収集、結合及び視覚化、ならびに移行関連のオンラインマーケットプレイスを実施する技術は、様々な実施形態で有用であり得る。顧客所有及びプロバイダ所有のリソースに分散された複雑なアプリケーションスタックの場合、説明された構成検出サービスは、様々なレベルの粒度、信頼性及び精度を有する多様なソースからのアプリケーション構成データを結合及び選別することができ得る。サービスは、標準化されたオントロジーベースの命名規則に従って編成された収集されたデータを、顧客がアプリケーションのプロバイダネットワーク環境への移行を計画し実施するのに役立つサービスなど、より高度なサービスを構築するために使用できるAPIを含む、使い易いプログラミングインターフェースを介して公開し得る。構成検出サービス情報の視覚化構成要素により、顧客はアプリケーションスタック全体の概要を把握し易くなると共に、リソース容量計画、パフォーマンスのデバッグ、及びトラブルシューティングに役立つ、所望の詳細レベルにドリルダウンし易くなり得る。移行マーケットプレイスサービスは、アプリケーションをプロバイダネットワークに移行することに潜在的に関心があり得るが、移行を計画し実施する方法については、確かな技術的専門知識を有し得ない、アプリケーション所有者を、移行のニーズを有するアプリケーション所有者を支援することができ得る移行ファシリテーターまたは専門家に紹介することができる仲介として機能し得る。移行サービスは、所与のアプリケーション環境に関して提供された情報が、アプリケーション所有者のセキュリティ基準を満たしていることを保証し得て、移行ファシリテーターを選択した顧客の移行計画及び実施サービスへのスムーズな移行をサポートし得る。
【0113】
本開示の実施形態は、以下の条項を鑑みて説明できる。
1.ネットワークアクセス可能な構成検出サービスの1つまたは複数のコンピューティングデバイスを備え、
前記1つまたは複数のコンピューティングデバイスは、
第1のデータソースから、特定のクライアントに関連付けられた構成アイテムに関する第1のデータセットを受信し、
前記第1のデータセットの分析に少なくとも部分的に基づいて、前記特定のクライアントに関連付けられた特定の構成アイテムのサービス側識別子を生成し、前記第1のデータセットが、前記第1の構成アイテムの第1のデータソース側識別子を含み、前記第1のデータセットが、前記特定の構成アイテムの1つまたは複数の属性の第1の集合を含み、
第2のデータソースから、前記特定のクライアントに関連付けられた構成アイテムに関する第2のデータセットを受信し、
前記第2のデータセットが前記特定の構成アイテムの1つまたは複数の属性の第2の集合を含むと決定し、前記第2のデータセットが前記第1のデータソース側識別子を含まず、
前記第1のデータソースに関連付けられた第1の信頼スコアに少なくとも部分的に基づいて、また、前記第2のデータソースに関連付けられた第2の信頼スコアに少なくとも部分的に基づいて、前記特定の構成アイテムに対応する結合構成レコードを更新し、前記結合構成レコードは、前記特定の構成アイテムの複数の属性を含み、
プログラムインターフェースを介して受信されたクエリに応答して、前記結合構成レコードの少なくとも一部の表現を送信するように構成された、
システム。
【0114】
2.前記1つまたは複数のコンピューティングデバイスが、
一括インポートプログラムインターフェースを介して、前記第1のデータセットを受信し、
イベントレベルのプログラムインターフェースを介して、前記第2のデータセットを受信するように構成された、条項1に記載のシステム。
【0115】
3.前記1つまたは複数のコンピューティングデバイスが、
プログラムインターフェースを介して、第1のアイテムグループ記述子の指示を受信し、前記第1のアイテムグループ記述子が、(a)アプリケーションに関連付けられた複数の構成アイテムの予想される相互接続トポロジ、(b)前記アプリケーションに関連付けられた予想されるアイテム名リスト、または(c)前記アプリケーションに関連付けられた一対の構成アイテム間の通信の予想されるパターンのうちの1つまたは複数を示し、
前記特定の構成アイテムの1つまたは複数の属性に少なくとも部分的に基づき、また、前記第1のアイテムグループ記述子に少なくとも部分的に基づいて、特定のアイテムグループタグを有する特定のアイテムグループのメンバーとして前記特定の構成アイテムを指定し、
前記特定のアイテムグループタグが、前記第1の結合構成レコードに割り当てられているという指示を格納するように構成された、条項1に記載のシステム。
【0116】
4.前記1つまたは複数のコンピューティングデバイスが、
第3のデータセットの分析に少なくとも部分的に基づいて、1つまたは複数のネットワークパケットが、難読化仲介を介して送信エンドポイントから受信エンドポイントで受信されたことを決定し、前記受信エンドポイントが、前記構成検出サービスでの第2の構成アイテムによって表され、前記送信エンドポイントのための代表的な構成アイテムのアイデンティティが前記構成検出サービスで決定されておらず、
前記送信エンドポイントに関してエンドポイント検出アルゴリズムの実行を開始し、
前記エンドポイント検出アルゴリズムの結果に少なくとも部分的に基づいて、第2の結合構成レコードを更新するように構成される、条項1に記載のシステム。
【0117】
5.前記1つまたは複数のコンピューティングデバイスが、
前記特定の構成アイテムを含む、複数の構成アイテムの個々の関連性スコアにそれぞれの関連性スコアを割り当て、
前記特定の構成アイテムに割り当てられた関連性スコアに少なくとも部分的に基づいて、第2のクエリに対する応答を生成するように構成される、条項1に記載のシステム。
【0118】
6.ネットワークアクセス可能な構成検出サービスの1つまたは複数のコンピューティングデバイスによって、
第1の構成データソースによって生成された第1のデータセットの分析に少なくとも部分的に基づいて、特定のクライアントに関連付けられた特定の構成アイテムのサービス側識別子を生成することであって、前記第1のデータセットが、前記特定の構成アイテムの1つまたは複数の属性の第1の集合を含む、前記生成することと、
第2のデータセットが、前記特定の構成アイテムの1つまたは複数の属性の第2の集合を含むことを決定することであって、前記第2のデータセットが前記サービス側識別子を含まない、前記決定することと、
前記第1の構成データソースに関連付けられた第1の信頼スコアに少なくとも部分的に基づいて、前記特定の構成アイテムに対応する第1の結合構成レコードを更新することと、
プログラムインターフェースを介して受信されたクエリに応答して、前記第1の結合構成レコードの少なくとも一部の表現を送信することとを実行する、方法。
【0119】
7.前記1つまたは複数のコンピューティングデバイスによって、
前記ネットワークアクセス可能な構成検出サービスの一括インポートプログラムインターフェースを介して、前記クライアントの構成管理データベースからエクスポートされた前記第1のデータセットを受信することと、
前記ネットワークアクセス可能な構成検出サービスのイベントレベルのプログラムインターフェースを介して、前記第2のデータセットを受信することとを実行することをさらに含む、条項6に記載の方法。
【0120】
8.前記1つまたは複数のコンピューティングデバイスによって、
第3のデータセットに含まれる1つまたは複数の属性の第3の集合の検査に少なくとも部分的に基づいて、第2の構成アイテムに対して指定された第2のサービス側識別子を生成することと、
前記第2の構成アイテムに関連付けられた第2の結合構成レコードを格納することと、
前記第2の結合構成レコードを格納した後、1つまたは複数の属性の前記第3の集合が、前記第1の結合構成レコードが更新された前記特定の構成アイテムに関連付けられていることを決定することと、
前記第2の結合構成レコードの内容に少なくとも部分的に基づいて前記第1の結合構成レコードを変更することと、
前記第2の結合構成レコードを削除することとを実行することをさらに含む、条項6に記載の方法。
【0121】
9.1つまたは複数の属性の前記第3の集合が、前記特定の構成アイテムに関連付けられていると前記決定することが、(a)プログラムインターフェースを介して修正要求を受信すること、または(b)リソース使用状況相関分析を実行することのうちの1つまたは複数を含む、条項8に記載の方法。
【0122】
10.前記1つまたは複数のコンピューティングデバイスによって、
プログラムインターフェースを介して、第1のアイテムグループ記述子の指示を受信することであって、前記第1のアイテムグループ記述子が、(a)アプリケーションに関連付けられた複数の構成アイテムの予想される相互接続トポロジ、(b)前記アプリケーションに関連付けられた予想されるアイテム名リスト、(c)前記アプリケーションに関連付けられた一対の構成アイテム間の通信の予想されるパターンのうちの1つまたは複数を示す、前記受信することと、
前記特定の構成アイテムの1つまたは複数の属性に少なくとも部分的に基づき、また、前記第1のアイテムグループ記述子に少なくとも部分的に基づいて、特定のアイテムグループタグを有する特定のアイテムグループのメンバーとして前記特定の構成アイテムを指定することと、
前記特定のアイテムグループタグが前記第1の結合構成レコードに割り当てられているという指示を格納することとを実行することをさらに含む、条項6に記載の方法。
【0123】
11.前記1つまたは複数のコンピューティングデバイスによって、
第3のデータセットの分析に少なくとも部分的に基づいて、1つまたは複数のネットワークパケットが、難読化仲介を介して送信エンドポイントから受信エンドポイントで受信されたことを決定することであって、前記受信エンドポイントが、前記構成検出サービスでの第2の構成アイテムによって表され、前記送信エンドポイントのための代表的な構成アイテムのアイデンティティが前記構成検出サービスで決定されていない、前記決定することと、
前記送信エンドポイントに関してエンドポイント検出アルゴリズムの実行を開始することと、
前記エンドポイント検出アルゴリズムの結果に少なくとも部分的に基づいて、第2の結合構成レコードを更新することとを実行することをさらに含む、条項6に記載の方法。
【0124】
12.前記エンドポイント検出アルゴリズムが、(a)接続確立要求のシーケンス及び接続終了要求を発行することと、(b)連続するネットワークパケットの受信間の遅延と、連続するネットワークパケットの送信間の遅延を照合することと、(c)パケットシーケンス番号を分析することのうちの1つまたは複数を含む、条項11に記載の方法。
【0125】
13.前記1つまたは複数のコンピューティングデバイスによって、
前記特定の構成アイテムを含む、複数の構成アイテムの個々の関連性スコアにそれぞれの関連性スコアを割り当てることと、
第2の構成アイテムに割り当てられた関連性スコアに少なくとも部分的に基づいて、第2のクエリに対する応答を生成することとを実行することをさらに含む、条項6に記載の方法。
【0126】
14.前記1つまたは複数のコンピューティングデバイスによって、
前記第2の構成アイテムの関連性スコアを、(a)前記第2の構成アイテムに関連付けられた繰り返し頻度、(b)前記第2の構成アイテムに関連付けられたリソース使用状況、または(c)前記第2の構成アイテムに関連付けられたクエリ履歴のうちの1つまたは複数に少なくとも部分的に基づいて決定することを実行することをさらに含む、条項13に記載の方法。
【0127】
15.前記1つまたは複数のコンピューティングデバイスによって、
特定のアプリケーションに関連付けられた複数の結合構成レコードを第1のデータストアに格納することであって、前記第1のデータストアが、第1の平均レコード取得待ち時間を有し、前記複数の結合構成レコードの個々のレコードが関連するタイムスタンプを有する、前記格納することと、
前記第1のデータストアから第2のデータストアへの複数の結合構成レコードの少なくとも1つのサブセットを、関連するタイムスタンプに関して逆時間順にロードすることであって、前記第2のデータストアが、前記第1の平均レコード取得待ち時間より短い第2の平均レコード取得待ち時間を有する、前記ロードすることと、
前記第2のデータストアを使用して、特定のアプリケーションに対して行われたテンポラルクエリへの応答を提供することとを実行することをさらに含む、条項6に記載の方法。
【0128】
16.プログラム命令を格納する非一時的なコンピュータアクセス可能な記憶媒体であって、
1つまたは複数のプロセッサ上で実行されるときに、
第1の構成データソースによって提供された第1のデータセットの分析に少なくとも部分的に基づいて、特定のクライアントに関連付けられた特定の構成アイテムのサービス側識別子を生成し、前記第1のデータセットが、前記特定の構成アイテムの1つまたは複数の属性の第1の集合を含み、前記第1のデータセットが前記サービス側識別子を含まず、
第2のデータセットが、前記特定の構成アイテムの1つまたは複数の属性の第2の集合を含むことを決定し、前記第2のデータセットが前記サービス側識別子を含まず、
前記第1の構成データソースに関連付けられた第1の信頼スコアに少なくとも部分的に基づいて、前記特定の構成アイテムに対応する第1の結合構成レコードを更新し、
プログラムインターフェースを介して受信されたクエリに応答して、前記第1の結合構成レコードの少なくとも一部の表現を送信する、前記非一時的なコンピュータアクセス可能な記憶媒体。
【0129】
17.前記1つまたは複数のプロセッサで実行されたとき、前記命令が、
第1のアイテムグループ記述子の内容を決定し、前記第1のアイテムグループ記述子が、(a)アプリケーションに関連付けられた複数の構成アイテムの予想される相互接続トポロジ、(b)前記アプリケーションに関連付けられた予想されるアイテム名リスト、(c)前記アプリケーションに関連付けられた一対の構成アイテム間の通信の予想されるパターンのうちの1つまたは複数を示し、
前記特定の構成アイテムの1つまたは複数の属性に少なくとも部分的に基づき、前記第1のアイテムグループ記述子に少なくとも部分的に基づいて、特定のアイテムグループタグを有する特定のアイテムグループのメンバーとして前記特定の構成アイテムを指定し、
前記特定のアイテムグループタグが、前記第1の結合構成レコードに割り当てられているという指示を格納する、条項16に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【0130】
18.前記1つまたは複数のプロセッサで実行されたとき、前記命令が、
第3のデータセットの分析に少なくとも部分的に基づいて、1つまたは複数のネットワークパケットが、難読化仲介を介して送信エンドポイントから受信エンドポイントで受信されたことを決定し、前記受信エンドポイントが、検出サービスでの第2の構成アイテムによって表され、前記送信エンドポイントのための代表的な構成アイテムのアイデンティティが前記検出サービスで決定されておらず、
前記送信エンドポイントに関してエンドポイント検出アルゴリズムの実行を開始し、
前記エンドポイント検出アルゴリズムの結果に少なくとも部分的に基づいて、第2の結合構成レコードを更新する、条項16に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【0131】
19.前記1つまたは複数のプロセッサで実行されたとき、前記命令が、
前記特定の構成アイテムを含む、複数の構成アイテムの個々の関連性スコアにそれぞれの関連性スコアを割り当て、
前記特定の構成アイテムに割り当てられた関連性スコアに少なくとも部分的に基づいて、第2のクエリに対する応答を生成する、条項16に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【0132】
20.前記第1の構成データソースが、第1のプロバイダネットワーク運用者のデータセンターでインスタンス化され、前記1つまたは複数のプロセッサ上で実行されたとき、前記命令が、
前記第1の構成データソース、第2の構成データソース及び第3の構成データソースを含む複数のデータソースへのネットワーク接続を確立して、前記特定のクライアントの1つまたは複数のアプリケーションに関する構成データを取得し、前記第2の構成データソースが、第2のプロバイダネットワーク運用者のデータセンターでインスタンス化され、前記第3の構成データソースが、プロバイダネットワークの一部ではないデータセンターでインスタンス化される、条項16に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【0133】
例示のコンピュータシステム
少なくともいくつかの実施形態では、構成検出サービスの構成要素、関連付けられた視覚化サービス及び/または移行マーケットプレイスサービスを実施するための技術を含む、本明細書中に記載する技術の1つまたは複数の一部または全部を実施するサーバは、1つまたは複数のコンピュータアクセス可能な媒体を含む、または1つまたは複数のコンピュータアクセス可能な媒体にアクセスするように構成された汎用コンピュータシステムを含み得る。
図25は、そのような汎用コンピューティングデバイス9000を例示する。例示される実施形態では、コンピューティングデバイス9000は、入力/出力(I/O)インターフェース9030を介して、システムメモリ9020(非揮発性及び揮発性メモリモジュールの両方を含み得る)に連結される、1つまたは複数のプロセッサ9010を含む。コンピューティングデバイス9000は、I/Oインターフェース9030に連結されるネットワークインターフェース9040をさらに含む。
【0134】
様々な実施形態では、コンピューティングデバイス9000は、1つのプロセッサ9010を含むユニプロセッサシステム、またはいくつかのプロセッサ9010(例えば、2つ、4つ、8つ、または別の適切な数)を含むマルチプロセッサシステムであり得る。プロセッサ9010は、命令を実行することが可能な任意の適切なプロセッサであり得る。例えば、様々な実施形態ではプロセッサ9010は、x86、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の適切なISA等の様々な命令セットアーキテクチャ(ISA)のうちのいずれかを実装する、汎用または埋め込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ9010の各々は、同じISAを一般的に実装し得るが、必ずしも必要とし得ない。いくつかの実施態様では、グラフィックス処理ユニット(GPU)は、従来のプロセッサの代わりに、またはそれに加えて使用され得る。
【0135】
システムメモリ9020は、プロセッサ(複数可)9010によってアクセス可能な命令及びデータを格納するように構成され得る。少なくともいくつかの実施形態では、システムメモリ9020は、揮発性及び非揮発性部分の両方を含み得て、他の実施形態では、揮発性メモリのみが、使用され得る。様々な実施形態では、システムメモリ9020の揮発性部分は、スタティックランダムアクセスメモリ(SRAM)、同期ダイナミックRAM、または任意の他のタイプのメモリなどの任意の適切なメモリ技術を使用して実施され得る。システムメモリの(例えば、1つまたは複数のNVDIMMを含み得る)非揮発性部分に関しては、いくつかの実施形態では、NANDフラッシュデバイスを含むフラッシュベースのメモリデバイスが使用され得る。少なくともいくつかの実施形態では、システムメモリの不揮発性部分は、スーパーキャパシタまたは他の蓄電デバイス(例えば、バッテリ)などの電源を含み得る。様々な実施形態では、メモリスタベースの抵抗ランダムアクセスメモリ(ReRAM)、3次元NAND技術、強誘電RAM、磁気抵抗RAM(MRAM)、または様々なタイプの相変化メモリ(PCM)のうちのいずれかが、少なくともシステムメモリの非揮発性部分に対して使用され得る。例示される実施形態では、上述のそれらの方法、技術、及びデータなどの1つまたは複数の所望の機能を実施するプログラム命令及びデータは、コード9025及びデータ9026として、システムメモリ9020内に格納される。
【0136】
一実施形態では、I/Oインターフェース9030は、ネットワークインターフェース9040、または様々なタイプの永続及び/または揮発性記憶デバイスなどの他の周辺インターフェースを含む、プロセッサ9010、システムメモリ9020、及びデバイス内の任意の周辺デバイス間のI/Oトラフィックを調整するように構成され得る。いくつかの実施形態では、I/Oインターフェース9030は、ある構成要素(例えば、システムメモリ9020)からのデータ信号を、別の構成要素(例えば、プロセッサ9010)による使用に適した形式に変換するために、任意の必要なプロトコル、タイミング、または他のデータ変換を実行し得る。いくつかの実施形態では、I/Oインターフェース9030は、例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス規格、またはユニバーサルシリアルバス(USB)規格の変形など、様々なタイプの周辺バスを通じて取設されるデバイスに対するサポートを含み得る。いくつかの実施形態では、I/Oインターフェース9030の機能は、例えば、ノースブリッジ及びサウスブリッジなどの2つ以上の個別の構成要素に分割され得る。また、いくつかの実施形態では、システムメモリ9020へのインターフェースなどのI/Oインターフェース9030の機能性のうちのいくつかまたはすべては、プロセッサ9010に直接組み込まれ得る。
【0137】
ネットワークインターフェース9040は、データが、コンピューティングデバイス9000と、例えば、
図1〜
図24に例示されるような他のコンピュータシステムまたはデバイスなどの、ネットワーク(1つまたは複数)9050に接続される他のデバイス9060との間で交換されることを可能にするように構成され得る。様々な実施形態では、ネットワークインターフェース9040は、例えば、イーサネットネットワークのタイプなどの任意の適切な有線または無線の一般データネットワークを介した通信をサポートし得る。さらに、ネットワークインターフェース9040は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信/テレフォニネットワークを介した、ファイバチャネルSANなどのストレージエリアネットワークを介した、または任意の他の適切なタイプのネットワーク及び/またはプロトコルを介した通信をサポートし得る。
【0138】
いくつかの実施形態では、システムメモリ9020は、対応する方法及び装置の実施形態を実施するための
図1〜
図24に関して上述のようなプログラム命令及びデータを格納するように構成される、コンピュータアクセス可能な媒体の一実施形態であり得る。しかし、他の実施形態では、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能な媒体上で、受信、送信、または格納され得る。一般的に言えば、コンピュータアクセス可能な媒体は、I/Oインターフェース9030を介してコンピューティングデバイス9000に連結される、磁気媒体または光媒体、例えば、ディスクまたはDVD/CDなどの非一時的記憶媒体またはメモリ媒体を含み得る。非一時的コンピュータアクセス可能記憶媒体はまた、システムメモリ9020または別のタイプのメモリとして、コンピューティングデバイス9000のいくつかの実施形態に含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの任意の揮発性または非揮発性媒体も含み得る。さらに、コンピュータアクセス可能な媒体は、ネットワークインターフェース9040を介して実施され得るような、ネットワーク及び/または無線リンクなどの通信媒体を介して伝送される伝送媒体または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
図25に示されるような複数のコンピューティングデバイスのうちの一部または全部は、様々な実施形態では、記載される機能性を実施するために使用され得て、例えば、様々な異なるデバイス及びサーバ上で実行するソフトウェア構成要素が、機能性を提供するために協働し得る。いくつかの実施形態では、記載される機能性の一部は、汎用コンピュータシステムを使用して実施されることに加えて、またはその代わりに、記憶デバイス、ネットワークデバイス、または特殊目的コンピュータシステムを使用して実施され得る。「コンピューティングデバイス」という用語は、本明細書で使用される場合、少なくともすべてのこれらのタイプのデバイスを指し、これらのタイプのデバイスに限定されない。
【0139】
結論
様々な実施形態は、命令の受信、送信、または格納、及び/またはコンピュータアクセス可能媒体に関する前述の説明に従って実行されたデータをさらに含み得る。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光学媒体、例えば、ディスクまたはDVD/CD−ROM、RAM(例えば、SDRAM、DDR、RDRAM、SRAMなど)、ROMなどの揮発性または不揮発性媒体などの記憶媒体またはメモリ媒体、ならびにネットワーク及び/または無線リンクなどの通信媒体を介して伝送される伝送媒体または電子信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
【0140】
本明細書で図に例示され、説明される様々な方法は、本方法の例となる実施形態を表す。本方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせで実行され得る。方法の順序は、変更され得て、様々な要素の、追加、再順位付け、組み合わせ、除外、変更などがされ得る。
【0141】
本開示の利点を有する当業者に明白であるように、種々の変形及び変更を行い得る。すべてのそのような変形及び変更を含むことを意図しており、したがって、上記説明が限定的な意味ではなく、例示的であると考えるべきである。