(57)【要約】  自動化クライアントデバイス管理技術について記載する。ある実装形態では、ネットワークを介して複数のクライアントデバイスからヒューリスティックデータを収集することを含む方法が記載される。ヒューリスティックデータは、複数のクライアントデバイスの信頼性、パフォーマンスおよびセキュリティを含む複数の健全性要件を記述する。ヒューリスティックデータの収集は、複数のクライアントデバイスのユーザからの介入なしで、周期的、自動的に実施される。問題点を解決し、ヒューリスティックデータ中に示される１つまたは複数の他の健全性要件に対処する、健全性要件の少なくとも１つに関するヒューリスティックデータから識別された問題点に対応する回復法が生成される。
2008541266.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数のクライアントデバイスからヒューリスティックデータを収集するステップであって、
前記ヒューリスティックデータは、前記複数のクライアントデバイスの、信頼性、パフォーマンスおよびセキュリティを含む複数の健全性要件を記述し、
前記収集するステップは、前記複数のクライアントデバイスのユーザからの介入なしで周期的、自動的に実施される、収集するステップ、ならびに
問題点を解決し、前記ヒューリスティックデータ中に示される１つまたは複数の他の前記健全性要件に対処する、少なくとも１つの前記健全性要件に関する前記ヒューリスティックデータから識別された前記問題点に対応する回復法を生成するステップを含むことを特徴とする方法。
【請求項２】
前記問題点が少なくとも１つの前記クライアントデバイスの全体的健全性の顕著な減少を生じていないという点で、前記回復法は、少なくとも１つの前記クライアントデバイスに対して予防的であることを特徴とする請求項１に記載の方法。
【請求項３】
前記生成された回復法は、１つの前記問題点への前記回復法の適用が別の前記問題点にも対処するように、多数の問題点に対処することを特徴とする請求項１に記載の方法。
【請求項４】
前記収集するステップは、前記複数のクライアントデバイスによって、前記収集するステップおよび前記生成するステップを実施するクライアントヘルスサービスに前記ネットワークを介してプッシュされた前記ヒューリスティックデータを受け取ることによって実施されることを特徴とする請求項１に記載の方法。
【請求項５】
前記クライアントデバイスの前記複数の健全性要件を監視するための、各前記クライアントデバイス上のモジュールを実行して、それぞれの前記ヒューリスティックデータを取得するステップをさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
少なくとも１つの前記クライアントデバイスに、自動的に、前記少なくとも１つの前記クライアントデバイスの対応する前記ユーザの介入なしで前記回復法を適用するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
少なくとも１つの前記クライアントデバイスの全体的健全性を判定するステップ、および
１つまたは複数の前記健全性要件の個別指示を含まない、前記クライアントデバイスの前記全体的健全性の単一指示を出力するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記判定するステップは、前記複数のクライアントデバイスから収集された前記ヒューリスティックデータとの比較に少なくとも部分的に基づくことを特徴とする請求項７に記載の方法。
【請求項９】
前記判定するステップは、前記少なくとも１つの前記クライアントデバイスによって実施されることを特徴とする請求項８に記載の方法。
【請求項１０】
クライアントデバイスの複数の健全性要件の少なくとも１つに関する問題点を識別するステップであって、
前記問題点は、信頼性、パフォーマンスおよびセキュリティを含む前記複数の健全性要件を記述するヒューリスティックデータを使って識別され、
前記ヒューリスティックデータは、複数の前記クライアントデバイスのユーザからの介入なしで、ネットワークを介して周期的、自動的に収集される、識別するステップ、
前記識別された問題点に対応する回復法を生成するステップ、ならびに
前記複数の健全性要件に関する、前記回復法が前記クライアントデバイスに与える影響を分析するステップを含むことを特徴とする方法。
【請求項１１】
前記問題点が前記クライアントデバイスの全体的健全性の顕著な減少を生じていないという点で、前記回復法は、前記クライアントデバイスに対して予防的であることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記分析するステップは、複数の前記クライアントデバイスから収集されたヒューリスティックデータとの比較に少なくとも部分的に基づくことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記分析するステップに基づく別の回復法を生成するステップ、および
前記複数の健全性要件に関する、前記別の回復法が前記クライアントデバイスに与える影響を監視するステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
前記クライアントデバイスの全体的健全性を判定するステップ、および
１つまたは複数の前記健全性要件の個別指示を含まない、前記全体的健全性の単一指示を出力するステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記クライアントデバイスに前記回復法を、自動的に、前記クライアントデバイスのユーザによる介入なしで適用するステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１６】
信頼性、パフォーマンスおよびセキュリティを含む、クライアントデバイスの複数の健全性要件を監視するステップ、
複数の前記クライアントから収集されたヒューリスティックデータとの比較に少なくとも部分的に基づく、前記クライアントデバイスの全体的健全性を判定するステップ、ならびに
１つまたは複数の前記健全性要件の個別指示を含まない、前記クライアントデバイスの前記全体的健全性の単一指示を出力するステップを含むことを特徴とする方法。
【請求項１７】
前記単一指示は、タスクバーに含まれて出力されることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記単一指示は、前記１つまたは複数の前記健全性要件の１つまたは複数の前記個別指示を出力させるように選択可能であることを特徴とする請求項１６に記載の方法。
【請求項１９】
前記ヒューリスティックデータから識別された問題点に対応する予防的回復法を生成するステップ、
前記クライアントデバイスに前記回復法を適用するステップ、および
前記複数の健全性要件に関する、前記回復法が前記クライアントデバイスに与える影響を分析するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記生成するステップおよび前記分析するステップは、前記クライアントデバイスをクライアントヘルスサービスに通信可能に結合するネットワークを介して、前記クライアントヘルスサービスによって実施されることを特徴とする請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して、クライアントデバイスに関し、より詳細には、自動化クライアントデバイス管理に関する。
【背景技術】
【０００２】
デスクトップパーソナルコンピュータ、携帯情報端末などのクライアントデバイスの複雑さは、クライアントデバイスの処理、メモリおよび表示リソースの増大などにより、ますます増している。さらに、クライアントデバイスは、非常に様々な考慮事項の対象とされるハードウェアを含み得る。例えば、デスクトップパーソナルコンピュータは、データを処理するための大きな処理およびメモリリソースを有する場合があり、携帯情報端末は、長時間に渡る携帯使用のために限られた量の電力を消費するように構成されたハードウェアデバイスを含む場合があり、ゲームコンソールは、高精細グラフィックスを提供するように構成される場合があるなどである。さらに、こうしたデバイスはそれぞれ、こうしたクライアントデバイスの特定のハードウェア上での使用の目標とされるアプリケーションを含み得る。例えば、無線電話は、最小限の処理リソースを使用する、限られた表示領域内で出力を提供するように構成されたアプリケーションを含み得る。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、こうしたクライアントデバイスのますます増大する複雑さおよび機能性に対応して、クライアントデバイスを保守する複雑さが増大する結果となっている。例えば、ユーザにとって、保守を実施することによって、どのようにして、異なるクライアントデバイスによって使用される多様なソフトウェア用にアップデートを入手し、悪意のある者からの攻撃に対するクライアントデバイスの脆弱性から保護し、最適な条件においてクライアントデバイスを作動させ続けるのかを判断するのがますます困難な場合がある。したがって、クライアントデバイスは、最適なパフォーマンス未満で動作する場合があり、これは、ユーザが時期尚早にクライアントデバイスをアップデートする結果となる場合さえある。
【０００４】
したがって、クライアント管理のための改良型の技術が、絶えず必要とされている。
【課題を解決するための手段】
【０００５】
自動化クライアントデバイス管理技術について記載する。ある実装形態では、ネットワークを介して複数のクライアントデバイスからヒューリスティックデータを収集することを含む方法が記載される。ヒューリスティックデータは、複数のクライアントデバイスの信頼性、パフォーマンスおよびセキュリティを含む複数の健全性要件を記述する。ヒューリスティックデータの収集は、複数のクライアントデバイスのユーザからの介入なしで、周期的、自動的に実施される。問題点を解決し、ヒューリスティックデータ中に示される１つまたは複数の他の健全性要件に対処する、健全性要件の少なくとも１つに関するヒューリスティックデータから識別された問題点に対応する回復法が生成される。
【０００６】
別の実装形態では、方法は、クライアントデバイスの複数の健全性要件の少なくとも１つに関する問題点を識別することを含む。問題点は、信頼性、パフォーマンスおよびセキュリティを含む複数の健全性要件を記述するヒューリスティックデータを用いて識別され、ヒューリスティックデータは、ネットワークを介して、複数の前記クライアントデバイスのユーザからの介入なしで、周期的、自動的に収集される。識別された問題点に対応する回復法が生成され、複数の健全性要件に関して、回復法がクライアントデバイスに与える影響が分析される。
【０００７】
さらに別の実装形態では、方法は、信頼性、パフォーマンスおよびセキュリティを含む、クライアントデバイスの複数の健全性要件を監視すること、ならびに複数のクライアントから収集されるヒューリスティックデータとの比較に少なくとも部分的に基づいて、クライアントデバイスの全体的健全性を判定することを含む。健全性要件のうち１つまたは複数のものの個別指示を含まない、クライアントデバイスの全体的健全性の単一指示が出力される。
【発明を実施するための最良の形態】
【０００８】
記載する事例では、同様の構造およびコンポーネントを参照するために同じ参照番号が使用されている。
【０００９】
概説
今日、ユーザは通常、自分のクライアントデバイス（例えば、パーソナルコンピュータ）を自分で保守するが、これは、パフォーマンス、保守および安全性の側面に鑑みて、ますます困難な作業となっている。この問題は、ほとんどのユーザがこうした問題点に対処するための技術に精通することに関心をもたないという点で、さらに悪化する。したがって、ユーザのクライアントデバイスは、クライアントデバイスの不適切な保守に関連した信頼性の問題を被る可能性があり、悪意のある者による攻撃の対象となる可能性があり、ソフトウェアに利用可能なアップデートをユーザがクライアントデバイス上にインストールしなかったせいで、またはクライアントデバイスパフォーマンスの正しい「調整」（例えば、ディスクのデフラグ）がタイミングよく適用されなかったせいで、早々と「時代遅れ」になる可能性などがある。
【００１０】
様々な実装形態において、ユーザのクライアントデバイスを、「健全」であることを保証するために予防的、反応的に保守するのに使用することができるクライアントヘルスサービスが記載される。例えば、クライアントヘルスサービスは、ユーザのクライアントデバイスを継続的に監視して、脆弱性および信頼性の問題点を識別し、次いで、こうした問題点に対処する回復法を提供することができる。さらに、こうしたクライアントデバイスの「健全性」の問題点（例えば、パフォーマンス、セキュリティおよび信頼性）の識別を助けるために、クライアントヘルスサービスは、クライアントデバイスからヒューリスティックデータを収集することができる。周期的な保守機能は、クライアントヘルスサービスによって開始され、最適化されたコンピューティング環境をユーザに提供することができる。さらに、実装形態の１つまたは複数は、安全であり、信頼性があり、意図された通りに作動するということは何を意味するのかを定義する基準評価指標を提供することができる。こうした基準評価指標は、クライアントデバイスを１つずつ比較するなど、様々に使用することができる。
【００１１】
以下の説明において、クライアントヘルスサービスを利用するように動作可能な、例示的な環境を最初に説明する。次いで、例示的な環境ならびに他の環境において使用することができる例示的なプロシージャを説明する。
【００１２】
例示的環境
図１は、自動化クライアントデバイス管理のための技術を利用するように動作可能な、例示的な実装形態における環境１００を示す。例示する環境１００は、ネットワーク１０６を介して複数のクライアントデバイス１０４（ｎ）に通信可能に結合されたクライアントヘルスサービスを含むが、「ｎ」は、１から「Ｎ」までの任意の整数でよい。クライアントデバイス１０４（ｎ）は、ネットワークアクセス用に様々に構成することができる。例えば、クライアントデバイス１０４（ｎ）の１つまたは複数は、表示デバイス１１０および入力デバイス（キーボード１１２として示してある）を有するデスクトップコンピュータ１０８などのコンピューティングデバイス、移動局、娯楽機器、表示デバイスに通信可能に結合されたセットトップボックス、無線電話、ゲームコンソールなどとして構成することができる。したがって、クライアントデバイス１０４（ｎ）は、大量のメモリおよびプロセッサリソースを有するフルリソースデバイス（例えば、パーソナルコンピュータ、ゲームコンソール）から、限られたメモリおよび／または処理リソースを有する低リソースデバイス（例えば、従来のセットトップボックス、ハンドヘルドゲームコンソール）に及び得る。分散環境におけるコンピューティングデバイスとして構成された例示的なクライアントデバイス１０４（ｎ）については、図７に関連してさらに論じる。
【００１３】
ネットワーク１０６をインターネットとして示してあるが、このネットワークは、非常に様々な構成を想定することが可能である。例えば、ネットワーク１０６は、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、公衆電話網、イントラネットなどを含み得る。さらに、ただ１つのネットワーク１０６を図示してあるが、ネットワーク１０６は、多数のネットワークを含むように構成することができる。
【００１４】
クライアントデバイス１０４（ｎ）を、複数のフィーチャ１１６（ｊ）の動作を監視するように実行可能なクライアントマネージャモジュール１１４（ｎ）を含むものとして示してあるが、「ｊ」は１から「Ｊ」までの任意の整数でよい。例えば、アプリケーション、ドライバ、および他の実行可能モジュールなど、クライアントデバイス１０４（ｎ）によるソフトウェアの実行により、複数のフィーチャ１１６（ｊ）を提供することができる。フィーチャ１１６（ｊ）は、複数の健全性要件に基づく、クライアントデバイス１０４（ｎ）の全体的健全性（すなわち、所望のタスクを実施するための適合性）を判断するために監視することができる。さらに、フィーチャ１１６（ｊ）の１つまたは複数は、ハードウェアによって提供することができ、メモリスキャン、ディスクの健全性、ネットワークのスループットおよび信頼性、周辺デバイスの動作などにより監視することもできるが、これについては図２に関連してさらに論じる。
【００１５】
クライアントマネージャモジュール１１４（ｎ）は、例えば、クライアントデバイス１０４（ｎ）のセキュリティ１１８、信頼性１２０およびパフォーマンス１２２を監視することができる。セキュリティ１１８は、クライアントデバイス１０４（ｎ）の健全性に影響を与えるウイルス、スパイウェアなど、様々なセキュリティ関連要件に関し得る。信頼性１２０要件は、クライアントデバイス１０４（ｎ）のフィーチャ１１６（ｊ）の、ある程度の時間に渡って期待される条件下で所望通りに作動するための能力に関係し得る。信頼性１２０は、不具合の間の平均時など、様々なやり方で表現することができる。パーソナルコンピュータの場合、例えば、信頼性は、いくつかの故障、すなわちパーソナルコンピュータの「ハングアップ」（例えば、フリーズ）、所与の期間中のアプリケーションの誤動作数などとして表現することができる。パーソナルコンピュータにとっての信頼性は、例えばディスクの読書きの不具合数、ネットワーク接続デバイスの不具合の頻度など、コンポーネントレベルで表現することもできる。
【００１６】
パフォーマンス１２２は、所望のタスクを実施する際のフィーチャ１１６（ｊ）の効率に関し、記述されるフィーチャに基づいて様々に表現することができる。例えば、表示デバイスによってページを描画するのに必要とされる時間量、デバイスを起動し、またはシャットダウンするのに必要とされる時間量、アプリケーション実行を始めるための時間量などである。さらに、パフォーマンスは、例えばメモリにデータを書き込み、ネットワーク接続デバイスを使ってデータを転送するための時間量など、コンポーネントレベルで表現することもできる。こうした例はすべてを網羅するものではなく、したがって、他の様々な健全性要件も、その精神および範囲から逸脱することなく、クライアントマネージャモジュール１１４（ｎ）の実行により監視することができる。
【００１７】
クライアントマネージャモジュール１１４（ｎ）は、複数のヒューリスティックデータ１２４（ｈ）（「ｈ」は１から「Ｈ」までの任意の整数でよい）を、監視を記述する、クライアントデバイス１０４（ｎ）上のストレージ１２６に格納するために実行することもできる。例えば、ヒューリスティックデータ１２４（ｈ）は、例えばスパイウェアがクライアントデバイス１０４（ｎ）上に含まれる場合はクライアントデバイス１０４（ｎ）によって利用されるウイルス保護ソフトウェアおよびそのソフトウェアによって利用されるウイルス定義のバージョン、同じくその場合、そのソフトウェアの影響、クライアントデバイス１０４（ｎ）にダウンロードされるソフトウェアのソースなど、セキュリティ１１８の健全性要件を記述することができる。さらに、ヒューリスティックデータ１２４（ｈ）は、クライアントデバイス１０４（ｎ）の信頼性１２０の健全性要件も記述することができる。例えば、どのデバイス（例えば、プロセッサ、メモリ、出力デバイス、入力デバイス、ネットワーク接続デバイスなど）がクライアントデバイス１０４（ｎ）上に含まれるのか、およびどの程度の頻度でデバイスそれぞれがその対応する機能性を提供できないのか、クライアントデバイス１０４（ｎ）上のソフトウェアの実行中に遭遇されるエラーなどである。さらに、ヒューリスティックデータ１２４（ｈ）は、例えばハードウェアデバイスの動作パラメータ、クライアントデバイス１０４（ｎ）におけるソフトウェアの実行速度など、パフォーマンス１２２の健全性要件も記述することができる。したがって、ヒューリスティックデータ１２４（ｈ）は、クライアントデバイス１０４（ｎ）の全体的健全性を記述することができる。
【００１８】
クライアントマネージャモジュール１１４（ｎ）はそれぞれ、ヒューリスティックデータ１２４（ｈ）を、クライアントヘルスサービス１０２によってストレージ１３０にヒューリスティックデータ１２８（ｎ）として格納するために、ネットワーク１０６を超えて監視されるものとして（例えば、「プッシュ」技術を用いて）伝達するように実行することもできる。通信は、「プル」通信技術に従うなど、他の様々なやり方で実施することもできる。したがって、クライアントヘルスサービスは、複数のクライアントデバイス１０４（ｎ）それぞれのセキュリティ１１８、信頼性１２０およびパフォーマンス１２２を記述するヒューリスティックデータ１２８（ｎ）を取得することができる。
【００１９】
クライアントヘルスサービス１０２を、サービスマネージャモジュール１１４（ｎ）を含むものとして示してある。サービスマネージャモジュール１３２は、複数のクライアントデバイス１０４（ｎ）の健全性を維持するための複数のヒューリスティックデータ１２８（ｎ）を使用するように実行可能である。ヒューリスティックデータ１２８（ｎ）は、様々に使用することができる。例えば、サービスマネージャモジュール１３２は、予防的１３４でよく、予防的保守を実施する（例えば、ハードディスクドライブをデフラグする）ことなどによって、複数のクライアントデバイス１０４（ｎ）の健全性の問題点を、起こる前に制御することができる。サービスマネージャモジュール１３２は、起きてしまった健全性の問題点を解決するように反応的１３６でもよい。例えば、サービスマネージャモジュール１３２は、起きてしまった複数のフィーチャ１１６（ｊ）の１つまたは複数に関する問題点を検出し、問題点を解決するための１つまたは複数のアクションを実施することができる。さらに、サービスマネージャモジュール１３２は、起きてしまった複数のクライアントデバイス１０４（ｎ）の１つに関する問題点を検出し、複数のクライアントデバイス１０４（ｎ）の別の１つのためにその問題点を解決することなどによって、反応的かつ予防的両方になり得る。例えば、ヒューリスティックデータを手に入れ、クライアントデバイス１０４（ｎ）のサブセットに対して何が起きたかを判定するために分析して、（ある場合は）どのような予防的措置がネットワーク１０６を超えて複数のクライアントデバイス１０４（ｎ）それぞれに適用されるべきかを決定することができる。クライアントマネージャモジュール１１４（ｎ）およびサービスマネージャモジュール１３２の動作については、次の図面に関連してさらに論じる。
【００２０】
クライアントデバイス１０４（ｎ）の複数のフィーチャの集中管理の別の側面は、いくつかのシナリオにおいて、様々なフィーチャが互いに影響を与える場合があることである。例えば、抗スパイウェアフィーチャは、パフォーマンス低下を引き起こすアプリケーションを捕らえることもでき、そのポリシー（例えば、ブラックリストやホワイトリストなど）は、異なるフィーチャの間で共有することができる。
【００２１】
概して、本明細書において記載する機能のいずれもが、ソフトウェア、ファームウェア（例えば、固定論理回路）、手動処理、またはこうした実装形態の組合せを使って実装することができる。本明細書で使用する「モジュール」および「論理」という用語は概して、ソフトウェア、ファームウェア、またはソフトウェアおよびファームウェアの組合せを表す。ソフトウェア実装のケースでは、モジュール、機能性、または論理は、プロセッサ（例えば、１つまたは複数のＣＰＵ）上で実行されると、指定されたタスクを実施するプログラムコードを表す。プログラムコードは、１つまたは複数のコンピュータ可読メモリデバイスに格納することができるが、それについては図２に関連してさらに説明する。下で説明する管理技術の特徴は、プラットフォーム非依存であり、様々なプロセッサを有する様々な商用コンピューティングプラットフォーム上で技術を実装できることを意味する。
【００２２】
図２は、図１のクライアントヘルスサービス１０２およびクライアントデバイス１０４（ｎ）をより詳細に示す例示的な実装形態におけるシステム２００を示す。クライアントヘルスサービス１０２は、複数のヘルスサーバ２０２（ａ）によって実装されるものとして示してあり、「ａ」は１から「Ａ」までの任意の整数でよい。さらに、複数のヘルスサーバ２０２（ａ）および複数のクライアントデバイス１０４（ｎ）は、それぞれのプロセッサ２０４（ａ）、２０６（ｎ）およびそれぞれのメモリ２０８（ａ）、２１０（ｎ）を含むものとして示してある。サービスマネージャモジュールは、図２では、複数のヘルスサーバ２０２（ａ）それぞれが、対応するサービスマネージャモジュール１３２（ａ）を含み得ることを示すために、「サービスマネージャモジュール１３２（ａ）」として示してある。
【００２３】
プロセッサは、それが形作られる材質にも、その中で利用される処理機構よっても限定されない。例えば、プロセッサは、半導体（群）および／またはトランジスタ（例えば、電子集積回路（ＩＣ））からなり得る。このような状況において、プロセッサ実行可能命令は、電子的に実行可能な命令でよい。あるいは、プロセッサのまたはプロセッサ用の機構、したがってコンピューティングデバイスのまたはコンピューティングデバイス用の機構は、（例えば、ナノテクノロジーを用いた）量子コンピューティング、光コンピューティング、機械コンピューティングなどを含み得るが、それに限定されない。さらに、１個のメモリ２０８（ａ）、２１０（ｎ）を図示してあるが、それぞれ、ヘルスサーバ２０２（ａ）およびクライアント１０４（ｎ）各々用であり、例えばランダムアクセスメモリ（ＲＡＭ）、ハードディスクメモリ、取外し可能媒体メモリなど、非常に様々なタイプのメモリおよびその組合せを利用することができる。
【００２４】
サービスマネージャモジュール１３２（ａ）およびクライアントマネージャモジュール１１４（ｎ）は、クライアントデバイス１０４（ｎ）のパフォーマンス、信頼性およびセキュリティの継続的監視を実現する「閉ループ」システムを提供するように協働することができ、こうした健全性要件の１つまたは複数に関連する問題点に対処するためのステップをとり得る。例えば、クライアントマネージャモジュール１１４（ｎ）およびサービスマネージャモジュール１３２（ａ）は、データ損失、プライバシー侵害、ウイルス、スパイウェアおよび他の侵害などの脆弱性の継続的監視を実現し、こうした健全性要件のいずれかの減少がクライアントデバイス１０４（ｎ）のユーザにとって顕著になる前に、命題の問題点を適時にかつ予防的に扱うことができる。さらに、サービスマネージャモジュール１３２（ａ）およびクライアントマネージャモジュール１４４（ｎ）は、スケジュールされた「調整」および「オイル交換」タイプの保守を定期的に実施して、クライアントデバイス１０４（ｎ）を「健全」に、すなわち、意図された通りに動作するように保つことができる。こうした種類の予防的保守を行うことによって、今日ユーザが通常遭遇する混乱を取り除くことができ、そうすることによって、クライアントデバイス１０４（ｎ）に対するユーザの満足度を向上させる。
【００２５】
クライアントマネージャモジュール１１４（ｎ）は、プロセッサ２０６（ｎ）上で実行されるものとして示してあり、クライアントデバイス１０４（ｎ）のメモリ２１０（ｎ）に格納可能である。クライアントマネージャモジュール１１４（ｎ）は、実行されると、様々な機能性を提供することができる。例えば、クライアントマネージャモジュール１１４（ｎ）は、データ収集および通信モジュール２１２（ｎ）、分析モジュール２１４（ｎ）ならびにスケジューラモジュール２１６（ｎ）を含み得る。データ収集および通信モジュール２１２（ｎ）は、複数のヒューリスティックデータ１２４（ｈ）を収集し伝達するクライアントマネージャモジュール１１４（ｎ）の機能性を表す。例えば、データ収集および通信モジュール２１２（ｎ）は、クライアントデバイス１０４（ｎ）の複数のフィーチャ１１６（ｊ）（この例ではプロセッサ２０６（ｎ）上で実行されるソフトウェアとして示してあるが、他のハードウェアフィーチャも含み得る）の動作を監視し、そうしたフィーチャのセキュリティ２１８（ｈ）、信頼性２２０（ｈ）、およびパフォーマンス２２２（ｈ）を記述するヒューリスティクスを格納することができる。データ収集および通信モジュール２１２（ｎ）は次いで、このデータを、例えばネットワーク接続が達成されたときはいつでも、ネットワーク１０６を介してクライアントヘルスサービス１０２に周期的間隔でヒューリスティックデータ１２４（ｈ）を「プッシュする」ことなどによってクライアントヘルスサービス１０２に伝達することができる。
【００２６】
クライアントマネージャモジュール１１４（ｎ）は、複数のヒューリスティックデータ１２４（ｈ）を分析することができる機能性を表す分析モジュール２１４（ｎ）を含むものとしても示してある。この分析は、様々なやり方で実施することができる。例えば、分析モジュール２１４（ｎ）は、ヒューリスティックデータ１２４（ｈ）の傾向を書き留め、そうした傾向、傾向の全体的動向（例えば、パフォーマンスの漸減）などからの逸脱に基づくセキュリティ２１８（ｈ）、信頼性２２０（ｈ）および／またはパフォーマンス２２２（ｈ）に関する問題点を識別することができる。別の例では、分析モジュール２１４（ｎ）は、クライアントデバイス１０４（ｎ）の監視動作から収集されたヒューリスティックデータ１２４（ｈ）を、他のクライアントから取得されたヒューリスティクスで調べることができる。例えば、クライアントマネージャモジュール１１４（ｎ）は、他のクライアントの動作を大部分記述するクライアントヘルスサービス１０２からヒューリスティックデータ１２８（ｎ）を受け取り、この情報を、クライアントデバイス１０４（ｎ）が「健全」であるかどうか判定するのに使用することができる。様々な他の分析例も企図される。
【００２７】
分析モジュール２１４（ｎ）の結果は、クライアントデバイス１０４（ｎ）のユーザによる閲覧のために出力することもできる。例えば、分析モジュール２１４（ｎ）は、セキュリティ２１８（ｈ）、信頼性２２０（ｈ）およびパフォーマンス２２２（ｈ）という健全性要件を、クライアントデバイス１０４（ｎ）の全体的健全性の状態を判定するのに使用することができる。この状態は次いで、この健全性がどのように判定されるかの具体的な詳細を選別する必要なく、クライアントデバイス１０４（ｎ）の全体的健全性に関してユーザに知らせることができるように、単一指示を使用して反映され得る。この単一指示については、図３および６に関連してさらに論じる。
【００２８】
クライアントマネージャモジュール１１４（ｎ）はさらに、スケジューラモジュール２１６（ｎ）を含むものとして示してある。スケジューラモジュール２１６（ｎ）は、クライアントマネージャモジュール１１４（ｎ）によって実施されるべきタスクをスケジュールする機能性を表す。例えば、スケジュールモジュール２１６（ｎ）は、例えばウイルスライブラリを更新し、ディスクドライブをデフラグし、ドライバをアップデートし、未使用アイコンをデスクトップから削除し、ソフトウェアアップデートをチェックするなど、クライアントデバイス１０４（ｎ）の予防的な保守タスクをスケジュールするのに使用することができる。スケジューラモジュール２１６（ｎ）は、クライアントデバイス１０４（ｎ）からクライアントヘルスサービス１０２へのヒューリスティックデータ１２４（ｈ）の伝達をスケジュールするのに使用することもできる。
【００２９】
サービスマネージャモジュール１３２（ａ）も、クライアントデバイス１０４（ｎ）のクライアントマネージャモジュール１１４（ｎ）に含まれるモジュールと同じでも異なってもよいデータ収集および通信モジュール２２４（ａ）、分析モジュール２２６（ａ）、ならびにスケジューラモジュール２２８（ａ）を含むものとして示してある。例えば、データ収集および通信モジュール２２４（ａ）は、クライアントデバイス１０４（ｎ）それぞれからヒューリスティックデータ１２４（ｈ）を取得し、収集されたヒューリスティックデータ１２８（ｎ）を集約し、集約されたヒューリスティックデータ１２８（ｎ）をクライアントデバイス１０４（ｎ）それぞれに送るように実行可能であり得る。したがって、このようにして、クライアントデバイス１０４（ｎ）それぞれの分析モジュール２１４（ｎ）には、複数のクライアントデバイスの動作に関して知らせることができる。
【００３０】
別の例では、ヒューリスティックデータ１２８（ｎ）は、クライアントデバイス１０４（ｎ）、まで「後退して」は伝達されず、クライアントデバイスの健全性に関連するいずれかの問題点が起こったか、それとも起こりそうかを判定するために、分析モジュール２２６（ａ）によって分析される。この分析に基づいて、分析モジュール２２６（ａ）は、図２ではメモリ２０８（ａ）内のストレージ２３２に含まれるものとして示してある、複数の回復法２３０（ｒ）の１つまたは複数（「ｒ」は１から「Ｒ」までの任意の整数でよい）を生成することができる。回復法２３０（ｒ）の１つまたは複数は次いで、識別された問題点を「解決する」ために、ネットワーク１０６を介してクライアントデバイス１０４（ｎ）に伝達することができるが、これについては、図４に関連してさらに論じる。さらに別の例では、分析は、分析モジュール２１４（ｎ）、２２６（ａ）両方によって実施される。
【００３１】
サービスマネージャモジュール１３２（ａ）のスケジューラモジュール２２８（ａ）は、様々なタスクをスケジュールするように実行することもできる。例えば、スケジューラモジュール２２８（ａ）は、回復法２３０（ｒ）を特定のクライアントデバイス１０４（ｎ）に伝達するための期間をスケジュールするように実行することができる。スケジューラモジュール２２８（ａ）は、データ収集および通信モジュール２２４（ａ）が複数のクライアントデバイス１０４（ｎ）からヒューリスティックデータ１２４（ｈ）を収集するときをスケジュールするように実行することもできる。さらに、スケジューラモジュール２２８（ａ）は、分析モジュール２２６（ａ）が複数のヒューリスティックデータ１２８（ｎ）をいつ分析するべきかをスケジュールする。他の様々な例も企図される。
【００３２】
したがって、クライアントヘルスサービス１０２は、クライアントマネージャモジュール１１４（ｎ）およびサービスマネージャモジュール１３２（ａ）の通信により、広範な機能性を実現することができる。例えば、こうしたモジュールは、「２４ｘ３６５」の予防的な監視を実現し、必要に応じて予防的ステップをとり、クライアントの健全性に関連する問題点を識別する、総合的であり自動化された回復法を提供することができ、クライアントデバイス１０４（ｎ）のユーザによる介入なしで自動的に回復法を生成し実装することができ、クライアントデバイス１０４（ｎ）の具体的な構成に合わせてあつらえることができ、クライアントデバイス１０４（ｎ）のユーザに「安心」を伝え、サポート機能を実施する、拡張可能で包括的なサービス配信プラットフォームを提供し、クライアントデバイス１０４（ｎ）を保守するために統計の収集および採取を実施するなどのことができる。さらに、モジュールは、異なるクライアントヘルスサービスを組み合わせるための論理を提供して、「より高いレベル」のサービスを、感染したファイルのバックアップコピーを自動的に回復することによって提供することができる。この機能性については、図３〜６に関連してさらに論じる。
【００３３】
図３は、図１の表示デバイス１１０がクライアントデバイスの全体的健全性を表す単一指示をユーザインターフェースにおいて出力するものとして示されている例示的な実装形態３００を示す。表示デバイス１１０は、文書処理３０４のユーザインターフェースおよびタスクバー３０６の表示を含む表示領域３０２を含む。タスクバー３０６は、クライアントデバイス１０４（ｎ）の全体的健全性の単一指示３０８を含む「固定された」または「ポップアップ」タスクバーでよい。
【００３４】
図示してある単一指示３０８は、顔をしかめた表情として示されているが、この事例では、クライアントデバイス１０４（ｎ）の全体的健全性が良好でないことを示す。したがって、単一指示３０８は、初心者ユーザにとっても分かりやすく、全体的健全性の判定に達するのに使用される健全性要件の詳細を「隠す」クライアントデバイス１０４（ｎ）の全体的健全性を指示し得る。ある実装形態では、単一指示３０８は、このような特定を望むユーザが取得することができるように、こうした健全性要件（例えば、信頼性、パフォーマンス、セキュリティなど）を出力させるように選択可能である。この単一指示については、図５に関連してさらに論じる。
【００３５】
例示的なプロシージャ
以下の説明では、上で説明したシステムおよびデバイスを使用して実装することができる自動化管理技術について論じる。プロシージャそれぞれの態様は、ハードウェア、ファームウェア、またはソフトウェア、あるいはその組合せで実装することができる。プロシージャは、１つまたは複数のデバイスによって実施され、それぞれのブロックによる動作を実施する、図示した順序に必ずしも限定されない動作を指定する１組のブロックとして示される。以下の説明のいくつかの部分において、図１の環境１００および図２のシステム２００を参照する。
【００３６】
図４は、複数のクライアントデバイスの監視から取得されたヒューリスティックデータが、識別された問題点に対する回復法を生成するのに使用され、回復法が次いで、回復法がクライアントデバイスに与える影響を判定するために監視される例示的な実装形態におけるプロシージャ４００を示すフローチャートである。信頼性、パフォーマンスおよびセキュリティを含む複数のクライアント健全性要件に対するクライアントデバイスの複数のフィーチャの１つまたは複数の影響は、周期的、自動的に監視される（ブロック４０２）。例えば、クライアントマネージャモジュール１１４（ｎ）は、スパイウェア監視プログラムの実行を監視し、クライアントデバイス１０４（ｎ）上で実行される他のソフトウェアにプログラムが与える影響を判定するように実行することができる。監視は、スケジューラモジュール２１６（ｎ）によってスケジュールされた通りに周期的に、継続的になどのように実施することができる。
【００３７】
監視を記述するヒューリスティックデータが格納される（ブロック４０４）。例えば、データ収集および通信モジュール２１２（ｎ）は、ヒューリスティックデータ１２４（ｈ）を、クライアントデバイス１０４（ｎ）上にローカルに格納することができる。格納されたヒューリスティックデータは次いで、クライアントヘルスサービス１０２に周期的に伝達される（ブロック４０６）。やはり、例えば、スケジューラモジュール２１６（ｎ）は、ヒューリスティックデータ１２４（ｈ）がネットワーク１０６を介してクライアントヘルスサービス１０２に伝達されることになる、周期的な間隔をスケジュールすることができる。別の事例では、スケジューラモジュール２２８（ａ）は、複数のクライアントデバイス１０４（ｎ）のそれぞれに対して、ヒューリスティックデータ１２４（ｈ）を伝送するための異なるそれぞれの時間をスケジュールすることができる。その精神および範囲から逸脱することなく、様々な他の事例も企図される。
【００３８】
クライアントヘルスサービスは、複数のクライアントデバイスからヒューリスティックデータを適宜収集し格納する（ブロック４０８）。クライアントヘルスサービスは次いで、収集されたヒューリスティックデータを分析することによって、少なくとも１つのクライアント健全性要件に対する悪影響を識別することができる（ブロック４１０）。例えば、クライアントヘルスサービス１０２は、クライアントデバイス１０４（ｎ）のサブセット上で実行される特定のフィーチャ１１６（ｊ）がクライアントデバイス１０４（ｎ）のパフォーマンスの大幅な低下を引き起こすことを示す分析モジュール２２６（ａ）を実行することができる。クライアントヘルスサービスは次いで、悪影響に対処する、対応する回復法を生成する（ブロック４１２）。例えば、クライアントヘルスサービス１０２は、上で説明したスパイウェア監視アプリケーションに、スパイウェアがないかクライアントデバイス１０４（ｎ）を調べる間の時間量を増大させるパッチを生成することができる。クライアントヘルスサービスは次いで、クライアントデバイスの少なくとも１つに回復法を伝達する（ブロック４１４）。例えば、回復法は、クライアントの健全性に対して、スパイウェア監視アプリケーションの悪影響を受けたクライアントデバイスを目標とするものでよい。別の事例では、回復法は、スパイウェア監視アプリケーションを有する各クライアントデバイスを目標とするものでよく、そうすることによって、クライアントデバイスが影響を受ける前でも、悪影響を予防的に解決する。
【００３９】
回復法がユーザによる介入を必要とするかどうかに関して、判定が行われる（判断ブロック４１６）。必要としない場合（判断ブロック４１６から「ｎｏ」へ）、回復法は、ユーザによる介入なしにクライアントデバイス上に自動的にインストールされる（ブロック４１８）。したがって、このような事例では、クライアントデバイスのユーザは、回復法がインストールされたことを意識する必要さえない。回復法がユーザによる介入を必要とする場合（判断ブロック４１６から「ｙｅｓ」へ）、ユーザは、回復法によって指定されたアクションを実施するよう促される（ブロック４２０）。例えば、回復法は、ほとんどトレーニングを受けていない初心者ユーザでさえも、回復法をインストールすることができるように、クライアントデバイスのユーザに、実施される必要があるアクションを通る「ステップをとる」ように構成することができる。
【００４０】
回復法のインストールの後、複数のクライアント健全性要件それぞれに対する回復法の１つまたは複数の影響は、周期的、自動的に監視される（ブロック４２２）。例えば、パフォーマンスというクライアント健全性要件に対処する、インストールされた回復法（例えば、スパイウェアアプリケーションによる過度に積極的な監視）は、信頼性およびセキュリティなど、他のクライアント健全性要件に回復法が与える影響を監視することができる。このようにして、クライアントデバイスの全体的健全性に対する回復法の影響が、元々対処される健全性要件に関してだけではなく判定される。悪影響が検出されたかどうかに関して、判定が再度行われる（判断ブロック４２４）。検出されない場合（判断ブロック４２４から「ｎｏ」へ）、プロシージャ４００は、クライアントデバイスの監視に戻る（ブロック４０２）。悪影響が検出された場合（判断ブロック４２４から「ｙｅｓ」へ）、クライアントヘルスサービスは再度、対応する回復法を生成し（ブロック４１２）、プロシージャの一部分が繰り返される（例えば、ブロック４１４〜４２４）。このようにして、クライアントヘルスサービス１０２は、予防的監視およびクライアント健全性要件に関する問題点に対処する、総合的であり自動化されたソリューションを実現することができる。
【００４１】
図４のプロシージャ４００は、クライアントヘルスサービス１０２によって実施されるものとしての分析を記述したが、この分析は、異なる様々なやり方で実施することができる。例えば、複数のクライアント１０４（ｎ）からのヒューリスティックデータの収集は、それぞれの分析モジュール２１４（ｎ）の実行を通して分析を実施するために、各クライアントに伝達することができる。別の事例では、分析は、分析モジュール２２６（ａ）、２１４（ｎ）両方によって実施される。他の様々な事例も企図される。
【００４２】
図５は、アップデートがクライアントデバイスに与える影響が、パフォーマンス、信頼性およびセキュリティを含むクライアント健全性要件に関して監視される例示的な実装形態におけるプロシージャ５００を示すフロー図である。クライアントデバイスの１つまたは複数のソフトウェアモジュールに対してアップデートが利用可能であるかどうかに関して、判定が行われる（ブロック５０２）。例えば、データ収集および通信モジュール２２４（ａ）は、スケジューラモジュール２２８（ａ）によって指定された時間に従って、クライアントデバイス１０４（ｎ）上に置かれたソフトウェアモジュール用のアップデートをチェックするように実行することができる。
【００４３】
アップデートは、ユーザによる介入なしに自動的に取得され、クライアントデバイス上にインストールされる（ブロック５０４）。例えば、サービスマネージャモジュール１３２（ａ）は、アップデートを、クライアントマネージャモジュール１１４（ｎ）によるインストールのためにクライアントデバイス１０４（ｎ）に伝達することができる。したがって、クライアントデバイスのユーザは、アップデートが取得されインストールされたことさえ意識しなくてよい。
【００４４】
複数の健全性要件に対する、アップデートの１つまたは複数の影響は周期的、自動的に監視され、健全性要件は、信頼性、パフォーマンスおよびセキュリティを含む（ブロック５０６）。次いで、悪影響が検出されたかどうかに関して、判定が行われる（判断ブロック５０８）。例えば、クライアントデバイス上にインストールされた各ソフトウェアは、クライアントデバイスの信頼性、パフォーマンスおよびセキュリティに対して、何らかの影響をもち得る。しかし、いくつかの影響は、許容できる場合がある（例えば、パフォーマンスの軽微な低下）が、他の影響、例えば、起こり得る攻撃に対する脆弱性の公開は許容できない。したがって、複数の健全性要件を考慮した全体スコアを計算して、影響が許容できるかどうか判定してよい。例えば、全体としてのクライアント健全性に対する影響のスコアが許容できるかどうかを示すのに、閾値を使用することができる。スコアを計算する際、複数の要件に重みをつけることができる。影響が許容できるかどうか判定するのに、他の様々な技術も使用することができる。
【００４５】
図５において、悪影響（例えば、「良好なクライアント健全性」と考えられるものの閾値を超える全体的健全性影響）が検出されたかどうかに関して、判定が行われる（判断ブロック５０８）。検出されない場合（判断ブロック５０８から「ｎｏ」へ）、監視が継続される（ブロック５０６）。しかし、悪影響が検出された場合（判断ブロック５０８から「ｙｅｓ」へ）、アップデートは、この例では自動的に、ユーザによる介入なしに削除される（ブロック５１０）。したがって、クライアントデバイスの全体的健全性にアップデートが与える影響は、アップデートが存続するべきかどうか判定するのに使用することができる。この事例ではソフトウェアアップデートが説明されたが、例えば上で説明したクライアントヘルスサービス１０２から伝達される回復法（例えば、ポリシー）の影響、新規にインストールされ、または削除されたアプリケーションがクライアントデバイス１０４（ｎ）に与える影響、新規のまたは削除されたハードウェアがクライアントデバイス１０４に与える影響など、様々なアクションを監視することができる。
【００４６】
図６は、複数のクライアント健全性要件に基づく、クライアントデバイスの全体的健全性を記述する単一指示が出力される例示的な実装形態におけるプロシージャ６００を示すフロー図である。複数のクライアント健全性要件に対する、クライアントデバイスの複数のフィーチャの１つまたは複数の影響が監視される（ブロック６０２）。クライアント健全性要件は、信頼性、パフォーマンスおよびセキュリティを含む。複数のクライアント健全性要件に基づく、クライアントデバイスの健全性の全体としての状態を表す単一インジケータが調節される（ブロック６０４）。例えば、色の変化、出力される異なるインジケータ（例えば、笑顔に対してしかめっ面）、調節されるバーの長さなどを利用することができる。
【００４７】
表示およびクライアントデバイスのユーザによる閲覧のために、単一インジケータが出力される（ブロック６０６）。したがって、クライアントデバイスのユーザに、複数の健全性要件の詳細で当惑させることなく、クライアントデバイスの全体的健全性について知らせることができる。ある実装形態では、所望される場合、ユーザがこの情報を取得することができるように、複数の健全性要件それぞれの状態を出力させるように、単一インジケータが選択可能である。
【００４８】
例示的な動作環境
本明細書に記載する様々なコンポーネントおよび機能性は、個々のいくつかのコンピュータを用いて実装することができる。図７は、コンピュータ７０２の健全性を維持するためのクライアントヘルスシステム１０２によって監視することができる、参照番号７０２で参照されるコンピュータを含むコンピュータ環境７００の典型的な例のコンポーネントを示す。コンピュータ７０２は、図１および２のクライアントデバイス１０４（ｎ）と同じでも異なってもよいことに留意されたい。図７に示すコンポーネントは例に過ぎず、本発明の機能性の範囲に関するいかなる限定を提案することも意図していない。本発明は、図７に示す特徴に必ずしも依存しない。
【００４９】
概して、異なる様々な汎用または専用のコンピューティングシステム構成を利用することができる。本発明とともに使用するのに適切であり得る他の公知のコンピューティングシステム、環境、および／または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークＰＣ、ネットワーク対応デバイス、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれをも含む分散型コンピューティング環境などを含むが、それに限定されない。
【００５０】
コンピュータの機能性は、多くの場合、コンピュータによって実行されるソフトウェアコンポーネントなど、コンピュータ実行可能命令によって実施される。概して、ソフトウェアコンポーネントは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。タスクは、通信ネットワークを介してリンクされるリモート処理デバイスによって実施することもできよう。分散型コンピューティング環境では、ソフトウェアコンポーネントは、ローカルおよびリモートコンピュータ記憶媒体両方に置くことができる。
【００５１】
命令および／またはソフトウェアコンポーネントは、それぞれ別のときに、コンピュータの一部であるか、またはコンピュータによって読み取ることができる様々なコンピュータ可読媒体に格納される。プログラムは一般に、例えば、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、または変調信号など、何らかの形の通信媒体に載せて配布される。このような媒体から、プログラムは、コンピュータの補助記憶装置にインストールされ、またはロードされる。実行時に、プログラムは、少なくとも部分的に、コンピュータの一次電子メモリにロードされる。
【００５２】
例示のために、オペレーティングシステムなど、プログラムおよび他の実行可能プログラムコンポーネントを、本明細書では別個のブロックとして示しているが、このようなプログラムおよびコンポーネントは、様々なときにコンピュータの異なる記憶コンポーネントに存在し、コンピュータのデータプロセッサ（群）によって実行されることを理解されたい。
【００５３】
図７を参照すると、コンピュータ７０２のコンポーネントは、処理ユニット７０４と、システムメモリ７０６と、システムメモリなど様々なシステムコンポーネントを処理ユニット７０４に結合するシステムバス７０８とを含み得るが、これに限定されない。システムバス７０８は、様々なバスアーキテクチャのどれを使用してもよいメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（米国ビデオ電子装置規格化協会）ローカルバス、およびメザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られるＰＣＩ（周辺装置相互接続）を含む。
【００５４】
コンピュータ７０２は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ７０２によってアクセス可能であるとともに揮発性および不揮発性媒体、取外し可能および固定式媒体両方を含む、市販されているどの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。「コンピュータ記憶媒体」は、コンピュータ可読命令、データ構造、ソフトウェアコンポーネント、または他のデータなどの情報の格納のためのどの方法でも技術でも実装される揮発性媒体および不揮発性媒体両方、取外し可能媒体および固定式媒体を含む。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を格納するのに使うことができるとともにコンピュータ７０２によってアクセスすることができる他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、ソフトウェアコンポーネント、または他のデータを、変調データ信号、例えば搬送波や他の移送機構として具体化し、どの情報配信媒体も含む。「変調データ信号」という用語は、信号中の情報を符号化するようなやり方で設定されまたは変更される信号特性の１つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含まれるべきである。
【００５５】
システムメモリ７０６は、コンピュータ記憶媒体を、ＲＯＭ（読取り専用メモリ）７１０およびＲＡＭ（ランダムアクセスメモリ）７１２など、揮発性および／または不揮発性メモリの形で含む。基本入出力システム（ＢＩＯＳ）７１４は、例えば起動中にコンピュータ７０２内部の要素間の情報の転送を助ける基本ルーチンを含み、通常はＲＯＭ７１０に格納される。ＲＡＭ７１２は一般に、処理ユニット７０４に対してただちにアクセス可能な、かつ／または処理ユニット７０４によって現在操作されているデータおよび／またはソフトウェアコンポーネントを含む。限定ではなく例として、図７では、オペレーティングシステム７１６、アプリケーションプログラム７１８、ソフトウェアコンポーネント７２０、およびプログラムデータ７２２を示す。
【００５６】
コンピュータ７０２は、他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体も含み得る。単なる例として、図７は、固定式の不揮発性磁気媒体からの読出しまたはそこへの書込みをするハードディスクドライブ７２４、取外し可能な不揮発性磁気ディスク７２８からの読出しまたはそこへの書込みをする磁気ディスクドライブ７２６、および、ＣＤ  ＲＯＭや他の光学媒体など取外し可能な不揮発性光ディスク７３２からの読出しまたはそこへの書込みを行う光ディスクドライブ７３０を示している。例示的な動作環境で用いることができる、他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体状態ＲＡＭ、固体状態ＲＯＭなどを含むが、それに限定されない。ハードディスクドライブ７２４は通常、データメディアインターフェース７３４などの固定式メモリインターフェースによって、システムバス７０８に接続され、磁気ディスクドライブ７２６および光ディスクドライブ７３０は通常、取外し可能メモリインターフェースによって、システムバス７０８に接続される。
【００５７】
上述し、かつ図７に示したディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、ソフトウェアコンポーネント、およびコンピュータ７０２のための他のデータの格納を実現する。図７では、例えば、ハードディスクドライブ７２４は、オペレーティングシステム７１６’、アプリケーションプログラム７１８’、ソフトウェアコンポーネント７２０’、およびプログラムデータ７２２’を格納するものとして示してある。こうしたコンポーネントは、オペレーティングシステム７１６、アプリケーションプログラム７１８、ソフトウェアコンポーネント７２０、およびプログラムデータ７２２と同じでも、異なってもよいことに留意されたい。オペレーティングシステム７１６’、アプリケーションプログラム７１８’、ソフトウェアコンポーネント７２０’、およびプログラムデータ７２２’には、少なくとも、異なるものであることを示すために、ここでは異なる番号が与えてある。ユーザは、キーボード７３６および一般にはマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイスなどの入力デバイスを介して、コマンドおよび情報をコンピュータ７０２に入力することができる。他の入力デバイスには、ソース周辺デバイス（ストリーミングデータを提供するマイクロホン７３８やカメラ７４０など）、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどがあり得る。こうしたおよび他の入力デバイス（図示せず）はしばしば、システムバス７０８に結合される入出力（Ｉ／Ｏ）インターフェース７４２を介して処理ユニット７０４に接続されるが、他のインターフェースおよびバス構造、例えば並列ポート、ゲームポート、ＵＳＢ（ユニバーサルシリアルバス）によって接続することもできる。モニタ７４４または他のタイプのディスプレイデバイスも、ビデオアダプタ７４６などのインターフェースを介してシステムバス７０８に接続される。モニタ７４４に加え、コンピュータは、Ｉ／Ｏインターフェース７４２を介して接続することができる、他の周辺レンダリングデバイス（例えばスピーカ）および１つまたは複数のプリンタも含むことができる。
【００５８】
コンピュータは、リモートデバイス７５０など、１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において動作することができる。リモートデバイス７５０は、パーソナルコンピュータ、ネットワーク対応デバイス、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ７０２に関連して上述した要素の多くまたはすべてを含む。図７に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）７５２およびワイドエリアネットワーク（ＷＡＮ）７５４を含む。図７に示すＷＡＮ７５４はインターネットだが、ＷＡＮ７５４は、他のネットワークも含み得る。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
【００５９】
ＬＡＮネットワーク環境において使われる場合、コンピュータ７０２は、ネットワークインターフェースまたはアダプタ７５６を介してＬＡＮ７５２に接続される。ＷＡＮネットワーク環境において使われる場合、コンピュータ７０２は通常、モデム７５８、またはインターネット７５４を介して通信を確立する他の手段を含む。モデム７５８は、内部にあっても外部にあってもよく、Ｉ／Ｏインターフェース７４２または他の適切な機構を介してシステムバス７０８に接続することができる。ネットワーク接続された環境では、コンピュータ７０２に関連して図示したソフトウェアコンポーネントまたはその一部は、リモートデバイス７５０に格納することができる。限定ではなく例として、図７は、ソフトウェアコンポーネント７６０を、リモートデバイス７５０に常駐するものとして示している。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使うことができることが理解されよう。
【００６０】
結論
以上、構造上の特徴および／または方法における行為に特有の言葉で本発明を説明したが、添付の特許請求の範囲において定義される本発明は、説明した特定の特徴にも行為にも必ずしも限定されないことを理解されたい。そうではなく、こうした特定の特徴および行為は、権利請求される本発明を実装する例示的な形として開示されるものである。
【図面の簡単な説明】
【００６１】
【図１】自動化クライアントデバイス管理のための技術を利用するように動作可能な、例示的な実装形態における環境を示す図である。
【図２】図１のクライアントヘルスサービスおよびクライアントデバイスをより詳細に示す、例示的な実装形態におけるシステムを示す図である。
【図３】図１の表示デバイスが、クライアントデバイスの全体的健全性を表す単一指示をユーザインターフェース内に出力するものとして示される例示的な実装形態を示す図である。
【図４】複数のクライアントデバイスの監視から取得されたヒューリスティックデータが、識別された問題点に対する回復法を生成するのに使用され、次いで、クライアントデバイスに対する回復法の影響を判定するために回復法が監視される、例示的な実装形態におけるプロシージャを示すフローチャートである。
【図５】クライアントデバイスに対するアップデートの影響が、パフォーマンス、信頼性およびセキュリティを含むクライアントの健全性要件について監視される、例示的な実装形態におけるプロシージャを示すフロー図である。
【図６】複数のクライアント健全性要件に基づく、クライアントデバイスの全体的健全性を記述する単一指示が出力される例示的な実装形態におけるプロシージャを示すフロー図である。
【図７】分散環境におけるクライアントデバイスの例示的な実装形態を示す図である。
【図１】
2008541266.tif 000003
【図２】
2008541266.tif 000004
【図３】
2008541266.tif 000005
【図４】
2008541266.tif 000006
【図５】
2008541266.tif 000007
【図６】
2008541266.tif 000008
【図７】
2008541266.tif 000009