(57)【要約】【課題】  構成検出サービスでは、第１のデータソースから取得されたデータセットの分析に基づいて、構成アイテムの一意のサービス側識別子が生成される。サービス側識別子を含まず、異なるデータソースから取得された第２のデータセットにも、同じ構成アイテムに関する情報が含まれるという決定が行われる。【解決手段】  構成アイテムの結合構成レコードが準備される。結合構成レコードは、リポジトリに格納され、プログラムによるクエリに応答するために使用される。【選択図】図９
2020150545.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークアクセス可能な視覚化サービスの１つまたは複数のコンピューティングデバイス
を備えるシステムであって、前記１つまたは複数のコンピューティングデバイスは、
ネットワークアクセス可能な構成検出サービスのリポジトリを対象とする１つまたは複数のクエリの結果に少なくとも部分的に基づいて、クライアントの視覚化ターゲット環境が、第１のプロバイダネットワークの第１のデータセンターで、構成アイテムの第１のセットを含み、前記第１のプロバイダネットワークの外部の第２のデータセンターで、構成アイテムの第２のセットを含むことを決定し、
前記クライアントのクライアント側表示環境の１つまたは複数の制約を検出し、
前記視覚化ターゲット環境の少なくとも部分に関して前記クライアントに提供される構成情報のタイプに少なくとも部分的に基づいて、前記構成情報を表示するために使用する特定のビューカテゴリを選択し、
選択した時間ウィンドウに少なくとも基づいて、前記クライアントの代わりに、ダッシュボードの最近の変更セクションにそれぞれの入力が含まれる前記視覚化ターゲット環境の１つまたは複数の構成アイテムを識別し、
（ａ）前記視覚化ターゲット環境の少なくとも部分及び（ｂ）前記ダッシュボードのグラフィックス表現を示すデータを送信する
ように構成し、前記特定のビューカテゴリは、ツリーカテゴリ、グラフカテゴリ及びテーブルカテゴリを含む複数のビューカテゴリから選択し、前記グラフィックス表現は、前記１つまたは複数の制約の少なくとも部分的に基づいて準備する、システム。
【請求項２】
前記１つまたは複数のコンピューティングデバイスは、
前記視覚化ターゲット環境の特定の構成アイテムのアイデンティティのフィードバックに基づく曖昧性解消を開始することを決定し、
前記ダッシュボード内に表示するため、前記特定の構成アイテムに対する曖昧性解消の要求を前記クライアントに送信し、
プログラムインターフェースを介して受信した、前記特定の構成アイテムのアイデンティティの確認に応答して、
前記アイデンティティの指示をリポジトリ内に保存する
ように構成する、請求項１に記載のシステム。
【請求項３】
前記１つまたは複数のコンピューティングデバイスは、
前記グラフィックス表現の制御要素を介して、前記視覚化ターゲット環境の特定の構成アイテムで受信するネットワークトラフィックの１つまたは複数のパケットに関するソース識別の要求を受信し、
前記１つまたは複数のパケットに対するソース識別動作を開始し、
前記グラフィックス表現を更新して、前記１つまたは複数のパケットの候補ソースとして識別された他の構成アイテムを表示するため、データを送信する
ように構成し、前記１つまたは複数のパケットは、難読化仲介デバイスを介して前記特定の構成アイテムに送信され、前記グラフィックス表現は、前記特定の構成アイテムでの前記１つまたは複数のパケットの受信の指示を含み、前記他の構成アイテムは、前記ソース識別動作の結果に少なくとも基づいて識別する、請求項１または２に記載のシステム。
【請求項４】
前記視覚化ターゲット環境の少なくとも部分的な前記グラフィックス表現は、（ａ）トランザクション要求が生じた第１の構成アイテム、（ｂ）前記トランザクション要求に対応するトランザクション応答を生成する第２の構成アイテム、および（ｃ）前記トランザクション要求に関連付けられた遅延のうち１つまたは複数の指示を含む、請求項１から３のいずれかに記載のシステム。
【請求項５】
前記１つまたは複数のコンピューティングデバイスは、
特定のクライアント側表示環境を介して視覚化要求を満たすことに関連付けられたリソース使用状況見積もりに少なくとも部分的に基づいて、前記視覚化要求で表示された情報を表示するため、異なるクライアント側表示環境を利用するための推奨事項を送信する
ように構成する、請求項１から４のいずれかに記載のシステム。
【請求項６】
１つまたは複数のコンピューティングデバイスによって実施する方法であって、前記方法は、
ネットワークアクセス可能な構成検出サービスのクライアントの環境が、第１のプロバイダネットワークの第１のデータセンターで、構成アイテムの第１のセットを含み、前記第１のプロバイダネットワークの外部の第２のデータセンターで、構成アイテムの第２のセットを含むことを決定することと、
表示される構成情報のタイプに少なくとも部分的に基づいて、グラフカテゴリ及びテーブルカテゴリを含む複数のビューカテゴリから、前記環境の少なくとも部分に関連付けられた構成情報を前記クライアントに表示するために使用する特定のビューカテゴリを選択することと、
構成の変更を表示するそれぞれの入力が表示される前記環境の１つまたは複数の構成アイテムを識別することと、
（ａ）前記環境の少なくとも一部分及び（ｂ）前記構成の変更を表示するそれぞれの入力のグラフィックス表現を示すデータを送信することと
を含み、前記構成情報は、ネットワークアクセス可能な構成検出サービスで保存する、方法。
【請求項７】
前記環境の特定の構成アイテムのアイデンティティのフィードバックに基づく曖昧性解消を開始することを決定することと、
ダッシュボード内に、前記特定の構成アイテムに対する曖昧性解消の要求を表示させることと、
プログラムインターフェースを介して受信した、前記特定の構成アイテムのアイデンティティの確認に応答して、
前記アイデンティティの指示をリポジトリ内に保存することと
をさらに含む、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項６に記載の方法。
【請求項８】
前記グラフィックス表現の制御要素を介して、前記環境の特定の構成アイテムで受信するネットワークトラフィックの１つまたは複数のパケットに関するソース識別の要求を受信することと、
前記１つまたは複数のパケットに対するソース識別動作を開始することと、
前記グラフィックス表現を更新して、前記１つまたは複数のパケットの候補ソースとして識別された他の構成アイテムを表示することと
をさらに含み、前記１つまたは複数のパケットは、難読化仲介デバイスを介して前記特定の構成アイテムに送信され、前記グラフィックス表現は、前記特定の構成アイテムでの前記１つまたは複数のパケット受信の指示を含み、前記他の構成アイテムは、前記ソース識別動作の結果に少なくとも基づいて識別する、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項６または７に記載の方法。
【請求項９】
前記環境の少なくとも一部分の前記グラフィックス表現は、（ａ）トランザクション要求が生じた第１の構成アイテム、（ｂ）前記トランザクション要求に対応するトランザクション応答を生成する第２の構成アイテム、および（ｃ）前記トランザクション要求に関連付けられた遅延のうち１つまたは複数の指示を含む、請求項６から８のいずれかに記載の方法。
【請求項１０】
特定のクライアント側表示環境に関連付けられた視覚化要求を前記クライアントから受信することと、
前記特定のクライアント側表示環境を介して前記視覚化要求を満たすことに関連付けられたリソース使用状況見積もりに少なくとも部分的に基づいて、前記視覚化要求で要求された情報を表示するためのオフラインツールを利用するための推奨事項を送信することと
をさらに含む、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項６から９のいずれかに記載の方法。
【請求項１１】
前記グラフィックス表現の第１のインタラクティブ構成要素を介して、前記クライアントからタグ付け要求を受信することと、
前記タグ付け要求で表示されたタグと、第１の構成アイテムとを関連付けることと、
前記環境内で、特定のアプリケーションアーキテクチャを実施する別の分散アプリケーションインスタンスを識別することと、
第２の分散アプリケーションインスタンスの第２の構成アイテムをターゲットとする第２のタグ付け要求を受信せずに、前記タグ付け要求で表示されたタグと、前記第２の構成アイテムとを関連付けることと、
前記第２の構成アイテムが前記タグと関連付けられていることを表示するため、前記グラフィックス表現の更新を開始することと
をさらに含み、前記タグ付け要求は、例示的ターゲットとして第１の分散アプリケーションインスタンスの前記第１の構成アイテムを表示し、前記第１の分散アプリケーションインスタンスは、前記特定のアプリケーションアーキテクチャを実施する、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項６から１０のいずれかに記載の方法。
【請求項１２】
前記グラフィックス表現の第２のインタラクティブ構成要素を介して、前記タグに関連付けられた構成アイテムに対する段階的な移行要求を受信することと、
ネットワークアクセス可能な移行サービスとの１つまたは複数のプログラムによる相互作用を使用して、選択した宛先ネットワークへの複数の構成アイテムの移行を開始することと
をさらに含み、前記複数の構成アイテムは、前記第１の構成アイテム及び前記第２の構成アイテムを含む、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項１１に記載の方法。
【請求項１３】
前記第１の構成アイテムを含む、第１の分散アプリケーション環境の少なくともいくつかの構成アイテムが、前記宛先ネットワークに移行されていることを表示するため、前記グラフィックス表現を変更することと、
前記グラフィックス表現を介して、（ａ）前記第１の構成アイテムの移行前に得た前記第１の分散アプリケーション環境のパフォーマンスメトリック、及び（ｂ）前記第１の構成アイテムの移行後の前記第１の分散アプリケーション環境の対応するパフォーマンスメトリックの指示をもたらすことと
をさらに含む、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項１２に記載の方法。
【請求項１４】
（ａ）プロバイダネットワークの可用性コンテナ境界、（ｂ）データセンターの境界、（ｃ）ラックの境界、（ｄ）ルームの境界、（ｅ）ネットワーク相互接続トポロジの境界、（ｆ）物理マシンの境界、（ｇ）処理コンテナの境界、または（ｇ）仮想マシンの境界の１つまたは複数を含むセットから、特定の位置ベースの境界カテゴリを選択することと、
前記グラフィックス表現内で前記特定の位置ベースの境界カテゴリの少なくとも１つのインスタンスの表示を開始することと
をさらに含み、前記選択は、前記特定の位置ベースの境界カテゴリの指示を前記クライアントから受信せずに実施する、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項６から１３のいずれかに記載の方法。
【請求項１５】
前記グラフィックス表現のインタラクティブ構成要素を介して、構成情報を表示する期間の指示を受信することと、
（ａ）前記期間の第１の時点の段階での１つまたは複数の構成アイテムの構成ステータス、及び（ｂ）前記期間の第２の時点の段階での前記１つまたは複数の構成アイテムの構成ステータスを表示するため、前記グラフィックス表現の更新を開始することと
をさらに含む、前記１つまたは複数のコンピューティングデバイスによって実施する、請求項６から１４のいずれかに記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
多くの企業及び他の組織は、（例えば、ローカルネットワークの一部として）同じ場所に配置される、またはその代わりに、複数の異なる地理的場所に配置される（例えば、１つまたは複数のプライベートまたはパブリックの中間ネットワークを介して接続される）コンピューティングシステムを使用するなどの、それらの運用をサポートするために、非常に多くのコンピューティングシステムを相互接続するコンピュータネットワークを運用している。例えば、単一の組織によって及び単一の組織のために運用されているプライベートデータセンター（例えば、エンタープライズデータセンター）及び、コンピューティングリソースを顧客に提供するために、事業としてエンティティによって運用されているパブリックデータセンターなど、かなりの数の相互接続されたコンピューティングシステムを収容するデータセンターが一般的になっている。一部のパブリックデータセンター運用者は、様々な顧客が所有するハードウェアのためのネットワークアクセス、電力、安全な設置設備を提供し、他のパブリックデータセンター運用者は、顧客による使用のために使用可能になったハードウェアリソースも含む「フルサービス」設備を提供する。
【０００２】
コモディティハードウェアの仮想化技術の出現により、多様なニーズを持つ多くの顧客にとって大規模なコンピューティングリソースを管理する点で利点がもたらされ、様々なコンピューティングリソースは、複数の顧客によって効率的及び安全に共有できるようになる。例えば、仮想化技術は、単一の物理コンピューティングマシンによってホストされる１つまたは複数の仮想マシンを各ユーザに提供することによって、単一の物理コンピューティングマシンを複数のユーザの間で共有することを可能にし得る。そのような各仮想マシンは、ユーザに所与のハードウェアコンピューティングリソースの唯一の運用者及び管理者であると錯覚させる、個別の論理コンピューティングシステムとして機能するソフトウェアシミュレーションと考えることができ、様々な仮想マシン間のアプリケーション隔離を提供する。
【０００３】
洗練されたアプリケーションの実行環境は、様々なリソースにまたがり得て、例えば、アプリケーションのいくつかの構成要素は、仮想マシンを使用して実行され得て、他の構成要素は、非仮想化サーバを使用して実行され得る。場合によっては、アプリケーションまたは関連付けられた一連のアプリケーションのリソースを、複数の異なるデータセンターに分散し得る。実行環境の複雑さにより、様々なアプリケーション構成要素間の関係及び依存関係を完全に理解することが難しくなり得る。そのような明瞭性の欠如により、顧客所有の設備からプロバイダネットワーク環境へのアプリケーションの移行など、重要なビジネス上の意思決定を下すことがより難しくなり得る。
【図面の簡単な説明】
【０００４】
【図１】少なくともいくつかの実施形態による、マルチデータセンターアプリケーションのためのインテリジェント構成検出サービスを実施し得る例示的なシステム環境を示す。
【図２】少なくともいくつかの実施形態による、構成情報を編成するために使用され得る検出サービスオントロジーの例示的な構成要素を示す。
【図３】少なくともいくつかの実施形態による、それぞれの信頼スコアを有する複数のデータソースから生の構成情報を結合して、選別属性値リストを生成する例を示す。
【図４】少なくともいくつかの実施形態による、構成検出サービスで実施し得る例示的なアプリケーションプログラミングインターフェースを示す。
【図５】少なくともいくつかの実施形態による、構成アイテムが果たす役割を自動的に検出するために検出サービスで使用され得るアプリケーションアーキテクチャパターンの例を示す。
【図６】少なくともいくつかの実施形態による、構成検出サービスでのネットワークパケットのソースアイデンティティ検出アルゴリズムの使用を示す。
【図７】少なくともいくつかの実施形態による、関連性スコアを構成アイテムに割り当てるために構成検出サービスで使用され得る例示的な要素を示す。
【図８】少なくともいくつかの実施形態による、テンポラルクエリに対する応答性を向上させるために構成検出サービスで使用され得る技術の概要を示す。
【図９】少なくともいくつかの実施形態による、構成検出サービスで実行され得る動作の態様を示すフロー図である。
【図１０】少なくともいくつかの実施形態による、検出サービスで収集された構成レコードの視覚化サービスを実施し得る例示的なシステム環境を示す。
【図１１】少なくともいくつかの実施形態による、視覚化サービスによって自動的に実施され得るビュー間の例示的なコンテキストベースの遷移を示す。
【図１２】少なくともいくつかの実施形態による、視覚化サービスのグラフィカルユーザインターフェースの例示的な要素を示す。
【図１３】少なくともいくつかの実施形態による、視覚化サービスの支援を受けて表示され得るトランザクション関連情報の例を示す。
【図１４】少なくともいくつかの実施形態による、視覚化サービスの支援を受けて表示され得るネットワークトラフィック関連情報の例を示す。
【図１５】少なくともいくつかの実施形態による、視覚化サービスの支援を受けて経時的な構成変更の視覚化を得るためのスライダ制御の使用例を示す。
【図１６】少なくともいくつかの実施形態による、アプリケーション実行環境の段階的な移行を開始するための視覚化サービスの使用例を示す。
【図１７】少なくともいくつかの実施形態による、構成レコードのグラフィカル表現を提供するために視覚化サービスによって実行され得る動作の態様を示すフロー図である。
【図１８】少なくともいくつかの実施形態による、構成検出サービスで収集されたデータを利用する移行マーケットプレイスサービスを実施し得る例示的なシステム環境を示す。
【図１９】少なくともいくつかの実施形態による、クライアントと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用を示す。
【図２０】少なくともいくつかの実施形態による、移行ファシリテーターと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用の第１のセットを示す。
【図２１】少なくともいくつかの実施形態による、移行ファシリテーターと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用の第２のセットを示す。
【図２２】少なくともいくつかの実施形態による、移行マーケットプレイスサービスのメタデータリポジトリに格納され得るエントリの例を示す。
【図２３】少なくともいくつかの実施形態による、移行マーケットプレイスサービスによって実施され得る例示的なウェブベースのインターフェースを示す。
【図２４】少なくともいくつかの実施形態による、移行マーケットプレイスサービスで実行され得る動作の態様を示すフロー図である。
【図２５】少なくともいくつかの実施形態で使用され得る例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【０００５】
実施形態が、いくつかの実施形態及び例示の図面の例として本明細書に記載されている一方で、当業者は、実施形態が記載される実施形態または図面に限定されないことを認識するであろう。それらについての図面及び詳細な説明は、実施形態を特定の開示される形
式に限定することを意図しておらず、逆に、その意図は、添付の特許請求の範囲によって定義される精神及び範囲内にあるすべての修正物、同等物、及び代替物をカバーすることである。本明細書で使用される表題は、構成を目的としているにすぎず、詳細な説明または請求項の範囲を限定するために使用されることを意味していない。この出願全体を通じて使用されるように、用語「ｍａｙ」は、必須な意味（すなわち、〜しなければならないを意味する）ではなく、許容的な意味（すなわち、〜する可能性があるを意味する）で使用される。同様に、単語「ｉｎｃｌｕｄｅ（含む）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、及び「ｉｎｃｌｕｄｅｓ（含む）」は、「含むが、その対象を限定しない」ことを意味する。特許請求の範囲で使用されるとき、単語「ｏｒ（または）」は、は包括の「または」として使用され、排他の「または」としては使用されない。例えば、句「ｘ、ｙまたはｚのうちの少なくとも１つ」は、ｘ、ｙ及びｚのいずれか１つ、及びそれらの任意の組み合わせを意味する。
【０００６】
アプリケーションの移行に関する意思決定を行う際のネットワークアクセス可能検出サービスで実施されるインテリジェント構成検出技術のための方法及び装置の様々な実施形態、構成情報の自動的に更新されたビューを提供するための視覚化技術、ならびに検出サービスの顧客及び移行ファシリテーターを支援する移行マーケットプレイスサービスが説明される。高レベルで、構成検出サービスは（他の機能の中でも）、構成アイテム（アプリケーションを構成する物理的または仮想化された計算サーバ、記憶デバイス、データベース、ソフトウェアスタック構成要素など）の自動検出、様々なデータソースによって収集された生のデータに基づくアプリケーションパターンの分散、構成アイテムへの一意の識別子の割り当て、相互作用（例えば、トランザクション、ネットワークトラフィックフローなど）の追跡、アイテム間の依存関係、経時的なアプリケーション構成の変化、及び複雑なアプリケーション実行環境のための望ましい粒度のレベルでのパフォーマンス監視などを可能にし得る。構成検出サービスは、構成アイテムがアプリケーションを形成する構成要素であるため、一部の環境では、アプリケーション検出サービスまたはリソース検出サービスとも呼ばれ得る。構成検出サービスは、構成関連クエリへの応答を取得するためにサービスクライアントによって使用することができる、及び移行マーケットプレイスサービス及び高レベルの機能を提供する視覚化サービスを含む他のサービスによってビルディングブロックとして使用することもできる、様々なプログラムインターフェース（例えば、ウェブサービスアプリケーションプログラムインターフェース、コマンドラインインターフェースなど）を実施し得る。いくつかの実施形態では、構成検出サービスに関連付けられた、または構成検出サービスの一部である視覚化サービスは、例えば、顧客が、使用されている特定のクライアント側表示環境に適合したアプリケーション実行環境のカスタマイズされた表現を見ることができ、視覚化インターフェースを介して構成関連のクエリを発行し、及び／またはあるリソースのセットから別のリソースのセットへの部分的または完全なアプリケーション移行を開始することができ得る、構成検出サービスのクライアントに対する相互作用の主なモードの１つとして機能し得る。様々な実施形態では、移行マーケットプレイスは、例えば、クライアント設備からクラウドベースのコンピューティング環境へ、またはあるクラウドベースの環境から別のクラウド環境へアプリケーションを移動するために、クライアントが適切な移行ファシリテーターを識別できるようにする、及び移行ファシリテーターが候補者クライアントを識別するための仲介サービスとして機能し得る。
【０００７】
少なくともいくつかの実施形態では、サービスの一部または全部をプロバイダネットワークで実施し得る。インターネット及び／または他のネットワークを介して、分散しているクライアントのセットにアクセス可能な（様々な種類のクラウドベースのコンピューティングまたはストレージサービスなどの）１つまたは複数のサービスを提供するために、企業または公共部門の組織などのエンティティによって設定されたネットワークは、本明細書では、プロバイダネットワークと称され得る。プロバイダネットワークは、「パブリ
ッククラウド」環境と呼ばれることもあり得る。プロバイダネットワークのリソースは、場合によっては、複数のデータセンターに分散され得て、データセンターは多数の都市、州、国に分散され得る。構成検出サービス、視覚化サービス、及び／または移行マーケットプレイスサービスは、特定のプロバイダネットワーク内で実施され得る一方で、これらのサービスの一部または全部は、他のプロバイダネットワークから（例えば、異なる事業組織によって運営されるプロバイダネットワークから）の情報にアクセスするための適切なアクセス権が承認され付与され得ることに留意されたい。例えば、運用者Ｏ１によって実行されるプロバイダネットワークＰＮ１で実行している構成検出サービスは、運用者Ｏ２によって実行されるプロバイダネットワークＰＮ２から（ならびにクライアント所有のデータセンター及びＰＮ１の独自のデータセンターなどの他の設備から）収集された構成データを収集することができ得て、ＰＮ１で実行している視覚化サービスにより、クライアントは、ＰＮ２で実行している構成要素を含む分散アプリケーションアーキテクチャを見ることができ得て、及び／またはＰＮ１で実行している移行マーケットプレイスサービスは、ＰＮ２で実行している構成要素をＰＮ１に移行するために、移行ファシリテーターに関する情報をクライアントに提供でき得る。いくつかの実施形態では、視覚化サービス及び／または移行マーケットプレイスサービスは、構成検出サービスのサブ構成要素として実施され得る。構成検出サービスは、本明細書では単に検出サービスとも呼ばれ得る。
【０００８】
構成検出サービスでは、構成レコードのリポジトリを構築するために、多種多様なデータソースを使用し得る。例えば、いくつかの実施形態では、データソースは、（構成データが、プログラムインターフェース経由で一括してインポートされることがあり得る）クライアントデータセンターの既存の構成管理データベース、様々なリソースで構成検出サービスのためにインストールされたエージェントまたは構成データコレクタ、サードパーティ製または業界標準の構成管理ツールなどを含み得る。各データソースは、例えば、構成アイテムのいくつかのセットに対するいくつかの属性と値とのペアを含む、構成情報を１つまたは複数の時点で構成検出サービスに提供し得る。いくつかのデータソースは、一定の間隔で生の構成データを提供し得て、他のデータソースは、少なくともいくつかの実施形態でイベント駆動型であり得る。様々な実施形態のサービスで（例えば、サービスのためにインストールされたエージェントを介して）値が取得される構成アイテム属性は、とりわけ、ユーザ情報（例えばユーザ名及びホームディレクトリなど）、グループ情報（例えばグループ名やグループメンバーシップなど）、インストールされたソフトウェアパッケージ／プログラムのリスト、及びカーネルモジュールのリストを含み得る。（関連付けられたプロセス識別子を含む）プロセスの作成／終了、ドメインネームサービス（ＤＮＳ）クエリ及び応答、ネットワークスタックの様々な層でのパケットの送受信など、いくつかの異なるタイプの構成関連イベントに関する情報はまた、少なくともいくつかの実施形態で収集し得る。（例えば、使用されているイーサネット（登録商標）、サポートされている最大帯域幅、関連付けられたメディアアクセス制御またはＭＡＣアドレスなどのネットワーク相互接続のタイプを含む）物理的及び／または仮想的なネットワークインターフェースの様々な属性の値は、対象の実行環境のデバイスから収集し得る。様々なリソースで使用されているＴＣＰ（伝送制御プロトコル）またはＵＤＰ（ユーザデータグラムプロトコル）ポートなどの特定のネットワークポートを識別し得て、ＴＣＰバージョン４またはバージョン６の接続属性（接続のいずれかの端のプロセスの識別子、接続確立時間、接続が開いたままの期間など）を収集し得る。例えば、様々なホスト及び仮想マシンで使用されているオペレーティングシステムの特定のバージョンを含む、オペレーティングシステム関連の属性が、いくつかの実施形態で収集され得る。異なる実施形態では、システムパフォーマンス及びプロセスパフォーマンスメトリックを様々な間隔で収集し得る。いくつかの実施形態では、検出サービスの複数のエージェントを、所与のホストまたはデバイスにインストールして、１つまたは複数の構成アイテムの構成属性値のそれぞれのサブセットを収集し得て、他の実施形態では、単一のエージェントまたはツールは、いくつかの異なるソースから属性値を抽出することができ得る。
【０００９】
構成検出サービスは、それぞれの粒度のレベルで、及びそれぞれのスケジュールに従って、様々なデータソースから収集された、期限切れの、競合する及び／または曖昧な可能性のある生の構成情報のコンバイナ及びキュレータとして機能し得る。異なるデータソースから、いくつかの実施形態では、構成検出サービスは、結合され、選別された構成レコードを生成し格納する役割を果たし得て、そのような結合レコードは、視覚化及び移行マーケットプレイスサービス（または検出サービスに依存する他のサービス）の構成データの信頼できるソースとして機能し得る。少なくともいくつかの実施形態では、構成検出サービスは、サービスによって定義されたオントロジーに少なくとも部分的に基づいて、一意のサービス側識別子を生成して、それぞれの構成アイテムに割り当て得る。例えば、所与のハードウェアサーバは、（経時的に変化し得る）サーバのＩＰアドレスの１つに基づいてあるデータソースによって、サーバ名またはＭＡＣ（メディアアクセス制御）アドレスに基づいて別のデータソースによって、分散アプリケーション内のサーバによって果たされる役割（例えば、「ウェブサーバ」または「データベースサーバ」）に基づいて第３のデータソースによって、識別され得る。データソースは、それぞれ、構成検出サービスに提供された生の構成データ内のサーバに対するそれぞれの識別子／名前を含み得る。そのような識別子は、本明細書ではデータソース側識別子と呼ばれ得る。構成検出サービスは、１つまたは複数の異なるデータソースから受信した生の構成データを検査し、（生のデータの属性値のサブセットを考慮に入れ得る）定義されたオントロジー及び命名規則に基づいてサーバの一意のサービス側識別子を生成し得る。
【００１０】
一意のサービス側識別子は、データソースによって使用される識別子／名前の少なくともいくつかとは異なり得る。生の構成データの新しいセットが、サービスで受信または分析されると、サービスは、少なくともいくつかの実施形態では、生のデータに一意の識別子が存在しないにもかかわらず、生のデータの少なくとも一部が適用される一意に識別された構成アイテムを決定することができ得る。いくつかの実施形態では、サービスは、データソース提供の識別子と一意のサービス側識別子との間のマッピングを維持し、そのようなマッピングに関連付けられた曖昧性（例えば、データソースが所与の構成アイテムの識別子を変更した場合に生じ得る曖昧性）を解決する役割を果たし得る。曖昧性は、例えば、ある期間にわたって他のデータソースから受信した生の構成データに関する相関分析に基づいて、クライアントのフィードバックに基づいてなど、異なる実施形態で様々な機構を使用して解決し得る。一例のシナリオでは、例えば、２つの個別の一意のサービス側識別子が、最初は同じ構成アイテムに、（誤って）割り当てられ得る。例えば、２つの異なるデータソースから受信したそれぞれの生の構成データセットＤＳ１及びＤＳ２に基づいて、その結果、それぞれ個別のサービス側識別子を有する２つの異なる結合構成レコードＲ１及びＲ２が、サービスリポジトリに格納され得る。後で、例えば、１つまたは複数の追加の生のデータセットを処理した後、及び／またはクライアントとのプログラムインターフェースを介した相互作用の後に、エラーを検出して訂正し得る。すなわち、サービスは、値がＲ２に格納されている属性は、実際にはＲ１に対応する基礎となる構成要素の属性であると決定し得る。そのような判定は、例えば、リソース使用情報の分析に基づいて行われ得る。Ｒ１とＲ２に関連付けられた２つの構成アイテムが、異なるハードウェアサーバであると誤って仮定されているが、２つのアイテムのＣＰＵ使用率レベルまたはネットワークパケット流出に関する収集されたメトリックが、ある期間にわたって非常に類似している、または同一であることが判明した場合、レコードＲ１及びＲ２は、同じサーバを参照するものとして識別され得る。そのようなシナリオでは、Ｒ２に格納された情報の一部は、Ｒ１を更新するために使用され得て、Ｒ２は削除され得る（または逆に、Ｒ１の情報は、Ｒ２を変更するために使用され得て、次いでＲ１が削除され得る）。少なくとも１つの実施形態では、誤り訂正ＡＰＩが検出サービスによって実施され、クライアント（及び／またはプロバイダネットワーク運用者の専門サービスアナリスト、コンサルタント、またはパートナーなどの他の権限を持つエンティティ）がそのような誤りについてサ
ービスに通知でき得る。そのようなＡＰＩを介して提供される訂正は、様々な実施形態でより広範にサービス業務を改善するために使用され得る。例えば、所与のサービス顧客の構成データの所与のセットに関してある権限を持つエンティティによって行われた訂正は、一般化され、同じ顧客または他の顧客の他の構成データの他のセットに関して行われた潜在的なエラーを検出及び訂正するために使用され得る。
【００１１】
少なくともいくつかの実施形態では、構成検出サービスは、それぞれの信頼スコアを異なるデータソースに関連付け得て、そのような信頼スコアは、競合する、または期限切れの可能性がある構成データ要素のセットのうちのどれを受け入れるかを決定するときに使用され得る。信頼スコアは、経時的に変化し得る。例えば、クライアントデータセンターを表すクライアントの構成管理データベースのダンプが、サービスで取得された場合、クライアントのデータベースの初期の信頼スコアは高い値に設定され得るが、時間が経過し、クライアントデータセンターで構成の変更が発生すると、スコアが低下し得る。信頼スコアは、少なくともいくつかの実施形態で、生の構成データから結合構成レコードを生成するときに使用され得る。例えば、高信頼性データソースから取得された属性値は、低信頼性データソースから取得された属性値よりも結合レコードに高い確率で含まれ得る。現在の信頼スコアＴＳ１を有するデータソースＤＳ１からの属性値Ｖ１が、より高い現在の信頼スコアＴＳ２を有する異なるデータソースＤＳ２からの属性値Ｖ２と矛盾または競合するシナリオでは、より高い信頼スコアを有するソースからの属性値（この場合はＶ２）は、結合構成レコードに含まれ得て、より低い信頼スコアを有するソースからの属性値は除外され得る。少なくともいくつかの実施形態では、経時的に信頼スコアを生成し、更新するために、機械学習技術が使用され得る。
【００１２】
アプリケーション構成要素の自動パターンベースのグループ化及びタグ付け、難読化仲介を介して受信されたネットワークパケットのソースを検出し、関連性スコアを構成アイテムに関連付けるアルゴリズム、クエリへの応答性を高めるために使用されるデータモデル及びプリロード技術などを含む、構成検出サービスの動作の様々な態様に関する追加の詳細が以下に提供される。視覚化サービス及びマーケットプレイス移行サービスについては、検出サービスの詳細について説明した後で説明する。
【００１３】
システム環境の実施例
図１は、少なくともいくつかの実施形態による、マルチデータセンターアプリケーションのためのインテリジェント構成検出サービスを実施し得る例示的なシステム環境を示す。図示されるように、システム１００は、描写される実施形態では、プロバイダネットワーク１０２Ａ及び１０２Ｂ、ならびに顧客設備ネットワーク１７２などの複数のプロバイダネットワークを含み得る。各プロバイダネットワーク１０２内で、１つまたは複数のネットワークアクセス可能なサービスは、それぞれのプロバイダネットワーク運用者によって実施され得る。例えば、プロバイダネットワーク１０２Ａは、構成検出サービス１０４、仮想化コンピューティングサービス１３２、及び潜在的な顧客がプロバイダネットワーク１０２Ａの外部の実行環境からプロバイダネットワーク１０２Ａにアプリケーションを移行するために利用し得る１つまたは複数の移行関連サービス１３０を含む。移行関連サービスの詳細は、以下に提供される。プロバイダネットワーク１０２Ｂは、仮想コンピューティングサービス１３２で使用されるよりも仮想化コンピューティングサーバに対する異なる手法が利用され得る、それ自体の仮想化コンピューティングサービス１９２を含み得る。例えば、異なるタイプのハイパーバイザまたは仮想化管理ソフトウェアスタックが使用され得て、仮想マシンの取得及び使用などのために、異なるプログラムインターフェースのセットがサポートされ得る。
【００１４】
いくつかの分散アプリケーションは、描写される実施形態では、プロバイダネットワーク１０２Ａ及び１０２Ｂ及び／または顧客設備ネットワーク１７２のリソースを使用して
、様々な顧客のために実行され得る。所与のアプリケーションまたは関連付けられたアプリケーションのセットに使用されるリソースのセットは、本明細書ではアプリケーション実行環境（ＡＥＥ）１４４と呼ばれ得る。所与のＡＥＥは、例えば、仮想及び／または物理コンピューティングサーバ、記憶デバイス、ネットワークデバイス、多層ソフトウェアスタックなどの広範囲のリソースを含み得る。リソースの少なくともいくつかは、構成情報（例えば、属性値の集合）のそれぞれのセットが収集され、構成検出サービス１０４内に格納される構成アイテム（ＣＩ）１３６を含み得る。一般的に言えば、構成検出サービス及びそのクライアントの観点から、構成アイテム１３６は、構成設定及び／または状態情報が１つまたは複数のアプリケーションを管理するのに有用であり得る、及び構成検出サービスによってプログラムインターフェースを介して取得することができる、任意の物理的、仮想的または論理的エンティティを含み得る。例示的な構成アイテムは、とりわけ、仮想化されていないハードウェアサーバ、仮想マシン、ソフトウェアプロセスまたは関連プロセスの集合、回転磁気ディスクまたはソリッドステートドライブ（ＳＳＤ）などの記憶デバイス、ルータなどのネットワークデバイスなどを含み得る。いくつかの実施形態では、構成検出サービスは、所与の構成アイテム１３６に関する構成データのそれぞれのデータセットを、例えば、一定の間隔で、または指定されたイベントの発生に応答して、１つまたは複数の構成データソース（ＣＤＳｒｃｓ）１３４から繰り返し取得し得る。後者のシナリオでは、サービス１０４に格納された構成データは、構成アイテムの複数のタイムスタンプ付きレコードを含み得る。様々な実施形態では、例えば、構成検出サービス１０４のためにインストールされるソフトウェア及び／またはハードウェアエージェント、業界標準構成管理ツール、カスタム構成管理ツール、顧客構成管理データベースなど、いくつかの異なるタイプの構成データコレクタまたはソースを使用し得る。
【００１５】
ＡＥＥ１４４ＡまたはＡＥＥ１４４Ｃなどの一部のＡＥＥは、所与のネットワークの境界内にリソースを含み得る。ＡＥＥ１４４Ａは、顧客設備ネットワーク１７２の構成アイテム１３６Ｑ、１３６Ｒ及び１３６Ｓを含み、ＡＥＥ１４４Ｃは、プロバイダネットワーク１０２Ｂの構成アイテム１３６Ｉ及び１３６Ｊを含む。他のＡＥＥは、複数のネットワーク及び／またはデータセンターに分散された構成アイテムを含み得る。例えば、ＡＥＥ１４４Ｂは、プロバイダネットワーク１０２Ａの構成アイテム１３６Ａ〜１３６Ｄ、及びプロバイダネットワーク１０２Ｂの構成アイテム１３６Ｈを含む。少なくともいくつかの実施形態では、経時的にＡＥＥ１４４及びＡＥＥの構成アイテムが配置されているネットワークとの間のマッピングが変更され得ることに留意されたい。例えば、１つまたは複数の構成アイテムが、異なるプロバイダネットワークに、顧客設備ネットワークからプロバイダネットワークに、またはプロバイダネットワークから顧客設備ネットワークに移行され得る。
【００１６】
描写される実施形態では、各ネットワークは、構成検出サービス１０４と通信し得る、複数の構成データソース１３４を含み得る。例えば、プロバイダネットワーク１０２Ａは、構成アイテム１３６Ａ〜１３６Ｆの構成データセットを取得して、サービス１０４に送信することに対して連帯して役割を果たす構成データソース１３４Ａ〜１３４Ｃを含む。同様に、プロバイダネットワーク１０２Ｂは、構成アイテム１３６Ｈ〜１３６Ｌに関する報告を行う役割を果たすデータソース１３４Ｅ〜１３４Ｇを含み、顧客設備ネットワーク１７２は、構成アイテム１３６Ｎ及び１３６Ｐ〜１３６Ｓに関する構成データセットをサービス１０４に送信する役割を果たすデータソース１３４Ｈ及び１３４Ｉを含む。場合によっては、所与の構成データソース１３４は、複数の構成アイテム１３６に関する構成データを収集する役割を果たし得て、他の場合には、構成データソース１３４は、単一の構成アイテム１３６を報告し得る。少なくともいくつかの構成アイテム１３６では、構成データセットは、例えば、ソフトウェア／ハードウェアスタックのそれぞれの粒度レベルで、及び／またはそれぞれのレイヤで、複数の構成データソース１３４によって収集され得る。いくつかの実施形態では、所与の構成データソース１３４は、例えば、構成アイテム
を表すサーバで実行されているプロセスまたは実行スレッドとしての構成アイテム１３６のサブ構成要素であり得る。例えば、データソース１３４Ｇは、構成アイテム１３６Ｌの一部として示されている。いくつかの構成データソースは、既存の構成管理ツールのサブ構成要素を含み得る。例えば、描写される実施形態では、顧客の構成管理データベース１６７は、サービス１０４に報告するためのデータソース１３４Ｇを含む。
【００１７】
構成検出サービス１０４は、描写される実施形態では、プログラムインターフェース１５０の１つまたは複数のセットを実施し得て、これらのいずれも、例えば、アプリケーションプログラミングインターフェース（ＡＰＩ）、ウェブベースのコンソール、コマンドラインツール及び／またはグラフィカルユーザインターフェースを含み得る。クライアントフェイシングプログラムインターフェース１５０Ａは、例えば、アプリケーション実行環境１４４に関連付けられた構成データの収集権限を識別及び／または付与するために、（例えば、以下にさらに詳細に説明するような視覚化サービスを使用して）サービス１０４によって収集された構成情報を表示するために、クライアントのフィードバックを必要とし得るイベントまたは条件に関する通知を取得するために、などのために顧客によって使用され得る。データ収集のセット及び／またはサービス側プログラムインターフェース１５０Ｂは、描写される実施形態では、構成データソース１３４とサービス１０４との間の相互作用のために、及びサービス１０４の収集された構成データを使用して、移行関連サービス１３０及び／または他のサービスによる追加の機能を構築するために使用され得る。
【００１８】
構成検出サービス１０４は、描写される実施形態では、以下に説明するように、構成レコードリポジトリ１０８、生の構成データを結合する／曖昧性を解消するための役割を果たす構成要素１１０、及び／またはデータソース１３４に、それぞれの信頼スコアを割り当てる／変更する、及び／または構成レコードに関連スコアを割り当てる／変更するための役割を果たす１つまたは複数のスコアリング構成要素１１２など、いくつかのサブ構成要素を含み得る。少なくともいくつかの実施形態では、サービスは、以下に説明するように、異なるパフォーマンス機能及び／またはデータモデルを有する、いくつかのデータストアを含み得る。例えば、構成レコードは、中央リポジトリ１０８からの低遅延キャッシュに予めロードされ、予想されるタイプのクエリに対する応答性を向上させ得る。
【００１９】
構成データソース１３４は、描写される実施形態では、構成検出サービス１０４に様々なフォーマットで、異なる間隔で生の構成データセットを提供し得る。場合によっては、１つまたは複数の構成アイテム１３６に関してサービス１０４で受信された生のデータは、古くなっている、または期限切れ、または不正確であり得る。さらに、異なるデータソース１３４によって提供される生のデータセットで構成アイテムを識別する方法は、場合によっては矛盾する場合がある。例えば、所与のハードウェアサーバ構成アイテムが複数のＩＰアドレスを有する場合、異なる構成データソースによって、（「データセンターＤＣ１のルーム３のラックＲ１のサーバ５」などの）名前または位置によって、または他のデータソースによって、異なるＩＰアドレスを使用してサーバを参照し得る。構成検出サービス１０４は、描写される実施形態では、様々な技術を使用して生の構成データセットを結合し、曖昧性を解消し選別する役割を果たし得る。そのような技術の１つでは、生の構成データのセットを受信すると、サービス１０４は、データが周知の構成アイテム１３６（構成データが以前にサービスで受信され記録されたアイテム）を参照しているかどうかを識別しようと試行し得る。新たに受信したデータが周知の構成アイテムに対応していないと思われる場合、命名規則またはアルゴリズムは、サービス１０４で定義されたオントロジー及び／または生のデータに示される構成アイテムの１つまたは複数の属性値に少なくとも部分的に基づいて、生のデータが対応する構成アイテムの一意のサービス側識別子を生成するために使用し得る。一意のサービス側識別子は、少なくともいくつかの実施態様では、生のデータセットのデータソースによって使用される識別子とは異なり得る。
実際には、そのような実施態様では、サービス１０４は、データソースが報告した識別子と一意のサービス側識別子との間のマッピングを維持する役割を果たし得る。後続の生のデータセットがサービスで受信されると、いくつかの実施形態では、結合／曖昧性解消構成要素１１０は、そのようなマッピングを利用し、及び／または生の構成データと、これまでにあったデータとの相関を使用して、生のデータセットが適用される構成アイテムを識別し得る。いくつかの実施形態では、所与の構成アイテム１３６に割り当てられたサービス側識別子は、サービス１０４に格納された構成レコードの集合全体内で一意であり得て、他の実施形態では、識別子は特定の構成ドメインまたは名前空間（例えば、所与の顧客に関連付けられたドメインまたは名前空間）内で一意であり得る。
【００２０】
一意のサービス側識別子を生成するために、構成アイテムに関する利用可能な構成データが分析及び使用される方法は、異なる実施形態で異なり得る。一実施形態では、異なるデータソースごとに、ＸＭＬ（拡張マークアップ言語）、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）、プレーンテキスト、またはＣＢＯＲ（Ｃｏｎｃｉｓｅ  Ｂｉｎａｒｙ  Ｏｂｊｅｃｔ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）などのバイナリフォーマットで提供され得る生の構成データは、最初に解析され、共通フォーマットに正規化され得る。いくつかの名前空間内の一意性に関連付けられたキーワード（インターネットプロトコルアドレスの場合は「ＩＰＡｄｄｒ」、またはメディアアクセス制御アドレスの場合は「ＭＡＣＡｄｄｒ」など）に対して提供された属性値の検索は、生のデータまたは正規化されたデータ内で実行され得て、検索の結果は、一意のサービス側識別子（例えば、「ＤＢＳｅｒｖｅｒ．＜ＤＢＶｅｎｄｏｒＮａｍｅ＞．＜ＩＰ  ａｄｄｒｅｓｓ＞」）を生成するために、オブジェクトタイプ名（例えば、「データベースサーバ」または「仮想化ホスト」）と結合／連結され得る。一実施形態では、構成アイテムの一意のサービス側の名前を生成するプロセスを改善するために、機械学習技術が使用され得る。例えば、識別子を生成するための機械学習モデルは、プロバイダネットワーク（例えば、構成検出サービスが実行される同一のプロバイダネットワーク）の仮想化されたコンピューティングサービスの様々な構成要素から収集された大規模な匿名化された構成データセットを使用して訓練し得る。モデルの初期バージョンによって行われた命名決定の一部には、例えば、同じ基礎となる構成アイテムに２つの異なる一意の識別子が付与され得る、または２つの構成アイテムに同じ識別子が付与され得る、などの誤りがあり得る。経時的に、より大きい入力データセットでモデルの訓練が進行するにつれて、誤り率は減少し得る。
【００２１】
少なくともいくつかの実施形態では、それぞれの信頼スコアがそれぞれの構成データソース１３４に（例えば、スコアリング構成要素１１２によって）割り当てられ、実際には、競合する可能性がある２つのソースのうちのどれが、所与の時点でより正確である可能性が高いのかを決定するために使用され得る。例えば、いくつかのデータソースは、インストールされる前にプロバイダネットワーク１０２Ｂの運用者の要員によって設計、開発、及びテストされた検出サービス１０４のエージェントを含み得るが、他のデータソースに関連付けられた起点及び／または試験レベルはあまり知られ得ない。後者のシナリオでは、よりよく知られた、またはより理解されたデータソースに高い信頼スコアが割り当てられることがあり得る。いくつかの実施形態では、所与のデータソースの信頼スコアは、値が考慮されている属性、または属性値が生成されたソフトウェア／ハードウェアスタックのレベルに基づいて変化し得る。例えば、データソースＤＳ１及びＤＳ２は、所与のプログラムまたはプロセスのＣＰＵ使用率に関するそれぞれのメトリックＣ１及びＣ２をそれぞれ提供し得る。ＤＳ１が、ハイパーバイザ層でＣＰＵ使用率測定値Ｃ１のバージョンを収集し、ＤＳ２はオペレーティングシステムによって提供されるツールを使用してバージョンＣ２を収集する場合、２つのソースからのＣＰＵ使用率属性値には、異なる信頼スコアを割り当て得る。複数のデータソースが同じ属性に対してそれぞれの値を提供し得る少なくともいくつかの実施形態では、各データソース（または｛データソース、属性｝の
ペア）に現在の信頼レベルを示すそれぞれの重みを割り当て得て、重みは、検出サービスによって使用され、保存される属性の最終的な値を決定するために使用され得る。一実施形態では、同じ構成アイテム１３６に対応する２つの異なる生のデータセットが、それぞれのデータソース１３４から受信され、一方の生のデータセットの少なくとも１つの属性値が、他方の生のデータセットに示される属性値と競合または矛盾する場合、より低い信頼スコアを有するデータソースの競合する属性値を除外した結合構成レコードが生成され、リポジトリ１０８に格納され得る。異なるデータソース１３４の信頼スコアは、いくつかの実施形態では、時間加重され得る。例えば、あるデータソースＣＤＳｒｃ１によって生の構成データが時刻Ｔ１に収集され、別のデータソースＣＤＳｒｃ２によって時刻Ｔ２（Ｔ２はＴ１よりも遅い）で見かけ上競合する生のデータが収集された場合、より最近に収集された生のデータが、より信頼できるとみなされ得る。結合／曖昧性解消構成要素１１０によって生成された結合データレコードは、様々な実施形態では、（例えば、顧客からの、またはプロバイダネットワーク１０２Ａの他のサービスからの）プログラムインターフェース１５０Ａ及び／または１５０Ｂを介して受信される構成クエリに応答を提供するために使用され得る。
【００２２】
少なくともいくつかの実施形態では、データソース１３４から受信した生の構成データを選別するまたは結合することに加えて、検出サービス１０４の構成要素は、共に分散アプリケーションパターンに対応する構成アイテムのグループに自動的に識別する、そのようなグループ内の役割をそれぞれの構成アイテムに割り当てる、仲介デバイスによってソースが難読化され得るネットワークトラフィックのトラフィックソース検出アルゴリズムを実施する、高機能クエリ処理をサポートするための構成データを事前に準備するなどの、いくつかの他の機能を実行し得る。これら及びその他の機能の詳細は、以下に提供される。
【００２３】
前述のように、少なくともいくつかの実施形態では、構成検出サービスは、構成アイテムのオントロジーを定義し利用し得る。図２は、少なくともいくつかの実施形態による、構成情報を編成するために使用され得る検出サービスオントロジーの例示的な構成要素を示す。オントロジー２０２は、描写される実施形態では、複数のオブジェクトタイプ、及び各オブジェクトタイプに対応する１つまたは複数の属性のリストを含み得る。所与の構成アイテムの所与の属性リストの属性の少なくともいくつかのそれぞれの値は、様々な構成データソースによって構成検出サービスに送信される生の構成データセットに含まれ得る。オントロジー及び生の属性値は、様々な実施形態では、構成アイテムのための一意のサービス側識別子を生成するために使用され得る。例えば、いくつかの実施形態では、いくつかの属性値（そのうちのいくつかは異なるデータソースから取得され得る）を、サービス生成のテキスト識別子プレフィックスと連結することによって、構成アイテムの一意のサービス側識別子を構成し得る。
【００２４】
例えば、オブジェクトタイプ２０４Ａは、物理的なホストまたはサーバに対応する。対応する属性リスト２０５Ａは、ＣＰＵタイプ、ＣＰＵまたはコアの数、現在割り当てられているホスト名、ハイパーバイザ（インストールされている場合）、オペレーティングシステム情報の様々な要素（ＯＳｄａｔａ）、１つまたは複数のＩＰアドレスなどを含み得る。２０５Ａなどの属性リストの所与の属性の値は、それ自体、いくつかの個別のデータ要素を含み得る。例えば、「ＣＰＵタイプ」属性は、ＣＰＵ、ＣＰＵベンダ、ＣＰＵのクロック周波数、モデル名などによってサポートされる命令セットアーキテクチャに関する情報を含み得る。
【００２５】
オブジェクトタイプ２０４Ｂは、プロセス（すなわち、サーバでの実行の単位）を表す。プロセスの属性リスト２０５Ｂは、とりわけ、プロセスの名前、プロセスを呼び出すために使用されるコマンドライン、プロセスに使用される実行可能ファイルの場所及び／ま
たはプロセスのホームディレクトリに対応するホストのオペレーティングシステムでのパス（例えば、ディレクトリパスまたはフォルダパス）、プロセスのスレッドの数などを含み得る。
【００２６】
オブジェクトタイプ２０４Ｃは、ネットワーク接続（この例では、伝送制御プロトコル／インターネットプロトコルまたはＴＣＰ／ＩＰスイートを使用して確立されると仮定される）を表す。属性リスト２０５Ｃは、ソース及び（例えば、接続を確立するためにｃｏｎｎｅｃｔ（）呼び出しを発行したエンドポイントとして識別されるソースを有する）宛先ＩＰアドレス（それぞれｓｒｃＩＰ及びｄｅｓｔＩＰ）、ソース及び宛先プロセス識別子（それぞれｓｒｃＰｒｏｃｅｓｓ及びｄｅｓｔＰｒｏｃｅｓｓ）及び／または宛先ポート（ｄｅｓｔＰｏｒｔ）を含む。
【００２７】
オブジェクトタイプ２０４Ｄは、特定の技術ベンダＶ１から取得した仮想化フレームワークを使用して生成された仮想マシンに対応する。仮想マシンの属性リスト２０５Ｄは、ベンダ定義の仮想マシン識別子（ＶＭＩＤ）、仮想マシンを実行している、または実行していたデータセンター、及び仮想マシンを現在実行している、実行を予定している、または実行していたホストの識別子を含む。
【００２８】
いくつかの他のオブジェクトタイプは、様々な実施形態では、オントロジー２０２内に定義され得る。例えば、いくつかの実施形態では、それぞれのオブジェクトタイプは、記憶デバイス、データベースインスタンスなどのエンティティ、ロードバランサ／ルータなどのネットワークデバイスなどに定義され得る。一実施形態では、それぞれのオブジェクトタイプは、リソースの地理的グループまたは他のグループに定義され得る。例えば、データセンターは、それ自体のオブジェクトタイプを有し得て、サーバラックは、それ自体のオブジェクトタイプを有し得る。いくつかの実施形態では、オントロジーは、例えば、いくつかのプロセスは、所与のホストで実行され得て、したがって、ホスト内に含まれ得る、アプリケーションのマスタープロセスは、マスターの子プロセスとして指定され得る様々なプロセスを起動し得るなど、様々なオブジェクト間の階層関係または包含関係を定義し得る。オントロジーの様々なエンティティ間の関係は、少なくともいくつかの実施態様では、オブジェクト指向の方法で定義され得る。
【００２９】
結合及び選別される構成レコード
図３は、少なくともいくつかの実施形態による、それぞれの信頼スコアを有する複数のデータソースから生の構成情報を結合して、選別属性値リストを生成する例を示す。描写される実施形態では、所与の構成アイテムに関するデータセット３２０Ａ、３２０Ｂ、及び３２０Ｋを含む複数の生の構成データセット３２０が、それぞれのデータソース３１０（例えば、データソース３１０Ａ、３１０Ｂ、及び３１０Ｋ）によって検出サービスに送信される。各生の構成データセット３２０は、それぞれの属性値リスト３２５を含む。例えば、所与のホストの場合、属性及びそれらに対応する値は、「Ｎａｍｅ：Ｈｏｓｔ１００」、「ＩＰ  Ａｄｄｒｅｓｓ：ａ．ｂ．ｃ．ｄ」、「ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ：  ＜ＯＳＶｅｒｓｉｏｎ＞」などを含み得る。少なくともいくつかの実施形態では、すべての属性値が必ずしも単一の構成アイテムに対応し得ない。例えば、１つまたは複数の構成データソースが複数の構成アイテムを報告し得る。異なるデータセット３２０は、異なる粒度レベルを表し得る。例えば、あるデータセットは、発行または受信されたデータベーストランザクションの数などのアプリケーションレベルの情報を含み得て、別のデータセットは、送信または受信されるネットワークパケットの数などの下位レベルの詳細を含み得る。２つの異なるデータソースによって送信された生の構成データのいくつかは、異なる時間に対応し得る。例えば、データセット３２０Ａは、データセット３２０Ｋとは異なる時間に収集され得る。場合によっては、所与の構成アイテムに関する２つ以上の属性値が互いに競合し得る。例えば、あるデータセットは、あるホストＨ１でプロセス識
別子ＰＩＤ１を有する特定のプロセスが、異なるホストと通信するための役割を果たしていたことを示し得て、別のデータセットは、別のプロセス識別子ＰＩＤ２を有するプロセスが、そのような通信のための役割を果たしていたことを示し得る。いくつかの実施形態では、構成データソースの少なくともいくつかは、データを検出サービスに提供する構成アイテムのためのそれぞれの識別子を生成し、これらの識別子をデータセット３２０に含め得る。そのような識別子は、検出サービスによって生成された識別子と区別するために、データソース側識別子と呼ばれ得る。２つのデータソースは、個別のデータソース側の識別子を使用して同じ基本構成アイテムを参照することがあり得る。例えば、あるデータソースは、名前（例えば、「ｈｏｓｔＫ．＜ｄｏｍａｉｎｎａｍｅ＞」）によってホストを参照し得て、別のデータソースは、ＩＰアドレスによって同じホストを参照し得て、別のデータソースは関数（例えば、「ｄａｔａｂａｓｅ  ｓｅｒｖｅｒ  ＤＢＳ１」）によって参照し得る。
【００３０】
描写される実施形態では、構成検出サービスの結合／曖昧性解消構成要素３６０は、すべての生の構成データセット３２０を検査及び処理し、データセット３２０に生のデータが含まれる１つまたは複数の構成アイテムに対応する、それぞれの結合構成レコード３５０を更新（または作成）し得る。２つの異なるソースからの２つの生の構成データセットを結合するために使用され得るアルゴリズムは、一実施形態では、以下のステップの少なくともいくつかを含み得る。最初に、それぞれのデータセットが、同じタイプの構成アイテム（図２のオントロジー２０２内のＯｂｊｅｃｔＴｙｐｅとして定義されているホスト、プロセス、仮想マシンなど）に関する属性値を含むかどうかについての判定が行われ得る。そのためには、いくつかの実施形態では、属性名は、検出サービスのオントロジーでの様々な構成アイテムに対して定義された属性リスト（例えば、図２のＡｔｔｒＬｉｓｔｓ２０５）と比較し得る。属性リストは、場合によっては、同義語を示し得る。例えば、同じ属性名は、あるデータソースによってＡｔｔｒＮａｍｅ１という名前によって識別され、別のデータソースによってＡｔｔｒＮａｍｅ２という名前によって識別される。両方のデータセットが、同じ構成アイテムタイプに関する少なくともいくつかの属性値を含むと決定された場合、これらの＜属性：値＞のペアは、相関、一致または重複について検査され得る。例えば、両方のデータセットが、（ａ）ホストでのＣＰＵ使用率が特定の時間間隔中に約７５％であり、（ｂ）そのホストからその時間間隔中に２５００ＵＤＰパケットが送信されたことを示す場合、これにより、同じホストに対して異なるデータソース側の識別子が使用されたとしても、データセットが同じホストを参照していることを示すものとして解釈され得る。そのような一致が（いくつかの最小信頼レベルで）検出された場合、ホストの単一の結合レコードを作成する決定が行われ得る。そうでない場合は、２つのデータセットは、２つの異なるホストを参照するとみなされ得て、個別の結合レコードが生成され得る。単一の結合レコード内には、一方または両方のデータセットから取得された＜属性：値＞ペアのサブセットが含まれ得る。例えば、それらに含まれる情報は、含まれる他の属性値から推測可能であるため、または同じデータのより正確なデータソースが分かっているため、冗長／重複した属性値は破棄され得て、いくつかの属性値は結合レコードに含まれ得ない。データセットに含まれるデータの種類に応じて、場合によっては、既存の結合構成レコードの１つまたは複数の要素または属性値が、新しい結合構成レコードを生成する代わりに更新（または新しい属性が既存の結合構成レコードに追加）され得る。
【００３１】
結合構成レコード３５０は、単一の生の構成データ３２０から提供することができる特性よりも、多くの構成アイテムの完全な特性をしばしば提供し得る。結合構成レコード３５０は、描写される実施形態では、生のデータセット３２０に示された、それぞれのデータソース側識別子とは異なり得て、構成検出サービスのオントロジー及び／または生の構成データセットの要素に少なくとも部分的に基づいて生成され得る、構成アイテムの一意のサービス側識別子３５２を含み得る。少なくともいくつかの実施形態では、結合構成レ
コード３５０は、構成アイテムに関するすべての属性値リスト３２５の結合を必ずしも含む必要のない、選別属性値リスト３５４を含み得る。代わりに、例えば、結合／曖昧性解消構成要素は、値が古くなっているため（例えば、値が他のソースから取得された同じ基礎となる属性に対してより新しい値に置き換えられたため、または単に値が収集された時間と値が処理される時間との差が閾値を超えたため）、１つまたは複数のデータソースからいくつかの属性値を破棄し得る。いくつかの実施形態では、異なるデータソースのそれぞれの信頼スコア３１５（例えば、スコア３１５Ａ〜３１５Ｋ）はまた、または代わりに所与の属性値を結合構成レコードに含めるかどうかを判定するために使用され得る。信頼スコアは、２つの異なるデータソースが同じ属性に対応する生のデータを提供する場合に特に有用であり得る。そのようなシナリオでは、より高い信頼スコアを有するソースによって提供される属性値が優先され得る。各生のデータセット３２０が、データがいつ収集されたかを示す関連付けられたタイムスタンプを有するいくつかの実施形態では、タイムスタンプ及び信頼スコアの両方を考慮に入れる（実際には、時間加重信頼スコアが得られる）式は、どの属性を選別属性値リスト３５４に含めるべきかを選択するために使用し得る。
【００３２】
いくつかの実施形態では、所与のアイテムまたは生のデータセット３２０内のアイテムが関係する構成アイテムが不明である場合、構成検出サービスの結合／曖昧性解消構成要素３６０は、パターンマッチング手法を利用して構成アイテムを識別し得る。例えば、生のデータセット３２０Ｂ及び３２０Ｋの両方が、いくつかの構成アイテムの所与の時間間隔にわたって、近似のアウトバウンドネットワークトラフィックについて報告し、データセット３２０Ｂが、構成アイテムのホスト名を含むが、データセット３２０Ｋは含まないという簡単なシナリオを検討する。この簡単な例のシナリオでは、結合／曖昧性解消構成要素３６０は、同様の期間の他のデータセットの属性値と一致するデータセット３２０Ｋに含まれる属性値を検索しようと試行し得る。アウトバウンドネットワークトラフィックレートが、データセット３２０Ｋと３２０Ｂとの間で、ある閾値レベルの正確さ、または精度に一致する場合、（矛盾する証拠がなければ）２つのデータセットは、同じ基本構成アイテムを参照するものと想定し得る。
【００３３】
前述のように、様々なプログラムインターフェースが、様々な実施形態の構成検出サービスで使用され得る。図４は、少なくともいくつかの実施形態による、構成検出サービスで実施し得る例示的なアプリケーションプログラミングインターフェースを示す。（生の構成データセットをサービスに提供するために使用される）構成データ取込インターフェースの４つの例が示され、（サービスに対して行われたクエリに対する応答を取得するために使用される）構成データ使用インターフェースの一例が示される。
【００３４】
少なくとも１つの実施形態では、構成検出サービス４６０は、例えば、大量の情報をクライアントの構成管理データベース４１０からサービスに転送するために使用され得る一括インポート／エクスポートのアプリケーションプログラミングインターフェース（ＡＰＩ）４１５Ａを提供し得る。少なくともいくつかの実施形態では、サービスは、構成データを取得する様々な物理デバイスまたは仮想デバイスにインストールし得る、いくつかの異なるソフトウェアエージェント４１２を（例えば、ダウンロードによって）提供し得る。そのようなエージェントは、サービスと通信するために、エージェントＡＰＩ４１５Ｂを使用し得る。様々な実施形態では、エージェント４１２の少なくともいくつかは、特定のイベント（例えば、Ｘ秒に１回、ＣＰＵ使用率収集イベントがサーバでスケジュールされ得る）に関してデータを収集し得て、その結果、エージェントのＡＰＩ４１５Ｂを介して一度に送信されるデータの量は、エクスポート／インポートＡＰＩ４１５Ａを介して転送されるデータの量に比べて比較的少なくなり得る。
【００３５】
いくつかの実施形態では、構成検出サービスは、例えば、簡易ネットワーク管理プロト
コル（ＳＮＭＰ）、Ｗｉｎｄｏｗｓ管理インストルメンテーション（ＷＭＩ）、またはＷＢＥＭ（ウェブベースエンタープライズ管理）を利用するツールを含む、様々な構成ツール４１４から生の構成データを受け入れ得る。ツール固有のＡＰＩ４１５Ｃは、そのようなツールと構成サービス検出との間の相互作用のために実施され得る。汎用レポートＡＰＩ４１５Ｄは、いくつかの実施形態では、開発及び展開され得るカスタムデータソース４１６（すなわち、エージェント自体ではなく、サードパーティの構成ツールと関連付けられておらず、クライアント構成管理データベースと提携していないデータソース）のために実施され得る。
【００３６】
検出サービスの結合構成情報を使用するエンティティに対して、いくつかの異なるクエリＡＰＩ４１６を実施し得る。そのようなエンティティは、視覚化サービス及び／または移行マーケットプレイスサービスまたは移行計画サービスを含む１つまたは複数の移行関連サービスなどのプロバイダネットワークの他のサービス、ならびに構成検出サービスのプロバイダネットワークの顧客を含み得る。いくつかのクエリＡＰＩ４１６は、構造化クエリ言語（ＳＱＬ）などの周知のクエリ言語の変形を利用し得る。一実施形態では、ＯｐｅｎＴＳＤＢによってサポートされる言語などの時系列指向のクエリ言語を、テンポラル構成関連のクエリに使用し得る。
【００３７】
パターンベースのグループ化及び役割の割り当て
図５は、少なくともいくつかの実施形態による、構成アイテムが果たす役割を自動的に検出するために検出サービスで使用され得るアプリケーションアーキテクチャパターンの例を示す。様々な実施形態では、サービスは、構成アイテムをグループ化するために使用されるアプリケーション、ソフトウェア、及び／またはハードウェア構成パターンを検索するためのクエリをサポートし得る。描写される実施形態では、構成検出サービスの構成アイテムグループ記述子データベース５９０は、５１０Ａまたは５１０Ｂなどのいくつかのグループ記述子５１０を含み得る。各グループ記述子５１０は、「３層ウェブアプリケーション」または「段階的分割及び結合アプリケーション」、ならびにアプリケーションまたは関連付けられた一連のアプリケーションを集合的に実施する様々なエンティティ間の関係の表現などの、それぞれのパターン名５７７（例えば、５７７Ａまたは５７７Ｂ）を含み得る。
【００３８】
各エンティティは、アプリケーションパターン内で特定の論理的役割を果たし得て、異なる役割が割り当てられたエンティティによって提示されると予想される通信動作は、グループ記述子５１０に示され得る。例えば、グループ記述子５１０Ａは、ロードバランサ（ＬＢ）役割５１１、ウェブサーバ役割５１２、アプリケーションサーバ（Ａｐｐｓｅｒｖｅｒ）役割５１３、及びデータベースサーバ（ＤＢｓｅｒｖｅｒ）役割５１４の４つの役割を定義する。５１１Ａ〜５１１Ｃなどの１つまたは複数のロードバランサは、記述子５１０Ａに対応する構成アイテムのグループのインスタンスの５１２Ａ〜５１２Ｎなどの、１つまたは複数のウェブサーバとネットワークパケットを介して相互作用し得る。それぞれのウェブサーバ５１２はまた、１つまたは複数のアプリケーションサーバ５１３（例えば、５１３Ａ〜５１３Ｋ）と相互作用し得て、各アプリケーションサーバは、５１４Ａ〜５１４Ｊなどの１つまたはバックエンドのデータベースサーバと相互作用し得る。グループ記述子５１０Ｂでは、役割は、タスクをサブタスクに細分化するための役割を果たすＴａｓｋＳｐｌｉｔｔｅｒ５５１、サブタスクを実行するための役割を果たすフェーズ１のワーカー５５２、フェーズ１のタスクの結果を収集し、フェーズ２の分析の結果を分割するための役割を果たすフェーズ１のＲｅｓｕｌｔＣｏｍｂｉｎｅｒｓ５５３、分割された結果を分析するための役割を果たすフェーズ２のワーカー５５４、フェーズ２の分析の結果を収集するＦｉｎａｌＲｅｓｕｌｔＣｏｍｂｉｎｅｒ５５５を含み得る。少なくともいくつかの役割に対応する構成アイテムの具体的な数は、グループインスタンスごとに異なり得る。例えば、単一のＴａｓｋＳｐｌｉｔｔｅｒ、フェーズ１のＲｅｓｕｌｔＣｏｍ
ｂｉｎｅｒ及びＦｉｎａｌＲｅｓｕｌｔＣｏｍｂｉｎｅｒエンティティは、記述子５１０Ｂに対応する構成アイテムグループ内でインスタンス化され得るが、フェーズ１のワーカーまたはフェーズ２のワーカーとして構成される構成アイテムの数は、記述子の実施例ごとに異なり得る。
【００３９】
いくつかの実施形態では、検出サービスのクライアントは、プログラムインターフェースを介して記述子５１０の表現をサービスに送信し得て、サービスは、記述子に示されたパターンを示す構成アイテムの対応する例を識別し得る。所与の記述子５１０は、アプリケーションに関連付けられた構成アイテムの予想される相互接続トポロジ、アプリケーションに関連付けられた予想されるアイテム名リスト（例えば、プロセス名またはパス）、及び／または、アプリケーションに関連付けられた一対の構成アイテム間の予想される通信パターン（例えば、特定のタイプの要求／応答動作、または初期化／終了ハンドシェイク手順を表すパケットの交換）など、分散アプリケーションの様々な態様の表示を含み得る。サービスは、構成アイテムによって果たされる役割を決定するために、様々な構成アイテムの観察された動作を記述子要素に一致させようと試行し得る。例えば、図５に示す実施形態では、様々なデータソースからの収集された構成データを使用して、サービスは、結合構成レコード５８０Ａによって表される、一意のサービス側識別子５８２Ａを有する構成アイテムが、ＩｔｅｍＧｒｏｕｐＩＤ５８６Ａによって識別されるグループテンプレートの１つの特定のインスタンス（例えば、４層ウェブアプリケーションのインスタンス１）内のＩｔｅｍＧｒｏｕｐＲｏｌｅＩＤ５８８Ａによって示される役割（例えば、ウェブサーバの役割）を果たしていると判定し得る。結合構成レコード５８０Ｂによって表されるアイテムなどの他の構成アイテムは、必ずしも所与のパターンまたはグループ記述子に関連付けられた役割を果たし得ない。そのような構成アイテムのフィールドＩｔｅｍＧｒｏｕｐＲｏｌｅＩＤ及びＩｔｅｍＧｒｏｕｐＩＤは、描写される実施形態ではＮｕｌｌに設定され得る。ＩｔｅｍＧｒｏｕｐＲｏｌｅＩＤ及びＩｅｔｍＧｒｏｕｐＩＤに使用されるラベルは、いくつかの実施形態では、同じ役割を果たすか、または同じ動作パターンを示す複数の構成アイテムを参照するための「タグ」として使用され得る。そのようなタグは、検出サービスのクライアントによって要求された様々なオペレーションのオペランドを識別するために使用され得る。例えば、クエリ「タグ「Ｗｅｂｓｅｒｖｅｒ」を使用してデータセンターＤＣ１のすべての構成アイテムを一覧表示する」またはコマンド「データセンターＤＣ１のタグ「ＤＢｓｅｒｖｅｒ」を使用してデータセンターＤＣ２への構成アイテムの自動移行を開始する」という論理等価は、クライアントによって発行され得る。クライアントは、いくつかの実施形態では、様々な構成アイテムのタグをプログラムによって指定し得て、そのようなタグは検出サービスによって使用され、より大きなパターンまたはグループ記述子を識別し得る。一実施形態では、検出サービスのある顧客によって示されるパターン及び／またはタグは、他の顧客の構成アイテム間で役割をグループ化及び割り当てるための検出サービスによって（例えば、パターン／タグを提供した顧客の許可を得て）使用され得る。
【００４０】
難読化されたネットワークトラフィックソースの自動検出
多くのアプリケーションでは、ネットワークアドレス変換（ＮＡＴ）デバイス、ポート変換デバイスなどのネットワーク仲介は、所与のパケットの真のソースが、それらのパケットの宛先に関連付けられた構成データソースに対して直ちに検出され得ないような方法でネットワークパケットを修正することがあり得る。図６は、少なくともいくつかの実施形態による、構成検出サービスでのネットワークパケットのソースアイデンティティ検出アルゴリズムの使用を示す。そのようなソースアイデンティティ検出アルゴリズムは、本明細書ではソースエンドポイント検出アルゴリズムとも呼ばれ得る。図示されるように、描写される実施形態では、トラフィックソースエンドポイント６１０からの（検出サービスで構成アイテムとして表現可能であり得る）パケットセット６２２は、トラフィック宛先エンドポイント６２８に対して、１つまたは複数のアドレス難読化仲介６１２を介して
送信され得る。アドレス難読化仲介は、逆方向、例えば、エンドポイント６２８からエンドポイント６１０へのトラフィックにも使用し得る。宛先及びソースエンドポイントの両方に、それらに関連付けられた１つまたは複数の構成データソースがあり、構成データを検出サービスに送信する役割を果たし得る。しかし、単一の仲介６１２または複数の仲介６１２によって実行される難読化動作（例えば、パケットヘッダ変更、包囲パケット内のカプセル化など）のために、（送信パケットセット６２２に対応する）受信パケットセット６２３の送信者のアイデンティティは、宛先エンドポイント６２８に関連付けられたデータソース（複数可）に対して不明であり得る。顧客のためにエンドポイント６１０及び６２８で使用されている検出サービスの観点から、または一方または両方のエンドポイントに関する構成情報を取得する別のサービス（例えば、移行関連サービス）の観点から、送信者のアイデンティティを検出することが重要であり得る。
【００４１】
いくつかの技術のうちのいずれかが、受信パケットセット６２３の送信者のエンドポイントを識別するために、検出サービスによって使用され得る。少なくとも１つの実施形態では、サービスからコマンドを発行することができる、それぞれのデータソースが、２つのエンドポイントで実行されている場合、特別なパケットシーケンス６５５は、エンドポイント検出アルゴリズムの一部として、１つの難読化仲介６１２または複数の難読化仲介６１２を介して、エンドポイント６２８からエンドポイント６１０に発行され得る。例えば、正確にＴミリ秒間隔のＮ個の「余分な」パケット（通常のアプリケーショントラフィックの一部ではない）は、エンドポイント６２８に関連付けられたデータソースによってパケットシーケンス６５５で発行され、エンドポイント６１０を含む様々な他のエンドポイントのデータソースは、そのような正確に間隔を置いたパケットの着信トラフィックを実際に監視し得る。エンドポイント間のパスにネットワーキングのボトルネックまたは問題がないと仮定すると、エンドポイント６１０でのデータソースが、受信した余分なパケットの到着間隔時間をエンドポイント６２８でのデータソースの送信間隔時間と一致させることが可能であり得て、それによって、合理的に高い確率でパケットセット６２３の送信者のアイデンティティを確立し得る。いくつかの実施形態では、様々なパケットのＩＰアドレス及び／またはポートが仲介６１２で難読化され得るが、パケットのシーケンス番号は変更され得ず、パケットのシーケンス番号は、エンドポイント検出アルゴリズムのパケットのソースを識別するために、受信者及び送信者のデータソースでの一致について分析され得る。一実施形態では、接続確立要求のシーケンスと、その後にすぐに続く接続終了要求は、エンドポイント６２８からエンドポイント６１０に発行され、そのような通常とは異なる管理要求のパターンが、エンドポイント検出アルゴリズムのパケットソースを識別するために使用され得る。一実施形態では、エンドポイント６２８で実行しているサービスエージェントなどのデータソースは、エンドポイント６１０で実行している（別のサービスエージェントなどの）データソースにサービス側の一意のサービス側識別子の要求を発行し得て、一意のサービス側識別子は、送信者を識別するために使用され得る。送信者を検出するために使用される特定のエンドポイント検出アルゴリズムに関係なく、送信者が識別された後、送信者のアイデンティティを示す結合構成レコードは、様々な実施形態で更新され得る。
【００４２】
関連性スコア
図７は、少なくともいくつかの実施形態による、関連性スコアを構成アイテムに割り当てるために構成検出サービスで使用され得る例示的な要素を示す。関連性スコアは、構成アイテムに対して行われたクエリに対する少なくとも初期応答を決定するために使用され得る。例えば、「ホストＨ１で実行中のプロセスを一覧表示する」などの一般的なクエリに対する応答は、閾値を上回る関連性スコアが割り当てられたプロセスを含み得て、それによって、応答の合計サイズが減少し、ノイズの多いまたは情報の少ない応答を回避し得る。図７に示される特定の例示的な要素はプロセスに適用されるが、同様の手法は、様々な実施形態で他のタイプの構成アイテムに関しても行われ得る。
【００４３】
所与の物理的または仮想化された計算サーバは、通常、多くのリソースを使用せず、バックグラウンドタスクを実行するか、または、通常とは異なる状況に応答するために（例えば、オペレーティングシステムレベルまたはカーネルレベルで）使用される、多くの下位レベルまたはバックグラウンドプロセスを含む、何百ものプロセスを含み得る。そのようなプロセスの多くは、所与のバージョンのオペレーティングシステムのすべてのインスタンスに存在し得る。例えば、５０台のＬｉｎｕｘ（登録商標）サーバを含む実行環境では、同様のデーモンプロセスのセットが、５０台のサーバすべてで実行され得る。構成サービスのデータの少なくとも一部の使用者は、アプリケーション固有のプロセスに関心があり、したがって、既定では、必ずしもすべてのサーバのプロセスリストに表示され得ない。したがって、構成サービスは、関連性スコア割り当てアルゴリズム７１０で、異なるホストまたはサーバでの所与の頻度の繰り返し頻度７１２を考慮に入れ得て、すべてのホスト（またはほぼすべてのホスト）で実行されるプロセスは、より低い関連性を割り当てられる。最近のＣＰＵ使用率７１４、ネットワークポート使用状況７１６（例えば、プロセスが１つまたは複数のネットワークポートを介してトラフィックを送信または受信しているかどうか）及び／またはＩ／Ｏデバイス使用状況７１８などのプロセスのリソース使用状況レベルは、描写される実施形態では、関連性スコアとそれぞれ正の相関を有し得る。例えば、非常に低いレベルのリソースを使用する傾向がある、及び／またはネットワークから切断されているプロセスは、関連性が低いと考えられ得る。少なくともいくつかの実施形態では、構成検出サービスは、所与の種類のプロセス（例えば、「ｈｔｔｐｄ」という名前のプロセスに対して行われたクエリ）を特に対象とする（例えば、所与のクライアント、クライアントの集合、またはすべてのクライアント／使用者のいずれかからの）クエリの数を追跡し得る。クエリ履歴メトリック７２４はまた、プロセスの関連性を決定するために使用され得る。例えば、Ｘ日前以内に名前または役割によって、具体的にプロセスに対して行われたクエリがあった場合、高い関連性スコアをプロセスに割り当て得る。
【００４４】
描写される実施形態では、アルゴリズム７１０によって生成された関連性スコアは、プロセスを少なくとも２つのカテゴリ、すなわち、描写される実施形態では、選択された閾値より高いスコアを有する「より興味深い」プロセス７３０、及び閾値以下のスコアを有する「興味のない」プロセス７３２に分類またはランク付けするために使用され得る。所与のプロセス関連クエリが、すべてのプロセスを応答に含めることを指定していないか、または「興味のない」プロセスとして分類される特定のクエリに関する情報を特に要求しない限り、描写される実施形態では、より興味深いプロセスのリストは、クエリ応答を準備するために使用され得る。同様のヒューリスティック手法は、少なくともいくつかの実施形態では、他のタイプの構成アイテムに関するクエリへの応答をクレンジングまたは短縮するために使用され得る。様々な実施形態では、図１に示すスコアリング構成要素１１２は、関連スコア、信頼スコアなどを生成するために機械学習技術を利用し得る。
【００４５】
構成クエリパフォーマンスの向上
検出サービスの多くの顧客は、大規模なアプリケーション実行環境を有し得て、いくつかのデータセンターに分散された数千の構成アイテムを含む可能性があり得る。アプリケーション構成要素の構成の最近の変更、及び／またはアプリケーション構成要素のパフォーマンスまたは動作の最近の傾向は、しばしば、古い構成データよりも、そのような顧客にとっては大きな関心事になり得る。経時的に、所与のアプリケーション実行環境の検出サービスで収集され格納される構成データの総量が非常に大きくなり得て、特に、いくつかの従来のデータモデルが最適化され得ないテンポラルクエリに関しては、クエリ応答性が低下する可能性があり得る。図８は、少なくともいくつかの実施形態による、テンポラルクエリに対する応答性を向上させるために構成検出サービスで使用され得る技術の概要を示す。
【００４６】
データソース８０２によって取得された生の構成データセット８７１は、前述したように、構成アイテムの１つまたは複数の一意のサービス側識別子にそれぞれ関連付けられた、タイムスタンプ付き結合構成レコード８７２を生成または更新するために、検出サービスの結合構成要素８０４で使用され得る。結合構成レコード８７２は、描写される実施形態では、一連の永続検出サービスリポジトリ８１０の一部を形成する自動スケーリング分割データストア８２０に格納され得る。各パーティションは、一実施態様では、Ｍギガバイトなどの選択された最大量の構成レコードデータを含み得て、検出サービスの各クライアントは最初に１つのパーティションに割り当てられる。クライアントの構成データが、クライアントの既存のパーティション（複数可）の最大パーティションサイズに近づくと、関連付けられたリソースのセット（例えば、割り当てられた記憶スペース及び／または計算能力）を有する新しいパーティションは、クライアントに対して自動的に作成され得て、いくつかの実施態様では、クライアントのデータのいくつかのサブセットは、負荷分散のために新しいパーティションに移動され得る。いくつかの実施形態では、プロバイダネットワークによって実施されるデータベースサービス及び／またはストレージサービスを、永続リポジトリ８１０に使用し得る。永続リポジトリはまた、いくつかの実施形態では、以前に生成されたクエリ結果のためのオプションのストア８２２を含み得る。永続リポジトリ８１０は、レコード取得のための平均待ち時間Ｌ１を有し得る。
【００４７】
図８に描写される実施形態では、少なくともいくつかの構成レコードを、矢印８７５で示すように、特定の予想されるタイプのクエリに最適化された低遅延リポジトリ８５０に事前にプリロードし得る。レコードは、様々な実施形態では、作成及び／または最新の変更タイムスタンプをそれぞれ含み得る。レコードは、逆時間順にロードされ得、例えば、少なくともいくつかの実施形態では、より最近更新された（またはより最近作成された）プリロードするレコードにより高い優先度が割り当てられる。リポジトリ８５０からレコードにアクセスするための平均待ち時間Ｌ２は、リポジトリ８１０へのレコードアクセスの待ち時間Ｌ１よりも短くし得る。少なくともいくつかの実施態様では、リポジトリ８５０は、主に最近の構成データに対して行われたテンポラルクエリまたは時系列クエリを含む、クライアントクエリを処理するように指定された検出サービスの様々なコンピューティングデバイスの揮発性メモリの一部を含み得る。リポジトリ８５０の構成データキャッシュ８５２は、いくつかの実施形態では、ＯｐｅｎＴＳＤＢで使用されるデータモデルなどの、特にテンポラルクエリ（例えば、「最近の１時間にサーバＳ１及びＳ２で発生した構成変更を一覧表示する」という論理等価）を対象とするデータモデルを実施し得る。少なくともいくつかの実施形態では、キャッシュ８５２に利用可能な最大スペースは、永続レコードリポジトリで利用可能なスペースよりも小さくし得て、その結果、より新しいエントリのための余地を作成するために、必要に応じて、古いキャッシュエントリ８９２を破棄し得る。少なくともいくつかの実施形態では、いくつかのクエリの結果は、クエリ結果ストア８２２に任意選択で格納され得て、矢印８７７によって示されるように、必要に応じて再利用され得る。
【００４８】
いくつかの実施形態では、図８に示すもの以上の追加のストレージ層を使用し得る。例えば、コールドストレージのバックエンド層は、閾値月齢（１ヶ月または６ヶ月など）に達した構成データに使用され得る。そのようなコールドストレージ層は、プライマリ永続データリポジトリよりも低コストであり得る（場合によっては、データに対してより空間効率の良いフォーマットを使用し得る）が、コールドストレージからレコードを取得するための待ち時間が長くなり得る。少なくともいくつかの実施形態では、指定されたタイムスタンプまたは期間に対応する構成レコードを、使用されている異なるストレージ層のいずれかから取得できるように、構成検出サービスによって一連のスナップショットベースのプログラムインターフェース（または他の時間的指向のプログラムインターフェース）を実施し得る。一実施形態では、異なる時点でのクライアントの構成データのそれぞれの
スナップショットは、検出サービスによって個別のオブジェクトとして自動的にまたは要求に応じて作成及び格納され得て、少なくともいくつかの時間ベースの構成クエリに迅速に応答することができ得る。様々な時点に対応するスナップショットは、様々な実施形態では、他の層からキャッシュ８５２への要求に応じて（または要求を見越して）ロードされ得る。一実施形態では、スナップショットベースのＡＰＩは、クライアントが、２つのスナップショット構成が、比較が有用となるのに十分に類似しているかどうかを判定し、そうであれば、そのような比較の結果（構成スナップショットレベルの「ｄｉｆｆ」コマンドの結果と概念が類似する）を提供し得る。
【００４９】
構成検出サービスをサポートするための方法
図９は、少なくともいくつかの実施形態による、構成検出サービスで実行され得る動作の態様を示すフロー図である。要素９０１に示すように、クライアントの１つまたは複数のアプリケーション実行環境からの構成情報の自動検出を、検出サービスで開始させるという決定が行われ得る。実行環境は、１つまたは複数のプロバイダネットワークの（例えば、検出サービス自体が実施されている同じプロバイダネットワーク、ならびに他のプロバイダネットワークの仮想コンピューティングサービス及び／またはストレージサービスの）、及び／または顧客所有または顧客管理設備のリソースを含み得る。自動検出を開始させるという決定は、例えば、検出サービスのプログラムインターフェースを介して顧客から受信した要求に応答して行われ得る。例えば、サービスが  Ｓｔａｒｔｄａｔａｃｏｌｌｅｃｔｉｏｎ  ＡＰＩを公開すると、サービスのエージェントが自動検出を開始する可能性がある。例えば、エージェントはステータス変更のためにＡＰＩをポーリングするように構成できる。検出サービスがデータベースのステータスを変更してデータ収集を開始すると、エージェントはこの状態更新を受信してデータ収集を開始できる。
【００５０】
例えば、検出サービスエージェントによって構成データソースの初期セットが識別され得て（要素９０４）、（例えば、エージェントを介して）検出サービスとデータソースとの間にネットワーク接続が確立され得る。例えば、クライアントの既存の構成管理データベース、サードパーティの構成管理及び／またはパフォーマンス管理ツール、及び／またはクライアント専用に生成されたカスタムデータソースを含む、様々なデータソースを使用し得る。サービスは、一括エクスポート／インポートインターフェース、イベント駆動型構成更新のためのインターフェースを含む、様々なカテゴリのデータソースから生の構成データセットを受信するためのプログラムインターフェースを実施し得る。エージェントは、プログラムインターフェースにデータを送信するように構成できる。例えば、エージェントは、プログラムインターフェースのエンドポイント（複数可）を識別する情報を使用してプログラムすることができる。
【００５１】
サービスは、データソースからの生の構成データセットの収集を開始し得る（要素９０７）。各データセットは、いくつかの属性値のセット及び関連付けられた構成アイテムについてのいくつかの識別情報（例えば、データソースによって取得された識別子）を含み得る。例えば、検出サービスで定義されたデータソース側識別子、属性値、及び／またはオントロジーの要素を組み合わせた命名規則に基づいて、描写される実施形態では、様々な構成アイテムに対して一意のサービス側識別子を作成し得る（要素９１０）。サービス側識別子は、少なくともいくつかのデータソース提供識別子とは異なり得て、いくつかの実施形態では、構成アイテムが物理的に移動され、様々な目的などのために再配置された場合でも、そのライフサイクル中にサーバなどの構成アイテムを一意に識別するために使用され得る。いくつかの実施形態では、特定の構成アイテムに適用される構成変更の範囲によって、検出サービスは、経時的に一意のサービス側識別子を変更し得る。サービス側識別子を変更するための閾値条件は、構成アイテムのカテゴリごとに異なり得る。一例のシナリオでは、例えば、メモリまたはディスクスペースがホストに追加された場合、ホストのサービス側の一意の識別子は変更され得ないが、ＣＰＵまたはマザーボードがスワッ
プアウトされた場合、一意の識別子は変更され得る。
【００５２】
描写される実施形態では、検出サービスで、異なる粒度、異なる時間、または異なるツールを使用して、同じ基本エンティティについての構成詳細を含み得る、様々なデータソースからの生の構成データセットを結合させ得る（要素９１３）。いくつかの実施形態では、生のデータセットは、共通の識別子を使用して構成アイテムを識別し得ず（例えば、それぞれの生の構成データセットの同じ構成アイテムに対して異なるデータソース側識別子を提供し得る）、及びサービスは、異なるソースから受信した様々な属性値間の相関または一致を利用して、２つの異なるデータセットの構成データが、実際に同じ構成アイテムを参照していることを検出し得る。結合構成レコードは、検出サービスの１つまたは複数の永続リポジトリで生成され格納され得る。
【００５３】
少なくともいくつかの実施形態では、それぞれの信頼スコアを異なるデータソースに関連付けさせ得て、そのような信頼スコアは、報告された構成データ間の競合を解決し、及び／または信頼性の低いソースから受信したいくつかの属性値を任意選択で破棄するために使用し得る（要素９１６）。したがって、結合され選別された構成レコードは、生の構成データセットに示された属性値のいくつかのサブセットを除外し得る。一部の属性値は、信頼スコアのために除外されるのに加えて、または除外される代わりに、失効によって（例えば、値が収集されてから経過した時間が、サービスで選択された閾値を超えているため）除外され得る。信頼スコア自体は、例えば、機械学習技術及び／またはクライアントフィードバックを使用して、経時的に調整され得る。
【００５４】
様々な実施形態では、検出サービスは、アプリケーションパターンに従って構成アイテムをグループ化するための記述子を維持し得る。構成アイテムの動作及び／または通信パターンが、そのような記述子に示された動作またはパターンと一致する場合、サービスは対応する役割識別子を使用して、構成アイテムの構成レコードに自動的にタグを付け得る（要素９１９）。例えば、サービスで収集された構成データ（例えば、ネットワークパケットフローのパターン）により、サービスは、サーバによって果たされている役割をクライアントによって知らされることなく、特定のサーバが、多層ウェブアプリケーションパターンのウェブサーバであること、別のサーバが、そのパターンのアプリケーションサーバであることなどを十分認識し得る。
【００５５】
いくつかの実施形態では、結合及び選別される構成レコードの少なくとも一部は、予想されるタイプのクエリに適したデータモデルが実施される低遅延リポジトリに、保存された元の永続リポジトリからプリロードされ得る（要素９２２）。低遅延リポジトリは、いくつかの実施形態では、テンポラルクエリに対する迅速な応答を提供し得る（例えば、揮発性メモリに実装された）キャッシュを含み得る。いくつかの実施形態では、データは、より最近の変更またはメトリックに対して行われたクエリが優先されるように、（結合レコードの更新タイムスタンプを使用して）逆時間順にロードされ得る。結合レコードの内容は、検出サービスのプログラムインターフェースを介して受信されたクエリに応答して提供され得る（要素９２５）。
【００５６】
検出された構成情報のための視覚化サービス
図１０は、少なくともいくつかの実施形態による、検出サービスで収集された構成レコードの視覚化サービスを実施し得る例示的なシステム環境を示す。図示されるように、システム１０００は、プロバイダネットワーク１００２Ａ及び１００２Ｂ、ならびに顧客設備ネットワーク１０７２を含む。図１から図９の文脈において上述したものと同様の構成検出サービス１００４を含む、いくつかのネットワークアクセス可能なサービスは、プロバイダネットワーク１００２Ａで実施され得る。描写される実施形態では、視覚化サービス１００６は、例えば、検出サービス１００４に格納された構成データのカスタマイズさ
れたグラフィカル表現を提供するために、構成検出サービス１００４の構成要素として実施され得る。他の実施形態では、視覚化サービス１００６は、検出サービス１００４から構成レコードを取得するスタンドアロンサービスとして実施され得る。
【００５７】
システム１０００は、描写される実施形態では、プロバイダネットワーク１００２Ａの構成アイテム１０３６Ａ〜１０３６Ｃ、プロバイダネットワーク１００２Ｂの構成アイテム１０３６Ｆ〜１０３６Ｈ、及び顧客設備ネットワーク１０７２の構成アイテム１０３６Ｌ〜１０３６Ｎを含む、多数の構成アイテム１０３６を含む。構成アイテムに関連付けられた生の構成データセット（例えば、属性値のセット）は、プロバイダネットワーク１００２Ａのデータソース１０３４Ａ及び１０３４Ｂ、プロバイダネットワーク１００２Ｂのデータソース１０３４Ｋ、及び顧客設備ネットワーク１０７２のデータソース１０３４Ｍなどの様々な構成データソース（ＣＤＳｒｃｓ）１０３４で取得し得る。生の構成データセットは、構成検出サービス１００４に送信され得、前述したように、結合構成レコードが生のデータから生成され、１つまたは複数のリポジトリに格納され得る。
【００５８】
視覚化サービス１００６は、描写される実施形態では、複雑なアプリケーション環境の構成を動的に更新した状況依存のグラフィカル表現をクライアントに提供し得る。所与のクライアントが視覚化コンソールにログオンするか、または、そうでない場合は、クライアントのアプリケーション実行環境のグラフィカル表現が所望されているという指示を送信すると、視覚化サービスは、構成データが表示されるクライアントに関連付けられた構成アイテムのセットを識別するために、検出サービスのプログラムインターフェースを使用して１つまたは複数のクエリを発行し得る。所与のクライアント側表示環境でクライアントのために情報が視覚化される構成アイテム１０３６の集合は、本明細書では視覚化ターゲット環境（ＶＴＥ）と呼ばれ得る。所与のＶＴＥは、異なるネットワークの複数のデータセンターに分散された構成アイテムを含み得る。例えば、クライアントＣ１のＶＴＥ１０４４Ａは、プロバイダネットワーク１００２Ａの１つまたは複数のデータセンターの構成アイテム１０３６Ｂ及び１０３６Ｃ、ならびにプロバイダネットワーク１００２Ｂの場合、１つまたは複数のデータセンターの構成アイテム１０３６Ｆ及び１０３６Ｇを含み得る。クライアントＣ２のＶＴＥ１０４４Ｂは、描写される例では、プロバイダネットワーク１００２Ｂの構成アイテム１０３６Ｈ及び顧客設備ネットワーク１０７２の構成アイテム１０３６Ｌを含み得る。
【００５９】
少なくともいくつかの実施形態では、視覚化サービス１００６は、ＶＴＥのグラフィカル表現（例えば、表示に利用可能なスクリーンの種類、表示をレンダリングする役割を果たすクライアント側デバイスの計算能力など）が表示される表示環境の様々な特性または制約を検出し、それに応じて表示されるコンテンツを調整することができ得る。所与のクライアントは、いくつかの異なる表示環境を利用することができ得る。例えば、クライアントＣ１の表示環境１０８２Ａは、複数のモニタを有するデスクトップを含み、クライアントＣ１のもう１つの表示環境１０８２Ｂは、タブレットコンピューティングデバイスを含み得る。クライアントＣ２の表示環境１０８２Ｃは、１０８４ｘ７６８画素スクリーンを備えた１３インチのラップトップを含む。場合によっては、単一のクライアントのために複数の表示環境を同時に使用し得て、視覚化サービスは、異なる表示環境に異なる粒度レベルで情報を送信し得る。
【００６０】
所与のクライアントのＶＴＥ１０４４の一部として識別された構成アイテムのセットに少なくとも部分的に、及び表示環境の制約または特性に少なくとも部分的に基づいて、視覚化サービスは、ＶＴＥが表示される粒度レベルを選択し得る。視覚化サービスとのクライアントの相互作用セッション中に、利用可能なクライアントの構成情報の様々な（またはすべての）サブセットのいくつかの異なるビューが提供され得て、セッションのクライアントの目的に応じて、ビューの特定の組み合わせまたはシーケンスが提供される。例え
ば、あるセッション中に、クライアントがパフォーマンス上の問題のトラブルシューティングを所望し得る、別のセッション中に、クライアントが、ある期間にわたるアプリケーションの構成に対する変更の表示を所望し得る、第３のセッション中に、クライアントがネットワークパケットのソースの識別を所望し得る、など。そのようなセッションまたはワークフローはそれぞれ、グラフィカル表示またはビューのそれぞれのシーケンスを含み得る。描写される実施形態では、視覚化サービスによって、「ビューカテゴリ」と呼ばれ得る、例えば、階層的またはツリー指向のビュー、グラフまたはネットワーク指向のビュー、またはテーブルビューなどの、構成データを表示するいくつかの異なるモードがサポートされ得る。所与のセッション中に所与の表示に使用される特定のビューカテゴリは、少なくともいくつかの実施形態では、視覚化サービスによって自動的に選択され得る。この選択は、セッションまたはワークフローの現在の状態に最も関連付けられたと考えられる構成データの特定のタイプ（例えば、パフォーマンス測定値、ネットワーク接続性情報、構成の時間的変化、構成アイテム間の階層／包含関係、クライアント指定の基準に基づく特定のタイプの構成アイテムのランキングなど）に少なくとも部分的に基づき得る、及び／またはクライアントの目的に関するサービスの予測または期待に少なくとも部分的に基づき得る。クライアントは、必要に応じて、ビューカテゴリの選択をオーバーライドするための制御要素（例えば、ボタン、ドロップダウンメニューなど）を提供し得る。例えば、クライアントは、ビューをテーブルビューから階層ビューに、またはその逆に変更する要求を発行し得る。使用されるビューカテゴリと共に、それぞれが選択された粒度レベルでＶＴＥの少なくとも一部を表す、動的にカスタマイズされた構成視覚化１０２２（例えば、視覚化１０２２Ａ〜１０２２Ｃ）を生成するために使用できるデータ及び／または命令は、クライアントの表示環境のデバイスに送信され得る。次いで、ＶＴＥ構成要素に対応するデータは、クライアントのデバイスで表示するためにレンダリングされ得る。視覚化サービスは、少なくともいくつかの実施形態では、同じＶＴＥのいくつかの異なる表現の表示を並行して開始し得る。
【００６１】
少なくともいくつかの実施形態では、ＶＴＥ１０４４の全体または一部のグラフィカル表現の生成を開始することに加えて、視覚化サービスはまた、クライアント向けのダッシュボードに含まれる優先度の高いまたは重要度の高いコンテンツを提供し得る。視覚化サービスは、例えば、時間ウィンドウの境界を決定し、時間ウィンドウ中に発生した少なくともいくつかの構成変更に関する情報を、ダッシュボードの「最近の変更」セクションに表示させ得る。以下でさらに詳細に説明するように、様々な実施形態では、ダッシュボードはまた、視覚化サービス及び／または検出サービスによって識別される曖昧性に関するクライアントのフィードバックを受信するために使用され得る。ダッシュボードのレイアウト及び提示はまた、少なくともいくつかの実施形態では、クライアントの表示環境の制約及び能力に基づいて変更し得る。
【００６２】
新しい構成情報が検出サービス１００４で収集されるとき、視覚化サービスは、クライアントに提供されるグラフィカル表現を自動的に更新し得る。以下にさらに詳細に説明するように、時間の関数として構成情報を再生するためのスライダなどの、いくつかのインタラクティブな制御が、視覚化インターフェースではクライアントに利用可能にされ得る。
【００６３】
コンテキストベースのビュー遷移
視覚化サービスは、構成データを表示するためのクライアントワークフローのステップを予測し、表示されたコンテンツを自動的に調整して、様々な実施形態で最も有用なビューを提供することができ得る。図１１は、少なくともいくつかの実施形態による、視覚化サービスによって自動的に実施され得るビュー間の例示的なコンテキストベースの遷移を示す。テーブルビュー１１２０Ａ、ツリーまたは階層ビュー１１２０Ｂ、及びグラフまたはネットワークビュー１１２０Ｃの３つの例示的なビューカテゴリが示される。場合によ
っては、ビューカテゴリのいくつかまたはすべてを使用して、構成アイテム１１０２Ａ〜１１０２Ｆなどの構成アイテムのほぼ同じセットを表示することが可能であり得る。
【００６４】
視覚化サービスは、描写される実施形態では、例えば、クライアントによって次に入力されると予想される相互作用ワークフローの特定の段階に基づいて、表示される構成データのタイプ、表示のために選択された粒度など、様々な要素に基づいて、使用される特定のビューカテゴリを選択し得る。様々な実施形態では、ビューカテゴリを選択するために使用され得る構成データタイプの例には、とりわけ、パフォーマンス測定、トランザクションフロー、構成の時間的変化、アクティブな接続の数などのネットワーク接続インジケータ、包含／階層関係情報、構成アイテムの位置ベースのグループ化、図５に示すようなアプリケーションパターンのメンバーシップなどを含まれ得る。そのような自動化されたワークフローコンテキストベースの遷移１１０５（例えば、遷移１１０５Ａ〜１１０５Ｃ）は、少なくともいくつかの実施形態では、クライアントによってオーバーライドされ得る。例えば、表示されるデータに使用されているビューカテゴリの変更をクライアントが要求するために、使用されているグラフィカルインターフェースのリンクまたは他の制御要素が提供され得る。
【００６５】
視覚化サービスは、少なくともいくつかの実施形態では、頻繁に使用されるクライアントワークフローの知識ベースを維持し、各ワークフローは、視覚化サービスとのセッション中に、クライアントの目的を達成するために、クライアントに典型的に提供される表示のそれぞれのシーケンスを表し得る。例えば、そのようなワークフローの１つは、クライアントが視覚化コンソールにログインし、クライアントのアプリケーションに使用されているすべてのホストなど、選択されたタイプの構成アイテムのテーブルビューを提供することから開始され得る。テーブルビューでは、様々な属性など（例えば、ホスト名、ＩＰアドレス、現在の動作可能時間、最近の時間間隔中の平均ＣＰＵ使用率、最近の時間間隔中に使用された平均ネットワーク帯域幅など）の値が、異なるホストに対して提供され得る。クライアントがログインした後に、最初に表形式で提示される特定の構成アイテムタイプは、例えば、一実施態様では、クライアントのプリファレンス設定で示され得る。クライアントが最初のログイン後の表示のプリファレンスを指定していない場合、一実施形態では、視覚化サービスは、クライアントの視覚化ターゲット環境に関連付けられた最大または最も包括的な階層構成アイテムタイプ（例えば、クライアントのリソースが分散されるデータセンター、クライアントによって使用されるネットワークサブネット、図５に示されるものと同様のアプリケーションパターンのインスタンス、またはホスト）を検索し、そのタイプの構成アイテムを一覧表示しようと試行し得る。
【００６６】
ワークフローの次の表示のためのビューカテゴリは、クライアントと（例えば、以前に使用されたワークフローとの一致に基づいて、ワークフローのクライアントの目的を示すものとして解釈され得る）第１の表示との相互作用に基づいて選択され得る。第１の表示がホスト情報のテーブルを含み、クライアントがネットワーク帯域幅使用状況のメトリックに基づいてホストを並び替えを要求する場合、例えば、サービスは、クライアントが次の表示でネットワーク接続情報を見ることを望んでいると想定し得る。したがって、例えば、ホスト間のネットワークパス、ホスト間でオープンしている接続などを示す、選択されたホストのセットのネットワークビューが次に表示され得る。第１の表示が可用性コンテナまたはデータセンターなどの階層的コンテナのリストを含み、クライアントがコンテナの１つをクリックした場合、クライアントが、含まれている構成アイテムを見ることを望んでいるという想定の下に、階層またはツリービューカテゴリが、次の表示のために選択され得る。様々な実施形態では、自動ビューカテゴリ選択のために、表示される構成データのタイプ及び以前に使用されたワークフローとの一致以外のいくつかの要素が考慮され得る。例えば、ワークフローの所与の段階で情報が利用可能なクライアントの構成アイテムの総数、クライアントの表示環境の予想されるサイズ（例えば、画素単位）などが、
カテゴリビュー選択に影響を及ぼし得る。例えば、クライアントのアプリケーションが１０００台のホストを使用し、スマートフォンがクライアントの表示環境として検出された場合、（例えば、データセンターの場所に基づいて、またはサブネットメンバーシップに基づいて）ホストの階層ビューまたは要約ビューが、１０００台のホストすべてのテーブルビューの代わりに提供され得る。一実施形態では、クライアントは、（場合によっては、自動ビューカテゴリ選択決定のクライアントのオーバーライドを含み得る）視覚化サービスとの相互作用のレコードを保存するように要求し得て、そのようなカスタマイズされたレコードは、後続のセッションでビューカテゴリを選択するために使用し得る。
【００６７】
視覚化インターフェース構成要素の実施例
前述のように、視覚化サービスは、１つまたは複数のアプリケーション実行環境の少なくとも一部のグラフィカルビュー及び、ダッシュボードの両方を提供し得る。図１２は、少なくともいくつかの実施形態による、視覚化サービスのグラフィカルユーザインターフェースの例示的な要素を示す。図示されるように、視覚化インターフェース１２０２は、描写される実施形態では、視覚化ターゲット環境１２０５及びダッシュボード１２７０の一部または全部を示し得る。いくつかの実施形態では、グラフィカルユーザインターフェースは、ブラウザの一部としてレンダリングされ得て、他の実施形態では、スタンドアロンツールが使用され得る。
【００６８】
ＶＴＥ部分１２０５は、構成アイテムのいくつかの位置ベースのグループ分けを示し得る。描写される例では、プロバイダネットワーク１２２０及び顧客所有のデータセンター１２３０で検出された構成アイテムに関する情報がＶＴＥ部分に含まれる。少なくともいくつかの実施形態では、プロバイダネットワークは複数の地理的領域に編成し得て、各領域は、「可用性ゾーン」とも呼ばれ得る、１つまたは複数の可用性コンテナを含み得る。次いで、可用性コンテナは、所与の可用性コンテナ内のリソースが他の可用性コンテナ内の不具合から隔離されるような手段で、（例えば、電力関連装置、冷房装置、または物理的機密保護構成要素などの独立したインフラ構成要素を使用して）設計された、１つまたは複数の異なる場所またはデータセンターの一部または全部を含み得る。１つの可用性コンテナ内の不具合が、他のあらゆる可用性コンテナ内に不具合をもたらすことは予期され得ず、したがって、所与のリソースの可用性プロファイルは、異なる可用性コンテナ内のリソースの可用性プロファイルから独立していることが意図される。したがって、それぞれの可用性コンテナ内に複数のアプリケーションインスタンスを起動することによって、様々なタイプのサービス及び／またはアプリケーションを単一の場所での不具合から保護し得る。少なくとも一部のプロバイダネットワーク顧客にとって、異なる可用性コンテナ間で顧客に割り当てられたリソースの分布を、視覚的に表現することは有用であり得る。図１２に示すシナリオでは、顧客に割り当てられた仮想マシンは、少なくとも２つの可用性コンテナに分散される。仮想マシン（ＶＭ）１２２２Ａ及び１２２２Ｂは、プロバイダネットワーク１２２０の可用性コンテナ１２１０Ａ内で実行され、ＶＭ１２２２Ｋ及び１２２２Ｌは、第２の可用性コンテナ１２１０Ｂ内で実行される。
【００６９】
視覚化サービスによってプロバイダネットワークに関して表示される位置ベースのグループは、例えば、位置の詳細に関する異なる権限に基づいて、顧客設備ネットワークに関して表示されるグループと異なることがあり得る。例えば、仮想マシン１２２２は、可用性コンテナによってグループ化されて示されているが、顧客所有のデータセンター１２３０内に示されるリソースは、ルーム及びサーバラックによってグループ化される。データセンター１２３０のルーム１２１４は、顧客のＶＴＥの２つのラック１２３２Ａ及び１２３２Ｂを含む。ラック１２３２Ａは、２つのサーバ１２３４Ａ及び１２３４Ｂを含み、ラック１２３２Ｂはサーバ１２３４Ｃを含む。構成アイテム間に確立されたネットワーク接続も表示し得る。例えば、ＶＭ１２２２Ａはサーバ１２３４Ａ及びＶＭ１２２２Ｋに接続されて示され、ＶＭ１２２２ＢはＶＭ１２２２Ｌ及びサーバ１２３４Ｋ接続される、など
。位置ベースのグループ化の粒度は、例えば、構成アイテムの総数、表示環境のプロパティなどに基づいて、仮想化サービスによって自動的に選択され得る。少なくとも１つの実施形態では、特定のグラフィカル表現で、（そうするための明示的な要求を受信せずに）自動的に含まれる位置ベースの境界カテゴリは、例えば、プロバイダネットワークの可用性コンテナ境界、データセンターの境界、ラックの境界、ルームの境界、ネットワーク相互接続トポロジの境界、物理マシンの境界、処理コンテナの境界または仮想マシンの境界を含むセットから選択し得る。それぞれの隔離されたアプリケーションセットに対応する複数の処理コンテナは、例えば、単一のハードウェアホストでサポートされ得て、視覚化サービスは、特定のビューに対してサーバ内のコンテナのグラフィカル表現を提供し得る。
【００７０】
ダッシュボード１２７０は、描写される実施形態では、最近の構成変更（セクション１２７１の選択された時間ウィンドウに示される）、及び曖昧性解消セクション１２７２の２つのタイプの情報を含み得る。最近の時間ウィンドウで生じた構成変更は、描写される実施形態では、セクション１２７１で（例えば、上記の種類の関連性スコア及び／または他の要素に基づいて）ランク付けされ得て、順序またはランクで表示され得る。これにより、クライアントはアプリケーションの実行環境がどのように変化しているかを迅速に理解でき得る。
【００７１】
いくつかの実施形態では、構成検出サービスは、視覚化インターフェースを利用してクライアントのフィードバックを取得し、構成アイテムのアイデンティティに関する質問を確認または解決するのを助けることができる。特定の構成アイテムのアイデンティティのクライアントのフィードバックに基づく曖昧性解消を開始させるという決定が行われた場合、曖昧性解消の要求はインターフェースのセクション１２７２に示され得る。例えば、要求は、提案されたアイデンティティ及び／または提案されたアイデンティティの確認を要求するシンボル（例えば、疑問符またはテキストバルーン）を有する構成アイテムの１つまたは複数の属性値を示すことができる。クライアントは、フィードバック（例えば、チェックマーク）を入力するか、代替の識別子または名前を提供することによってアイデンティティを確認し得る。クライアントのフィードバックの助けによって、曖昧なアイデンティティが解決された場合、構成検出サービスはその構成レコードを更新（または確認済みとしてマーク）し得て、曖昧性解消要求は、描写される実施形態では、セクション１２７２から削除され得る。
【００７２】
いくつかの実施形態では、視覚化サービスは、クライアントが構成検出サービスによって識別された様々なタイプのトランザクションに関連付けられた詳細（例えば、待ち時間）を調べることを可能にし得る。図１３は、少なくともいくつかの実施形態による、視覚化サービスの支援を受けて表示され得るトランザクション関連情報の例を示す。図示されるように、視覚化インターフェース１３０２は、「トランザクション表示」制御要素１３５０（例えば、ボタン）及び情報を表示する粒度をクライアントが増減できるようにするズーム制御要素１３４９を含み得る。ズーム制御要素１３４９は、例えば（プロバイダネットワーク１３２０内の）個々の仮想マシン１３２２及び（顧客所有データセンター１３３０内の）サーバ１３３４が示されている粒度レベルに到達するために使用され得る。クライアントが「トランザクション表示」ボタンをクリックすると、表示が更新され、領域１３７０Ａ及び１３７０Ｂが示され得る。領域１３７０Ａは、（トランザクションの定義が、サービス選択またはクライアント選択であり得る）１２５００個のトランザクションの要求が、顧客所有のデータセンターのルーム１３１４のラック１３３２Ａのサーバ１３３４Ｂからプロバイダネットワーク１３２０の可用性コンテナ１３１０Ｂの仮想マシン１３２２Ｋにある期間（この例では１００秒）の間に送信されたことを示す。平均スループットは１２．５トランザクション／秒で、平均トランザクション待ち時間または応答時間は５００ミリ秒だった。同様に、領域１３７０Ｂは、サーバ１３３４Ｋから仮想マシン１
３２２Ｂに送信されたトランザクションの数、スループット及び待ち時間を示す。
【００７３】
描写される実施形態では、最近のトランザクションリスト１３８５を表示に含め得る。視覚化ターゲット環境の現在表示されている部分に関連付けられたいくつかの最近のトランザクションについての詳細は、送信者構成アイテム１３８７の識別子（例えば、トランザクションが開始されたプロセスまたはホスト）、応答者１３８８、送信タイムスタンプ１３８９、トランザクションコマンド／要求の詳細１３９０、完了時刻及びステータス（例えば、コミット／中止）１３９１などである。クライアントは、視覚化インターフェースを使用して選択された属性に基づいて最近のトランザクションを並び替え、選択された期間のトランザクションを表示するように要求し、及び／またはトランザクション送信者またはトランザクション応答者に関する追加の詳細を見ることができ得る。いくつかの実施形態では、クライアントは、（例えば、パケットフローシーケンス、トランザクション要求及び応答のフォーマットなどを示す）視覚化サービスを介してトランザクション記述子を送信し、トランザクションが発生したときに構成検出サービスが監視することを可能にし得る。他の実施形態では、検出サービスは、様々な構成アイテム間の通信の頻繁な要求／応答パターンを検出することができ得て、これらのパターンを使用して、トランザクションを定義し得る。
【００７４】
図１４は、少なくともいくつかの実施形態による、視覚化サービスの支援を受けて表示され得るネットワークトラフィック関連情報の例を示す。前述のように、ネットワークトラフィック経路には、１つまたは複数のパケットが送信された真の送信元を検出することを困難にするアドレス変換器またはポート変換器が含まれ得る。描写される実施形態では、視覚化サービスは、選択された構成アイテム（例えば、仮想マシン１４２２Ａ）で受信されたネットワークパケットの数に関する統計を示す制御要素（制御要素１４４８など）を提供し得る。示される例のシナリオでは、領域１４７０は、いくつかの選択された時間間隔の間に、可用性コンテナ１４１０Ａ及びプロバイダネットワーク１４２０の仮想マシン１４２２Ａで合計４５００パケットが受信されたことを示す。
【００７５】
「トラフィックソースの表示」とラベル付けされた制御要素１４５０は、受信パケットのソース検出クエリを、視覚化サービスを介して構成検出サービスに送信するために使用され得る。これに応答して、検出サービスは、図６の文脈において論じられたような、いくつかのソース識別検出アルゴリズムのいずれかを使用して、難読化仲介を介して仮想マシン１４２２Ａにパケットを送信し得る構成アイテムの予想されるアイデンティティを確認し得る。アルゴリズムは、例えば、通常とは異なるパターンで複数の接続確立及び切断要求を送信し、パケット到着間隔時間を厳密に追跡し、それらを送信間隔時間と照合し、シーケンス番号を監視するなどを含み得る。描写される例では、領域１４７１Ａ及び１４７１Ｂに示されているように、構成検出サービスにより、サーバ１４３４Ａが、４５００パケットのうちの５００パケットのソースである可能性が高いと識別され、サーバ１４３４Ｋが、残りの４０００パケットのソースである可能性が高いと識別される。一部のパケットのソース識別では、本明細書で論じられた種類の識別検出アルゴリズムの呼び出しを必ずしも必要とし得ないことに留意されたい。すなわち、難読化仲介を通過しないパケットのソースは、構成検出サービスによってパケットヘッダから簡単に取得し得る。
【００７６】
いくつかの実施形態では、視覚化インターフェースは、受信タイムスタンプ１４８７、見かけの送信者ＩＰアドレス１４８８、受信者ＩＰアドレス１４８９、パケットサイズ１４９０及び／またはシーケンス番号１４９１などの詳細が表示され得る、最近の受信パケットリスト領域１４８５を含み得る。クライアントは、視覚化インターフェースによって提供される制御を介して、最新の受信パケットリスト領域１４８５の内容を、所望通りに並び替え及び／または再配置することができ得る。
【００７７】
図１５は、少なくともいくつかの実施形態による、視覚化サービスの支援を受けて経時的な構成変更の視覚化を得るためのスライダ制御要素の使用例を示す。スライダ制御要素１５７１は、クライアントが、様々な時点での視覚化ターゲット環境の状態を見ることを可能にし得る。描写される例では、視覚化インターフェース１５０２Ａは、クライアントのターゲット環境が、要素１５７４Ａに示される時点での５つの構成アイテム（プロバイダネットワーク１５２０の可用性コンテナ１５１０ＡのＣＩ１５２２Ａ及び１５２２Ｂ、可用性コンテナ１５１０ＢのＣＩ１５２２Ｋ及び１５２２Ｌ、外部データセンター１５３３のＣＩ１５２２Ｐ）を含むことを示す。
【００７８】
例えば、クライアントによって使用されている表示環境に応じて、マウスまたは指先を使用して、スライダを右に（矢印１５５１によって示されるように）移動すると、要素１５７４Ａに示された時間が進み、インターフェースに示された構成アイテムが変化し得る。要素１５７４Ｂに対応する時点で、例えば、インターフェース１５０２Ｂは、２つの新しい構成アイテムがクライアントのターゲット環境に追加されたことを示す。構成アイテム１５２２Ｒが可用性コンテナ１５１０Ｂに追加され、構成アイテム１５２２Ｓが外部データセンターに追加されている。少なくともいくつかの実施態様では、矢印１５５５で示すように、新たに追加された構成アイテムを強調表示（例えば、異なる色で一時的に表示）し得る。いくつかの実施形態では、スライダ以外のインタラクティブ制御（例えば、ラジオスタイルボタンまたは早送り／巻き戻し制御）を、時間ベースの構成表示のために提供し得る。インターフェースはまた、例えば、クライアントが、視覚化ターゲット環境の状態の機械読み取り可能なスナップショットを様々な時点でキャプチャすることを可能にするために、指定された時点での構成の違いのみを表示するために、タイムライン上の変更をプロットするために、などのテンポラルクエリに関連付けられた追加の制御を提供し得る。スライダ１５７１及び視覚化インターフェースの他の時系列指向制御は、様々な実施形態では、検出サービスのスナップショットベース及び／または（図８の文脈において上述した）他の時間指向のＡＰＩに依存し得る。
【００７９】
いくつかの実施形態では、視覚化サービスは、クライアントがアプリケーション構成要素を、あるデータセンターまたはプロバイダネットワークから別のデータセンターまたはプロバイダネットワークに移行させるための機構を提供し得る。図１６は、少なくともいくつかの実施形態による、アプリケーション実行環境の段階的な移行を開始するための視覚化サービスの使用例を示す。描写されるシナリオでは、アプリケーションパターン内の様々な構成アイテムによって果たされる役割を示すタグが、視覚化インターフェース１６０２Ａに示され得る。例えば、クライアントの構成アイテム間の相互作用のパターンに基づいて、構成検出サービスは、多層ウェブアプリケーションを識別し得る。外部データセンター１６３３で実行される構成アイテム１６２２Ｑは、多層ウェブアプリケーションのウェブサーバとして識別され得るが、構成アイテム１６２２Ｒは、多層ウェブアプリケーションのデータベースサーバとして識別され得る。タグ１６７４Ａ及び１６７４Ｂは、構成アイテム１６２２Ｑ及び１６２２Ｒに対してそれぞれ生成され得る。
【００８０】
段階的に多層ウェブアプリケーションの構成要素をプロバイダネットワーク１６２０に移行するための計画は、描写される実施形態では、例えば、移行計画及び実施サービスで生成され得る。移行の各段階は、特定の役割を果たす構成アイテム（例えば、「ウェブサーバ」または「データベースサーバ」）をプロバイダネットワークに移行させることを含み得る。各役割の移行計画の詳細は、制御１６３３Ａ（データベースサーバ用）及び１６３３Ｂ（ウェブサーバ用）を使用して表示し得る。制御要素１６７５は、クライアントが特定のタグに関連付けられた構成アイテムのための段階的な移行を開始することを可能とするために提供され得る。
【００８１】
描写される例では、クライアントがデータベースサーバのラベル「ＤＢ」でタグ付けさ
れた構成アイテムの移行を要求する場合、描写される実施形態では、視覚化サービスは、対応する要求をプログラムによって検出サービス及び／または移行実施サービスに送信し得る。構成アイテム１６２２Ｒに対応するデータベースサーバが、プロバイダネットワーク１６２０の可用性コンテナ１６１０Ｂへの段階的な移行の一部として移行された後、クライアントのビューが更新され、インターフェース１６０２Ｂに示すように、移行された構成アイテム（ラベル１６７４Ｃ）を示し得る。
【００８２】
少なくともいくつかの実施形態では、視覚化サービスは、移行に関する前後のパフォーマンス比較を可能にするインターフェースもサポートし得る。例えば、移行前のアプリケーションのパフォーマンス（例えば、スループット、トランザクション待ち時間／応答時間など）のベースラインビューを領域１６４６に示し得て、対応する移行後のパフォーマンス統計を領域１６４７に示し得る。移行後パフォーマンスの統計が不十分である場合、クライアントは、必要に応じて、逆の移行を開始し得る（例えば、描写される例では、外部データベースにデータベースサーバを戻す）。
【００８３】
一実施形態では、視覚化インターフェースは、アプリケーション内の構成アイテムによって果たされる様々な役割に関連付けられたタグを直接指定するために、クライアントによって使用され得る。例えば、クライアントが新しいタグを定義するために、または既存のタグをインターフェースを介して選択された構成アイテムと関連付けるために、「タグの追加」制御を提供し得る。経時的に、タグのライブラリが蓄積され得て、クライアントは、利用可能なタグを検査する、ライブラリの既存のタグに関するタグ付け要求を発行する、または新しいタグをライブラリに追加するために、視覚化インターフェースを使用し得る。実際には、クライアントは、視覚化サービスによって提供されるそのような制御を使用して、アプリケーションパターンに関する検出サービスを「教示」し得る。クライアントが、例えば、視覚化サービスを使用する１つまたは複数の構成アイテムとウェブサーバタグとを関連付けた後、検出サービスは、タグ付けされたアイテムの動作（例えば、他の構成アイテムとのネットワーク相互作用のパターン）を監視し得る。検出サービスは、観察された動作に基づいて、ヒューリスティックを生成することができ得て、クライアントによって明示的に要求されることなく、クライアントによって提供される例と同じラベル／タグで他の構成アイテムを自動的にタグ付けするために使用することができる。例えば、クライアントが多層ウェブアプリケーションアーキテクチャを実施する環境内にウェブサーバまたはデータベースサーバのいくつかの例を提供した後、検出サービスは、類似のアプリケーションアーキテクチャを独自に実施する他の環境内の他のウェブサーバ及び／またはデータベースサーバを識別し、それに応じて自動的に生成されたタグを表示することができ得る。
【００８４】
構成データ視覚化サービスをサポートするための方法
図１７は、少なくともいくつかの実施形態による、構成レコードのグラフィカル表現を提供するために視覚化サービスによって実行され得る動作の態様を示すフロー図である。要素１７０１に示すように、例えば、クライアントが視覚化ツールまたはコンソールにログインするとき、またはクライアントがプログラムインターフェースを介して視覚化要求を発行するとき、クライアントの１つまたは複数のアプリケーション実行環境に関連付けられた構成情報のグラフィカル表現を提供するという決定が行われ得る。アプリケーション実行環境は、１つまたは複数のデータセンターに分散されたリソースを含み得る。データセンターの一部は、プロバイダネットワークの一部であり得て、顧客所有の設備にあり得る。結合構成レコードの検出サービスのリポジトリに対して行われた１つまたは複数のクエリを使用して、視覚化サービスは、情報を表示する特定の視覚化ターゲット環境を識別し得る（要素１７０４）。いくつかの実施形態では、視覚化サービスは構成検出サービスの外部にあり得て、他の実施形態では視覚化サービスは構成検出サービスの一部を形成し得る。場合によっては、視覚化サービス（または検出サービス）の所与の顧客アカウン
トが、アカウントに関連付けられたいくつかの異なるアプリケーション実行環境を有し得て、表示できる構成アイテムの特定のセットは、クライアント側の表示環境によって異なり得る。顧客のオフィス内に配置されたワークステーション、例えば、クライアントのアプリケーション実行環境のより大きなサブセットからは、タブレットコンピュータよりも視覚的にアクセスし得る。少なくともいくつかの実施形態では、アイデンティティ及びアクセス管理システムは、表示を提供することができる構成アイテムの種類を決定するために使用し得る。
【００８５】
視覚化サービスは、（例えば、クライアント側デバイスオペレーティングシステムによってサポートされるＡＰＩを使用して）クライアント側表示環境の様々な特性を識別し得る（要素１７０７）。特性は、利用可能な画面の数とサイズ、グラフィカル表現を提供するクライアント側デバイスの計算能力、サービスとクライアントデバイスとの間の通信に利用可能なネットワーク帯域幅などを含み得る。視覚化ターゲット環境に利用可能な構成データの量及び／または表示環境の特性に基づいて、クライアント用に生成される初期のグラフィカル表現に関する視覚化サービスでいくつかの決定を行い得る。これらの決定は、構成情報を表示する（例えば、データセンターレベル、可用性コンテナレベル、ルームレベル、サーバレベルなどで集約される）粒度を選択すること、及び使用するビューカテゴリ（例えば、表形式のビュー、グラフ／ネットワークビューまたはツリー／階層ビュー）を選択することを含み得る（要素１７１０）。
【００８６】
少なくともいくつかの実施形態では、例えば、視覚化インターフェースのダッシュボード部分を使用して、構成変更が強調表示される時間ウィンドウが決定され得る（要素１７１３）。選択された粒度及びビューカテゴリを使用して、視覚化ターゲット環境の動的に更新された表示は、クライアント側表示環境で開始され得る（要素１７１６）。新しい構成データが検出サービスから利用可能になったとき、またはクライアントによってプログラムによって発行された要求に応じて、表示が更新され得る（要素１７１９）。一実施形態では、クライアント側表示環境の特性は、クライアントによって要求された情報を表示するには不十分であるとみなされることがあり得る。例えば、使用可能な画面領域が小さすぎてクライアントによって要求された詳細レベルを表示し得ない、またはクライアントデバイスで使用可能なネットワーク帯域幅が小さすぎて、要求されたデータ量を妥当な時間内に転送し得ない。そのようなシナリオの中には、例えば、現在のクライアント側表示環境を介して、視覚化要求を満たすことに関連付けられたリソース使用状況の見積もりに基づいて、視覚化サービスは、視覚化要求で要求された情報を表示するためのオフラインツール（または、現在使用されているものとは異なるクライアント側の表示環境）を利用するための推奨事項を送信し得る。
【００８７】
移行マーケットプレイスサービス
図１の文脈で述べたように、プロバイダネットワークは、いくつかの実施形態では、顧客が、必要に応じて、例えば、コストの削減、アプリケーションの可用性または復元性の向上、管理の簡素化などを支援するために、アプリケーションやアプリケーション構成要素を物理的または仮想的なプラットフォームのあるセットから別のセットに移行できるようにするという高レベルの目標と共に、１つまたは複数の移行関連サービスを実施し得る。検出サービスによって収集された情報は、前述したように、移行関連の決定を行うのに有用であり得る。しかし、複雑なアプリケーションスタックの構成要素間の多くの依存関係のために、ある環境から別の環境にアプリケーションを移行するプロセスは、アプリケーション所有者組織内では利用し得ない専門知識の助けを借りることがあり得る。いくつかの実施形態では、構成検出サービスが実行されるプロバイダネットワークは、移行マーケットプレイスサービスを実施することによって、移行ファシリテーターまたはエキスパートとアプリケーション所有者との間の仲介として機能し得る。顧客所有のデータセンターからプロバイダネットワークへ、またはあるプロバイダネットワークから別のプロバイ
ダネットワークへなど、ある実行プラットフォームセットから別のプラットフォームへのアプリケーションまたはアプリケーション構成要素の移行を計画及び／または実施するのに役立てることができるビジネスエンティティは、本明細書では、移行ファシリテーターまたは移行実行者と称され得る。移行ファシリテーターが、（アプリケーションが移行される）ターゲット実行プラットフォームのセットを操作するエンティティと異なり、アプリケーションが移行されるエンティティと異なる場合、移行ファシリテーターは、サードパーティの移行ファシリテーターと呼ばれ得る。少なくとも一部の移行ファシリテーターは、サードパーティと特徴付けられ得ない。例えば、移行が実行されるプロバイダネットワークの一部である（または提携している）専門サービスまたはコンサルティング組織は、いくつかの実施形態では、移行ファシリテーターの役割において移行マーケットプレイスサービスを利用し得る。高レベルで、移行マーケットプレイスサービスは、アプリケーション所有者が、複雑なアプリケーション移行タスクの手助けをしてくれる可能性があるパートナーについて知ることを可能にし、移行ファシリテーターが顧客を見つけることを可能にし得る。移行ファシリテーターには、様々な実施形態では、ツールプロバイダ（例えば、アプリケーションの移行を実施するために、クライアントが使用できる移行ツールを開発する独立系ソフトウェアベンダまたはＩＳＶ）、プロフェッショナルサービス組織、プロバイダネットワーク運用者のパートナーなどのツールを提供する代わりに、実際に移行を計画し実施する技術専門家が含まれ得る。
【００８８】
図１８は、少なくともいくつかの実施形態による、構成検出サービスで収集されたデータを利用する移行マーケットプレイスサービスを実施し得る例示的なシステム環境を示す。図示されるように、システム１８００は、いくつかのネットワークアクセス可能なサービスが実施されるプロバイダネットワーク１８０２を含む。サービスは、仮想化コンピューティングサービス１８１０、パッケージ化プログラム実行サービス１８１２、１つまたは複数のストレージまたはデータベースサービス１８１４、構成検出サービス１８０４、移行マーケットプレイスサービス１８０６、ならびに移行計画及び実施サービス１８０８を含む。各サービスは、描写される実施形態では、サービスとそのクライアントとの間の相互作用に使用し得る、プログラムインターフェースのセットを実施し得て、場合によっては、サービス間の相互作用にも使用され得る。仮想化コンピューティングサービス１８１０に関連付けられたＶＣＳプログラムインターフェース１８４４は、仮想マシンを取得、使用、及び解放するために使用され得る。パッケージ化プログラム実行サービス１８１２のＰＥＳインターフェース１８４５は、リクエスタに明示的にサーバを割り当てずに、プログラム実行の要求を送信し、プログラム実行の結果を受信するために使用され得る。ＳＤＳプログラムインターフェース１８４６は、様々なアプリケーションに関連付けられたデータセットを格納しアクセスするために使用され得る。検出サービス１８０４のＣＤＳプログラムインターフェース１８４１は、前述したように、構成情報の自動検出を開始し、自動検出の結果を見るために使用され得る。移行計画及び実施サービス１８０８のＭＰＩＳインターフェース１８４３は、詳細な移行計画を生成し、計画を実行するために使用し得る。
【００８９】
移行マーケットプレイスサービス１８０６は、描写される実施形態では、図１８に示す他のサービスの一部または全部を利用し得る。移行マーケットプレイスサービスのＭＭＳプログラムインターフェース１８４２は、潜在的な移行クライアント１８３４（例えば、移行され得るアプリケーションの所有者）及び移行ファシリテーター１８３６の少なくとも２つのタイプのエンティティによって利用され得る。一実施形態によれば、クライアント１８３４は、１人または複数の移行ファシリテーターがクライアントのアプリケーションに関連付けられた構成情報の少なくとも一部のサブセットにアクセスすることを可能にするために、移行マーケットプレイスサービスに要求を送信し得る。アクセス許可が付与される構成情報は、例えば、検出サービス１８０４で維持されるリポジトリの結合構成レコードに格納され得る。前述したように、クライアント１８３４の所与のアプリケーショ
ン実行環境は、例えば、プロバイダネットワーク１８０２外のいくつかのリソース及び／またはプロバイダネットワーク１８０２内にあるいくつかのリソースを含む、複数のプラットフォームに分散された構成アイテムまたはリソースを含み得る。いくつかの実施形態では、クライアント１８３４は、構成の詳細の少なくとも一部を難読化または匿名化してから、移行ファシリテーターに提供するように要求し得る。すなわち、ファシリテーターには、完全な詳細を提供することなく、構成情報のいくつかの態様にアクセスすることを許可し得る。場合によっては、クライアントは、構成情報を調べるために指定された一組の移行ファシリテーターのみを許可し得て、他の実施形態では、移行マーケットプレイスサービスによって登録または承認された任意の移行ファシリテーターにアクセス許可を与え得る。クライアントの構成レコード収集へのアクセスを共有するクライアント要求に応じて、移行マーケットプレイスサービス１８０６は、（例えば、移行マーケットプレイスサービス自体によって維持されるメタデータ内、または検出サービス１８０４のメタデータ内のいずれかの）構成レコードの１つまたは複数のセキュリティ設定の変更を開始し得る。
【００９０】
移行マーケットプレイスサービス１８０６は、描写される実施形態では、ＭＭＳプログラムインターフェース１８４２を介して、移行ファシリテーターから、それぞれのメンバーシップ要求を受信し得る。少なくともいくつかの実施形態では、移行マーケットプレイスサービスは、マーケットプレイスの承認されたメンバーとして移行ファシリテーターを登録する前に（例えば、ファシリテーターのアイデンティティ及び事業背景を確認するための）一連の検証手順を開始し得る。
【００９１】
登録された移行ファシリテーターは、描写される実施形態では、インターフェース１８４２を介して移行候補照合要求１８３７を送信し得る。そのような要求は、例えば、ファシリテーターの専門知識または能力（例えば、ファシリテーターが過去に支援してきた移行のアプリケーションスタックの種類）及び／またはファシリテーターが望む移行クライアントの種類の特徴（例えば、移行対象アプリケーション実行環境の最小サイズまたは最大サイズ、移行対象アプリケーション実行環境または移行先環境の地理的位置など）を含み得る。検出サービス１８０４のクライアントの中からファシリテーターの１人または複数の潜在的顧客を識別する、移行候補照合要求１８３７に対する応答は、移行ファシリテーターがアクセスを許可された構成情報を使用してサービス１８０６で生成し得る。以下にさらに詳細に説明するいくつかの実施形態では、移行マーケットプレイスサービス１８０６は、一致する顧客を見つけるために、サービス生成アルゴリズムを実行し得て、他の実施形態では、ファシリテーターは、潜在的顧客を見つけるために、独自の実行可能コードモジュールを提供し得て、ファシリテーター提供コードは、事前パッケージ化プログラム実行サービス１８１２または他のいくつかのプラットフォームで実行し得る。
【００９２】
移行ファシリテーター１８３６は、サービス１８０６によって提供される潜在的な移行候補に関する提供された情報を調べ、移行提案をインターフェース１８４２を介してサービス１８０６に送信し得る。提案は、例えば、指定されたサブセットまたはアプリケーション実行環境のすべての移行のための予備コスト見積、予備スケジュールまたは実施計画などを含む、ファシリテーターが提供しようとする支援の様々な態様を記述し得る。移行ファシリテーターが、実際に移行を実施することに関心のある技術専門家ではなく、移行ツールを提供する独立系ソフトウェアベンダである場合、いくつかの実施形態では、（クライアントがアプリケーションを移行するために使用することができる）ツールの名前を提案に含め得る。次に、サービス１８０６は、提案１８３７の表現を、プログラムインターフェース１８４２を介して潜在的な移行クライアント１８３４に送信し得る。サービス１８０６は、いくつかの実施形態では、同一の潜在的な移行クライアント１８３４の所与のアプリケーション環境について多数の提案を受信し得て、それぞれがプログラムによってクライアントに提供され得る。
【００９３】
クライアント１８３４が、許容できる提案の１つを見つけ、詳細な移行計画及び／または実施を進めることを望む場合、いくつかの実施形態では、承認メッセージは、インターフェース１８４２を介して移行マーケットプレイスサービスに送信し得る。そのような承認メッセージに応答して、一実施形態では、移行マーケットプレイスサービスは、例えば、別の移行相互作用をＭＰＩＳインターフェース１８４２にシームレス及びプログラムによって転送することによって、クライアント１８３４が移行計画／実施サービス１８０８のワークフローを実行できるようにする動作を開始し得る。したがって、少なくともいくつかの実施形態では、移行マーケットプレイスサービス１８０６は、移行の詳細な計画及び実際の実施に必ずしも役割を果たし得ない。代わりに、移行マーケットプレイスサービス１８０６の主要な役割は、移行の計画及び実行の詳細な作業が開始される前に、潜在的な移行クライアントと移行ファシリテーターとの間の情報の信頼できるパイプ役として機能することを含み得る。他の実施形態では、移行マーケットプレイスサービスは、移行の少なくともいくつかの態様の実施を計画及び／または調整する役割を果たし得る。図１０〜図１７の文脈において本明細書で論じられた視覚化サービスは、いくつかの実施形態では、移行マーケットプレイスサービス１８０６及び／または移行計画／実施サービス１８０８と共に使用し得ることに留意されたい。視覚化サービスは、アプリケーション実行環境構成データを表示し、アプリケーション移行のための潜在的なファシリテーターを識別し、そのような実施形態では、必要に応じて、そのような移行を計画及び実施するために使用できる統一されたシームレスなグラフィカルインターフェースのセットを提供し得る。
【００９４】
移行マーケットプレイスサービスとのプログラムによる相互作用
図１９は、少なくともいくつかの実施形態による、クライアントと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用を示す。図示されるように、クライアント１９２０は、プログラム可能なインターフェースを介して、移行マーケットプレイスサービス１９２２の１つまたは複数のコンピューティングデバイスに検出データアクセス許可要求１９２５を送信し得る。検出データアクセス許可要求１９２５は、例えば、クライアントの構成レコード集合に対応する１組のアプリケーション環境識別子１９２８、１つまたは複数のセキュリティ制約１９３１及び／またはファシリテーターリスト１９３４を含み得る。ファシリテーターリスト１９３４は、必要に応じてクライアント１９２０の構成情報が開示される１人または複数の特定のファシリテーターを示し得るか、または任意の登録／承認されたファシリテーターが構成情報を提供され得ることを示し得る。セキュリティ制約１９３１は、明らかにされた構成データに制限を設けるべきかどうか（例えば、クライアントは、集約された情報は明らかにされ得るが、いくつかのタイプの構成アイテムの詳細は、個々の構成アイテムレベルで明らかにされないことを好み得る）、また、匿名化または難読化する必要がある場合に、構成情報のどの態様なのか、などを示し得る。
【００９５】
移行マーケットプレイスサービス１９２２は、要求１９２５の内容に少なくとも部分的に基づいて、例えば、マーケットプレイスメタデータリポジトリ１９５５及び／または構成検出サービス１９５７で、クライアントの構成レコードに関連付けられたセキュリティ設定を変更し得る。要求されたアクセス許可変更が適用されたことを示す確認メッセージ１９７５は、プログラムインターフェースを介してクライアント１９２０に送信され得る。
【００９６】
図２０は、少なくともいくつかの実施形態による、移行ファシリテーターと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用の第１のセットを示す。描写される実施形態では、移行ファシリテーター２０２０は、プログラムインターフェースを介して移行候補識別クエリ２０２５を、移行マーケットプレイスサービス２０２２
に送信し得る。クエリ２０２５は、ファシリテーター能力２０２８のそれぞれの記述子（例えば、移行のためのファシリテーターが支援を提供することに関心のあるアプリケーションのタイプ）及び候補プリファレンス２０３１（例えば、ファシリテーターが支援しようとする移行の最小及び／または最大のアプリケーション構成サイズ、ファシリテーターの観点からの好ましい地理的地域または場所、など）を含み得る。
【００９７】
候補識別クエリ２０２５に応答して、構成検出サービスデータベース２０４０から一致する構成データを取得するためのフィルタ仕様２０３７を、移行マーケットプレイスサービス２０２２で準備し得る。いくつかの実施形態では、構成データアノニマイザー２０３４は、フィルタ仕様２０３７の準備に参加し得て、その結果、図１９の文脈において論じられた種類のアクセス許可要求を介して潜在的な移行クライアントによってアクセスが許可された構成データのサブセットのみが取得される。様々な実施形態では、（例えば、潜在的な移行クライアントによって提供されるか、ヒューリスティックに基づいて移行マーケットプレイスサービスによって生成される）難読化基準は、クライアント構成セキュリティまたは機密性の侵害を回避するために、フィルタを準備するために使用され得る。一実施形態では、フィルタ仕様を生成する代わりに、またはそれに加えて、構成データアノニマイザー２０３４は、検出サービスデータベースから取得された構成要素データを処理し、潜在的な移行クライアントによって示されたセキュリティ制約が破られていないことを確認し得る。
【００９８】
移行ファシリテーター２０２０の能力及び好みに一致するアプリケーション実行環境及び／またはクライアントを示す、選別候補環境リスト２０４６は、サービスのプログラムインターフェースを介してファシリテーターに送信され得る。ファシリテーターは、次に、リスト２０４６に示された候補環境及びクライアントの一部または全部に対応する、移行提案のリスト２０４９をサービス２０２２に送信し得る。次いで、移行マーケットプレイスサービスは、描写される実施形態では、サービスのプログラムインターフェースを介して、適切なクライアント２０８０（例えば、２０８０Ａまたは２０８０Ｂ）に移行提案２０５１（例えば２０５１Ａ及び２０５１Ｂ）の表現を送信し得る。提案２０５１の少なくともいくつかは、描写される実施形態では、提案された移行作業のための予備コスト見積２０５４（例えば、２０５４Ａまたは２０５４Ｂ）のそれぞれの指示を含み得る。一実施形態では、提案２０５１はまた、または代わりに、移行スケジュールの見積、または提案に関連付けられたファシリテーターによって実施される、より早い移行を示すフィードバックレコード（例えば、レビューまたは評価／ランキングスコア）を含み得る。
【００９９】
図２１は、少なくともいくつかの実施形態による、移行ファシリテーターと移行マーケットプレイスサービスとの間の例示的なプログラムによる相互作用の第２のセットを示す。図２１と図２０の主な違いは、図２１に示すシナリオでは、移行ファシリテーターは、移行マーケットプレイスサービスに依存して、サービス生成マッチングアルゴリズムを使用する代わりに、ファシリテーターの要件に一致する移行候補を識別するために実行できる実行可能プログラムコードモジュールを送信し得る。そのような手法により、例えば、移行ファシリテーターは、マーケットプレイスサービスに提供する必要があるファシリテーターの能力または制約に関する詳細情報の量を削減することができ、マーケットプレイスサービにかかる負担を軽減し、正確で効率的なマッチングアルゴリズムを開発し得る。
【０１００】
図２１に示す実施形態では、移行ファシリテーター２１２０は、実行可能な候補照合アルゴリズムコードモジュール２１２８の指示を含む移行候補識別クエリ２１２５を、移行マーケットプレイスサービス２１２２に送信する。いくつかの実施態様では、クエリ２１２５は、候補照合コードモジュール２１２８が実行される実行プラットフォームまたはサービスのいくつかの指示を含み得る。サービス２１２２は、コード２１２８を選択された実行サービス２１７５（例えば、図１８のパッケージ化プログラム実行サービス１８１２
）に送信する。パッケージ化プログラム実行サービスを使用すると、移行ファシリテーターに対するリソースの事前割り当てが不要になり得るという利点があり得て、その代わりに、パッケージ化プログラム実行サービスは、プラットフォームのプールの中から利用可能な実行プラットフォームを簡単に見つけ出し、そのプラットフォーム上でモジュールを実行し、実行結果を提供し得る。移行ファシリテーターは、モジュールの実行に実際に使用された計算リソースに対してのみ役割を果たし得る。場合によっては、プロバイダネットワークの仮想化コンピューティングサービスの仮想マシンなどの他の実行プラットフォームを使用し得る。
【０１０１】
照合アルゴリズムコードの実行の結果として、フィルタ仕様２１７８を構成検出サービスに送信し得て、それに応じて、照合候補構成環境２１８１のセットが生成され得る。照合アルゴリズムコードは、候補構成環境を使用して、移行マーケットプレイスサービスに送信される移行提案リスト２１８３を生成し得る。次いで、リストの個々の提案２１８４（例えば、２１８４Ａまたは２１８４Ｂ）は、描写される実施形態では、適切なクライアント２１８０（例えば、２１８０または２１８０Ｂ）に送信され得る。
【０１０２】
マーケットプレイスメタデータ
図２２は、少なくともいくつかの実施形態による、移行マーケットプレイスサービスのメタデータリポジトリに格納され得るエントリの例を示す。図示されるように、メタデータリポジトリ２２０５は、情報の少なくとも２つのカテゴリ、移行ファシリテーターレコード２２３１及び検出サービスクライアントレコード２２５１を含み得る。
【０１０３】
移行ファシリテーターレコード２２３１は、例えば、ファシリテーターの能力２２３３または専門知識（例えば、ファシリテーターが経験してきたファシリテーターの移行のアプリケーションスタックの種類）の記述子を含み得る。レコード２２３１はまた、様々な実施形態では、ファシリテーターに適した移行候補（例えば、移行前または移行後の構成アイテムの地理的分布、移行対象のアプリケーション環境の許容可能なサイズまたは好ましいサイズの範囲、またはファシリテーターの操作の好ましい地理的地域または場所）を作成する特徴に関するファシリテーターのプリファレンスまたは要件２２３５を含み得る。少なくとも１つの実施形態では、レコード２２３１はまた、ファシリテーターの以前の支援の評価を示すフィードバック２２３７または証拠を含み得る。フィードバックは、いくつかの実施形態では、評価またはランキング（例えば、１〜５の間の星の数で、１つは悪い評価を示し、５つは優秀な評価を示す）及びテキストレビューを含み得る。描写される実施形態では、レコード２２３１はまた、（過去にファシリテーターによって生成された１つまたは複数の提案を示す）移行提案履歴２２３９及びクライアントによって受け入れられた提案のサブセットを示す提案変換履歴２２４１を含み得る。
【０１０４】
検出サービスクライアントレコード２２５１は、様々なクライアントに対応する構成データアクセス許可２２５３を含み得る。さらに、少なくとも１つの実施形態では、クライアントの移行履歴を示すエントリ２２５５も維持し得る。いくつかの実施形態では、図２２に示される種類の要素のうちの少なくともいくつかは、必ずしも移行マーケットプレイスサービスに格納され得ないことに留意されたい。
【０１０５】
ウェブベースのマーケットプレイスサービスインターフェース
図２３は、少なくともいくつかの実施形態による、移行マーケットプレイスサービスによって実施され得る例示的なウェブベースのインターフェースを示す。図示されるように、インターフェースは、メッセージ領域２３１０、それぞれの登録された移行ファシリテーターに対応するいくつかの広告領域２３１５（例えば、２３１５Ａ〜２３１５Ｄ）、及び相互作用制御（例えば、ボタンまたはウェブリンク）２３２５、２３２７、及び２３２９を含むウェブページ２３０２を含む。
【０１０６】
メッセージ領域２３０２は、広告に示されたリンクによって、様々な移行ファシリテーターに関する追加情報を取得できることを、移行マーケットプレイスサービスのクライアントに通知し得る。それぞれの広告は、特定のファシリテーターが支援しようとするアプリケーションスタック、例えば、広告領域２３１５Ａ内のファシリテーターＦ１がサポートするアプリケーションスタック２３２２Ａ、広告領域２３１５Ｂ内のファシリテーターＦ２がサポートするアプリケーションスタック２３２２Ｂなどを示し得る。ファシリテーターのためのランキング／評価フィードバック２３２４ならびに例示的な価格情報２３２５も、いくつかの実施形態では広告に含まれ得る。
【０１０７】
（例えば、顧客が所有するデータセンターからプロバイダネットワークへの）アプリケーションの移行の利点を示すケーススタディは、ウェブページ２３０２のボタン制御２３２５を介してクライアントに利用可能にされ得る。構成アイテムの自動検出及び／または移行計画に関する追加情報（例えば、ホワイトペーパーまたはオンラインチュートリアル）は、ボタン制御２３２７を介してアクセスし得る。描写される実施形態では、クライアントは、制御２３２９を使用する移行ファシリテーターに関する推奨事項にサインアップし得る。様々な実施形態では、クライアントは、移行マーケットプレイスサービスのインターフェースを使用して、移行の支援のための要求を送信し得る。例えば、いくつかの実施形態では、検出サービスの使用をまた開始していないが、将来、アプリケーションの移行に関心を持つ可能性があり得るプロバイダネットワークのクライアントは、マーケットプレイスサービスのプログラムインターフェースを介して要求を送信して、構成アイテムの自動検出を開始し得る。そのような要求に応答して、移行マーケットプレイスサービスは、クライアントのアプリケーションに関連付けられたデータソースから構成情報の取得を開始できるように、クライアントのために構成検出サービスのプログラムインターフェースを呼び出し得る。収集された情報は、クライアントを適切な移行ファシリテーターと照合するために後で使用し得る。少なくとも１つの実施形態では、クライアントのために構成データが検出サービスで既に収集されている場合、移行支援サービス要求を移行マーケットプレイスサービスに送信し得る。移行マーケットプレイスサービスは、クライアントの構成データ及び（例えば、図２２のリポジトリ２２０５内の）ファシリテーターに関して格納されたメタデータに基づいて、自身の照合アルゴリズムを実行し、ファシリテーターの推奨事項をクライアントに提供し得る。
【０１０８】
移行マーケットプレイスをサポートするための方法
図２４は、少なくともいくつかの実施形態による、移行マーケットプレイスサービスで実行され得る動作の態様を示すフロー図である。要素２４０１に示すように、移行ファシリテーターがクライアントのアプリケーション環境の構成レコードにアクセスすることを可能にする要求は、プロバイダネットワークの移行マーケットプレイスサービスで受信し得る。構成レコードは、前述したように、構成検出サービスに関連付けられた様々なデータソースから収集され得る。それに応じて、クライアントの構成レコード収集のためのセキュリティメタデータは、変更され得る（要素２４０４）。前述のように、場合によっては、セキュリティ設定は、検出サービスで変更し得て、他の実施形態では、セキュリティメタデータは、移行マーケットプレイスサービス自体によって維持され得る。
【０１０９】
移行候補識別要求またはクエリは、移行ファシリテーターからマーケットプレイスサービスで受信され得る（要素２４０７）。クライアントのアクセス許可及び／またはデータ難読化要件に基づいて検出サービスデータベースから取得された構成データを制限するフィルタ仕様またはクエリは、検出サービスに送信され得る（要素２４１０）。いくつかの実施形態では、移行マーケットプレイスサービスは、フィルタ仕様またはクエリを送信し得る。他の実施形態では、移行候補照合アルゴリズムのための実行可能コードは、移行ファシリテーターによって供給され得て、プロバイダネットワークの異なるサービス（コー
ド用のサーバの事前割り当てを必要としないパッケージ化プログラム実行サービスなど）で実行され得て、その結果、フィルタ仕様またはクエリが送信される。
【０１１０】
フィルタリングを受けて取得された構成情報は、例えば、移行ファシリテーターがクライアントの実行環境の移行を支援することに関心があることを示す、１つまたは複数の移行提案を生成するために使用し得る（要素２４１３）。少なくともいくつかの実施形態では、提案は予備コスト見積を含み得る。マーケットプレイスサービスは、提案が適用されるクライアントに、プログラムインターフェースを介して提案の表現を送信し得る（要素２４１６）。任意選択で、プログラムインターフェースを介した提案のクライアントの受け入れに応答して、移行マーケットプレイスサービスは、個別の移行計画または実施サービスのワークフローを開始し得る（要素２４１９）。
【０１１１】
様々な実施形態では、図９、図１７、及び図２４のフロー図に示されたもの以外の少なくともいくつかの動作は、上述の構成検出関連及び移行マーケットプレイス関連技術を実施するために使用され得ることに留意されたい。示される動作のうちのいくつかは、いくつかの実施形態では、実施され得ないか、または逐次ではなく異なる順序で、または並列で実施され得る。
【０１１２】
ユースケース
上述の、複数のネットワークでの様々なソースからの構成データの自動収集、結合及び視覚化、ならびに移行関連のオンラインマーケットプレイスを実施する技術は、様々な実施形態で有用であり得る。顧客所有及びプロバイダ所有のリソースに分散された複雑なアプリケーションスタックの場合、説明された構成検出サービスは、様々なレベルの粒度、信頼性及び精度を有する多様なソースからのアプリケーション構成データを結合及び選別することができ得る。サービスは、標準化されたオントロジーベースの命名規則に従って編成された収集されたデータを、顧客がアプリケーションのプロバイダネットワーク環境への移行を計画し実施するのに役立つサービスなど、より高度なサービスを構築するために使用できるＡＰＩを含む、使い易いプログラミングインターフェースを介して公開し得る。構成検出サービス情報の視覚化構成要素により、顧客はアプリケーションスタック全体の概要を把握し易くなると共に、リソース容量計画、パフォーマンスのデバッグ、及びトラブルシューティングに役立つ、所望の詳細レベルにドリルダウンし易くなり得る。移行マーケットプレイスサービスは、アプリケーションをプロバイダネットワークに移行することに潜在的に関心があり得るが、移行を計画し実施する方法については、確かな技術的専門知識を有し得ない、アプリケーション所有者を、移行のニーズを有するアプリケーション所有者を支援することができ得る移行ファシリテーターまたは専門家に紹介することができる仲介として機能し得る。移行サービスは、所与のアプリケーション環境に関して提供された情報が、アプリケーション所有者のセキュリティ基準を満たしていることを保証し得て、移行ファシリテーターを選択した顧客の移行計画及び実施サービスへのスムーズな移行をサポートし得る。
【０１１３】
本開示の実施形態は、以下の条項を鑑みて説明できる。
１．ネットワークアクセス可能な構成検出サービスの１つまたは複数のコンピューティングデバイスを備え、
前記１つまたは複数のコンピューティングデバイスは、
第１のデータソースから、特定のクライアントに関連付けられた構成アイテムに関する第１のデータセットを受信し、
前記第１のデータセットの分析に少なくとも部分的に基づいて、前記特定のクライアントに関連付けられた特定の構成アイテムのサービス側識別子を生成し、前記第１のデータセットが、前記第１の構成アイテムの第１のデータソース側識別子を含み、前記第１のデータセットが、前記特定の構成アイテムの１つまたは複数の属性の第１の集合を含み、
第２のデータソースから、前記特定のクライアントに関連付けられた構成アイテムに関する第２のデータセットを受信し、
前記第２のデータセットが前記特定の構成アイテムの１つまたは複数の属性の第２の集合を含むと決定し、前記第２のデータセットが前記第１のデータソース側識別子を含まず、
前記第１のデータソースに関連付けられた第１の信頼スコアに少なくとも部分的に基づいて、また、前記第２のデータソースに関連付けられた第２の信頼スコアに少なくとも部分的に基づいて、前記特定の構成アイテムに対応する結合構成レコードを更新し、前記結合構成レコードは、前記特定の構成アイテムの複数の属性を含み、
プログラムインターフェースを介して受信されたクエリに応答して、前記結合構成レコードの少なくとも一部の表現を送信するように構成された、
システム。
【０１１４】
２．前記１つまたは複数のコンピューティングデバイスが、
一括インポートプログラムインターフェースを介して、前記第１のデータセットを受信し、
イベントレベルのプログラムインターフェースを介して、前記第２のデータセットを受信するように構成された、条項１に記載のシステム。
【０１１５】
３．前記１つまたは複数のコンピューティングデバイスが、
プログラムインターフェースを介して、第１のアイテムグループ記述子の指示を受信し、前記第１のアイテムグループ記述子が、（ａ）アプリケーションに関連付けられた複数の構成アイテムの予想される相互接続トポロジ、（ｂ）前記アプリケーションに関連付けられた予想されるアイテム名リスト、または（ｃ）前記アプリケーションに関連付けられた一対の構成アイテム間の通信の予想されるパターンのうちの１つまたは複数を示し、
前記特定の構成アイテムの１つまたは複数の属性に少なくとも部分的に基づき、また、前記第１のアイテムグループ記述子に少なくとも部分的に基づいて、特定のアイテムグループタグを有する特定のアイテムグループのメンバーとして前記特定の構成アイテムを指定し、
前記特定のアイテムグループタグが、前記第１の結合構成レコードに割り当てられているという指示を格納するように構成された、条項１に記載のシステム。
【０１１６】
４．前記１つまたは複数のコンピューティングデバイスが、
第３のデータセットの分析に少なくとも部分的に基づいて、１つまたは複数のネットワークパケットが、難読化仲介を介して送信エンドポイントから受信エンドポイントで受信されたことを決定し、前記受信エンドポイントが、前記構成検出サービスでの第２の構成アイテムによって表され、前記送信エンドポイントのための代表的な構成アイテムのアイデンティティが前記構成検出サービスで決定されておらず、
前記送信エンドポイントに関してエンドポイント検出アルゴリズムの実行を開始し、
前記エンドポイント検出アルゴリズムの結果に少なくとも部分的に基づいて、第２の結合構成レコードを更新するように構成される、条項１に記載のシステム。
【０１１７】
５．前記１つまたは複数のコンピューティングデバイスが、
前記特定の構成アイテムを含む、複数の構成アイテムの個々の関連性スコアにそれぞれの関連性スコアを割り当て、
前記特定の構成アイテムに割り当てられた関連性スコアに少なくとも部分的に基づいて、第２のクエリに対する応答を生成するように構成される、条項１に記載のシステム。
【０１１８】
６．ネットワークアクセス可能な構成検出サービスの１つまたは複数のコンピューティングデバイスによって、
第１の構成データソースによって生成された第１のデータセットの分析に少なくとも部分的に基づいて、特定のクライアントに関連付けられた特定の構成アイテムのサービス側識別子を生成することであって、前記第１のデータセットが、前記特定の構成アイテムの１つまたは複数の属性の第１の集合を含む、前記生成することと、
第２のデータセットが、前記特定の構成アイテムの１つまたは複数の属性の第２の集合を含むことを決定することであって、前記第２のデータセットが前記サービス側識別子を含まない、前記決定することと、
前記第１の構成データソースに関連付けられた第１の信頼スコアに少なくとも部分的に基づいて、前記特定の構成アイテムに対応する第１の結合構成レコードを更新することと、
プログラムインターフェースを介して受信されたクエリに応答して、前記第１の結合構成レコードの少なくとも一部の表現を送信することとを実行する、方法。
【０１１９】
７．前記１つまたは複数のコンピューティングデバイスによって、
前記ネットワークアクセス可能な構成検出サービスの一括インポートプログラムインターフェースを介して、前記クライアントの構成管理データベースからエクスポートされた前記第１のデータセットを受信することと、
前記ネットワークアクセス可能な構成検出サービスのイベントレベルのプログラムインターフェースを介して、前記第２のデータセットを受信することとを実行することをさらに含む、条項６に記載の方法。
【０１２０】
８．前記１つまたは複数のコンピューティングデバイスによって、
第３のデータセットに含まれる１つまたは複数の属性の第３の集合の検査に少なくとも部分的に基づいて、第２の構成アイテムに対して指定された第２のサービス側識別子を生成することと、
前記第２の構成アイテムに関連付けられた第２の結合構成レコードを格納することと、
前記第２の結合構成レコードを格納した後、１つまたは複数の属性の前記第３の集合が、前記第１の結合構成レコードが更新された前記特定の構成アイテムに関連付けられていることを決定することと、
前記第２の結合構成レコードの内容に少なくとも部分的に基づいて前記第１の結合構成レコードを変更することと、
前記第２の結合構成レコードを削除することとを実行することをさらに含む、条項６に記載の方法。
【０１２１】
９．１つまたは複数の属性の前記第３の集合が、前記特定の構成アイテムに関連付けられていると前記決定することが、（ａ）プログラムインターフェースを介して修正要求を受信すること、または（ｂ）リソース使用状況相関分析を実行することのうちの１つまたは複数を含む、条項８に記載の方法。
【０１２２】
１０．前記１つまたは複数のコンピューティングデバイスによって、
プログラムインターフェースを介して、第１のアイテムグループ記述子の指示を受信することであって、前記第１のアイテムグループ記述子が、（ａ）アプリケーションに関連付けられた複数の構成アイテムの予想される相互接続トポロジ、（ｂ）前記アプリケーションに関連付けられた予想されるアイテム名リスト、（ｃ）前記アプリケーションに関連付けられた一対の構成アイテム間の通信の予想されるパターンのうちの１つまたは複数を示す、前記受信することと、
前記特定の構成アイテムの１つまたは複数の属性に少なくとも部分的に基づき、また、前記第１のアイテムグループ記述子に少なくとも部分的に基づいて、特定のアイテムグループタグを有する特定のアイテムグループのメンバーとして前記特定の構成アイテムを指定することと、
前記特定のアイテムグループタグが前記第１の結合構成レコードに割り当てられているという指示を格納することとを実行することをさらに含む、条項６に記載の方法。
【０１２３】
１１．前記１つまたは複数のコンピューティングデバイスによって、
第３のデータセットの分析に少なくとも部分的に基づいて、１つまたは複数のネットワークパケットが、難読化仲介を介して送信エンドポイントから受信エンドポイントで受信されたことを決定することであって、前記受信エンドポイントが、前記構成検出サービスでの第２の構成アイテムによって表され、前記送信エンドポイントのための代表的な構成アイテムのアイデンティティが前記構成検出サービスで決定されていない、前記決定することと、
前記送信エンドポイントに関してエンドポイント検出アルゴリズムの実行を開始することと、
前記エンドポイント検出アルゴリズムの結果に少なくとも部分的に基づいて、第２の結合構成レコードを更新することとを実行することをさらに含む、条項６に記載の方法。
【０１２４】
１２．前記エンドポイント検出アルゴリズムが、（ａ）接続確立要求のシーケンス及び接続終了要求を発行することと、（ｂ）連続するネットワークパケットの受信間の遅延と、連続するネットワークパケットの送信間の遅延を照合することと、（ｃ）パケットシーケンス番号を分析することのうちの１つまたは複数を含む、条項１１に記載の方法。
【０１２５】
１３．前記１つまたは複数のコンピューティングデバイスによって、
前記特定の構成アイテムを含む、複数の構成アイテムの個々の関連性スコアにそれぞれの関連性スコアを割り当てることと、
第２の構成アイテムに割り当てられた関連性スコアに少なくとも部分的に基づいて、第２のクエリに対する応答を生成することとを実行することをさらに含む、条項６に記載の方法。
【０１２６】
１４．前記１つまたは複数のコンピューティングデバイスによって、
前記第２の構成アイテムの関連性スコアを、（ａ）前記第２の構成アイテムに関連付けられた繰り返し頻度、（ｂ）前記第２の構成アイテムに関連付けられたリソース使用状況、または（ｃ）前記第２の構成アイテムに関連付けられたクエリ履歴のうちの１つまたは複数に少なくとも部分的に基づいて決定することを実行することをさらに含む、条項１３に記載の方法。
【０１２７】
１５．前記１つまたは複数のコンピューティングデバイスによって、
特定のアプリケーションに関連付けられた複数の結合構成レコードを第１のデータストアに格納することであって、前記第１のデータストアが、第１の平均レコード取得待ち時間を有し、前記複数の結合構成レコードの個々のレコードが関連するタイムスタンプを有する、前記格納することと、
前記第１のデータストアから第２のデータストアへの複数の結合構成レコードの少なくとも１つのサブセットを、関連するタイムスタンプに関して逆時間順にロードすることであって、前記第２のデータストアが、前記第１の平均レコード取得待ち時間より短い第２の平均レコード取得待ち時間を有する、前記ロードすることと、
前記第２のデータストアを使用して、特定のアプリケーションに対して行われたテンポラルクエリへの応答を提供することとを実行することをさらに含む、条項６に記載の方法。
【０１２８】
１６．プログラム命令を格納する非一時的なコンピュータアクセス可能な記憶媒体であって、
１つまたは複数のプロセッサ上で実行されるときに、
第１の構成データソースによって提供された第１のデータセットの分析に少なくとも部分的に基づいて、特定のクライアントに関連付けられた特定の構成アイテムのサービス側識別子を生成し、前記第１のデータセットが、前記特定の構成アイテムの１つまたは複数の属性の第１の集合を含み、前記第１のデータセットが前記サービス側識別子を含まず、
第２のデータセットが、前記特定の構成アイテムの１つまたは複数の属性の第２の集合を含むことを決定し、前記第２のデータセットが前記サービス側識別子を含まず、
前記第１の構成データソースに関連付けられた第１の信頼スコアに少なくとも部分的に基づいて、前記特定の構成アイテムに対応する第１の結合構成レコードを更新し、
プログラムインターフェースを介して受信されたクエリに応答して、前記第１の結合構成レコードの少なくとも一部の表現を送信する、前記非一時的なコンピュータアクセス可能な記憶媒体。
【０１２９】
１７．前記１つまたは複数のプロセッサで実行されたとき、前記命令が、
第１のアイテムグループ記述子の内容を決定し、前記第１のアイテムグループ記述子が、（ａ）アプリケーションに関連付けられた複数の構成アイテムの予想される相互接続トポロジ、（ｂ）前記アプリケーションに関連付けられた予想されるアイテム名リスト、（ｃ）前記アプリケーションに関連付けられた一対の構成アイテム間の通信の予想されるパターンのうちの１つまたは複数を示し、
前記特定の構成アイテムの１つまたは複数の属性に少なくとも部分的に基づき、前記第１のアイテムグループ記述子に少なくとも部分的に基づいて、特定のアイテムグループタグを有する特定のアイテムグループのメンバーとして前記特定の構成アイテムを指定し、
前記特定のアイテムグループタグが、前記第１の結合構成レコードに割り当てられているという指示を格納する、条項１６に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【０１３０】
１８．前記１つまたは複数のプロセッサで実行されたとき、前記命令が、
第３のデータセットの分析に少なくとも部分的に基づいて、１つまたは複数のネットワークパケットが、難読化仲介を介して送信エンドポイントから受信エンドポイントで受信されたことを決定し、前記受信エンドポイントが、検出サービスでの第２の構成アイテムによって表され、前記送信エンドポイントのための代表的な構成アイテムのアイデンティティが前記検出サービスで決定されておらず、
前記送信エンドポイントに関してエンドポイント検出アルゴリズムの実行を開始し、
前記エンドポイント検出アルゴリズムの結果に少なくとも部分的に基づいて、第２の結合構成レコードを更新する、条項１６に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【０１３１】
１９．前記１つまたは複数のプロセッサで実行されたとき、前記命令が、
前記特定の構成アイテムを含む、複数の構成アイテムの個々の関連性スコアにそれぞれの関連性スコアを割り当て、
前記特定の構成アイテムに割り当てられた関連性スコアに少なくとも部分的に基づいて、第２のクエリに対する応答を生成する、条項１６に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【０１３２】
２０．前記第１の構成データソースが、第１のプロバイダネットワーク運用者のデータセンターでインスタンス化され、前記１つまたは複数のプロセッサ上で実行されたとき、前記命令が、
前記第１の構成データソース、第２の構成データソース及び第３の構成データソースを含む複数のデータソースへのネットワーク接続を確立して、前記特定のクライアントの１つまたは複数のアプリケーションに関する構成データを取得し、前記第２の構成データソースが、第２のプロバイダネットワーク運用者のデータセンターでインスタンス化され、
前記第３の構成データソースが、プロバイダネットワークの一部ではないデータセンターでインスタンス化される、条項１６に記載の非一時的なコンピュータアクセス可能な記憶媒体。
【０１３３】
例示のコンピュータシステム
少なくともいくつかの実施形態では、構成検出サービスの構成要素、関連付けられた視覚化サービス及び／または移行マーケットプレイスサービスを実施するための技術を含む、本明細書中に記載する技術の１つまたは複数の一部または全部を実施するサーバは、１つまたは複数のコンピュータアクセス可能な媒体を含む、または１つまたは複数のコンピュータアクセス可能な媒体にアクセスするように構成された汎用コンピュータシステムを含み得る。図２５は、そのような汎用コンピューティングデバイス９０００を例示する。例示される実施形態では、コンピューティングデバイス９０００は、入力／出力（Ｉ／Ｏ）インターフェース９０３０を介して、システムメモリ９０２０（非揮発性及び揮発性メモリモジュールの両方を含み得る）に連結される、１つまたは複数のプロセッサ９０１０を含む。コンピューティングデバイス９０００は、Ｉ／Ｏインターフェース９０３０に連結されるネットワークインターフェース９０４０をさらに含む。
【０１３４】
様々な実施形態では、コンピューティングデバイス９０００は、１つのプロセッサ９０１０を含むユニプロセッサシステム、またはいくつかのプロセッサ９０１０（例えば、２つ、４つ、８つ、または別の適切な数）を含むマルチプロセッサシステムであり得る。プロセッサ９０１０は、命令を実行することが可能な任意の適切なプロセッサであり得る。例えば、様々な実施形態ではプロセッサ９０１０は、ｘ８６、ＰｏｗｅｒＰＣ、ＳＰＡＲＣ、もしくはＭＩＰＳ  ＩＳＡ、または任意の他の適切なＩＳＡ等の様々な命令セットアーキテクチャ（ＩＳＡ）のうちのいずれかを実装する、汎用または埋め込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ９０１０の各々は、同じＩＳＡを一般的に実装し得るが、必ずしも必要とし得ない。いくつかの実施態様では、グラフィックス処理ユニット（ＧＰＵ）は、従来のプロセッサの代わりに、またはそれに加えて使用され得る。
【０１３５】
システムメモリ９０２０は、プロセッサ（複数可）９０１０によってアクセス可能な命令及びデータを格納するように構成され得る。少なくともいくつかの実施形態では、システムメモリ９０２０は、揮発性及び非揮発性部分の両方を含み得て、他の実施形態では、揮発性メモリのみが、使用され得る。様々な実施形態では、システムメモリ９０２０の揮発性部分は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、同期ダイナミックＲＡＭ、または任意の他のタイプのメモリなどの任意の適切なメモリ技術を使用して実施され得る。システムメモリの（例えば、１つまたは複数のＮＶＤＩＭＭを含み得る）非揮発性部分に関しては、いくつかの実施形態では、ＮＡＮＤフラッシュデバイスを含むフラッシュベースのメモリデバイスが使用され得る。少なくともいくつかの実施形態では、システムメモリの不揮発性部分は、スーパーキャパシタまたは他の蓄電デバイス（例えば、バッテリ）などの電源を含み得る。様々な実施形態では、メモリスタベースの抵抗ランダムアクセスメモリ（ＲｅＲＡＭ）、３次元ＮＡＮＤ技術、強誘電ＲＡＭ、磁気抵抗ＲＡＭ（ＭＲＡＭ）、または様々なタイプの相変化メモリ（ＰＣＭ）のうちのいずれかが、少なくともシステムメモリの非揮発性部分に対して使用され得る。例示される実施形態では、上述のそれらの方法、技術、及びデータなどの１つまたは複数の所望の機能を実施するプログラム命令及びデータは、コード９０２５及びデータ９０２６として、システムメモリ９０２０内に格納される。
【０１３６】
一実施形態では、Ｉ／Ｏインターフェース９０３０は、ネットワークインターフェース９０４０、または様々なタイプの永続及び／または揮発性記憶デバイスなどの他の周辺インターフェースを含む、プロセッサ９０１０、システムメモリ９０２０、及びデバイス内
の任意の周辺デバイス間のＩ／Ｏトラフィックを調整するように構成され得る。いくつかの実施形態では、Ｉ／Ｏインターフェース９０３０は、ある構成要素（例えば、システムメモリ９０２０）からのデータ信号を、別の構成要素（例えば、プロセッサ９０１０）による使用に適した形式に変換するために、任意の必要なプロトコル、タイミング、または他のデータ変換を実行し得る。いくつかの実施形態では、Ｉ／Ｏインターフェース９０３０は、例えば、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス規格、またはユニバーサルシリアルバス（ＵＳＢ）規格の変形など、様々なタイプの周辺バスを通じて取設されるデバイスに対するサポートを含み得る。いくつかの実施形態では、Ｉ／Ｏインターフェース９０３０の機能は、例えば、ノースブリッジ及びサウスブリッジなどの２つ以上の個別の構成要素に分割され得る。また、いくつかの実施形態では、システムメモリ９０２０へのインターフェースなどのＩ／Ｏインターフェース９０３０の機能性のうちのいくつかまたはすべては、プロセッサ９０１０に直接組み込まれ得る。
【０１３７】
ネットワークインターフェース９０４０は、データが、コンピューティングデバイス９０００と、例えば、図１〜図２４に例示されるような他のコンピュータシステムまたはデバイスなどの、ネットワーク（１つまたは複数）９０５０に接続される他のデバイス９０６０との間で交換されることを可能にするように構成され得る。様々な実施形態では、ネットワークインターフェース９０４０は、例えば、イーサネットネットワークのタイプなどの任意の適切な有線または無線の一般データネットワークを介した通信をサポートし得る。さらに、ネットワークインターフェース９０４０は、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの電気通信／テレフォニネットワークを介した、ファイバチャネルＳＡＮなどのストレージエリアネットワークを介した、または任意の他の適切なタイプのネットワーク及び／またはプロトコルを介した通信をサポートし得る。
【０１３８】
いくつかの実施形態では、システムメモリ９０２０は、対応する方法及び装置の実施形態を実施するための図１〜図２４に関して上述のようなプログラム命令及びデータを格納するように構成される、コンピュータアクセス可能な媒体の一実施形態であり得る。しかし、他の実施形態では、プログラム命令及び／またはデータは、異なるタイプのコンピュータアクセス可能な媒体上で、受信、送信、または格納され得る。一般的に言えば、コンピュータアクセス可能な媒体は、Ｉ／Ｏインターフェース９０３０を介してコンピューティングデバイス９０００に連結される、磁気媒体または光媒体、例えば、ディスクまたはＤＶＤ／ＣＤなどの非一時的記憶媒体またはメモリ媒体を含み得る。非一時的コンピュータアクセス可能記憶媒体はまた、システムメモリ９０２０または別のタイプのメモリとして、コンピューティングデバイス９０００のいくつかの実施形態に含まれ得る、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ  ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの任意の揮発性または非揮発性媒体も含み得る。さらに、コンピュータアクセス可能な媒体は、ネットワークインターフェース９０４０を介して実施され得るような、ネットワーク及び／または無線リンクなどの通信媒体を介して伝送される伝送媒体または電気信号、電磁信号、もしくはデジタル信号などの信号を含み得る。図２５に示されるような複数のコンピューティングデバイスのうちの一部または全部は、様々な実施形態では、記載される機能性を実施するために使用され得て、例えば、様々な異なるデバイス及びサーバ上で実行するソフトウェア構成要素が、機能性を提供するために協働し得る。いくつかの実施形態では、記載される機能性の一部は、汎用コンピュータシステムを使用して実施されることに加えて、またはその代わりに、記憶デバイス、ネットワークデバイス、または特殊目的コンピュータシステムを使用して実施され得る。「コンピューティングデバイス」という用語は、本明細書で使用される場合、少なくともすべてのこれらのタイプのデバイスを指し、これらのタイプのデバイスに限定されない。
【０１３９】
結論
様々な実施形態は、命令の受信、送信、または格納、及び／またはコンピュータアクセス可能媒体に関する前述の説明に従って実行されたデータをさらに含み得る。一般的に言えば、コンピュータアクセス可能媒体は、磁気または光学媒体、例えば、ディスクまたはＤＶＤ／ＣＤ−ＲＯＭ、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの揮発性または不揮発性媒体などの記憶媒体またはメモリ媒体、ならびにネットワーク及び／または無線リンクなどの通信媒体を介して伝送される伝送媒体または電子信号、電磁信号、もしくはデジタル信号などの信号を含み得る。
【０１４０】
本明細書で図に例示され、説明される様々な方法は、本方法の例となる実施形態を表す。本方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせで実行され得る。方法の順序は、変更され得て、様々な要素の、追加、再順位付け、組み合わせ、除外、変更などがされ得る。
【０１４１】
本開示の利点を有する当業者に明白であるように、種々の変形及び変更を行い得る。すべてのそのような変形及び変更を含むことを意図しており、したがって、上記説明が限定的な意味ではなく、例示的であると考えるべきである。
【図１】
2020150545.tif 000003
【図２】
2020150545.tif 000004
【図３】
2020150545.tif 000005
【図４】
2020150545.tif 000006
【図５】
2020150545.tif 000007
【図６】
2020150545.tif 000008
【図７】
2020150545.tif 000009
【図８】
2020150545.tif 000010
【図９】
2020150545.tif 000011
【図１０】
2020150545.tif 000012
【図１１】
2020150545.tif 000013
【図１２】
2020150545.tif 000014
【図１３】
2020150545.tif 000015
【図１４】
2020150545.tif 000016
【図１５】
2020150545.tif 000017
【図１６】
2020150545.tif 000018
【図１７】
2020150545.tif 000019
【図１８】
2020150545.tif 000020
【図１９】
2020150545.tif 000021
【図２０】
2020150545.tif 000022
【図２１】
2020150545.tif 000023
【図２２】
2020150545.tif 000024
【図２３】
2020150545.tif 000025
【図２４】
2020150545.tif 000026
【図２５】
2020150545.tif 000027
【外国語明細書】
2020150545000001.pdf