(57)【要約】  コンピューティング環境でマシンインスタンスにおけるアプリケーションの使用状況及び／またはインストールを報告するだけでなく、追跡するための様々な実施形態が開示されている。マシンインスタンスは、アプリケーションを実行することができ、前記アプリケーションがインストールされている記憶ボリュームに関連付けることができる。前記アプリケーション、または前記アプリケーションに関連付けられているインストーラユーティリティは、前記アプリケーションのインストール及び／または使用状況をアプリケーション利用サービスへ報告することができる。
2016512362.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
少なくとも１つのコンピューティングデバイスと、
少なくとも１つの前記コンピューティングデバイスで実行可能なアプリケーション利用サービスと、
を含み、
前記アプリケーション利用サービスは、
ネットワークを介して使用状況レポートを取得するロジックであって、前記使用状況レポートは、コンピューティング環境でマシンインスタンスにおけるアプリケーションのインストールの使用を示し、前記マシンインスタンスは、前記コンピューティング環境における記憶ボリュームに関連付けられる、ロジックと、
前記使用状況レポートからアプリケーション識別子を抽出するロジックと、
前記使用状況レポートから記憶ボリュームブロック識別子を抽出するロジックであって、記憶ボリューム識別子は前記記憶ボリュームに関連付けられる、ロジックと、
少なくとも１つのコンピューティングデバイスと通信するデータストア内の前記記憶ボリューム識別子に関連してアプリケーション識別子を格納するロジックと、
を含む、
システム。
【請求項２】
前記記憶ボリュームブロック識別子は、前記コンピューティング環境内の他の記憶ボリュームに対して前記記憶ボリュームを一意的に特定する、請求項１に記載のシステム。
【請求項３】
前記使用状況レポートは、前記アプリケーションに関連付けられている前記マシンインスタンスで実行されるインストーラユーティリティからネットワークを介して受信される、請求項１に記載のシステム。
【請求項４】
前記インストーラユーティリティは、前記コンピューティング環境における前記記憶ボリューム上の前記アプリケーションをインストールするように構成されている、請求項３に記載のシステム。
【請求項５】
前記使用状況レポートは、前記コンピューティング環境で実行される前記アプリケーションの外部サービスからネットワークを介して受信される、請求項１に記載のシステム。
【請求項６】
前記アプリケーション利用サービスは、
前記使用状況レポートからマシンインスタンス識別子を抽出するロジックであって、前記マシンインスタンス識別子は、前記マシンインスタンスに関連付けられる、ロジックと、
前記アプリケーション識別子と前記記憶ボリューム識別子とに関連して前記マシンインスタンス識別子を格納するロジックと、
を更に含む、
請求項１に記載のシステム。
【請求項７】
前記アプリケーション利用サービスは更に、前記アプリケーション利用サービスに代わって発行されたセキュリティ証明書に少なくとも部分的に基づいて前記アプリケーションを認証するロジックを含む、請求項１に記載のシステム。
【請求項８】
前記アプリケーション識別子は、ソフトウェアベンダーに関連付けられ、前記アプリケーション利用サービスは更に、前記ソフトウェアベンダーに関連付けられているユーザインタフェースを生成するロジックを備え、前記ユーザインタフェースは、前記アプリケーション識別子に関連付けられた少なくとも１つの使用状況レポートを含む、請求項１に記載のシステム。
【請求項９】
方法であって、
少なくとも１つのコンピューティングデバイスが、コンピューティング環境でマシンインスタンス内のアプリケーションを実行し、前記アプリケーションは、前記コンピューティング環境における記憶ボリュームを利用するように構成され、
少なくとも１つのコンピューティングデバイスが、前記アプリケーションの実行に関連付けられたアプリケーション識別子を識別し、
少なくとも１つのコンピューティングデバイスが、前記記憶ボリュームに関連付けられた記憶ボリューム識別子を識別し、
少なくとも１つのコンピューティングデバイスが、前記アプリケーション識別子と前記記憶ボリューム識別子を含む使用状況レポートを生成する、
ことを含む、前記方法。
【請求項１０】
更に、ネットワークを介して少なくとも１つの他のコンピューティングデバイスが実行するアプリケーション利用サービスに前記使用状況レポートを送信することを含み、前記アプリケーション利用サービスは、データストア内に前記使用状況レポートを格納するように構成される、請求項９に記載の方法。
【請求項１１】
セキュリティ証明書を介して前記アプリケーションを前記アプリケーション利用サービスで認証することを含む、請求項１０に記載の方法。
【請求項１２】
前記使用状況レポートの生成は、少なくとも１つの前記コンピューティングデバイスにアクセス可能なソフトウェアライブラリによって提供されるアプリケーションプログラミングインタフェース（ＡＰＩ）を介して行われる、請求項９に記載の方法。
【請求項１３】
前記使用状況レポートの生成は、前記アプリケーションの外部にある少なくとも１つのコンピューティングデバイスによって実行されるプロセスで実施される、請求項９に記載の方法。
【請求項１４】
前記記憶ボリューム識別子は、前記記憶ボリューム内の少なくとも１つの記憶ブロックに格納される、請求項９に記載の方法。
【請求項１５】
請求項９に記載の方法であって、更に、
前記マシンインスタンスに関連付けられたマシンインスタンス識別子を識別し、
前記マシンインスタンス識別子を前記使用状況レポートに含める、
ことを含む、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
アプリケーションの使用状況の追跡に関する。
【背景技術】
【０００２】
ユーザが仮想コンピューティングデバイスまたは仮想マシンのインスタンスを作成することができるコンピューティング環境は、益々多様なコンピューティングタスクを実行するために使用されている。これらのインスタンスは、コンピューティング環境でのマシンインスタンスとして知られている。また、記憶ボリュームは、マシンインスタンスで使用するための大容量記憶装置として動作するコンピューティング環境で作成することができる。例えば、マシンインスタンスやデータベース、ファイルシステムまたは他の大容量記憶装置を必要とするマシンインスタンスによって実行されるアプリケーションは、このような記憶容量とリンクさせることができ、これらはアーカイブして復元することが可能である。ライセンス目的のためアプリケーションの使用状況を追跡することは、マシンインスタンス及び記憶ボリュームが作成されては破棄されるので、コンピューティング環境では困難である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
アプリケーションの使用状況の追跡を支援する。
【課題を解決するための手段】
【０００４】
態様の一つは、システムであって、少なくとも１つのコンピューティングデバイスと、少なくとも１つの前記コンピューティングデバイスで実行可能なアプリケーション利用サービスと、を含む。前記アプリケーション利用サービスは、ネットワークを介して使用状況レポートを取得するロジックであって、前記使用状況レポートは、コンピューティング環境でマシンインスタンスにおけるアプリケーションのインストールの使用を示し、前記マシンインスタンスは、前記コンピューティング環境における記憶ボリュームに関連付けられる、ロジックと、前記使用状況レポートからアプリケーション識別子を抽出するロジックと、前記使用状況レポートから記憶ボリュームブロック識別子を抽出するロジックであって、前記記憶ボリューム識別子は前記記憶ボリュームに関連付けられる、ロジックと、少なくとも１つのコンピューティングデバイスと通信するデータストア内の前記記憶ボリューム識別子に関連してアプリケーション識別子を格納するロジックと、を含む。
【発明の効果】
【０００５】
アプリケーションの使用状況の追跡を支援する。
【図面の簡単な説明】
【０００６】
【図１】本発明の様々な実施形態によるネットワーク環境を示す図である。
【図２】図１のネットワーク環境でクライアントによってレンダリングされるユーザインタフェースの本発明の様々な実施形態による一例を示す図である。
【図３】図１のネットワーク環境でクライアントによって与えられるユーザインタフェースの本発明の様々な実施形態の一例を示す図である。
【図４】図１のネットワーク環境におけるコンピューティング環境で実行されるアプリケーションの一部として実装される機能性の本発明の様々な実施形態の一例を示すフローチャートである。
【図５】図１のネットワーク環境におけるコンピューティング環境で実行されるアプリケーションの一部として実装される機能性の本発明の様々な実施形態の一例を示すフローチャートである。
【図６】本発明の様々な実施形態に従って、図１のネットワーク環境におけるコンピューティング環境で実行されるアプリケーション利用サービスの一部として実装される機能性の一例を示すフローチャートである。
【図７】本発明の様々な実施形態に従って、図１のネットワーク環境で用いられるコンピューティング環境の一例を提供する概略ブロック図である。
【発明を実施するための形態】
【０００７】
本発明の多くの態様は、以下の図面を参照することでより良く理解することができる。図面中の構成要素は必ずしも縮尺通りになっておらず、代わりに本発明の原理を明示する際に強調されている。また、図面においては類似の参照番号が、幾つかの図を通して対応する部分を指している。
【０００８】
ネットワークアクセス可能なコンピューティング環境での仮想マシンは、オンデマンドベースでコンピューティングリソースを望むユーザによって益々使用されている。例えば、ウェブサイトが仮想マシンまたはマシンインスタンスを使用してもよいし、これらはクライアントにコンテンツを生成して供給するサーバーのようなコンピューティング環境によって提供される。この意味で、マシンインスタンスは、処理能力、グラフィックス能力、メモリリソース等を変えて構成することができる仮想コンピューティング環境である。マシンインスタンスを利用することができるシナリオの別の例としては、ソーシャルネットワーキングサービスの機能を提供するために、ソーシャルネットワーキングサービスはコンピューティング環境からオンデマンドベースでマシンインスタンスを用いてもよい。いずれの場合にも、マシンインスタンスを生成することが可能であり、例えば、アクセス集中が発生したとき、必要に応じ随時コンピューティング環境によって提供される。
【０００９】
別の例として、コンピューティング環境におけるマシンインスタンスは、ユーザが所望するタスクのために十分な大規模コンピューティングシステムを有していない可能性がある場合、大規模な計算または演算を実行するためにユーザによって使用され得る。更に別の例として、コンピューティング環境でのマシンインスタンスは、リレーショナルまたは非リレーショナルデータベースにアクセスすること可能なデータベースサーバーとして使用することができる。いずれのシナリオでも、ユーザが達成しようとしている特定のタスクに適した処理能力、メモリリソース、及び他のコンピューティングリソースを有するマシンインスタンスを要求することができる。コンピューティング環境でのマシンインスタンスの他の実施例または使用例は、理解されるべきである。
【００１０】
コンピューティング環境でのマシンインスタンスに関連して、様々なサイズの記憶ボリュームが大容量記憶のために使用される。記憶ボリュームは、マシンインスタンスが生成されるとき、マシンインスタンスを伴うことが可能である。換言すれば、マシンインスタンスが生成されるときにローカル記憶ボリュームをマシンインスタンスの一部として作成することができる。このようなローカル記憶ボリュームは、これに関連するマシンインスタンスの終了後は残存しない。従って、データの永続性がユーザによって課されているマシンインスタンスの使用の要件でない場合には、ローカル記憶ボリュームが適切となり得る。ユーザは、例えば、コンピューティング環境の外側にあるデータストア内の、或いはコンピューティング環境が提供する永続記憶サービス内のマシンインスタンスによって生成されたデータをアーカイブするようにマシンインスタンスを構成することができる。
【００１１】
他のシナリオでは、マシンインスタンスの終了後も存続する記憶ボリュームが所望されることがある。それ故に、幾つかの実施形態においてコンピューティング環境は、特定のマシンインスタンスの終了及び／または障害に耐える様々なサイズ、速度、データの耐久性、及び他の属性を備えたオンデマンドベースでの永続記憶ボリュームを提供することができる。従って、そのような記憶ボリュームは、マシンインスタンスに関連付けられてユーザによって要求され、マシンインスタンスにアクセス可能な永続的大容量記憶装置として使用することができる。このような記憶ボリュームは、コンピューティング環境にアーカイブされ、ユーザに代わって生成された後続のマシンインスタンスで再利用することができる。
【００１２】
例えば、マシンインスタンスは記憶ボリュームに関連付けることができ、その後、アプリケーションや他のソフトウェアをインストールして、マシンインスタンスによって使用するために記憶ボリューム上に構成することができる。マシンインスタンスを迅速な様式またはオンデマンドベースで生成及び／または終了することが可能なコンピューティング環境では、ソフトウェアライセンスまたは課金の目的のためにアプリケーションの使用状況を追跡することは、コンピューティング環境でのサービスとしてソフトウェアを提供する独立系ソフトウェアベンダーにとっては課題となり得るものであり、ここではソフトウェアはマシンインスタンス上で実行されている。また、追跡アプリケーションの使用は、同様にコンピューティング環境によって提供される記憶ボリュームを用いるマシンインスタンス上で、このようなコンピューティング環境に使用されるソフトウェアを販売或いはライセンスすることができる他のタイプのソフトウェアベンダーにとっても課題となり得る。以下の説明では、システム及びその構成要素の一般的な記述は、同一の動作の説明に準拠してなされる。
【００１３】
図１に関しては、様々な実施形態によるネットワーク環境１００を示している。ネットワーク環境１００は、コンピューティング環境１０１、コンピューティング環境１０３及びクライアント１０４を含み、これらはネットワーク１０７を介して互いにデータ通信している。ネットワーク１０７は、例えば、インターネット、イントラネット、エクストラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、有線ネットワーク、無線ネットワーク、または他の適切なネットワーク等、または２つ以上のそのようなネットワークの任意の組み合わせを含む。
【００１４】
コンピューティング環境１０１とコンピューティング環境１０３は、それぞれ、例えば、サーバーコンピュータまたはコンピューティング能力を提供する他のシステムからなっていてもよい。代替的に、コンピューティング環境１０１及び／またはコンピューティング環境１０３は、１つまたは複数のサーバーバンク或いはコンピュータバンクや他の設備に配置されていて使用することができる複数のコンピューティング装置を使用することが可能である。このようなコンピューティングデバイスは、単一の設備に配置してもよいし、または多数の異なる地理的位置に分散してもよい。例えば、コンピューティング環境１０１及び／またはコンピューティング環境１０３は、互いにクラウドコンピューティングリソース、グリッドコンピューティングリソース、及び／または任意の他の分散型コンピューティング装置を備えた複数のコンピューティングデバイスを含むことが可能である。場合によっては、コンピューティング環境１０１及び／またはコンピューティング環境１０３は、処理、ネットワーク、記憶装置、または他のコンピューティング関連リソースの割り当てられた能力が経時的に変化し得る弾性コンピューティングリソースに対応してもよい。
【００１５】
図１に示したネットワーク環境１００の非限定的な実施例において、コンピューティング環境１０３とは、ユーザが、マシンインスタンス、記憶ボリューム、ストレージサービス、及び／または他のコンピューティングリソース等のコンピューティングリソースを要求することができる環境を意味している。いずれのコンピューティング環境も、ロードバランシング、フェイルオーバー、及び／またはフォールトトレランス目的のために、地理的に不同性な複数のコンピューティングデバイスを意味し得る。例えば、いずれのコンピューティング環境も、様々な地域、各地域のデータセンター内の様々なサーバーラック、及び様々なネットワークをまたがって様々なデータセンターに配置されているコンピューティングデバイスのクラスタで構成してもよい。
【００１６】
種々の実施形態によれば、様々なアプリケーション及び／または他の機能性は、コンピューティング環境１０１とコンピューティング環境１０３内で実行される。また、各種のデータは、コンピューティング環境１０１にアクセス可能なデータストア１１１と１１２に格納されている。同様に、ユーザに要求されるコンピューティングリソース及び／またはサービスの提供を促進するため、コンピューティング環境１０３にアクセス可能なデータストア１１２に各種のデータが格納されている。データストア１１１とデータストア１１２は、明らかなように複数のデータストアを代表するものであってもよい。データストア１１１とデータストア１１２に格納されたデータは、様々なアプリケーション及び／またはそれぞれのコンピューティング環境１０１、１０３によって実行或いは提供される以下に記載の機能エンティティの動作に関連している。
【００１７】
例えば、コンピューティング環境１０３で実行されるコンポーネントは、１つ以上のマシンインスタンス１１４、及び／または記憶ボリューム１１５を含む。加えて、本明細書では詳細に論じない他のアプリケーション、サービス、プロセス、システム、エンジン、または機能性もコンピューティング環境１０３で実行してもよい。上述したように、コンピューティング環境１０３は、マシンインスタンス１１４、記憶ボリューム１１５及び他のコンピューティングリソースまたはサービスのようなコンピューティングリソースをオンデマンドまたは必要に応じて提供する環境を意味する。幾つかのシナリオでは、ユーザは、コンピューティングリソースを排他的にコンピューティング環境１０３に確保するか或いは脇に置くこともできる。
【００１８】
マシンインスタンス１１４は、ユーザが様々なコンピューティングタスクを実行するために使用することができる仮想マシンまたはコンピューティングリソースの量子を意味する。マシンインスタンス１１４は、１つ以上のオペレーティングシステム、ユーザアプリケーション、サービス等を実行する１つまたは複数のコンピューティングデバイスを意味してもよい。言い換えれば、マシンインスタンス１１４は、実行アプリケーション１１７、サービス或いは他の機能性の実行を容易にするために、オペレーティングシステムの仮想化されたインスタンスからなるものである。各マシンインスタンス１１４は、仮想化レイヤーと通信することができ、コンピューティング環境１０３で実行されたマシンインスタンス１１４のそれぞれによってハードウェアレイヤーへのアクセスを制御する。このような仮想化レイヤーは、更に特権的ドメインを含んでいてもよい。特権的ドメインは、マシンインスタンス１１４、ハードウェアレイヤー、または他のコンポーネント間の相互作用を容易にするために、実行された他のマシンインスタンス１１４に対して別個の或いはより高いレベルのユーザ権限を持つマシンインスタンス１１４を含んでいてもよい。また、特権的ドメインは、システム管理者のようにユーザの許可されたサブセットへの特権的ドメインの動作を制限するアクセス制限からなっていてもよい。特権的ドメイン２２４は、マシンインスタンスの生成と管理を容易にすることが可能である。
【００１９】
ハードウェアレイヤーは、上記で参照したように、マシンインスタンス１１４及びそれらに関連する実行機能性の操作を容易にする様々なハードウェアコンポーネントを備えている。ハードウェアレイヤーは、ネットワークインタフェースカード、ネットワークルーティングコンポーネント、プロセッサ、メモリ、記憶装置、または他の構成要素を含んでいてもよく、これらは共に、ユーザが要求した特定のマシンインスタンス１１４内に含めることを所望するところの要求されたコンピューティング機能を提供する。例えば、処理速度、入力／出力操作能力及び他の性能属性について一定レベルを必要とするマシンインスタンス１１４は、仮想化レイヤーへの単一ハードウェアデバイスとして、コンピューティングデバイスの下層コンピューティングリソースを提供するようなハードウェアレイヤーを介して、複合コンピューティングデバイスに実装することが可能である。
【００２０】
上述したように、幾つのシナリオでは、マシンインスタンス１１４は、大容量記憶のためにローカル記憶ボリュームで構成することができる。例えば、マシンインスタンス１１４によって実行されるアプリケーション及び使用されるデータは、このようなローカル記憶ボリュームに保存することができる。その他のシナリオでは、記憶ボリューム１１５は、マシンインスタンス１１４とは別個のコンピューティング環境１０３によって要求され或いは確立され得る。言い換えれば、記憶ボリューム１１５は、マシンインスタンス１１４に関連付けられており、それと関連付けられている各マシンインスタンス１１４の終了より残存するように作成することが可能である。従って、各マシンインスタンス１１４の外側にある記憶ボリューム１１５を含む図１に示されたシナリオは、本発明の実施形態が実行可能な構成の単なる一例であることを理解すべきである。
【００２１】
従って、図１に示された実施例では、マシンインスタンス１１４は、１つ以上のアプリケーション１１７を実行するように構成されている。アプリケーション１１７は、コンピューティング環境１０３におけるマシンインスタンス１１４内で使用するために独立したソフトウェアベンダーまたは他のエンティティによって販売或いはライセンスされたソフトウェアを意味する。換言すれば、アプリケーション１１７は、記憶ボリューム１１５にインストールされ、マシンインスタンス１１４内で使用されているソフトウェアを意味する。それ故、アプリケーション１１７の様々なコピーやインストールは、アプリケーション識別子１１９を持つことが可能となる。
【００２２】
アプリケーション識別子１１９とは、アプリケーション１１７の他のコピーに対してアプリケーション１１７のコピーを一意的に識別する識別子を意味する。言い換えれば、アプリケーション識別子１１９は、ソフトウェアベンダーがアプリケーション１１７を一意的に識別するために使用することができる製品コードまたは識別子の他のタイプを意味する。バルクまたはマルチユーザライセンスのような幾つかのシナリオでは、アプリケーション１１７の複数のコピーが同一のアプリケーション識別子１１９によって構成することができることを理解すべきである。このようなシナリオでは、ソフトウェアベンダーは、使用がバルクのライセンスまたはマルチユーザライセンス契約の条項に準拠しているかどうかを決定するために、コンピューティング環境１０３内のアプリケーション１１７の使用状況を追跡することを望み得る。アプリケーション１１７は、コンピューティング環境１０３のマシンインスタンス１１４内で実行される任意のソフトウェア、ロジック、サービス、または他の機能性を含み得る。アプリケーション１１７の実施例は、Ｗｅｂアプリケーション、Ｗｅｂサービス、サーバーアプリケーション、または他の機能性を含んでもよい。
【００２３】
記憶ボリューム１１５は、マシンインスタンス１１４にアクセス可能な大容量記憶リソースを意味する。幾つかの実施形態では、記憶ボリューム１１５は、ネットワークアクセス可能な記憶ボリュームを意味し、コンピューティング環境１０３でマシンインスタンス１１４と共に使用するためのファイルシステムまたはブロックレベルストレージボリュームを提供する。記憶ボリューム１１５は記憶ボリュームブロックデータ１２４からなり、これはマシンインスタンス１１４のオペレーティングシステムによって、または対応するマシンインスタンスによって実行されるアプリケーション１１７で使用するために、記憶ボリューム１１５内の記憶ブロックを意味する。例えば、マシンインスタンス１１４が作成され、アプリケーションストレージ、データストレージ、キャッシュファイルストレージ、オペレーティングシステムの使用、または考えられ得る他の用途のように、マシンインスタンス１１４の大容量記憶ニーズに合わせて記憶ボリューム１１５に関連付けることが可能である。
【００２４】
また、記憶ボリューム１１５は１つまたは複数の記憶ボリュームのブロック識別子１２７によって構成され、これが記憶ボリューム１１５内の実際の記憶ブロックに書き込まれ、または関連付けられる識別子を表す。幾つかの実施形態では、コンピューティング環境１０３内の他の記憶ボリューム１１５に対して記憶ボリューム１１５を一意的に特定する記憶ボリューム識別子で構成することができる。他の実施形態では、記憶ボリュームのブロック識別子１２７は、コンピューティング環境１１５内の他の記憶ボリューム１１５において、他の記憶ブロックに対して記憶ボリュームブロックデータ１２４及び記憶ボリューム１１５内で１つ以上の記憶ブロックを一意的に識別することができる。また、記憶ボリューム１１５は、要求に応じて記憶ボリュームのブロック識別子１２７またはこのような記憶ボリューム識別子を対応するマシンインスタンス１１４へ提供するように構成される。幾つかの実施形態では、記憶ボリュームのブロック識別子１２７は、記憶ボリューム１１５内の１つまたは複数の記憶ブロックを一意的に識別するものであるか、または他の記憶ボリューム１１５に対して記憶ボリューム１１５を一意的に識別するものであるかに拘らず、それが関連付けられている記憶ボリューム１１５中の１つまたは複数の記憶ブロックに格納することができる。
【００２５】
また、マシンインスタンス１１４は、使用アプリケーションプログラミングインタフェース（ＡＰＩ）１２９を用いて構成することができ、これはソフトウェアライブラリを備えていて、アプリケーション１１７の使用は以下に更に詳細に説明するようにソフトウェアライブラリを介して報告することができる。使用状況ＡＰＩ１２９は、与えられたアプリケーション１１７並びにマシンインスタンス１１４の代わりにアプリケーション１１７がインストールされた記憶ボリュームのブロック識別子１２７または記憶ボリューム識別子のためにアプリケーション識別子１１９を取得するように構成され、双方の識別子をアプリケーション１１７の使用状況を追跡するサービスに報告する。また、使用状況ＡＰＩ１２９は、アプリケーション１１７並びに追跡の使用目的でアプリケーション１１７がインストールされて構成される環境に関連付けられた任意の他のメタデータを実行しているマシンインスタンス１１４に関連する識別子を取得するように構成することができる。使用状況ＡＰＩ１２９を使用して得られたデータは、アプリケーション１１７の使用状況を追跡するために報告されることが可能になる。
【００２６】
使用状況ＡＰＩ１２９は、マシンインスタンス１１４によって実行されるアプリケーション１１７への１つまたは複数のＡＰＩ呼び出しを介してアクセス可能なソフトウェアライブラリとして、或いはマシンインスタンス１１４によって実行されるスタンドアロンプロセスとして実装することができる。幾つかの実施形態において使用状況ＡＰＩ１２９は、アプリケーション１１７によるＷｅｂサービス呼び出しを介してアクセスされたネットワークアクセス可能なサービスとして実装したスタンドアロンサービスを意味する。上述したように、使用状況ＡＰＩ１２９の動作とアプリケーション１１７の使用状況を追跡するサービスについては、以下で更に詳細に説明する。
【００２７】
コンピューティング環境１０３のデータストア１１２は、データをアーカイブすることができる１つまたは複数の大容量記憶システムまたはデバイスを意味する。データストア１１２は、データ格納及びデータ耐久性のために様々な地理的区域及び種々のデータセンターに設置されている複数のコンピューティングデバイスを意味する。本開示の文脈では、データストア１１２に格納されているデータは、例えば、記憶ボリューム１１５に対応する記憶ボリュームアーカイブ１３４を含む。記憶ボリュームアーカイブ１３４の各々は、アーカイブブロックデータ１３６を含み、これは特定の記憶ボリューム１１５に対応する記憶ボリュームブロックデータ１２４を意味する。また、記憶ボリュームアーカイブ１３４の各々は、記憶ボリューム識別子１２７及び／または記憶ボリューム１１５に関連付けられた識別子に対応する１つまたは複数のアーカイブされた識別子１３８を含む。
【００２８】
このようにして、記憶ボリューム１１５は対応するマシンインスタンス１１４の終了時にアーカイブすることができるが、記憶ボリュームのブロック識別子１２７並びに記憶ボリューム１１５に対応する記憶ボリュームブロックデータ１２４は新しい記憶ボリューム１１５に復元することができ、この新たな記憶ボリューム１１５は、もしユーザまたはマシンインスタンス１１４によって要求された場合、コンピューティング環境１０３によって作成されるものである。しかし乍ら、記憶ボリューム１１５のコンテンツが新しく生成された第２の記憶ボリューム１１５にコピーされた場合には、第２の記憶ボリュームは、異なる記憶ボリュームのブロック識別子１２７を有している必要がある。
【００２９】
例えば、コンピューティング環境１０１で実行されるコンポーネントは、アプリケーション利用サービス１４１を含んでいる。加えて、本明細書では詳細に論じない他のアプリケーション、サービス、プロセス、システム、エンジン、または機能性もまたコンピューティング環境１０１で実行することができる。アプリケーションの使用サービス１４１は、コンピューティング環境１０３内におけるアプリケーション１１７の使用を追跡するために実行される。
【００３０】
利用するＡＰＩ１２９は、少なくともアプリケーション識別子１１９並びにアプリケーション１１７がインストールされている記憶ボリューム１１５に関連付けられた記憶ボリュームのブロック識別子１２７を含んだ利用状況レポート１４７を生成する。使用状況レポート１４７は、アプリケーション１１７を実行するマシンインスタンス１１４に関連付けられた識別子、ソフトウェアベンダーに関連する識別子、マシンインスタンス１１４及び／または記憶ボリューム１１５が実行されるマシンまたはマシンのクラスタに関連付けられた地理情報など他の情報やメタデータを含んでいてもよい。使用状況ＡＰＩ１２９は、アプリケーション１１７に関連付けられているインストーラユーティリティによってアプリケーション１１７がインストールされている場合に、使用状況レポート１４７を生成するために呼び出すことが可能である。
【００３１】
また、使用状況レポート１４７は、アプリケーション１１７の起動時にアプリケーション１１７によって呼び出されたとき、使用状況ＡＰＩ１２９を利用することで生成可能である。例えば、アプリケーション１１７の起動時に、アプリケーション１１７は、このアプリケーションが特定の記憶ボリューム１１５へインストールされているかについて（例えば、アプリケーション１１７によって記憶ボリューム１１５にセットされているか或いは書き込まれているフラッグを介して）以前に報告されているか否かを判断することができる。もし、そのインストールが以前に報告されていない場合、アプリケーション１１７は、ＡＰＩ１２９が使用状況レポート１４７を生成し、使用状況サービス１４１に使用状況レポートを送信することを要求することができる。
【００３２】
アプリケーションの使用サービス１４１は、使用状況ＡＰＩ１２９を利用して生成された使用状況レポート１４７を取得する。アプリケーションの使用サービス１４１は使用状況レポート１４７からアプリケーション識別子１１９及び記憶ボリュームのブロック識別子１２７を抽出し、使用状況レポート１４７からデータをデータストア１１１に記憶する。また、アプリケーション利用サービス１４１は使用状況レポート１４７からアプリケーション１１７を実行するマシンインスタンス１１４に関連付けられている識別子のような他の情報を、或いはコンピューティング環境からマシンインスタンス１１４や記憶ボリューム１１５等に関する他のメタデータを抽出することができ、これらをデータストア１１１に格納することが可能である。
【００３３】
データストア１１１に格納されているデータは、例えば、使用データ１４８を含んでおり、ここでは使用データ１４８に対応する各記録には、記憶ボリュームのブロック識別子１４９、アプリケーション識別子１５１、及び潜在的に他のデータが含まれている。上述のように、アプリケーション利用サービス１４１は、マシンインスタンス１１４におけるアプリケーション１１７のインストール及びコンピューティング環境１０３における記憶ボリューム１１５に対応した使用状況レポート１４７を受信することに応答して使用データ１４８を記憶することができる。
【００３４】
クライアント１０４は、ネットワーク１０７に接続することができる複数のクライアントデバイスの典型である。クライアント１０４には、例えば、コンピュータシステムのようなプロセッサベースのシステムが含まれてもよい。このようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、携帯電話、スマートフォン、セットトップボックス、音楽プレーヤー、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子ブックリーダー、または同様な機能を備えたその他のデバイスの形態で実施することができる。
【００３５】
クライアント１０４は、クライアントアプリケーション１５７及び／またはその他のアプリケーション等の様々なアプリケーションを実行するように構成されてもよい。クライアントアプリケーション１５７は、例えば、コンピューティング環境１０１及び／または他のサーバーによって提供されるネットワークコンテンツにアクセスするために、クライアント１０４内で実行されてもよい。クライアントアプリケーション１５７は、例えば、ブラウザ、モバイルアプリケーション等に対応させることができる。クライアントアプリケーション１５７は、コンピューティング環境１０３内で実行される特定のアプリケーション１１７に対応する使用データ１４８にユーザがアクセスすることを可能にする。クライアント１０４は、例えば、電子メールアプリケーション、ソーシャルネットワーキングアプリケーション、及び／または他のアプリケーション等のクライアントアプリケーション１５７の域を越えてアプリケーションを実行するように構成されることが可能である。
【００３６】
次に、ネットワーク環境１００の様々なコンポーネントの動作の一般的な説明を記す。始めに、コンピューティング環境１０３内の記憶ボリューム１１５に関連付けてマシンインスタンス１１４によって実行されるアプリケーション１１７は、上述したように使用状況ＡＰＩ１２９を使用して生成された使用状況レポート１４７を介してその使用をアプリケーション使用サービス１４１に報告するように構成することができる。幾つかの実施形態では、アプリケーション１１７は、その使用を報告するために使用状況ＡＰＩ１２９を介して搭載することができる。他の実施形態では、特定のアプリケーション１１７がインストール及び／または実行された場合、マシンインスタンス１１４によって実行される別のサービスを監視することができる。使用状況レポート１４７は、アプリケーション１１７がマシンインスタンス１１４及び記憶ボリューム１１５にインストールされるたびに（例えば、アプリケーション１１７に関連付けられているインストーラユーティリティにより）、アプリケーション１１７が実行されるたびに定期的に（例えば、毎週、毎月、変数Ｎ毎の実行）、或いは任意の他の頻度で生成することができる。従って、アプリケーション１１７は、ＡＰＩ１２９がアプリケーション１１７のインストール及び／または使用に対応する使用状況レポート１４７を生成するよう要求することができる。このような要求は、アプリケーションに関連付けられたアプリケーション識別子１１９並びにアプリケーション１１７がインストールされている記憶ボリューム１１５に関連付けられた記憶ボリュームのブロック識別子１２７を含んでもよい。
【００３７】
使用状況ＡＰＩ１２９は、アプリケーションの使用サービス１４１に送信される使用状況レポート１４７にアプリケーション識別子１１９及び／または記憶ボリュームのブロック識別子１２７を組み込むことができる。アプリケーション１１７は、使用状況レポート１４７を生成するために、使用状況ＡＰＩ１２９への自身の要求に他のデータを提供することができる。例えば、上述のようにコンピューティング環境１０３において、他のマシンインスタンス１１４に対するマシンインスタンス１１４を一意的に識別するマシンインスタンス１１４に関連付けられた識別子は、使用状況ＡＰＩ１２９への要求に組み込むことができ、その後、使用状況レポート１４７に組み込むことができる。追加の実施例としては、アプリケーション識別子１１９とは別個のベンダーに関連する識別子も使用状況レポート１４７に組み込んでもよい。
【００３８】
使用状況ＡＰＩ１２９は、その後アプリケーションの使用サービス１４１へ使用状況レポート１４７を送信する。幾つかの実施態様では、使用状況ＡＰＩ１２９は、アプリケーションのメーカーに提供されているセキュリティ証明書または他の認証資格を介して自身を認証することができる。次に、アプリケーションの使用サービス１４１は、使用状況レポート１４７から抽出されたデータを使用データ１４８としてデータ記憶装置１１１に格納することができる。また、アプリケーションの使用サービス１４１は、クライアント１０４によって実行されるクライアントアプリケーション１５７に送信されるユーザインタフェースを生成することができ、ここでユーザは特定のアプリケーション１１７に関連する使用データ、特定のアプリケーション識別子１１９、特定のソフトウェアベンダー、或いは使用状況データ１４８をソートすることが可能な任意の他のカテゴリを閲覧することが可能である。アプリケーションの使用サービス１４１は、クライアントアプリケーション１５７によってレンダリングされるユーザインタフェース以外の他の形態において、クライアントアプリケーション１５７によって閲覧するためにクライアント１０４に送信される報告データを生成することができる。
【００３９】
図２〜３は、アプリケーションの使用サービス１４１によって生成されクライアント１０４にレンダリングされることができるユーザインタフェースを示している。図示されたユーザインタフェースは、コンピューティング環境１０３における特定のアプリケーション１１７の実行及び／またはインストールに関連した使用状況レポート１４７からのアプリケーションの使用サービス１４１によってデータストア１１１から得られた使用データ１４８を組み込む。
【００４０】
図２は、アプリケーションの使用サービス１４１によって生成され、クライアントアプリケーション１５７によってクライアント１０４上でレンダリングされるユーザインタフェース２０１を示している。図２は、アプリケーションの使用サービス１４１またはクライアント１０４上で実行されるブラウザクライアントアプリケーション１５７によってレンダリングするための使用データ１４９へのアクセスを有する任意の他のアプリケーションによって提供されるネットワークページの典型を示している。別の態様として、図２は専用クライアントアプリケーション１５７によってレンダリングされるユーザインタフェースの典型を示すものである。図示の実施例では、ユーザインタフェース２０１は、アプリケーション２０３に関連付けられたコンピューティング環境１０３からの使用情報を含んでいる。図示された実施例におけるユーザインタフェース２０１は、クライアント１０４によって実行されるブラウザでアクセスされるユニフォームリソースロケータ（ＵＲＬ）２０５を用いてアクセスすることができる。アプリケーションの使用サービス１４１が、他の形式で使用状況データ１４８をクライアント１０４に提供できること、そしてアプリケーション１１７に関連付けられている使用状況データ１４８のブラウザでアクセス可能なレポートの図示された実施例が単なる一例に過ぎないことは理解されるべきである。
【００４１】
従って、図２のユーザインタフェース２０１に示されるように、アプリケーションの使用サービス１４１は、それぞれのアプリケーション識別子１５１、記憶ボリュームのブロック識別子１４９、並びに使用状況ＡＰＩ１２９による使用状況レポート１４７に含まれているコンピューティング環境１０３のマシンインスタンス１１４内におけるアプリケーション１１７の特定のインストール及び／または実行に関連したその他の情報が含まれている特定のアプリケーション１１７のために使用データ１４８を取得することができる。加えて、インタフェース２０１は、ディテールズハイパーリンク２１４を介してユーザがアプリケーション１１７の特定のインストール及び／または実行に関する詳細情報を閲覧できるようにすることが可能であり、ディテールズハイパーリンクは、例えば、実行時間、インストール日、或いはアプリケーション１１７に関連した使用状況レポート１４７に含まれる使用に関する任意の他のメタデータ等のメタデータを提供してもよい。
【００４２】
図３は、アプリケーションの使用サービス１４１によって生成され、クライアントアプリケーション１５７によってクライアント１０４上でレンダリングされるユーザインタフェース３０１の代替的な実施例を示している。図３は、アプリケーションの使用サービス１４１、或いはクライアント１０４上で実行されるブラウザクライアントアプリケーション１５７によってレンダリングするため使用データ１４９へのアクセスを有する任意の他のアプリケーションの典型としてもよい。代替的には、図３は、専用クライアントアプリケーション１５７によってレンダリングされるユーザインタフェースの典型としてもよい。図３の実施例では、行３０２及び３０４に示されるように、使用データ１４８は、同一のアプリケーション識別子１１９を有するアプリケーション１１７の複数のインストール及び／または実行があったことを反映している。
【００４３】
しかし乍ら、アプリケーション１１７のこれらのマルチインストール及び／または実行は、異なる記憶ボリュームのブロック識別子１２７と関連しており、そのことがライセンス契約に応じて、アプリケーション１１７の許可されたインストールや実行がコンピューティング環境１０３内で行われていることを示し得る。従って、アプリケーション１１７の不正使用及び／またはライセンス契約の範囲外でのアプリケーションの使用は、製品のインストールと関連付けられているアプリケーション識別子１１９に対して、アプリケーション１１７の使用状況並びにコンピューティング環境での記憶ボリューム１１５に関連付けられた識別子を追跡することによって検出することが可能となる。
【００４４】
次に図４〜５を参照するが、図示されたものは、様々な実施形態に従って、使用状況ＡＰＩ１２９を介して使用及び／またはインストールを報告するアプリケーション１１７の一部の動作の実施例を提供するフローチャートである。図４〜５のフローチャートは、本明細書に記載のようなアプリケーション１１７の一部の動作を実行するために使用することができる機能構成の多くの異なる種類の単なる一例を提供していることが理解される。代替的には、図４〜５のフローチャートは、１つまたはそれ以上の実施形態に従い、コンピューティング環境１０３（図１）に実行される方法のステップの一例を示すものとして認識することができる。
【００４５】
図４のボックス４０１から始まり、アプリケーション１１７、またはアプリケーション１１７のインストーラユーティリティは、アプリケーション１１７を実行しているマシンインスタンス１１４に関連付けられた記憶ボリューム１１５にアプリケーション１１７のコピーをインストールする。インストーラユーティリティのワークフローの一部として、アプリケーション１１７は、そのインストールを、特定のマシンインスタンス１１４に関連して特定の記憶ボリューム１１５上に報告するように構成することができる。ボックス４０３では、アプリケーション１１７は、記憶ボリューム１１５に関連付けられた記憶ボリュームのブロック識別子１２７及び／またはアプリケーション１１７がインストールされた記憶ボリューム１１５内の１つまたは複数のブロックを取得する。ボックス４０５では、アプリケーション１１７は、記憶ボリューム１１５にインストールされているアプリケーション１１９のコピーに関連付けられたアプリケーション識別子１１９を取得する。ボックス４０７においては、アプリケーション１１７は、使用状況ＡＰＩ１２９を介して、アプリケーションのインストールをアプリケーション利用サービス１４１へ報告するための使用状況レポート１４７を生成する。
【００４６】
図５は、使用状況ＡＰＩ１２９を介して、その使用及び／またはインストールを報告するアプリケーション１１７の別の実施例を示している。ボックス５０１では、記憶ボリューム１１５に格納されたアプリケーション１１７のコピーが、コンピューティング環境においてマシンインスタンス１１４で実行される。ボックス５０３では、アプリケーション１１７は、その使用及び／またはインストールが以前に報告されているかどうか、現在の使用状況やインストールが、アプリケーション１１７の構成されている報告スケジュールに従って報告することが要求されているか否かを判定する。
【００４７】
そうでない場合には、使用状況をアプリケーションの使用サービス１４１に報告するアプリケーション１１７の一部は終了する。もしそうであれば、次にボックス５０５において、アプリケーション１１７は、記憶ボリューム１１５に関連する記憶ボリュームのブロック識別子１２７及び／またはアプリケーション１１７がインストールされている記憶ボリューム１１５内の１つまたは複数のブロックを取得する。ボックス５０７では、アプリケーション１１７は、記憶ボリューム１１５にインストールされているアプリケーション１１９のコピーに関連付けられたアプリケーション識別子１１９を取得する。ボックス５０９では、使用状況ＡＰＩ１２９を介して、アプリケーション１１９は使用状況レポート１４７を生成し、これがアプリケーションのインストールをアプリケーション利用サービス１４１に報告する。その後、アプリケーション１１７の一部は終了する。
【００４８】
次に図６を参照するが、図示されたものは、様々な実施形態によるアプリケーションの使用サービス１４１の一部の動作の一実施例を示すフローチャートである。図６のフローチャートは、本明細書に記載されるようにアプリケーション使用サービス１４１の一部の動作を実行するために使用することができる機能構成の多くの異なるタイプの中で単に一実施例を提供していることが理解される。代替例として、図６のフローチャートは、１つまたは複数の実施形態に従ったコンピューティング環境１０１で実行される方法のステップの一例を示すものとして見ることができる。
【００４９】
ボックス６０１から始まるが、アプリケーションの使用状況サービス１４１は、コンピューティング環境１０３からマシンインスタンス１１４内のアプリケーション１１７及び／または利用するＡＰＩ１２９を介して使用状況レポート１４７を受信する。ボックス６０３では、アプリケーションの使用状況サービス１４１が使用状況レポート１４７からアプリケーション識別子１５１を抽出する。ボックス６０５では、アプリケーションの使用状況サービス１４１が使用状況レポートから記憶ボリュームのブロック識別子１４９を抽出する。ボックス６０７では、アプリケーションの使用状況サービス１４１が、データストア１１１内の使用データ１４８として記憶ボリュームのブロック識別子１４９及びアプリケーション識別子１５１を格納する。
【００５０】
本発明の実施形態は次の文節の観点から説明することができる。
１．コンピューティングデバイスで実行可能なプログラムを具体化する非一時的なコンピュータ可読媒体であって：
使用状況レポートの送信を容易にするために、ネットワークサービスコールを定義するアプリケーションプログラムインタフェースを提供するコードと、
コンピューティング環境でマシンインスタンスにおけるアプリケーションの実行またはインストールのうちの少なくとも１つに関連する使用状況レポートをアプリケーションプログラムインタフェースを介して取得したコードであって、マシンインスタンスは、コンピューティング環境内の記憶ボリュームに関連しており、ここでアプリケーションが記憶ボリュームにインストールされる、コードと、
使用状況レポートからアプリケーション識別子を抽出するコードであって、アプリケーション識別子は、アプリケーションの他のインストールに対してアプリケーションの１つのインストールに一意的に関連付けられる、コードと、
使用状況レポートから記憶ボリュームのブロック識別子を抽出するコードであって、記憶ボリュームのブロック識別子は、コンピューティング環境内の他の記憶ボリュームに対して記憶ボリュームに一意的に関連付けられ、記憶ボリュームのブロック識別子は、記憶ボリューム内の他の記憶ブロックに対して記憶ブロックの１つに更に一意的に関連付けられるコードと、
データストア内の記憶ブロックボリューム識別子に関連してアプリケーション識別子を格納するコードと、を備える非一時的なコンピュータ可読媒体。
２．プログラムは、更にアプリケーションに関連する複数の使用状況レポートをレンダリングするユーザインタフェースを生成するコードからなる、文節１に記載の非一時的なコンピュータ可読媒体。
３．文節１に記載の非一時的なコンピュータ可読媒体であって、プログラムは更に、
使用状況レポートからマシンインスタンス識別子を抽出するコードであって、マシンインスタンス識別子は、コンピューティング環境内の他のマシンインスタンスに対してマシンインスタンスに一意的に関連付けられるコード、及び
マシンインスタンス識別子を、データストア内のアプリケーション識別子と記憶ボリュームのブロックス識別子に関連付けるコードからなる、文節１に記載の非一時的なコンピュータ可読媒体。
４．システムであって、
少なくとも１つのコンピューティングデバイスと、
少なくとも１つのコンピューティングデバイスで実行可能なアプリケーションの使用状況サービスとからなり、アプリケーションの使用状況サービスは、
ネットワークを介して使用状況レポートを取得するロジックであって、使用状況レポートが、コンピューティング環境でマシンインスタンスにおけるアプリケーションのインストールの使用を示し、マシンインスタンスは、コンピューティング環境における記憶ボリュームに関連付けられる、ロジックと、
使用状況レポートからアプリケーション識別子を抽出するロジックと、
使用状況レポートから記憶ボリュームブロック識別子を抽出するロジックであって、記憶ボリューム識別子は記憶ボリュームと関連付けられる、ロジックと、
少なくとも１つのコンピューティングデバイスと通信するデータストア内の記憶ボリューム識別子に関連してアプリケーション識別子を格納するロジックと、からなるシステム。
５．記憶ボリュームのブロック識別子が、コンピューティング環境内の他の記憶ボリュームに対して記憶ボリュームを一意的に識別する、文節４に記載のシステム。
６．前記記憶ボリュームのブロック識別子が、記憶ボリューム内の少なくとも１つのブロックを一意的に識別する、文節４に記載のシステム。
７．記憶ボリュームのブロック識別子は、記憶ボリューム内のストレージの少なくとも１つのブロックに格納されている、文節４に記載のシステム。
８．使用状況レポートは、アプリケーションに関連付けられているマシンインスタンスによって実行されるインストーラユーティリティからネットワークを介して受信される、文節４に記載のシステム。
９．インストーラユーティリティは、コンピューティング環境で記憶ボリュームにアプリケーションをインストールするように構成されている、文節８に記載のシステム。
１０．アプリケーションは、アプリケーションに関連付けられているインストーラユーティリティの他のコピーに対して前記インストーラユーティリティのコピーに一意的に関連付けられている、文節８に記載のシステム。
１１．使用状況レポートがコンピューティング環境で実行されるアプリケーションの外部サービスからネットワークを介して受信される、文節４のシステム。
１２．文節４に記載のシステムであって、前記アプリケーション利用サービスは更に、
使用状況レポートからマシンインスタンス識別子を抽出するロジックであって、マシンインスタンス識別子は、マシンのインスタンスに関連付けられている、ロジックと、
アプリケーション識別子と記憶ボリューム識別子に関連してマシンインスタンス識別子を格納するロジックと、からなるシステム。
１３．アプリケーション利用サービスは、更にアプリケーション使用サービスに代わって発行されたセキュリティ証明書に少なくとも部分的に基づいてアプリケーションを認証するロジックからなる、文節４に記載のシステム。
１４．アプリケーション識別子がソフトウェアベンダーに関連付けられており、アプリケーションの使用サービスは、更にソフトウェアベンダーに関連するユーザインタフェースを生成するロジックを備え、ユーザインタフェースは、アプリケーション識別子に関連付けられた少なくとも１つの使用状況レポートを含む、文節４に記載のシステム。
１５．方法であって、
少なくとも１つのコンピューティングデバイスによってコンピューティング環境でマシンインスタンス内のアプリケーションを実行し、コンピューティング環境における記憶ボリュームを利用するようにアプリケーションを構成し、
少なくとも１つのコンピューティングデバイスによってアプリケーションの実行に関連付けられたアプリケーション識別子を識別し、
少なくとも１つのコンピューティングデバイスによって記憶ボリュームに関連付けられた記憶ボリューム識別子を識別し、そして
少なくとも１つのコンピューティングデバイスによってアプリケーション識別子と記憶ボリューム識別子を含む使用状況レポートを生成することからなる方法。
１６．更に、ネットワークを介して少なくとも１つの他のコンピューティングデバイスによって実行されるアプリケーションの利用サービスに使用状況レポートを送信することからなり、アプリケーションの使用状況サービスは、使用状況レポートをデータストアに格納するように構成される、文節１５に記載の方法。
１７．更に、セキュリティ証明書を介してアプリケーションをアプリケーション利用サービスで認証することからなる、文節１６に記載の方法。
１８．使用状況レポートの生成が、少なくとも１つのコンピューティングデバイスにアクセス可能なソフトウェアライブラリによって提供されるアプリケーションプログラミングインタフェース（ＡＰＩ）を介して行われる、文節１５に記載の方法。
１９．使用状況レポートの生成が、アプリケーションの外部にある少なくとも１つのコンピューティングデバイスによって実行されるプロセスで行われる、文節１５に記載の方法。
２０．使用状況レポートの生成が、アプリケーションに関連付けられているインストーラユーティリティによって行われる、文節１５に記載の方法。
２１．記憶ボリューム識別子が、コンピューティング環境内の他の記憶ボリュームに対して記憶ボリュームを一意的に識別する、文節１５に記載の方法。
２２．記憶ボリューム識別子が、一意的に記憶ボリューム内の少なくとも１つのブロックを識別する、文節１５に記載の方法。
２３．記憶ボリューム識別子が、記憶ボリューム内の少なくとも１つのブロックに格納される、文節１５に記載の方法。
２４．更に、
マシンインスタンスに関連付けられたマシンインスタンス識別子を識別することからなり、及び
使用状況レポート内のマシンのインスタンス識別子を含む、文節１５に記載の方法。
【００５１】
図７を参照するが、この図には本発明の実施形態によるコンピューティング環境１０１の概略ブロック図が示されている。コンピューティング環境１０１は、１つまたは複数のコンピューティングデバイス７０１を含んでいる。各コンピューティングデバイス７０１は、例えば、プロセッサ７０２とメモリ７０４を有する少なくとも１つのプロセッサ回路を含み、これらはローカルインタフェース７０７に接続されている。この目的を達成するため、各コンピューティングデバイス７０１は、例えば、少なくとも１つのサーバーコンピュータ或いは同様なデバイスを備えていてもよい。認識され得るように、ローカルインタフェース７０７は、例えば、添付のアドレス／制御バスまたは他のバス構造を伴うデータバスを備えていてもよい。
【００５２】
メモリ７０４に格納されているものは、データとプロセッサ７０２によって実行可能な幾つかのコンポーネントとの両方である。具体的には、メモリ７０４に格納されプロセッサ７０２によって実行可能なものは、アプリケーションの使用状況サービス１４１、及び潜在的には他のアプリケーションである。同様に、メモリ７０４に格納されているものは、使用データ１４８及び他のデータを格納するデータストア１１１であってもよい。また、オペレーティングシステムは、メモリ７０４に格納されプロセッサ７０２によって実行可能であってもよい。
【００５３】
明らかなように、メモリ７０４に格納されプロセッサ７０２によって実行が可能な他のアプリケーションが存在し得ることが理解される。本明細書で考察される任意のコンポーネントがソフトウェアの形で実装されている場合には、多数のプログラミング言語のいずれか１つが、例えば、Ｃ、Ｃ＋＋、Ｃ＃、オブジェクティブＣ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、ＰＨＰ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語が用いられてもよい。
【００５４】
多数のソフトウェアコンポーネントがメモリ７０４に格納され、プロセッサ７０２によって実行される。この点において、用語「実行可能な」とは、最終的にはプロセッサ７０２によって動作することができる形態であるプログラムファイルを意味する。実行可能なプログラムの例としては、例えば、メモリ７０４のランダムアクセス部分にロードすることができ、プロセッサ７０２によって実行することができる形式のマシンコードに変換することが可能なコンパイルされたプログラム、メモリ７０４のランダムアクセス部分にロードすることができ、プロセッサ７０２によって実行可能なオブジェクトコードのような適切なフォーマットで表すことができるソースコード、或いはプロセッサ７０２によって実行されるべきメモリ７０４のランダムアクセス部に指示を生成する別の実行可能プログラムによって翻訳されるソースコード等である。実行可能プログラムは、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカード、コンパクトディスク（ＣＤ）またはデジタル多用途ディスク（ＤＶＤ）のような光ディスク、フロッピー（登録商標）ディスク、磁気テープ、または他のメモリコンポーネントを含むメモリ７０４の任意の部分またはコンポーネントに格納してもよい。
【００５５】
メモリ７０４は、揮発性と不揮発性の両方を含み、データストレージコンポーネントとして定義される。揮発性コンポーネントは、電力の損失時にデータを保持しないものである。不揮発性コンポーネントは、電源が失われてもデータを保持するものである。従って、メモリ７０４は、例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカードリーダーを介してアクセスされるメモリカード、関連するフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、及び／または他のメモリコンポーネント、或いはこれらのメモリコンポーネントの任意の２つまたはそれ以上の組み合わせで構成されてもよい。加えて、ＲＡＭは、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）及び他のそのようなデバイスからなっていてもよい。ＲＯＭは、例えば、プログラム可能な読み出し専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、または他の同様なメモリデバイスで構成してもよい。
【００５６】
また、プロセッサ７０２とはマルチプロセッサ７０２及び／またはマルチプロセッサコアを意味し、メモリ７０４とはそれぞれ並列処理回路で動作するマルチメモリ７０４を意味し得る。このような場合には、ローカルインタフェース７０７は、マルチプロセッサ７０２のいずれか２つの間、任意のプロセッサ７０２と任意のメモリ７０４との間、或いはメモリ７０４のいずれか２つの間等の通信を容易にする適切なネットワークとすることができる。ローカルインタフェース７０７は、例えば、ロードバランシングを行うことを含んでおり、この通信を調整するように設計された追加のシステムを備えることが可能である。プロセッサ７０２は、電気的な或いは幾つかの他の利用可能な構造であってもよい。
【００５７】
アプリケーション使用サービス１４１と、本明細書に記載の他の様々なシステムは、上述したように、汎用ハードウェアによって実行されるソフトウェアまたはコードで具現化してもよいが、代替案として、同じことを専用のハードウェアまたはソフトウェア／汎用ハードウェア及び専用ハードウェアの組み合わせで具現化してもよい。専用ハードウェアで具現化した場合、各々は、多くの技術のいずれか１つまたは組み合わせを使用する回路或いは状態マシンとして具現化することができる。これらの技術は、１つまたは複数のデータ信号を印加すると様々な論理機能を実行するための論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、或いはその他のコンポーネント等を含んでもよいが、これらに限定されるものではない。このような技術は当業者には一般的によく知られており、それ故、本明細書では詳細に説明しない。
【００５８】
図４〜６のフローチャートは、使用状況ＡＰＩ１２９を使用するアプリケーション１１７の一部並びに使用状況サービス１４１の実装の機能性と動作を示している。ソフトウェアで具現化した場合、各ブロックはモジュール、セグメント、または指定された論理機能（複数可）を実装するためのプログラム命令を含むコードの一部を意味してもよい。プログラム命令は、プログラム言語で人に可読に記述されたステートメントからなるソースコードの形で、或いはコンピュータシステムまたは他のシステムにおけるプロセッサ７０２のような適切な実行システムによって認識可能な数値命令を含むマシンコードの形で具現化してもよい。マシンコードは、ソースコード等から変換してもよい。ハードウェアで具現化した場合、各ブロックは指定された論理機能（複数可）を実装するための回路または相互接続された多数の回路を意味することになる。
【００５９】
図４〜６のフローチャートは実行の特定順序を示しているが、実行順序は図示されているものと異なってもよいことが理解されよう。例えば、２つまたはそれ以上のブロックの実行順序は、図示の順序に対してスクランブルされてもよい。また、図５に連続して示される２つまたはそれ以上のブロックは、同時に或いは部分的に同時に実行してよい。更に、幾つかの実施形態では、図４〜６に示される１つまたはそれ以上のブロックをスキップまたは省略することができる。また、ユーティリティの増強、課金処理、パフォーマンス測定、またはトラブルシューティングの補助等を提供する目的で、カウンタ、状態変数、警告セマフォ、或いはメッセージを任意の数だけ本明細書に記載の論理フローに追加することも可能である。このような変形は、本発明の範囲内である。
【００６０】
また、ソフトウェアまたはコードを含む本明細書に記載した任意のロジック或いはアプリケーションは、例えば、コンピュータシステムのプロセッサ７０２のような命令実行システム、もしくはその他のシステムによって、またはこれらのシステムに関連して使用するための非一時的なコンピュータ可読媒体に具現化することができる。この意味では、ロジックは、例えば、コンピュータ可読媒体から取り込んで命令実行システムによって実行することができる命令と宣言を含むステートメントを備えていてもよい。本発明の文脈において、「コンピュータ可読媒体」は、命令実行システムによって、または、このシステムに関連して使用するための本明細書に記載したロジックまたはアプリケーションを収容し、格納し、または保持することができる任意の媒体とすることが可能である。
【００６１】
コンピュータ可読媒体は、例えば、磁気、光学、または半導体媒体等のような多くの物理的媒体のいずれかを含み得る。適切なコンピュータ可読媒体のより具体的な実施例には、磁気テープ、磁気フロッピーディスク、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、または光ディスクが含まれることになろうが、これらに限定されない。同様にして、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）及びダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）を含むランダムアクセスメモリ（ＲＡＭ）であってもよい。更に、コンピュータ可読媒体は、読み出し専用メモリ（ＲＯＭ）、プログラマブルリードオンリーメモリ（ＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、またはメモリデバイスの他のタイプであってもよい。
【００６２】
本発明の上述した実施形態は、本発明の本旨を明確に理解するために記載した実装の可能な単なる実施例に過ぎないことを強調するべきである。本発明の精神及び本旨から実質的に逸脱することなく、多くの変形及び修正が上述した実施形態（単数または複数）に施すことができる。そのような変更及び変形の全ては、ここでは本発明の範囲内に含まれ、以下の特許請求の範囲によって保護されることを意図している。
【図１】
2016512362.tif 000003
【図２】
2016512362.tif 000004
【図３】
2016512362.tif 000005
【図４】
2016512362.tif 000006
【図５】
2016512362.tif 000007
【図６】
2016512362.tif 000008
【図７】
2016512362.tif 000009
【国際調査報告】
2016512362.tif 000010