(57)【要約】アプリケーションインベントリアプリケーションに関する種々の実施形態が開示される。コンピューティングリソース使用量データ及び構成データが、クラウドコンピューティングアーキテクチャで実行されるマシンインスタンスに関して取得される。使用量データ及び構成データは、マシンインスタンスで実行されるアプリケーションを識別する要因として使用される。アプリケーション識別を具体化するレポートが生成される。
2016514334.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのコンピューティングデバイスと、
前記少なくとも１つのコンピューティングデバイスにおいて実行可能なインベントリアプリケーションと、
を含むシステムであって、
前記インベントリアプリケーションが、
少なくとも複数のマシンインスタンスのサブセット間の相互運用性を具体化するデータを取得する論理と、
前記データに少なくとも部分的に基づいて、前記マシンインスタンスのうちの１つにおいて実行される少なくとも１つのアプリケーションに関して識別を生成する論理と、
を含み、
前記インベントリアプリケーションが、前記マシンインスタンスの外側で実行され、前記マシンインスタンスのうちの前記１つの内部検査を行わない、
システム。
【請求項２】
前記識別を生成する前記論理が、
前記データに少なくとも部分的に基づいて、前記識別が前記少なくとも１つのアプリケーションに対応する確率を計算する論理と、
前記確率が閾値を超えることに応答して、前記識別を前記少なくとも１つのアプリケーションに関連付ける論理と、
をさらに含む、
請求項１に記載の前記システム。
【請求項３】
前記データが、前記マシンインスタンスのうちの前記１つがネットワークトラフィックを承諾するオープンポート、ネットワークアドレスのセット、またはネットワーキングプロトコルのうちの少なくとも１つを含む、請求項１に記載の前記システム。
【請求項４】
前記データが、前記マシンインスタンスのうちの前記１つと前記マシンインスタンスのうちの明確に異なる１つとの間のネットワークトラフィックフローを定義する、前記マシンインスタンスのうちの前記１つと関連付けられたネットワークトラフィック経路指定構成を含み、前記識別が、前記ネットワークトラフィック経路指定構成に少なくとも部分的に基づいて生成される、請求項１に記載の前記システム。
【請求項５】
前記データがオープンネットワークポートを含み、識別が、前記オープンネットワークポートが前記少なくとも１つのアプリケーションのためのデフォルトオープンネットワークポートであることに少なくとも部分的に基づいて生成される、請求項１に記載の前記システム。
【請求項６】
前記インベントリアプリケーションが、
前記マシンインスタンスの前記１つに関して独立ディスクの冗長アレイ（ＲＡＩＤ）構成を取得する論理、
をさらに含み、
前記識別が、ＲＡＩＤ構成に少なくとも部分的に基づいて生成される、
請求項１に記載の前記システム。
【請求項７】
前記インベントリアプリケーションが、
前記マシンインスタンスのうちの前記１つに関連付けられた中央処理装置（ＣＰＵ）使用量、グラフィックスプロセシングユニット（ＧＰＵ）使用量、ディスク使用量、またはメモリ使用量のうちの少なくとも１つを判定する論理をさらに含み、
前記識別が、ＣＰＵ使用量、ＧＰＵ使用量、前記ディスク使用量、または前記メモリ使用量に少なくとも部分的に基づいて生成される、
請求項１に記載の前記システム。
【請求項８】
前記マシンインスタンスのうちの前記１つが、メモリ使用量の閾値、入力／出力（Ｉ／Ｏ）閾値、ＣＰＵ使用量の閾値、またはＧＰＵ使用量の閾値のうちの少なくとも１つを定義するインスタンスタイプに関連付けられ、前記識別が、前記インスタンスタイプに少なくとも部分的に基づいて生成される、請求項１に記載の前記システム。
【請求項９】
前記データが、前記マシンインスタンスの前記サブセットに関して定義されたネットワークトラフィック許可を含む、請求項１に記載の前記システム。
【請求項１０】
１つ以上のコンピューティングデバイスにおいて、少なくとも１つのアプリケーションを実行する複数のマシンインスタンスのサブセット間での動作の相互運用性を具体化するデータを取得することと、
前記コンピューティングデバイスにおいて、前記複数のマシンインスタンスの内部検査なしに、前記データに少なくとも部分的に基づいて前記少なくとも１つのアプリケーションを識別することと、
を含む方法。
【請求項１１】
前記少なくとも１つのアプリケーションを識別することが、
前記コンピューティングデバイスにおいて、各々が複数の潜在的アプリケーションアイデンティティのうちの１つに対応する複数のスコアを計算することと、
前記コンピューティングデバイスにおいて、最高スコアを有する前記潜在的アプリケーションアイデンティティのうちの１つとして、前記少なくとも１つのアプリケーションを識別することと、
を含む、
請求項１０に記載の前記方法。
【請求項１２】
前記マシンインスタンスのうちの前記１つが、メモリ使用量の閾値、入力／出力（Ｉ／Ｏ）閾値、ＣＰＵ使用量の閾値、またはＧＰＵ使用量の閾値のうちの少なくとも１つを定義するインスタンスタイプに関連付けられ、前記識別が前記インスタンスタイプに少なくとも部分的に基づいて生成される、請求項１０に記載の前記方法。
【請求項１３】
前記データが、前記マシンインスタンスのうちの前記１つがネットワークトラフィックを承諾するオープンポート、ネットワークアドレスのセット、またはネットワーキングプロトコルのうちの少なくとも１つを定義する、ネットワークトラフィック許可構成を含む、請求項１０に記載の前記方法。
【請求項１４】
前記コンピューティングデバイスにおいて、前記マシンインスタンスの前記サブセット間のネットワーク通信を具体化するネットワークトラフィックパターンを生成することをさらに含み、
前記少なくとも１つのアプリケーションの識別が、前記ネットワークトラフィックパターンに少なくとも部分的に基づいて行われる、請求項１０に記載の前記方法。
【請求項１５】
前記データが、前記マシンインスタンスの前記サブセット間のネットワークトラフィックフローを定義するネットワークトラフィック経路指定構成を含む、請求項１０に記載の前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、推測アプリケーションインベントリに関する。
【背景技術】
【０００２】
クラウドコンピューティングインフラストラクチャサービスは、様々なサービス及びアプリケーションがそのインフラストラクチャ内で実行されることを可能にする。インフラストラクチャの種々のコンポーネント内に何のサービス及びアプリケーションが実装されるかを判定することは、有益であり得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
インフラストラクチャ内に実装されるアプリケーションを判定することを可能とする。
【課題を解決するための手段】
【０００４】
態様の一つは、少なくとも１つのコンピューティングデバイスと、前記少なくとも１つのコンピューティングデバイスにおいて実行可能なインベントリアプリケーションと、を含むシステムである。前記インベントリアプリケーションが、少なくとも複数のマシンインスタンスのサブセット間の相互運用性を具体化するデータを取得する論理と、前記データに少なくとも部分的に基づいて、前記マシンインスタンスのうちの１つにおいて実行される少なくとも１つのアプリケーションに関して識別を生成する論理と、を含み、前記インベントリアプリケーションが、前記マシンインスタンスの外側で実行され、前記マシンインスタンスのうちの前記１つの内部検査を行わない。
【発明の効果】
【０００５】
インフラストラクチャ内に実装されるアプリケーションを判定することを可能とする。
【図面の簡単な説明】
【０００６】
【図１】本開示の種々の実施形態による、ネットワーク化された環境の図面である。
【図２Ａ】本開示の種々の実施形態による、例となる地域レベルのデータセンターアーキテクチャの図面である。
【図２Ｂ】本開示の種々の実施形態による、例となるデータセンターレベルデータセンターアーキテクチャの図面である。
【図２Ｃ】本開示の種々の実施形態による、例となるラックレベルデータセンターアーキテクチャの図面である。
【図２Ｄ】本開示の種々の実施形態による、例となるサーバレベルデータセンターアーキテクチャの図面である。
【図３Ａ】本開示の種々の実施形態による、図１のネットワーク化された環境内のクライアントによってレンダリングされたユーザインターフェースの実施例の図面である。
【図３Ｂ】本開示の種々の実施形態による、図１のネットワーク化された環境内のクライアントによってレンダリングされたユーザインターフェースの実施例の図面である。
【図４】本開示の種々の実施形態による、図１のネットワーク化された環境内のコンピューティング環境内で実行されたインベントリアプリケーションの一部として実装された機能性の一実施例を示すフローチャートである。
【図５】本開示の種々の実施形態による、図１のネットワーク化された環境内のコンピューティング環境内で用いられたコンピューティング環境の一実施例の図示を提供する概略ブロック図である。
【発明を実施するための形態】
【０００７】
本開示の多くの態様は、添付の図面を参照してよりよく理解され得る。図中のコンポーネントは必ずしも縮尺通りであるとは限らず、代わりに本開示の原則を明確に示すことに強調が置かれている。さらに、図面において、同様の参照数字は、いくつかの図全体にわたって対応する部品を指定する。
【０００８】
クラウドコンピューティングインフラストラクチャは、顧客が、コンピューティングデバイス上で実行する仮想マシンインスタンスを実装することを可能にする。顧客は、例えば、マシンインスタンスにおいて彼らが選択したオペレーティングシステム及びアプリケーションのセットを実装し得る。クラウドインフラストラクチャはしばしば、分割セキュリティモデルを使用してモデル化され、顧客が、マシンインスタンスの根本的な機能性への独占的なアクセスを有する一方、クラウドサービスプロバイダは、根本的なクラウドコンピューティング機能性への独占的なアクセスを有する。これは、クラウドサービスプロバイダ及び顧客が彼らの各々のサービスの動作に干渉することを防ぎ、サービスの保守及び構成の責任をそれらの各管理者に課す。
【０００９】
クラウドサービスプロバイダは、概して、顧客マシンインスタンスへのルートアクセスを有していないため、起動中のマシンインスタンスを検査できず、クラウドサービスプロバイダは、どのようなアプリケーションがマシンインスタンス内で実行されているかを知らない。このような情報は、クラウドサービスプロバイダの顧客にソフトウェアを提供する独立したソフトウェアのベンダーにとっては、彼らの製品のより良い理解を促進するためにも有益であろう。このような情報は、マシンインスタンスを実装する顧客にとっても、彼らに、ソフトウェアの更新、ベストプラクティスコンプライアンス、セキュリティの脆弱性、または他の情報を伝えるために、有益であろう。多くの場合、この情報は、内密のまたは個人的に識別可能な情報を不注意に漏らさないように、集約され得るか、または顧客によってオプトインされている場合にのみ使用され得る。
【００１０】
この情報は、概して、直接利用可能でない一方、マシンインスタンスの外部の環境から集められたデータは、マシンインスタンス内部で起動しているアプリケーションに関しての指示を提供してもよい。例えば、特定のオープンネットワークポートは、特定のアプリケーションのためのデフォルトポートであってもよく、このアプリケーションがマシンインスタンス内で実行されてもよいことを示す。別の実施例として、ネットワーク経路指定構成は、ネットワークトラフィックをマシンインスタンスへと経路指定し得るが、データベースサーバアプリケーションを示し得る、マシンインスタンスからは経路指定し得ない。マシンインスタンスまたはディスク冗長構成に割り当てられたディスク空き容量も、マシンインスタンスにおいて実行されているアプリケーションのタイプを指示し得る。他の要因もまた、マシンインスタンスにおいて実行されているアプリケーションのタイプを識別する試みの際に考慮され得る。
【００１１】
さらに、要因は、特定のサービスを提供するために多くのサーバ及び／またはマシンインスタンスにわたって協働するソフトウェアアプリケーションのセットを含んでもよい複数のアプリケーションを識別するために、集約してとらえられてもよい。例となるサービスは、とりわけ、ビジネスインテリジェンスサービス、顧客関係管理（ＣＲＭ）サービス、人的リソース管理システム（ＨＲＭＳ）、企業パフォーマンス管理システム（ＥＰＭ）、供給チェーン管理システム（ＳＣＭ）であり得る。例となる要因は、マシンインスタンスが、特定のサービスによって使用されるデータベースサーバのためのデフォルトポートであると知られている第１のオープンネットワークポートを有し得る、ということである可能性がある。マシンインスタンス、または別の関連付けられたマシンインスタンスもまた、データベースサーバと共に使用されることが知られている分析サーバのためのデフォルトポートであると知られている第２のオープンネットワークポートを有し得る。個々に、デフォルトとしてのこれらのオープンポートは、それらの各アプリケーションを示してもよいが、全体として、データベースサーバと分析サーバの両方が、ベンダーによって提供される複合ソフトウェアのセットとして実行されているというより大きな可能性がある。例えば、ベンダーＡは、ＳＱＬデータベース、データウェアハウス、ならびに複数のサーバ及び／または仮想マシンインスタンス上で起動する分析モジュールを含む、ビジネスインテリジェンスソフトウェアコンポーネントを提供してもよい。別のベンダー、ベンダーＢは、同様のビジネスインテリジェンスソフトウェアを提供してもよいが、ソフトウェアコンポーネント、アーキテクチャ、及びコンポーネント間のデータフローは異なり得る（及びファイアーウォール情報、ポート情報、ネットワークトポロジー、データ伝送特徴（帯域幅、フロー、バースト性等）、仮想マシンインスタンスのサイズ等も同様である）。複数のインスタンス及び／またはコンピュータシステムにわたって集約してこれらの特徴を分析することによって、どのベンダーのソフトウェアサービスが顧客によって実行されているかに関して推測がなされ得る。
【００１２】
インベントリアプリケーションは、ハードウェアの使用、ネットワーク構成、ネットワーク経路指定構成、ディスク構成、マシンインスタンスで実行されることが知られているアプリケーション、または他のデータを含む、動作に関連するデータ及びマシンインスタンスの構成を集約する。集合データは、その後、アプリケーションの既知のプロファイルと比較され、マシンインスタンス内で実行されるアプリケーションを識別する。識別は、アプリケーションの使用を具体化する分析レポートを生成する際の後の使用のために、データストア内のメタデータと共に記憶されてもよい。
【００１３】
以下の考察において、システム及びそのコンポーネントの一般的な説明が提供され、その後、これらの動作の考察が提供される。
【００１４】
図１を参照すると、種々の実施形態によるネットワーク化された環境１００が示される。ネットワーク化された環境１００は、ネットワーク１０７を介して互いにデータ通信している、コンピューティング環境１０１及びクライアント１０４を備える。ネットワーク１０７は、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、有線ネットワーク、無線ネットワーク、または他の適切なネットワーク等、または２つ以上のこのようなネットワークの任意の組み合わせを含む。
【００１５】
コンピューティング環境１０１は、例えば、サーバコンピュータまたはコンピュータ機能を提供する任意の他のシステムを備えてもよい。あるいは、コンピューティング環境１０１は、例えば、１つ以上のサーババンクまたはコンピュータバンクまたは他の配置において配置される、用いられてもよい複数のコンピューティングデバイスを用いてもよい。このようなコンピューティングデバイスは、単一の設置に置かれてもよいし、または多くの異なる地理的な位置に分布されてもよい。例えば、コンピューティング環境１０１は、クラウドコンピューティングリソース、グリッドコンピューティングリソース、及び／または他の任意の分布されたコンピューティング配置を共に備えてもよい、複数のコンピューティングデバイスを含んでもよい。いくつかの場合において、コンピューティング環境１０１は、顧客に対して割り当てられた、処理、ネットワーク、ストレージ、または他のコンピューティング関連リソースの容量が経時的に変化してもよい、弾性コンピューティングリソースに対応してもよい。
【００１６】
種々のアプリケーション及び／または他の機能は、種々の実施形態によるコンピューティング環境１０１において実行されてもよい。また、種々のデータは、コンピューティング環境１０１にアクセス可能なデータストア１１１に記憶される。データストア１１１は、理解され得るように、複数のデータストア１１１を代表してもよい。データストア１１１に記憶されたデータは、例えば、種々のアプリケーション及び／または下記に説明される機能的なエンティティの動作に関連付けられる。
【００１７】
コンピューティング環境１０１上で実行されるコンポーネントは、例えば、マシンインスタンス１１４、インベントリアプリケーション１１７、及び他のアプリケーション、サービス、処理、システム、エンジン、または本開示には詳細に考察されない機能性を含む。マシンインスタンス１１４は、１つ以上のアプリケーション１２１の実行を促進する為のオペレーティングシステムの仮想化されたインスタンスを備える。このようなアプリケーションの実行は、ネットワークポートを開き、ネットワークトラフィックを伝達し、システム処理を開始し、ディスクアクセス、またはマシンインスタンス１１４内の他の機能性を行ってもよい。マシンインスタンス１１４の構成及び他のパラメータは、デフォルトパラメータに少なくとも部分的に基づいて、または別のアプローチによって、顧客、コンピューティング環境１０１のシステム管理者によって定義されてもよい。
【００１８】
マシンインスタンス１１４の構成は、マシンインスタンス１１４及び関連付けられたアプリケーション１２１を実行する際に、コンピューティング環境１０１のコンピューティングリソースに対するアクセス量を定義するインスタンスタイプ１２４と関連付けられてもよい。インスタンスタイプ１２４は、マシンインスタンス１１４に割り当てられたディスク空き容量、最大または平均の推定された中央処理装置（ＣＰＵ）使用率、最大または平均の推定されたグラフィックスプロセシングユニット（ＧＰＵ）使用率、最大または平均の推定されたディスクアクセス率、または他のパラメータ等のパラメータを定義してもよい。いくつかの実施形態において、このようなパラメータはまた、インスタンスタイプ１２４から独立して定義されてもよい。
【００１９】
マシンインスタンス１１４はまた、ネットワークトラフィック許可、ネットワークトラフィック経路指定許可、または他のデータを定義するネットワーク構成１２７も有してよい。例えば、ネットワーク構成１２７は、それを通してマシンインスタンス１１４がトラフィックを承諾するであろう、マシンインスタンス１１４のネットワークポートのサブセットを定義してもよい。ネットワーク構成１２７はまた、どのネットワーキングプロトコルを、マシンインスタンス１１４がトラフィックを承諾するかを制限してもよい。ネットワーキング構成１２７はまた、インターネットプロトコル（ＩＰ）アドレス範囲、定義されたＩＰアドレスのサブセット、定義されたメディアアクセスコントロール（ＭＡＣ）アドレスのサブセット、または他のネットワークアドレス等の、どのネットワークアドレスから、マシンインスタンス１１４が承諾するかを制限してもよい。
【００２０】
インベントリアプリケーション１１７は、コンピューティング環境１０１に実装されるマシンインスタンス１１４において実行されているアプリケーション１２１を識別するために実行される。この目的を果たすために、インベントリアプリケーション１１７は、マシンインスタンス１１４によってコンピューティング環境１０１のコンピューティングリソース使用量を示すマシンインスタンス１１４に関連付けられた使用量データ１３５だけでなく、マシンインスタンス１１４の構成を含んでもよいマシンインスタンス１１４間での相互運用性に関連するデータを集約するためのデータ集約モジュール１３４を実装する。例えば、データ集約モジュール１３４による集約使用量データ１３５は、ＣＰＵ使用率、ＧＰＵ使用率、帯域幅使用量、ディスクアクセス率、メモリ使用量、または他のデータのサンプリングを含んでもよい。
【００２１】
データ集約モジュール１３４によって集約される構成データは、どのようにしてネットワークトラフィックがマシンインスタンス１１４間で経路指定されるかを定義する経路指定構成１３７を取得することを含んでもよい。例えば、経路指定構成１３７は、ネットワークトラフィックの割当のためのロードバランサへの接続を定義してもよい。経路指定構成１３７はまた、当該マシンインスタンス１１４が、それに対してまたはそこからトラフィックを経路指定する、マシンインスタンス１１４またはネットワークアドレスも定義してもよい。経路指定構成１３７はまた、他のデータも含んでもよい。経路指定構成１３７を取得することは、データストアからの経路指定構成１３７のローディングと、アプリケーションプログラムインターフェース（ＡＰＩ）またはロードバランサ、スイッチ、またはルータ等のネットワーキングコンポーネントの他の機能性を問い合わせを行うこと、または別のアプローチによって問い合わせを行うことを含んでもよい。
【００２２】
データ集約モジュール１３４はまた、マシンインスタンス１１４間の通信、またはマシンインスタンス１１４及び外部ネットワーク１０７間の通信に関連付けられたネットワークトラフィックパターン１４１もサンプルしてよい。ネットワークトラフィックパターン１４１は、ネットワーキングプロトコルの使用、ポートの使用、パケットサイズ、パケットコンテンツ、ネットワークトラフィックソースまたは宛先、または他のデータを含んでもよい。データ集約モジュール１３４は、ネットワークパケットデータ（例えば、ヘッダデータ、パケットサイズデータ等）、送信頻度等を抽出するために、例えば、パケット検査機能性を用いてもよい。ネットワークトラフィックパターン１４１をサンプリングすることはまた、別のアプローチによって行われてもよい。
【００２３】
さらに、データ集約モジュール１３４はまた、インスタンスタイプ１２４、ネットワーク構成１２７、またはディスク構成１３１を含むマシンインスタンス１１４の１つ以上に対応する前もって定義された構成データも集約してよい。データ集約モジュール１３４はまた、他の使用量データ１３５または構成データも集約してよい。
【００２４】
データ集約モジュール１３４が、１つ以上のマシンインスタンス１１４のための使用量データ１３５及び構成データを集約した後に、データ集約モジュール１３４は、その後、マシンインスタンス１１４において実行されたアプリケーション１２１のうちの少なくとも１つを識別することを試みる。この識別は、具体的なアプリケーション、アプリケーションタイプ（例えば、データベースアプリケーション、符号化アプリケーション、ウェブサイトアプリケーション等）、または特定の機能性を行うアプリケーションのセットであってもよい。いくつかの実施形態において、これは、１つ以上の潜在的アプリケーション１２１に関してスコアまたは確率を計算することと、閾値を超えるスコアまたは確率に応答してマシンインスタンス１１４において実行されているとして、または複数のスコアまたは確率の中で最高であるとして、潜在的アプリケーション１２１の１つを識別することとを含んでもよい。
【００２５】
集合データに少なくとも部分的に基づいて、アプリケーション１２１に関してスコアまたは重量を計算することは、アプリケーション１２１をマシンインスタンス１１４におけるその実行を示す１つ以上の基準に関連させる識別知識ベース１４４に問い合わせることによって行われてもよい。例えば、識別知識ベース１４４は、関連付けられたアプリケーション１２１を実行する際に、デフォルトによって開かれた１つ以上のネットワークポートを定義してもよい。マシンインスタンス１１４において開いているデフォルトネットワークポートは、アプリケーション１２１がマシンインスタンスにおいて実行されているという、スコアまたは確率を増加させてもよい。別の実施例として、大量のディスク空き容量が割当られたマシンインスタンス１１４、またはＲＡＩＤ構成等のデータ冗長を実装することは、マシンインスタンス１１４において実行されているデータベースサーバを示してもよい。識別知識ベース１４４は、既知の最良実施、既知のデフォルトアプリケーション１２１構成または動作、共に実行されやすい、または相互通信する関連するアプリケーション１２１のグループ化、またはマシンインスタンス１１４において実行されているアプリケーション１２１を示す潜在的に他のデータを具体化してもよい。
【００２６】
複数のマシンインスタンス１１４に関連付けられた集合データ、またはアプリケーション１２１が識別されているマシンインスタンス１１４とは明確に異なるマシンインスタンス１１４もまた、アプリケーション１２１を識別する要因であってもよい。例えば、第１のマシンインスタンス１１４からインバウンドのネットワークトラフィックを承諾するように構成されている他のマシンインスタンス１１４とは連結されていない第２のマシンインスタンス１１４からトラフィックを承諾する第１のマシンインスタンス１１４のネットワーク構成１２７は、データベースサーバまたは第１のマシンインスタンス１１４において実行されているデータストレージサービスアプリケーション１２１を示してもよい。複数のマシンインスタンス１１４に関連付けられた集合データはまた、別のアプローチによって、アプリケーション１２１を識別するために使用されてもよい。
【００２７】
さらに、マシンインスタンス１１４において実行されることが知られているまたはインベントリアプリケーション１１７によって前もって識別されたアプリケーション１２１はまた、アプリケーション１２１を識別する要因であってもよい。例えば、マシンインスタンス１１４が、データベースサーバアプリケーション１２１を実行していると知られている、またはデータベースサーバアプリケーション１２１を実行するマシンインスタンス１１４とネットワーク通信している場合、アプリケーション１２１は、データ分析アプリケーション１２１として識別されやすくてもよい。既知のまたは前もって識別されたアプリケーション１２１はまた、別のアプローチによってアプリケーション１２１を識別するためにも使用されてよい。
【００２８】
いくつかの実施形態において、複数の潜在的アプリケーション１２１に関してのスコアまたは確率は、複数のアプリケーション１２１が、マシンインスタンス１１４において実行されていることを示す集合データに応答して増加してもよい。例えば、ウェブサーバアプリケーション１２１が実行されているというスコアまたは確率は、明確に異なるウェブサーバフロントエンドアプリケーション１２１のスコアが増加するにつれて増加してもよく、ウェブサーバ及びその関連付けられたフロントエンドの両方がマシンインスタンス１１４において実行されていることを示す。マシンインスタンス１１４において実行されている複数のアプリケーション１２１の印もまた、別のアプローチによってアプリケーション１２１を識別するために使用されてもよい。
【００２９】
１つ以上のアプリケーション１２１が、マシンインスタンス１１４において実行されていると識別された後、インベントリアプリケーション１１７は、その後、アプリケーション１２１のアイデンティティをアプリケーションプロファイル１４７に記憶してもよい。アプリケーションプロファイル１４７は、どのアプリケーション１２１が、特定の時間に、特定のマシンインスタンス１１４において実行されていると識別されたかを具体化する。アプリケーションプロファイル１４７はまた、マシンインスタンス１１４識別子、顧客アカウント識別子、インスタンスタイプ１２４識別子、または他のデータを含むマシンインスタンス１１４に関連付けられたメタデータ１５１も含んでよい。
【００３０】
１つ以上のアプリケーションプロファイル１４７が記憶された後、レポートモジュール１５４は、アプリケーションプロファイル１４７に少なくとも部分的に基づいてレポート１５７を生成してもよい。レポート１５７は、クライアント１０４からの問い合わせに応答して、時間間隔の経過に応答して、または他の何らかの基準に応答して、生成されてもよい。レポート１５７は、例えば、アプリケーション１２１の採用、使用、または設置率、及び潜在的に他のデータを示す分析を具体化してもよい。レポート１５７において具体化されたデータは、データセンター地域、アプリケーション１２１ベンダー、マシンインスタンス１１４顧客、または他の何らかの範疇に関して分類されてもよい。他のデータもまた、理解され得るように、レポート１５７において具体化されてもよい。
【００３１】
レポート１５７を生成した後、レポートモジュール１５４は、ネットワーク１０７を介して、レポート１５７をクライアント１０４に伝達してもよく、レポート１５７をデータストア１１１に記憶してもよく、または生成されたレポート１５７に関して、他の何らかの行為を行ってもよい。レポート１５７は、クライアント１０４に伝達されて、Ｅメールメッセージまたはショートメッセージシステム（ＳＭＳ）メッセージ内に添付されてもよく、さもなければ符号化されてもよく、または他の何らかのアプローチによって伝達された、ネットワークページに、レポートを符号化することによって伝達されてもよい。
【００３２】
データストア１１１に記憶されたデータは、例えば、識別知識ベース１４４、アプリケーションプロファイル１４７、経路指定構成１３７、ネットワークトラフィックパターン１４１、及び潜在的に他のデータを含む。
【００３３】
クライアント１０４は、ネットワーク１０７に連結されてもよい複数のクライアントデバイスを代表する。クライアント１０４は、例えば、コンピュータシステム等の、プロセッサに基づくシステムを含んでもよい。このようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯端末、携帯電話、スマートフォン、セットトップボックス、音楽プレイヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子ブックリーダ、または同様の性能を持つ他のデバイスの形態で具体化されてもよい。
【００３４】
クライアント１０４は、クライアントアプリケーション１６１及び／または他のアプリケーション等の種々のアプリケーションを実行するように構成されてもよい。クライアントアプリケーション１６１は、例えば、コンピューティング環境１０１及び／または他のサーバによって出されたネットワークコンテンツにアクセスするために、クライアント１０４において実行されてもよい。この目的を果たすために、クライアントアプリケーション１６１は、例えば、ブラウザ、専用アプリケーション等を含んでもよい。クライアント１０４は、例えば、Ｅメールアプリケーション、ソーシャルネットワーキングアプリケーション、ワードプロセッサ、スプレッドシート、及び／または他のアプリケーション等のクライアントアプリケーション１６１を超えてアプリケーションを実行するように構成されてもよい。クライアント１０４は、コンピューティング環境１０１の外部であるとして図示されているが、それはコンピューティング環境１０１の内部に存在し得る。
【００３５】
次に、ネットワーク化された環境１００の種々のコンポーネントの動作の一般的な説明が提供される。まず、インベントリアプリケーション１１７のデータ集約モジュール１３４は、使用量データ１３５、構成データ、及び潜在的に他のデータ等のマシンインスタンス１１４間での相互運用性を具体化するデータを集約する。集約使用量データ１３５は、例えば、コンピューティング環境１０１のコンピューティングリソースにアクセスするマシンインスタンス１１４に関連する、ＣＰＵ使用量、ＧＰＵ使用量、メモリ使用量、ディスクアクセス、または他のデータをサンプリングすることを含んでもよい。データ集約モジュール１３４はまた、マシンインスタンス１１４に対して、またはそれから伝達されるネットワークトラフィックパケットをサンプリングすることによって、ネットワークトラフィックパターン１４１を記録してもよい。
【００３６】
構成データをサンプリングすることは、割り当てられたＣＰＵ使用量、ディスク空き容量の割当、メモリ割当、ＧＰＵ使用量の前もって定義された制限、またはマシンインスタンス１１４によるコンピューティング環境１０１のコンピューティングリソースに対するアクセス上の他の制限を取得することを含んでもよい。このような制限は、マシンインスタンス１１４に関連付けられたインスタンスタイプ１２４において具体化されてもよい。例えば、マシンインスタンス１１４に対するアクセスを購入した顧客は、前もって定義された量のＣＰＵ、ディスク、及びメモリを、購入のトランザクションの一部として割り当てる、インスタンスタイプ１２４の前もって定義されたリストの選択された１つを有してもよい。
【００３７】
構成データをサンプリングすることはまた、マシンインスタンス１１４の１つ以上に関連付けられた経路指定構成１３７を取得することを含んでもよい。経路指定構成１３７は、マシンインスタンス１１４間、またはマシンインスタンス１１４及び外部ネットワーク１０７位置の間に、例えば、ネットワークトラフィック経路指定の経路を定義してもよい。経路指定構成１３７は、ロードバランサ、スイッチ、ルータ、またはネットワーク１０７の他のネットワーキングコンポーネントまたはコンピューティング環境１０１に対する接続を定義してもよい。
【００３８】
構成データを取得することはまた、マシンインスタンス１１４の１つ以上に関して定義されたネットワーク構成１２７、または複数のマシンインスタンス１１４の相互運用性を取得することを含んでもよい。ネットワーク構成１２７を取得することは、マシンインスタンス１１４のオープンネットワークポートのためのスキャニング、マシンインスタンス１１４に関連付けられた前もって定義されたネットワーク構成１２７データのローディング、または別のアプローチを含んでもよい。前もって定義されたネットワーク構成１２７のローディングは、アクセス可能なネットワークポート、許可可能なネットワークプロトコル、及び許可可能なネットワークトラフィックソース、またはマシンインスタンス１１４のうちの１つ以上に関して定義された他のデータを具体化する顧客定義セキュリティポリシーのローディングを含んでもよい。
【００３９】
構成データを取得することは、ＲＡＩＤ構成を含むマシンインスタンス１１４に関連付けられたディスク構成１３１、ディスク区分スキーム、データ冗長スキームまたは他のパラメータを取得することも含んでよい。
【００４０】
使用量データ１３５及び構成データを取得した後、データ集約モジュール１３４は、その後、マシンインスタンス１１４において実行された少なくとも１つのアプリケーション１２１を識別することを試みる。いくつかの実施形態において、これは、複数の潜在的アプリケーション１２１に関してスコアまたは確率を計算することと、潜在的アプリケーション１２１の最高スコアまたは最も確実なものを、マシンインスタンス１１４内で実行されていると識別することとを含んでもよい。他の実施形態において、これは、複数の潜在的アプリケーション１２１に関してスコアまたは確率を計算することと、マシンインスタンス１１４内で実行されている間その確率またはスコアが閾値を超える潜在的アプリケーション１２１を識別することとを含んでもよい。
【００４１】
スコアまたは確率が潜在的アプリケーション１２１に関して計算される実施形態において、スコアまたは確率は、集約された使用量データ１３５、構成データ、または他のデータに少なくとも部分的に基づいて、各潜在的アプリケーション１２１に関連付けられた識別知識ベース１４４エントリにおいて具体化されたどの基準が満たされるかを判定することによって計算されてもよい。スコアまたは確率はまた、前もって識別された、又は、または当該マシンインスタンス１１４においてまたは当該マシンインスタンス１１４が通信するマシンインスタンス１１４において実行されると知られていてもよいアプリケーション１２１に少なくとも部分的に基づいて計算されるまたは重みを加えられてもよい。
【００４２】
他の実施形態において、マシンインスタンス１１４において実行されるアプリケーション１２１を識別することは、監視された機械学習アルゴリズムを、集約された使用量データ１３５及び構成データ、並びに識別知識ベース１４４において具体化された知識ベースに適用することを含んでもよい。マシンインスタンス１１４において実行されるアプリケーション１２１はまた、他のアプローチによって識別されてもよい。
【００４３】
少なくとも１つのアプリケーション１２１がマシンインスタンス１１４において実行されていると識別された後、識別は、マシンインスタンス１１４に関して定義されたアプリケーションプロファイル１４７、データ集約に関連付けられた期間、または他のデータポイントに記憶される。アプリケーションプロファイル１４７はまた、インスタンスメタデータウェブサービスまたはアプリケーションプログラムインターフェースから取得され、データストア１１１からロードされ、または別のアプローチによって取得されたメタデータ１５１も含んでよい。
【００４４】
レポートモジュール１５４は、その後、記憶されたアプリケーションプロファイル１４７に関連する分析を具体化するレポート１５７を生成してもよい。レポート１５７は、クライアント１０４からの要求に応答して生成されてもよいし、前もって定義された間隔で生成されてもよいし、または他の何らかの基準に応答して生成されてもよい。生成されたレポート１５７は、ショートメッセージシステム（ＳＭＳ）メッセージ、Ｅメール添付、ブラウザクライアントアプリケーション１６１によってレンダリングするために符号化されたネットワークページ、または別のアプローチとして、ネットワーク１０７を介してクライアント１０４に伝達されてもよい。生成されたレポート１５７はまた、データストア１１１に記憶されてもよい。他の行為も、生成されたレポート１５７に関して取られてもよい。
【００４５】
図２Ａ〜２Ｄは、種々の実施形態による、データセンターアーキテクチャ２００に関する詳細の種々のレベルを表す。図２Ａ〜２Ｄに示されるデータセンターアーキテクチャ２００の種々のコンポーネント及びそれらの種々のサブコンポーネントは、説明されるように、マシンインスタンス１１４（図１）の実行を促進するためのコンピューティング環境１０１（図１）の実施例の実装を表す。
【００４６】
図２Ａは、種々の実施形態による、データセンターアーキテクチャ２００の実施例の地域レベル図を表す。地域２０１ａ〜ｎは、複数の利用可能ゾーン２０４ａ〜ｎ及び２０５ａ〜ｎを含む複数の論理グループである。地域２０１ａ〜ｎは、地理、国境、論理またはグラフィカルトポロジ、または他の何らかのアプローチに少なくとも部分的に基づいてグループ化されてもよい。例えば、地域２０１ａ〜ｎは、南西部、中西部、北西部、または他の地理区等のアメリカ合衆国の地理区によってグループ化されてもよい。他のアプローチもまた、地域２０１ａ〜ｎを定義するために使用されてもよい。
【００４７】
各地域２０１ａ〜ｎは、１つ以上の利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎを含む。利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎの各々は、１つ以上のデータセンター２０７ａ〜ｎ、２０８ａ〜ｎ、２０９ａ〜ｎ、及び２１０ａ〜ｎを含む論理グループである。利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎは、他の利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎにおける障害から隔離されるように定義され、また、同じ地域２０１ａ〜ｎにおける他の利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎに対する接続性に関連付けられた潜在コストを最適化するように定義される。例えば、明確に異なる利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎは、明確に異なるネットワーク、電力回路、発電機、または他のコンポーネントを含んでもよい。さらに、いくつかの実施形態において、単一のデータセンター２０７ａ〜ｎ、２０８ａ〜ｎ、２０９ａ〜ｎ、または２１０ａ〜ｎは、複数の利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎを含んでもよい。地域２０１ａ〜ｎは、ネットワーク１０７を通して互いにデータ通信する（図１）。
【００４８】
いくつかの実施形態において、ネットワークトラフィックパターン１４１（図１）は、ソースまたは宛先地域２０１ａ〜ｎ、利用可能ゾーン２０４ａ〜ｎまたは２０５ａ〜ｎ、データセンター２０７ａ〜ｎ、２０８ａ〜ｎ、２０９ａ〜ｎ、または２１０ａ〜ｎ、またはデータセンターアーキテクチャ２００の他のコンポーネントに関してのネットワーク通信のパターンを具体化してもよい。
【００４９】
図２Ｂは、データセンターアーキテクチャ２００の実施例のデータセンターレベル図を示す。データセンターレベル図は、データセンター２０７ａ〜ｎ、２０８ａ〜ｎ、２０９ａ〜ｎ、または２１０ａ〜ｎに実装されるアーキテクチャを代表してもよい。データセンター２０７ａは、少なくとも１つのラックコレクション２１１ａ〜ｎを含み、各ラックコレクション２１１ａ〜ｎは、対応する少なくとも１つのラック２１４ａ〜ｎまたは２１５ａ〜ｎを含む。データセンター２０７ａはまた、マシンインスタンス１１４（図１）の実装を促進するラック２１７ａ〜ｎを含む少なくとも１つのサービスラックコレクション２１６も含んでよい。
【００５０】
各ラックコレクション２１１ａ〜ｎまたは２１６はまた、対応するグループまたはラック２１４ａ〜ｎ、２１５ａ〜ｎ、または２１７ａ〜ｎが接続される少なくとも１つの電力システム２１８ａ〜ｎまたは２１９も含む。電力システム２１８ａ〜ｎまたは２１９は、ケーブル敷設、スイッチ、バッテリー、妨げられることのない電源、発電機、またはラック２１４ａ〜ｎ、２１５ａ〜ｎ、または２１７ａ〜ｎの電力供給を促進するために実装される他のコンポーネントを含んでもよい。
【００５１】
各ラックコレクション２１１ａ〜ｎまたは２１６は、ローカルネットワーク２２１ａ〜ｎまたは２２２に連結される。ローカルネットワーク２２１ａ〜ｎまたは２２２は、対応するラックコレクション２１１ａ〜ｎのコンポーネント間のデータ通信を促進するために実装される。ローカルネットワーク２２１ａ〜ｎまたは２２２はまた、対応するラックコレクション２１１ａ〜ｎまたは２１６及びネットワーク１０７間のデータ通信も促進する。いくつかの実施形態において、ネットワークトラフィックパターン１４１（図１）は、ソースまたは宛先ラックコレクション２１１ａ〜ｎまたは２１６、ラック２１４ａ〜ｎ、２１５ａ〜ｎ、または２１７ａ〜ｎ、またはデータセンターアーキテクチャ２０７ａの他のコンポーネントに関して、ネットワーク通信のパターンを具体化してもよい。
【００５２】
図２Ｃは、種々の実施形態による、データセンターアーキテクチャ２００のラックコレクションレベルの実装を図示する。ラックコレクションレベルの実装は、ラックコレクション２１１ａ〜ｎまたは２１６を代表してもよい。例えば、ラックコレクション２１１ａは、ラック２１４ａ〜ｇ及びラック２１４ｈ〜ｎのサブセットにさらに分割される複数のラック２１４ａ〜ｎを含む。各ラック２１４ａ〜ｎは、複数のサーバ２２１ａ〜ｎ、２２２ａ〜ｎ、２２３ａ〜ｎ、または２２４ａ〜ｎ及び潜在的に他の機能性を含む。各サーバ２２１ａ〜ｎ、２２２ａ〜ｎ、２２３ａ〜ｎ、または２２４ａ〜ｎは、共有されたまたは明確に異なるハードウェア構成を含んでもよい。ラック２１４ａ〜ｎの各々はまた、対応するサーバ２２１ａ〜ｎ、２２２ａ〜ｎ、２２３ａ〜ｎ、または２２４ａ〜ｎが接続する少なくとも１つのスイッチ２２７ａ〜ｎも含んでよい。ラックコレクション２１１ａはまた、集約ルータ２３１ａ〜ｎの階層も含む。図２Ｃは集約ルータ２３１ａ〜ｎの２レベルの階層を示すが、集約ルータ２３１ａ〜ｎの１つ以上のレベルが実装されてもよいことが理解される。集約ルータ２３１ａ〜ｎの最高レベルは、外部ネットワーク１０７（図１）と通信している。
【００５３】
集約ルータ２３１ａ〜ｎは、サーバ２２１ａ〜ｎ、２２２ａ〜ｎ、２２３ａ〜ｎ、または２２４ａ〜ｎに対するネットワーク通信の経路指定を促進する。この目的を果たすために、スイッチ２２７ａ〜ｎの各々は、集約ルータ２３１ａ〜ｎとデータ通信している。
【００５４】
いくつかの実施形態において、ネットワークトラフィックパターン１４１（図１）は、サーバ２２１ａ〜ｎ、２２２ａ〜ｎ、２２３ａ〜ｎ、または２２４ａ〜ｎ、ラック２１４ａ〜ｎ、またはラックコレクションアーキテクチャの他のコンポーネント２１１ａに関して、ネットワーク通信のパターンを具体化してもよい。さらに、いくつかの実施形態において、経路指定構成１３７（図１）は、スイッチ２２７ａ〜ｎ、サーバ２２１ａ〜ｎ、２２２ａ〜ｎ、２２３ａ〜ｎ、または２２４ａ〜ｎ、集約ルータ２３１ａ〜ｎまたはラックコレクション２１１ａの他のコンポーネントに関連付けられた構成を具体化してもよい。
【００５５】
図２Ｄは、データセンターアーキテクチャ２００に実装されるようなサーバ２２１ａを図示する。図２Ｄはサーバ２２１ａに対して描かれているが、図２Ｄがいずれのサーバ２２１ａ〜ｎ、２２２ａ〜ｎ、２２３ａ〜ｎ、または２２４ａ〜ｎを代表してもよいことが理解される。
【００５６】
１つ以上のマシンインスタンス１１４は、サーバ２２１ａ上で実行される。マシンインスタンス１１４は、サービス、アプリケーション、または他の機能性の実行を促進するためのオペレーティングシステムの仮想化されたインスタンスを含む。各マシンインスタンス１１４は、仮想化層２３７と連通する。仮想化層２３７は、実行されたマシンインスタンス１１４の各々によって、ハードウェア層２４１に対するアクセスを制御する。仮想化層２３７は、特権的ドメイン２４４をさらに含む。特権的ドメイン２４４は、マシンインスタンス１１４、ハードウェア層２４１、または他のコンポーネント間での相互作用を促進するために、他の実行されたマシンインスタンス１１４に関する明確に異なるまたは高レベルのユーザ特権を有するマシンインスタンス１１４を含んでもよい。特権的ドメイン２４４はまた、システム管理者等のユーザの承認されたサブセットに対するアクセス制限、特権的ドメイン２４４の限定的動作も含んでもよい。特権的ドメイン２４４は、マシンインスタンス１１４の作成と管理を促進してもよい。
【００５７】
ハードウェア層２４１は、マシンインスタンス１１４の動作及びそれらの関連付けられた実行された機能性を促進するために実装される種々のハードウェアコンポーネントを含む。ハードウェア層２４１は、ネットワークインターフェースカード、ネットワーク経路指定コンポーネント、プロセッサ、メモリ、ストレージデバイス、または他のコンポーネントを含んでもよい。いくつかの実施形態において、使用量データ１３５（図１）は、仮想化層２３７、ハードウェア層２４１、またはサーバ２２１ａの他のコンポーネントの使用量またはアクセス率を含んでもよい。
【００５８】
次に図３Ａを参照すると、クライアント１０４（図１）に対する通信のためのレポートモジュール１５４（図１）によって符号化されたレポート１５７（図１）の実施例が示される。いくつかの実施形態において、図３Ａに示されるユーザインターフェースは、ブラウザクライアントアプリケーション１６１（図１）によってレンダリングするために符号化されたネットワークページを含む。別の方法では、ユーザインターフェースは、専用クライアントアプリケーション１６１によってレンダリングするために符号化されたデータを含んでもよい。
【００５９】
項目３０１は、マシンインスタンス１１４（図１）に実装されるような特定のベンダーのためのアプリケーション１２１の使用を詳述しており、データセンター地域及び個々のアプリケーション１２１によって分類されたレポート１５７を図示する。項目３０４は、レポート１５７を具体化するネットワークページに向けられたユニフォームリソースロケータ（ＵＲＬ）である。項目３０７は、それに対してレポート１５７が生成されたベンダーの名前に対応するテキスト識別子である。項目３１１は、レポート１５７において具体化されるデータを示すテキスト識別子である。
【００６０】
項目３１４は、そのセルが、データセンター地域を定義し、行中の他のセルがそれに対応する、表の列である。項目３１７は、そのセルが、ベンダーによって販売された３つの異なるアプリケーション１２１を定義する、表の列である。項目３２１は、対応するデータセンター地域における対応するアプリケーション１２１の使用率である。項目３２４は、対応するデータセンター地域における競合するアプリケーション１２１の使用率である。とりわけ、アプリケーションの起動しているインスタンスの数等の他の統計値が、同じ方法で利用可能となり得る。
【００６１】
次に図３Ｂを参照すると、クライアント１０４（図１）に対する通信のためのレポートモジュール１５４（図１）によって符号化されたレポート１５７（図１）の実施例が示される。いくつかの実施形態において、図３Ｂに図示されたユーザインターフェースは、ブラウザクライアントアプリケーション１６１（図１）によってレンダリングするために符号化されたネットワークページを含む。別の方法では、ユーザインターフェースは、専用クライアントアプリケーション１６１によってレンダリングするために符号化されたデータを含んでもよい。
【００６２】
項目３３１は、米国東部データセンター地域についてマシンインスタンス１１４（図１）に実装されるように、アプリケーション１２１の使用を詳述しており、データセンター地域及びアプリケーション１２１によって分類されたレポート１５７を図示する。項目３３４は、レポート１５７を具体化するネットワークページに向けられたユニフォームリソースロケータ（ＵＲＬ）である。項目３３７は、それに関してレポート１５７が生成されたデータセンター地域の名前に対応するテキスト識別子である。項目３４１は、レポート１５７において具体化されるデータを示すテキスト識別子である。
【００６３】
項目３４４は、そのセルが、アプリケーション１２１使用量に対応するベンダーを定義する、表の列である。項目３４７は、そのセルが、対応するベンダーについての米国東部データセンター地域におけるアプリケーション１２１使用量を具体化する、表の列である。項目３５１は、項目３４４及び３４７に記載されたデータを具体化するために生成された円グラフである。
【００６４】
図４に移ると、種々の実施形態による、インベントリアプリケーション１１７（図１）の一部の動作の１つの実施例を提供するフローチャートが示される。図４のフローチャートは、本明細書に記載されるような、インベントリアプリケーション１１７の一部の動作を実装するために用いられてもよい多くの異なるタイプの機能的な配置の実施例を単に提供していることが理解される。別の方法として、図４のフローチャートは、１つ以上の実施形態によるコンピューティング環境１０１（図１）に実装される方法のステップの実施例を図示するように描かれてもよい。
【００６５】
ボックス４０１から始まり、インベントリアプリケーション１１７のデータ集約モジュール１３４（図１）は、マシンインスタンス１１４（図１）のためのネットワークトラフィックパターン１４１（図１）及び使用量データ１３５（図１）を生成する。使用量データ１３５を生成することは、例えば、コンピューティング環境１０１のコンピューティングリソースにアクセスしているマシンインスタンス１１４に関連する、サンプリングＣＰＵ使用量、ＧＰＵ使用量、メモリ使用量、ディスクアクセス、または他のデータを含んでもよい。ネットワークトラフィックパターン１４１を生成することは、ネットワーキングプロトコル、ソースネットワークアドレス、宛先ネットワークアドレス、または他の情報を判定するために、マシンインスタンス１１４と通信しているネットワークパケットを傍受するまたは監視することを含んでもよい。使用量データ１３５及びネットワークトラフィックパターン１４１は、他のアプローチによっても生成されてよい。
【００６６】
次に、ボックス４０４において、データ集約モジュール１３４は、マシンインスタンス１１４に関連付けられたネットワーク構成１２７（図１）、インスタンスタイプ１２４（図１）、及び経路指定構成１３７（図１）を取得する。ネットワーク構成１２７、インスタンスタイプ１２４、及び経路指定構成１３７は、データストア１１１（図１）から取得されてもよい。ネットワーク構成１２７はまた、マシンインスタンス１１４に関してポートスキャン、ネットワークプロービング、または他の動作を行うことによっても生成されてよい。経路指定構成１３７はまた、ルータ、スイッチ、またはロードバランサ等のネットワーキングコンポーネントのアプリケーションプログラムインターフェースまたは他の機能性に問い合わせることによって取得されてもよい。ネットワーク構成１２７、インスタンスタイプ１２４、及び経路指定構成１３７はまた、別のアプローチによって取得されてもよい。
【００６７】
ボックス４０７において、データ集約モジュール１３４はその後、マシンインスタンス１１４において実行されているアプリケーション１２１（図１）の前もって生成された識別を取得する。これは、データストア１１１からのマシンインスタンス１１４に関連付けられたアプリケーションプロファイル１４７（図１）をローディングすることを含んでもよい。これはまた、データ集約モジュール１３４の同時に実行された過程によって識別されたアプリケーション１２１の識別または局所的にアクセス可能なメモリに記憶された識別にアクセスすることも含んでよい。アプリケーション１２１の前もって生成された識別を取得することはまた、別のアプローチによって行われてもよい。
【００６８】
次に、ボックス４１１において、データ集約モジュール１３４は、その後、マシンインスタンス１１４のうちの１つにおいて実行された少なくとも１つのアプリケーション１２１を識別する。これは、例えば、複数の潜在的アプリケーション１２１に関してスコアまたはパーセンテージを計算することと、マシンインスタンス１１４において実行されているような、最高のスコアまたはパーセンテージを有する潜在的アプリケーション１２１の１つを識別することとを含んでもよい。これはまた、マシンインスタンス１１４において実行されている間、そのスコアまたはパーセンテージが閾値を超える潜在的アプリケーション１２１を識別することも含んでもよい。スコアまたはパーセンテージは、使用量データ１３５、ネットワークトラフィックパターン１４１、ネットワーク構成１２７、インスタンスタイプ１２４、経路指定構成１３７、前もって識別されたアプリケーション１２１、または潜在的に他のデータにおいて具体化されたデータによって判定されるように満たされている識別知識ベース１４４（図１）に具体化された基準に少なくとも部分的に基づいて計算されてもよい。
【００６９】
ボックス４１４において、マシンインスタンス１１４において実行されている少なくとも１つのアプリケーション１２１を識別した後、アプリケーション１２１及びメタデータ１５１（図１）の識別が、アプリケーション１２１が識別されたマシンインスタンス１１４に関連付けられたアプリケーションプロファイル１４７エントリとして記憶される。メタデータ１５１は、データストア１１１から取得される、または別のアプローチによって取得されるウェブサービスに問い合わせることによって、取得されてもよい。
【００７０】
本開示の実施形態は、以下の備考を考慮して説明され得る。
付記１．  複数のアプリケーションを実行する  複数のマシンインスタンスのうちの１つのディスク構成を取得するコードと、
マシンインスタンスのうちの１つのネットワークトラフィック許可構成を取得するコードであって、ネットワークトラフィック許可構成が、オープンポート、ネットワークアドレスのセット、またはそのためにマシンインスタンスのうちの１つがネットワークトラフィックを承諾するように構成されたネットワーキングプロトコルのうちの少なくとも１つを定義する、コードと、
マシンインスタンスのうちの１つに関連付けられたネットワークトラフィック経路指定構成を取得するコードであって、ネットワークトラフィック経路指定構成が、マシンインスタンスのうちの１つとマシンインスタンスのうちの明確に異なる１つとの間のネットワークトラフィックフローを定義する、コードと、
マシンインスタンスのうちの１つの内部検査なしに、ディスク構成、ネットワークトラフィック経路指定構成、ネットワークトラフィック許可構成、及びアプリケーションのうちの第２の１つの識別アプリケーションに少なくとも部分的に基づいて、アプリケーションのうちの第１の１つを識別するコードと、
アプリケーションのうちの第１の１つの識別を、データストアに記憶された複数の識別のうちの１つとして記憶するコードと、
識別を具体化する分析レポートを生成するコードと、を含む、少なくとも１つのコンピューティングデバイスにおいて実行可能なプログラムを具体化する持続性コンピュータ可読媒体。
付記２．プログラムが、
マシンインスタンスのうちの１つがロードバランシングサービスに接続されているかどうかを判定するコードをさらに含み、
識別のうちの第１の１つが、判定に少なくとも部分的に基づいて識別される、１項に記載の持続性コンピュータ可読媒体。
付記３．プログラムが、中央処理装置（ＣＰＵ）使用量、グラフィックスプロセシングユニット（ＧＰＵ）使用量、ディスク使用量、またはマシンインスタンスのうちの１つに関連付けられたメモリ使用量のうちの少なくとも１つを判定するコードをさらに含み、
アプリケーションのうちの第１の１つが、中央処理装置（ＣＰＵ）使用量、グラフィックスプロセシングユニット（ＧＰＵ）使用量、ディスク使用量、またはメモリ使用量に少なくとも部分的に基づいて識別される、１項に記載の持続性コンピュータ可読媒体。
付記４．少なくとも１つのコンピューティングデバイスと、
少なくとも１つのコンピューティングデバイスにおいて実行可能なインベントリアプリケーションと、を含むシステムであって、インベントリアプリケーションが、
少なくとも複数のマシンインスタンスのサブセット間での相互運用性を具体化するデータを取得する論理と、
データに少なくとも部分的に基づいて、マシンインスタンスのうちの１つにおいて実行される少なくとも１つのアプリケーションに関して識別を生成する論理と、を含み、
インベントリアプリケーションが、マシンインスタンスの外側で実行され、マシンインスタンスのうちの１つの内部検査を行わない、システム。
付記５．識別を生成する論理が、
データに少なくとも部分的に基づいて、識別が少なくとも１つのアプリケーションに対応する確率を計算する論理と、
確率が閾値を超えることに応答して、識別を少なくとも１つのアプリケーションに関連付ける論理と、をさらに含む、４項に記載のシステム。
付記６．データが、マシンインスタンスのうちの１つがネットワークトラフィックを承諾するオープンポート、ネットワークアドレスのセット、またはネットワーキングプロトコルのうちの少なくとも１つを含む、４項に記載のシステム。
付記７．データが、マシンインスタンスのうちの１つとマシンインスタンスのうちの明確に異なる１つとの間のネットワークトラフィックフローを定義する、マシンインスタンスのうちの１つと関連付けられたネットワークトラフィック経路指定構成を含み、識別が、ネットワークトラフィック経路指定構成に少なくとも部分的に基づいて生成される、４項に記載のシステム。
付記８．識別が、前もって生成された識別に少なくとも部分的に基づいて生成される、４項に記載のシステム。
付記９．データがオープンネットワークポートを含み、識別が、オープンネットワークポートが少なくとも１つのアプリケーションのためのデフォルトオープンネットワークポートであることに少なくとも部分的に基づいて生成される、４項に記載のシステム。
付記１０．インベントリアプリケーションが、
マシンインスタンスの前記１つに関して独立ディスクの冗長アレイ（ＲＡＩＤ）構成を取得する論理をさらに含み、
識別が、前記ＲＡＩＤ構成に少なくとも部分的に基づいて生成される、４項に記載のシステム。
付記１１．データがロードバランシング構成を含む、４項に記載のシステム。
付記１２．インベントリアプリケーションが、
マシンインスタンスのうちの１つに関連付けられた中央処理装置（ＣＰＵ）使用量、グラフィックスプロセシングユニット（ＧＰＵ）使用量、ディスク使用量、またはメモリ使用量のうちの少なくとも１つを判定する論理をさらに含み、
識別が、ＣＰＵ使用量、ＧＰＵ使用量、ディスク使用量、またはメモリ使用量に少なくとも部分的に基づいて生成される、４項に記載のシステム。
付記１３．識別が、マシンインスタンスのうちの１つのディスクサイズに少なくとも部分的に基づいて生成される、４項に記載のシステム。
付記１４．マシンインスタンスのうちの１つが、メモリ使用量の閾値、入力／出力（Ｉ／Ｏ）閾値、ＣＰＵ使用量の閾値、またはＧＰＵ使用量の閾値のうちの少なくとも１つを定義するインスタンスタイプに関連付けられ、識別が、インスタンスタイプに少なくとも部分的に基づいて生成される、４項に記載のシステム。
付記１５．データが、マシンインスタンスのサブセットに関して定義されたネットワークトラフィック許可を含む、４項に記載のシステム。
付記１６．インベントリアプリケーションが、
複数の識別のうちの１つとして識別を記憶保存する論理と、
識別に少なくとも部分的に基づいて、分析レポートを生成する論理と、をさらに含む、４項に記載のシステム。
付記１７．１つ以上のコンピューティングデバイスにおいて、少なくとも１つのアプリケーションを実行する複数のマシンインスタンスのサブセット間での動作の相互運用性を具体化するデータを取得することと、
コンピューティングデバイスにおいて、複数のマシンインスタンスの内部検査なしに、データに少なくとも部分的に基づいて少なくとも１つのアプリケーションを識別することと、を含む方法。
付記１８．少なくとも１つのアプリケーションを識別することが、
コンピューティングデバイスにおいて、各々が複数の潜在的アプリケーションアイデンティティのうちの１つに対応する複数のスコアを計算することと、
コンピューティングデバイスにおいて、最高スコアを有する潜在的アプリケーションアイデンティティのうちの１つとして、少なくとも１つのアプリケーションを識別することと、を含む、１４項に記載の方法。
付記１９．データが、ＲＡＩＤ構成、ディスクサイズ、またはディスク区分のうちの少なくとも１つを含む、１４項に記載の方法。
付記２０．マシンインスタンスのうちの１つが、メモリ使用量の閾値、入力／出力（Ｉ／Ｏ）閾値、ＣＰＵ使用量の閾値、またはＧＰＵ使用量の閾値のうちの少なくとも１つを定義するインスタンスタイプに関連付けられ、識別がインスタンスタイプに少なくとも部分的に基づいて生成される、１４項に記載の方法。
付記２１．データが、マシンインスタンスのうちの１つがネットワークトラフィックを承諾するオープンポート、ネットワークアドレスのセット、またはネットワーキングプロトコルのうちの少なくとも１つを定義する、ネットワークトラフィック許可構成を含む、１４項に記載の方法。
付記２２．コンピューティングデバイスにおいて、マシンインスタンスのサブセット間のネットワーク通信を具体化するネットワークトラフィックパターンを生成することをさらに含み、
少なくとも１つのアプリケーションの識別が、ネットワークトラフィックパターンに少なくとも部分的に基づいて行われる、１４項に記載の方法。
付記２３．  コンピューティングデバイスにおいて、データストアにおける少なくとも１つのアプリケーションの識別子を記憶することと、
コンピューティングデバイスにおいて、識別子及び複数の前もって記憶された識別子を具体化する分析レポートを生成することと、をさらに含む、１４項に記載の方法。
付記２４．データが、マシンインスタンスのサブセット間のネットワークトラフィックフローを定義するネットワークトラフィック経路指定構成を含む、１４項に記載の方法。
【００７１】
図５を参照すると、本開示の実施形態による、コンピューティング環境１０１の概略ブロック図が示される。コンピューティング環境１０１は、１つ以上のコンピューティングデバイス５０１を含む。各コンピューティングデバイス５０１は、例えば、両方ともローカルインターフェース５０７に連結されるプロセッサ５０２及びメモリ５０４を有する、少なくとも１つのプロセッサ回路を含む。この目的を果たすために、各コンピューティングデバイス５０１は、例えば、少なくとも１つのサーバコンピュータまたは同様のデバイスを含んでもよい。ローカルインターフェース５０７は、理解され得るように、例えば、添付アドレス／制御バスまたは他のバス構造を有するデータバスを含んでもよい。
【００７２】
プロセッサ５０２によって実行可能であるデータ及び数個のコンポーネントの両方がメモリ５０４に記憶される。特に、マシンインスタンス１１４、インベントリアプリケーション１１７、及び潜在的に他のアプリケーションは、メモリ５０４に記憶され、プロセッサ５０２によって実行可能である。使用量データ１３５を記憶するデータストア１１１、経路指定構成１３７、ネットワークトラフィックパターン１４１、識別知識ベース１４４、アプリケーションプロファイル１４７、及び他のデータもメモリ５０４に記憶されてよい。さらに、オペレーティングシステムは、メモリ５０４に記憶され、プロセッサ５０２によって実行可能であってもよい。
【００７３】
理解され得るように、メモリ５０４に記憶され、プロセッサ５０２によって実行可能である他のアプリケーションが存在してもよいことが理解される。本開示に記載されるいずれかのコンポーネントがソフトウェアの形態で実装される場合には、例えば、Ｃ、Ｃ＋＋、Ｃ♯、ＯｂｊｅｃｔｉｖｅＣ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、ＰＨＰ、ＶｉｓｕａｌＢａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語等のいくつかのプログラミング言語のうちのいずれか１つが用いられてもよい。
【００７４】
いくつかのソフトウェアコンポーネントが、メモリ５０４に記憶され、プロセッサ５０２によって実行可能である。この点において、用語「実行可能」は、最終的にはプロセッサ５０２によって起動され得る形式にあるプログラムファイルを意味する。実行可能プログラムの実施例は、例えば、メモリ５０４のランダムアクセス部にロードされ得るフォーマットのマシンコードに翻訳され得、プロセッサ５０２によって起動されるコピーされたプログラム、メモリ５０４のランダムアクセス部にロードされることが可能であり、プロセッサ５０２によって実行される、オブジェクトコード等の適正なフォーマットで表現されてもよいソースコード、またはプロセッサ５０２等によって実行されるメモリ５０４のランダムアクセス部において命令を生成するための、別の実行可能プログラムによって解釈されてもよいソースコードであってもよい。実行可能プログラムは、例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ハードドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカード、コンパクトディスク（ＣＤ）もしくはデジタルバーサタイルディスク（ＤＶＤ）等の光学ディスク、フロッピーディスク、磁気テープ、または他のメモリコンポーネントを含む、メモリ５０４のいずれの部分またはコンポーネントに記憶されてもよい。
【００７５】
メモリ５０４は、本開示では、揮発性及び非揮発性両方のメモリ並びにデータストレージコンポーネントを含むとして定義される。揮発性コンポーネントとは、電力損失の際、データ値を保持しないコンポーネントである。非揮発性コンポーネントとは、電力損失の際、データ値を保持するコンポーネントである。このため、メモリ５０４は、例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連付けられたフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光学ディスクを介してアクセスされるドライブ光学ディスク、適切なテープドライブを介してアクセスされる磁気テープ、及び／または他のメモリコンポーネント、またはこれらのメモリコンポーネントのうちのいずれかの２つ以上の組み合わせを含んでもよい。さらに、ＲＡＭは、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）及び他のこのようなデバイスを含んでもよい。ＲＯＭは、例えば、プログラマブルリードオンリーメモリ（ＰＲＯＭ）、消去可能プログラムマブルリードオンリーメモリ（ＥＰＲＯＭ）、電気的に消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、または他の同様なメモリデバイスを含んでもよい。
【００７６】
また、プロセッサ５０２は、複数のプロセッサ５０２及び／または複数のプロセッサコアを表してもよく、メモリ５０４は、それぞれ、並行処理回路で動作する複数のメモリ５０４を表してもよい。このような場合、ローカルインターフェース５０７は、複数のプロセッサ５０２のうちのいずれかの２つの間、いずれかのプロセッサ５０２及びメモリ５０４のいずれかの間、またはメモリ５０４等のうちのいずれかの２つの間で通信を促進する適切なネットワークであってもよい。ローカルインターフェース５０７は、例えば、ロードバランシングを行うことを含むこの通信を統合するように設計された付加的なシステムを含んでもよい。プロセッサ５０２は、電気的または他のなんらかの利用可能な構成のものであってもよい。
【００７７】
本明細書に記載されるインベントリアプリケーション１１７、及び他の種々のシステムは、上述の汎用ハードウェアによって実行されるソフトウェアまたはコードで具体化されてもよいが、代替手段として、同一のものが、専用ハードウェアまたはソフトウェア／汎用ハードウェア及び専用ハードウェアの組み合わせにおいて具体化されてもよい。専用ハードウェアで具体化される場合、各々は、いくつかの技術のうちのいずれか１つまたは組み合わせを用いる回路または状態機械として実装され得る。これらの技術は、１つ以上のデータシグナルのアプリケーション、適切な論理ゲートを有する特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他のコンポーネント等の上に種々の論理機能を実装するための論理ゲートを有する明確に異なる論理回路を含んでもよいが、これに限定されない。このような技術は概して当業者に周知であるため、本明細書では詳細には記載されない。
【００７８】
図４のフローチャートは、インベントリアプリケーション１１７の部分の実装の機能性及び動作を示す。ソフトウェアで具体化される場合、各ブロックは、モジュール、セグメント、または特定の論理機能（複数を含む）を実装するというプログラム命令を含むコードの一部を表してもよい。プログラム命令は、コンピュータシステムまたは他のシステムにおいてプロセッサ５０２等の適切な実行システムによって認識可能な数的命令を含むプログラミング言語またはマシンコードで書かれた人間が読める状態を含むソースコードの形式で具体化されてもよい。マシンコードは、ソースコード等から変換されてもよい。ハードウェアで具体化される場合、各ブロックは特定の論理機能（複数を含む）を実装する回路またはいくつかの相互接続回路を表してもよい。
【００７９】
図４のフローチャートは実行の特定の順序を示しているが、実行の順序は図示されているものと異なってもよいことが理解される。例えば、２つ以上のブロックの実行の順序は、図示される順序に関連してスクランブルをかけられてもよい。また、図４に連続的に示される２つ以上のブロックは、同時にまたは部分的に同時に実行されてもよい。さらに、いくつかの実施形態において、図４に示される１つ以上のブロックは飛ばされる、または省略されてもよい。さらに、強化されたユーティリティ、アカウンティング、性能測定、またはトラブルシューティング支援機能を提供すること等のために、いくつものカウンタ、状態変数、警告セマフォ、またはメッセージは、本開示に記載される論理フローに追加されてもよい。このような変形のすべてが本開示の範囲内にあることが理解される。
【００８０】
また、ソフトウェアまたはコードを含む、インベントリアプリケーション１１７を含む本開示に記載されるいずれの論理またはアプリケーションも、例えば、コンピュータシステムまたは他のシステム内のプロセッサ５０２等の命令実行システムによって使用される、またはそれと関連して使用されるためのいずれの持続性コンピュータ可読媒体において具体化され得る。この意味で、論理は、例えば、コンピュータ可読媒体からフェッチされ、命令実行システムによって実行され得る命令及び宣言を含む状態を含んでもよい。本開示の文脈において、「コンピュータ可読媒体」は、命令実行システムによって使用される、またはそれと関連して使用されるための、本開示に記載される論理またはアプリケーションを含む、記憶する、または維持することが可能ないずれの媒体でもあり得る。
【００８１】
コンピュータ可読媒体は、例えば、磁気、光学、または半導体媒体等の多くの物理的媒体のうちのいずれか１つを含み得る。適切なコンピュータ可読媒体のさらに特定の実施例は、磁気テープ、磁気フロッピーディスク、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、または光学ディスクを含むが、それらに限定されない。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）及びダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）を含むランダムアクセスメモリ（ＲＡＭ）であってもよい。さらに、コンピュータ可読媒体は、リードオンリーメモリ（ＲＯＭ）、プログラマブルリードオンリーメモリ（ＰＲＯＭ）、消去可能プログラマブルリードオンリーメモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、または他のタイプのメモリデバイスであってもよい。
【００８２】
本開示の上述の実施形態が、開示の原則を明確に理解するために示される実装の可能な実施例にすぎないことが強調されるべきである。多くの変形及び修正が、開示の精神及び原則から実質的に逸脱することなく、上述の実施形態（複数を含む）に対してなされてもよい。このような修正及び変形のすべては、この開示の範囲内で本明細書に含まれ、以下の特許請求の範囲によって保護されることが意図される。
【図１】
2016514334.tif 000003
【図２Ａ】
2016514334.tif 000004
【図２Ｂ】
2016514334.tif 000005
【図２Ｃ】
2016514334.tif 000006
【図２Ｄ】
2016514334.tif 000007
【図３Ａ】
2016514334.tif 000008
【図３Ｂ】
2016514334.tif 000009
【図４】
2016514334.tif 000010
【図５】
2016514334.tif 000011
【国際調査報告】
2016514334.tif 000012