(57)【要約】主題の開示は、アップデート情報をデバイスへ予想して送るためにデバイスのコンテキストおよびパフォーマンスの情報を監視する技術と関連する。インターフェース・コンポーネントは、クライアントから、クライアントの動作環境を示すコンテキスト情報と、動作環境に基づいてクライアントにより行われている１以上のオペレーションと関連するパフォーマンス情報とを受け取り、相関情報に基づいて、アップデート情報をクライアントへ送る。更に、サービス・コンポーネントは、相関情報を得るために、コンテキスト情報とパフォーマンス情報との間の関係を推論することができる。別の実施形態では、クライアントは、キャッシュされた情報を得られるように、キャッシュにコンテキスト情報の部分（１以上）を入れておくことができ、キャッシュされた情報の少なくとも一部を、サービス・コンポーネントの１以上の態様を含むシステムへ送ることができる。
2015501998.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
第１計算デバイスのサービス・コンポーネントにより、第２計算デバイスの動作環境の１以上の部分を示すコンテキスト情報と、ユーザーの少なくとも１つの嗜好を示すユーザー嗜好情報と、現在と過去と推論される将来とのユーザー活動のうちの少なくとも１つを示すユーザー活動情報とのうちの少なくとも１つを受け取るステップと、
前記動作環境において前記第２計算デバイスにより行われている１以上のオペレーションと関連するパフォーマンス情報を受け取るステップと、
前記コンテキスト情報、前記ユーザー嗜好情報、または前記ユーザー活動情報を、前記パフォーマンス情報と相関させることに応じて、構成情報を前記第２計算デバイスへ通信するステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記コンテキスト情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第２計算デバイスのハードウェアと前記第２計算デバイスのソフトウェアとのうちの少なくとも１つの構成を示す情報を受け取るステップを更に含む、方法。
【請求項３】
請求項１に記載の方法であって、前記コンテキスト情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第２計算デバイスの位置を示す情報を受け取るステップを更に含む、方法。
【請求項４】
請求項１に記載の方法であって、前記コンテキスト情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第２計算デバイスと通信するように結合されるネットワークの構成を示す情報を受け取るステップを更に含む、方法。
【請求項５】
請求項１に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第２計算デバイスのオペレーティング・システムと、前記第２計算デバイスのソフトウェアと、前記第２計算デバイスのファームウェアとのうちの少なくとも１つと関連するメモリの消費を示す情報を受け取るステップを更に含む、方法。
【請求項６】
請求項１に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第２計算デバイスのハードウェアと、前記第２計算デバイスのソフトウェアと、前記第２計算デバイスのオペレーティング・システムと、第２の計算デバイスのファームウェアとのうちの少なくとも１つと関連する入力または出力の帯域幅を示す情報を受け取るステップを含む、方法。
【請求項７】
請求項１に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第２計算デバイスと通信するように結合されるネットワークの帯域幅を示す情報を受け取るステップを含む、方法。
【請求項８】
請求項１に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第２計算デバイスと通信するように結合されるネットワークを介してのデータの処理と関連するレイテンシを示す情報を受け取るステップを含む、方法。
【請求項９】
請求項１に記載の方法であって、前記相関させることは、前記コンテキスト情報の１以上の部分から前記パフォーマンス情報の少なくとも一部の原因を推論することを更に含む、方法。
【請求項１０】
請求項１に記載の方法であって、前記相関させることは、
第３計算デバイスのハードウェアの構成と、前記第３計算デバイスのソフトウェアの構成と、前記第３計算デバイスのオペレーティング・システムの構成と、前記第３計算デバイスのファームウェアの構成と、前記第３計算デバイスのパフォーマンスとのうちの少なくとも１つを示す別の情報を受け取ること
を更に含む、方法。
【請求項１１】
請求項１に記載の方法であって、前記相関させることは、
前記コンテキスト情報の１以上の部分から前記パフォーマンス情報の少なくとも一部の原因を決定することと、
前記構成情報の少なくとも一部を第３計算デバイスへ通信することと
を更に含む、方法。
【請求項１２】
請求項１に記載の方法であって、前記相関させることは、
第３計算デバイスと関連する少なくとも１つの通信と関連する別の情報を受け取ることと、
前記別の情報に基づいて前記コンテキスト情報の１以上の部分から前記パフォーマンス情報の少なくとも１つの部分の原因を決定することと
を更に含む方法。
【請求項１３】
システムであって、
計算可能な読み出し可能なストレージ媒体に格納され、
クライアントから、前記クライアントの動作環境を示すコンテキスト情報、ユーザーの嗜好を示すユーザー嗜好情報、または現在、過去、または推論される将来のユーザーの活動を示すユーザー活動情報、および前記動作環境において前記クライアントにより行われている１以上のオペレーションと関連するパフォーマンス情報を受け取るように、および
相関情報に基づいて、構成情報を前記クライアントへ送るように
構成されるインターフェース・コンポーネントと、
前記相関情報を得るために、前記コンテキスト情報、前記ユーザー嗜好情報、または前記ユーザー活動情報、および前記パフォーマンス情報の間の関係を推論するように構成されるサービス・コンポーネントと
を含むシステム。
【請求項１４】
請求項１３に記載のシステムであって、前記コンテキスト情報は、前記クライアントのハードウェアと前記クライアントのソフトウェアとのうちの少なくとも１つの構成と、前記クライアントと通信するように結合されるネットワークの構成と、前記クライアントの位置を示す情報とのうちの少なくとも１つを示す情報を含み、
前記構成情報は、前記クライアントのソフトウェアをアップデートすることと、前記クライアントのハードウェアをアップデートすることとのうちの少なくとも１つに対する推奨の少なくとも１つを示す情報を含む、
システム。
【請求項１５】
請求項１３に記載のシステムであって、前記パフォーマンス情報は、
前記クライアントのオペレーティング・システムと、
前記クライアントによる、前記オペレーティング・システムと、ソフトウェアと、ファームウェアとのうちの少なくとも１つの実行と関連するメモリの消費と、
前記実行と関連する入力または出力の帯域幅と、
前記クライアントと通信するように結合されるネットワークの帯域幅と、
前記ネットワークと関連するレイテンシと
のうちの少なくとも１つを示す情報を含む、システム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  従来の計算技術は、計算デバイスで動作するが応答しない又は不適切に機能するソフトウェアと関連する情報を集める。例えば、クラッシュ報告技術は、クラッシュまたは計算デバイスでの応答を停止したアプリケーションのエラー・デバッグ後の情報を集める。更に、そのような技術は、そのような情報を分析して、使用可能なソリューションをデバイスのユーザーへ送ることができる。
【０００２】
[0002]  別の例では、従来の計算技術は、ユーザーの計算デバイスへインストールされたアプリケーション（１以上）に対しての使用可能なアップデートを示す情報をユーザーへ提供する。次に、そのような技術は、ユーザーに、使用可能なアップデートをインストールすることを促す。
【０００３】
[0003]  しかし、従来の計算技術は、数ある欠点の中のものであるが、計算デバイスのハードウェアおよび／またはソフトウェアと関連するアップデートを示す情報の通信が遅延することにより、および／またはユーザーの方での追加の努力または理解を必要とすることにより、計算デバイスと関連するユーザーのエクスペリエンス（１以上）を低下させる。
【０００４】
[0004]  現在の技術の上記の欠点は、単に、従来のシステムの幾つかの問題の概観を提供することを意図しており、網羅的であることを意図していない。従来のシステムの他の問題と、ここで説明する限定ではない様々な実施形態における対応する利点は、以下の記載を検討することにより、更に明らかになる。
【発明の概要】
【０００５】
[0005]  後続の詳細な説明および添付の図面における例示であり限定ではない実施形態の様々な態様の基礎的および一般的な理解を可能にする手助けとして、ここで、簡素化した概要を提供する。しかし、この概要は、広範囲にわたる網羅的な概観であることを意図していない。この概要の唯一の目的は、以下の様々な実施形態の詳細な説明の前置きとして、幾つかの例示であり限定ではない実施形態と関連する幾つかの概念を簡素化した形で呈示することである。
【０００６】
[0006]  １以上の実施形態および対応する開示に従うと、アップデート情報をデバイスへ予想して送るための様々な限定ではない態様が、デバイスのコンテキストおよびパフォーマンスの情報の監視と関連して開示される。
【０００７】
[0007]  例えば、実施形態は、例えばサーバーである第１計算デバイスと関連するサービス・コンポーネント（例えば、任意の形の有線サービス、ワイヤレス・サービス、例えば、クラウド・ベースのサービス、デバイス・サービス、またはコンポーネント・サービスなどのようなもの、例えば、サムドライブ（thumbdrive）・サービスなどのようなもの、またはそれらの組み合わせを含むネットワーク・ベースのサービス）により、例えばネットワーク・ベースのサービスのクライアントである第２計算デバイスの動作環境の部分（１以上）を示すコンテキスト情報を受け取ること、ユーザー・パフォーマンス情報を受け取ること、またはユーザーの推論される将来の活動、現在の活動、または過去の活動についての情報を受け取ることを含む。１つの例では、コンテキスト情報は、例えば、中央処理装置（ＣＰＵ）、メモリ、ディスク・ストレージなどのようなハードウェア、および／または例えば、アプリケーション（１以上）、オペレーティング・システム（ＯＳ）などのようなソフトウェアの構成と、第２計算デバイスの位置と、第２計算デバイスなどと通信するように結合されるネットワーク、サービスなどの構成とを、含むことができる。従って、コンテキスト情報と、ユーザーのパフォーマンスと、ユーザーの活動との何れのものも、構成情報の通信のためのベースとすることができる。
【０００８】
[0008]  更に、実施形態は、動作環境において第２計算デバイスにより行われている１以上のオペレーションと関連するパフォーマンス情報を受け取ることを含む。例えば、パフォーマンス情報は、第２計算デバイスのオペレーティング・システム、第２計算デバイスのソフトウェア、第２計算デバイスのファームウェアなどと関連するメモリの消費と、オペレーティング・システム、ソフトウェア、ファームウェアなどの実行と関連する入力／出力（Ｉ／Ｏ）帯域幅と、ネットワークの帯域幅と、ネットワークなどを介してのデータの処理と関連するレイテンシとを、示すことができる。
【０００９】
[0009]  次に、コンテキスト情報とパフォーマンス情報とを相関させることに応じて、構成（またはアップデート）情報が、第２計算デバイスへ通信される。例えば、第２計算デバイスのオペレーティング・システム、ソフトウェア、ファームウェア、および／またはハードウェアをアップグレードすること、アップデートすること、アップグレードしないこと、アップデートしないことなどの推奨、提案などを、含むことができる。別の例では、構成情報は、ネットワーク、通信プロトコルなど用いることの推奨を含むことができる。
【００１０】
[0010]  １つの実施形態では、コンテキスト情報とパフォーマンス情報とを相関させることは、コンテキスト情報の一部からパフォーマンス情報の一部の原因を推論することを更に含む。別の実施形態では、相関させることは、（１）第３計算デバイスのハードウェアおよび／またはソフトウェアの構成を示す別の情報、および／または（２）第３計算デバイスのパフォーマンスを示す別の情報を受け取ることと、別の情報に基づいて構成情報を決定することとを、更に含む。
【００１１】
[0011]  更に別の実施形態では、相関させることは、コンテキスト情報の一部からパフォーマンス情報の一部の原因を決定することと、第３計算デバイス、例えば、ハードウェアおよび／またはソフトウェアのオペレーションに関する情報を受け取ることと関連するシステムへ、構成情報の一部を通信することとを、更に含む。
【００１２】
[0012]  １つの実施形態では、コンテキスト情報および／またはパフォーマンス情報と関連するハードウェアおよび／またはソフトウェアの問題（１以上）についての、第三者により行われる通信（１以上）、例えば、クエリ、サーチなどと関連する別の情報を受け取ることと、通信（１以上）と関連する別の情報に基づいて、コンテキスト情報の一部からパフォーマンス情報の一部の原因を決定することとを、更に含む。
【００１３】
[0013]  １つの限定ではない実装では、インターフェース・コンポーネントは、クライアントから、クライアントの動作環境を示すコンテキスト情報と、動作環境に基づいてクライアントにより行われるオペレーション（１以上）と関連するパフォーマンス情報とを、受け取ることができる。更に、サービス・コンポーネントは、相関情報を得るためにコンテキスト情報とパフォーマンス情報との間の関係を推論することができ、インターフェース・コンポーネントは、相関情報に基づいて、クライアントへ、構成情報またはアップデート情報を送ることができる。
【００１４】
[0014]  １つの実施形態では、コンテキスト情報は、クライアントのハードウェアおよび／またはソフトウェアの構成を示す情報、クライアントと通信できるように結合されるネットワークの構成、および／またはクライアントの位置を示す情報を含む。更に、構成情報は、クライアントのソフトウェアおよび／またはハードウェアをアップデートすること、アップグレードすること、アップデートしないこと、アップグレードしないことなどの推奨を示す情報を含む。
【００１５】
[0015]  別の実施形態では、パフォーマンス情報は、クライアントのオペレーティング・システム、クライアントのソフトウェア、および／またはクライアントのファームウェアと関連するメモリの消費を示す情報、クライアントによるオペレーティング・システム、ソフトウェア、および／またはファームウェアの実行と関連する入力／出力帯域幅を示す情報、クライアントと通信できるように結合されたネットワークの帯域幅を示す情報、および／またはネットワークと関連するレイテンシを示す情報を含む。
【００１６】
[0016]  別の限定ではない実装では、方法は、計算デバイスにより行われるオペレーション（１以上）の部分（１以上）と関連する動作環境の部分（１以上）を示すコンテキスト情報を、計算デバイスにより格納することを、含むことができる。更に、方法は、オペレーション（１以上）の部分（１以上）と関連するコンテキスト情報およびパフォーマンス情報をサービス・コンポーネントへ送ることを、含むことができる。更に、方法は、計算デバイスを構成するために、コンテキスト情報およびパフォーマンス情報に基づいて、サービス・コンポーネントから構成情報を受け取ることを、含むことができる。
【００１７】
[0017]  １つの実施形態では、コンテキスト情報を格納することは、キャッシュされた情報を得られるように、キャッシュに、コンテキスト情報の部分（１以上）を入れておくことと、キャッシュされた情報の部分（１以上）をサービス・コンポーネントへ送ることとを、更に含む。別の実施形態では、方法は、構成情報に基づいて計算デバイスのソフトウェアおよび／またはハードウェアを構成することを、含むことができる。
【００１８】
[0018]  別の実施形態では、方法は、第１計算デバイスのサービス・コンポーネントにより、複数のクライアントのそれぞれの動作環境を示すコンテキスト情報を複数のクライアントからを受け取り、その情報をデータ・ストアに格納することと、それぞれの動作環境において複数のクライアントにより行われているそれぞれのオペレーションと関連するパフォーマンス情報を受け取ることと、その情報をデータ・ベースに格納することとを、含むことができる。次に、データ・ストアを用いてコンテキスト情報とパフォーマンス情報とを相関させることに応じて、第２計算デバイスの推奨される構成を推論することができる。更に、推奨される構成を第２計算デバイスへ通信することができる。
【００１９】
[0019]  他の実施形態および様々な限定ではない例、シナリオ、および実装は、後に詳細に説明する。
[0020]  様々な限定ではない実施形態は、添付の図面を参照して更に説明する。
【図面の簡単な説明】
【００２０】
【図１】図１は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための例示の環境を示す。
【図２】図２は、別の実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための例示の環境を示す。
【図３】図３は、更に別の実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための例示の環境を示す。
【図４】図４は、実施形態に従った、サービス・アプリケーション・システムを含む例示の環境を示す。
【図５】図５は、実施形態に従った、キャッシュを含む例示の環境を示す。
【図６】図６ないし図９は、様々な実施形態に従った、例示のプロセスを示す。
【図７】図６ないし図９は、様々な実施形態に従った、例示のプロセスを示す。
【図８】図６ないし図９は、様々な実施形態に従った、例示のプロセスを示す。
【図９】図６ないし図９は、様々な実施形態に従った、例示のプロセスを示す。
【図１０】図１０は、ここで説明する様々な実施形態を実施することができる、例示的な限定的ではないネットワーク化された環境を表すブロック図である。
【図１１】図１１は、ここで説明する様々な実施形態の１以上の態様を実施することができる、例示的な限定的ではない計算システムまたは動作環境を表すブロック図である。
【発明を実施するための形態】
【００２１】
概観
[0029]  背景で示したように、従来の計算技術は、デバイスの動作パフォーマンスを監視せず、動作パフォーマンスに基づいてアップデート情報をデバイスへ予想して送らない。従来の技術のこれら及び他の欠点を考慮し、ここで開示される主題事項は、デバイスのコンテキスト情報とパフォーマンス情報とを相関させること、およびそのような情報に基づいて構成情報をデバイスへ送ることと、関連する。
【００２２】
[0030]  １つの実施形態では、方法は、第１計算デバイスのサービス・コンポーネントにより、第２計算デバイスの動作環境の１以上の部分を示すコンテキスト情報を受け取ることと、動作環境において第２計算デバイスにより行われている１以上のオペレーションと関連するパフォーマンス情報を受け取ることとを、含む。次に、コンテキスト情報とパフォーマンス情報とを相関させることに応じて、構成情報を第２計算デバイスへ通信する。
【００２３】
[0031]  別の限定ではない実装では、コンピューター実行可能命令を含むコンピューター読取可能ストレージ媒体が提供され、コンピューター実行可能命令は、実行に応じて、計算デバイスにオペレーションを行わせる。オペレーションは、オペレーションの部分（１以上）と関連する動作環境の部分（１以上）を示すコンテキスト情報を、計算デバイスにより格納することを、含む。
【００２４】
[0032]  更に、方法は、計算デバイスにより行われるオペレーション（１以上）のうちの少なくとも１つのオペレーションと関連するパフォーマンス情報とコンテキスト情報とをサービス・コンポーネントへ送ることを、含むことができる。更に、方法は、計算デバイスを構成するために、コンテキスト情報およびパフォーマンス情報に基づいて、サービス・コンポーネントから構成情報を受け取ることを、含むことができる。
【００２５】
[0033]  １つの実施形態では、システムは、計算可能な読取可能なストレージ媒体に格納されたインターフェース・コンポーネントを含み、インターフェース・コンポーネントは、クライアントから、クライアントの動作環境を示すコンテキスト情報と、動作環境に基づいてクライアントにより行われる１以上のオペレーションと関連するパフォーマンス情報とを受け取るように、構成される。更に、インターフェース・コンポーネントは、相関情報に基づいて、アップデート情報をクライアントへ送ることができる。更に、サービス・コンポーネントは、相関情報を得るために、コンテキスト情報とパフォーマンス情報との間の関係を推論することができる。
【００２６】
[0034]  別の実施形態では、方法は、第１計算デバイスのサービス・コンポーネントにより、複数のクライアントのそれぞれの動作環境を示すコンテキスト情報を複数のクライアントから受け取り、そのコンテキスト情報を、データベースなどのようなデータ・ストアに格納することと、それぞれの動作環境において複数のクライアントにより行われているそれぞれのオペレーションと関連するパフォーマンス情報を受け取り、そのパフォーマンス情報をデータ・ストアに格納することと、データ・ストアを用いてコンテキスト情報とパフォーマンス情報とを相関させることに応じて、第２計算デバイスの推奨される構成を推論することと、推奨される構成を第２計算デバイスへ通信することとを、含むことができる。
【００２７】
[0035]  そのような技術は、構成情報をデバイスへ予想して送るために、デバイスのパフォーマンス情報を監視することを可能にする。
構成情報をデバイスへ予想して送るためのデバイスのパフォーマンス情報の監視
[0036]  ここで図１〜図３を参照すると、例えば、ネットワーク・ベースのサービスの情報サービスと関連するサーバー１２０を含む様々な実施形態に従ったサービス環境（１００、２００、３００）が、示されている。不確かなことを避けるためであるが、ここで明細書に記載されるか、図面に示されるか、または特許請求の範囲に記載される何れのネットワーク・サービスやサービス・コンポーネントも、デバイスがインターフェースできる何れのサービスやコンポーネントにも適用可能であり、それらは、任意の形の有線、ワイヤレス、またはデバイス・ベースまたはコンポーネント・ベースの通信を含み、限定ではないが、イーサネット（登録商標）、同期光ネットワーク（ＳＯＮＥＴ）、非同期転送モード（ＡＴＭ）、ユニバーサル・シリアル・バス（ＵＳＢ）、または限定ではないがフロッピー（登録商標）・ディスクやジャンプ・デバイスなどのような共有デバイスを介する「スニーカーネット」通信と呼ばれるものを含む。従って、「サービス・コンポーネント」や「ネットワーク・ベースのサービス」などのような用語は、サービス・コンポーネントやネットワーク・ベースのサービスが何であるかという観点で、一貫して解釈される。
【００２８】
[0037]  サーバー１２０は、インターフェース・コンポーネント１３０とサービス・コンポーネント１４０とを含む。インターフェース・コンポーネント１３０は、例えば、ネットワーク・ベースの情報サービスを介してクライアント１１０から、動作環境、例えば、クライアント１１０のサービス環境１００、サービス環境２００、サービス環境３００などを示すコンテキスト情報１１２を、受け取ることができる。１つの態様において、コンテキスト情報１１２は、クライアント１１０のオペレーティング・システム、クライアント１１０のソフトウェア、クライアント１１０のファームウェア、および／またはクライアント１１０のハードウェアの構成、クライアント１１０と通信するように結合されるネットワーク２１０の構成、および／またはクライアント１１０の位置を示す情報を示す情報を、含むことができる。コンテキスト情報に加えて、入力として、ユーザーの嗜好の情報を受け取ることができ、ユーザーの推論される将来の活動、現在の活動、または過去の活動についての情報を受け取ることができる。従って、コンテキスト情報と、ユーザーのパフォーマンスと、ユーザーの活動との何れのものも、構成情報の通信のためのベースとすることができる。
【００２９】
[0038]  更に、インターフェース・コンポーネント１３０は、クライアント１１０、ネットワーク２１０、および計算デバイス３１０から、それぞれ、パフォーマンス情報１１４、パフォーマンス情報２２０、およびパフォーマンス情報３２０を含む情報を受け取ることができる。実施形態において、パフォーマンス情報１１４は、動作環境に基づいて、例えば、オペレーティング・システム、ソフトウェア、ファームウェアなどを介してクライアント１１０により行われるオペレーション（１以上）と、関連することができる。１つの態様では、パフォーマンス情報１１４は、オペレーション（１以上）と関連するメモリの消費を示す情報、および／またはオペレーション（１以上）と関連する入力／出力帯域幅を示す情報を、含むことができる。
【００３０】
[0039]  別の実施形態では、パフォーマンス情報２２０は、ネットワーク２１０の帯域幅を示す情報、および／または、例えば、ネットワーク２１０を介してのデータの処理と関連するレイテンシを示す情報を含むことができる。更に別の実施形態では、パフォーマンス情報３２０は、計算デバイス３１０のハードウェアの構成を示す情報を含むことができる。様々な態様において、計算デバイスは、通信するようにネットワーク２１０へ結合することができ、また、通信するようにネットワーク２１０とは異なるネットワークなどへ結合することができる。１つの態様では、パフォーマンス情報３２０は、計算デバイス３１０のソフトウェア、ハードウェア、ファームウェア、オペレーティング・システムなどの構成を示す情報、および／または計算デバイス３１０のパフォーマンスを示す情報を、含むことができる。
【００３１】
[0040]  ここで開示する例示であり限定ではない実施形態の様々な態様は、アプリケーション（１以上）、ソフトウェア・パッチ（１以上）、ソフトウェア・アップデート（１以上）、オペレーティング・システム・アップデート（１以上）、ファームウェア・アップデート（１以上）、ハードウェア・アップデート（１以上）などを識別して、クライアント１１０の動作パフォーマンスを改善するために、クライアント１１０への、アップデート情報、アップグレード情報、構成情報１５０などの提供、送信などを予想および／または率先して行うために、コンテキスト情報１１２と、パフォーマンス情報、例えば、パフォーマンス情報１１４、パフォーマンス情報２２０、パフォーマンス情報３２０などとを、監視することができる。
【００３２】
[0041]  従って、１つの実施形態では、サービス・コンポーネント１４０は、コンテキスト情報１１２と、パフォーマンス情報１１４、パフォーマンス情報２２０、および／またはパフォーマンス情報３２０とを相関させるように、構成することができる。例えば、サービス・コンポーネント１４０は、相関情報の獲得、導出、計算などを行うために、コンテキスト情報１１２と、パフォーマンス情報１１４、パフォーマンス情報２２０、および／またはパフォーマンス情報３２０との関係を、推論することができる。
【００３３】
[0042]  １つの例では、サービス・コンポーネント１４０は、過剰な量のメモリおよび／またはＣＰＵサイクルがクライアント１１０により消費されていることとを示すパフォーマンス情報１１４に基づいて、例えばコンテキスト情報１１２により示されているクライアント１１０により実行されているソフトウェアおよび／またはアプリケーションに応答してクライアント１１０が低速で動作していること、動作が鈍いことなどを示す相関情報を、推論することができる。従って、サービス・コンポーネント１４０は、コンテキスト情報１１２の１以上の部分から、パフォーマンス情報１１４の少なくとも一部の原因を推論することができる。
【００３４】
[0043]  例えば、１以上の態様において、サービス・コンポーネント１４０は、コンテキスト情報および相関情報と関連する１以上のデータ構造（示さず）を含むことができ、集中させることも、可能性としては複数のデバイスおよび／またははスキームにわたって分散させることもできる。それに従うと、ここで説明する推論（１以上）、相関（１以上）を提供または援助するために、サービス・コンポーネント１４０は、使用可能なデータの全体またはサブセットを検査することができ、それについての理由を提供すること、またはそれぞれのシステム（１以上）、環境（１以上）、および／またはユーザー（１以上）の状態を、イベントおよび／またはデータを介して捕獲した観察の組から推論することができる。
【００３５】
[0044]  更に、推論は、例えば、特定のコンテンツやアクションを識別するために用いることができ、また、状態にわたっての確率分布を生成することができる。推論は、確率的、即ち、データおよびイベントの考慮に基づいての対象とする状態にわたっての確率分布の計算であり得る。推論はまた、イベントおよび／またはデータのセットから高位イベントを作るために用いる技術に関連する。
【００３６】
[0045]  そのような推論は、イベントが時間的に近接して相関するか否かにかかわらず、また、イベントおよびデータが１以上のイベントおよびデータのソースからのものであるかにかかわらず、観察したイベントおよび／または格納したイベント・データのセットから、新たなイベントやアクションを構成させることができる。様々な分類（明確および／または暗黙にトレーニングされる）スキームおよび／またはシステム（例えば、サポート・ベクター・マシン、ニューラル・ネットワーク、エキスパート・システム、ベイエジアン信念ネットワーク、ファジー・ロジック、データ・フュージョン・エンジン・・・）を、特許請求される主題事項と関連して自動および／または推論のアクション、相関（１以上）などを行うことと関連して、用いることができる。
【００３７】
[0046]  分類器（classifier）は、入力属性ベクトルであるｘ＝（ｘ１，ｘ２，ｘ３，ｘ４，ｘｎ）を、入力がクラスに属するコンフィデンス（confidence）、即ち、ｆ（ｘ）＝ｃｏｎｆｉｄｅｎｃｅ（ｃｌａｓｓ）へマップする機能であり得る。そのような分類は、自動的に行われることをユーザーが望むアクションを予測または推論するために、確率および／または統計を基にする分析（例えば、分析のユーティリティーおよびコストへの要素へと分ける（factoring into））を用いることができる。サポート・ベクター・マシン（ＳＶＭ）は、用いることができる分類器の一例である。ＳＶＭは、可能な入力の空間における超曲面を見つけることにより動作し、超曲面は、トリガする基準をトリガしないイベントから分離することを試みる。直感的には、これは、トレーニング・データに近いが同じではないデータのテストに関して、分類を正しくする。
【００３８】
[0047]  或る方向に向けられた及び向けられていない他のモデル分類アプローチは、例えば、ナイーブ・ベイズ(naive Bayes)、ベイエジアン・ネットワーク(Bayesian network)、デシジョン・ツリー、ニューラル・ネットワーク、ファジー・ロジック・モデルを含み、また、異なるパターンの独立性を提供する確率的分類モデルを用いることができる。ここで用いられる分類はまた、優先度のモデルを開発するために用いられる統計回帰（statistical regression）を含む。
【００３９】
[0048]  再び図１〜図３を参照すると、インターフェース・コンポーネント１３０は、相関情報に基づいて、クライアント１１０へ、構成情報１５０、アップデート情報、アップグレード情報などの送信、通信などを行うことができる。１つの態様では、構成情報１５０は、（１）クライアント１１０のオペレーティング・システム、ソフトウェア、ファームウェア、ハードウェアなどのアップデート、アップグレードなどを行うことの推奨を含むこと、（２）オペレーティング・システム、ソフトウェア、ファームウェア、ハードウェアなどのアップデート、アップグレードなどのインストールを行わないことの推奨を含むこと、（３）例えば、クライアント１１０の動作性能を向上させるための、クライアント１１０でのインストール、実行などが可能なアプリケーション（１以上）、ソフトウェア・パッチ（１以上）、ソフトウェア・アップデート（１以上）、ハードウェア・アップデート（１以上）、ファームウェア・アップデート（１以上）、オペレーティング・システム・アップデート（１以上）などを識別すること、および／または（４）ネットワーク・プロトコルおよび／または通信プロトコルを用いることの推奨を、含むことができる。
【００４０】
[0049]  例えば、クライアント１１０が、第１デバイス、例えば、周辺デバイス、プリンター、スキャナー、ゲーム・デバイスなどと通信するように結合されたことを示すコンテキスト情報１１２に応じて、インターフェース・コンポーネント１３０は、例えば、サービス・コンポーネント１４０を介して導出された構成情報１５０を、クライアント１１０へ送ることができ、それにより、例えば、クライアント１１０と通信するように結合されていない第２デバイス（または第２周辺デバイス）と関連するハードウェアおよび／またはソフトウェアのアップデート（１以上）、ソフトウェア・パッチ（１以上）、オペレーティング・システム・アップデート（１以上）、ファームウェア・アップデート（１以上）などをスキップすること又は行わないことを、示すことができる。別の例では、クライアント１１０を介して選択されているファイルのパターン、シリーズなどを示すコンテキスト情報１１２に応じて、インターフェース・コンポーネント１３０は、例えば、サービス・コンポーネント１４０を介して導出された構成情報１５０を、クライアント１１０へ送ることができ、それにより、クライアント１１０においてインストールするファイルと関連するハードウェアおよび／またはソフトウェアのアップデート（１以上）、ソフトウェア・パッチ（１以上）、オペレーティング・システム・アップデート（１以上）、ファームウェア・アップデート（１以上）などを、示すことができる。
【００４１】
[0050]  別の態様では、クライアント１１０にインストールされているソフトウェア、アプリケーション、オペレーティング・システム、ファームウェアなどのタイプのパターン、シリーズなどを示すコンテキスト情報１１２に応じて、インターフェース・コンポーネント１３０は、例えば、サービス・コンポーネント１４０を介して導出された構成情報１５０を、クライアント１１０へ送ることができ、それにより、クライアント１１０にインストールされているソフトウェア、アプリケーション、オペレーティング・システム、ファームウェアなどのタイプに基づいて、ハードウェアおよび／またはソフトウェアのアップデート（１以上）、ソフトウェア・パッチ（１以上）、オペレーティング・システム・アップデート（１以上）、ファームウェア・アップデート（１以上）などをクライアント１１０に対して行うことの推奨などを、示すことができる。
【００４２】
[0051]  図３に示す態様では、サーバー１２０は、計算デバイス３１０のハードウェアおよび／またはソフトウェアの構成を示す構成情報を、計算デバイス３１０から受け取ることができる。更に、サーバー１２０は、例えば、計算デバイス３１０を介して実行されているオペレーティング・システム、ソフトウェア、ファームウェアなどと関連するメモリの消費を示すパフォーマンス情報３２０を、計算デバイス３１０から受け取ることができる。更に、サービス・コンポーネント１４０は、構成情報およびパフォーマンス情報３２０に基づいて、構成情報１５０の決定、推論などを行うことができる。例えば、クライアント１１０とコンパチブルである計算デバイス３１０のオペレーティング・システム、ハードウェア、ファームウェア、および／またはソフトウェアの態様（１以上）に応じて、サービス・コンポーネント１４０は、構成情報１５０を介して、クライアント１１０のオペレーティング・システム、ハードウェア、ファームウェア、および／またはソフトウェアに対してアップデート（１以上）を行うことを、推奨することができる。
【００４３】
[0052]  別の態様では、サーバー１２０は、通信（１以上）の情報、例えば、計算デバイス３１０を介して行われるネットワーク・クエリ、ソーシャル・ネットワーク・クエリなどを、受け取ることができる。更に、サービス・コンポーネント１４０は、パフォーマンス情報１１４、２２０、３２０などの少なくとも一部の原因を、通信（１以上）の情報の部分（１以上）から、決定することができる。従って、サービス・コンポーネント１４０は、例えば、ハードウェアおよび／またはソフトウェアの問題と関連する、例えば、第三者のサーチ、ネットワーク・クエリ、メッセージなどにおけるスパイク(spike(s))（１以上）についての知識を相関させて且つ／又は活用して、構成情報１５０の決定、推論などを行うことができる。
【００４４】
[0053]  図４に示す態様では、サービス・コンポーネント１４０は、例えば、クライアント１１０のオペレーション（１以上）と関連する情報、ログ、エラー・ログなどを記録するために、例えば、クライアント１１０で動作する及び／又はクライアント１１０へ通信するように結合されるハードウェア、ファームウェア、オペレーティング・システム、ソフトウェアなどのソース、製造者、開発者などと関連することができるサービス・アプリケーションの計算デバイス４１０へ、構成情報１５０の少なくとも一部を通信するように構成することができる。
【００４５】
[0054]  ここで図５を参照すると、クライアント１１０は、コンピューター実行可能命令を含むコンピューター読取可能ストレージ媒体と関連することができ、コンピューター実行可能命令は、実行に応じて、クライアント１１０に、動作環境５００の１以上の部分を示すコンテキスト情報を格納させる。更に、クライアント１１０は、クライアント１１０により行われるオペレーションのうちの少なくとも１つのオペレーションと関連するコンテキスト情報およびパフォーマンス情報を、サーバー１２０、例えば、インターフェース・コンポーネント１３０へ、送ることができる。更に、クライアント１１０は、コンテキスト情報およびパフォーマンス情報に基づいて、例えば、サービス・コンポーネント１４０から、クライアント１１０を構成するための構成情報を受け取ることができる。
【００４６】
[0055]  １つの態様では、クライアント１１０のハードウェアおよび／またはクライアント１１０のソフトウェアの構成、クライアント１１０と通信するように結合されるネットワーク（示さず）の構成、および／またはクライアント１１０の位置を示す情報を示す情報を、含むことができる。
【００４７】
[0056]  別の態様では、パフォーマンス情報は、少なくとも１つのオペレーションと関連することができ、例えば、クライアント１１０のオペレーティング・システム、クライアント１１０により実行されているソフトウェア、クライアント１１０により実行されているファームウェアなどと関連するメモリの消費を示す。更に別の態様では、クライアント１１０は、キャッシュされた情報を得られるように、キャッシュ５１０に、コンテキスト情報の少なくとも一部を入れておくことができる。更に、クライアント１１０は、キャッシュされた情報の少なくとも一部を、サーバー１２０、例えば、サービス・コンポーネント１４０へ送ることができる。１つの態様では、クライアント１１０は、構成情報に基づいて、クライアント１１０のソフトウェア、ハードウェア、ファームウェア、オペレーティング・システムなどを構成することができる。
【００４８】
[0057]  図６は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための、例示であり限定ではない実施形態を示すフロー図である。６００において、第１計算デバイスのサービス・コンポーネントは、第２計算デバイスの動作環境の１以上の部分を示すコンテキスト情報を受け取ることができる。６１０において、動作環境において第２計算デバイスにより行われている１以上のオペレーションと関連するパフォーマンス情報を、例えば、第１計算デバイスにより、受け取ることができる。６２０において、構成情報を得るためにコンテキスト情報をパフォーマンス情報と相関させることができる。６３０において、構成情報を第２計算デバイスへ通信することができる。
【００４９】
[0058]  １つの実施形態では、コンテキスト情報は、第２計算デバイスのハードウェア、ソフトウェア、ファームウェア、および／またはオペレーティング・システムの構成を示す情報を含む。別の実施形態では、コンテキスト情報は、第２計算デバイスの位置を示す情報を含む。更に別の実施形態では、コンテキスト情報は、第２計算デバイスと通信するように結合されるネットワークの構成を示す情報を含む。
【００５０】
[0059]  １つの実施形態では、パフォーマンス情報は、例えば、第２計算デバイスに実行されている及び／又は動作させられているハードウェア、ソフトウェア、ファームウェア、および／またはオペレーティング・システムと関連するメモリの消費を示す情報を含む。別の実施形態は、例えば、第２計算デバイスにより実行されているソフトウェア、ファームウェア、オペレーティング・システムなどと関連する入力／出力帯域幅を示す情報を、受け取ることを含む。更に別の実施形態は、第２計算デバイスと通信するように結合されるネットワークの帯域幅を示す情報を受け取ること、および／またはネットワークを介してのデータの処理と関連するレイテンシを示す情報を受け取ることを、含む。
【００５１】
[0060]  図７は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための、例示であり限定ではない別の実施形態を示すフロー図である。７００において、計算デバイスにより行われるオペレーション（１以上）の少なくとも一部と関連する動作環境の部分（１以上）を示すコンテキスト情報を、計算デバイスにより格納することができる。７１０において、オペレーション（１以上）のうちのオペレーションと関連するコンテキスト情報およびパフォーマンス情報を、計算デバイスにより、サービス・コンポーネントへ送ることができる。７２０において、計算デバイスを構成するために、サービス・コンポーネントにより送られた構成情報を、サービス・コンポーネントから、コンテキスト情報およびパフォーマンス情報に基づいて計算デバイスにより、受け取ることができる。７３０において、計算デバイスのソフトウェア、ファームウェア、オペレーティング・システム、および／またはハードウェアを、構成情報に基づいて、計算デバイスにより構成することができる。
【００５２】
[0061]  図８は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための、例示であり限定ではない更に別の実施形態を示すフロー図である。８００において、クライアントから、クライアントの動作環境を示すコンテキスト情報と、動作環境に基づいてクライアントにより行われているオペレーション（１以上）と関連するパフォーマンス情報とを、受け取ることができる。８１０において、例えば、別のクライアントの計算デバイスおよび／またはネットワークと関連する別の情報が受け取られた場合、フローは８３０へと続き、８３０で、構成情報を得るために、コンテキスト情報と別の情報との間の関係を推論することができ、そうではない場合、フローは８２０へと続き、８２０で、構成情報を得るために、コンテキスト情報とパフォーマンス情報との間の関係を推論することができる。
【００５３】
[0062]  フローは８２０および８３０から８４０へと続き、８４０において、構成情報をクライアントへ通信することができる。例えば、１つの実施形態では、構成情報は、クライアントのハードウェアおよび／またはソフトウェアのうちの少なくとも１つをアップデートすることの推奨を、含むことができる。
【００５４】
[0063]  図９は、実施形態に従った、アップデートまたは構成の情報をデバイスへ予想して送るために複数のクライアントのパフォーマンス情報を監視するための、例示であり限定ではない実施形態を示すフロー図である。９００において、複数のクライアントのそれぞれの動作環境を示すコンテキスト情報を受け取り、データ・ベースに格納することができる。９１０において、それぞれの動作環境において複数のクライアントにより行われているそれぞれのオペレーションと関連するパフォーマンス情報を受け取り、データ・ベースに格納することができる。９２０において、相関情報を得るために、データ・ベースを用いて、コンテキスト情報とパフォーマンス情報とを相関させることができる。９３０において、相関情報に基づいて、第２計算デバイスの推奨される構成を推論することができる。９４０において、推奨される構成を第２計算デバイスへ通信することができる。
【００５５】
例示のネットワーク型および分散型の環境
[0064]  当業者は、アップデート情報をデバイスへ予想して送るためにコンテキストおよびパフォーマンスの情報を監視するための、ここで説明する様々な実施形態を、任意のコンピューターや他のクライアント・デバイス、例えば、クライアント１１０、サーバー１２０などと関連して実施できることを、理解することができる。そのようなデバイスは、コンピューター・ネットワークの一部として配備することや、分散型の環境で配備することができ、また、媒体を見つけることができる任意の種類のデータ・ストアへ接続することができる。
【００５６】
[0065]  これに関して、ここで説明する様々な実施形態は、任意の数のメモリやストレージ・ユニットを有し、且つ任意の数のストレージ・ユニットにわたって任意の数のアプリケーションおよびプロセスが生じる任意のコンピューター・システムや環境で、実施することができる。これは、限定ではないが、リモートまたはローカルのストレージを有し、サーバー・コンピューターおよびクライアント・コンピューターがネットワーク環境において配備される環境、または分散型計算環境を含む。
【００５７】
[0066]  分散型の計算は、計算デバイスおよび計算システムの間での通信による交換により、コンピューター・リソースおよびサービスの共有を提供する。これらのリソースおよびサービスは、情報の交換、ファイルなどのようなオブジェクトのキャッシュへの格納やディスクへの格納を含む。これらのリソースおよびサービスはまた、負荷の分散、リソースの拡張、処理の専門化などのために、複数の処理装置にわたって処理パワーを共有することを含む。分散型の計算は、ネットワーク接続性の利点を用い、エンタープライズ全体へ利益を与えるために、複数のクライアントがそれらの集団的パワーを活用することを可能にする。これに関して、主題の開示の様々な実施形態に関して説明したデバイスのコンテキストおよびパフォーマンスの情報の監視と関連するオペレーションを行うための機構に参加し得るアプリケーション、オブジェクト、またはリソースを、様々なデバイスは有し得る。
【００５８】
[0067]  図１０は、例示的なネットワーク型または分散型の計算環境の概略的な図を提供する。分散型計算環境は、計算オブジェクト１０１０、１０１２などと、計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などとを含み、これらは、プログラム、メソッド、データ・ストア、プログラマブル・ロジックなどを含むことができ、アプリケーション１０３０、１０３２、１０３４、１０３６、１０３８として表されている。計算オブジェクト１０１０、１０１２などと、計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などとは、様々なデバイス、例えば、ＰＤＡ、オーディオ／ビデオ・デバイス、モバイル・フォン、ＭＰ３プレーヤー、パーソナル・コンピューター、ラップトップなどを含み得ることに注意されたい。
【００５９】
[0068]  計算オブジェクト１０１０、１０１２などと、計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などとのそれぞれは、通信ネットワーク１０４０を用いて、直接的または間接的に、計算オブジェクト１０１０、１０１２などと、計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などとのうちの他の１以上のものと、通信することができる。通信ネットワーク／バス１０４０は、図１０では単一のエレメントとして示されているが、通信ネットワーク／バス１０４０は、図１０のシステムへサービスを提供する他の計算オブジェクトおよび計算デバイスを含むものであり得、かつ／または複数の相互接続されたネットワークを表すもので有り得るが、それらは図に示していない。また、計算オブジェクト１０１０、１０１２など、または計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などのそれぞれは、アプリケーション１０３０、１０３２、１０３４、１０３６、１０３８などのようなアプリケーションを含むことができ、アプリケーションは、本開示の様々な実施形態に従って提供されたデバイスのコンテキストおよびパフォーマンスの情報の監視のための技術との通信や、技術のインプリメンテーションに適切な、ＡＰＩ、または他のオブジェクト、ソフトウェア、ファームウェア、および／またはハードウェアを使用し得る。
【００６０】
[0069]  分散型計算環境をサポートする様々なシステム、コンポーネント、およびネットワーク構成がある。例えば、複数の計算システムは、有線またはワイヤレスのシステムにより、ローカル・ネットワークや広く分散されたネットワークにより、共に接続することができる。現在、多くのネットワークはインターネットと接続されており、インターネットは、広く分散した計算に対するインフラストラクチャーを提供するものであり、かつ多くの異なるネットワークを含む。なお、任意のネットワーク・インフラストラクチャーを、様々な実施形態において説明したデバイスのコンテキストおよびパフォーマンスの情報を監視するシステムに対して入るようにされる例示的な通信に、用いることができる。
【００６１】
[0070]  即ち、ネットワーク・トポロジーのホストおよびネットワーク・インフラストラクチャー、例えば、クライアント／サーバーや、ピア・ツー・ピアや、ハイブリッドのアーキテクチャーを、用いることができる。「クライアント」は、１つのクラスまたはグループのメンバーであり、この１つのクラスまたはグループのメンバーは、それと関連していない別のクラスまたはグループのサービスを用いる。クライアントは、サービスを要求するプロセス、即ち、概略的には、命令やタスクの組とすることができ、このプロセスは、別のプログラムやプロセスにより提供されるサービスを要求する。クライアントのプロセスは、要求したサービスを用いるが、他のプログラムやサービス自体の作業の詳細について「知る」必要は無い。
【００６２】
[0071]  クライアント／サーバーのアーキテクチャー、特に、ネットワーク型のシステムでは、クライアント、例えば、クライアント１１０は、通常はコンピューターであり、別のコンピューター、例えば、サーバー１２０により提供される共有ネットワーク・リソースへ、アクセスする。図１０の例示では、限定ではない例として、計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などを、クライアントと考えることができ、計算オブジェクト１０１０、１０１２などを、サーバーと考えることができ、その場合、計算オブジェクト１０１０、１０１２などはデータ・サービスを提供し、そのデータ・サービスは、例えば、クライアントである計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などからデータを受け取ること、データを格納すること、データを処理すること、データをクライアントである計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などへ送ることなどである。なお、何れのコンピューターも、状況に応じて、クライアント、サーバー、またはそれら双方と考えることができる。これらの計算デバイスの何れも、データを処理しているか、またはトランザクションのサービスやタスクを要求しているであろうが、それらは、１以上の実施形態に関してここで説明したデバイスのコンテキストおよびパフォーマンスの情報を監視するための技術に影響を与え得る。
【００６３】
[0072]  サーバー、例えば、サーバー１２０は、典型的にはリモート・コンピューター・システムであり、リモートまたはローカルのネットワーク、例えば、インターネットやワイヤレス・ネットワーク・インフラストラクチャーを通じて、アクセス可能である。クライアントのプロセスは、第１のコンピューター・システムでアクティブにすることができ、サーバーのプロセスは、第２のコンピューター・システム、例えば、ここで開示する図１〜図９と関連する実施形態と関連するコンピューター・システムで、アクティブにすることができ、互いに通信媒体を介して通信し、それにより、分散型の機能を提供し、且つ複数のクライアントがサーバーの情報収集能力の利点を用いることを可能にする。デバイスのコンテキストおよびパフォーマンスの情報を監視するための技術に従って用いられる何れのソフトウェア・オブジェクトも、スタンドアローンとして、または複数の計算デバイスまたはオブジェクトにわたって分散させて、提供することができる。
【００６４】
[0073]  例えば、図１〜図９と関連する実施形態と関連し、通信ネットワーク／バス１０４０がインターネットであるネットワーク環境では、例えば、計算オブジェクト１０１０、１０１２などをウェブ・サーバーとすることができ、そのウェブ・サーバーと、クライアントの計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などとが、多数の既知のプロトコルのうちの何れか、例えば、ＨＴＴＰを介して、通信するようにできる。また、分散型計算環境の特徴であり得るが、サーバー１０１０、１０１２などは、クライアントの計算オブジェクトまたはデバイス１０２０、１０２２、１０２４、１０２６、１０２８などとして働くこともできる。
【００６５】
例示的な計算デバイス
[0074]  述べたように、好都合なことに、デバイスのコンテキストおよびパフォーマンスの情報を監視することが望まれるところにおいて、ここで説明した技術は任意のデバイスに適用することができる。従って、手持ち型、ポータブル、および他の計算デバイス、および全ての種類の計算オブジェクトを、様々な実施形態と関連して、即ち、デバイスがサーバーに、デバイスのコンテキストおよびパフォーマンスの情報の監視と関連するオペレーションを行わせることが可能な何れのところでも、使用することが可能であると考えられていることが、理解される。従って、図１１における以下で説明する以下の汎用コンピューターは、計算デバイスの単なる一例である。更に、例えば、上記のサービス・アプリケーションと関連するサーバーまたはデータベース・サーバーは、以下の汎用コンピューターの１以上の態様を含むことができる。
【００６６】
[0075]  必要というわけではないが、実施形態は、部分的に、デバイスまたはオブジェクトに対するサービスの開発者による使用のために、オペレーティング・システムを介してインプリメントすることができ、かつ／または、ここで説明した様々な実施形態の１以上の機能的特徴を実施するように動作する、例えば、サーバー１２０と関連するアプリケーション・ソフトウェア内に、含ませることができる。ソフトウェアは、クライアント・ワークステーションやサーバーや他のデバイスなどのような１以上のコンピューターで実行されるプログラム・モジュールなどのような、コンピューター実行可能命令の一般的なコンテキストで説明することができる。コンピューター・システムは、データの通信に使用できる様々な構成およびプロトコルを有し、従って、特定の構成やプロトコルが限定と考慮されないことを、当業者は理解するであろう。
【００６７】
[0076]  従って、図１１は、適切な計算システム環境１１００の一例を示すものであり、このコンピューター・システム環境において、ここで説明した実施形態の１つまたは態様を実施することができる。なお、上記で明らかにしたが、このコンピューター・システム環境１１００は、適切な計算環境の単なる一例であり、使用や機能の範囲に関する限定を示唆することを意図していない。このコンピューター・システム環境１１００は、この例示的な動作環境１１００において示されるコンポーネントの何れか又はコンポーネントの組み合わせの何れかと関連する依存性を有するものとして解釈されない。
【００６８】
[0077]  図１１を参照すると、１以上の実施形態を実施するための例示的なリモート・デバイスは、コンピューター１１１０の形態の汎用コンピューターまたは計算デバイスを含む。コンピューター１１１０のコンポーネントは、処理ユニット１１２０、システム・メモリ１１３０、およびシステム・メモリを含む様々なコンポーネントを処理ユニット１１２０と結合するシステム・バス１１２２を含み得るが、これらには限定されない。
【００６９】
[0078]  コンピューター１１１０は、典型的には、様々なコンピューター読取可能媒体を含み、それらは、コンピューター１１１０によりアクセス可能な任意の使用可能な媒体とすることができる。システム・メモリ１１３０は、リード・オンリー・メモリ（ＲＯＭ）および／またはランダム・アクセス・メモリ（ＲＡＭ）などのような揮発性および／または不揮発性のメモリの形態のコンピューター・ストレージ媒体を含むことができる。限定ではなく例として、システム・メモリ１１３０はまた、オペレーティング・システム、アプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データを含むことができる。
【００７０】
[0079]  ユーザーは、入力デバイス１１４０を通じてコンピューター１１１０へコマンドおよび情報を入力することができる。また、モニターまたは他のタイプのディスプレイ・デバイスも、出力インターフェース１１５０などのようなインターフェースを介してシステム・バス１１２２へ接続される。また、このコンピューターは、モニターに加えて、他の周辺出力デバイス、例えば、スピーカーやプリンターを含むことができ、それらも出力インターフェース１１５０を通じて接続することができる。
【００７１】
[0080]  コンピューター１１１０は、リモート・コンピューター１１７０などのような１以上の他のリモート・コンピューターへの論理接続を用いて、ネットワーク型または分散型の環境で動作することができる。リモート・コンピューター１１７０は、パーソナル・コンピューター、サーバー、ルーター、ネットワークＰＣ、ピア・デバイス、または他のコモン・ネットワーク・ノード（common network node）、または他の任意のリモートの媒体の消費または伝送のデバイス（remote media consumption or transmission device）であり得、また、上記でコンピューター１１１０と関連して説明したエレメントの何れかまたは全てを含み得る。図１１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）やワイド・エリア・ネットワーク（ＷＡＮ）などのようなネットワーク１１７２を含むが、他のネットワーク／バスを含むこともできる。そのようなネットワーク環境は、家庭、オフィス、エンタープライズ・ワイド・コンピューター・ネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【００７２】
[0081]  上述のように、様々な計算デバイスおよびネットワーク・アーキテクチャーと関連させて例示的な実施形態を説明したが、基礎的な概念は、柔軟な様式で媒体を発行または消費することが望まれる任意のネットワーク・システムおよび任意の計算デバイスまたはシステムに、適用することができる。
【００７３】
[0082]  また、同じまたは類似の機能をインプリメントするための複数の手法、例えば、適切なＡＰＩ、ツール・キット、ドライバー・コード、オペレーティング・システム、コントロール、スタンドアローンまたはダウンロード可能なソフトウェア・オブジェクトなどがあり、これらは、アプリケーションおよびサービスが、ここで説明したデバイスのコンテキストおよびパフォーマンスの情報を監視するための技術の利点を得ることを可能にする。即ち、ここでの実施形態は、ＡＰＩ（または他のソフトウェア・オブジェクト）の観点から、およびそのような技術の１以上の態様をインプリメントするソフトウェア・オブジェクトまたはハードウェア・オブジェクトの観点から、予期される。即ち、ここで説明した様々な実施形態は、完全にハードウェアの態様、部分的にハードウェアで部分的にソフトウェアの態様、およびソフトウェアの態様を有することができる。
【００７４】
[0083]  ここでは、「例示」という単語は、例や、事例や、実例を意味するものとして用いている。疑いをなくすためであるが、ここで開示した主題事項は、そのような例により限定されない。更に、ここで「例示」として説明した何れの態様や設計も、他の態様や設計よりも好適または好都合であると必ずしも解釈されるものではなく、また、当業者に知られた等価の例示的な構成および技術を除外することを意味しない。更に、用語「含む（includes）」、「有する（has）」、「包含する（contains）」、および類似の他の単語が詳細な説明または特許請求の範囲で使用されるという点において、疑いをなくすためであるが、それらのような用語は、何れの追加のエレメントや他のエレメントも除外しない開かれた接続させるための語（open transition word）としての用語「含む（comprising）」と同様の様式で、含むことを意図している。
【００７５】
[0084]  計算デバイスは典型的には様々な媒体を含み、媒体はコンピューター読取可能ストレージ媒体および／または通信媒体を含むことができ、これら２つの用語は、ここでは、以下のように互いに異なって用いられる。コンピューター読取可能ストレージ媒体は、コンピューターによりアクセスでき、典型的には一時的な性質ではなく、揮発性および不揮発性および取り外し可能および取り外し不可能の双方を含む、任意の使用可能なストレージ媒体とすることができる。
【００７６】
[0085]  限定ではなく例として、コンピューター読取可能ストレージ媒体は、コンピューター読取可能命令、プログラム・モジュール、構造化データ、または非構造化データなどのような情報を格納する任意の方法や技術と関連してインプリメントすることができる。限定ではないが、コンピューター読取可能ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、またはメモリ技術、ＣＤ−ＲＯＭ、デジタル・バーサタイル・ディスク（ＤＶＤ）、または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、または望まれる情報を記憶するために使用できる実体的および／または非一時的な他の媒体を含むことができる。コンピューター読取可能ストレージ媒体は、媒体により格納された情報に関する様々なオペレーションについて、１以上のローカルまたはリモートの計算デバイスにより、例えば、アクセス・リクエスト、クエリ、または他のデータ検索プロトコルを介して、アクセスすることができる。
【００７７】
[0086]  他方、通信媒体は、典型的には、コンピューター読取可能命令、データ構造、プログラム・モジュール、または他の構造化または非構造化のデータを、例えば、搬送波である変調されたデータ信号などのようなデータ信号または他のトランスポート機構で実現するものであり、任意の情報の配送またはトランスポートの媒体を含む。「変調されたデータ信号」または信号という用語は、１以上の信号内において情報をエンコードするように、その信号の特性のうちの１以上の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などのようなワイヤレス媒体とを含む。
【００７８】
[0087]  上述のように、ここで説明した様々な技術は、ハードウェアまたはソフトウェア、または、適切である場合にはそれらの組み合わせと関連して、実施することができる。ここで使用しているように、用語「コンポーネント」、「システム」、およびそれらと同様のものは、同様に、コンピューター関連エンティティを示すことを意図しており、それは、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアの何れかである。例えば、コンポーネントは、プロセッサーで実行されるプロセス、プロセッサー、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および／またはコンピューターであり得るが、これらには限定されない。例として、コンピューターで実行されるアプリケーションとコンピューターとの双方を、１つのコンポーネントとすることができる。１以上のコンポーネントが、１つのプロセスおよび／または実行のスレッドの中に存在することがあり、また、コンポーネントは、１つのコンピューターにローカライズされることも、２以上のコンピューターに分散されることもできる。
【００７９】
[0088]  上記のシステムは、幾つかのコンポーネントの間でのインタラクションと関連して説明した。そのようなシステムおよびコンポーネントが、上記のものの様々な置換や組み合わせに従って、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントのうちの幾つか、および／または追加のコンポーネントを含むことができることは、理解できる。また、サブコンポーネントは、親コンポーネント内に含まれるもの（階層的）としてではなく、他のコンポーネントと通信するように結合されたコンポーネントとして実施することもできる。
【００８０】
[0089]  更に、１以上のコンポーネントを、１つのコンポーネントへと組み合わせて統合された機能を提供できることや、幾つかの個別のサブコンポーネントへと分割できること、また、そのようなサブコンポーネントへ通信するように結合する任意の１以上の中間層、例えば管理層（management layer）などを提供することにより、統合した機能を提供できることにも、留意されたい。また、ここで説明した何れのコンポーネントも、ここで特に説明していないが当業者には一般に知られている１以上の他のコンポーネントと、インタラクションすることができる。
【００８１】
[0090]  ここで説明した例示的なシステムを考慮すると、説明した主題事項に従って実施され得る方法は、様々な図のフローチャートを参照して良く表せる。説明を簡素にする目的で、方法は一連のブロックで示されて説明されているが、特許請求される主題事項はブロックの順序により限定されないことが、理解および認識される。なぜなら、幾つかのブロックは、ここで示されて説明された順とは別の順で生じることや、他のブロックと同時に生じることができるからである。非順次的な、または分岐した流れをフローチャートにより示す場合において、同様または類似の結果が得られる様々な別の分岐、フロー経路、およびブロックの順序を実施できることを、特筆することができる。更に、説明した方法を実施するために、示した全てのブロックが必要ではない場合もあり得る。
【００８２】
[0091]  ここで説明した様々な実施形態に加えて、対応するエレメント（１以上）の機能から逸脱せずに同じまたは等価の機能を行うために、他の類似の実施形態を使用できることや、説明した実施形態（１以上）に対する変更や付加を行えることも、理解される。更に、複数の処理チップや複数のデバイスが、ここで説明した１以上の機能の性能を共有することができ、同様に、ストレージは、複数のデバイスにわたって作用することができる。従って、本発明は、何れの実施形態にも限定されず、特許請求の範囲に従った幅、精神、および範囲で解釈することができる。
【図１】
2015501998.tif 000003
【図２】
2015501998.tif 000004
【図３】
2015501998.tif 000005
【図４】
2015501998.tif 000006
【図５】
2015501998.tif 000007
【図６】
2015501998.tif 000008
【図７】
2015501998.tif 000009
【図８】
2015501998.tif 000010
【図９】
2015501998.tif 000011
【図１０】
2015501998.tif 000012
【図１１】
2015501998.tif 000013
【国際調査報告】
2015501998.tif 000014
2015501998.tif 000015