(57)【特許請求の範囲】
【請求項１】
コンピュータのネットワークの一部である標的コンピュータにおける異常を補正するための方法であって、
標的コンピュータにおける識別された異常を補正するために、どのような補正データが必要であるかを決定することであって、該標的コンピュータは、コンピュータのネットワークの一部である、ことと、
該ネットワーク内の複数のコンピュータの中からドナーコンピュータを位置付けることであって、該ドナーコンピュータは、該異常を補正するために必要な該補正データを含む、ことと、
該ドナーコンピュータから直接、該標的コンピュータにおいて該補正データを受信することと、
該補正データを使用して、該標的コンピュータに記憶されたデータ内の該異常を補正することと
を含み、
該方法は、
該標的コンピュータを含む該複数のコンピュータから、それぞれのスナップショットを受信することであって、該スナップショットのうちの１つは、該異常を有する該データを含む、ことと、
該それぞれのスナップショットに少なくとも部分的に基づいて、適応参照モデルを作成することであって、該適応参照モデルは、該それぞれのスナップショットの中の統計的に有意なパターンを識別するように動作可能である、ことと、
該それぞれのスナップショットのうちの少なくとも１つを該適応参照モデルと比較することと、
該比較に基づいて、該異常および該標的コンピュータを識別することと
をさらに含む、方法。
【請求項２】
前記異常は、喪失ファイル、喪失データ、またはファイル若しくは喪失データの喪失部分を含む、請求項１に記載の方法。
【請求項３】
前記異常は、喪失レジストリキーを含む、請求項１に記載の方法。
【請求項４】
前記異常は、破損ファイルまたは破損データを含む、請求項１に記載の方法。
【請求項５】
前記異常は、破損レジストリキーを含む、請求項１に記載の方法。
【請求項６】
前記標的コンピュータからアービトレータに要求を送信することであって、該要求は、前記補正データ用である、ことをさらに含む、請求項１に記載の方法。
【請求項７】
前記アービトレータからドナーコンピュータにドネーション要求を送信することであって、該ドネーション要求は、前記補正データ用である、ことをさらに含む、請求項６に記載の方法。
【請求項８】
前記ドナーコンピュータが前記補正データを提供できないときに、前記アービトレータにおいて、該ドナーコンピュータからのドネーション要求失敗メッセージを受信することをさらに含む、請求項７に記載の方法。
【請求項９】
ドナーコンピュータを位置付けるステップは、該ドナーコンピュータの物理的位置を決定することを含む、請求項１に記載の方法。
【請求項１０】
前記標的コンピュータからデータを削除することをさらに含む、請求項１に記載の方法。
【請求項１１】
コンピュータに記憶されたデータにおける異常を補正するためのシステムであって、
自身の中に記憶されたデータ内の異常を検出した標的コンピュータであって、該標的コンピュータは、コンピュータのネットワーク内の複数のコンピュータの中にある、標的コンピュータと、
該標的コンピュータからアセットに対する要求を受信するように構成されるアービトレータであって、該アセットは、一旦該標的コンピュータにロードされると、該異常を補正することに十分である、アービトレータと、
該アービトレータからドネーション要求を受信し、それに応じて該要求されたアセットを直接該標的コンピュータに供給する、少なくとも１つのドナーコンピュータと、
該標的コンピュータに記憶されたデータ内の該異常を検出および識別するように構成される、分析モジュールと
を備え、
該分析モジュールは、
該標的コンピュータを含む該複数のコンピュータから、それぞれのスナップショットを受信することであって、該スナップショットのうちの少なくとも１つは、該異常を有する該データを含む、ことと、
該スナップショットに少なくとも部分的に基づいて適応参照モデルを作成することであって、該適応参照モデルは、該スナップショット内の統計的に有意なパターンを識別するように動作可能である、ことと、
該スナップショットのうちの少なくとも１つを該適応参照モデルと比較することと、
該比較に基づいて、該異常および該標的コンピュータを識別することと
を実行するように動作可能である、システム。
【請求項１２】
前記アービトレータは、複数のそれぞれのドネーション要求を複数のドナーコンピュータに送信するように構成される、請求項１１に記載のシステム。
【請求項１３】
前記標的コンピュータは、前記アセットの受信を確認するように構成される、請求項１１に記載のシステム。
【請求項１４】
前記アービトレータは、第１のドナーコンピュータへの第１のドネーション要求が失敗に終わったときに、第２のドネーション要求を第２のドナーコンピュータに送信するように構成される、請求項１１に記載のシステム。
【請求項１５】
前記標的コンピュータは、少なくとも前記アービトレータと連絡しているエージェントを備える、請求項１１に記載のシステム。
【請求項１６】
前記標的コンピュータにおける前記エージェントは、前記少なくとも１つのドナーコンピュータにおけるエージェントと連絡するように動作可能である、請求項１５に記載のシステム。
【請求項１７】
前記異常は、喪失ファイル、ファイルの喪失部分、喪失レジストリキー、破損ファイル、または破損レジストリキーのうちの少なくとも１つを含む、請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、自動化されたコンピュータサポートのためのシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータネットワークの管理は、比較的小規模のものであっても困難であり得る。ネットワークマネジャーまたは管理者は、ユーザのコンピュータが、生産性を最大化し、ダウンタイムを最小化するために、適切に動作していることを確認する責任がある場合が多い。コンピュータが不安定に機能し始めるか、または完全に機能を停止すると、ユーザはシステム管理者にしばしば援助を求める。２００４年８月１１日に出願され、特許文献１として公開された、同時係属の米国特許出願第１０／９１６，９５６号（「９５６」出願）において説明されるように、コンピュータネットワーク上の個別のコンピュータに関連する問題を調査、診断、および解決するためにかかる労働コストはかなりのものである。
【０００３】
所定のコンピュータが適切に作動していない理由は多数あり得、失われた、または破損したファイルまたはレジストリキー、「マルウェア」（ウイルス等を含む）、ならびにユーザエラーが含まれる。あいにく、一般的な組織の情報技術（ＩＴ）部門は、所定のコンピュータに関して報告された問題の通知を受信し、その後、それを調査して問題の根源を識別した後に、所定のコンピュータに対して適切な解決、修復、補正を実装するリソースまたは能力に欠けることが珍しくない。結果として、大部分の報告されたコンピュータ問題の詳細を徹底的に調査する代わりに、ネットワークマネジャーおよびＩＴ部門は、報告された問題に対処するために、以下のような３つの一般的な「強引な」方法に頼る場合が多い。
【０００４】
バックアップであって、システムまたはアプリケーション全体を、既に記憶されているバックアップバージョンと置き換える。
【０００５】
ゴールデンイメージであって、すべてのアプリケーションおよびデータをリセットして、ベースライン構成に戻す。
【０００６】
および／または、再画像化であって、すべてのソフトウェアをコンピュータ上で新たに再インストールする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００５／００３８８２７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
コンピュータ問題の修復に対する前述の「強引な」アプローチは、当業者が理解するように、例えば、所定のコンピュータ上の単一、特定の問題を解決することに対応しないデータ置換方法を含み、さらに、コンピュータユーザに対して、多数の望ましくない副作用をもたらす場合が多い。例えば、ユーザは、ユーザのカスタマイズ設定の喪失を経験し得るか、長いダウンタイム期間を乗り切る必要があり得るか、またはユーザデータを失うことになり得る。
【０００９】
ユーザデータを維持し、不要なダウンタイムを回避することが多くの場合に極めて重要であることを考慮すると、コンピュータ問題の修復に対する異なるアプローチの必要性がある。
【課題を解決するための手段】
【００１０】
本発明の実施形態は、コンピュータ上に記憶されたコンピュータデータにおいて検出される異常を、最少の人間の介入または人間の介入なしに、解決または修復するためのシステムおよび方法を提供する。本発明の１つの特徴は、ドナーコンピュータから破損していない有効データまたは「アセット」（例えば、ファイル、ファイルの部分、またはレジストリキーであるが、それらに限定されない）を利用し、異常が検出された標的またはレシピエントコンピュータにこのアセットを渡す。
【００１１】
一実施形態において、レシピエントコンピュータ（すなわち、検出された異常を自身に有するコンピュータ）は、アセット要求およびドネーションを管理するアービトレータ構成要素にアセットを要求する。アービトレータ構成要素は、このアセット要求に基づいて、求められているアセットを有すると考えられるか、または認知される１つ以上のドナーコンピュータに対して、ドネーション要求を生成し、送信する。次いで、受信するドナーコンピュータは、要求されたアセットを含むアセットドネーションメッセージを、このアセット要求を起こしたレシピエントコンピュータに送信することによって応答する。「ループを閉じる」ために、レシピエントコンピュータは、次に、要求されたアセットが受信されたことを示す確認を、アービトレータ構成要素に送信してもよい。次いで、アービトレータは、未解決アセット要求のリストまたはキューから元のアセットを除去してもよい。またアセットは、標的またはレシピエントに直接送信（またはアドレス設定）されるのではなく、アービトレータに渡されてもよい。
【００１２】
この「９５６」出願は、所定のコンピュータ上の異常を検出し得るシステムおよび方法を説明し、このとき、そのシステムおよび方法は、「適応参照モデル」を使用することにより、所定のコンピュータネットワークにおける複数のコンピュータ上に記憶されるデータにおいて、「正常な」パターンを確立する。本発明は、そのようなシステムを異常検出に対して導入し得るか、または任意の他の方法に依存してコンピュータネットワークにおけるコンピュータ上の異常を識別し得る。
【００１３】
本発明の方法を使用して修復されることに特に適している異常は、喪失ファイル、喪失データ、またはファイルまたはデータの喪失部分、喪失レジストリキー、破損ファイル、または破損レジストリキーを含むが、それらに限定されない。本発明の側面は、同様に動作することにより、予期せず存在するファイルまたはデータを除去することができる。
【００１４】
本明細書は、例えば、以下の項目も提供する。
（項目１）
コンピュータのネットワークの一部である標的コンピュータにおける異常を補正するための方法であって、
標的コンピュータにおける識別された異常を補正するために、どのような補正データが必要であるかを決定することであって、該標的コンピュータは、コンピュータのネットワークの一部である、ことと、
該ネットワーク内の複数のコンピュータの中からドナーコンピュータを位置付けることであって、該ドナーコンピュータは、該異常を補正するために必要な該補正データを含む、ことと、
該ドナーコンピュータから、該標的コンピュータにおいて該補正データを受信することと、
該補正データを使用して、該標的コンピュータに記憶されたデータ内の該異常を補正することと
を含む、方法。
（項目２）
前記標的コンピュータを含む前記複数のコンピュータから、それぞれのスナップショットを受信することであって、該スナップショットのうちの１つは、前記異常を有する前記データを含む、ことと、
該それぞれのスナップショットに少なくとも部分的に基づいて、適応参照モデルを作成することであって、該適応参照モデルは、該それぞれのスナップショットの中の統計的に有意なパターンを識別するように動作可能である、ことと、
該それぞれのスナップショットのうちの少なくとも１つを該適応参照モデルと比較することと、
該比較に基づいて、該異常および該標的コンピュータを識別することと
をさらに含む、項目１に記載の方法。
（項目３）
前記異常は、喪失ファイル、喪失データ、またはファイル若しくは喪失データの喪失部分を含む、項目１に記載の方法。
（項目４）
前記異常は、喪失レジストリキーを含む、項目１に記載の方法。
（項目５）
前記異常は、破損ファイルまたは破損データを含む、項目１に記載の方法。
（項目６）
前記異常は、破損レジストリキーを含む、項目１に記載の方法。
（項目７）
前記標的コンピュータからアービトレータに要求を送信することであって、該要求は、前記補正データ用である、ことをさらに含む、項目１に記載の方法。
（項目８）
前記アービトレータからドナーコンピュータにドネーション要求を送信することであって、該ドネーション要求は、前記補正データ用である、ことをさらに含む、項目７に記載の方法。
（項目９）
前記ドナーコンピュータが前記補正データを提供できないときに、前記アービトレータにおいて、該ドナーコンピュータからのドネーション要求失敗メッセージを受信することをさらに含む、項目８に記載の方法。
（項目１０）
ドナーコンピュータを位置付けることは、該ドナーコンピュータの物理的位置を決定することを含む、項目１に記載の方法。
（項目１１）
前記標的コンピュータからデータを削除することをさらに含む、項目１に記載の方法。
（項目１２）
コンピュータに記憶されたデータにおける異常を補正するためのシステムであって、
自身の中に記憶されたデータ内の異常を検出した標的コンピュータであって、該標的コンピュータは、コンピュータのネットワーク内の複数のコンピュータの中にある、標的コンピュータと、
該標的コンピュータからアセットに対する要求を受信するように構成されるアービトレータであって、該アセットは、一旦該標的コンピュータにロードされると、該異常を補正することに十分である、アービトレータと、
該アービトレータからドネーション要求を受信し、それに応じて該要求されたアセットを該標的コンピュータに供給する、少なくとも１つのドナーコンピュータと
を備える、システム。
（項目１３）
前記標的コンピュータに記憶されたデータ内の前記異常を検出および識別するように構成される、分析モジュールをさらに備える、項目１２に記載のシステム。
（項目１４）
前記分析モジュールは、
前記標的コンピュータを含む前記複数のコンピュータから、それぞれのスナップショットを受信することであって、該スナップショットのうちの少なくとも１つは、前記異常を有する前記データを含む、ことと、
該スナップショットに少なくとも部分的に基づいて適応参照モデルを作成することであって、該適応参照モデルは、該スナップショット内の統計的に有意なパターンを識別するように動作可能である、ことと、
該スナップショットのうちの少なくとも１つを該適応参照モデルと比較することと、
該比較に基づいて、該異常および該標的コンピュータを識別することと
を実行するように動作可能である、項目１３に記載のシステム。
（項目１５）
前記アービトレータは、複数のそれぞれのドネーション要求を複数のドナーコンピュータに送信するように構成される、項目１２に記載のシステム。
（項目１６）
前記標的コンピュータは、前記アセットの受信を確認するように構成される、項目１２に記載のシステム。
（項目１７）
前記アービトレータは、第１のドナーコンピュータへの第１のドネーション要求が失敗に終わったときに、第２のドネーション要求を第２のドナーコンピュータに送信するように構成される、項目１２に記載のシステム。
（項目１８）
前記標的コンピュータは、少なくとも前記アービトレータと連絡しているエージェントを備える、項目１２に記載のシステム。
（項目１９）
前記標的コンピュータにおける前記エージェントは、前記少なくとも１つのドナーコンピュータにおけるエージェントと連絡するように動作可能である、項目１８に記載のシステム。
（項目２０）
前記異常は、喪失ファイル、ファイルの喪失部分、喪失レジストリキー、破損ファイル、または破損レジストリキーのうちの少なくとも１つを含む、項目１２に記載のシステム。
（項目２１）
コンピュータのネットワークの一部である、コンピュータ内の異常を治す自動化された方法であって、
標的コンピュータからアセット要求を受信することであって、該アセット要求は、該標的コンピュータにおけるデータを置換または増強し、それによって、該標的コンピュータに記憶された選択データ内の前もって識別された異常を治す、補正コンテンツ用である、ことと、
該アセット要求をドネーション要求に変換し、該ドネーション要求を少なくとも１つのドナーコンピュータに送信することと、
該アセットが該ドナーコンピュータから受信されたという表示を該標的コンピュータから受信することと
を含む、方法。
（項目２２）
前記少なくとも１つのドナーコンピュータの識別を、分析構成要素から受信することをさらに含む、項目２１に記載の方法。
（項目２３）
複数のドネーション要求を複数のドナーコンピュータに送信することをさらに含む、項目２１に記載の方法。
（項目２４）
未解決ドネーション要求を追跡することをさらに含む、項目２３に記載の方法。
本発明の実施形態のこれらの特徴および他の特徴と、それらに付随する利点は、以下の詳細な説明を関連図と併せて読むと、より完全に理解されるであろう。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施形態が動作し得る、典型的な環境を示す。
【図２】図２は、本発明の実施形態に従う、情報および動作のフローを示すブロック図である。
【図３】図３は、本発明の実施形態に従う、通信ネットワークを介して互いに連絡する、レシピエントまたは標的コンピュータ、ドナーコンピュータ、およびアービトレータ構成要素を表す。
【図４】図４〜６は、本発明の実施形態に従う、メッセージおよび補正データの交換を表す、典型的なシーケンス図である。
【図５】図４〜６は、本発明の実施形態に従う、メッセージおよび補正データの交換を表す、典型的なシーケンス図である。
【図６】図４〜６は、本発明の実施形態に従う、メッセージおよび補正データの交換を表す、典型的なシーケンス図である。
【発明を実施するための形態】
【００１６】
本発明の実施形態は、自動化されたコンピュータサポートおよび修復のためのシステムおよび方法を提供する。ここで、同様の番号が複数の図面を通して同様の要素を示す図を参照して、図１は、本発明の実施形態が動作する典型的な環境を示すブロック図である。この環境および構成は、２００４年８月１１日に出願された米国出願第１０／９１６，９５６号（「９５６」出願）において詳述され、その全体は参照することにより本明細書に組み込まれる。本発明は、「９５６」出願の文脈において説明されるが、当業者であれば、本発明の態様は、そこで説明されるシステムおよび方法とは独立に使用され得ることを理解するであろう。一方、「９５６」出願において説明されるシステムおよび方法によって可能になるコンピュータの問題／異常の検出精度は、本発明の実施形態と併せて説明される問題修復技術の利点をさらに利用するための助けとなり得る。
【００１７】
図１を再度参照すると、自動サポート設備１０２が示されている。自動サポート設備１０２は、図１において単一の設備として示されるが、複数の設備を備えるか、またはコンピュータの管理集団１１４またはコンピュータのネットワークが常駐するサイトに組み込まれてもよい。自動サポート設備１０２は、自動サポート設備１０２内に記憶されたデータに対してセキュリティを提供するために、ネットワーク１０６と連絡しているファイアウォール１０４を含む。自動サポート設備１０２は、コレクタ構成要素１０８も含み得る。コレクタ構成要素１０８は、他の機能の中でも、例えば、ファイル転送プロトコル（ＦＴＰ）あるいはハイパーテキスト転送プロトコル（ＨＴＴＰ）、または専用プロトコル等の標準プロトコルを使用して、自動サポート設備１０２の中に、または中からデータを転送するためのメカニズムを提供し得る。コレクタ構成要素１０８は、「スナップショット」を含む、受信データのダウンロード、解凍、および解析に必要な処理ロジックも提供し得る。
【００１８】
自動サポート設備１０２は、コレクタ構成要素１０８と連絡するか、および／またはネットワーク１０６と直接連絡する、分析構成要素１１０を含んでもよく、したがって、コンピュータ１１４の管理集団も含み得る。分析構成要素１１０は、「９５６」出願において詳細に説明され、本明細書において文脈が要約されるように、「適応参照モデル」上で作成および動作するためのハードウェアおよびソフトウェアを含んでもよい。
【００１９】
コレクタ構成要素１０８および分析構成要素１１０の両方と連絡し得る、データベース構成要素１１２を使用して、適応参照モデルを記憶してもよい。分析構成要素１１０は、適切な場合に、適応参照モデルおよびスナップショットをデータベース構成要素１１２から抽出し、参照モデルの局面においてスナップショットを分析し、任意の異常を識別およびフィルタリングして、１つまたは複数の応答エージェントを伝送し（図２）、そのすべては以下で詳細に説明される。分析構成要素１１０は、システムにユーザインターフェースも提供し得る。
【００２０】
図１は、１つのコレクタ構成要素１０８、１つの分析構成要素１１０、および１つのデータベース構成要素１１２のみを示す。しかしながら、当業者であれば、他の可能な実装も、必要に応じて共にネットワーク化されるか、多数のそのような構成要素を含み得ることを理解するであろう。
【００２１】
本明細書において極めて詳細に説明されるように、本発明の実施形態は、複数のクライアントコンピュータ１１６ａ〜ｄを備え得る管理集団１１４に対する自動サポートおよび修復を提供する。当業者であれば、図示される４つのクライアントコンピュータ１１６ａ〜ｄは、単なる例示にすぎないこと、また本発明の実施形態は、数百、数千、またはそれより多くのクライアントコンピュータを有するコンピュータネットワークの局面において動作し得ることを理解するであろう。管理集団１１４は、それぞれのエージェント構成要素２０２を使用して、ネットワーク１０６を介して、自動サポート設備１０２にデータを提供する。
【００２２】
より具体的には、エージェント構成要素２０２は、それぞれ監視されるコンピュータ１１６ａ〜ｄ内に配備され、そのそれぞれのコンピュータからデータを収集する。例えば、予定された間隔（例えば、１日に１回）または分析構成要素１１０からのコマンドに応答して、エージェント構成要素２０２は、それが常駐するマシンの状態の詳細な「スナップショット」を撮る。このスナップショットは、すべてのシステムファイル、指定されたアプリケーションファイル、レジストリ、パフォーマンスカウンタ、プロセス、サービス、通信ポート、ハードウェア構成、およびログファイルの詳細な審査を含んでもよい。各走査の結果、「スナップショット」は、次に（随意で）圧縮され、コレクタ構成要素１０８／データベース構成要素１１２に伝送される。
【００２３】
さらに、エージェント構成要素２０２は、好ましくは、破損データの置換に使用することができるか、またはエージェント構成要素２０２が常駐する構成要素に関する喪失データを完全なものにするために使用することができる、補正データに対する要求を、例えば、ネットワーク１０６全体、したがって、潜在的にすべての構成要素１１６ａ〜ｄに伝送するように構成される。好適な実施形態において、補正データ（本明細書では「アセット」とも称される）に対する要求は、すべてのコンピュータに向けられるわけではないが、代わりにアービトレータ構成要素１１３に向けられ、これは、自動サポート設備１０２内で接続された状態で示されるが、代替として、ネットワーク１０６と連絡する別のコンピュータ１１６として実装されてもよい。アービトレータ構成要素１１３の機能性、およびそれぞれのコンピュータ１１６の１つ以上のエージェント構成要素２０２との相互作用に関するさらなる詳細は、本明細書において後に提供される。
【００２４】
図１に示されるサーバー、コンピュータ、およびネットワーク構成要素のそれぞれは、プロセッサおよびコンピュータ読取可能なメディアを備える。当業者に知られているように、本発明の実施形態は、複数の機能を単一のコンピュータに組み合わせるか、または複数の単一のタスクを実行するコンピュータを利用することによる、多数の方法で構成され得る。
【００２５】
本発明の実施形態によって利用されるプロセッサは、例えば、本発明に従うプロセスのサポートにおいて、必要に応じて入力を処理し、アルゴリズムを実行し、出力を生成することができるデジタル論理プロセッサを含んでもよい。そのようなプロセッサは、マイクロプロセッサ、ＡＳＩＣ、および状態マシンを含み得る。そのようなプロセッサは、プロセッサによって実行されると、本明細書で説明されるステップをプロセッサに実行させる指示を記憶する、メディア、例えば、コンピュータ読取メディアを含むか、またはそれと連絡し得る。
【００２６】
コンピュータ読取可能メディアの実施形態は、電子、光学、磁気、またはタッチセンシティブ入力装置と連絡するプロセッサ等のプロセッサを、コンピュータ読取可能な指示とともに提供できる、他の記憶あるいは伝送装置を含むが、それらに限定されない。適切な媒体の他の実施例は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、磁気ディスク、メモリチップ、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、構成プロセッサ、すべての光学メディア、すべての磁気テープあるいは他の磁気メディア、またはコンピュータプロセッサが指示を読み取ることができる任意の他のメディアを含むが、それらに限定されない。また、多様な他の形態のコンピュータ読取可能メディアがコンピュータに指示を伝送または担持してもよく、ルータ、プライベートあるいはパブリックネットワーク、または他の有線および無線伝送装置あるいはチャンネルを含む。指示は、例えば、Ｃ、Ｃ＃、Ｃ＋＋、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｊａｖａ（登録商標）、およびＪａｖａ（登録商標）Ｓｃｒｉｐｔを含む、任意のコンピュータプログラミング言語からのコードを含んでもよい。
【００２７】
‘９５６出願から再現される図２は、スナップショット分析に関する追加の局面を提供する。当業者であれば、本発明の実施形態が、必ずしも本明細書および‘９５６出願において説明されるものと同一種類のスナップショット分析を行う必要がないことを理解するであろう。一方、そのようなスナップショット分析方法を実装することによって可能になる問題検出の精度は、本明細書で説明される問題修復技術の利益をさらに利用するための助けとなり得る。
【００２８】
図２は、スナップショット分析に関連する情報のフローを示すブロック図である。表示される実施形態は、図１に示されるように、いくつかの機能を実行し得るエージェント構成要素２０２を備える。最初に、それは、分析構成要素１１０からのコマンドに応答して、またはエージェント構成要素２０２自体によって検出される関心対象の事象に応答して、予定された間隔でクライアントマシン１１６を走査することによってデータを収集することに関与し得る。前述のとおり、走査は、すべてのシステムファイル、指定されたアプリケーションファイル、レジストリ、パフォーマンスカウンタ、ハードウェア構成、ログ、実行タスク、サービス、ネットワーク接続、および他の関連データの詳細な審査を含んでもよい。各走査の結果は、既に示されているように、圧縮され、ネットワーク全体をスナップショットの形態で、コレクタ構成要素１０８および／または関連データベースに伝送され得る。
【００２９】
一実施形態において、エージェント構成要素２０２は、審査対象のファイルのバイトをすべて読み取り、各ファイルのデジタル署名またはハッシュを作成する。デジタル署名は、サイズおよび作成日等のメタデータを単に提供するのではなく、各ファイルの正確な内容を識別する。これは、何らかの従来ウイルスが、ウイルス検出用のメタデータに依存するシステムを騙そうとするときに、所定のファイルのファイルヘッダ情報を変更することができるという点で特に有用であり得る。そのため、本発明と併せて実装され得るデジタル署名方法は、依然として、そのようなウイルスを良好に検出することができる。
【００３０】
エージェント構成要素２０２によるクライアントコンピュータ１１６の走査は、リソース集約的であり得る。したがって、一実施形態において、定期的に、例えば、毎日、ユーザがクライアントマシンを使用し得ない時間の間に、全走査が実行される。別の実施形態において、エージェント構成要素２０２は、クライアントマシンのデータ走査を行い、最後の走査からの変更のみをログする。さらに別の実施形態において、エージェント構成要素２０２による走査は、要求に応じて実行され、クライアントマシン上の異常または報告された問題を修復しようとしている技師またはサポート担当者に価値あるツールを提供する。
【００３１】
エージェント構成要素２０２によって実行される第２の主要な機能は、動作のブロッキング機能である。例えば、エージェント構成要素２０２は、システムファイルおよびレジストリ等のキーシステムリソースへのアクセスを常に（または実質的に常に）管理してもよく、適切な場合は、悪質なソフトウェアからのダメージを回避するために、リアルタイムでこれらのリソースへのアクセスを選択的にブロックし得る。動作の監視は、継続的に生じてもよく、動作のブロッキングは、修復措置の一部として有効であり得る。例えば、分析構成要素１１０が、ウイルスの存在を疑うと、修復措置をダウンロードし、エージェント構成要素２０２を介して、クライアントに、ウイルスが管理システム内の主要な情報源にアクセスすることをブロックさせることができる。
【００３２】
エージェント構成要素２０２によって実行される第３の機能は、「応答エージェント」の実行環境を提供することである。応答エージェントは、エージェント構成要素２０２によって理解されるコマンドであり得るか、または自動手順を実装して、様々な種類のトラブル状態に対処する、より包括的な「モバイルソフトウェア構成要素」であり得る。例えば、分析構成要素１１０がウイルスの存在を疑うと、応答エージェントをダウンロードして、エージェント構成要素２０２に、疑わしいコードまたはデータを管理システムから除去することができる。エージェント構成要素２０２は、監視されているコンピュータ上のサービスまたは他のバックグラウンドプロセスとして実行してもよい。本発明の実施形態によって提供される情報の範囲および精度のため、修復は、従来システムを用いるよりもさらに正確に実行することができる。
【００３３】
エージェント構成要素２０２のさらに別の機能は、受信された応答エージェント（単にコマンドまたはメッセージであってもよく、必ずしも独立して実行可能な機能ではない）に応答して、例えば、アービトレータ構成要素１１３に対するアセット要求メッセージで開始する一連の事象を起動し、最終的に、１つまたは複数のドナーコンピュータに、例えば、補正データ等の特定データを、アセット要求者（本明細書では、「標的コンピュータ」または「レシピエント」とも称される）に送達し、次いで、レシピエント内に記憶されて、該コンピュータ上の既存データを置換または追加し、それによって問題または異常を修正する。
【００３４】
図２でさらに示されるように、本発明の実施形態は、‘９５６出願で詳細に説明されるとおり、適応参照モデル構成要素２０６を含み得る。適応参照モデル２０６を使用して、多数のコンピュータからのスナップショットを分析し、汎用データマイニングアルゴリズム、または特にこの目的のために設計された専用データマイニングアルゴリズムを使用する統計的に有意なパターンを識別する。一旦参照が確立されると、１つまたは複数のサンプルスナップショットを使用して、集団全体または集団の任意のメンバー内で何らかの異常が発生しているか否かを決定することができる。
【００３５】
ポリシーテンプレート構成要素２０８によって、サービスプロバイダは、「ポリシー」形式のルールを適応参照モデルに手動で挿入することができる。ポリシーは、属性（ファイル、レジストリキー等）および値の組み合わせであり、これらは、モデルに適用されると、モデルにおける統計的に生成された情報の一部を上書きする。このメカニズムを使用して、セキュリティポリシーとの適応性を認証する、およびチェックして適切なソフトウェアアップデートがインストールされたことを確認する等の多様な共通メンテナンス動作を自動化することができる。
【００３６】
図２の情報フローの一部として、所定のスナップショットを受信するように調整される検出モジュール２１８がさらに提供され、所定の適応参照モデルによって提供される「通常」パターンと比較して、スナップショットにおける異常を検出する。本明細書で使用されるように、異常は、予想外に存在するアセット、予想外に不在のアセット、または未知の値を有するアセットとして定義され得る。異常は、診断モジュール２１０を介して、認識フィルタ２１６のライブラリと照合され得る。認識フィルタ２１６は、特定の原因の存在が、状態または一般分類の状態を生じさせていることを示す、特定パターンの異常を含む。認識フィルタ２１６は、状態を重大度表示、テキスト記述、および応答エージェントへのリンクと関連付けでもよい。別の実施形態において、認識フィルタ２１６を使用して、悪性の異常を識別し、解釈することができる。例えば、管理者がいかなる問題も生じないと確信している新しいアプリケーションをユーザが追加する場合、本発明に従うシステムは、依然としてこのアプリケーションを一式の異常として報告する。アプリケーションが新しい場合、次にそれが異常として追加するアセットを報告することは正しい。しかしながら、管理者は、認識フィルタ２１６を使用することにより、アプリケーションを悪性として追加することによって生じる異常を解釈することができる。
【００３７】
認識フィルタを使用して、異常が既知の状態と照合されると、問題の根源が明らかになり得る。この情報、すなわちトラブル状態であるという情報によって、応答モジュール２１４は、応答エージェントライブラリ２１２との組み合わせにおいて、適切な応答エージェントを選択して、異常なデータを有すると識別されたコンピュータ上に常駐する、エージェント構成要素２０２に戻すことに用いられる。適応参照モジュールの開発および使用に関するさらなる詳細は、‘９５６出願において見出すことができる。要するに、適応参照モデル、または何らかの他の手段の使用を介するか否かにかかわらず、本発明の必須要素は、所定の（例えば、標的）コンピュータ上に存在し得る、特定の異常を識別することである。
【００３８】
少なくとも２つの主要な一般カテゴリまたは異常の種類は、本発明の文脈における修復に特に適している。第１に、コンピュータがデータを喪失していることが決定された場合に生じる、予想外の不在（ＵＡ）の異常があり得る（例えば、プログラムの不完全なインストール、または削除されたファイルまたはレジストリキー）。第２に、特定のデータが、あるべき状態とは異なることが決定された場合に生じる、不明の値（ＵＶ）の異常があり得る（例えば、ファイルが破壊されるか、またはレジストリキーが変更されている）。本発明の実施形態を用いて、これらの両種類の異常を（高度に自動化された態様で）修復することが可能である。第３の種類の異常、予想外に存在する（ＵＰ）異常は、コンピュータが、そこにあるべきでないデータを含む場合に生じる。この種類の異常の修復は、予期せぬデータを削除または除去するステップを含む。
【００３９】
図３は、本発明の実施形態にしたがって、通信ネットワーク１０６を介して互いに連絡する、レシピエントまたは標的コンピュータ１１６ｃ、ドナーコンピュータ１１６ｄ（これら２つの構成要素は、それぞれ独自のエージェント構成要素２０２を有する）、およびアービトレータ構成要素１１３（ネットワーク環境におけるスタンドアロンコンピュータであり得るか、または前述されるように、自動サポート設備１０２の一部であってもよい）を表す。アービトレータ構成要素１１３は、レシピエントコンピュータ１１６ｃと１つ以上のドナーコンピュータ１１６ｄとの間に論理的に配置される。しかしながら、コンピュータネットワークトポロジーの視点から、アービトレータ構成要素は、レシピエントコンピュータ１１６ｃおよびドナーコンピュータ１１６ｄが、アービトレータ構成要素１１３と通信できる限り、事実上、物理的に任意の場所に配置することができる。アービトレータ構成要素１１３は、本明細書において、個別の機能ユニットとして説明されているが、当業者であれば、アービトレータ構成要素１１３の機能性は、クライアントコンピュータ１１６自体のうちの個々のコンピュータ上に配置され得るが、そのような構成は、より集中的なアービトレータメカニズムから生じ得る利益を排除し得る。
【００４０】
標的コンピュータ１１６ｃが、標的コンピュータ１１６ｃ上で検出された異常を補正するために、補正データを必要としていることが一旦決定されると、本発明の局面が起動される。より具体的には、図４に示されるように、レシピエントコンピュータ１１６ｃ上の異常を補正するために、特定のアセット（または補正データ）が必要であることが一旦決定されると、エージェント構成要素２０２が構成され、レシピエントコンピュータ１１６ｃが必要とするアセットの表示を含む、アセット要求メッセージ４０１を送信する。検出された異常を補正するためにどのようなアセットが必要かに関するリストまたは記述は、自動サポート設備１０２、例えば、応答エージェントによって提供され得る。代替として、エージェント構成要素２０２は、異常を自己診断するために十分に洗練され得、アセット要求メッセージ４０１をそれ自体で起動し得る。
【００４１】
アービトレータ構成要素１１３は、アセット要求メッセージ４０１を受信し、レシピエントコンピュータによって求められているアセット、または補正データを含む適切なドナーコンピュータを位置付ける。ドナーコンピュータは、例えば、コレクタ構成要素１０８、分析構成要素１１０、およびデータベース構成要素１１２の任意の組み合わせをクエリすることによって識別され得、最初に異常の識別に関与したと考えられるこれらの構成要素も、そのような以上を有しないクライアントコンピュータを識別することができ、そのため、望ましいアセットまたは補正データをドネートする資格があるためである。またドナーコンピュータは、ドネートするための位置にあり得る個別のアセットの数に基づいて選択されてもよい。ドナーコンピュータを選択する際の別の要素は、物理的位置であり得る。つまり、レシピエントコンピュータに近いドナーコンピュータ、または物理的に近くはないが、それ自体が十分に自由であるか、またはドネーション要求により容易に応答するために十分に自由であるネットワークの一部であるドナーコンピュータを選択することが望ましい場合がある。一旦ドナーコンピュータが選択されると、アービトレータ構成要素１１３は、ドネーション要求メッセージ４０２を選択したドナーコンピュータに送信する。ドネーション要求メッセージは、図示されるように、単一のメッセージであり得るか、または例えば、要求されている個別のアセットそれぞれに対するメッセージ等の複数のメッセージを含み得る。
【００４２】
ドネーション要求メッセージ４０２に応答して、選択したドナーコンピュータは、１つ以上のアセットドネーションメッセージ４０３を、要求されたアセットまたは補正データを含むレシピエントコンピュータに戻す。一実施形態において、それぞれの個別のアセットドネーションメッセージは、単一のアセットを含む。しかしながら、当業者であれば、単一のそのようなメッセージが、複数の要求されたアセットを含み得るということを理解するであろう。代替実施形態において、アセットドネーションメッセージ４０３は、アービトレータ構成要素に戻され、次いで、該メッセージはレシピエントコンピュータに転送され得るか、または例えば、最初に送達されるべきすべての要求アセットを待ち、その後、要求アセットをすべて含むレシピエントコンピュータに単一メッセージを生成および返送してもよい。
【００４３】
エージェント構成要素２０２が要求アセットを一旦受信し、おそらくその記憶を内部的に確認すると、レシピエントコンピュータは、１つ以上のアセット受信メッセージ４０４をアービトレータ構成要素１１３に送信し、アセットの受信を確認する。好適な実施形態において、アービトレータ構成要素１１３は、未解決ドネーション要求を追跡し、レシピエントコンピュータからアセット受信メッセージを受信すると、ドネーション要求における対応アセットを受信済としてマークする。
【００４４】
所定のドネーション要求に関連するアセットのすべてが受信されると、アービトレータ構成要素１１３は、それが維持する未解決要求からドネーション要求を除去し得る。このように、レシピエントコンピュータのアセット要求は、主としてアービトレータ構成要素１１３まで下がる要求の管理の負担を伴って満たされる。当業者は、アービトレータ構成要素１１３が、個別のモジュールとして示されるが、アービトレータ構成要素１１３の機能性は、代替として、例えば、分析構成要素１１０または全体システムの他の構成要素に組み込まれ得ることを理解するであろう。
【００４５】
単一のドナーコンピュータが、所定のレシピエントコンピュータが要求するアセットのすべてを有しない場合がある可能性は高い。ネットワークのオーバーヘッドならびに異常修復管理の視点から、アービトレータ構成要素は、レシピエントコンピュータからのアセット要求メッセージを、できる限り少ないドネーション要求メッセージで満たそうとすることが好ましい。しかしながら、アセット要求メッセージにおけるアセットのすべてが、単一のドナーコンピュータ上で検出され得ない場合、１つ以上のドネーション要求メッセージが送信されて、要求を満たし得る。そのため、図５に示されるように、アービトレータ構成要素１３３に対する単一のアセット要求メッセージ５０１は、それぞれのドナーコンピュータに送信されている２つの個別のドネーション要求メッセージ５０２ａ、５０２ｂを生じさせ得る。次に、ドナーコンピュータは、それぞれのアセットドネーションメッセージ５０３ａ、５０３ｂをレシピエントコンピュータに送信する。次いで、アセットドネーションは、それぞれ対応するアセット受信メッセージ５０４ａ、５０４ｂを送信することによって、アービトレータ構成要素１１３が、未解決中のおよび満たされたアセット要求を追跡できるように個々に確認される。
【００４６】
アービトレータ構成要素１１３が、求められている特定のアセットのドナーコンピュータを見出せない場合、アセット要求失敗メッセージ（図示せず）は、好ましくは、そのような各アセットのレシピエントに送信される。メッセージ等に応答して、要求しているコンピュータ上に常駐するエージェント構成要素２０２は、何もしないように構成され得るか、または分析構成要素１１０（または他の構成要素）と連絡して、レシピエントコンピュータが、依然として、直ちに入手可能でないような所定のアセットを必要とし得るという通知を提供する。警告メッセージは、システム管理者に送信されてもよく、レシピエントコンピュータの完全に自動化された解決／修復を行うことができないこと、またその後特別な注意が必要であり得ることを示す。
【００４７】
図６は、本発明の実施形態に従う、さらに別の可能な事象のシーケンスを表す。ドネーション要求メッセージの数を最小に維持するために、アービトレータ構成要素１１３は、アセット要求メッセージを受信してもよく、それに応答して、ドネーション要求メッセージ６０２を第１のドナーコンピュータ（ドナー１）に送信する。このドナーコンピュータは、次にドネーション失敗メッセージ６０７で応答し得る。そのようなメッセージは、ドナーコンピュータが、単に求められているアセットを有しないためか、または例えば、中断できない他の処理でドナーがビジー状態であるために生成され得る。ドネーション失敗のさらに別の理由も考えられ得る。
【００４８】
そのようなドネーション失敗メッセージ６０７を受信すると、次にアービトレータ構成要素１１３は、ドネーション要求再試行メッセージ６０８を、第２の異なるドナーコンピュータ（ドナー２）に送信し得る。この「再試行」メッセージは、同一形式のドネーション要求メッセージ６０２を取り得るか、または要求の「再試行」性質を示す、わずかに異なる形式を有してもよい。このドネーション失敗およびドネーション要求再試行シーケンスは、必要に応じて複数回繰り返され、適切なアセットまたは補正データを用いて、アセットドネーションメッセージ６０９を生成および送信するための位置に、ドナーコンピュータを最終的に配置してもよい。
【００４９】
一実施形態において、アービトレータ構成要素１１３は、さらなる失敗が起きた場合に、リスト順に試行されるアセットの潜在的ドナーのリストを保持する。
【００５０】
レシピエントコンピュータは、アセットの受信または記憶時に、好ましくは、アセット受信メッセージ６１０をアービトレータ構成要素１１３に送信し、未解決中のアセット要求が、アービトレータ構成要素によって維持されているリストから除去され得るようにする。
【００５１】
ドネーション要求再試行における可能なドナーのすべてが、不成功に終わった場合、アセット要求失敗（図示せず）は、好ましくは、要求しているレシピエントコンピュータに送信される。
【００５２】
以下は、本発明に従う修復が実行され得る破損または喪失データの種類のいくつかの特定の実施例である。
【００５３】
（実施例１−不適当に構成されたジャンクＥメール設定）
この実施例において、ユーザは、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｏｕｔｌｏｏｋ（登録商標）におけるジャンクＥメール保護のレベルを誤って「高」および「永久に削除」に構成したために、フラグ付の一部の有効なＥメールがジャンクとなり、次いで自動的に削除される。これらのアプリケーション設定は、レジストリキーに記憶される。ユーザマシンからの走査が、正常なコンピュータ状態であると考えられるものと比較して検査されるときに、この設定に対応するキーは、キーの値がマシンの集団の残りとは異なるため、未知の値という種類の異常として識別される。分析構成要素１１０は、例えば、正しい値の署名を知っており、不適当に構成されたコンピュータに送信される修復メッセージにこの情報を含む。標的マシンは、この修復メッセージを受信すると、アービトレータ構成要素１１３から正しいレジストリキーのドネーションを要求する。すべてのマシンのコンテンツを含む分析データベースへのアクセスを有する、アービトレータ構成要素１１３は、次に、正しい値を有する、有り得るドナーを位置付ける。アービトレータ構成要素１１３は、次いで、１つ以上の選択したドナーからレシピエントへの正しいレジストリキーのドネーションを調整する。不適当に構成されたコンピュータがドネートされたアセットを受信すると、既存のアセットを置換し、Ｏｕｔｌｏｏｋ（登録商標）におけるジャンクＥメール設定は、それらの元の値に回復される。
【００５４】
より具体的には、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｏｕｔｌｏｏｋ（登録商標）は、デフォルトでは、ジャンクＥメールをジャンクＥメールフォルダに移動する。ジャンクＥメールフォルダは、ジャンクＥメールを削除する前にレビューする能力を提供する。しかしながら、ジャンクＥメールをジャンクＥメールフォルダに移動する代わりに、単に削除するようにＯｕｔｌｏｏｋを構成することが可能である。このオプションは、正当なＥメールがジャンクＥメールとして識別され、削除され得るので、ある程度のリスクを包含する。この動作を制御するレジストリキーを以下に一覧表示する。
【００５５】
レジストリキー名：ｈｋｃｕ＼ｓｏｆｔｗａｒｅ＼ｍｉｃｒｏｓｏｆｔ＼ｗｉｎｄｏｗｓ  ｎｔ＼ｃｕｒｒｅｎｔｖｅｒｓｉｏｎ＼ｗｉｎｄｏｗｓ  ｍｅｓｓａｇｉｎｇ  ｓｕｂｓｙｓｔｅｍ＼ｐｒｏｆｉｌｅｓ＼ｏｕｔｌｏｏｋ＼０ａ０ｄ０２００００００００００c０００００００００００００４６
【００５６】
レジストリ値名：０００ｂ０４１６
【００５７】
このキーの値が００００であるときに、Ｏｕｔｌｏｏｋ（登録商標）は、次いで疑わしいジャンクＥメールをジャンクＥメールフォルダに移動するが、それを自動的に削除しない。このキーの値が０１００であるときに、Ｏｕｔｌｏｏｋ（登録商標）は、次いで疑わしいジャンクＥメールを自動的に削除する。０１００の値が、正常値が００００である環境で検出される場合、次いで０１００値は、未知の値の異常として認識される。この異常は、最初に適切なドナーマシンを識別し、次に補正レジストリキーおよび値データのコピーを送信するようにドナーに要求することによって補正される。
【００５８】
（実施例２−ソフトウェア更新失敗）
コンピュータの最大ネットワークは、何らかの種類の自動ソフトウェア／パッチインストールソフトウェアを採用し、それらが入手可能になると、ネットワーク上のコンピュータに対してソフトウェアの更新を強制する。あいにく、パッチインストールソフトウェアの成功率は１００％ではなく、通常、更新をインストールする間に遭遇する部分的失敗に対応するための良いメカニズムはなく、マシンは故障したままになり得る。パッチの非ロードまたは失敗動作が一旦識別される（そのような異常は、例えば、予想外の不在または未知の値の異常として表れ得る）。例えば、分析構成要素１１０は、正しいファイル、キー、データ等の署名を識別するために、本発明を採用して、ネットワーク上の他のコンピュータにおけるこれらのアイテムの正しいバージョンを位置付け、レシピエントとドナーとの間のドネーションを調整することによって、ネットワーク上の他のコンピュータからドネートされたファイル／データを使用して、失敗したソフトウェアインストールを外科的に修復することができる。
【００５９】
（実施例３−変更されたセキュリティ設定）
例えば、軍事契約企業および医療機関によって使用されている一部のコンピュータネットワークは、それらのコンピュータのすべてに対する様々なセキュリティ基準に適合することが求められる。ユーザが、コンピュータを必要とされる基準に準拠しないようにするシステム設定のいずれかを変更すると、責任を有する企業は著しい債務にさらされ得る。本発明にしたがって、コンピュータがコンプライアンスを侵害する態様で構成されていると判断されると、変更が必要な特定の設定は、ネットワーク上の他のコンピュータからのアイテムを使用して、不適切に構成されたアイテムのみを変更することによって、あるとしても極めてわずかな人間の介入で、アセット全体が外科的に自動修復される。
【００６０】
当業者であれば、前述の開示から理解できるように、レシピエントコンピュータ、ドナーコンピュータおよび「仲介者」のアービトレータ構成要素を含む自動システムを実装することによって、コンピュータの自己修復ネットワークを含む自動システムは、コンピュータが既知の「良好な」アセットをドネートし、管理されたコンピュータのネットワーク内で他のコンピュータ上の喪失または破損データを置換することができる。
【００６１】
本明細書で説明されるシステムおよび方法は、その精神または本質的な特徴から逸脱することなく、他の特定の形態で実施されてもよい。前述の実施形態は、したがって、すべての点において例示的であると考えられ、限定することを意図しない。
【図１】
0005492788.tif 000002
【図２】
0005492788.tif 000003
【図３】
0005492788.tif 000004
【図４】
0005492788.tif 000005
【図５】
0005492788.tif 000006
【図６】
0005492788.tif 000007