(57)【要約】自律型コンピューティング・システムにおいて、問題を認識し、トレースし、診断し、修理するための方法、コンピュータ・プログラム製品、及びデータ処理システムが開示される。適応型推論及び動作システムを用いて、データのロギング、障害（又は、障害の恐れ）の診断、及び障害（障害の恐れ）の処理の際に従う規則及び一連の措置が構築される。適応型推論及び動作システムには、環境特定情報に基づいて規則を作成し、優先順位を付け、修正し、除去する、矛盾解決のための技術、蓄積された時間依存データ、とられた措置、及びそれらの措置の有効性が含まれる。このように、本発明により、システムの変化に直面しても、動的で自律的なコンピューティング・システムが自己管理のための自己戦略を構築することが可能になる。
2006500654.tif 000002
【特許請求の範囲】
【請求項１】
問題判別及びエラーリカバリー機能をコンピューティング環境に提供するコンピュータ・ベースの方法であって、前記方法が、
前記コンピューティング環境の状態に関する情報を受信し、
知識ベースの規則から、前記コンピューティング環境の状態に適用可能な少なくとも１つの適用可能な規則を特定し、
前記少なくとも１つの適用可能な規則を適用して結果を得る、
段階を含み、
前記知識ベースの規則が、特定の状況下でシステム・コンポーネントによって特定のイベントをログに記録すべきであることを指定するロギング論理規則、イベント・ログ内に含まれる特定の情報の存在が特定の問題を示すことを指定する問題判別論理規則、及び特定の問題が従うべき前記特定の問題に対する特定の解決法を含むことを指定するエラーリカバリー論理規則のうちの１つを含む方法。
【請求項２】
知識ベースの規則が少なくとも１つのロギング論理規則を含み、結果として、システム・コンポーネントによって特定のイベントのログをどのように記録すべきかを指定するロギング・ポリシーがもたらされる、請求項１に記載の方法。
【請求項３】
前記ロギング・ポリシーが、前記特定のイベントのロギングを実行するための前記システム・コンポーネントの特定を含む、請求項２に記載の方法。
【請求項４】
前記ロギング・ポリシーが、前記特定のイベントのログを記録すべき特定の条件を含む、請求項２に記載の方法。
【請求項５】
前記ロギング・ポリシーが、前記特定のイベントのログを記録すべき特定の詳細レベルを含む、請求項２に記載の方法。
【請求項６】
前記知識ベースの規則が少なくとも１つの問題判別論理規則を含み、結果として、問題診断がもたらされる、請求項１に記載の方法。
【請求項７】
統計試験を用いて、前記少なくとも１つの問題判別論理規則が、イベント・ログ内に含まれる特定の情報を問題と関連付ける、請求項６に記載の方法。
【請求項８】
機械学習アルゴリズムを用いて、前記少なくとも１つの問題判別論理規則が、イベント・ログ内に含まれる特定の情報を問題と関連付ける、請求項６に記載の方法。
【請求項９】
前記知識ベースの規則が少なくとも１つのエラーリカバリー論理規則を含み、結果として、問題を解決する際に従う一連の措置がもたらされる、請求項１に記載の方法。
【請求項１０】
前記問題を解決するために前記一連の措置に従い、
前記一連の措置に従うことに応答して、該一連の措置の成功度を判断する、
段階をさらに含む、請求項９に記載の方法。
【請求項１１】
前記一連の措置の前記成功度に応答して、前記知識ベースの規則に優先順位を付ける段階をさらに含む、請求項１０に記載の方法。
【請求項１２】
機械学習アルゴリズムを適用して、前記知識ベースに付加的な規則を加える段階をさらに含む、請求項１に記載の方法。
【請求項１３】
前記機械学習アルゴリズムが帰納的論理プログラミング・アルゴリズムである、請求項１２に記載の方法。
【請求項１４】
前記知識ベースの規則の関連度を判断し、
前記規則が低い関連度を有するという判断に応答して、該規則を除去する段階をさらに含む、請求項１に記載の方法。
【請求項１５】
前記知識ベースの規則の関連度を判断し、
前記規則が低い関連度を有するという判断に応答して、該規則に前記知識ベースにおける低い優先順位を割り当てる段階をさらに含む、請求項１に記載の方法。
【請求項１６】
機械学習アルゴリズムを適用して、前記知識ベース内の規則を修正する段階をさらに含む、請求項１に記載の方法。
【請求項１７】
前記機械学習アルゴリズムが教師付き学習アルゴリズムである、請求項１６に記載の方法。
【請求項１８】
前記教師付き学習アルゴリズムが、ニュートラル・ネットワーク、ベイジアン・ネットワーク、又はサポート・ベクトル・マシンのうちの１つである、請求項１７に記載の方法。
【請求項１９】
前記機械学習アルゴリズムが教師なし学習アルゴリズムである、請求項１６に記載の方法。
【請求項２０】
前記教師なし学習アルゴリズムが、ｋ平均法クラスタリング、階層クラスタリング、又は主成分分析のうちの１つである、請求項１９に記載の方法。
【請求項２１】
前記コンピューティング環境の状態に関する前記情報の受信、前記少なくとも１つの適用可能な規則の特定、及び該少なくとも１つの適用可能な規則の適用が、クライアントからの要求に応答して実行される、請求項１に記載の方法。
【請求項２２】
問題判別及びエラーリカバリー機能をコンピュータに実現させるプログラムであって、前記プログラムがコンピュータに、
コンピューティング環境の状態に関する情報を受信する機能と、
知識ベースの規則から、前記コンピューティング環境の状態に適用可能な少なくとも１つの適用可能な規則を特定する機能であって、
前記知識ベースの規則が、特定の状況下でシステム・コンポーネントによって特定のイベントをログに記録すべきであることを指定するロギング論理規則、イベント・ログ内に含まれる特定の情報の存在が特定の問題を示すことを指定する問題判別論理規則、特定の問題が従うべき該特定の問題に対する特定の解決法を含むことを指定するエラーリカバリー論理規則のうちの１つを含む機能と、
前記少なくとも１つの適用可能な規則を適用して結果を得る機能と、
をコンピュータに実行させる、プログラム。
【請求項２３】
知識ベースの規則が少なくとも１つのロギング論理規則を含み、結果として、システム・コンポーネントによって特定のイベントをどのようにログに記録すべきかを指定するロギング・ポリシーがもたらされる、請求項２２に記載のプログラム。
【請求項２４】
前記ロギング・ポリシーが、前記特定のイベントのロギングを実行するための前記システム・コンポーネントの特定を含む、請求項２３に記載のプログラム。
【請求項２５】
前記ロギング・ポリシーが、前記特定のイベントのログを記録すべき特定の条件を含む、請求項２３に記載のプログラム。
【請求項２６】
前記ロギング・ポリシーが、前記特定のイベントのログを記録すべき特定の詳細レベルを含む、請求項２３に記載のプログラム。
【請求項２７】
前記知識ベースの規則が少なくとも１つの問題判別論理規則を含み、結果として、問題診断がもたらされる、請求項２２に記載のプログラム。
【請求項２８】
統計試験を用いて、前記少なくとも１つの問題判別論理規則が、イベント・ログ内に含まれる特定の情報を問題と関連付ける、請求項２７に記載のプログラム。
【請求項２９】
機械学習アルゴリズムを用いて、前記少なくとも１つの問題判別論理規則が、イベント・ログ内に含まれる特定の情報を問題と関連付ける、請求項２７に記載のプログラム。
【請求項３０】
前記知識ベースの規則が少なくとも１つのエラーリカバリー論理規則を含み、結果として、問題を解決する際に従う一連の措置がもたらされる、請求項２２に記載のプログラム。
【請求項３１】
前記問題を解決するための前記一連の措置に従い、
前記一連の措置に従うことに応答して、該一連の措置の成功度を判断する機能を含む、請求項３０に記載のプログラム。
【請求項３２】
前記一連の措置の前記成功度に応答して、前記知識ベースの規則に優先順位を付ける機能を含む、請求項３１に記載のプログラム。
【請求項３３】
機械学習アルゴリズムを適用して、前記知識ベースに付加的な規則を加える機能を含む、請求項２２に記載のプログラム。
【請求項３４】
前記機械学習アルゴリズムが帰納的論理プログラミング・アルゴリズムである、請求項３３に記載のプログラム。
【請求項３５】
前記知識ベースの規則の関連度を判断する機能と、
前記規則が低い関連度を有するという判断に応答して、前記規則を除去する機能を含む、請求項２２に記載のプログラム。
【請求項３６】
前記知識ベースの規則の関連度を判断する機能と、
前記規則が低い関連度を有するという判断に応答して、該規則に前記知識ベースにおける低い優先順位を割り当てる機能を含む、請求項２２に記載のプログラム。
【請求項３７】
機械学習アルゴリズムを適用して、前記知識ベース内の規則を修正する機能を含む、請求項３３に記載のプログラム。
【請求項３８】
前記機械学習アルゴリズムが教師付き学習アルゴリズムである、請求項３７に記載のプログラム。
【請求項３９】
前記教師付き学習アルゴリズムが、ニュートラル・ネットワーク、ベイジアン・ネットワーク、又はサポート・ベクトル・マシンのうちの１つである、請求項３８に記載のプログラム。
【請求項４０】
前記機械学習アルゴリズムが教師なし学習アルゴリズムである、請求項３７に記載のプログラム。
【請求項４１】
前記教師なし学習アルゴリズムが、ｋ平均法クラスタリング、階層クラスタリング、又は主成分分析のうちの１つである、請求項４０に記載のプログラム。
【請求項４２】
前記コンピューティング環境の状態に関する前記情報の受信、前記少なくとも１つの適用可能な規則の特定、及び該少なくとも１つの適用可能な規則の適用が、クライアントからの要求に応答して実行される、請求項２２に記載のプログラム。
【請求項４３】
データ処理システムであって、
コンピューティング環境の状態に関する情報を受信するための手段と、
知識ベースの規則から、前記コンピューティング環境の状態に適用可能な少なくとも１つの適用可能な規則を特定するための手段と、
前記少なくとも１つの適用可能な規則を適用して結果を得るための手段と、
を備え、
前記知識ベースの規則が、特定の状況下でシステム・コンポーネントによって特定のイベントをログに記録すべきであることを指定するロギング論理規則、イベント・ログ内に含まれる特定の情報の存在が特定の問題を示すことを指定する問題判別論理規則、特定の問題が従うべき該特定の問題に対する特定の解決法を含むことを指定するエラーリカバリー論理規則のうちの１つを含む、データ処理システム。
【請求項４４】
知識ベースの規則が少なくとも１つのロギング論理規則を含み、結果として、システム・コンポーネントによって特定のイベントのログをどのように記録すべきかを指定するロギング・ポリシーがもたらされる、請求項４３に記載のデータ処理システム。
【請求項４５】
前記ロギング・ポリシーが、前記特定のイベントのロギングを実行するための前記システム・コンポーネントの特定を含む、請求項４４に記載のデータ処理システム。
【請求項４６】
前記ロギング・ポリシーが、前記特定のイベントのログを記録すべき特定の条件を含む、請求項４４に記載のデータ処理システム。
【請求項４７】
前記ロギング・ポリシーが、前記特定のイベントのログを記録すべき特定の詳細レベルを含む、請求項４４に記載のデータ処理システム。
【請求項４８】
前記知識ベースの規則が少なくとも１つの問題判別論理規則を含み、結果として、問題診断がもたらされる、請求項４３に記載のデータ処理システム。
【請求項４９】
統計試験を用いて、前記少なくとも１つの問題判別論理規則が、イベント・ログ内に含まれる特定の情報を問題と関連付ける、請求項４８に記載のデータ処理システム。
【請求項５０】
機械学習アルゴリズムを用いて、前記少なくとも１つの問題判別論理規則が、イベント・ログ内に含まれる特定の情報を問題と関連付ける、請求項４８に記載のデータ処理システム。
【請求項５１】
前記知識ベースの規則が少なくとも１つのエラーリカバリー論理規則を含み、結果として、問題を解決する際に従う一連の措置がもたらされる、請求項４３に記載のデータ処理システム。
【請求項５２】
前記問題を解決するための前記一連の措置に従うための手段と、
前記一連の措置に従うことに応答して、該一連の措置の成功度を判断するための手段と、
をさらに含む、請求項５１に記載のデータ処理システム。
【請求項５３】
前記一連の措置の前記成功度に応答して、前記知識ベースの規則に優先順位を付けるための手段をさらに含む、請求項５２に記載のデータ処理システム。
【請求項５４】
機械学習アルゴリズムを適用して、前記知識ベースに付加的な規則を加えるための手段をさらに含む、請求項４３に記載のデータ処理システム。
【請求項５５】
前記機械学習アルゴリズムが帰納的論理プログラミング・アルゴリズムである、請求項５４に記載のデータ処理システム。
【請求項５６】
前記知識ベースの規則の関連度を判断するための手段と、
前記規則が低い関連度を有するという判断に応答して、前記規則を除去するための手段と、
をさらに含む、請求項４３に記載のデータ処理システム。
【請求項５７】
前記知識ベースの規則の関連度を判断するための手段と、
前記規則が低い関連度を有するという判断に応答して、前記規則に前記知識ベースにおける低い優先順位を割り当てるための手段と、
をさらに含む、請求項４３に記載のデータ処理システム。
【請求項５８】
機械学習アルゴリズムを適用して、前記知識ベース内の規則を修正するための手段をさらに含む、請求項４３に記載のデータ処理システム。
【請求項５９】
前記機械学習アルゴリズムが教師付き学習アルゴリズムである、請求項５８に記載のデータ処理システム。
【請求項６０】
前記教師付き学習アルゴリズムが、ニュートラル・ネットワーク、ベイジアン・ネットワーク、又はサポート・ベクトル・マシンのうちの１つである、請求項５９に記載のデータ処理システム。
【請求項６１】
前記機械学習アルゴリズムが教師なし学習アルゴリズムである、請求項５８に記載のデータ処理システム。
【請求項６２】
前記教師なし学習アルゴリズムが、ｋ平均法クラスタリング、階層クラスタリング、又は主成分分析のうちの１つである、請求項６１に記載のデータ処理システム。
【請求項６３】
前記コンピューティング環境の状態に関する前記情報の受信、前記少なくとも１つの適用可能な規則の特定、及び該少なくとも１つの適用可能な規則の適用が、クライアントからの要求に応答して実行される、請求項４３に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、改善されたデータ処理システムに関し、具体的には、ハードウェア・コンポーネント及びソフトウェア・コンポーネントを管理するための方法及び装置に関する。さらに、より具体的には、本発明は、機能要件を達成するために、ハードウェア・コンポーネント及びソフトウェア・コンポーネントにおける問題を自動的に認識し、トレースし、診断し、かつ、この問題からリカバリーするための方法及び装置に関する。
【背景技術】
【０００２】
近年のコンピュータ技術が、非常に複雑で絶え間なく変わり続ける環境をもたらした。こうした環境の１つは、「インターネットワーク」とも呼ばれるインターネットである。インターネットは、データ転送と、送信ネットワークのプロトコルから受信ネットワークによって用いられるプロトコルへのメッセージ変換とを処理するゲートウェイによって相互に結合された、異なるものであってよいコンピュータ・ネットワークの組である。「インターネット」という用語を用いる場合、この用語は、ＴＣＰ／ＩＰプロトコル・スイートを用いるネットワーク及びゲートウェイの集合を指す。現在、インターネット上でデータを転送するのに利用される最も一般的な方法は、単に「ウェブ」とも呼ばれるワールド・ワイド・ウェブ環境を利用するものである。情報を転送するために、ファイル転送プロトコル（ＦＴＰ）及びＧｏｐｈｅｒなどの他のインターネット・リソースが存在するが、これらはウェブほど普及しなかった。ウェブ環境においては、サーバ及びクライアントが、様々なデータ・ファイル（例えば、テキスト、静止グラフィック画像、音声、動画ビデオなど）の転送を処理するための既知のプロトコルであるハイパーテキスト転送プロトコル（ＨＴＴＰ）を用いて、データ・トランザクションを行う。様々なデータ・ファイルの情報は、ユーザに提示するために、標準的なページ記述言語であるハイパーテキスト・マークアップ言語（ＨＴＭＬ）によって書式設定される。インターネットはまた、ブラウザを用いてアプリケーションをユーザに転送するのに広く用いられる。多くの場合、ソフトウェア・パッケージのユーザは、ソフトウェア・パッケージをインターネット経由で検索し、取得することができる。
【０００３】
コンピュータ技術は、より高性能化する一方で、より複雑なものにもなってきた。コンピュータ・システムの複雑性及び異機種性が増大し続けるにつれて、ハードウェア及びソフトウェアの問題を診断し、修正することがいっそう難しくなっている。コンピューティング・システムがより自律型（すなわち、自己調整型）になるにつれて、幾つかの理由のために、この問題がさらに重要になる。第１に、自己構成型である自律型コンピューティング・システムは、こうした問題を回避する傾向があり、何らかの異常を認識することが困難になっている。第２に、自律型システム内の素子間の関係がより短命であるために、問題の源をトレースすることがより困難になる。言い換えれば、問題に気付いた時には、もはや故障に関係した素子の組が相互に接続されておらず、問題の再構成が非常に難しくなる。例えば、非特許文献１、非特許文献２、及び非特許文献３のような、多くの出版物が問題識別のトピックを取り扱っているが、これらは、静的に構成されたシステムにおいて問題の識別を行うものである。
【０００４】
今日、人間の技術支援担当者又はシステム管理者は、ハードウェア又はソフトウェアの問題を認識し、診断し、修復することに関連したタスクの大部分を手作業で行っており、多くの場合、多大な試行錯誤を重ね、各自の記憶又は類似した動作パターンを認識する能力に依存している。これは、骨の折れるプロセスであり、システムの複雑性が増すにつれて、これを十分に行えるシステム管理者が次第に少なくなる。したがって、自律型システムにおける問題の認識、トレース、診断、及び修復を自動化する技術に対する必要性が存在する。
【０００５】
【非特許文献１】Ｔａｎｇ，Ｄ．、Ｉｙｅｒ，Ｒ．Ｋ．、「Ａｎａｌｙｓｉｓ  ａｎｄ  ｍｏｄｅｌｉｎｇ  ｏｆ  ｃｏｒｒｅｌａｔｅｄ  ｆａｉｌｕｒｅ  ｉｎ  ｍｕｌｔｉｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍｓ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｏｍｐｕｔｅｒｓ、４１巻第５号、ｐｐ．５６７−５７７、１９９２年５月
【非特許文献２】Ｌｅｅ，Ｉ．、Ｉｙｅｒ，Ｒ．Ｋ．、Ｔａｎｇ，Ｄ．、「Ｅｒｒｏｒ／ｆａｉｌｕｒｅ  ａｎａｌｙｓｉｓ  ｕｓｉｎｇ  ｅｖｅｎｔ  ｌｏｇｓ  ｆｒｏｍ  ｆａｕｌｔ  ｔｏｌｅｒａｎｔ  ｓｙｓｔｅｍｓ」、Ｄｉｇｅｓｔ  ｏｆ  Ｐａｐｅｒｓ．、第２１回Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｆａｕｌｔ−Ｔｏｌｅｒａｎｔ  Ｃｏｍｐｕｔｉｎｇ（ＦＴＣＳ−２１）、ｐｐ．１０−１７、１９９１年
【非特許文献３】Ｔｈｏｔｔａｎ，Ｍ．、Ｃｈｕａｎｙｉ  Ｊｉ、「Ｐｒｏａｃｔｉｖｅ  ａｎｏｍａｌｙ  ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ｄｉｓｔｒｉｂｕｔｅｄ  ｉｎｔｅｌｌｉｇｅｎｔ  ａｇｅｎｔｓ」、ＩＥＥＥ  Ｎｅｔｗｏｒｋ、１２巻第５号、ｐｐ．２１−２７、１９９８年９月−１０月
【非特許文献４】Ｑｕｉｎｌａｎ，Ｊ．Ｒ．、Ｃａｍｅｒｏｎ−Ｊｏｎｅｓ，Ｒ．Ｍ．、「Ｉｎｄｕｃｔｉｏｎ  ｏｆ  Ｌｏｇｉｃ  Ｐｒｏｇｒａｍｓ：ＦＯＩＬ  ａｎｄ  Ｒｅｌａｔｅｄ  Ｓｙｓｔｅｍｓ」、Ｎｅｗ  Ｇｅｎｅｒａｔｉｏｎ  Ｃｏｍｐｕｔｉｎｇ  １３、ｐｐ．２８７−３１２、１９９５年
【非特許文献５】Ｍｕｇｇｌｅｔｏｎ，Ｓ．、Ｆｅｎｇ，Ｃ．、「Ｅｆｆｉｃｉｅｎｔ  Ｉｎｄｕｃｔｉｏｎ  ｏｆ  Ｌｏｇｉｃ  Ｐｒｏｇｒａｍｓ」、Ａｌｇｏｒｉｔｈｍｉｃ  Ｌｅａｒｎｉｎｇ  Ｔｈｅｏｒｙ第１回会議予稿集、オーム社、東京、１９９０年
【非特許文献６】Ｒｏｕｖｅｌｌｏｕ，Ｉ．、ＤｅＧｅｎａｒｏ，Ｌ．、Ｃｈａｎ，Ｈ．、Ｒａｓｍｕｓ，Ｋ．、Ｇｒｏｓｏｆ，Ｂ．Ｎ．、Ｅｈｎｅｂｕｓｋｅ，Ｄ．、ＭｃＧｅｅ，Ｂ．、「Ｃｏｍｂｉｎｉｎｇ  Ｄｉｆｆｅｒｅｎｔ  Ｂｕｓｉｎｅｓｓ  Ｒｕｌｅｓ  Ｔｅｃｈｎｏｌｏｇｉｅｓ：Ａ  Ｒａｔｉｏｎａｌｉｚａｔｉｏｎ」、Ｂｅｓｔ−ｐｒａｃｔｉｃｅ  ｉｎ  Ｂｕｓｉｎｅｓｓ  Ｒｕｌｅ  Ｄｅｓｉｇｎ  ａｎｄ  ＩｍｐｌｅｍｅｎｔａｔｉｏｎにおけるＯＯＰＳＬＡ２０００ワークショップ予稿集、米国ミネソタ州ミネアポリス開催、２０００年１０月１５日
【非特許文献７】Ｇｒｏｓｏｆ，Ｂ．、「ＩＢＭ  Ｒｅｓｅａｒｃｈ  Ｒｅｐｏｒｔ：Ｃｏｕｒｔｅｏｕｓ  Ｌｏｇｉｃ  Ｐｒｏｇｒａｍｓ：Ｐｒｉｏｒｉｔｉｚｅｄ  Ｃｏｎｆｌｉｃｔ  Ｈａｎｄｌｉｎｇ  ｆｏｒ  Ｒｕｌｅｓ」、１９９７年５月８日
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、自律型コンピューティング・システムにおいて、問題を認識し、トレースし、診断し、修理するための方法、コンピュータ・プログラム製品、及びデータ処理システムに向けられる。適応型推論及び動作システムを用いて、データのロギング、障害（又は障害の恐れ）の診断、障害（又は障害の恐れ）の処理の際に従う規則及び一連の措置が、構築される。適応型推論及び動作システムには、環境特定情報に基づいて規則を作成し、優先順位を付け、修正し、除去する、矛盾の解決のための技術、蓄積された時間依存データ、とられた措置、及びそれらの措置の有効性が含まれる。このように、本発明により、システムの変化に直面しても、動的で自律的なコンピューティング・システムが自己管理のための自己戦略を構築することが可能になる。
【０００７】
本発明の特質であると考えられる新規な特徴は、添付の特許請求の範囲に記述される。しかしながら、発明自体並びにその好ましい使用形態、さらなる目的、及び利点は、添付図面と共に読んだときに、以下の例示的な実施形態の詳細な説明を参照して、最も良く理解されるであろう。
【課題を解決するための手段】
【０００８】
ここで図面を参照すると、図１は、本発明を実装することができるデータ処理システムのネットワークの図形表示を示す。ネットワーク・データ処理システム１００は、本発明を実装することができるコンピュータのネットワークである。ネットワーク・データ処理システム１００は、該ネットワーク・データ処理システム１００内で相互に接続される様々な装置及びコンピュータ間の通信リンクを提供するのに用いられる媒体であるネットワーク１０２を含む。ネットワーク１０２は、ワイヤ、ワイヤレス通信リンク、又は光ファイバ・ケーブルなどの接続を含むことができる。
【０００９】
図示された例においては、サーバ１０４が、ストレージ・ユニット１０６と共に、ネットワーク１０２に接続される。さらに、クライアント１０８、１１０、及び１１２が、ネットワーク１０２に接続される。これらのクライアント１０８、１１０、及び１１２は、例えばパーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。図示された例においては、サーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージ、及びアプリケーションなどのデータをクライアント１０８、１１０、及び１１２に提供する。クライアント１０８、１１０、及び１１２は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、付加的なサーバ、クライアント、及び図示されない他の装置を含んでもよい。図示された例においては、ネットワーク・データ処理システム１００は、Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ／ＩＰ）プロトコル・スイートを用いて相互に通信を行うネットワーク及びゲートウェイの世界的な集合を表すネットワーク１０２を持つインターネットである。インターネットの中心には、データ及びメッセージ送付する何千もの商用コンピュータ・システム、政府系コンピュータ・システム、教育用コンピュータ・システム、その他のコンピュータ・システムで構成されるメジャー・ノード又はホスト・コンピュータ間の高速データ通信線のバックボーンがある。当然のことながら、ネットワーク・データ処理システム１００は、例えばインターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、又は広域ネットワーク（ＷＡＮ）などの、多数の異なるタイプのネットワークとして実装することもできる。図１は、一例を表すものであり、本発明についてのアーキテクチャ面の制限として意図されるものではない。
【００１０】
図２を参照すると、本発明の好ましい実施形態に従って、図１のサーバ１０４などのサーバとして実装することができるデータ処理システムのブロック・ダイアグラムが示される。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２及び２０４を含む対称型マルチプロセッサ・システム（ＳＭＰ）とすることができる。代替的に、シングル・プロセッサ・システムを使用することもできる。システム・バス２０６には、ローカル・メモリ２０９とのインターフェースになるメモリ・コントローラ／キャッシュ２０８も接続される。Ｉ／Ｏバス・ブリッジ２１０が、システム・バス２０６に接続され、Ｉ／Ｏバス２１２とのインターフェースになる。メモリ・コントローラ／キャッシュ２０８及びＩ／Ｏバス・ブリッジ２１０は、図示されるように一体化することができる。
【００１１】
Ｉ／Ｏバス２１２に接続されたペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス・ブリッジ２１４が、ＰＣＩローカル・バス２１６とのインターフェースになる。ＰＣＩローカル・バス２１６には、多数のモデムを接続することができる。典型的なＰＣＩバス実装は、４つのＰＣＩ拡張スロット又はアドイン・コネクタをサポートするものである。図１のクライアント１０８、１１０、及び１１２との通信リンクは、アドイン・ボードを介してＰＣＩローカル・バス２１６に接続されたモデム２１８及びネットワーク・アダプタ２２０によって構成することができる。
【００１２】
付加的なＰＣＩバス・ブリッジ２２２及び２２４が、付加的なモデム又はネットワーク・アダプタをサポートすることができる付加的なＰＣＩローカル・バス２２６及び２２８のためのインターフェースになる。このようにして、データ処理システム２００は、多数のネットワーク・コンピュータとの接続が可能になる。図示されるように、メモリ・マップ・グラフィクス・アダプタ２３０及びハード・ディスク２３２も、直接的に又は間接的に、Ｉ／Ｏバス２１２に接続することができる。
【００１３】
当業者であれば、図２に示されたハードウェアは変更できることを理解するであろう。例えば、図示されたハードウェアに加えて、又はそれらに代えて、光ディスク・ドライブなどといった他の周辺装置を用いることもできる。図示された例は、本発明についてのアーキテクチャ面での制限を意味することを意図するものではない。
【００１４】
図２に示されたデータ処理システムは、例えば、拡張対話式エグゼクティブ（ＡＩＸ）オペレーティング・システム又はＬＩＮＵＸオペレーティング・システムによって作動する、ニューヨーク州アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの製品であるＩＢＭ  ｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓシステムとすることができる。
【００１５】
ここで図３を参照すると、本発明を実装することができるデータ処理システムを説明するブロック・ダイアグラムが示される。データ処理システム３００は、クライアント・コンピュータの例である。データ処理システム３００は、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ローカル・バス・アーキテクチャを利用する。図示された例はＰＣＩバスを利用するものであるが、Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）及びＩｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）などの他のバス・アーキテクチャを用いることもできる。プロセッサ３０２及びメイン・メモリ３０４が、ＰＣＩブリッジ３０８を介してＰＣＩローカル・バス３０６に接続される。ＰＣＩブリッジ３０８は、プロセッサ３０２のための一体型のメモリ・コントローラ及びキャッシュ・メモリを含むこともできる。コンポーネントの直接相互接続によって、又はアドイン・ボードを介して、ＰＣＩローカル・バス３０６との付加的な接続が行われる。図示された例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１０、ＳＣＳＩホスト・バス・アダプタ３１２、及び拡張バス・インターフェース３１４が、コンポーネントの直接接続によってＰＣＩローカル・バス３０６に接続される。拡張バス・インターフェース３１４は、キーボード及びマウス・アダプタ３２０、モデム３２２、及び追加メモリ３２４の接続を提供する。小型コンピュータ・システム・インターフェース（ＳＣＳＩ）ホスト・バス・アダプタ３１２は、ハード・ディスク・ドライブ３２６、テープ・ドライブ３２８、及びＣＤ−ＲＯＭドライブ３３０の接続を提供する。典型的なＰＣＩローカル・バス実装は、３つ又は４つのＰＣＩ拡張スロット又はアドイン・コネクタをサポートするものである。
【００１６】
オペレーティング・システムが、プロセッサ３０２上で作動し、図３のデータ処理システム３００内部の様々なコンポーネントの制御を調整及び提供するのに用いられる。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＷｉｎｄｏｗｓＸＰなどの市販のオペレーティング・システムとすることができる。Ｊａｖａのようなオブジェクト指向プログラミング・システムを、オペレーティング・システムと共に作動させて、データ処理システム３００上で実行しているＪａｖａプログラム又はアプリケーションからオペレーティング・システムを呼び出すことができる。Ｊａｖａは、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，Ｉｎｃ．の登録商標である。オペレーティング・システムのための命令、オブジェクト指向オペレーティング・システム、及びアプリケーション又はプログラムは、ハード・ディスク・ドライブ３２６のようなストレージ・デバイス上に置かれ、プロセッサ３０２による実行のためにメイン・メモリ３０４に読み込むことができる。
【００１７】
当業者であれば、図３のハードウェアは、実装形態に応じて変更できることを理解するであろう。図３に示されたハードウェアに加えて、又はそれらに代えて、フラッシュ読み取り専用メモリ（ＲＯＭ）、同様の不揮発性メモリ、及び光ディスク・ドライブなどといった他の内蔵ハードウェア又は周辺装置を用いることもできる。また、本発明のプロセスは、マルチプロセッサ・データ処理システムに応用することができる。
【００１８】
別の例として、データ処理システム３００は、何らかのタイプのネットワーク通信インターフェースに依存せずに、ブート可能になるように構成された独立型システムとすることができる。更に別の例として、データ処理システム３００は、オペレーティング・システム・ファイル及び／又はユーザ生成データを格納するための非揮発性メモリを備えるために、ＲＯＭ及び／又はフラッシュＲＯＭを有するように構成された携帯情報端末（ＰＤＡ）装置とすることができる。
【００１９】
図３に示された例及び上述の例は、アーキテクチャ面での制限を意味することを意図するものではない。例えば、データ処理システム３００は、ＰＤＡの形態をとることに加えて、ノートブック・コンピュータ又はハンドヘルド・コンピュータとすることもできる。データ処理システム３００は、キオスク又はＷｅｂアプライアンスとすることもできる。
【００２０】
本発明は、自己管理型、自律型コンピューティング・システムにおける問題判別及び修正のための方法及び装置に向けられる。こうしたコンピューティング・システム（例えば、データベース、ストレージ・システム、Ｗｅｂサーバ、ファイル・サーバなど）を構成するハードウェア・コンポーネント及びソフトウェア・コンポーネントは、「自律型素子」と呼ばれる自己管理型コンポーネントである。自律型素子は、従来のコンピューティング機能（例えば、データベース）を付加的な自己管理能力と結合させる。図４は、本発明の好ましい実施形態による自律型素子のダイアグラムである。図４に図示される本発明の好ましい実施形態によると、自律型素子４００は、管理ユニット４０２と機能ユニット４０４とから構成された。当業者であれば、管理ユニットと機能ユニットの間の分割は概念的なものにすぎないので、自律型素子を明確に別個のユニットに分ける必要はないことを理解するであろう。
【００２１】
管理ユニット４０２は、自律型素子４０の自己構成機能を処理する。モニター／制御インターフェース４１４によって示されるように、特に、管理ユニット４０２は、自律型素子４００に関する１組の目標に従って機能ユニット４０４を調整し維持する役割を担う。アクセス制御インターフェース４０６によって示されるように、管理ユニット４０２はまた、機能ユニット４０４へのアクセスを、該機能ユニット４０４を使用する許可を得ている他のシステム・コンポーネントに制限する役割も担う。管理ユニット４０２はまた、（例えば、入力チャネル４０６及び出力チャネル４０８を介して）他の自律型素子との関係を確立し、維持する役割も担う。
【００２２】
機能ユニット４０４は、（例えば、入力チャネル４１０を介して）他のシステム・コンポーネントによって提供されるサービスを利用し、自律型素子４００の意図された機能によって、（例えば、出力チャネル４１２を介して）他のシステム・コンポーネントにサービスを提供する。例えば、自律型データベース素子は、データベース・サービスを提供し、自律型ストレージ素子はストレージ・サービスを提供する。自律型素子４００のような自律型素子は、ソフトウェア・コンポーネントとしても、ハードウェア・コンポーネントとしても、又はこの２つの何らかの組み合わせにしてもよいことに注目すべきである。自律型コンピューティングの１つの目標は、所定の機能の基礎となる実装を厳密に区別することなく、抽象化機能レベルでコンピューティング・サービスを提供することである。
【００２３】
自律型素子は、他のコンポーネント（それ自体が自律型素子であってもよい）にサービスを提供することによって、及び／又は他のコンポーネントからサービスを受けることによって作動する。自律型素子がこのように協働するために、自律型素子の位置を突き止め、必要な機能を提供する付加的なコンポーネントと関係付ける機構が必要とされる。図５は、本発明の好ましい実施形態に従って構成されたこうした機構を図示するダイアグラムである。
【００２４】
自律型素子である「要求中のコンポーネント」５００は、その機能を達成するために、別のコンポーネントのサービスを必要とする。好ましい実施形態において、規則及び目標のポリシーに関して、こうした機能を定義することができる。ポリシー・サーバ・コンポーネント５０２は、コンピューティング・システム内の他の自律型素子についてのポリシーを定める自律型素子である。図５において、ポリシー・サーバ・コンポーネント５０２は、要求中のコンポーネント５００が従う規則及び目標のポリシーを確立し、このポリシーを要求中のコンポーネント５００に伝える。ネットワーク通信に即していうと、例えば、必要な暗号保護基準をポリシーに含まれる規則とし、所望のサービスの質（ＱｏＳ）をポリシーの目標とすることができる。
【００２５】
要求中のコンポーネント５００の特定のポリシーを促進させるために、要求中のコンポーネント５００は、付加的なコンポーネント（例えば、データの暗号）からサービスを要求する。こうしたサービスを得るために、要求中のコンポーネント５００は、別の自律型素子であるディレクトリ・コンポーネント５０４に問い合わせる。ディレクトリ・コンポーネント５０４は、必要な機能を備えたコンポーネントに機能要件をマッピングするデータベースの一形式であることが好ましい。
【００２６】
好ましい実施形態において、ディレクトリ・コンポーネント５０４は、Ｗｅｂサービス記述言語（ＷＳＤＬ）のような標準化されたディレクトリ・サービス・スキーム、及びＵｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ，Ｄｉｓｃｏｖｅｒｙ，及びＩｎｔｅｇｒａｔｉｏｎ（ＵＤＤＩ）のようなシステムを用いて、ディレクトリ・サービスを提供することができ、このことにより、プログラムが、特定のサービスを提供するエンティティを見つけ、これらのサービスを用いて、どのように通信し、トランザクションを行うかを自動的に定めることが可能になる。ＷＳＤＬは、Ｉｎｔｅｒｎａｔｉｏｎｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ，Ａｒｉｂａ，Ｉｎｃ．及びＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎのような企業の代表者によって作成されたワールドワイド・ウェブ・コンソーシアムによって作成された規格案である。ＵＤＤＩバージョン３が、Ｗｅｂサービス・アプリケーション及びサービスのために用いられる最新の仕様である。ＵＤＤＩについての将来の発展及び変更は、Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  ｔｈｅ  Ａｄｖａｎｃｅｍｅｎｔ  ｏｆ  Ｓｔｒｕｃｔｕｒｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｔａｎｄａｒｄ（ＯＡＳＩＳ）によって取り扱われる。
【００２７】
ディレクトリ・コンポーネント５０４は、要求中のコンポーネント５００の情報を提供し、該要求中のコンポーネント５００が必要なコンポーネント５０６のサービスを利用することを可能にする。こうした情報は、既存のコンポーネントと通信するのを可能にするアドレス（ネットワーク・アドレスのような）、ソフトウェア・コンポーネントの提供を可能にするダウンロード可能なコード又はダウンロード可能なコードに対するアドレス、或いは要求中のコンポーネント５００が必要なコンポーネント５０６のサービスを利用するのを可能にする他の何らかの適切な情報を含むことができる。
【発明を実施するための最良の形態】
【００２８】
図６は、本発明の好ましい実施形態による自律型コンピューティング・システムにおける問題判別及びエラーリカバリーのためのシステムの全体図を提供するダイアグラムである。自律型コンピューティング・システムは、これらが自己管理型であるために自己内蔵型であるが、互いのサービスを利用することによって協働して作動するハードウェア・コンポーネント及びソフトウェア・コンポーネントである、多数の自律型素子６００、６０２、及び６０４から構成される。自律型素子６００、６０２、及び６０４の各々は、イベント・ログ（それぞれ６０６、６０８、及び６１０）を維持し、個々の自律型素子６００、６０２、及び６０４内に含ませることも、或いはこの機能を専門に扱う別の自律型素子又はコンポーネント内に含ませることもできる問題判別及びエラーリカバリー・システム６１２と対話する。
【００２９】
問題判別及びエラーリカバリー・システム６１２内の論理モジュール６１４は、特定の条件下で特定の詳細レベルを有する特定のタイプのイベントのログを記録するように、自律型素子６００、６０２、及び６０４の各々に命令する。自律型素子から受信したイベント・ログに基づいて、論理モジュール６１４は、問題（又は問題の恐れ）を診断しようとする。問題（又は潜在的な問題）が検出されると、論理モジュールは、その問題から回復するための一連の措置を自律型素子に提案する。利用可能な素子、イベント、問題、及び措置のタイプの特性が、論理モジュール６１４と関連したデータベース６１６に格納される。
【００３０】
このように、イベントのロギングに関して、論理モジュール６１４が、自律型素子６００、６０２、及び６０４の各々がイベントをログに記録するポリシーを確立すると言える。イベントは、いずれかの自律型素子６００、６０２、及び６０４がとる措置、自律型素子６００、６０２、及び６０４が受信する入力、又は自律型素子６００、６０２、及び６０４によって監視可能な他のイベントを含むことができる。イベント・ログ６０６、６０８、６１０が、それぞれ６００、６０２、６０４における、種々のシステム構成、作業負荷特性、及びパフォーマンス測定も含み得ることが理解される。好ましい実施形態においては、ＸＭＬのような構造化された機械可読フォーマットを用いることができるが、イベント・ログ６０６、６０８、及び６１０を、何らかの適切なデータ・フォーマットに書き込むこともできる。代替的に、イベント・ログ６０６、６０８、及び６１０を、リレーショナル・データベース、オブジェクト指向データベース、オブジェクト・リレーショナル・データベース、演繹データベース、又は他の何らかの適切なストレージ・フォーマットのような、何らかのデータベース又はデータ・ストレージ・フォーマットで表すこともできる。典型的には、イベント・ログ６０６、６０８、及び６１０に格納された情報が、特定のイベントの出現、その出現時間、及びイベントの解釈に有用な何らかのパラメータ又は他のデータを特定する。イベント・ログ６０６、６０８、及び６１０は、それぞれ６００、６０２、６０４における、種々のシステム構成、作業負荷特性、及びパフォーマンス測定を含み得ることも理解される。当業者であれば、本発明の精神及び範囲から逸脱することなく、コンピューティング・システム内のイベントに関する多種多様の情報品目をイベント・ログ６０６、６０８、６１０に格納できることを理解するであろう。さらに、ハードウェア・コンポーネント、ソフトウェア・コンポーネント、又はその両方からなる自律型素子を幾つでも用いることができる。
【００３１】
図７に示されるように、本発明の好ましい実施形態において、論理モジュール６１４は、３つの別個の論理モジュール、すなわちロギング論理モジュール７０４、問題判別論理モジュール７１０、及びエラーリカバリー論理モジュール７１５に分けられる。これらの論理モジュールの各々は、決定を下すために、
ＩＦ〈条件〉ＴＨＥＮ〈動作〉
又は、
ＷＨＩＬＥ〈条件〉ＤＯ〈動作〉
の形態のものを含む規則の組を監視されたデータに適用する推論エンジン（図示せず）を含む。したがって、ロギング論理モジュール７０４、問題判別論理モジュール７１０、及びエラーリカバリー論理モジュール７１５の各々を、知識ベースの論理推論規則を適用する、推論エンジンを有する一種のエキスパート・システムのように考え、それぞれデータのロギング、問題の診断、及びエラーからの回復に関する決定を行うことができる。各々の知識ベースを構成する規則においては、条件節（例えば、「Ｘの場合には、Ｙである」のＸ）は、変数を含むことができ、「素子Ｘは、タイプＴ１である」のように簡単なものにしても、又は、統計技術、機械学習技術、又は人工知能技術を含む複雑なものにしてもよい。条件節を定めるための統計技術の例は、（これらに限られるものではないが）スチューデントＴ検定、相関分析、又は回帰分析の適用を含むことができる。条件節を定めるための機械学習及び人工知能技術の例は、（これらに限られるものではないが）ニューラル・ネットワーク、ベイジアン・ネットワーク、又はサポート・ベクトル・マシンのような、教師付き学習方法と、ｋ平均法クラスタリング、階層クラスタリング、又は主成分分析のような教師なし学習方法とを含むことができる。
【００３２】
同様に、動作節は、変数を含むことができ、「素子ＸにおいてタイプＥ１のイベントのログを記録する」といったように簡単なものであってもよい。動作は、「素子Ｘにおける作業負荷を１０％だけ減少させる」といったような、素子への複雑なタスクのデリゲーションを含むこともできる。ここで、作業負荷をどのように減少させるかの詳細は、自律型素子Ｘによって決定される。さらに、動作は、３つの論理モジュール内の規則の組からの、規則の作成、修正、又は除去を含むことができる。この規則学習プロセスは、前にここに列挙されたものを含む何らかの適切な機械学習技術を用いて実行することができる。例えば、新しい診断の発見時に、動作節は、「新しい規則Ｒを問題判別論理モジュール内に付加する」と示すことができ、ここで、Ｒは、「タイプＴ１の素子においてタイプＥ５及びＥ６のイベントが同時に生じた場合には、タイプＰ９の問題が生じた」というものである。
【００３３】
利用可能な（又は既知の）素子、イベント、既知の問題、条件、及び動作の特定のタイプの特性は全て、それぞれ３つの論理モジュール７０４、７１０、及び７１５の各々と関連したデータベース７０５、７１１、７１６に格納される。これらのデータベースは、機械によっても人間によっても更新することができる（例えば、新しいクラスの素子が導入される）。
【００３４】
上記の記載から、本発明の好ましい実施形態により、３つの論理モジュール７０４、７１０、及び７１５の中に含まれる規則の組において、少なくとも２つのレベルの適応性が可能になることに注意すべきである。第１に、過去の経験又は例から学習する能力をもつアルゴリズムの制御下にある条件節における適応性がある。例えば、ある期間にわたって、ニューラル・ネットワークは、そのネットワークにおけるウェイトを修正することによって、さらに高い精度で特定の問題を診断することを学習できる。このように、条件節は、その問題を診断する際のさらに高い特異性を獲得する。
【００３５】
本発明が、規則自体によって提案される動作の有効性に基づいて、論理モジュールの規則の組からの規則の作成、優先順位付け、修正、及び除去を可能にするので、より重要なタイプの適応性が可能となる。第１に、帰納的論理プログラミングのような機械学習手法を用いて、既存の規則の組から新しい規則を推測できる。帰納的論理プログラミングの例には、引用によりここに組み入れられる非特許文献４に記載されるＦＯＩＬアルゴリズム、又は同じく引用によりここに組み入れられる非特許文献５に記載されるＧＯＬＥＭアルゴリズムが含まれる。さらに、問題解決又は防止のための新旧規則の有効性は、問題判別及びエラーリカバリー・システム７００及び人間のオペレータによってモニターされ、その結果を用いて、規則の組における規則が再度優先順位付けされ、修正され、又は除去される。これらの変更は、帰納的論理プログラミングの適用によってさらに新しい規則を生じさせる。したがって、論理モジュール内の規則の組の適応性は、論理モジュールにおける推論エンジンの自動適用及び人間の直接介入を介して生まれるものである。
【００３６】
図７は、異なる自律型素子からイベント・ログが与えられた場合に、問題を自動的に判別し、エラーから回復するのに、本発明の好ましい実施形態がどのようにうまくいくかについての詳細な例を提供する。
【００３７】
図７は、３つの自律型素子７０１、７０２、７０３を示す。ロギング論理モジュール７０４は、事実及び条件のデータベース７０５に格納された上記の３つの自律型素子の構成及び特性に問い合わせ、各素子によってログに記録される情報を管理する規則（ｉｆ−ｔｈｅｎ規則を含む）を定めることができる。例えば、ロギング論理モジュール７０４は、以下の３つのロギング論理規則、すなわち、
（ｉ）ｒ１：素子がタイプＴ１である場合、１分ごとに、システムにおけるタイプＥ１及びＥ２のイベントの新しい出現数をログに記録しなければならない、
（ｉｉ）ｒ２：素子がタイプＴ２である場合、５分ごとに、ＣＰＵ使用率における時間平均作業負荷と、ミリ秒での時間平均応答時間を報告しなければならない、
（ｉｉｉ）ｒ３：素子がタイプＴ２である場合、１時間ごとに、タイプＥ３のイベントを報告しなければならない、
を含むことができる。
ロギング論理モジュール７０４は、そのデータベース７０５に問い合わせ、自律型素子７０１、７０２、及び７０３が、それぞれタイプＴ１、Ｔ２、及びＴ３の素子であることを判断する。データベース７０５はまた、各クラスの素子がロギングできるイベントのタイプの詳細も特定する。このように、ロギング論理モジュール７０４は、各自律型素子が、実際にどのようにロギング・プロセスを実施するかについての詳細を知る必要はなく、特定のタイプの素子が特定のクラスのイベントをログに記録できることを知るに過ぎない。ロギング論理モジュール７０４からの指示で、素子７０１、７０２、７０３は、それぞれのイベント・ログ７０６、７０７、７０８における関連するロギング論理規則によって指示されるように、イベントを記録する。これらのログは、複合ログ７０９内に連続的にコンパイルされ、問題判断論理モジュール７１０に連続的に供給される。
【００３８】
問題判別論理モジュール７１０は、複合ログ７０９からの問題を検出し、分類する種々の規則を有することができる。例えば、問題判別論理モジュール７１０は、以下の規則Ｒ１、Ｒ２、Ｒ３、及びＲ４、すなわち、
Ｒ１：タイプＴ１の素子が、１分のタイム・スパン内にタイプＥ２のイベントを報告できない場合、タイプＴ１の素子はクラスＰ１の問題を有する、
Ｒ２：タイプＴ２の素子が６００ミリ秒より多い時間平均応答時間を報告する場合、タイプＴ２の素子はクラスＰ２の問題を有する、
Ｒ３：タイプＴ１の素子がクラスＰ１又はＰ１０の問題を有する場合、及びタイプＴ２の素子がクラスＰ２の問題を有する場合、タイプＴ３の素子が、５分以内に８０％の確率でクラスＰ３の問題を有することになる、
Ｒ４：クラスＰ３の問題が、５分以内に５０％より高い確率で生じると考えられる場合、診断をエラーリカバリー論理モジュール７１５に伝える、
を有することができる。
【００３９】
複合ログ７０９が規則Ｒ１及びＲ２の条件を満たすと問題判別論理モジュール７１０が判断した場合、該問題判別論理モジュール７１０は、その知識ベース（データベース７１１）及びその推論エンジン（図示せず）を用い、素子７０１がクラスＰ１の問題を有し、素子７０２がクラスＰ２の問題を有するという結論を引き出す。これらの結論は、規則Ｒ３の条件を共に満足する新しい事実を構成し、これにより、推論エンジンは、素子７０３が５分以内に８０％の確率でクラスＰ３の問題を有するであろうというさらなる結論を出す。次いで、クラスＰ３の問題の確率的アサーションが規則Ｒ４をトリガし、その診断をエラーリカバリー論理モジュール７１５に伝えるように、問題判別論理モジュール７１０に命令する。問題判別論理モジュール７１０のデータベース７１１は、問題のタイプのリストを含むことができ、このリストは、更なる処理のためにエラーリカバリー論理モジュール７１５に報告されることになる。別の手法として、問題判別論理モジュール７１０は、結果をエラーリカバリー論理モジュール７１５に伝える前に、推論エンジンがそれ以上の問題診断を得られなくなるまで待つことができる。
【００４０】
問題判別論理モジュール７１０のためのデータベース７１１は、自律型素子のタイプについての情報を含むだけでなく、素子間の依存関係についての補助データを格納することもできることに注目すべきである。問題判別論理モジュール７１０は、問題の診断をより速くより正確に行うために、素子間の依存関係についての情報を用いることができる。
【００４１】
クラスＰ３の問題が起こりそうであるという情報を受信すると、そのデータベース７１６に問い合わせし、その推論エンジン（図示せず）を用いた後、エラーリカバリー論理モジュール７１５が、一連の措置を判断する。起こった問題又は起こることが予想される問題を防止し、低減させ、又は修正するように、一連の措置を設計することができる。適切な一連の措置を、エラーリカバリー論理モジュール７１５内に含まれる規則として表すことができる。条件及び対応する一連の措置を表すｉｆ−ｔｈｅｎ規則の例は、
Ｒ５：５分以内に６０％より高い確率でタイプＰ３の素子においてクラスＰ３の問題が起こりそうな場合、タイプＴ２の素子の作業負荷を１０％だけ減少させるように試みるという措置Ａ１をとる、というものである。
この場合、素子７０３における問題発生の可能性が高いことで、問題Ｐ３がタイプＴ３の素子において実際に起こる可能性を減少させることを目的に、問題エラーリカバリー論理モジュール７１５が、タイプＴ２の素子において積極的な措置Ａ１をとる。
【００４２】
問題の発生を修正し、減少させ、又は防止する直接的な措置をとることに加えて、エラーリカバリー論理モジュール７１５は、ロギング情報の修正を管理する他の規則を有することができる。例えば、エラーリカバリー論理モジュール７１５は、
Ｒ６：クラスＰ３の問題が、タイプＴ３の素子において、５分以内に６０％より高い確率で起こりそうな場合、新しい規則ｒ４をロギング論理モジュール７０４内に加える、
といったＩｆ−ｔｈｅｎ規則を含むことができ、ここで、Ｒ４は、
エラーリカバリー論理モジュール７１５によって更に通知されるまで、１分ごとに、タイプＴ２の素子はその作業負荷を報告しなければならず、タイプＴ３の素子はタイプＥ３のイベントを報告しなければならない、というものである。
この場合、自律型素子７０３における高い問題発生可能性が、最終的にロギング論理モジュールの変化をもたらし、素子７０２及び７０３をモニターする速度が増大する。
【００４３】
上の措置がとられると、問題の防止におけるこの成功度（又は失敗度）が、測定モジュール７１８においてモニターされる。このモジュールは、エラーリカバリー論理モジュールによって提案された過去の措置及び自律型素子の次の動作についての情報を格納するものである。自律型素子において、その措置とその結果生じるイベントとの間にかなりの時間遅延がある状況では、このことが特に重要である。例えば、測定モジュール７１８は、過去７日間内に、規則Ｒ５が起動され、措置Ａ１がとられた時に、９つの状況のうちの３つにクラスＰ３の問題が生じたと判断できる。エラーリカバリー論理モジュール７１５、問題判別論理モジュール７１０、及びロギング論理モジュール７２１における規則、並びに対応するデータベース（７１６、７１１、及び７０５）における事実が、どのように修正され更新されたかによって、成功度が判断される。例えば、更新論理７１９における規則Ｒ７を、
Ｒ７：タイプＴ３の素子が、先の５分以内に、措置Ａ１がとられた後でさえもクラスＰ３の問題に直面した場合、措置Ａ１を修正し、測定された作業負荷が１０％より少ない場合を除いて、Ａ１がタイプＴ２の素子における作業負荷をさらに１０％だけ減少させるようにする、と記載することができる。
【００４４】
エラーリカバリー論理モジュール７１５、問題判別論理モジュール７１０、及びロギング論理モジュール７２１における規則、並びに対応するデータベース（７１６、７１１、及び７０５）における事実が、機械によるだけでなく、人間によっても修正できることに注目されたい。このように、より速い問題検出及びエラーリカバリーを助けるために、如何なる時点においても、従来のドメイン知識又は新しいドメイン知識を外部のエンティティによってシステム内に組み入れることができる。
【００４５】
自律型コンピューティング・システムにおける問題判別及び修正システムは、自律型コンピューティング・システムにおいては、変化する機能要件を満たすために、自律型素子が常に付加され、除去され、修正されるという事実に対処しなければならない。したがって、論理モジュール内の推論及び動作エンジンは、適応型でなければならず、障害（又は障害の恐れ）を診断し、障害（又は障害の恐れ）を処理する際の規則の組の適切な変化に応答しなければならない。この適応性をサポートするために、本発明の好ましい実施形態は、非特許文献６に記載されている４つの目的を満たすものである。すなわち、
（ｉ）基礎となる自律型素子のアトミック詳細から論理モジュール内の手続論理を分離すること。例えば、規則Ｒ７のために修正された措置Ａ１を再考する。すなわち、
Ａ１：測定された作業負荷が１０％より少ない場合を除いて、タイプＴ２の素子における作業負荷をさらに１０％だけ減少させようとする。この場合、更新論理モジュール７１９又はエラーリカバリー論理モジュール７１５は、タイプＴ２の素子が、実際に、どのように測定された作業負荷を１０％だけ減少させるかについての情報を有することができない。しかしながら、データベース７１６に依存して、エラーリカバリー論理モジュール７１５は、タイプＴ２の素子が、測定された作業負荷を１０％だけ減少させる何らかの手続き又は方法を有していることを知っている。さらに、措置Ａ１は、タイプＴ２に属する自律型素子の全ての例に適用することができる。
【００４６】
この基礎となる自律型素子から手続論理を分離することは、サード・パーティが問題判別及びエラーリカバリーのためのサービスを提供できる論理モジュールの表出化を可能にすることに注目されたい。
（ｉｉ）論理モジュール内の推論及び動作エンジンに影響を及ぼすことなく、データベースにおけるプラットフォーム及び環境依存データを付加し、修正し、除去する統一フレームワークを採用すること。例として、自律型素子７０１を最初にシステムに付加した時に、データベース７０５において新しい入力を行い、該自律型素子７０１がタイプＴ１であることを示す。環境依存データは、ロギング・モジュール内の論理に影響を及ぼすことなく、あるタイプの素子、イベント、又は問題を別のタイプのものに再割り当てすることができる。例えば、タイプＴ３の特定の自律型素子７０３における特定のコンポーネントの非可用性のために、データベース７０５、７１１、及び７１６は、素子７０３がタイプＴ１となるように一時的に分類することができる。
【００４７】
この論理モジュール内の推論及び動作エンジンからの自律型素子に関するプラットフォーム及び環境依存データの分離は、サード・パーティが問題判別及びエラーリカバリーについてのサービスを提供できる、論理モジュール及びデータベースの表出化を可能にすることに注意されたい。
（ｉｉｉ）推論エンジンの自動適用又は人間の介入のいずれかによる、論理モジュール内の規則の組からの規則の作成、再優先順位付け、修正、及び除去。例えば、規則Ｒ６を再考する。すなわち、
Ｒ６：クラスＰ３の問題が、５分以内に６０％より高い確率でタイプＴ３の素子内で起こりそうな場合、新しい規則ｒ４をロギング論理モジュール７０４内に加える、というものであり、ここで、ｒ４は、
エラーリカバリー論理モジュール７１５によって更に通知されるまで、１分ごとに、タイプＴ２の素子はその作業負荷を報告しなければならず、タイプＴ３の素子はタイプＥ３のイベントを報告しなければならない、というものである。
この場合、新しい規則ｒ４は、エラーリカバリー論理モジュール７１５によって作成され、ロギング論理モジュール７０４の規則の組に付加される。
（ｉｖ）論理モジュールの規則の組における規則の作成、修正、又は除去の後に矛盾が生じるたびに、多数の規則の間の矛盾を解決する。例えば、ロギング論理モジュール７０４内の上記の規則ｒ４の導入を再考する。すなわち、
ｒ４：エラーリカバリー論理モジュール７１５によって更に通知されるまで、１分ごとに、タイプＴ２の素子はその作業付加を報告しなければならず、タイプＴ３の素子はタイプＥ３のイベントを報告しなければならない、というものである。
しかしながら、この例において、ロギング論理モジュールは、すでに規則ｒ３、すなわち、
ｒ３：素子がタイプＴ２である場合、該素子は、１時間ごとに、タイプＥ３のイベントを報告しなければならない、を有している。
このように、タイプＥ３のイベントに応答して、自律型素子７０３（タイプＴ３である）によって異なる措置をとることが求められているので、規則ｒ３及びｒ４は互いに矛盾した状態にある。
【００４８】
矛盾を解決する前に、推論及び動作エンジンが、矛盾の発生を特定できなければならない。一般的には、論理モジュール内の規則の組から規則が形成され、修正され、再優先順位付け、又は除去されるたびに、矛盾が生じる可能性がある。したがって、規則の組に変更が生じた時には、推論エンジンが、起こり得る矛盾の発生について自動的に調査することができる。
【００４９】
矛盾が特定されると、推論及び動作エンジンは、（これらに限られるものではないが）所定の絶対的優先順位（又はランク付け）、特異性、又は発信時刻に基づいたものなど、種々の矛盾解決機構を用いることができる。当業者であれば、多数の可能なヒューリスティック機能又は確率論的メトリクスのいずれか１つを用いて、所定の規則又は関係の関連性を推定できること、及びここに列挙された可能性は、完全なリストであることが意図されないことを理解するであろう。丁寧な論理プログラミングは、規則の中の優先順位付け及び矛盾解決を処理するために用い得る１つの技術である。丁寧な論理プログラミングは、引用によりここに組み入れられる非特許文献７に記載されている。
【００５０】
矛盾解決の例として、上記の規則ｒ３及びｒ４を考察する。ｒ３とｒ４との間の矛盾において、ロギング論理は、規則ｒ４に規則ｒ３より高い優先順位を割り当てる一定の優先順位付け規則を含むことができる。他の場合には、特異性（例えば、タイプＴ２の素子についての規則は、全ての素子についての一般的規則より高い優先順位を受ける）、規則の組に導入された時期の新しさ（例えば、より新しい規則が古い規則に優先する）、起動された時期の新しさ（例えば、規則ｒ３が規則ｒ４より１０秒以上前に履行された場合、規則ｒ４が優先する）、又は所定の時間にわたって起動された頻度（例えば、条件が１時間に１０回満たされた規則は、条件が１日に１０回満たされた規則に優先する）といった、規則の何らかの態様に依存する優先順位付け規則を介して、規則の相対的優先順位をより動的かつ間接的方法で定めることができる。知覚された規則の有効性が、別の規則優先順位付け基準である。例えば、過去７時間内に、問題判別論理モジュール７１０が、１０の出来事について起こり得るクラスＰ３の問題発生を診断したと仮定する。各々のインスタンスにおいて、エラーリカバリー論理モジュール７１５は、規則Ｒを起動させ、措置Ａ１をとることによって応答したが、１０の場合の８つにおいて、クラスＰ３の問題発生を防止することができなかった。この履歴情報の観点から、優先順位付け規則は、措置がＡ１を含む全ての規則の優先順位を下げるべきであると命じることができる。繰返し失敗する規則の優先順位は、それらが最終的に規則の組から自動的に除去される時点まで下げることができる。自律型素子が絶えず付加され、修正され、除去されるので、自律型システムにおいて、規則の優先順位の動的変化を可能にすることは重要であり、特に機械学習又はデータ・マイニングによって導き出された何らかの推論規則その他の関係の関連度は、変化しやすいものである。
【００５１】
本発明の好ましい実施形態の図７の表示は、事実上連続的なものであるが、当業者であれば、図７に示される動作を示すブロックを、示される順序で、場合によっては連続的に実行する必要がないことを理解するであろう。本発明の精神及び範囲から逸脱することなく、多数のタスクを並行して又は同時に実行する実施形態（例えば、別個のスレッド又はプロセスとして）を達成することが可能である。
【００５２】
当業者であれば、好ましい実施形態において、問題判別及びエラーリカバリーにおける４つのタスク、すなわち、
１）特定の詳細レベルを用いて、特定の条件下で、特定のタイプのイベントのログを記録させるようにシステム・コンポーネントに命令する推論及び動作エンジンを用いる、
２）ヘルプ学習／データ・マイニング・アルゴリズムを用いて、イベント・ログを問題のシグニチャと相関させることによって、問題（又は問題の恐れ）の診断に推論及び動作エンジンを用いる、
３）問題の診断に基づいた一連の措置と、該問題を解決する際のそれらの措置の成否を判断する推論及び動作エンジンを用いる、
４）（ａ）異なる推論及び動作エンジンの手続的論理をシステム・コンポーネントの詳細から分離し、（ｂ）該推論及び動作エンジンに影響を及ぼすことなく、プラットフォーム及び環境依存データを付加し、修正し、除去するためのフレームワークを採用し、（ｃ）規則を作成し、修正し、優先順位を付け、又は除去し、（ｄ）多数の規則の間の矛盾を解決するといった４つの特徴を組み入れることによって、異なる推論及び動作エンジンが適用型となることを可能にする方法を用いる、
ことを実行するために、単一の問題検出及び修正論理が用いられることを理解するであろう。当業者であれば、別個の自律型素子又は他のコンポーネントが、これらのタスクを個別に実行できることも理解するであろう。例えば、第１の自律型素子は、ロギング・ポリシーを設定することができ、別の自律型素子は、学習アルゴリズムを用いて、問題及びそれらの解決法に関する新しい知識を導き出す。次に、自律型コンピューティング・システムは、これらの個別の問題検出／修正素子を「ミックス・アンド・マッチ」方法で組み合わせ、現在の要件を満たすことができる。
【００５３】
本発明は完全に機能するデータ処理システムに即して説明されたが、当業者であれば、本発明の処理の命令を、コンピュータ読取可能媒体又は他の機能記述材料の形態で、及び様々な形態で配布することが可能であり、本発明は、実際に配布を行うのに用いられる信号支持媒体の具体的な種類にかかわらず等しく利用されると理解するであろうということに留意することが重要である。コンピュータ読取可能媒体の例として、フロッピー・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの書き込み可能タイプの媒体、並びに、例えば無線通信及び光通信などの通信形態を用いる、デジタル及びアナログ通信リンク、有線又は無線通信リンクといった通信タイプの媒体が挙げられる。コンピュータ読取可能媒体は、特定のデータ処理システムで実際に用いるためにデコードされるコード化フォーマットの形式をとることができる。機能記述材料は、機械に機能を与える情報である。機能記述材料には、これらに限られるものではないが、コンピュータ・プログラム、命令、ルール、事実、計算可能な機能の定義、オブジェクト、及びデータ構造が含まれる。
【００５４】
本発明の記述は、例示及び説明の目的で提示され、網羅的であること又は本発明を開示された形態に限定することを意図するものではない。当業者には、多くの修正又は変形が明らかであろう。実施形態は、本発明の原理及び実際の適用を最もよく説明するように、及び、考慮された特定の使用に適合するような種々の修正を伴う様々な実施形態について当業者以外でも本発明を理解できるように、選択し記述された。
【図面の簡単な説明】
【００５５】
【図１】本発明を実装することができるネットワーク化されたデータ処理システムのダイアグラムである。
【図２】図１のネットワーク化データ処理システム内のサーバ・システムのブロック・ダイアグラムである。
【図３】図１のネットワーク化データ処理システム内のクライアント・システムのブロック・ダイアグラムである。
【図４】本発明の好ましい実施形態による自律型素子のダイアグラムである。
【図５】本発明の好ましい実施形態による自律型素子間のサービス提供関係を確立するための機構のダイアグラムである。
【図６】本発明の好ましい実施形態による自律型素子間の問題検出及び修正システムの全体図である。
【図７】本発明の好ましい実施形態による問題検出及び修正システムの詳細図である。
【図１】
2006500654.tif 000003
【図２】
2006500654.tif 000004
【図３】
2006500654.tif 000005
【図４】
2006500654.tif 000006
【図５】
2006500654.tif 000007
【図６】
2006500654.tif 000008
【図７】
2006500654.tif 000009
【国際調査報告】
2006500654.tif 000010