(57)【要約】  コンフィギュレーション障害を診断する方法及び装置を開示する。一実施形態で、この方法は、コンフィギュレーションの１つ又は複数の動的に構成される不変量に対する違反を検出するステップと、ミスコンフィギュレーションの被疑原因が、違反が検出された１つ又は複数の不変量に関してどのエンティティが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいてミスコンフィギュレーションを診断するステップとを含む。【選択図】  図１
2010511930.tif 000002
【特許請求の範囲】
【請求項１】
コンフィギュレーションの１つ又は複数の動的に構成される不変量に対する違反を検出するステップと、
ミスコンフィギュレーションの被疑原因が、違反が検出された前記１つ又は複数の不変量に関してどのエンティティが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいて前記ミスコンフィギュレーションを診断するステップと
を含む方法。
【請求項２】
障害診断を行うことを要求する障害診断要求を受け取る第１インターフェースと、
障害診断要求に応答して、ミスコンフィギュレーションの被疑原因が、違反が検出された前記１つ又は複数の不変量に関してどのエンティティが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいて前記ミスコンフィギュレーションを診断する、障害診断モジュールと、
コンフィギュレーション不変量違反について疑わしい１つ又は複数のタスクを示す情報を含む診断結果メッセージを送る第２インターフェースと
を備えるシステム。
【請求項３】
システムによって実行される時に、
コンフィギュレーションの１つ又は複数の動的に構成される不変量に対する違反を検出するステップと、
ミスコンフィギュレーションの被疑原因が、違反が検出された前記１つ又は複数の不変量に関してどのアプリケーション又はプロセスが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいて前記ミスコンフィギュレーションを診断するステップと
を含む方法を前記システムに実行させる命令を格納する１つ又は複数のコンピュータ可読媒体を有する製造品。
【発明の詳細な説明】
【優先権】
【０００１】
[0001]本発明は、２００６年１２月１日に出願した、対応する米国仮出願第６０／８７２，０８５号、名称「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｄｉａｇｎｏｓｉｎｇ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｆａｕｌｔｓ」に対する優先権を主張し、参照によってこれを組み込むものである。
【発明の分野】
【０００２】
[0002]本発明の実施形態は、ミスコンフィギュレーション（ｍｉｓｃｏｎｆｉｇｕｒａｔｉｏｎ）によって引き起こされるソフトウェア障害の診断に関し、より具体的には、本発明は、コンフィギュレーション不変量の違反を監視することによって疑わしいタスクが確立される、ミスコンフィギュレーションの疑わしい原因のタスクベースのランキングを使用することに関する。
【発明の背景】
【０００３】
[0003]モバイルデバイスの信頼性は、そのようなデバイスの維持コストに直接にリンクする。信頼できないデバイス（たとえば、そのソフトウェアスタックに異例に大量のバグを有するデバイス）は、カスタマサービス電話及び／又はデバイスリコールにおけるデバイスサービスオペレータへの高価なコストをもたらす可能性がある。
【０００４】
[0004]モバイルデバイスに関する信頼性懸念の主要な原因は、そのようなデバイスに対して行われる装置管理（ＤＭ）オペレーションにある。ＤＭオペレーションは、アプリケーション／ライブラリをインストールし／除去するオペレーション、アプリケーション／ライブラリを更新するオペレーション、並びにシステムセッティング及びアプリケーションセッティングの変更を含む。
【０００５】
[0005]通常、ユーザがモバイルデバイスを購入した直後の時に、そのデバイスモデルは、通常は、デバイス製造業者、ソフトウェア開発者、及び／又はサービスオペレータによる厳格なテスト／チューニングを受けているので、非常に信頼できると考えられる。したがって、ユーザが、製造業者及びソフトウェア開発者が予期する形でそのデバイスを使用し、そのデバイスを製造業者及びソフトウェア開発者が予想しない状態に変更しない限り、そのデバイスのソフトウェアは、信頼できる形で機能し続ける可能性が高いに違いない。
【０００６】
[0006]しかし、ユーザが、ますますＤＭオペレーションを行い始めるにしたがって、デバイスの状態は、期待される／正常な状態からますます逸脱する。そのような逸脱した状態は、デバイスを信頼できないものにし、オペレータにとってのデバイス保守コストを増やす可能性がある。デバイスが問題のある状態になる危険性は、ユーザがＤＭオペレーション（怪しいネイティブアプリケーションのダウンロード及びインストールなど）を行う自由をより多く有するにつれて、及びデバイスのソフトウェアスタックがますます複雑になるにつれて高まる。
【０００７】
[0007]オープンコンピューティングプラットフォームのユーザは、「アプリケーションがクラッシュした。でも昨日は問題なかったのに」又は「このゲームは何故彼のデバイスでちゃんと動くのに僕のデバイスでは動かないのか」などの状況にいることに気付く可能性がより高い。オープンコンピューティングプラットフォームでは、ユーザは、プラットフォームへの新しいハードウェア及びソフトウェアの導入を含めて、ハードウェア及びソフトウェアのコンフィギュレーションを広範囲に変更することができる。ますます、パーソナルコンピューティングシステムは、ＰＣの大多数並びにＰＤＳ及びセル電話機などの増加する個数のモバイルデバイスを含めて、オープンコンピューティングプラットフォームになりつつある。
【０００８】
[0008]上で説明した、フラストレーションを引き起こす信頼性関連のシナリオは、オープンコンピューティングプラットフォームで発生する可能性がより高い。というのは、そのようなプラットフォームが、問題のあるコンフィギュレーション変更に対してより挙動不審であるからである。たとえば、コンフィギュレーション項目（ポート番号など）に誤った値を割り当てることが、そのコンフィギュレーション項目を使用するソフトウェアの問題を引き起こす可能性がある。もう１つの例として、新しいアプリケーションのインストールの過程中にライブラリを更新することは、そのライブラリの新しいバージョンが後方互換でない場合に、そのライブラリに依存する古いアプリケーションを破壊する可能性がある。
【０００９】
[0009]そのようなコンフィギュレーション問題を診断し、解決する伝統的な手法は、まず問題の症状を記述し、次に、問題データベースから、記述された症状を複数のレコードと照合し、記述された症状を複数のレコードと照合し、最後に、レコードごとに、そのレコードが、問題の原因があるコンフィギュレーション項目であることを示す場合に、そのコンフィギュレーション項目に提案される値をセットすることを試みることを含む。このプロセスは、大量の人間の介入を伴い、そのようなカスタマサービスを提供する会社に高いコストを課す。
【００１０】
[0010]このプロセスでの人間介入コスト及び他のコストを減らすために、研究者は、疑わしい問題コンフィギュレーションのリストを自動的に生成する手法、そのような被疑物をランキングする手法、及びミスコンフィギュレーションから自動的に回復する手法を調べてきた。そのような既存の努力は、通常、被疑コンフィギュレーション項目を識別するために、コンフィギュレーション項目の値が変更されたことの情報を使用する。そのような２進手法（すなわち値が変更されたか否か）の制限は、変更された項目の個数が多い時に、ミスコンフィギュアされた項目（１つ又は複数）を確定することがむずかしいことである。
【００１１】
[0011]コンフィギュレーションクラスに対する正当性制約の使用が提案されてきた。コンフィギュレーションクラスは、同一の構造を有するＷｉｎｄｏｗｓ階層レジストリキーのグループと定義される。そのコンフィギュレーションクラスの制約のいずれかに違反するレジストリキーは、起こりうるミスコンフィギュレーションと考えられる。４つのタイプの制約すなわち、所与のコンフィギュレーションクラス内のサブキーが固定サイズを有することを述べるサイズ制約と、所与のコンフィギュレーションクラス内のサブキーの値が小さいセットの値のうちの１つをとることを述べる値制約と、レジストリキーが必ず特定のコンフィギュレーションクラスのインスタンスを参照しなければならないことを述べる参照制約と、レジストリキーのグループが必ず特定の同一の値を有しなければならないことを述べる等値性制約とを使用する。
【発明の概要】
【００１２】
[0012]本明細書では、コンフィギュレーション障害を診断する方法及び装置を開示する。一実施形態で、この方法は、コンフィギュレーションの１つ又は複数の動的に構成される不変量に対する違反を検出するステップと、ミスコンフィギュレーションの被疑原因が、違反が検出された１つ又は複数の不変量に関してどのエンティティが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいてミスコンフィギュレーションを診断するステップとを含む。
【００１３】
[0013]本発明は、本発明のさまざまな実施形態の下で与える詳細な説明及び添付図面からより十分に理解されるが、この説明及び図面は、本発明を特定の実施形態に限定するものと解釈されてはならず、説明及び理解のみのためのものである。
【本発明の詳細な説明】
【００１４】
[0024]ミスコンフィギュレーションによって引き起こされるソフトウェア障害を診断する装置及び方法を開示する。そのようなミスコンフィギュレーションの例は、ライブラリバージョン不一致、誤ったサーバアドレス、又は信頼できないソフトウェア若しくは悪意のあるソフトウェアによって行われるシステムセッティングに対するすべての変更からの結果を含むが、これらに限定はされない。
【００１５】
[0025]一実施形態で、この装置は、３つのインターフェースすなわち、アプリケーション又はタスクによって行われるコンフィギュレーションアクセスに関する情報を受け入れるコンフィギュレーションアクセス通知インターフェース（ＣＡＮＩ）、タスク又はアプリケーションの成功の完了に関する通知を受け入れるタスク成功通知インターフェース（ＴＳＮＩ）、及びミスコンフィギュレーションによって引き起こされる障害診断要求を受け入れ、障害を引き起こした可能性があるコンフィギュレーションのランキングされた集合を返す障害診断要求インターフェース（ＦＤＲＩ）を有する。一実施形態で、ＣＡＮＩを介して受け入れられる通知メッセージは、コンフィギュレーションファイル（１つ又は複数）へのアプリケーションアクセスの通知を含む。そのようなメッセージに含まれる書き込みアクセス情報は、後の参照のために永続ストレージに格納される。ＴＳＮＩを介して受け取られるタスク成功通知メッセージは、成功のタスクによってアクセスされたコンフィギュレーション項目に対する不変量の洗練をトリガするのに使用される。ＦＤＲＩを介して受け取られる障害診断要求メッセージは、コンフィギュレーションセッティングでの不変量に対する違反についてチェックし、障害を発生したタスクの原因である確率によって、コンフィギュレーション不変量の違反を引き起こしたタスクをランキングし、違反するタスク及びコンフィギュレーションセッティングへのそれらのタスクによる書き込みアクセスのランキングされた集合を返すために装置をトリガする。
【００１６】
[0026]次の説明では、本発明のより完全な説明を提供するために、多数の詳細を示す。しかし、当業者には、これらの特定の詳細なしで本発明を実践できることは明白であろう。他の場合には、周知の構造及びデバイスは、本発明を不明瞭にすることを避けるために、詳細にではなくブロック図形式で示す。
【００１７】
[0027]次の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズム及び記号表現に関して提示される。これらのアルゴリズム的説明及び表現は、データ処理技術の当業者が、彼らの成果の趣旨をデータ処理技術の他の当業者に最も有効に伝えるのに使用する手段である。アルゴリズムは、本明細書では、及び一般に、所望の結果につながるステップの自己完結的シーケンスと考えられる。これらのステップは、物理的量の物理的操作を必要とするステップである。必ずではないが通常、これらの量は、格納、転送、組合せ、比較、及び他の形の操作が可能な電気信号又は磁気信号の形をとる。時々、これらの信号をビット、値、要素、記号、文字、項、数、又はそれらと同様のものと呼ぶことが、主に一般的使用の理由から便利であることがわかっている。
【００１８】
[0028]しかし、これら及び類似する用語のすべてが、適当な物理的量に関連付けられねばならず、これらの量に適用される単に便利なラベルであることに留意されたい。次の議論から明白なとおり、そうではないと特に申し立てられない限り、この説明全体を通じて、「処理」、「コンピューティング」、「計算」、「決定」、「表示」、又はそれらと同様のものなどの用語を利用する議論は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子）量として表されたデータを操作し、コンピュータシステムメモリ又はレジスタ或いは他のそのような情報記憶デバイス、情報伝送デバイス、又は情報表示デバイス内の物理的量として同様に表される他のデータに変換する、コンピュータシステム又は類似する電子コンピューティングデバイスの動作及び処理を指すことを了解されたい。
【００１９】
[0029]本発明は、本明細書の動作を実行する装置にも関する。この装置は、必要な目的のために特に構成することができ、或いは、コンピュータに格納されたコンピュータプログラムによって選択的に活動化されるか再構成される汎用コンピュータを含むことができる。そのようなコンピュータプログラムは、フロッピディスク、光ディスク、ＣＤ−ＲＯＭ、及び光磁気ディスクを含む任意のタイプのディスク、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、光カード、又は電子命令を格納するのに適する、それぞれがコンピュータシステムバスに結合された任意のタイプの媒体などであるがこれらに限定はされないコンピュータ可読記憶媒体に格納することができる。
【００２０】
[0030]本明細書で提示されるアルゴリズム及び表示は、任意の特定のコンピュータ又は他の装置に固有に関係付けられたものではない。さまざまな汎用システムを、本明細書の教示に従うプログラムと共に使用することができ、或いは、必要な方法をステップを実行するためにより特殊化された装置を構成することが、便利であるとわかる場合がある。さまざまなこれらのシステムの必要な構造は、下の説明から明白になる。さらに、本発明は、特定のプログラミング言語に関して説明されるのではない。さまざまなプログラミング言語を使用して、本明細書で説明される本発明の教示を実施できることを了解されたい。
【００２１】
[0031]機械可読媒体は、機械（たとえば、コンピュータ）によって可読の形で情報を格納するか伝送するすべての機構を含む。たとえば、機械可読媒体は、読取専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気的、光学的、音響的、又は他の形の伝搬される信号（たとえば、搬送波、赤外線信号、ディジタル信号など）などを含む。
【００２２】
概要
[0032]コンフィギュレーション障害を診断する装置及び関連する技法を説明する。一実施形態で、これらの技法は、タスクによるコンフィギュレーションへのアクセスを監視することに頼る。
【００２３】
[0033]本明細書での目的のために、コンフィギュレーションは、システムセッティング、環境セッティング、及びアプリケーションセッティングのうちの１つ又は複数を含む。システムセッティングの例は、オペレーティングシステム（ＯＳ）、ライブラリ、仮想マシン、デバイスドライババージョン、システムパラメータ（たとえば、ＤＮＳサーバ、ブロックされるネットワークポート、環境変数など）などを含むが、これらに限定はされない。環境セッティングは、たとえば永続メモリ及び揮発性メモリ、並行して動作するアプリケーション及びシステムサービス、ロックされたファイル、ネットワーク接続性などのリソースに対応する可用性情報を含むが、これらに限定はされない。アプリケーションセッティングの例は、アプリケーションバージョン、レジストリ又はコンフィギュレーションファイルに格納されたアプリケーションコンフィギュレーションなどを含むが、これらに限定はされない。
【００２４】
[0034]また、本明細書での目的のために、タスクは、アプリケーション又はシステムサービス（たとえば、ネットワーク管理ユーティリティ）の実行を指す。一実施形態で、タスクによるコンフィギュレーション項目への読み取りアクセス及び書き込みアクセスは、たとえば、米国ワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．社から入手可能なＦｉｌｅＭｏｎ及びＲｅｇＭｏｎなどのファイルシステムモニタ及びレジストリモニタを介して監視される。
【００２５】
[0035]本明細書での目的のために、不変量は、変数のセットの値についてプログラム変数の値を記述するプロパティのセットである。
【００２６】
[0036]図１は、コンフィギュレーション障害を診断する処理の一実施形態の流れ図である。この処理は、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用機械で動作するものなど）、又はこの両方の組合せを含めることができる処理ロジックによって実行される。
【００２７】
[0037]図１を参照すると、このプロセスは、処理ロジックが、コンフィギュレーションセッティングの１つ又は複数の不変量を動的に構成すること（処理ブロック１０１）によって開始される。その後、処理ロジックは、各アプリケーション及び／又はプロセスによるコンフィギュレーションアクセスを監視することによって、コンフィギュレーション不変量に対する可能な違反に関する情報を収集する（処理ブロック１０２）。次に、処理ロジックは、１つ又は複数の動的に構成されたコンフィギュレーションの不変量に対する違反を検出する（処理ブロック１０３）。違反を検出した後に、処理ロジックは、ミスコンフィギュレーションの被疑原因のタスクベースのランキングに基づいて、ミスコンフィギュレーションを診断する（処理ブロック１０４）。一実施形態で、ミスコンフィギュレーションの被疑原因は、どのエンティティ（たとえば、アプリケーション、プロセスなど）が、違反が検出された１つ又は複数の不変量に関連する変更を行ったかを示す情報に基づいてランキングされる。
【００２８】
[0038]一実施形態で、処理ロジックは、コンフィギュレーション項目への書き込み動作を行い、タスクのリスト内の障害を発生した各タスクのそれぞれの不変量に違反した被疑タスクのリストを生成し、被疑タスクのリスト内のタスクをランキングし、ランキングされた被疑タスクのリスト内のタスクによって実行されたコンフィギュレーション項目への書き込みアクセスに関する情報を伴うランキングされた被疑タスクのリストを生成することによって、ミスコンフィギュレーション被疑原因のタスクベースのランキングに基づいてミスコンフィギュレーションを診断する。一実施形態で、タスクは、信用性（ｔｒｕｓｔｗｏｒｔｈｉｎｅｓｓ）表示と、コンフィギュレーション不変量の違反が障害を発生したタスクの根本原因であるかどうかを示す根本原因確率とに基づいてランキングされる。一実施形態で、タスクの信用性表示は、タスクの２進実行可能ファイル又はスクリプトの位置、２進実行可能ファイル又はスクリプトのソース、２進実行可能ファイル又はスクリプトが証明書を有するかどうかの表示、及び２進実行可能ファイル又はスクリプトが実行された回数のうちの１つ又は複数に基づいている。一実施形態で、コンフィギュレーション項目の根本原因確率は、コンフィギュレーション項目にアクセスする他のタスクの個数、コンフィギュレーション項目が書き込みアクセスを最後に受けた後に発生したタスクの個数、コンフィギュレーション項目の現在の値がそのコンフィギュレーション項目に割り当てられた回数、及びランキングされているタスクによって行われたコンフィギュレーション項目への書き込みアクセスの回数を書き込みアクセスの総数で割ったもののうちの１つ又は複数に基づいて計算される。
【００２９】
インターフェース
[0039]一実施形態で、本明細書で開示される診断フレームワークは、３つの外部インターフェースを有する。これらのインターフェースは、通知を受け取る。
【００３０】
[0040]一実施形態で、各タスクによるコンフィギュレーション項目へのアクセスの通知が、入力としてとられる。コンフィギュレーション項目への書き込み動作に関する情報が、ログ記録され、コンピューティングデバイスの永続ストレージに格納される。
【００３１】
[0041]一実施形態で、各タスクの成功の完了の通知が、入力としてとられる。そのような通知を受け取った時に、不変量が、初期化され（タスクの成功の完了の場合に）、或いは、タスクが読み取り動作を実行したコンフィギュレーション項目ごとに洗練される。
【００３２】
[0042]一実施形態で、障害診断要求メッセージが、入力として受け取られる。障害診断要求メッセージを受け取った時に、障害を発生したタスクによって読み取りアクセスされたコンフィギュレーション項目の不変量に対する違反のチェックが行われ、不変量に違反した書き込み動作を行ったタスクが識別され、そのようなタスクが、障害を発ししたタスクの根本原因である尤度(likelihood)によってランキングされ、タスクのランキングされたリストが出力される。
【００３３】
[0043]図２は、障害診断装置の一実施形態のブロック図である。ブロックのそれぞれは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用機械で動作するものなど）、又はこの両方の組合せを含めることができる処理ロジックを含む。
【００３４】
[0044]図２を参照すると、この装置は、３つのインターフェースすなわち、コンフィギュレーションアクセス通知インターフェース（ＣＡＮＩ）２０１、タスク成功通知インターフェース（ＴＳＮＩ）２０２、及び障害診断要求インターフェース（ＦＤＲＩ）２０３を有する。
【００３５】
[0045]ＣＡＮＩ  ２０１は、外部モジュールからコンフィギュレーションアクセス通知メッセージ２１１を受け取る。メッセージは、たとえば、共有メモリ、ソケット、リモートプロシージャ呼出し、又はイベント／メッセージ／通知システムなど、任意のプロシージャ間手段を使用して渡すことができる。そのような外部モジュールの例が、ＦｉｌｅＭｏｎ又はＲｅｇＭｏｎである。一実施形態で、各コンフィギュレーションアクセス通知メッセージ２１１は、タスクの識別子（ＩＤ）、アクセスの時刻、それぞれがコンフィギュレーション項目の名前を記述する１つ又は複数の項目を含むリスト、アクセスのタイプ（読み取り又は書き込み）、及び、書き込みアクセスの場合に、コンフィギュレーション項目の新しい値という情報を含む。一実施形態で、タスクの識別子は、タスクの実行可能２進ファイル又はスクリプトファイルのフルネームである。ＣＡＮＩ  ２０１は、そのようなメッセージを障害診断モジュール（ＦＤＭ）２０４に渡す。
【００３６】
[0046]ＴＳＮＩ  ２０２は、外部モジュールからタスク成功通知メッセージ２１２を受け取る。そのような外部モジュールの例が、プログラム存在状況を監視し、プログラムのクラッシュ又はハングを検出するツールである。一実施形態で、各タスク成功通知メッセージ２１２は、少なくとも、成功のタスクの識別子（ＩＤ）及びそのような成功が観察された時刻を含む。ＴＳＮＩ  ２０２は、そのようなメッセージをＦＤＭ  ２０４に渡す。
【００３７】
[0047]ＦＤＲＩ  ２０３は、外部モジュールから障害診断要求メッセージ２１３を受け取る。そのような外部モジュールの例が、プログラム存在状況を監視し、プログラムのクラッシュ又はハングを検出するツールである。一実施形態で、各障害診断要求メッセージ２１３は、少なくとも、障害を発生したタスクの識別子（ＩＤ）及びそのような障害が観察された時刻を含む。ＦＤＲＩ  ２０３は、そのようなメッセージをＦＤＭ  ２０４に渡し、障害診断結果メッセージ２１４をＦＤＭから受け取り、そのような結果を外部モジュールに転送する。一実施形態で、各障害診断結果２１４メッセージは、少なくとも、順序付きリスト要素を含み、各順序付きリスト要素は、少なくとも、コンフィギュレーション不変量に違反した疑わしいタスクの識別子及びこのタスクが障害を発生したタスクの根本原因である確率又は尤度を示す数という情報を含む。各障害診断結果メッセージに含めることができる他のフィールドは、そのような違反のうちの最初の違反が発生した時刻を示すフィールド及びそのような違反のうちの最後の違反が発生した時刻を示すフィールド、並びに疑わしいタスクが書き込みアクセスを行ったコンフィギュレーション項目ごとの情報を含むリストを含む。一実施形態では、この情報は、項目の名前、項目の不変量、及び書き込みアクセスの結果としての新しい値を含む。
【００３８】
障害診断モジュールの一実施形態
[0048]図３は、障害診断モジュール（ＦＤＭ）２０４の一実施形態のブロック図である。構成要素のそれぞれは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用機械で動作するものなど）、又はこの両方の組合せを含めることができる処理ロジックを含む。
【００３９】
[0049]図３を参照すると、ＦＤＭ  ２０４は、読み取りアクセステーブル３０１、書き込みアクセスジャーナル（ストレージ）３０５、書き込みジャーナルマネージャ３０４、タスク不変量テーブル（ストレージ）３０３、不変量洗練ユニット３０２、タスク違反検出ユニット３０６、及び被疑物ランキングユニット３０７を含む。
【００４０】
[0050]一実施形態で、読み取りアクセステーブル３０１は、タスクごとに１つのエントリを有するストレージであり、各エントリは、少なくとも、タスクの識別子、コンフィギュレーション項目読み取りの識別子を含むフィールドを各要素が有する要素のリスト、読み取りアクセスが発生した時刻、及び読み取りアクセスが発生した時のコンフィギュレーション項目の値という情報を格納する。一実施形態で、あるタスクのタスク成功通知メッセージ２１２又は障害診断要求メッセージ２１３が処理されたならば、そのタスクの読み取りアクセステーブル３０１内のエントリを除去することができることに留意されたい。
【００４１】
[0051]書き込みアクセスジャーナル３０５は、タスクによるコンフィギュレーション項目への書き込みアクセスのストレージログである。一実施形態で、このログ内の各エントリは、少なくとも、コンフィギュレーション項目の識別子、書き込みアクセスを行ったタスクの識別子、書き込みアクセスが発生した時刻、及びコンフィギュレーション項目の新しい値という情報を含む。
【００４２】
[0052]書き込みジャーナルマネージャ３０４は、書き込みアクセスジャーナル３０５を維持する責任を負う。書き込みジャーナルマネージャ３０４は、新しい書き込みアクセス情報を追加し、ジャーナル３０５を永続ストレージ上で保持し、ジャーナル３０５の古いエントリが役に立たなくなった時に、これらのエントリをジャーナル３０５から周期的に除去する。
【００４３】
[0053]一実施形態で、タスク不変量テーブル３０３は、タスクごとに１つのエントリを有し、各エントリは、タスクの識別子及びそのタスクのコンフィギュレーションアクセスのリストへのポインタを含む。一実施形態で、このリスト内の各要素は、コンフィギュレーション項目の識別子並びに不変量へのポインタを含む。１つ又は複数のリストからの複数の要素が、同一の不変量をポイントすることができることに留意されたい。図４に、タスク不変量テーブル３０３の一実施形態の構造を示す。図４を参照すると、タスク不変量テーブル４０１は、複数のエントリ４２１を含み、エントリ４２１のそれぞれは、タスク１〜ｎのうちの１つ、コンフィギュレーション項目がまだ良好であった時にタスクによるアクセスが発生した最後の時刻の１つ、及びポインタ４１０の１つを含む。ポインタ４１０のそれぞれは、リスト４０２及び４０３などのリストをポイントする。リスト４０２及び４０３のそれぞれは、１つ又は複数のエントリを含み、各エントリは、コンフィギュレーション項目のＩＤ及び不変量へのポインタ４１１を含む。
【００４４】
[0054]戻って図３を参照すると、不変量洗練ユニット３０２は、タスクによってアクセスされたコンフィギュレーション項目の不変量を、新しい値を用いて再定義する。一実施形態で、不変量洗練ユニット３０２は、まず、新しい値が不変量に違反するかどうかをチェックし、そうである場合には、不変量洗練ユニット３０２は、新しい値を考慮に入れて不変量を再定義する。
【００４５】
[0055]タスク違反検出ユニット３０６は、コンフィギュレーション項目への書き込み動作を行ったタスク及び障害を発生したタスクに関する違反された不変量のリストを決定する責任を負う。
【００４６】
[0056]被疑物ランキングユニット３０７は、タスク違反検出ユニット３０６から被疑タスクのリストを得、下で説明するアルゴリズムを使用してこれらのタスクをランキングし、このランキングされた被疑タスクリストを、コンフィギュレーション項目へのこれらのタスクの書き込みアクセスに関する情報と共に返す。
【００４７】
[0057]一実施形態では、３タイプの基本的な不変量すなわち、整数不変量、実数不変量、及び文字列不変量がある。下は、Ｃプログラミング言語で実施された整数不変量の一実施形態である。
typedef struct {
int refineCount;
char isConstant;
char monotonic;
ExpandableList*valueSet;
int lowerBound,upperBound;
int constBits;         
} NumberInvariant; 
ｒｅｆｉｎｅＣｏｕｎｔフィールドは、不変量に対して行われた洗練の総数を記録するためのフィールドである。ｉｓＣｏｎｓｔａｎｔフィールドは、コンフィギュレーション項目の数値が定数であるかどうかを示すのに使用される。ｍｏｎｏｔｏｎｉｃフィールドは、コンフィギュレーション項目の数値が単調に増加し又は減少するかどうかを示すのに使用される。ｖａｌｕｅＳｅｔフィールドは、ｎｕｌｌにセットされていない場合に、コンフィギュレーション項目の以前に割り当てられた値のすべてを含む。ｌｏｗｅｒＢｏｕｎｄフィールド及びｕｐｐｅｒＢｏｕｎｄフィールドは、それぞれ、コンフィギュレーション項目の数値の下限及び上限を示す。ｃｏｎｓｔＢｉｓフィールドは、古い値の同一ビットと同一の値のままでなければならない新しい値のビットを示す。実数不変量は、整数不変量に似た形で実施される。
【００４８】
[0058]Ｃプログラミング言語で実施された文字列不変量の実施形態を、下に与える。
typedef struct {
int refineCount;
char nullFlag;
int minLength,maxLength;
char *prefix,*suffix;
char *substring;        
} StringInvariant;
やはり、ｒｅｆｉｎｅＣｏｕｎｔフィールドは、不変量に対して行われた洗練の総数を記録するためのフィールドである。ｎｕｌｌＦｌａｇフィールドは、ｎｕｌｌ値がコンフィギュレーション項目について許容されるかどうかを示す。ｍｉｎＬｅｎｇｔｈフィールド及びｍａｘＬｅｎｇｔｈフィールドは、コンフィギュレーション項目の値文字列(value string)の最小文字数及び最大文字数を示す。ｐｒｅｆｉｘフィールドは、ｎｕｌｌがセットされていない場合に、値文字列のプレフィックスを示す。同様に、ｓｕｆｆｉｘフィールドは、ｎｕｌｌがセットされていないときに、値文字列のサフィックスを示す。やはり、ｓｕｂｓｔｒｉｎｇフィールドは、ｎｕｌｌがセットされていないときに、部分文字列を値に含めなければならないことを指定する。
【００４９】
[0059]一実施形態で、コンフィギュレーションファイルを介して定義されるコンフィギュレーション項目について、コンフィギュレーションファイル内の行ごとに、その行が行の途中にセパレータシーケンスを含む場合に、その行は、コンフィギュレーション項目を含むと考えられる。セパレータシーケンスは、１つ又は複数の文字を含むコンフィギュレーション可能な文字列である。セパレータシーケンスの例が、“  ”又は“＝”である。一実施形態で、行内の最初のセパレータシーケンスの前の複数の文字は、コンフィギュレーション項目の名前と考えられ、最初のセパレータシーケンスの後の複数の文字は、コンフィギュレーション項目の値と考えられる。一実施形態で、ファイルは、そのファイルがテキストファイル（２進ファイルではなく）であり、そのファイルがタスクの初期化フェーズ中にアクセスされ、そのファイルのサイズがカスタマイズ可能なしきい値未満である場合に、タスクのコンフィギュレーションファイルのうちの１つと考えられる。
【００５０】
[0060]図５に、コンフィギュレーションアクセス通知メッセージ２１１の処理に関する障害診断モジュール２０４の一実施形態の内部のデータの流れを示す。メッセージ２１１がＣＡＮＩ（たとえば、ＣＡＮＩ  ２０１）を介して受け取られる時に、そのメッセージに含まれる読み取りアクセス情報５０１は、読み取りアクセステーブル３０１内のタスクに関するエントリを更新するのに使用され、書き込みアクセス情報５０２は、書き込みアクセスジャーナル３０５を更新するために書き込みアクセスマネージャ３０４にリダイレクトされる。
【００５１】
[0061]図６に、タスク成功通知メッセージ２１２の処理に関する障害診断モジュール２０４の一実施形態の内部のデータの流れを示す。メッセージ２１２がＴＳＮＩ（たとえば、ＴＳＮＩ  ２０２）を介して受け取られる時に、不変量洗練ユニット３０２は、タスクを識別するタスクＩＤ  ６００を送り、読み取りアクセステーブル３０１からそのタスクによって行われた読み取りアクセスのリスト６０１を取り出す。リスト６０１を使用して、タスクが読み取りアクセスを行ったコンフィギュレーション項目ごとに、不変量洗練ユニット３０２は、対応する不変量６０２（すなわち、タスク及びコンフィギュレーション項目対の不変量）をタスク不変量テーブル３０３から取り出し、読み取りアクセスの値が不変量に違反するかどうかをチェックする。違反が検出される場合には、不変量洗練ユニット３０２は、不変量が他者と共有される場合には不変量のコピーを作り、次に、読み取りアクセスの値を用いて不変量を洗練する。異なるタイプの不変量が、異なる形で洗練を定義する。たとえば、数不変量について、そのｕｐｐｅｒＢｏｕｎｄが当初は２であり、新しい値が３である場合に、その洗練されたｕｐｐｅｒＢｏｕｎｄは３である。もう１つの例として、文字列不変量の場合に、そのプレフィックスが当初は“ａｂｃｄ”であり、新しい値が“ａｂｙｚ”である場合に、その洗練されたプレフィックスは“ａｂ”である。不変量洗練ユニット３０２は、洗練された不変量６０３をタスク不変量テーブル３０３に送る。
【００５２】
[0062]図７に、障害診断要求メッセージ２１３の処理に関する障害診断モジュール２０４の内部のデータの流れを示す。メッセージ２１３が、ＦＤＲＩ（たとえば、ＦＤＲＩ  ２０３）を介して受け取られる時に、タスク違反検出ユニット３０６は、読み取りアクセステーブル３０１から、タスクによって行われた読み取りアクセスのリスト７０１を取り出す。リスト７０１を使用して、タスクが読み取りアクセスを行ったコンフィギュレーション項目ごとに、タスク違反検出ユニット３０６は、タスク不変量テーブル３０３からコンフィギュレーション項目不変量７０２を入手し、読み取りアクセスの値が、タスク及びコンフィギュレーション項目対の不変量に違反するかどうかをチェックする。違反が検出される場合に、タスク違反検出ユニット３０６は、コンフィギュレーション項目７０３を書き込みジャーナルマネージャ３０４に送り、書き込みジャーナルマネージャ３０４は、そのコンフィギュレーション項目への書き込みアクセスを最後に行ったタスクを書き込みアクセスジャーナル３０５から検索し、障害を発生したタスクが最後の報告された成功を有した時以降にタスクによって行われたすべてのコンフィギュレーション項目へのすべての書き込みアクセスのリスト７０４を返す。タスク違反検出ユニット３０６は、すべての違反するタスク及びその書き込みアクセスを収集し、これらをリスト７０５として被疑物ランキングユニット３０７に送る。被疑物ランキングユニット３０７は、違反するタスクをランキングするためにリスト７０５とタスク不変量テーブル３０３からのコンフィギュレーション項目の情報とを使用する。したがって、被疑物ランキングユニット３０７は、障害診断結果メッセージ２１４を（疑わしいタスク及びその書き込みアクセスのランキングされたリストと共に）送出する。疑わしいタスクのそのようなランキングされたリストは、たとえば、技術サポート担当者によって、まずさらなる診断中にリストの最上部にある疑わしいタスクに焦点を合わせ、したがって、問題の根本原因を見つける際のコストを減らすのに使用することができる。その場合に、ランキングされたリストは、たとえばデバイス又はコンピュータシステムのディスプレイスクリーンに表示され、或いはハードコピーデバイス（たとえば、プリンタ）によって印刷される。一実施形態で、最も疑わしいタスクによって違反されたコンフィギュレーション項目の値を自動的に復元し、任意選択でそれが問題を修正したかどうかに関してユーザに確認するなど、自動応答を、疑わしいタスクのランキングされたリストに応答して実行することができる。それが問題を解決しない場合には、その復元を元に戻すことができ、リストの次のタスクを試すことができる。
【００５３】
被疑タスクのランキング
[0063]図８は、被疑物ランキングユニットの一実施形態の流れ図である。構成要素のそれぞれは、ハードウェア（回路、専用ロジックなど）、ソフトウェア（汎用コンピュータシステム又は専用機械で動作するものなど）、又はこの両方の組合せを含めることができる処理ロジックを含む。
【００５４】
[0064]図８を参照すると、被疑物ランキングユニット８００は、各タスクを、その信用性及びコンフィギュレーション不変量の違反が障害を発生したタスクの根本原因である確率に基づいてランキングする。一実施形態で、カスタマイズ可能なランキング関数（Ｆ）が、各タスクのランキングを計算するのに使用される。
Ｒｉ＝Ｆ（Ｔｉ，Ｐｉ）
ここで、Ｒｉは、タスクｉのランキングであり、Ｔｉは、その定量化された信用性であり、Ｐｉは、コンフィギュレーション不変量のそのタスクによる違反が障害の根本原因である確率である。Ｆの実例は、次の通りである。
Ｆ（Ｔｉ，Ｐｉ）＝Ｃｔ／Ｔｉ＋Ｃｐ＊Ｐｉ
ここで、Ｃｔは、信用性の係数であり、Ｃｐは、根本原因確率の係数である。
【００５５】
[0065]各タスクの信用性値８２３は、信用性カリキュレータ８０１によって計算される。一実施形態で、カリキュレータ８０１は、タスクの２進実行可能ファイル又はスクリプトの位置、タスクの２進実行可能ファイル又はスクリプトのソース、証明書、インストールの時刻、及びユーザの数という情報（８２２）を考慮に入れる。ＲＯＭ内に常駐する２進実行可能ファイル又はスクリプトによって開始されたタスクは、より高い信用性値を有する。たとえばデバイスの無線オペレータ又は信頼されるコンテンツプロバイダから発する２進実行可能ファイル又はスクリプトによって開始されたタスクは、より高い信用性値を有し、ウェブブラウザを介してダウンロードされた２進実行可能ファイル又はスクリプトによって開始されたタスクは、より低い信用性値を有する。証明書を有する２進実行可能ファイル又はスクリプトによって開始されたタスクは、より高い信用性値を有する。より以前にインストールされた２進実行可能ファイル又はスクリプトによって開始されたタスクは、より後にインストールされた２進実行可能ファイル又はスクリプトによって開始されたタスクより高い信用性値を有する。より頻繁に実行されたタスクは、より高い信用性値を有する。
【００５６】
[0066]根本原因確率は、根本原因確率カリキュレータ８０２によって計算される。一実施形態において、又はコンフィギュレーション項目（ＣＩ（ｉ，１），ＣＩ（ｉ，２），…ＣＩ（ｉ，ｎ））のリストへの書き込み動作を行い、これらのコンフィギュレーション項目の不変量に違反したタスクＴｉにおいて、カリキュレータ８０２は、まず各コンフィギュレーション項目の根本原因確率８０１を計算し、次に、カスタマイズ可能な集計機能８１２を使用して、各コンフィギュレーション項目の根本原因確率に基づいてタスクの集計確率（根本原因確率８４１）を計算する。一実施形態で、集計機能は、各コンフィギュレーション項目の根本原因確率を合計することによって、タスクの根本原因確率を計算する。もう１つの実施形態で、集計機能は、コンフィギュレーション項目の上位Ｎ個の確率値だけを合計する。
【００５７】
[0067]一実施形態で、カリキュレータ８０２は、このコンフィギュレーション項目にアクセスする他のタスクの個数（より大きい個数は、より低い確率を示す）、このコンフィギュレーション項目が最後に書き込みアクセスされた後に成功したタスクの個数（より大きい個数は、より低い確率を示す）、現在の値がこのコンフィギュレーション項目に割り当てられた回数（より大きい個数は、より低い確率を示す、すなわち、過去に他のタスクによって使用された同一の値）、及びランキングされるタスクによって行われたコンフィギュレーション項目への書き込みアクセスの回数を書き込みアクセスの総数で割ったもの（より高い比率はより高い確率を示す）という情報を考慮に入れて、各コンフィギュレーション項目の根本原因確率８１１を計算する。
【００５８】
[0068]この処理の最後に、被疑物ランキングユニット３０７は、それぞれがランキングとそれがすべてのコンフィギュレーション項目に対して行った書き込みアクセスとを有する、疑わしいタスクの順序付きリストを出力する。
【００５９】
コンピュータシステムの例
[0069]図９は、本明細書で説明する動作のうちの１つ又は複数を実行できる例示的コンピュータシステムのブロック図である。たとえば、一実施形態で、図３の構成要素のすべてが、そのようなコンピュータシステムに含まれる。
【００６０】
[0070]図９を参照すると、コンピュータシステム９００は、例示的なクライアントコンピュータシステム又はサーバコンピュータシステムを含むことができる。コンピュータシステム９００は、情報を通信する通信機構又はバス９１１と、情報を処理する、バス９１１に結合されたプロセッサ９１２とを含む。プロセッサ９１２は、たとえばＰｅｎｔｉｕｍ（商標）、ＰｏｗｅｒＰＣ（商標）、Ａｌｐｈａ（商標）など、マイクロプロセッサを含むが、マイクロプロセッサに限定はされない。
【００６１】
[0071]システム９００は、さらに、情報及びプロセッサ９１２によって実行される命令を格納する、バス９１１に結合されたランダムアクセスメモリ（ＲＡＭ）又は他のダイナミックストレージデバイス９０４（メインメモリと称する）を含む。メインメモリ９０４は、プロセッサ９１２による命令の実行中に一時変数又は他の中間情報を格納するのに使用することもできる。
【００６２】
[0072]コンピュータシステム９００は、プロセッサ９１２用の静的な情報及び命令を格納する、バス９１１に結合された読取専用メモリ（ＲＯＭ）及び／又は他の静的ストレージデバイス９０６と、磁気ディスク又は光ディスク及びそれに対応するディスクドライブなどのデータストレージデバイス９０７とをも含む。データストレージデバイス９０７は、情報及び命令を格納するためにバス９１１に結合される。
【００６３】
[0073]コンピュータシステム９００を、さらに、コンピュータユーザに情報を表示する、バス９１１に結合された、陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）などのディスプレイデバイス９２１に結合することができる。英数字キー及び他のキーを含む英数字入力デバイス９２２をも、プロセッサ９１２に情報及びコマンド選択を通信するためにバス９１１に結合することができる。追加のユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ９１２に通信し、ディスプレイ９２１上のカーソル移動を制御する、バス９１１に結合された、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソルコントロール９２３である。
【００６４】
[0074]バス９１１に結合できるもう１つのデバイスが、紙、フィルム、又は類似するタイプの媒体に情報をマークするのに使用できるハードコピーデバイス９２４である。バス９１１に結合できるもう１つのデバイスが、電話機又はハンドヘルドパームデバイスと通信する有線／無線通信機能９２５である。
【００６５】
[0075]システム９００の構成要素のいずれか又はすべて及び関連するハードウェアを、本発明において使用できることに留意されたい。しかし、コンピュータシステムの他のコンフィギュレーションが、これらのデバイスの一部又はすべてを含むことができることを了解されたい。
【００６６】
モバイルデバイスの例
[0076]図１０は、送信器及び／又は受信器を含み、障害診断に関して上で説明した構成要素（たとえば、図３の構成要素）を含む、セル電話機の一実施形態のブロック図である。
【００６７】
[0077]図１０を参照すると、セル電話機１０１０は、アンテナ１０１１、ラジオ周波数トランシーバ（ＲＦユニット）１０１２、モデム１０１３、信号処理ユニット１０１４、制御ユニット１０１５、外部インターフェースユニット（外部Ｉ／Ｆ）１０１６、スピーカ（ＳＰ）１０１７、マイクロホン（ＭＩＣ）１０１８、ディスプレイユニット１０１９、オペレーションユニット１０２０、及びメモリ１０２１を含む。
【００６８】
[0078]一実施形態で、外部端子１０１６は、外部インターフェース（外部Ｉ／Ｆ）、ＣＰＵ（中央処理装置）、ディスプレイユニット、キーボード、メモリ、ハードディスク、及びＣＤ−ＲＯＭドライブを含む。
【００６９】
[0079]ＣＰＵは、セル電話機１０１０のメモリ（たとえば、メモリ１０２１、メモリ、及び外部Ｉ／Ｆ  １０１６のハードディスク）と共に、上で説明した動作を実行するために協力する。一実施形態で、これらのメモリは、ＳＵＰを格納する線形アドレス可能メモリと、非ＳＵＰを格納する非線形アドレス可能メモリとを含む。
【００７０】
[0080]送信器及び／又は受信器を、基地局又は他の無線デバイス（たとえば、無線ＬＡＮ）に含めることができることに留意されたい。
【００７１】
[0081]外部Ｉ／Ｆを、ノートブックコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、又は他のコンピュータに接続することができる。これは、セル電話機がそのコンピュータの無線モデムとして働くことを可能にすることができる。セル電話機は、コンピュータの、インターネット、ＷｉＦｉ及びＷｉＭＡＸ、ローカルエリアネットワーク、広域ネットワーク、パーソナルエリアネットワーク、Ｂｌｕｅｔｏｏｔｈへの接続とすることができる。
【００７２】
[0082]本発明の多数の代替形態及び修正形態が、むろん、前述の説明を読んだ後に当業者に明白になるが、例証として図示され、説明された任意の特定の実施形態が、限定的と考えられることを全く意図されていないことを理解されたい。したがって、さまざまな実施形態の詳細への言及は、特許請求の範囲の範囲を限定することを意図されてはおらず、特許請求の範囲自体は、本発明に必須と考えられる特徴のみを列挙するものである。
【図面の簡単な説明】
【００７３】
【図１】コンフィギュレーション障害を診断する処理の一実施形態を示す流れ図である。
【図２】障害診断装置を示すブロック図である。
【図３】障害診断モジュール（ＦＤＭ）の一実施形態を示すブロック図である。
【図４】タスク不変量テーブルの一実施形態の構造を示す図である。
【図５】コンフィギュレーションアクセス通知メッセージの処理に関する障害診断モジュールの一実施形態のデータの流れを示す図である。
【図６】タスク成功通知メッセージの処理に関する障害診断モジュールの一実施形態のデータの流れを示す図である。
【図７】障害診断要求メッセージの処理に関する障害診断モジュールの一実施形態のデータの流れを示す図である。
【図８】被疑物ランキングユニットの一実施形態を示す流れ図である。
【図９】例示的コンピュータシステムを示すブロック図である。
【図１０】モバイルデバイスの一実施形態を示すブロック図である。
【図１】
2010511930.tif 000003
【図２】
2010511930.tif 000004
【図３】
2010511930.tif 000005
【図４】
2010511930.tif 000006
【図５】
2010511930.tif 000007
【図６】
2010511930.tif 000008
【図７】
2010511930.tif 000009
【図８】
2010511930.tif 000010
【図９】
2010511930.tif 000011
【図１０】
2010511930.tif 000012
2010511930.tif 000013
【手続補正書】
【提出日】平成21年6月18日(2009.6.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンフィギュレーションの１つ又は複数の動的に構成される不変量に対する違反を検出するステップと、
ミスコンフィギュレーションの被疑原因が、違反が検出された前記１つ又は複数の不変量に関してどのエンティティが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいて前記ミスコンフィギュレーションを診断するステップと
を含む方法。
【請求項２】
各アプリケーション又はプロセスによるコンフィギュレーションアクセスを監視することによって前記情報を収集するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記情報が、どのアプリケーション又はプロセスが前記変更を行ったかを示す、請求項１に記載の方法。
【請求項４】
コンフィギュレーションセッティングの前記１つ又は複数の不変量を動的に構成するステップをさらに含む、請求項１に記載の方法。
【請求項５】
タスクのリスト内で障害を発生したタスクごとに、コンフィギュレーション項目への書き込み動作を行い、不変量に違反した被疑タスクのリストを生成するステップと、
被疑タスクの前記リスト内のタスクをランキングするステップと、
ランキングされた被疑タスクのリストであって、ランキングされた被疑タスクの前記リスト内のタスクによって実行されたコンフィギュレーション項目への書き込みアクセスに関する情報を伴うランキングされた被疑タスクの前記リストを生成するステップと
を含む、請求項１に記載の方法。
【請求項６】
前記タスクが、信用性表示と、コンフィギュレーション不変量の違反が前記障害を発生したタスクの根本原因であるかどうかを示す根本原因確率とに基づいてランキングされる、請求項５に記載の方法。
【請求項７】
タスクの信用性表示が、前記タスクの２進実行可能ファイル又はスクリプトの位置、前記２進実行可能ファイル又はスクリプトのソース、前記２進実行可能ファイル又はスクリプトが証明書を有するかどうかの表示、及び前記２進実行可能ファイル又はスクリプトが実行された回数からなる群のうちの１つ又は複数に基づく、請求項６に記載の方法。
【請求項８】
コンフィギュレーション項目の根本原因確率が、前記コンフィギュレーション項目にアクセスする他のタスクの個数、前記コンフィギュレーション項目が書き込みアクセスを最後に受けた後に発生したタスクの個数、前記コンフィギュレーション項目の現在の値が前記コンフィギュレーション項目に割り当てられた回数、及びランキングされているタスクによって行われた前記コンフィギュレーション項目への書き込みアクセスの回数を書き込みアクセスの総数で割ったものからなる群のうちの１つ又は複数に基づく、請求項６に記載の方法。
【請求項９】
障害診断を行うことを要求する障害診断要求を受け取る第１インターフェースと、
障害診断要求に応答して、ミスコンフィギュレーションの被疑原因が、違反が検出された前記１つ又は複数の不変量に関してどのエンティティが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいて前記ミスコンフィギュレーションを診断する、障害診断モジュールと、
コンフィギュレーション不変量違反について疑わしい１つ又は複数のタスクを示す情報を含む診断結果メッセージを送る第２インターフェースと
を備えるシステム。
【請求項１０】
前記診断結果メッセージが、コンフィギュレーション不変量違反を疑われるタスクが前記コンフィギュレーション不変量違反の原因である尤度を示す情報を含む、請求項９に記載のシステム。
【請求項１１】
前記システムへのコンフィギュレーションデータに対して行われたアクセスを示す情報をそれぞれが含むコンフィギュレーションアクセス通知メッセージを受け取る第３インターフェースをさらに備え、前記障害診断モジュールが、前記ミスコンフィギュレーションを診断する時に前記アクセス情報を使用する、請求項９に記載のシステム。
【請求項１２】
成功のタスクを識別する情報をそれぞれが示すタスク成功通知を受け取る第４インターフェースをさらに備え、前記障害診断モジュールが、前記ミスコンフィギュレーションを診断する時に前記成功タスク情報を使用する、請求項９に記載のシステム。
【請求項１３】
前記障害診断モジュールが、
複数のエントリを有する不変量テーブルであって、前記複数のエントリのうちの複数のエントリが、別個のタスクに関連し、各個々のタスク及び少なくとも１つの不変量に関連するコンフィギュレーション項目へのアクセスのリストの識別を可能にするための情報を指定する、不変量テーブルと、
タスクのリスト内で障害を発生したタスクごとに、コンフィギュレーション項目への書き込み動作を行ったと共に、不変量に違反した被疑タスクのリストを決定するタスク違反検出ユニットと、
前記タスク違反検出ユニットから入手された被疑タスクの前記リスト内のタスクをランキングし、ランキングされた被疑タスクのリストであって、ランキングされた被疑タスクの前記リスト内のタスクによって実行されたコンフィギュレーション項目への書き込みアクセスに関する情報を伴うランキングされた被疑タスクの前記リストを生成する、被疑物ランキングユニットと
を備える、請求項９に記載のシステム。
【請求項１４】
前記被疑物ランキングユニットが、信用性表示と、コンフィギュレーション不変量の違反が前記障害を発生したタスクの根本原因であるかどうかを示す根本原因確率とに基づいてタスクをランキングする、請求項１３に記載のシステム。
【請求項１５】
タスクの信用性表示が、前記タスクの２進実行可能ファイル又はスクリプトの位置、前記２進実行可能ファイル又はスクリプトのソース、前記２進実行可能ファイル又はスクリプトが証明書を有するかどうかの表示、及び前記２進実行可能ファイル又はスクリプトが実行された回数からなる群のうちの１つ又は複数に基づく、請求項１４に記載のシステム。
【請求項１６】
コンフィギュレーション項目の根本原因確率が、前記コンフィギュレーション項目にアクセスする他のタスクの個数、前記コンフィギュレーション項目が書き込みアクセスを最後に受けた後に発生したタスクの個数、前記コンフィギュレーション項目の現在の値が前記コンフィギュレーション項目に割り当てられた回数、及びランキングされているタスクによって行われた前記コンフィギュレーション項目への書き込みアクセスの回数を書き込みアクセスの総数で割ったものからなる群のうちの１つ又は複数に基づく、請求項１４に記載のシステム。
【請求項１７】
各個々のタスク及び少なくとも１つの不変量に関連するコンフィギュレーション項目へのアクセスのリストの識別を可能にするための前記情報が、不変量へのポインタを備える、請求項１３に記載のシステム。
【請求項１８】
前記障害診断モジュールが、タスクによってアクセスされたコンフィギュレーション項目の不変量を新しい値を用いて再定義する不変量洗練ユニットをさらに備える、請求項１３に記載のシステム。
【請求項１９】
前記不変量洗練ユニットが、前記新しい値が前記不変量に違反するかどうかをチェックし、前記新しい値が前記不変量に違反するかどうかを考慮に入れた前記新しい値を用いて前記不変量を再定義する、請求項１８に記載のシステム。
【請求項２０】
前記障害診断モジュールが、
各読み取りアクセスが発生した時の各コンフィギュレーション項目の値を含む、コンフィギュレーション項目を読み取ったタスクに対応する情報を格納する読み取りアクセスストレージと、
タスクによって行われるコンフィギュレーション項目への書き込みアクセスを格納する書き込みアクセスストレージと
をさらに備える、請求項１８に記載のシステム。
【請求項２１】
マネージャをさらに備え、
前記タスク違反検出ユニットが、前記読み取りアクセスストレージからタスクによって行われた読み取りアクセスのリストを入手し、前記タスクが読み取りアクセスを行ったコンフィギュレーション項目ごとに、前記読み取りアクセスの値が、前記タスク及びコンフィギュレーション項目対の不変量に違反するかどうかをチェックし、
前記マネージャが、前記タスク違反検出ユニットから前記コンフィギュレーション項目を識別する情報を受け取り、前記コンフィギュレーション項目へのより最近の書き込みアクセスを行ったタスクを前記書き込みアクセスストレージから検索し、障害を発生したタスクが最後の報告された成功を有した時以降に前記タスクによって行われたすべてのコンフィギュレーション項目へのすべての書き込みアクセスのリストを前記タスク違反検出ユニットに返し、
前記タスク違反検出ユニットが、被疑タスクの前記リストを作成するために前記マネージャからタスクを収集し、
前記被疑物ランキングユニットが、被疑タスクの前記リスト内の違反するタスクをランキングし、違反するタスクを示す障害診断結果メッセージを送る
請求項２０に記載のシステム。
【請求項２２】
前記システムへのコンフィギュレーションデータに対して行われたアクセスを示す情報をそれぞれが含むコンフィギュレーションアクセス通知メッセージを受け取る第３インターフェースであって、前記障害診断モジュールが、前記ミスコンフィギュレーションを診断する時に前記アクセス情報を使用し、前記読み取りアクセステーブルが、前記コンフィギュレーションアクセス通知メッセージ内の読み取りアクセス情報に基づいて更新される、第３インターフェースと、
成功のタスクを識別する情報をそれぞれが示すタスク成功通知を受け取る第４インターフェースであって、前記障害診断モジュールが、前記ミスコンフィギュレーションを診断する時に前記成功タスク情報を使用し、前記書き込みアクセスストレージが、前記コンフィギュレーションアクセス通知メッセージ内の書き込みアクセス情報に基づいて更新される、第４インターフェースと
をさらに備える、請求項２０に記載のシステム。
【請求項２３】
システムによって実行される時に、
コンフィギュレーションの１つ又は複数の動的に構成される不変量に対する違反を検出するステップと、
ミスコンフィギュレーションの被疑原因が、違反が検出された前記１つ又は複数の不変量に関してどのアプリケーション又はプロセスが変更を行ったかを示す情報に基づいてランキングされる、ミスコンフィギュレーション被疑原因のタスクベースのランキングの使用に基づいて前記ミスコンフィギュレーションを診断するステップと
を含む方法を前記システムに実行させる命令を格納する１つ又は複数のコンピュータ可読媒体を有する製造品。
【請求項２４】
各アプリケーションによるコンフィギュレーションアクセスを監視することによって前記情報を収集するステップをさらに含む、請求項２３に記載の製造品。
【請求項２５】
前記方法が、
タスクのリスト内で障害を発生したタスクごとに、コンフィギュレーション項目への書き込み動作を行ったと共に、不変量に違反した被疑タスクのリストを生成するステップと、
被疑タスクの前記リスト内のタスクをランキングするステップと、
ランキングされた被疑タスクのリストであって、ランキングされた被疑タスクの前記リスト内のタスクによって実行されたコンフィギュレーション項目への書き込みアクセスに関する情報を伴うランキングされた被疑タスクの前記リストを生成するステップと
をさらに含む、請求項２３に記載の製造品。
【国際調査報告】
2010511930.tif 000014
2010511930.tif 000015
2010511930.tif 000016