特許第6133889号(P6133889)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6133889アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング
<>
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000002
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000003
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000004
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000005
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000006
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000007
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000008
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000009
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000010
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000011
  • 特許6133889-アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6133889
(24)【登録日】2017年4月28日
(45)【発行日】2017年5月24日
(54)【発明の名称】アップデートをデバイスへ予想して送るためのデバイスのパフォーマンス情報の検出およびマイニング
(51)【国際特許分類】
   G06F 11/30 20060101AFI20170515BHJP
   G06F 11/00 20060101ALI20170515BHJP
【FI】
   G06F11/30 172
   G06F11/30 140C
   G06F9/06 630B
【請求項の数】16
【全頁数】24
(21)【出願番号】特願2014-547302(P2014-547302)
(86)(22)【出願日】2012年12月7日
(65)【公表番号】特表2015-501998(P2015-501998A)
(43)【公表日】2015年1月19日
(86)【国際出願番号】US2012068324
(87)【国際公開番号】WO2013090124
(87)【国際公開日】20130620
【審査請求日】2015年12月4日
(31)【優先権主張番号】13/329,121
(32)【優先日】2011年12月16日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(74)【代理人】
【識別番号】100120112
【弁理士】
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100147991
【弁理士】
【氏名又は名称】鳥居 健一
(74)【代理人】
【識別番号】100119781
【弁理士】
【氏名又は名称】中村 彰吾
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(74)【代理人】
【識別番号】100138759
【弁理士】
【氏名又は名称】大房 直樹
(72)【発明者】
【氏名】レウス,エドワード
(72)【発明者】
【氏名】ゲルツェル,マリオ
(72)【発明者】
【氏名】ケイズ,デーヴィッド
(72)【発明者】
【氏名】メイヤー,ヘンリクス・ヨハネス・マリア
(72)【発明者】
【氏名】フィールド,スコット
(72)【発明者】
【氏名】ヒーリー,マイケル・ジョセフ
(72)【発明者】
【氏名】ダジー,ジョセフ
(72)【発明者】
【氏名】ドゥスール,ジョン
【審査官】 大塚 俊範
(56)【参考文献】
【文献】 特開2008−009842(JP,A)
【文献】 特開2011−238007(JP,A)
【文献】 特開2005−327261(JP,A)
【文献】 特開2003−271422(JP,A)
【文献】 特開2008−123195(JP,A)
【文献】 特開2008−171235(JP,A)
【文献】 米国特許出願公開第2010/0229187(US,A1)
【文献】 特開2010−186279(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30−11/34
G06F 11/00
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
方法であって、
第1計算デバイスのサービス・コンポーネントにより、第2計算デバイスの動作環境を示すコンテキスト情報を受け取るステップと、
前記動作環境において前記第2計算デバイスにより行われている1以上のオペレーションと関連するパフォーマンス情報を受け取るステップと、
前記コンテキスト情報を、前記パフォーマンス情報と相関させるステップであって
記相関させるステップは、
前記サービス・コンポーネントにより、前記コンテキスト情報または前記パフォーマンス情報の少なくとも1つと関連する、1以上のハードウェアの問題および1以上のソフトウェアの問題のうち少なくとも1つに関連する第1の情報を受信するステップ
を含む、ステップと、
前記コンテキスト情報を前記パフォーマンス情報と相関させるステップに応答して、前記第2計算デバイスへ構成情報を通信するステップであって、前記構成情報は、前記第2計算デバイスのソフトウェアをアップデートしないことの推奨、前記第2計算デバイスのハードウェアをアップデートしないことの推奨、前記第2計算デバイスのオペレーティング・システムをアップデートしないことの推奨、または前記第2計算デバイスのファームウェアをアップデートしないことの推奨のうち少なくとも1つを含む、ステップと、
を含む方法。
【請求項2】
請求項1に記載の方法であって、前記コンテキスト情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第2計算デバイスのソフトウェアの構成を示す情報を受け取るステップを更に含む、方法。
【請求項3】
請求項1に記載の方法であって、前記コンテキスト情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第2計算デバイスの位置を示す情報を受け取るステップを更に含む、方法。
【請求項4】
請求項1に記載の方法であって、前記コンテキスト情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第2計算デバイスと通信するように結合されるネットワークの構成を示す情報を受け取るステップを更に含む、方法。
【請求項5】
請求項1に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第2計算デバイスのオペレーティング・システムと、前記第2計算デバイスのソフトウェアと、前記第2計算デバイスのファームウェアとのうちの少なくとも1つと関連するメモリの消費を示す情報を受け取るステップを更に含む、方法。
【請求項6】
請求項1に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第2計算デバイスのハードウェアと、前記第2計算デバイスのソフトウェアと、前記第2計算デバイスのオペレーティング・システムと、第2の計算デバイスのファームウェアとのうちの少なくとも1つと関連する入力または出力の帯域幅を示す情報を受け取るステップを含む、方法。
【請求項7】
請求項1に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第2計算デバイスと通信するように結合されるネットワークの帯域幅を示す情報を受け取るステップを含む、方法。
【請求項8】
請求項1に記載の方法であって、パフォーマンス情報を受け取る前記ステップは、ネットワーク・ベースのサービスにより、前記第2計算デバイスと通信するように結合されるネットワークを介してのデータの処理と関連するレイテンシを示す情報を受け取るステップを含む、方法。
【請求項9】
請求項1に記載の方法であって、前記相関させるステップは、前記第1情報に基づいて、前記コンテキスト情報の1以上の部分から前記パフォーマンス情報の少なくとも一部の原因を推論するステップを更に含む、方法。
【請求項10】
請求項1に記載の方法であって、前記相関させるステップは、
第3計算デバイスのハードウェアの構成と、前記第3計算デバイスのソフトウェアの構成と、前記第3計算デバイスのオペレーティング・システムの構成と、前記第3計算デバイスのファームウェアの構成と、前記第3計算デバイスのパフォーマンスとのうちの少なくとも1つを示す別の情報を受け取るステップ
を更に含む、方法。
【請求項11】
請求項1に記載の方法であって、前記相関させるステップは、
前記コンテキスト情報の1以上の部分から前記パフォーマンス情報の少なくとも一部の原因を決定するステップと、
前記構成情報の少なくとも一部を第3計算デバイスへ通信するステップと
を更に含む、方法。
【請求項12】
請求項1に記載の方法であって、前記相関させるステップは、
第3計算デバイスと関連する少なくとも1つの通信と関連する別の情報を受け取るステップと、
前記別の情報に基づいて前記コンテキスト情報の1以上の部分から前記パフォーマンス情報の少なくとも1つの部分の原因を決定するステップ
を更に含む方法。
【請求項13】
請求項1に記載の方法であって、前記構成情報を第2計算デバイスへ通信するステップは、ネットワーク・プロトコル、通信プロトコルの少なくとも1つを利用するための推奨を通信するステップ
を更に含む方法。
【請求項14】
システムであって、
計算可能な読み出し可能なストレージ・デバイスに格納され、
クライアントから、前記クライアントの動作環境を示すコンテキスト情報と、前記動作環境において前記クライアントにより行われている1以上のオペレーションに関連するパフォーマンス情報とを受け取るように、および
相関情報に基づいて、アップデート情報を前記クライアントへ送るように構成されるインターフェース・コンポーネントであって、
前記アップデート情報は、前記クライアントのソフトウェアをアップデートしないことの推奨、前記クライアントのハードウェアをアップデートしないことの推奨、前記クライアントのオペレーティング・システムをアップデートしないことの推奨、前記クライアントのファームウェアをアップデートしないことの推奨のうち少なくとも1つを含む、インターフェース・コンポーネントと、
前記相関情報を得るために、前記コンテキスト情報および前記パフォーマンス情報の間の関係を推論するように構成されるサービス・コンポーネントと
を含むシステム。
【請求項15】
請求項14に記載のシステムであって、前記コンテキスト情報は、前記クライアントのハードウェアの構成を示す情報を含む、
システム。
【請求項16】
請求項14に記載のシステムであって、前記パフォーマンス情報は、
前記クライアントのオペレーティング・システムと、
前記クライアントと通信するように結合されるネットワークと関連するレイテンシと
のうちの少なくとも1つを示す情報を含む、システム。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] 従来の計算技術は、計算デバイスで動作するが応答しない又は不適切に機能するソフトウェアと関連する情報を集める。例えば、クラッシュ報告技術は、クラッシュまたは計算デバイスでの応答を停止したアプリケーションのエラー・デバッグ後の情報を集める。更に、そのような技術は、そのような情報を分析して、使用可能なソリューションをデバイスのユーザーへ送ることができる。
【0002】
[0002] 別の例では、従来の計算技術は、ユーザーの計算デバイスへインストールされたアプリケーション(1以上)に対しての使用可能なアップデートを示す情報をユーザーへ提供する。次に、そのような技術は、ユーザーに、使用可能なアップデートをインストールすることを促す。
【0003】
[0003] しかし、従来の計算技術は、数ある欠点の中のものであるが、計算デバイスのハードウェアおよび/またはソフトウェアと関連するアップデートを示す情報の通信が遅延することにより、および/またはユーザーの方での追加の努力または理解を必要とすることにより、計算デバイスと関連するユーザーのエクスペリエンス(1以上)を低下させる。
【0004】
[0004] 現在の技術の上記の欠点は、単に、従来のシステムの幾つかの問題の概観を提供することを意図しており、網羅的であることを意図していない。従来のシステムの他の問題と、ここで説明する限定ではない様々な実施形態における対応する利点は、以下の記載を検討することにより、更に明らかになる。
【発明の概要】
【0005】
[0005] 後続の詳細な説明および添付の図面における例示であり限定ではない実施形態の様々な態様の基礎的および一般的な理解を可能にする手助けとして、ここで、簡素化した概要を提供する。しかし、この概要は、広範囲にわたる網羅的な概観であることを意図していない。この概要の唯一の目的は、以下の様々な実施形態の詳細な説明の前置きとして、幾つかの例示であり限定ではない実施形態と関連する幾つかの概念を簡素化した形で呈示することである。
【0006】
[0006] 1以上の実施形態および対応する開示に従うと、アップデート情報をデバイスへ予想して送るための様々な限定ではない態様が、デバイスのコンテキストおよびパフォーマンスの情報の監視と関連して開示される。
【0007】
[0007] 例えば、実施形態は、例えばサーバーである第1計算デバイスと関連するサービス・コンポーネント(例えば、任意の形の有線サービス、ワイヤレス・サービス、例えば、クラウド・ベースのサービス、デバイス・サービス、またはコンポーネント・サービスなどのようなもの、例えば、サムドライブ(thumbdrive)・サービスなどのようなもの、またはそれらの組み合わせを含むネットワーク・ベースのサービス)により、例えばネットワーク・ベースのサービスのクライアントである第2計算デバイスの動作環境の部分(1以上)を示すコンテキスト情報を受け取ること、ユーザー・パフォーマンス情報を受け取ること、またはユーザーの推論される将来の活動、現在の活動、または過去の活動についての情報を受け取ることを含む。1つの例では、コンテキスト情報は、例えば、中央処理装置(CPU)、メモリ、ディスク・ストレージなどのようなハードウェア、および/または例えば、アプリケーション(1以上)、オペレーティング・システム(OS)などのようなソフトウェアの構成と、第2計算デバイスの位置と、第2計算デバイスなどと通信するように結合されるネットワーク、サービスなどの構成とを、含むことができる。従って、コンテキスト情報と、ユーザーのパフォーマンスと、ユーザーの活動との何れのものも、構成情報の通信のためのベースとすることができる。
【0008】
[0008] 更に、実施形態は、動作環境において第2計算デバイスにより行われている1以上のオペレーションと関連するパフォーマンス情報を受け取ることを含む。例えば、パフォーマンス情報は、第2計算デバイスのオペレーティング・システム、第2計算デバイスのソフトウェア、第2計算デバイスのファームウェアなどと関連するメモリの消費と、オペレーティング・システム、ソフトウェア、ファームウェアなどの実行と関連する入力/出力(I/O)帯域幅と、ネットワークの帯域幅と、ネットワークなどを介してのデータの処理と関連するレイテンシとを、示すことができる。
【0009】
[0009] 次に、コンテキスト情報とパフォーマンス情報とを相関させることに応じて、構成(またはアップデート)情報が、第2計算デバイスへ通信される。例えば、第2計算デバイスのオペレーティング・システム、ソフトウェア、ファームウェア、および/またはハードウェアをアップグレードすること、アップデートすること、アップグレードしないこと、アップデートしないことなどの推奨、提案などを、含むことができる。別の例では、構成情報は、ネットワーク、通信プロトコルなど用いることの推奨を含むことができる。
【0010】
[0010] 1つの実施形態では、コンテキスト情報とパフォーマンス情報とを相関させることは、コンテキスト情報の一部からパフォーマンス情報の一部の原因を推論することを更に含む。別の実施形態では、相関させることは、(1)第3計算デバイスのハードウェアおよび/またはソフトウェアの構成を示す別の情報、および/または(2)第3計算デバイスのパフォーマンスを示す別の情報を受け取ることと、別の情報に基づいて構成情報を決定することとを、更に含む。
【0011】
[0011] 更に別の実施形態では、相関させることは、コンテキスト情報の一部からパフォーマンス情報の一部の原因を決定することと、第3計算デバイス、例えば、ハードウェアおよび/またはソフトウェアのオペレーションに関する情報を受け取ることと関連するシステムへ、構成情報の一部を通信することとを、更に含む。
【0012】
[0012] 1つの実施形態では、コンテキスト情報および/またはパフォーマンス情報と関連するハードウェアおよび/またはソフトウェアの問題(1以上)についての、第三者により行われる通信(1以上)、例えば、クエリ、サーチなどと関連する別の情報を受け取ることと、通信(1以上)と関連する別の情報に基づいて、コンテキスト情報の一部からパフォーマンス情報の一部の原因を決定することとを、更に含む。
【0013】
[0013] 1つの限定ではない実装では、インターフェース・コンポーネントは、クライアントから、クライアントの動作環境を示すコンテキスト情報と、動作環境に基づいてクライアントにより行われるオペレーション(1以上)と関連するパフォーマンス情報とを、受け取ることができる。更に、サービス・コンポーネントは、相関情報を得るためにコンテキスト情報とパフォーマンス情報との間の関係を推論することができ、インターフェース・コンポーネントは、相関情報に基づいて、クライアントへ、構成情報またはアップデート情報を送ることができる。
【0014】
[0014] 1つの実施形態では、コンテキスト情報は、クライアントのハードウェアおよび/またはソフトウェアの構成を示す情報、クライアントと通信できるように結合されるネットワークの構成、および/またはクライアントの位置を示す情報を含む。更に、構成情報は、クライアントのソフトウェアおよび/またはハードウェアをアップデートすること、アップグレードすること、アップデートしないこと、アップグレードしないことなどの推奨を示す情報を含む。
【0015】
[0015] 別の実施形態では、パフォーマンス情報は、クライアントのオペレーティング・システム、クライアントのソフトウェア、および/またはクライアントのファームウェアと関連するメモリの消費を示す情報、クライアントによるオペレーティング・システム、ソフトウェア、および/またはファームウェアの実行と関連する入力/出力帯域幅を示す情報、クライアントと通信できるように結合されたネットワークの帯域幅を示す情報、および/またはネットワークと関連するレイテンシを示す情報を含む。
【0016】
[0016] 別の限定ではない実装では、方法は、計算デバイスにより行われるオペレーション(1以上)の部分(1以上)と関連する動作環境の部分(1以上)を示すコンテキスト情報を、計算デバイスにより格納することを、含むことができる。更に、方法は、オペレーション(1以上)の部分(1以上)と関連するコンテキスト情報およびパフォーマンス情報をサービス・コンポーネントへ送ることを、含むことができる。更に、方法は、計算デバイスを構成するために、コンテキスト情報およびパフォーマンス情報に基づいて、サービス・コンポーネントから構成情報を受け取ることを、含むことができる。
【0017】
[0017] 1つの実施形態では、コンテキスト情報を格納することは、キャッシュされた情報を得られるように、キャッシュに、コンテキスト情報の部分(1以上)を入れておくことと、キャッシュされた情報の部分(1以上)をサービス・コンポーネントへ送ることとを、更に含む。別の実施形態では、方法は、構成情報に基づいて計算デバイスのソフトウェアおよび/またはハードウェアを構成することを、含むことができる。
【0018】
[0018] 別の実施形態では、方法は、第1計算デバイスのサービス・コンポーネントにより、複数のクライアントのそれぞれの動作環境を示すコンテキスト情報を複数のクライアントからを受け取り、その情報をデータ・ストアに格納することと、それぞれの動作環境において複数のクライアントにより行われているそれぞれのオペレーションと関連するパフォーマンス情報を受け取ることと、その情報をデータ・ベースに格納することとを、含むことができる。次に、データ・ストアを用いてコンテキスト情報とパフォーマンス情報とを相関させることに応じて、第2計算デバイスの推奨される構成を推論することができる。更に、推奨される構成を第2計算デバイスへ通信することができる。
【0019】
[0019] 他の実施形態および様々な限定ではない例、シナリオ、および実装は、後に詳細に説明する。
[0020] 様々な限定ではない実施形態は、添付の図面を参照して更に説明する。
【図面の簡単な説明】
【0020】
図1図1は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための例示の環境を示す。
図2図2は、別の実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための例示の環境を示す。
図3図3は、更に別の実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための例示の環境を示す。
図4図4は、実施形態に従った、サービス・アプリケーション・システムを含む例示の環境を示す。
図5図5は、実施形態に従った、キャッシュを含む例示の環境を示す。
図6図6ないし図9は、様々な実施形態に従った、例示のプロセスを示す。
図7図6ないし図9は、様々な実施形態に従った、例示のプロセスを示す。
図8図6ないし図9は、様々な実施形態に従った、例示のプロセスを示す。
図9図6ないし図9は、様々な実施形態に従った、例示のプロセスを示す。
図10図10は、ここで説明する様々な実施形態を実施することができる、例示的な限定的ではないネットワーク化された環境を表すブロック図である。
図11図11は、ここで説明する様々な実施形態の1以上の態様を実施することができる、例示的な限定的ではない計算システムまたは動作環境を表すブロック図である。
【発明を実施するための形態】
【0021】
概観
[0029] 背景で示したように、従来の計算技術は、デバイスの動作パフォーマンスを監視せず、動作パフォーマンスに基づいてアップデート情報をデバイスへ予想して送らない。従来の技術のこれら及び他の欠点を考慮し、ここで開示される主題事項は、デバイスのコンテキスト情報とパフォーマンス情報とを相関させること、およびそのような情報に基づいて構成情報をデバイスへ送ることと、関連する。
【0022】
[0030] 1つの実施形態では、方法は、第1計算デバイスのサービス・コンポーネントにより、第2計算デバイスの動作環境の1以上の部分を示すコンテキスト情報を受け取ることと、動作環境において第2計算デバイスにより行われている1以上のオペレーションと関連するパフォーマンス情報を受け取ることとを、含む。次に、コンテキスト情報とパフォーマンス情報とを相関させることに応じて、構成情報を第2計算デバイスへ通信する。
【0023】
[0031] 別の限定ではない実装では、コンピューター実行可能命令を含むコンピューター読取可能ストレージ媒体が提供され、コンピューター実行可能命令は、実行に応じて、計算デバイスにオペレーションを行わせる。オペレーションは、オペレーションの部分(1以上)と関連する動作環境の部分(1以上)を示すコンテキスト情報を、計算デバイスにより格納することを、含む。
【0024】
[0032] 更に、方法は、計算デバイスにより行われるオペレーション(1以上)のうちの少なくとも1つのオペレーションと関連するパフォーマンス情報とコンテキスト情報とをサービス・コンポーネントへ送ることを、含むことができる。更に、方法は、計算デバイスを構成するために、コンテキスト情報およびパフォーマンス情報に基づいて、サービス・コンポーネントから構成情報を受け取ることを、含むことができる。
【0025】
[0033] 1つの実施形態では、システムは、計算可能な読取可能なストレージ媒体に格納されたインターフェース・コンポーネントを含み、インターフェース・コンポーネントは、クライアントから、クライアントの動作環境を示すコンテキスト情報と、動作環境に基づいてクライアントにより行われる1以上のオペレーションと関連するパフォーマンス情報とを受け取るように、構成される。更に、インターフェース・コンポーネントは、相関情報に基づいて、アップデート情報をクライアントへ送ることができる。更に、サービス・コンポーネントは、相関情報を得るために、コンテキスト情報とパフォーマンス情報との間の関係を推論することができる。
【0026】
[0034] 別の実施形態では、方法は、第1計算デバイスのサービス・コンポーネントにより、複数のクライアントのそれぞれの動作環境を示すコンテキスト情報を複数のクライアントから受け取り、そのコンテキスト情報を、データベースなどのようなデータ・ストアに格納することと、それぞれの動作環境において複数のクライアントにより行われているそれぞれのオペレーションと関連するパフォーマンス情報を受け取り、そのパフォーマンス情報をデータ・ストアに格納することと、データ・ストアを用いてコンテキスト情報とパフォーマンス情報とを相関させることに応じて、第2計算デバイスの推奨される構成を推論することと、推奨される構成を第2計算デバイスへ通信することとを、含むことができる。
【0027】
[0035] そのような技術は、構成情報をデバイスへ予想して送るために、デバイスのパフォーマンス情報を監視することを可能にする。
構成情報をデバイスへ予想して送るためのデバイスのパフォーマンス情報の監視
[0036] ここで図1図3を参照すると、例えば、ネットワーク・ベースのサービスの情報サービスと関連するサーバー120を含む様々な実施形態に従ったサービス環境(100、200、300)が、示されている。不確かなことを避けるためであるが、ここで明細書に記載されるか、図面に示されるか、または特許請求の範囲に記載される何れのネットワーク・サービスやサービス・コンポーネントも、デバイスがインターフェースできる何れのサービスやコンポーネントにも適用可能であり、それらは、任意の形の有線、ワイヤレス、またはデバイス・ベースまたはコンポーネント・ベースの通信を含み、限定ではないが、イーサネット(登録商標)、同期光ネットワーク(SONET)、非同期転送モード(ATM)、ユニバーサル・シリアル・バス(USB)、または限定ではないがフロッピー(登録商標)・ディスクやジャンプ・デバイスなどのような共有デバイスを介する「スニーカーネット」通信と呼ばれるものを含む。従って、「サービス・コンポーネント」や「ネットワーク・ベースのサービス」などのような用語は、サービス・コンポーネントやネットワーク・ベースのサービスが何であるかという観点で、一貫して解釈される。
【0028】
[0037] サーバー120は、インターフェース・コンポーネント130とサービス・コンポーネント140とを含む。インターフェース・コンポーネント130は、例えば、ネットワーク・ベースの情報サービスを介してクライアント110から、動作環境、例えば、クライアント110のサービス環境100、サービス環境200、サービス環境300などを示すコンテキスト情報112を、受け取ることができる。1つの態様において、コンテキスト情報112は、クライアント110のオペレーティング・システム、クライアント110のソフトウェア、クライアント110のファームウェア、および/またはクライアント110のハードウェアの構成、クライアント110と通信するように結合されるネットワーク210の構成、および/またはクライアント110の位置を示す情報を示す情報を、含むことができる。コンテキスト情報に加えて、入力として、ユーザーの嗜好の情報を受け取ることができ、ユーザーの推論される将来の活動、現在の活動、または過去の活動についての情報を受け取ることができる。従って、コンテキスト情報と、ユーザーのパフォーマンスと、ユーザーの活動との何れのものも、構成情報の通信のためのベースとすることができる。
【0029】
[0038] 更に、インターフェース・コンポーネント130は、クライアント110、ネットワーク210、および計算デバイス310から、それぞれ、パフォーマンス情報114、パフォーマンス情報220、およびパフォーマンス情報320を含む情報を受け取ることができる。実施形態において、パフォーマンス情報114は、動作環境に基づいて、例えば、オペレーティング・システム、ソフトウェア、ファームウェアなどを介してクライアント110により行われるオペレーション(1以上)と、関連することができる。1つの態様では、パフォーマンス情報114は、オペレーション(1以上)と関連するメモリの消費を示す情報、および/またはオペレーション(1以上)と関連する入力/出力帯域幅を示す情報を、含むことができる。
【0030】
[0039] 別の実施形態では、パフォーマンス情報220は、ネットワーク210の帯域幅を示す情報、および/または、例えば、ネットワーク210を介してのデータの処理と関連するレイテンシを示す情報を含むことができる。更に別の実施形態では、パフォーマンス情報320は、計算デバイス310のハードウェアの構成を示す情報を含むことができる。様々な態様において、計算デバイスは、通信するようにネットワーク210へ結合することができ、また、通信するようにネットワーク210とは異なるネットワークなどへ結合することができる。1つの態様では、パフォーマンス情報320は、計算デバイス310のソフトウェア、ハードウェア、ファームウェア、オペレーティング・システムなどの構成を示す情報、および/または計算デバイス310のパフォーマンスを示す情報を、含むことができる。
【0031】
[0040] ここで開示する例示であり限定ではない実施形態の様々な態様は、アプリケーション(1以上)、ソフトウェア・パッチ(1以上)、ソフトウェア・アップデート(1以上)、オペレーティング・システム・アップデート(1以上)、ファームウェア・アップデート(1以上)、ハードウェア・アップデート(1以上)などを識別して、クライアント110の動作パフォーマンスを改善するために、クライアント110への、アップデート情報、アップグレード情報、構成情報150などの提供、送信などを予想および/または率先して行うために、コンテキスト情報112と、パフォーマンス情報、例えば、パフォーマンス情報114、パフォーマンス情報220、パフォーマンス情報320などとを、監視することができる。
【0032】
[0041] 従って、1つの実施形態では、サービス・コンポーネント140は、コンテキスト情報112と、パフォーマンス情報114、パフォーマンス情報220、および/またはパフォーマンス情報320とを相関させるように、構成することができる。例えば、サービス・コンポーネント140は、相関情報の獲得、導出、計算などを行うために、コンテキスト情報112と、パフォーマンス情報114、パフォーマンス情報220、および/またはパフォーマンス情報320との関係を、推論することができる。
【0033】
[0042] 1つの例では、サービス・コンポーネント140は、過剰な量のメモリおよび/またはCPUサイクルがクライアント110により消費されていることとを示すパフォーマンス情報114に基づいて、例えばコンテキスト情報112により示されているクライアント110により実行されているソフトウェアおよび/またはアプリケーションに応答してクライアント110が低速で動作していること、動作が鈍いことなどを示す相関情報を、推論することができる。従って、サービス・コンポーネント140は、コンテキスト情報112の1以上の部分から、パフォーマンス情報114の少なくとも一部の原因を推論することができる。
【0034】
[0043] 例えば、1以上の態様において、サービス・コンポーネント140は、コンテキスト情報および相関情報と関連する1以上のデータ構造(示さず)を含むことができ、集中させることも、可能性としては複数のデバイスおよび/またははスキームにわたって分散させることもできる。それに従うと、ここで説明する推論(1以上)、相関(1以上)を提供または援助するために、サービス・コンポーネント140は、使用可能なデータの全体またはサブセットを検査することができ、それについての理由を提供すること、またはそれぞれのシステム(1以上)、環境(1以上)、および/またはユーザー(1以上)の状態を、イベントおよび/またはデータを介して捕獲した観察の組から推論することができる。
【0035】
[0044] 更に、推論は、例えば、特定のコンテンツやアクションを識別するために用いることができ、また、状態にわたっての確率分布を生成することができる。推論は、確率的、即ち、データおよびイベントの考慮に基づいての対象とする状態にわたっての確率分布の計算であり得る。推論はまた、イベントおよび/またはデータのセットから高位イベントを作るために用いる技術に関連する。
【0036】
[0045] そのような推論は、イベントが時間的に近接して相関するか否かにかかわらず、また、イベントおよびデータが1以上のイベントおよびデータのソースからのものであるかにかかわらず、観察したイベントおよび/または格納したイベント・データのセットから、新たなイベントやアクションを構成させることができる。様々な分類(明確および/または暗黙にトレーニングされる)スキームおよび/またはシステム(例えば、サポート・ベクター・マシン、ニューラル・ネットワーク、エキスパート・システム、ベイエジアン信念ネットワーク、ファジー・ロジック、データ・フュージョン・エンジン・・・)を、特許請求される主題事項と関連して自動および/または推論のアクション、相関(1以上)などを行うことと関連して、用いることができる。
【0037】
[0046] 分類器(classifier)は、入力属性ベクトルであるx=(x1,x2,x3,x4,xn)を、入力がクラスに属するコンフィデンス(confidence)、即ち、f(x)=confidence(class)へマップする機能であり得る。そのような分類は、自動的に行われることをユーザーが望むアクションを予測または推論するために、確率および/または統計を基にする分析(例えば、分析のユーティリティーおよびコストへの要素へと分ける(factoring into))を用いることができる。サポート・ベクター・マシン(SVM)は、用いることができる分類器の一例である。SVMは、可能な入力の空間における超曲面を見つけることにより動作し、超曲面は、トリガする基準をトリガしないイベントから分離することを試みる。直感的には、これは、トレーニング・データに近いが同じではないデータのテストに関して、分類を正しくする。
【0038】
[0047] 或る方向に向けられた及び向けられていない他のモデル分類アプローチは、例えば、ナイーブ・ベイズ(naive Bayes)、ベイエジアン・ネットワーク(Bayesian network)、デシジョン・ツリー、ニューラル・ネットワーク、ファジー・ロジック・モデルを含み、また、異なるパターンの独立性を提供する確率的分類モデルを用いることができる。ここで用いられる分類はまた、優先度のモデルを開発するために用いられる統計回帰(statistical regression)を含む。
【0039】
[0048] 再び図1図3を参照すると、インターフェース・コンポーネント130は、相関情報に基づいて、クライアント110へ、構成情報150、アップデート情報、アップグレード情報などの送信、通信などを行うことができる。1つの態様では、構成情報150は、(1)クライアント110のオペレーティング・システム、ソフトウェア、ファームウェア、ハードウェアなどのアップデート、アップグレードなどを行うことの推奨を含むこと、(2)オペレーティング・システム、ソフトウェア、ファームウェア、ハードウェアなどのアップデート、アップグレードなどのインストールを行わないことの推奨を含むこと、(3)例えば、クライアント110の動作性能を向上させるための、クライアント110でのインストール、実行などが可能なアプリケーション(1以上)、ソフトウェア・パッチ(1以上)、ソフトウェア・アップデート(1以上)、ハードウェア・アップデート(1以上)、ファームウェア・アップデート(1以上)、オペレーティング・システム・アップデート(1以上)などを識別すること、および/または(4)ネットワーク・プロトコルおよび/または通信プロトコルを用いることの推奨を、含むことができる。
【0040】
[0049] 例えば、クライアント110が、第1デバイス、例えば、周辺デバイス、プリンター、スキャナー、ゲーム・デバイスなどと通信するように結合されたことを示すコンテキスト情報112に応じて、インターフェース・コンポーネント130は、例えば、サービス・コンポーネント140を介して導出された構成情報150を、クライアント110へ送ることができ、それにより、例えば、クライアント110と通信するように結合されていない第2デバイス(または第2周辺デバイス)と関連するハードウェアおよび/またはソフトウェアのアップデート(1以上)、ソフトウェア・パッチ(1以上)、オペレーティング・システム・アップデート(1以上)、ファームウェア・アップデート(1以上)などをスキップすること又は行わないことを、示すことができる。別の例では、クライアント110を介して選択されているファイルのパターン、シリーズなどを示すコンテキスト情報112に応じて、インターフェース・コンポーネント130は、例えば、サービス・コンポーネント140を介して導出された構成情報150を、クライアント110へ送ることができ、それにより、クライアント110においてインストールするファイルと関連するハードウェアおよび/またはソフトウェアのアップデート(1以上)、ソフトウェア・パッチ(1以上)、オペレーティング・システム・アップデート(1以上)、ファームウェア・アップデート(1以上)などを、示すことができる。
【0041】
[0050] 別の態様では、クライアント110にインストールされているソフトウェア、アプリケーション、オペレーティング・システム、ファームウェアなどのタイプのパターン、シリーズなどを示すコンテキスト情報112に応じて、インターフェース・コンポーネント130は、例えば、サービス・コンポーネント140を介して導出された構成情報150を、クライアント110へ送ることができ、それにより、クライアント110にインストールされているソフトウェア、アプリケーション、オペレーティング・システム、ファームウェアなどのタイプに基づいて、ハードウェアおよび/またはソフトウェアのアップデート(1以上)、ソフトウェア・パッチ(1以上)、オペレーティング・システム・アップデート(1以上)、ファームウェア・アップデート(1以上)などをクライアント110に対して行うことの推奨などを、示すことができる。
【0042】
[0051] 図3に示す態様では、サーバー120は、計算デバイス310のハードウェアおよび/またはソフトウェアの構成を示す構成情報を、計算デバイス310から受け取ることができる。更に、サーバー120は、例えば、計算デバイス310を介して実行されているオペレーティング・システム、ソフトウェア、ファームウェアなどと関連するメモリの消費を示すパフォーマンス情報320を、計算デバイス310から受け取ることができる。更に、サービス・コンポーネント140は、構成情報およびパフォーマンス情報320に基づいて、構成情報150の決定、推論などを行うことができる。例えば、クライアント110とコンパチブルである計算デバイス310のオペレーティング・システム、ハードウェア、ファームウェア、および/またはソフトウェアの態様(1以上)に応じて、サービス・コンポーネント140は、構成情報150を介して、クライアント110のオペレーティング・システム、ハードウェア、ファームウェア、および/またはソフトウェアに対してアップデート(1以上)を行うことを、推奨することができる。
【0043】
[0052] 別の態様では、サーバー120は、通信(1以上)の情報、例えば、計算デバイス310を介して行われるネットワーク・クエリ、ソーシャル・ネットワーク・クエリなどを、受け取ることができる。更に、サービス・コンポーネント140は、パフォーマンス情報114、220、320などの少なくとも一部の原因を、通信(1以上)の情報の部分(1以上)から、決定することができる。従って、サービス・コンポーネント140は、例えば、ハードウェアおよび/またはソフトウェアの問題と関連する、例えば、第三者のサーチ、ネットワーク・クエリ、メッセージなどにおけるスパイク(spike(s))(1以上)についての知識を相関させて且つ/又は活用して、構成情報150の決定、推論などを行うことができる。
【0044】
[0053] 図4に示す態様では、サービス・コンポーネント140は、例えば、クライアント110のオペレーション(1以上)と関連する情報、ログ、エラー・ログなどを記録するために、例えば、クライアント110で動作する及び/又はクライアント110へ通信するように結合されるハードウェア、ファームウェア、オペレーティング・システム、ソフトウェアなどのソース、製造者、開発者などと関連することができるサービス・アプリケーションの計算デバイス410へ、構成情報150の少なくとも一部を通信するように構成することができる。
【0045】
[0054] ここで図5を参照すると、クライアント110は、コンピューター実行可能命令を含むコンピューター読取可能ストレージ媒体と関連することができ、コンピューター実行可能命令は、実行に応じて、クライアント110に、動作環境500の1以上の部分を示すコンテキスト情報を格納させる。更に、クライアント110は、クライアント110により行われるオペレーションのうちの少なくとも1つのオペレーションと関連するコンテキスト情報およびパフォーマンス情報を、サーバー120、例えば、インターフェース・コンポーネント130へ、送ることができる。更に、クライアント110は、コンテキスト情報およびパフォーマンス情報に基づいて、例えば、サービス・コンポーネント140から、クライアント110を構成するための構成情報を受け取ることができる。
【0046】
[0055] 1つの態様では、クライアント110のハードウェアおよび/またはクライアント110のソフトウェアの構成、クライアント110と通信するように結合されるネットワーク(示さず)の構成、および/またはクライアント110の位置を示す情報を示す情報を、含むことができる。
【0047】
[0056] 別の態様では、パフォーマンス情報は、少なくとも1つのオペレーションと関連することができ、例えば、クライアント110のオペレーティング・システム、クライアント110により実行されているソフトウェア、クライアント110により実行されているファームウェアなどと関連するメモリの消費を示す。更に別の態様では、クライアント110は、キャッシュされた情報を得られるように、キャッシュ510に、コンテキスト情報の少なくとも一部を入れておくことができる。更に、クライアント110は、キャッシュされた情報の少なくとも一部を、サーバー120、例えば、サービス・コンポーネント140へ送ることができる。1つの態様では、クライアント110は、構成情報に基づいて、クライアント110のソフトウェア、ハードウェア、ファームウェア、オペレーティング・システムなどを構成することができる。
【0048】
[0057] 図6は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための、例示であり限定ではない実施形態を示すフロー図である。600において、第1計算デバイスのサービス・コンポーネントは、第2計算デバイスの動作環境の1以上の部分を示すコンテキスト情報を受け取ることができる。610において、動作環境において第2計算デバイスにより行われている1以上のオペレーションと関連するパフォーマンス情報を、例えば、第1計算デバイスにより、受け取ることができる。620において、構成情報を得るためにコンテキスト情報をパフォーマンス情報と相関させることができる。630において、構成情報を第2計算デバイスへ通信することができる。
【0049】
[0058] 1つの実施形態では、コンテキスト情報は、第2計算デバイスのハードウェア、ソフトウェア、ファームウェア、および/またはオペレーティング・システムの構成を示す情報を含む。別の実施形態では、コンテキスト情報は、第2計算デバイスの位置を示す情報を含む。更に別の実施形態では、コンテキスト情報は、第2計算デバイスと通信するように結合されるネットワークの構成を示す情報を含む。
【0050】
[0059] 1つの実施形態では、パフォーマンス情報は、例えば、第2計算デバイスに実行されている及び/又は動作させられているハードウェア、ソフトウェア、ファームウェア、および/またはオペレーティング・システムと関連するメモリの消費を示す情報を含む。別の実施形態は、例えば、第2計算デバイスにより実行されているソフトウェア、ファームウェア、オペレーティング・システムなどと関連する入力/出力帯域幅を示す情報を、受け取ることを含む。更に別の実施形態は、第2計算デバイスと通信するように結合されるネットワークの帯域幅を示す情報を受け取ること、および/またはネットワークを介してのデータの処理と関連するレイテンシを示す情報を受け取ることを、含む。
【0051】
[0060] 図7は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための、例示であり限定ではない別の実施形態を示すフロー図である。700において、計算デバイスにより行われるオペレーション(1以上)の少なくとも一部と関連する動作環境の部分(1以上)を示すコンテキスト情報を、計算デバイスにより格納することができる。710において、オペレーション(1以上)のうちのオペレーションと関連するコンテキスト情報およびパフォーマンス情報を、計算デバイスにより、サービス・コンポーネントへ送ることができる。720において、計算デバイスを構成するために、サービス・コンポーネントにより送られた構成情報を、サービス・コンポーネントから、コンテキスト情報およびパフォーマンス情報に基づいて計算デバイスにより、受け取ることができる。730において、計算デバイスのソフトウェア、ファームウェア、オペレーティング・システム、および/またはハードウェアを、構成情報に基づいて、計算デバイスにより構成することができる。
【0052】
[0061] 図8は、実施形態に従った、アップデート情報をデバイスへ予想して送るためにデバイスのパフォーマンス情報を監視するための、例示であり限定ではない更に別の実施形態を示すフロー図である。800において、クライアントから、クライアントの動作環境を示すコンテキスト情報と、動作環境に基づいてクライアントにより行われているオペレーション(1以上)と関連するパフォーマンス情報とを、受け取ることができる。810において、例えば、別のクライアントの計算デバイスおよび/またはネットワークと関連する別の情報が受け取られた場合、フローは830へと続き、830で、構成情報を得るために、コンテキスト情報と別の情報との間の関係を推論することができ、そうではない場合、フローは820へと続き、820で、構成情報を得るために、コンテキスト情報とパフォーマンス情報との間の関係を推論することができる。
【0053】
[0062] フローは820および830から840へと続き、840において、構成情報をクライアントへ通信することができる。例えば、1つの実施形態では、構成情報は、クライアントのハードウェアおよび/またはソフトウェアのうちの少なくとも1つをアップデートすることの推奨を、含むことができる。
【0054】
[0063] 図9は、実施形態に従った、アップデートまたは構成の情報をデバイスへ予想して送るために複数のクライアントのパフォーマンス情報を監視するための、例示であり限定ではない実施形態を示すフロー図である。900において、複数のクライアントのそれぞれの動作環境を示すコンテキスト情報を受け取り、データ・ベースに格納することができる。910において、それぞれの動作環境において複数のクライアントにより行われているそれぞれのオペレーションと関連するパフォーマンス情報を受け取り、データ・ベースに格納することができる。920において、相関情報を得るために、データ・ベースを用いて、コンテキスト情報とパフォーマンス情報とを相関させることができる。930において、相関情報に基づいて、第2計算デバイスの推奨される構成を推論することができる。940において、推奨される構成を第2計算デバイスへ通信することができる。
【0055】
例示のネットワーク型および分散型の環境
[0064] 当業者は、アップデート情報をデバイスへ予想して送るためにコンテキストおよびパフォーマンスの情報を監視するための、ここで説明する様々な実施形態を、任意のコンピューターや他のクライアント・デバイス、例えば、クライアント110、サーバー120などと関連して実施できることを、理解することができる。そのようなデバイスは、コンピューター・ネットワークの一部として配備することや、分散型の環境で配備することができ、また、媒体を見つけることができる任意の種類のデータ・ストアへ接続することができる。
【0056】
[0065] これに関して、ここで説明する様々な実施形態は、任意の数のメモリやストレージ・ユニットを有し、且つ任意の数のストレージ・ユニットにわたって任意の数のアプリケーションおよびプロセスが生じる任意のコンピューター・システムや環境で、実施することができる。これは、限定ではないが、リモートまたはローカルのストレージを有し、サーバー・コンピューターおよびクライアント・コンピューターがネットワーク環境において配備される環境、または分散型計算環境を含む。
【0057】
[0066] 分散型の計算は、計算デバイスおよび計算システムの間での通信による交換により、コンピューター・リソースおよびサービスの共有を提供する。これらのリソースおよびサービスは、情報の交換、ファイルなどのようなオブジェクトのキャッシュへの格納やディスクへの格納を含む。これらのリソースおよびサービスはまた、負荷の分散、リソースの拡張、処理の専門化などのために、複数の処理装置にわたって処理パワーを共有することを含む。分散型の計算は、ネットワーク接続性の利点を用い、エンタープライズ全体へ利益を与えるために、複数のクライアントがそれらの集団的パワーを活用することを可能にする。これに関して、主題の開示の様々な実施形態に関して説明したデバイスのコンテキストおよびパフォーマンスの情報の監視と関連するオペレーションを行うための機構に参加し得るアプリケーション、オブジェクト、またはリソースを、様々なデバイスは有し得る。
【0058】
[0067] 図10は、例示的なネットワーク型または分散型の計算環境の概略的な図を提供する。分散型計算環境は、計算オブジェクト1010、1012などと、計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などとを含み、これらは、プログラム、メソッド、データ・ストア、プログラマブル・ロジックなどを含むことができ、アプリケーション1030、1032、1034、1036、1038として表されている。計算オブジェクト1010、1012などと、計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などとは、様々なデバイス、例えば、PDA、オーディオ/ビデオ・デバイス、モバイル・フォン、MP3プレーヤー、パーソナル・コンピューター、ラップトップなどを含み得ることに注意されたい。
【0059】
[0068] 計算オブジェクト1010、1012などと、計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などとのそれぞれは、通信ネットワーク1040を用いて、直接的または間接的に、計算オブジェクト1010、1012などと、計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などとのうちの他の1以上のものと、通信することができる。通信ネットワーク/バス1040は、図10では単一のエレメントとして示されているが、通信ネットワーク/バス1040は、図10のシステムへサービスを提供する他の計算オブジェクトおよび計算デバイスを含むものであり得、かつ/または複数の相互接続されたネットワークを表すもので有り得るが、それらは図に示していない。また、計算オブジェクト1010、1012など、または計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などのそれぞれは、アプリケーション1030、1032、1034、1036、1038などのようなアプリケーションを含むことができ、アプリケーションは、本開示の様々な実施形態に従って提供されたデバイスのコンテキストおよびパフォーマンスの情報の監視のための技術との通信や、技術のインプリメンテーションに適切な、API、または他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを使用し得る。
【0060】
[0069] 分散型計算環境をサポートする様々なシステム、コンポーネント、およびネットワーク構成がある。例えば、複数の計算システムは、有線またはワイヤレスのシステムにより、ローカル・ネットワークや広く分散されたネットワークにより、共に接続することができる。現在、多くのネットワークはインターネットと接続されており、インターネットは、広く分散した計算に対するインフラストラクチャーを提供するものであり、かつ多くの異なるネットワークを含む。なお、任意のネットワーク・インフラストラクチャーを、様々な実施形態において説明したデバイスのコンテキストおよびパフォーマンスの情報を監視するシステムに対して入るようにされる例示的な通信に、用いることができる。
【0061】
[0070] 即ち、ネットワーク・トポロジーのホストおよびネットワーク・インフラストラクチャー、例えば、クライアント/サーバーや、ピア・ツー・ピアや、ハイブリッドのアーキテクチャーを、用いることができる。「クライアント」は、1つのクラスまたはグループのメンバーであり、この1つのクラスまたはグループのメンバーは、それと関連していない別のクラスまたはグループのサービスを用いる。クライアントは、サービスを要求するプロセス、即ち、概略的には、命令やタスクの組とすることができ、このプロセスは、別のプログラムやプロセスにより提供されるサービスを要求する。クライアントのプロセスは、要求したサービスを用いるが、他のプログラムやサービス自体の作業の詳細について「知る」必要は無い。
【0062】
[0071] クライアント/サーバーのアーキテクチャー、特に、ネットワーク型のシステムでは、クライアント、例えば、クライアント110は、通常はコンピューターであり、別のコンピューター、例えば、サーバー120により提供される共有ネットワーク・リソースへ、アクセスする。図10の例示では、限定ではない例として、計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などを、クライアントと考えることができ、計算オブジェクト1010、1012などを、サーバーと考えることができ、その場合、計算オブジェクト1010、1012などはデータ・サービスを提供し、そのデータ・サービスは、例えば、クライアントである計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などからデータを受け取ること、データを格納すること、データを処理すること、データをクライアントである計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などへ送ることなどである。なお、何れのコンピューターも、状況に応じて、クライアント、サーバー、またはそれら双方と考えることができる。これらの計算デバイスの何れも、データを処理しているか、またはトランザクションのサービスやタスクを要求しているであろうが、それらは、1以上の実施形態に関してここで説明したデバイスのコンテキストおよびパフォーマンスの情報を監視するための技術に影響を与え得る。
【0063】
[0072] サーバー、例えば、サーバー120は、典型的にはリモート・コンピューター・システムであり、リモートまたはローカルのネットワーク、例えば、インターネットやワイヤレス・ネットワーク・インフラストラクチャーを通じて、アクセス可能である。クライアントのプロセスは、第1のコンピューター・システムでアクティブにすることができ、サーバーのプロセスは、第2のコンピューター・システム、例えば、ここで開示する図1図9と関連する実施形態と関連するコンピューター・システムで、アクティブにすることができ、互いに通信媒体を介して通信し、それにより、分散型の機能を提供し、且つ複数のクライアントがサーバーの情報収集能力の利点を用いることを可能にする。デバイスのコンテキストおよびパフォーマンスの情報を監視するための技術に従って用いられる何れのソフトウェア・オブジェクトも、スタンドアローンとして、または複数の計算デバイスまたはオブジェクトにわたって分散させて、提供することができる。
【0064】
[0073] 例えば、図1図9と関連する実施形態と関連し、通信ネットワーク/バス1040がインターネットであるネットワーク環境では、例えば、計算オブジェクト1010、1012などをウェブ・サーバーとすることができ、そのウェブ・サーバーと、クライアントの計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などとが、多数の既知のプロトコルのうちの何れか、例えば、HTTPを介して、通信するようにできる。また、分散型計算環境の特徴であり得るが、サーバー1010、1012などは、クライアントの計算オブジェクトまたはデバイス1020、1022、1024、1026、1028などとして働くこともできる。
【0065】
例示的な計算デバイス
[0074] 述べたように、好都合なことに、デバイスのコンテキストおよびパフォーマンスの情報を監視することが望まれるところにおいて、ここで説明した技術は任意のデバイスに適用することができる。従って、手持ち型、ポータブル、および他の計算デバイス、および全ての種類の計算オブジェクトを、様々な実施形態と関連して、即ち、デバイスがサーバーに、デバイスのコンテキストおよびパフォーマンスの情報の監視と関連するオペレーションを行わせることが可能な何れのところでも、使用することが可能であると考えられていることが、理解される。従って、図11における以下で説明する以下の汎用コンピューターは、計算デバイスの単なる一例である。更に、例えば、上記のサービス・アプリケーションと関連するサーバーまたはデータベース・サーバーは、以下の汎用コンピューターの1以上の態様を含むことができる。
【0066】
[0075] 必要というわけではないが、実施形態は、部分的に、デバイスまたはオブジェクトに対するサービスの開発者による使用のために、オペレーティング・システムを介してインプリメントすることができ、かつ/または、ここで説明した様々な実施形態の1以上の機能的特徴を実施するように動作する、例えば、サーバー120と関連するアプリケーション・ソフトウェア内に、含ませることができる。ソフトウェアは、クライアント・ワークステーションやサーバーや他のデバイスなどのような1以上のコンピューターで実行されるプログラム・モジュールなどのような、コンピューター実行可能命令の一般的なコンテキストで説明することができる。コンピューター・システムは、データの通信に使用できる様々な構成およびプロトコルを有し、従って、特定の構成やプロトコルが限定と考慮されないことを、当業者は理解するであろう。
【0067】
[0076] 従って、図11は、適切な計算システム環境1100の一例を示すものであり、このコンピューター・システム環境において、ここで説明した実施形態の1つまたは態様を実施することができる。なお、上記で明らかにしたが、このコンピューター・システム環境1100は、適切な計算環境の単なる一例であり、使用や機能の範囲に関する限定を示唆することを意図していない。このコンピューター・システム環境1100は、この例示的な動作環境1100において示されるコンポーネントの何れか又はコンポーネントの組み合わせの何れかと関連する依存性を有するものとして解釈されない。
【0068】
[0077] 図11を参照すると、1以上の実施形態を実施するための例示的なリモート・デバイスは、コンピューター1110の形態の汎用コンピューターまたは計算デバイスを含む。コンピューター1110のコンポーネントは、処理ユニット1120、システム・メモリ1130、およびシステム・メモリを含む様々なコンポーネントを処理ユニット1120と結合するシステム・バス1122を含み得るが、これらには限定されない。
【0069】
[0078] コンピューター1110は、典型的には、様々なコンピューター読取可能媒体を含み、それらは、コンピューター1110によりアクセス可能な任意の使用可能な媒体とすることができる。システム・メモリ1130は、リード・オンリー・メモリ(ROM)および/またはランダム・アクセス・メモリ(RAM)などのような揮発性および/または不揮発性のメモリの形態のコンピューター・ストレージ媒体を含むことができる。限定ではなく例として、システム・メモリ1130はまた、オペレーティング・システム、アプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データを含むことができる。
【0070】
[0079] ユーザーは、入力デバイス1140を通じてコンピューター1110へコマンドおよび情報を入力することができる。また、モニターまたは他のタイプのディスプレイ・デバイスも、出力インターフェース1150などのようなインターフェースを介してシステム・バス1122へ接続される。また、このコンピューターは、モニターに加えて、他の周辺出力デバイス、例えば、スピーカーやプリンターを含むことができ、それらも出力インターフェース1150を通じて接続することができる。
【0071】
[0080] コンピューター1110は、リモート・コンピューター1170などのような1以上の他のリモート・コンピューターへの論理接続を用いて、ネットワーク型または分散型の環境で動作することができる。リモート・コンピューター1170は、パーソナル・コンピューター、サーバー、ルーター、ネットワークPC、ピア・デバイス、または他のコモン・ネットワーク・ノード(common network node)、または他の任意のリモートの媒体の消費または伝送のデバイス(remote media consumption or transmission device)であり得、また、上記でコンピューター1110と関連して説明したエレメントの何れかまたは全てを含み得る。図11に示す論理接続は、ローカル・エリア・ネットワーク(LAN)やワイド・エリア・ネットワーク(WAN)などのようなネットワーク1172を含むが、他のネットワーク/バスを含むこともできる。そのようなネットワーク環境は、家庭、オフィス、エンタープライズ・ワイド・コンピューター・ネットワーク、イントラネット、およびインターネットにおいて一般的なものである。
【0072】
[0081] 上述のように、様々な計算デバイスおよびネットワーク・アーキテクチャーと関連させて例示的な実施形態を説明したが、基礎的な概念は、柔軟な様式で媒体を発行または消費することが望まれる任意のネットワーク・システムおよび任意の計算デバイスまたはシステムに、適用することができる。
【0073】
[0082] また、同じまたは類似の機能をインプリメントするための複数の手法、例えば、適切なAPI、ツール・キット、ドライバー・コード、オペレーティング・システム、コントロール、スタンドアローンまたはダウンロード可能なソフトウェア・オブジェクトなどがあり、これらは、アプリケーションおよびサービスが、ここで説明したデバイスのコンテキストおよびパフォーマンスの情報を監視するための技術の利点を得ることを可能にする。即ち、ここでの実施形態は、API(または他のソフトウェア・オブジェクト)の観点から、およびそのような技術の1以上の態様をインプリメントするソフトウェア・オブジェクトまたはハードウェア・オブジェクトの観点から、予期される。即ち、ここで説明した様々な実施形態は、完全にハードウェアの態様、部分的にハードウェアで部分的にソフトウェアの態様、およびソフトウェアの態様を有することができる。
【0074】
[0083] ここでは、「例示」という単語は、例や、事例や、実例を意味するものとして用いている。疑いをなくすためであるが、ここで開示した主題事項は、そのような例により限定されない。更に、ここで「例示」として説明した何れの態様や設計も、他の態様や設計よりも好適または好都合であると必ずしも解釈されるものではなく、また、当業者に知られた等価の例示的な構成および技術を除外することを意味しない。更に、用語「含む(includes)」、「有する(has)」、「包含する(contains)」、および類似の他の単語が詳細な説明または特許請求の範囲で使用されるという点において、疑いをなくすためであるが、それらのような用語は、何れの追加のエレメントや他のエレメントも除外しない開かれた接続させるための語(open transition word)としての用語「含む(comprising)」と同様の様式で、含むことを意図している。
【0075】
[0084] 計算デバイスは典型的には様々な媒体を含み、媒体はコンピューター読取可能ストレージ媒体および/または通信媒体を含むことができ、これら2つの用語は、ここでは、以下のように互いに異なって用いられる。コンピューター読取可能ストレージ媒体は、コンピューターによりアクセスでき、典型的には一時的な性質ではなく、揮発性および不揮発性および取り外し可能および取り外し不可能の双方を含む、任意の使用可能なストレージ媒体とすることができる。
【0076】
[0085] 限定ではなく例として、コンピューター読取可能ストレージ媒体は、コンピューター読取可能命令、プログラム・モジュール、構造化データ、または非構造化データなどのような情報を格納する任意の方法や技術と関連してインプリメントすることができる。限定ではないが、コンピューター読取可能ストレージ媒体は、RAM、ROM、EEPROM、フラッシュ・メモリ、またはメモリ技術、CD−ROM、デジタル・バーサタイル・ディスク(DVD)、または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、または望まれる情報を記憶するために使用できる実体的および/または非一時的な他の媒体を含むことができる。コンピューター読取可能ストレージ媒体は、媒体により格納された情報に関する様々なオペレーションについて、1以上のローカルまたはリモートの計算デバイスにより、例えば、アクセス・リクエスト、クエリ、または他のデータ検索プロトコルを介して、アクセスすることができる。
【0077】
[0086] 他方、通信媒体は、典型的には、コンピューター読取可能命令、データ構造、プログラム・モジュール、または他の構造化または非構造化のデータを、例えば、搬送波である変調されたデータ信号などのようなデータ信号または他のトランスポート機構で実現するものであり、任意の情報の配送またはトランスポートの媒体を含む。「変調されたデータ信号」または信号という用語は、1以上の信号内において情報をエンコードするように、その信号の特性のうちの1以上の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、RF、赤外線、および他の無線媒体などのようなワイヤレス媒体とを含む。
【0078】
[0087] 上述のように、ここで説明した様々な技術は、ハードウェアまたはソフトウェア、または、適切である場合にはそれらの組み合わせと関連して、実施することができる。ここで使用しているように、用語「コンポーネント」、「システム」、およびそれらと同様のものは、同様に、コンピューター関連エンティティを示すことを意図しており、それは、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアの何れかである。例えば、コンポーネントは、プロセッサーで実行されるプロセス、プロセッサー、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピューターであり得るが、これらには限定されない。例として、コンピューターで実行されるアプリケーションとコンピューターとの双方を、1つのコンポーネントとすることができる。1以上のコンポーネントが、1つのプロセスおよび/または実行のスレッドの中に存在することがあり、また、コンポーネントは、1つのコンピューターにローカライズされることも、2以上のコンピューターに分散されることもできる。
【0079】
[0088] 上記のシステムは、幾つかのコンポーネントの間でのインタラクションと関連して説明した。そのようなシステムおよびコンポーネントが、上記のものの様々な置換や組み合わせに従って、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントのうちの幾つか、および/または追加のコンポーネントを含むことができることは、理解できる。また、サブコンポーネントは、親コンポーネント内に含まれるもの(階層的)としてではなく、他のコンポーネントと通信するように結合されたコンポーネントとして実施することもできる。
【0080】
[0089] 更に、1以上のコンポーネントを、1つのコンポーネントへと組み合わせて統合された機能を提供できることや、幾つかの個別のサブコンポーネントへと分割できること、また、そのようなサブコンポーネントへ通信するように結合する任意の1以上の中間層、例えば管理層(management layer)などを提供することにより、統合した機能を提供できることにも、留意されたい。また、ここで説明した何れのコンポーネントも、ここで特に説明していないが当業者には一般に知られている1以上の他のコンポーネントと、インタラクションすることができる。
【0081】
[0090] ここで説明した例示的なシステムを考慮すると、説明した主題事項に従って実施され得る方法は、様々な図のフローチャートを参照して良く表せる。説明を簡素にする目的で、方法は一連のブロックで示されて説明されているが、特許請求される主題事項はブロックの順序により限定されないことが、理解および認識される。なぜなら、幾つかのブロックは、ここで示されて説明された順とは別の順で生じることや、他のブロックと同時に生じることができるからである。非順次的な、または分岐した流れをフローチャートにより示す場合において、同様または類似の結果が得られる様々な別の分岐、フロー経路、およびブロックの順序を実施できることを、特筆することができる。更に、説明した方法を実施するために、示した全てのブロックが必要ではない場合もあり得る。
【0082】
[0091] ここで説明した様々な実施形態に加えて、対応するエレメント(1以上)の機能から逸脱せずに同じまたは等価の機能を行うために、他の類似の実施形態を使用できることや、説明した実施形態(1以上)に対する変更や付加を行えることも、理解される。更に、複数の処理チップや複数のデバイスが、ここで説明した1以上の機能の性能を共有することができ、同様に、ストレージは、複数のデバイスにわたって作用することができる。従って、本発明は、何れの実施形態にも限定されず、特許請求の範囲に従った幅、精神、および範囲で解釈することができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11