(57)【要約】複数の機器を備える計算機システムを管理するための情報を収集する方法であって、前記計算機システムには、複数の事象と、前記第１の複数の事象がすべて検出された場合に出力される結論と、を対応付けるルールを含み、前記方法は、前記複数の事象の各々が検出されたか否かを示す情報を取得するためのポーリングを第１間隔で実行する手順と、前記ポーリングに対する応答に基づいて、前記複数の事象が検出されたか否かを判定する手順と、前記複数の事象のうち少なくとも一つが検出され、残りが検出されないと判定された場合、次回の前記第１間隔のポーリングを実行する前に、前記検出されなかった一つ以上の事象が検出されたか否かを示す情報を取得するためのポーリングを実行する手順と、を含む。
2009144969.tif 000002
【特許請求の範囲】
【請求項１】
複数の機器を備える計算機システムを管理するための情報を収集する方法であって、
前記複数の機器には、管理計算機が接続され、
前記複数の機器は、少なくとも一つの計算機を含み、
前記管理計算機は、前記各計算機に接続される第１通信装置と、前記第１通信装置に接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、
前記各計算機は、前記管理計算機に接続される第２通信装置と、前記第２通信装置に接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、を備え、
前記管理計算機には、各々が前記複数の機器において検出される複数の事象を含む一つ以上の事象集合と、前記各事象集合に含まれる前記一つ以上の事象がすべて検出された場合に出力される結論と、を対応付けるルール情報が保持され、
前記一つ以上の事象集合は、第１の複数の事象を含む第１事象集合を含み、
前記ルール情報は、前記第１事象集合と、前記第１事象集合に含まれる前記第１の複数の事象がすべて検出された場合に出力される第１結論と、を対応付ける第１ルールを含み、
前記方法は、
前記管理計算機が、前記第１の複数の事象の各々が検出されたか否かを示す情報を取得するためのポーリングを第１間隔で実行する第１手順と、
前記管理計算機が、前記ポーリングに対する応答に基づいて、前記第１の複数の事象が検出されたか否かを判定する第２手順と、
前記第１の複数の事象のうち少なくとも一つが検出され、残りが検出されないと判定された場合、前記管理計算機が、次回の前記第１間隔のポーリングを実行する前に、前記検出されなかった一つ以上の事象が検出されたか否かを示す情報を取得するためのポーリングを実行する第３手順と、を含むことを特徴とする方法。
【請求項２】
前記第３手順は、前記第１の複数の事象のうち少なくとも一つが検出され、残りが検出されないと判定された後、前記第１間隔が経過する前にポーリング指示を受信した場合、前記管理計算機が、前記検出されなかった一つ以上の事象が検出されたか否かを示す情報を取得するためのポーリングを、前記第１間隔が経過する前に実行する手順を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記一つ以上の事象集合は、第２の複数の事象を含む第２事象集合をさらに含み、
前記ルール情報は、前記第２事象集合と、前記第２事象集合に含まれる前記第２の複数の事象がすべて検出された場合に出力される第２結論と、を対応付ける第２ルールをさらに含み、
前記方法は、さらに、前記管理計算機が、前記第２の複数の事象の各々が検出されたか否かを示す情報を取得するためのポーリングを前記第１間隔で実行する手順を含み、
前記第３手順は、前記第１の複数の事象のうち少なくとも一つが検出され、前記第１の複数の事象の残り及び前記第２の複数の事象がいずれも検出されないと判定された場合、前記管理計算機が、前記第１の複数の事象の残りが検出されたか否かを示す情報を取得するためのポーリングを、前記第１間隔より短い第２間隔で実行する手順を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１の複数の事象のうち、検出されないと判定された前記残りの事象が第３事象及び第４事象を含む場合であって、かつ、その判定の後に実行された前記ポーリングの結果、前記第４事象が検出されたか否かを示す情報を取得するためのポーリングを実行する前に前記第３事象が検出されないと判定された場合、前記第３手順において、次回の前記第３事象が検出されたか否かを示す情報を取得するためのポーリングを実行する前に前記第４事象が検出されたか否かを示す情報を取得するためのポーリングが省略されることを特徴とする請求項１に記載の方法。
【請求項５】
前記一つ以上の事象集合は、第２の複数の事象を含む第２事象集合をさらに含み、
前記ルール情報は、前記第２事象集合と、前記第２事象集合に含まれる前記第２の複数の事象がすべて検出された場合に出力される第２結論と、を対応付ける第２ルールをさらに含み、
前記方法は、さらに
前記管理計算機が、前記第２の複数の事象の各々が検出されたか否かを示す情報を取得するためのポーリングを前記第１間隔で実行する手順と、
前記管理計算機が、前記第１の複数の事象のうち、検出されたと判定された事象の割合を第１割合として算出し、前記第２の複数の事象のうち、検出されたと判定された事象の割合を第２割合として算出する手順と、を含み、
前記第３手順は、前記第１割合が前記第２割合より高い場合、前記管理計算機が、前記第２の複数の事象のうちまだ検出されていないと判定されたものが検出されたか否かを示す情報を取得するためのポーリングを実行する前に、前記第１の複数の事象のうちまだ検出されていないと判定されたものが検出されたか否かを示す情報を取得するためのポーリングを実行する手順を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記各事象は、一つ又は複数の前記事象集合に含まれ、
前記方法は、さらに、前記管理計算機が、前記各事象を含む前記事象集合の数を前記事象ごとに計数する手順を含み、
前記第３手順は、前記第１の複数の事象のうち、検出されないと判定された前記残りの事象が第３事象及び第４事象を含む場合であって、かつ、前記第３事象を含む前記事象集合の数が前記第４事象を含む前記事象集合の数より多い場合、前記管理計算機が、次回の前記第４事象が検出されたか否かを示す情報を取得するためのポーリングを実行する前に、前記第３事象が検出されたか否かを示す情報を取得するためのポーリングを実行する手順を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記管理計算機は、これから実行するポーリングの順序を示すタスクキュー情報を保持し、
前記第１手順は、前記管理計算機が、前記タスクキュー情報の先頭に保持されたタスク情報に対応するポーリングから順に、前記第１間隔のポーリングを実行する手順を含み、
前記第３手順は、前記第１の複数の事象のうち第３事象が検出されないと判定された場合、前記管理計算機が、前記第３事象が検出されたか否かを示す情報を取得するためのポーリングに対応するタスク情報を前記タスクキュー情報に追加する手順を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記管理計算機は、これから実行するポーリングの順序を示すタスクキュー情報を保持し、
前記第１手順は、前記管理計算機が、前記タスクキュー情報の先頭に保持されたタスク情報に対応するポーリングから順に、前記第１間隔のポーリングを実行する手順を含み、
前記第３手順は、前記第１の複数の事象のうち第３事象が検出されないと判定され、かつ、前記第３事象が検出されたか否かを示す情報を取得するためのポーリングに対応するタスク情報が前記タスクキュー情報の先頭以外の位置に保持されている場合、前記管理計算機が、前記第３事象が検出されたか否かを示す情報を取得するためのポーリングに対応するタスク情報を前記タスクキュー情報の現在位置よりも前方に移動する手順を含むことを特徴とする請求項１に記載の方法。
【請求項９】
複数の機器を備える計算機システムに接続される管理計算機であって、
前記複数の機器は、少なくとも一つの計算機を含み、
前記管理計算機は、前記各計算機に接続される第１通信装置と、前記第１通信装置に接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、
前記各計算機は、前記管理計算機に接続される第２通信装置と、前記第２通信装置に接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、を備え、
前記管理計算機は、
各々が前記複数の機器において検出される複数の事象を含む一つ以上の事象集合と、前記各事象集合に含まれる前記一つ以上の事象がすべて検出された場合に出力される結論と、を対応付けるルール情報を保持し、
前記一つ以上の事象集合は、第１の複数の事象を含む第１事象集合を含み、
前記ルール情報は、前記第１事象集合と、前記第１事象集合に含まれる前記第１の複数の事象がすべて検出された場合に出力される第１結論と、を対応付ける第１ルールを含み、
前記第１の複数の事象の各々が検出されたか否かを示す情報を取得するためのポーリングを第１間隔で実行し、
前記ポーリングに対する応答に基づいて、前記第１の複数の事象が検出されたか否かを判定し、
前記第１の複数の事象のうち少なくとも一つが検出され、残りが検出されないと判定された場合、次回の前記第１間隔のポーリングを実行する前に、前記検出されなかった一つ以上の事象が検出されたか否かを示す情報を取得するためのポーリングを実行することを特徴とする管理計算機。
【請求項１０】
前記管理計算機は、前記第１の複数の事象のうち少なくとも一つが検出され、残りが検出されないと判定された後、前記第１間隔が経過する前にポーリング指示を受信した場合、前記検出されなかった一つ以上の事象が検出されたか否かを示す情報を取得するためのポーリングを、前記第１間隔が経過する前に実行することを特徴とする請求項９に記載の管理計算機。
【請求項１１】
前記一つ以上の事象集合は、第２の複数の事象を含む第２事象集合をさらに含み、
前記ルール情報は、前記第２事象集合と、前記第２事象集合に含まれる前記第２の複数の事象がすべて検出された場合に出力される第２結論と、を対応付ける第２ルールをさらに含み、
前記管理計算機は、
前記第２の複数の事象の各々が検出されたか否かを示す情報を取得するためのポーリングを前記第１間隔で実行し、
前記第１の複数の事象のうち少なくとも一つが検出され、前記第１の複数の事象の残り及び前記第２の複数の事象がいずれも検出されないと判定された場合、前記第１の複数の事象の残りが検出されたか否かを示す情報を取得するためのポーリングを、前記第１間隔より短い第２間隔で実行することを特徴とする請求項９に記載の管理計算機。
【請求項１２】
前記管理計算機は、
前記第１の複数の事象のうち、検出されないと判定された前記残りの事象が第３事象及び第４事象を含む場合であって、かつ、その判定の後に実行された前記ポーリングの結果、前記第４事象が検出されたか否かを示す情報を取得するためのポーリングを実行する前に前記第３事象が検出されないと判定された場合、次回の前記第３事象が検出されたか否かを示す情報を取得するためのポーリングを実行する前に前記第４事象が検出されたか否かを示す情報を取得するためのポーリングを実行しないことを特徴とする請求項９に記載の管理計算機。
【請求項１３】
前記一つ以上の事象集合は、第２の複数の事象を含む第２事象集合をさらに含み、
前記ルール情報は、前記第２事象集合と、前記第２事象集合に含まれる前記第２の複数の事象がすべて検出された場合に出力される第２結論と、を対応付ける第２ルールをさらに含み、
前記管理計算機は、
前記第２の複数の事象が検出されたか否かを示す情報を取得するためのポーリングを前記第１間隔で実行し、
前記第１の複数の事象のうち、検出されたと判定された事象の割合を第１割合として算出し、
前記第２の複数の事象のうち、検出されたと判定された事象の割合を第２割合として算出し、
前記第１割合が前記第２割合より高い場合、前記第２の複数の事象のうちまだ検出されていないと判定されたものが検出されたか否かを示す情報を取得するためのポーリングを実行する前に、前記第１の複数の事象のうちまだ検出されていないと判定されたものが検出されたか否かを示す情報を取得するためのポーリングを実行することを特徴とする請求項９に記載の管理計算機。
【請求項１４】
前記各事象は、一つ又は複数の前記事象集合に含まれ、
前記管理計算機は、
前記各事象を含む前記事象集合の数を前記事象ごとに計数し、
前記第１の複数の事象のうち、検出されないと判定された前記残りの事象が第３事象及び第４事象を含む場合であって、かつ、前記第３事象を含む前記事象集合の数が前記第４事象を含む前記事象集合の数より多い場合、次回の前記第４事象が検出されたか否かを示す情報を取得するためのポーリングを実行する前に、前記第３事象が検出されたか否かを示す情報を取得するためのポーリングを実行することを特徴とする請求項９に記載の管理計算機。
【請求項１５】
前記管理計算機は、
これから実行するポーリングの順序を示すタスクキュー情報を保持し、
前記タスクキュー情報の先頭に保持されたタスク情報に対応するポーリングから順に、前記第１間隔のポーリングを実行し、
前記第１の複数の事象のうち第３事象が検出されないと判定された場合、前記第３事象が検出されたか否かを示す情報を取得するためのポーリングに対応するタスク情報を前記タスクキュー情報に追加することを特徴とする請求項９に記載の管理計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムの運用を管理するための運用管理システムにおいて、障害原因の推論結果を素早く確定するための情報収集方法に関する。
【背景技術】
【０００２】
複数の機器からなる計算機システムにおいて、ある機器で発生した障害が原因となって、他の機器にも障害が発生する場合がある。例えば、外部ストレージ機器にディスク障害が発生した場合、そのストレージ機器を使用している業務サーバの機器にも、論理ディスクエラーが発生する。このような複数の機器障害を検出した際に、その障害の根本原因（Ｒｏｏｔ  Ｃａｕｓｅ）である機器を推論するＲＣＡ（Ｒｏｏｔ  Ｃａｕｓｅ  Ａｎａｌｙｓｉｓ）機能を持つ運用管理システムがある。
一般的に、推論処理を実現する手段として、ルールベースシステム（プロダクションシステム）がある。ルールベースシステムについては、例えば、特開平９−２５８９８３号公報及びＦｒｅｄｅｒｉｃｋ  Ｈａｙｅｓ−Ｒｏｔｈ，“Ｒｕｌｅ−ｂａｓｅｄ  ｓｙｓｔｅｍｓ”，Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ＡＣＭ，Ｖｏｌｕｍｅ  ２８，Ｉｓｓｕｅ  ９（Ｓｅｐｔｅｍｂｅｒ  １９８５），Ｐａｇｅｓ：９２１−９３２（以下、Ｈａｙｅｓ−Ｒｏｔｈ）に記載されている。
計算機システムの運用を管理するための運用管理システムにおいて、検出した障害情報に基づいて、ルールベースによる根本原因の推論処理を行なうことで、ＲＣＡ機能を実現することが可能となる。
また、米国特許出願公開第２００６／１２０，２９２号明細書には、推論処理において、通常時は基本情報しか収集せず、問題発生時に詳細情報を収集する方法が記載されている。具体的には、通常観測情報と追加観測情報のペアが予め定義され、通常観測で障害を検出した際に、それに対応する追加観測情報の収集が実行される。これによって、通常観測の結果のみから求めた推論結果より精度の高い推論結果が得られる。
特開２００４−１７８３３６号公報には、監視対象機器から収集した稼動データと、障害発生のイベント情報とに基づいて、障害解析に必要な稼動データを特定し、障害解析を実行する方法が記載されている。
米国特許第７，０６９，４８０号明細書には、ＲＣＡを用いて問題点を検出・確認した際に、各デバイスに警告を通知する方法が記載されている。米国特許第７，０６９，４８０号明細書では、障害を検出した際に、その障害が検出された機器から、確認のための情報を収集する方法も記載されている。
【発明の開示】
【０００３】
Ｈａｙｅｓ−Ｒｏｔｈ及び特開平９−２５８９８３号公報の方法を用いることで、運用管理システムにおいて、ＲＣＡによる推論処理を実現することが可能となる。しかしながら、ルールベースシステムを用いた推論処理の場合、ｉｆ条件文に定義した全ての条件が成立しなければ推論結果が確定しない。
例えば、以下のルールを定義したと仮定する。
ｉｆ  Ｅ１  ＆  Ｅ２  ｔｈｅｎ  Ｘ
上記のルールのうち、例えばＥ１，Ｅ２及びＸは、以下の事象（イベント）及び結論である。
Ｅ１：コンピュータＡで論理ディスク障害が発生
Ｅ２：ストレージ装置Ａでディスク障害が発生
Ｘ：根本原因はストレージ装置Ａのディスク障害
この場合、Ｅ１（コンピュータＡの論理ディスク障害）と、Ｅ２（ストレージ装置Ａのディスク障害）との両方を検出できた時点で初めて、Ｘ（根本原因はストレージ装置Ａのディスク障害）という推論結果が確定する。すなわち、Ｅ１又はＥ２のどちらか一方の障害イベントのみが検出された時点では、推論結果が確定しない。
すなわち、ルールベースシステムを用いた推論処理が確定するには、ｉｆ条件文に定義した全ての条件が成立しなければならない。
ところで、運用管理システムでは、管理対象機器の状態情報又は性能情報を収集する方式として、各管理対象機器に情報収集プログラムを配布するエージェント方式と、情報収集プログラムを配布しないエージェントレス方式とがある。エージェントレス方式の場合、運用管理システム側が各管理対象機器に対して、一定間隔ごとにネットワーク経由で情報収集のためのポーリングを行なう。この一定間隔は、一般的に、数分から十数分である。また、各機器に対して順番にポーリングが実行されるため、実際にポーリングが実行される時刻が機器ごとに異なる。
そのため、上記のルールの例では、コンピュータＡの論理ディスク障害が検出された後、ストレージ装置Ａに対するポーリングが実行され、ストレージ装置Ａの障害イベントが発生するまで、推論結果が確定しないという問題がある。特に、ストレージ装置Ａに対するポーリングが終了した直後に、ストレージ装置Ａでディスク障害が発生した場合、次回の定時ポーリング（すなわち定期的な情報収集のためのポーリング）によって障害イベントが検出されるまで推論結果は確定しない。すなわち、数分から十数分の間、推論結果が確定しない場合がある。
一方、エージェント方式においても、各機器に配布された情報収集プログラムの定期監視処理が実行されるタイミングの差によって、同様の問題が発生する場合がある。
Ｈａｙｅｓ−Ｒｏｔｈの方法を用いることで、ルールベースシステムを用いたＲＣＡの推論処理が可能となるものの、現在未検出の障害に対する情報取得の方法に関しては、Ｈａｙｅｓ−Ｒｏｔｈに何ら記されてない。すなわち、現在未検出の障害は、次回の定時ポーリングのタイミングまで検出することができないため、推論結果を確定するのが遅れるという問題がある。
米国特許出願公開第２００６／１２０，２９２号明細書の方法を用いることで、通常時はネットワーク負荷を軽減しながら、障害発生時には精度の高い推論結果を得る推論処理が可能となる。しかしながら、現在未検出の障害は、次回の定時ポーリングのタイミングまで検出することができないため、推論結果を確定するのが遅れるという問題がある。
同様に、特開２００４−１７８３３６号公報の方法を用いることで、管理対象機器の稼動データのうち、障害解析に必要な稼動データを特定することが可能となる。しかしながら、現在未検出の障害は、次回の定時ポーリングのタイミングまで検出することができない。
また、米国特許第７，０６９，４８０号明細書の方法を用いることで、障害を検出した際、該検出した機器に対して、確認のため情報収集を行なうことが可能となる。しかしながら、関連する機器のうち、現在未検出の障害は、次回の定時ポーリングのタイミングまで検出することができない。
本発明の目的は、ＲＣＡ等のルールベースの推論処理機能を備えた運用管理システムにおいて、障害等の問題点を検出した際に、次回の定時ポーリングのタイミングまで待たずに、素早く推論結果を確定する方法、又は、推論結果の精度を素早く向上する方法を提供することである。
本願で開示する代表的な発明は、複数の機器を備える計算機システムを管理するための情報を収集する方法であって、前記複数の機器には、管理計算機が接続され、前記複数の機器は、少なくとも一つの計算機を含み、前記管理計算機は、前記各計算機に接続される第１通信装置と、前記第１通信装置に接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、前記各計算機は、前記管理計算機に接続される第２通信装置と、前記第２通信装置に接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、を備え、前記管理計算機には、各々が前記複数の機器において検出される複数の事象を含む一つ以上の事象集合と、前記各事象集合に含まれる前記一つ以上の事象がすべて検出された場合に出力される結論と、を対応付けるルール情報が保持され、前記一つ以上の事象集合は、第１の複数の事象を含む第１事象集合を含み、前記ルール情報は、前記第１事象集合と、前記第１事象集合に含まれる前記第１の複数の事象がすべて検出された場合に出力される第１結論と、を対応付ける第１ルールを含み、前記方法は、前記管理計算機が、前記第１の複数の事象の各々が検出されたか否かを示す情報を取得するためのポーリングを第１間隔で実行する第１手順と、前記管理計算機が、前記ポーリングに対する応答に基づいて、前記第１の複数の事象が検出されたか否かを判定する第２手順と、前記第１の複数の事象のうち少なくとも一つが検出され、残りが検出されないと判定された場合、前記管理計算機が、次回の前記第１間隔のポーリングを実行する前に、前記検出されなかった一つ以上の事象が検出されたか否かを示す情報を取得するためのポーリングを実行する第３手順と、を含むことを特徴とする。
なお、ここでいう計算機は、プロセッサ、メモリ及び通信装置等を備えたものであり、いわゆるサーバ又はパーソナルコンピュータであってもよいし、外部ストレージ装置又はネットワークスイッチ等であってもよい。
ＲＣＡ等のルールベースの推論処理機能を備えた運用管理システムにおいて、障害等の問題点が検出された場合、次回の定時ポーリングのタイミングを待たずに、素早く推論結果を確定することができる。
【図面の簡単な説明】
【０００４】
第１図は、本発明の第１の実施形態の運用管理システムの構成を示すブロック図である。
第２図は、本発明の第１の実施形態のワーキングメモリ中のデータの一部であるイベント状況テーブルを示す説明図である。
第３図は、本発明の第１の実施形態の事象定義テーブルのフォーマットを示す説明図である。
第４図は、本発明の第１の実施形態の結論定義テーブルのフォーマットを示す説明図である。
第５図は、本発明の第１の実施形態の検出状況管理テーブルのフォーマットを示す説明図である。
第６図は、本発明の第１の実施形態のＧＵＩ画面に表示される内容を示す説明図である。
第７図は、本発明の第１の実施形態の定期監視プログラムの処理を示すフローチャートである。
第８図は、本発明の第１の実施形態の全体情報収集プログラムの処理を示すフローチャートである。
第９図は、本発明の第１の実施形態の検出率表示プログラムの処理を示すフローチャートである。
第１０図は、本発明の第１の実施形態の全検出率計算プログラムの処理を示すフローチャートである。
第１１図は、本発明の第１の実施形態の再評価プログラムの処理を示すフローチャートである。
第１２図は、本発明の第２の実施形態の運用管理システムの構成を示すブロック図である。
第１３図は、本発明の第２の実施形態の再評価プログラムの処理を示すフローチャートである。
第１４図は、本発明の第３の実施形態の運用管理システムの構成を示すブロック図である。
第１５図は、本発明の第３の実施形態の事象カウントテーブルのフォーマットを示す説明図である。
第１６図は、本発明の第３の実施形態の再評価プログラムの処理を示すフローチャートである。
第１７図は、本発明の第４の実施形態の運用管理システムの構成を示すブロック図である。
第１８図は、本発明の第４の実施形態のポーリングタスクキューのフォーマットを示す説明図である。
第１９図は、本発明の第４の実施形態の再評価プログラムが実行されている途中のある時点におけるポーリングタスクキューの一例を示す説明図である。
第２０図は、本発明の第４の実施形態のポーリングタスク生成プログラムの処理を示すフローチャートである。
第２１図は、本発明の第４の実施形態のポーリングタスク実行プログラムの処理を示すフローチャートである。
第２２図は、本発明の第４の実施形態の再評価プログラムの処理を示すフローチャートである。
第２３図は、本発明の第５の実施形態の運用管理システムの構成を示すブロック図である。
第２４図は、本発明の第５の実施形態の再評価プログラムが実行されている途中のある時点におけるポーリングタスクキューの一例を示す説明図である。
第２５図は、本発明の第５の実施形態の再評価プログラムの処理を示すフローチャートである。
第２６図は、本発明の第１の実施形態の再評価実行条件テーブルのフォーマットを示す説明図である。
第２７図は、本発明の第１の実施形態の自動再評価実行プログラムの処理を示すフローチャートである。
【発明を実施するための最良の形態】
【０００５】
以下、図面に基づき、本発明の実施の形態を説明する。
最初に、本発明の第１の実施形態について説明する。
第１図は、本発明の第１の実施形態の運用管理システムの構成を示すブロック図である。
第１の実施形態の運用管理システムは、管理サーバ１００、業務サーバＡ７１０、業務サーバＢ７２０、ストレージ装置Ａ７３０及びストレージ装置Ｂ７４０を含んで構成される計算機システム上に実現される。
これらは、それぞれ通信装置１３０、通信装置７１３及び通信装置７３３等を介してＬＡＮ（ローカルエリアネットワーク）６００に接続される。このＬＡＮ６００を介して各装置間で、情報の参照及び設定、情報収集の命令及び収集データの転送等が行なわれる。また、業務サーバＡ７１０、業務サーバＢ７２０、ストレージ装置Ａ７３０及びストレージ装置Ｂ７４０は、それぞれポート７１４及び７３４等を介して、ＳＡＮ（ストレージエリアネットワーク）６１０に接続される。このＳＡＮ６１０を介して業務に利用されるデータが送受信される。
業務サーバＡ７１０は、例えばパーソナルコンピュータであり、ＣＰＵ７１１、ディスク７１２、通信装置７１３、ポート７１４及びメモリ７１５等を備える。例えばハードディスクドライブ（ＨＤＤ）のような記憶装置であるディスク７１２には、情報収集プログラム７１６が格納して用意される。情報収集プログラム７１６は、メモリ７１５にロードされ、ＣＰＵ７１１によって実行される。情報収集プログラム７１６は、ＣＰＵ７１１、ディスク７１２、通信装置７１３、ポート７１４、メモリ７１５等の状態情報又は性能情報を収集する。情報収集プログラム７１６は、上記の装置以外から状態情報等を収集してもよい。情報収集プログラム７１６は、業務サーバＡ７１０のＯＳ（オペレーティング・システム）（図時省略）に標準で搭載されているものであってもよい。
業務サーバＢ７２０は、業務サーバＡ７１０と同等の機能を有する装置によって構成されるため、その詳細な図示を省略する。ただし、業務サーバＢ７２０は、業務サーバＡ７１０と異なる構成であってもよい。
ストレージ装置Ａ７３０は、ＣＰＵ７３１、ディスク７３２、通信装置７３３、ポート７３４、及びメモリ７３５等を有する。例えばＨＤＤのような記憶装置であるディスク７３２には、情報収集プログラム７３６が格納して用意される。情報収集プログラム７３６は、メモリ７３５にロードされ、ＣＰＵ７３１によって実行される。情報収集プログラム７３６は、ＣＰＵ７３１、ディスク７３２、通信装置７３３、ポート７３４、メモリ７３５等の状態情報又は性能情報を収集する。情報収集プログラム７３６は、上記の装置以外から状態情報等を収集してもよい。
ストレージ装置Ｂ７４０は、ストレージ装置Ａ７３０と同等の機能を有する装置によって構成されるため、その詳細な図示を省略する。ただし、ストレージ装置Ｂ７４０は、ストレージ装置Ａ７３０と異なる構成であってもよい。
管理サーバ１００は、例えばパーソナルコンピュータであり、ＣＰＵ１１０、通信装置１３０、例えばＨＤＤのようなディスク１４０、及びメモリ２００等を備える。
定期監視プログラム２１０、全体情報収集プログラム２２０、事象定義テーブル２５０、結論定義テーブル２６０、ルールベースモジュール３００、検出率表示プログラム４１０、全検出率計算プログラム４２０、再評価プログラム４３０、検出状況管理テーブル４５０、再評価実行条件テーブル９００及び自動再評価実行プログラム９２０は、ディスク１４０に格納して用意され、プログラム実行時にメモリ２００にロードされる。メモリ２００にロードされた各プログラムは、ＣＰＵ１１０によって実行される。
ルールベースモジュール３００は、ルールを定義する情報を含むルールベース３７０、データの保存先となるワーキングメモリ３１０、及び、ルールインタプリタプログラム３５０によって構成される。ルールインタプリタプログラム３５０は、ルールベース３７０から情報を読み出し、ワーキングメモリ３１０をデータ保存先及びデータ読み出し元として利用することによって、推論処理を実現する。
事象定義テーブル２５０、結論定義テーブル２６０、ワーキングメモリ３１０、ルールベース３７０、検出状況管理テーブル４５０及び再評価実行条件テーブル９００の記憶フォーマットについては詳しく後述される。
定期監視プログラム２１０、全体情報収集プログラム２２０、検出率表示プログラム４１０、全検出率計算プログラム４２０、再評価プログラム４３０及び自動再評価実行プログラム９２０の特徴的な機能や動作についても詳しく後述される。
また、管理サーバ１００には、キーボード又はマウスのような入力装置、及び、情報を表示する表示装置を備える入出力端末１５０が接続されている。入力装置は、管理者６２０からの各プログラムの実行指示に関する入力に利用される。表示装置は、各処理結果の表示に利用される。表示装置には、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面１６０が含まれる。
本実施形態では、業務サーバＡ７１０は、ストレージ装置Ａ７３０及びストレージ装置Ｂ７４０のディスクボリュームを使用しており、業務サーバＢ７２０は、ストレージ装置Ｂ７４０のディスクボリュームを使用している。すなわち、ストレージ装置Ａ７３０のディスクボリュームを使用しているのは、業務サーバＡ７１０のみである。ストレージ装置Ｂ７４０のディスクボリュームを使用しているのは、業務サーバＡ７１０及び業務サーバＢ７２０の二つである。
上記の業務サーバとストレージ装置との接続関係を基に、管理者６２０が作成したｉｆ−ｔｈｅｎルールの例を以下に示す。
ルール１：  ｉｆ  Ｅ１  ＆  Ｅ３  ｔｈｅｎ  Ｘ
ルール２：  ｉｆ  Ｅ１  ＆  Ｅ２  ＆  Ｅ４  ｔｈｅｎ  Ｙ
上記のように、各ルールは、ｉｆに続く条件文と、ｔｈｅｎに続く結論と、を対応付ける。ｉｆ条件文によって、一つ以上の事象（イベント）からなる事象の集合が定義される。この集合に含まれるすべての事象が検出された場合、そのｉｆ条件文に対応する結論が確定する。なお、事象とは、機器において観測される何らかの現象を意味し、典型的には、機器において観測される障害を意味する。なお、障害は、実行性能の劣化を含んでもよい。
具体的には、上記のルールのうち、ルール１は、事象Ｅ１及びＥ３がいずれも検出された場合に結論Ｘが導き出されることを表す。ルール２は、事象Ｅ１、Ｅ２、及びＥ４がいずれも検出された場合に結論Ｙが導き出されることを表す。これらのルールは、ルールベース３７０内に定義される。
また、上記定義に含まれる事象及び結論に対応する、実際の事象及び結論の例を、以下に示す。
Ｅ１：業務サーバＡにおける論理ディスクエラー
Ｅ２：業務サーバＢにおける論理ディスクエラー
Ｅ３：ストレージ装置Ａにおけるディスク障害
Ｅ４：ストレージ装置Ｂにおけるディスク障害
Ｘ  ：根本原因は、ストレージ装置Ａのディスク障害
Ｙ  ：根本原因は、ストレージ装置Ｂのディスク障害
第２図は、本発明の第１の実施形態のワーキングメモリ３１０中のデータの一部であるイベント状況テーブルを示す説明図である。
イベント状況テーブルは、事象の列３１１及びＴ／Ｆの列３１２によって、各事象と、その事象の検出状況とを表している。この表は、Ｔ／Ｆの列３１２の値が”Ｔ”（Ｔｒｕｅ）となっている事象は検出済みであり、”Ｆ”（Ｆａｌｓｅ）となっている事象はまだ検出されていないことを示す。第２図の例の場合、行３１３の事象Ｅ１のみが検出済みである。一方、行３１４〜行３１６の事象Ｅ２〜事象Ｅ４は、まだ検出されていない。
第３図は、本発明の第１の実施形態の事象定義テーブル２５０のフォーマットを示す説明図である。
事象定義テーブル２５０は、事象ＩＤの列２５１、及び、その事象ＩＤによって識別される事象に対応する事象定義の列２５２から成る。なお、上記の事象Ｅ１〜事象Ｅ４の事象ＩＤは、それぞれ、「Ｅ１」〜「Ｅ４」である。
事象定義の列２５２には、各事象定義への参照を持つ。各参照先のデータは、例えば、ＩＰアドレス２５３１、取得方法２５３２、ＩＤ２５３３、ＰＷ２５３４及び事象メッセージ２５３５から成る。第３図には、事象ＩＤ「Ｅ１」に対応する参照先のデータのみが例として表示され、他の事象ＩＤに対応する参照先のデータは省略されている。
ＩＰアドレス２５３１は、対応する事象の発生である機器のＩＰアドレスを定義する。
取得方法２５３２は、対応する事象を検出するための障害情報又は性能情報の取得方法を定義する。この取得方法は、例えば、ＷＭＩ（Ｗｉｎｄｏｗｓ（登録商標）Ｍａｎａｇｅｍｅｎｔ  Ｉｎｓｔｒｕｍｅｎｔａｔｉｏｎ）のような、ＯＳ標準の障害情報又は性能情報を取得するＡＰＩであってもよい。
ＩＤ２５３３及びＰＷ２５３４は、上記の取得方法２５３２による取得処理を実行するために管理者権限の認証処理を必要とする場合に、その認証処理に使用されるＩＤ及びパスワードである。
事象メッセージ２５３５は、事象に対応するメッセージである。このメッセージは、対応する事象が検出された場合に、入出力端末１５０の表示装置に表示されてもよい。
この事象定義テーブル２５０は、管理者６２０によって予め定義される。
既に説明したように、本実施形態において、業務サーバＡにおける論理ディスクエラーが事象Ｅ１として定義される。このため、事象ＩＤの列２５１の値「Ｅ１」に対応するＩＰアドレス２５３１〜事象メッセージ２５３５には、業務サーバＡにおける論理ディスクエラーを検出するために使用される情報及びそれが検出された場合に表示されるメッセージ等が設定される。
第３図の例では、ＩＰアドレス２５３１、取得方法２５３２、ＩＤ２５３３、ＰＷ２５３４及び事象メッセージ２５３５として、それぞれ、「１１１．１１２．１１３．１０１」、「ＷＭＩ．Ｗｉｎ３２＿Ｖｏｌｕｍｅ．Ｓｔａｔｕｓ」、「Ａｄｍｉｎｉｓｔｒａｔｏｒ」、「ＡｄｍｉｎＰＷ」及び「業務サーバＡにおける論理ディスクエラー」が設定される。
これらは、業務サーバＡのＩＰアドレスが「１１１．１１２．１１３．１０１」であり、業務サーバＡにおける論理ディスクエラーがＡＰＩ「ＷＭＩ．Ｗｉｎ３２＿Ｖｏｌｕｍｅ．Ｓｔａｔｕｓ」によって取得され、その取得のために管理者権限の認証処理が必要であり、その認証処理のためにＩＤ「Ａｄｍｉｎｉｓｔｒａｔｏｒ」及びパスワード「ＡｄｍｉｎＰＷ」が使用され、事象Ｅ１が検出された場合に「業務サーバＡにおける論理ディスクエラー」が表示されることを示す。
第４図は、本発明の第１の実施形態の結論定義テーブル２６０のフォーマットを示す説明図である。
このテーブルは、結論ＩＤの列２６１、及び、結論メッセージの列２６２によって、結論のＩＤと、結論メッセージとの対応関係を表している。なお、上記の結論Ｘ及び結論Ｙの結論ＩＤは、それぞれ、「Ｘ」及び「Ｙ」である。
この結論定義テーブル２６０は、管理者６２０によって予め定義される。
既に説明したように、本実施形態において、「根本原因は、ストレージ装置Ａのディスク障害」が結論Ｘとして、「根本原因は、ストレージ装置Ｂのディスク障害」が結論Ｙとして定義される。このため、第４図の例では、結論ＩＤの列２６１の値「Ｘ」及び「Ｙ」に対応する結論メッセージの列２６２に、それぞれ、結論メッセージ「根本原因は、ストレージ装置Ａのディスク障害」及び「根本原因は、ストレージ装置Ｂのディスク障害」が設定される（それぞれ行２６３及び行２６４）。これらの結論メッセージは、後述するように、ＧＵＩ画面１６０に表示される（第６図参照）。
第５図は、本発明の第１の実施形態の検出状況管理テーブル４５０のフォーマットを示す説明図である。
検出状況管理テーブル４５０は、結論ＩＤの列４５１、結論メッセージの列４５２、及び、事象検出状況の列４５３によって、各結論に対応する事象の検出状況（すなわち、それらの事象が実際に検出されたか否か）を管理する。
列４５１及び列４５２には、それぞれ、結論ＩＤ及びその結論ＩＤに対応する結論メッセージが設定される（行４５４及び行４５５）。
列４５３は、各結論ＩＤに対応するサブデータ、例えば、結論Ｘに対応するサブデータ４６０及び結論Ｙに対応するサブデータ４７０を参照する。
サブデータ４６０は、事象ＩＤの列４６１及び検出済の列４６２から構成されるテーブルと、検出率４６９のデータと、によって構成される。
列４６１及び列４６２には、それぞれ、結論ＩＤに対応する事象ＩＤ、及び、その事象ＩＤによって識別される事象が検出されたか否かを示す値が設定される。列４６２の値「Ｔ」及び「Ｆ」は、それぞれ、事象が検出されたこと、及び、事象がまだ検出されていないことを示す。
検出率４６９には、結論に対応する全事象のうち、既に検出されたものの割合を示す値が設定される。
第５図の例において、サブデータ４６０は、結論Ｘに対応する。このため、列４６１には、結論Ｘに対応する事象Ｅ１及び事象Ｅ３の事象ＩＤ「Ｅ１」及び「Ｅ３」が設定される（ルール１参照）。第５図の例では、事象Ｅ１が既に検出され、事象Ｅ３はまだ検出されていない。このため、検出率４６９には、２分の１すなわち「０．５」が設定される。この場合、結論Ｘに対応する事象の全てが検出されていない（すなわち、少なくとも一つがまだ検出されていない）ため、結論Ｘはまだ確定していない。
サブデータ４７０は、事象ＩＤの列４７１及び検出済の列４７２から構成されるテーブルと、検出率４７９のデータと、によって構成される。これらは、それぞれ、サブデータ４６０の列４６１、列４６２及び検出率４６９と同様であるため、これらの詳細な説明を省略する。第５図の例において、結論Ｙに対応する事象Ｅ１、事象Ｅ２及び事象Ｅ４のうち、事象Ｅ１のみが既に検出されている（行４７３〜行４７５）。このため、検出率４７９には、３分の１すなわち「０．３３」が設定される。この場合、結論Ｙに対応する事象の全てが検出されていない（すなわち、少なくとも一つがまだ検出されていない）ため、結論Ｙはまだ確定していない。
第６図は、本発明の第１の実施形態のＧＵＩ画面１６０に表示される内容を示す説明図である。
ＧＵＩ画面１６０は、確定した推論結果及び未確定の推論結果の一覧を表示する画面である。具体的には、ＧＵＩ画面１６０は、確定した推論結果表示欄１６１及び未確定の推論結果表示欄１６３を含む。さらに、ＧＵＩ画面１６０は、表示内容更新１６８ボタン及び推論結果再評価１６９ボタンを備る。これらは、対応する処理の実行を指示するために利用される。
第６図の例は、第５図に示した例に対応する。第５図の例では、結論Ｘ及び結論Ｙのいずれも確定していない。このため、第６図の例では、確定した推論結果表示欄１６１が空欄であり（行１６２）、未確定の推論結果表示欄１６３には結論Ｘ及び結論Ｙに対応する結論メッセージ２６２の値が表示される（行１６４及び行１６５）。
管理者６２０は、管理サーバ１００を使用して、業務サーバＡ７１０、業務サーバＢ７２０、ストレージ装置Ａ７３０及びストレージ装置Ｂ７４０を運用する。管理者６２０は、管理サーバ１００に対して定期監視処理の開始を指示する。また、管理者６２０は、管理サーバ１００のＧＵＩ画面１６０を通して、ルールベース解析処理による推論結果をチェックし、必要であれば表示内容更新又は推論結果再評価を指示する。
この管理サーバ１００が実行する定期監視処理の手順について説明する。
以下、第１図に示す運用管理システムにおいて実行される本実施形態の定期監視処理の流れについて説明する。
まず、定期監視プログラム２１０が管理者６２０によって実行される。
第７図は、本発明の第１の実施形態の定期監視プログラム２１０の処理を示すフローチャートである。
定期監視プログラム２１０は、管理者６２０からの終了指示を受信したか否かを判定する（ステップ２１１）。一般的に、管理者６２０からの終了指示は、管理者６２０が入出力端末１５０を用いて入力したプログラム終了指示である。ステップ２１１において、プログラムの終了指示を受信したと判定された場合、定期監視プログラム２１０は、処理を終了する。一方、ステップ２１１において、プログラムの終了指示を受信していないと判定された場合、次のステップ２１２が実行される。
ステップ２１２において、全体情報収集プログラム２２０が実行される。全体情報収集プログラム２２０が実行する処理については後述する（第８図参照）。
次に、定期監視プログラム２１０は、所定の時間（例えば１５分間）ＷＡＩＴ処理（すなわちプログラム実行の待ち処理）を実行する（ステップ２１３）。この所定の時間として、１５分より短い時間が設定されてもよいし、それより長い時間が設定されてもよい。
定期監視プログラム２１０は、ステップ２１３を実行した後、ステップ２１１に戻る。以後、終了指示を受信するまで、上記の処理が続行される。
第８図は、本発明の第１の実施形態の全体情報収集プログラム２２０の処理を示すフローチャートである。
全体情報収集プログラム２２０は、まず、事象定義テーブル２５０を参照することによって、事象定義の一覧を取得する（ステップ２２１）。
次に、全体情報収集プログラム２２０は、ループ開始処理（ステップ２２２）及びループ終了処理（ステップ２２５）によって、ループ処理を実行する。具体的には、事象定義テーブル２５０中の各行、例えば、行２５３〜２５６の各々に対して、ステップ２２３及びステップ２２４が実行される。
ステップ２２３において、全体情報収集プログラム２２０は、事象に対応する管理対象機器に対して情報収集のためのポーリングを行なう。具体的には、事象定義テーブル２５０中の要素（例えば行２５３）に対応するＩＰアドレス（例えばＩＰアドレス２５３１）に対して、設定された取得方法（例えば取得方法２５３２に設定されたＡＰＩ）を使って情報収集を行なう。必要であれば、全体情報収集プログラム２２０は、ＩＤ２５３３及びＰＷ２５３４を使ってもよい。
このポーリングは、例えばＷＭＩ（Ｗｉｎｄｏｗｓ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｓｔｒｕｍｅｎｔａｔｉｏｎ）のようなＯＳ標準の障害情報及び性能情報を取得するＡＰＩ呼び出すことによって実現されてもよいし、例えば対象機器７１０に対して、ＬＡＮ６００を介して、情報収集プログラム７１６を呼び出すことによって実現されてもよい。
ステップ２２４において、全体情報収集プログラム２２０は、ステップ２２３におけるポーリングの実行結果に基づいて入力データを生成し、その入力データを入力情報としてルールベースモジュール３００に渡す。この入力情報は、事象定義テーブル２５０によって定義された事象がポーリングによって検出されたことを示す情報を含む。ポーリングによって問題が検出されなかった場合、ルールベースモジュール３００に入力情報を渡す必要はない。ルールベースモジュール３００は、入力情報が与えられると、推論処理を実行する。
次に、ルールベースモジュール３００の動作について説明する。ルールベースモジュール３００が実行する処理は、ルールインタプリタプログラム３５０がルールベース３７０をデータの読み取り元、ワーキングメモリ３１０をデータの読み取り元及び書き込み先として処理を制御することによって実現される。
以下、ルールインタプリタプログラム３５０の動作を説明する。
ルールインタプリタプログラム３５０は、まず、ルールベース３７０からルールを読み出し、読み出したデータをワーキングメモリ３１０に保存する。
次に、ルールインタプリタプログラム３５０は、外部からの入力情報（すなわちステップ２２４において渡された入力情報）に基づいて、ワーキングメモリ３１０に格納された前提事項の各々に対して、ルールのマッチング処理を行なう。
次に、ルールインタプリタプログラム３５０は、上記のマッチング処理において、適用可能なルールが存在したか否かを判定する。もし適用可能なルールが存在しなかった場合、ルールインタプリタプログラム３５０は処理を終了する。適用可能なルールが存在した場合、ルールインタプリタプログラム３５０は、その中から適用するルールを選択し、選択したルールを実行する。ルール実行後は、上記のマッチング処理に制御が移り、全ての前提事項について終了するまでマッチング処理が繰り返される。
なお、ルールインタプリタプログラム３５０の動作は、人工知能の推論処理の分野で一般的な公知技術であるため、その詳細については説明を省略する。例えば、本発明の背景技術として引用したＨａｙｅｓ−Ｒｏｔｈにその詳細が記載されている。
上記の処理によって、管理対象機器の障害情報又は性能情報の検出、及び、根本原因の推論処理が可能となる。
次に、管理者６２０が推論結果を参照する方法について説明する。
まず、検出率表示プログラム４１０が管理者６２０からの指示に従って実行される。例えば、管理者６２０が表示内容更新１６８のボタンを操作すると、検出率表示プログラム４１０の実行が開始されてもよい。
第９図は、本発明の第１の実施形態の検出率表示プログラム４１０の処理を示すフローチャートである。
検出率表示プログラム４１０は、まず、全検出率計算プログラム４２０の実行を指示する（ステップ４１１）。全検出率計算プログラム４２０は、検出状況管理テーブル４５０を更新する。全検出率計算プログラム４２０の詳細は後述する（第１０図参照）。
次に、検出率表示プログラム４１０は、該検出状況管理テーブル４５０に含まれる情報に基づいて、ＧＵＩ画面１６０に、推論結果の情報を表示する（ステップ４１２）。
次に、全検出率計算プログラム４２０を説明する。このプログラムの処理は、検出状況管理テーブル４５０を生成又は更新することを目的とする。
第１０図は、本発明の第１の実施形態の全検出率計算プログラム４２０の処理を示すフローチャートである。
全検出率計算プログラム４２０は、まず、検出状況管理テーブル４５０を初期化する（ステップ４２１）。すなわち、既に検出状況管理テーブル４５０が生成済みである場合、全検出率計算プログラム４２０は、そのテーブルをクリアする。
次に、全検出率計算プログラム４２０は、ワーキングメモリ３１０からルール一覧（例えばルール１及びルール２）を取得する（ステップ４２２）。
次に、全検出率計算プログラム４２０は、ループ開始処理（ステップ４２３）及びループ終了処理（ステップ４２７）によって、ループ処理を実行する。具体的には、全検出率計算プログラム４２０は、ワーキングメモリ３１０から取得したルール一覧の各ルール（例えばルール１及びルール２）に対して、ステップ４２４〜ステップ４２６を実行する。
ステップ４２４において、全検出率計算プログラム４２０は、検出状況管理テーブル４５０に新しい行、例えば４５４を生成し、その行の列４５１及び列４５２に値を設定する。具体的には、全検出率計算プログラム４２０は、まずルール１から結論ＩＤ２６１の値、例えばＸを抽出して、その値を列４５１に設定する。次に、全検出率計算プログラム４２０は、結論ＩＤの値に対応する結論メッセージ２６２の値を結論定義テーブル２６０から見つけ出し、その値（例えば、「根本原因は、ストレージ装置Ａのディスク障害」）を列４５２に設定する。
ステップ４２５において、全検出率計算プログラム４２０は、各結論に対応する事象の検出状況を表すサブデータ（第５図の例では、サブデータ４６０及び４７０）を生成する。具体的には、全検出率計算プログラム４２０は、まず各ルールに対応する事象の一覧を抽出する。例えば、ルール１については、事象Ｅ１及び事象Ｅ３が抽出される。そして、全検出率計算プログラム４２０は、抽出した各事象について、対応する行（例えば、行４６３及び行４６４）を生成して、それらの行の列４６１に事象ＩＤの値を設定する。
次に、全検出率計算プログラム４２０は、ワーキングメモリ３１０を参照して、列３１２から各事象の検出状況を取得し、列４６２に取得した検出状況の値を設定する。例えば、事象ＩＤ「Ｅ１」に対応する列３１２の値が「Ｔ」の場合、事象ＩＤ「Ｅ１」に対応する列４６２にも「Ｔ」が設定される。同様に、列３１２の値が「Ｆ」の場合、列４６２にも「Ｆ」が設定される。最後に、全検出率計算プログラム４２０は、サブデータ４６０等への参照情報を検出状況管理テーブル４５０の列４５３に設定する。
ステップ４２６において、全検出率計算プログラム４２０は、サブデータにおける事象の検出率を計算する。具体的には、全検出率計算プログラム４２０は、サブデータに含まれる全事象数のうち、検出済みの事象数の割合を求め、その値を検出率４６９等に設定する。例えば、サブデータ４６０の場合、含まれる全事象はＥ１及びＥ３の２つであり（それぞれ行４６３及び４６４）、それらのうち検出済の事象はＥ１だけである。このため、検出率４６９には「０．５」が設定される。一方、例えば、サブデータ４７０の場合、含まれる全事象はＥ１、Ｅ２及びＥ４の３つであり（それぞれ行４７３、４６４及び４７５）、それらのうち検出済の事象はＥ１だけである。このため、検出率４７９には「０．３３」が設定される。
なお、検出率は、上記のように事象の数のみに基づいて計算されてもよいが、各事象に重みづけをして計算されてもよい。
ステップ４２８において、全検出率計算プログラム４２０は、検出状況管理テーブル４５０の行を、検出率の順に並べ替える。第５図の例では、全検出率計算プログラム４２０は、検出率４６９及び検出率４７９の値を比較し、検出率の値が大きいものに対応する行（第５図では検出率４６９に対応する行４５４）が、検出率の値が小さいものに対応する行（第５図では検出率４７９に対応する行４５５）より上位になるように、各行の順序を並べ替える。
以上の処理によって、検出状況管理テーブル４５０が生成される。
次に、推論結果を素早く確定させるために、通常よりも早く情報収集を行なう制御方法について説明する。この制御方法によって、本発明における課題が解決される。
本実施形態では、推論結果再評価の指示があった際に、各機器に対して、通常の定時ポーリングとは別に、即座に情報収集のためのポーリングが実行される。
まず、再評価プログラム４３０が管理者６２０によって実行される。例えば、管理者６２０が、ＧＵＩ画面１６０を参照して、推論結果を確認する。再評価プログラム４３０は、確定した推論結果が存在しない場合、又は、確定した推論結果が、管理者６２０が期待するものと異なる場合、推論結果再評価１６９のボタンを操作することによって実行される。
第１１図は、本発明の第１の実施形態の再評価プログラム４３０の処理を示すフローチャートである。
再評価プログラム４３０は、まず、上記の全検出率計算プログラム４２０を実行することによって、検出状況管理テーブル４５０を更新する（ステップ４３１）。
次に、再評価プログラム４３０は、ループ１開始処理（ステップ４３２）及びループ１終了処理（ステップ４３９）によって、ループ処理を実行する。具体的には、再評価プログラム４３０は、検出状況管理テーブル４５０の各行（例えば行４５４及び行４５５）に対して、ステップ４３３〜ステップ４３８を実行する。なお、検出状況管理テーブル４５０は、第１０図のステップ４２８においてソートされているため、本ループ処理は、高い検出率に対応するルールから順に実行される。
ステップ４３３において、再評価プログラム４３０は、ルールに対応する事象一覧のデータを取得する。例えば、行４５４のルールの場合、再評価プログラム４３０は、列４５３に基づいてサブデータ４６０を参照し、行４６３及び行４６４を取得する。
次に、再評価プログラム４３０は、ループ２開始処理（ステップ４３４）及びループ２終了処理（ステップ４３８）によって、ループ処理を実行する。具体的には、再評価プログラム４３０は、各事象（例えば行４６３及び行４６４に対応する各事象）に対して、ステップ４３５〜ステップ４３７を実行する。
ステップ４３５において、再評価プログラム４３０は、各事象（例えば行４６３に対応する事象）について、列４６２の値を参照することによって、検出済か否かを判定する。未検出すなわち値が「Ｆ」の場合、再評価プログラム４３０は、ステップ４３６及びステップ４３７を実行する。
ステップ４３６において、再評価プログラム４３０は、未検出の事象に対応する機器に対して情報収集（ポーリング）を実行する。具体的には、再評価プログラム４３０は、事象定義テーブル２５０中の未検出の事象に対応するＩＰアドレス（例えば行２５３１参照）に対して、対応する取得方法（例えば行２５３２参照）を使って情報収集を実行する。必要であれば、対応するＩＤ及び対応するＰＷ（例えばそれぞれ行２５３３及び行２５３４参照）を使ってもよい。
なお、ステップ４３６において実行されるポーリングは、第７図及び第８図に示す定時ポーリングのタイミング以外のタイミングで実行されるものである。以下の説明において、このようなポーリングを、特別ポーリングとも記載する。
ステップ４３７において、再評価プログラム４３０は、情報収集処理の実行結果に基づいて、入力データを生成して、それをルールベースモジュール３００への入力情報として渡す。ポーリングによって問題が検出されなかった場合、ルールベースモジュール３００に入力情報を渡す必要はない。
ステップ４３４〜ステップ４３８のループ処理及びステップ４３２〜ステップ４３９のループ処理がすべて終了すると、再評価プログラム４３０は、ステップ４４０において、検出状況管理テーブル４５０の情報に基づいて、ＧＵＩ画面１６０に、推論結果の情報を表示する。
なお、表示内容更新１６８ボタン及び推論結果再評価１６９ボタンは、再評価プログラム４３０の処理実行中には、ボタンが非活性（不活性）状態となる。すなわち、管理者６２０は、処理が完了するまでボタンを操作することが出来ない。またボタンが活性状態となることで、管理者６２０は要求した再評価プログラム４３０の処理が完了したことを知ることができる。
以上の方法によって、ルールベースの推論処理機能を備えた運用管理システムにおいて、次回の定時ポーリングのタイミングを待たずに、素早く推論結果を確定することができる。
上記のように、管理者６２０からの指示に従って再評価プログラム４３０が実行されてもよいが、再評価プログラム４３０は、管理サーバ１００において、定期的に実行されてもよい。あるいは、管理サーバ１００が何らかのイベントを検出した際、例えば、処理２２４の直後に、再評価プログラム４３０が実行されてもよい。
以下、第２６図に示すデータ構造及び第２７図に示すフローチャートを用いて、再評価プログラム４３０を様々なタイミングで実行する手順を示す。
第２６図は、本発明の第１の実施形態の再評価実行条件テーブル９００のフォーマットを示す説明図である。
再評価実行条件テーブル９００は、再評価実行の条件の列９０１、及び、Ｔ／Ｆの列９０２を含む。これによって、再評価の実行条件と、その条件が成立しているか否かを示す成立状況と、が管理される。
列９０１には、再評価プログラム４３０の処理を実行するか否かを判定するための条件が設定される。第２６図の例では、列９０１に、「一定時間経過」、「ユーザによる実行指示」及び「イベント検出」が設定される（それぞれ、行９０５、行９０６及び行９０７）。
列９０２には、列９０１に設定された条件が成立するか否かを示す値が設定される。具体的には、列９０１に設定された条件が成立する場合、その条件に対応する列９０２に「Ｔ」が設定される。一方、列９０１に設定された条件が成立しない場合、その条件に対応する列９０２に「Ｆ」が設定される。
列９０１に設定された複数の条件のうち少なくとも一つが成立する場合、再評価プログラム４３０の処理が実行される。
行９０５によれば、例えばタイマによって前回の再評価プログラム４３０の処理から所定の時間が経過した場合に条件が成立し、列９０２に「Ｔ」が設定される。
なお、行９０５に設定される所定の時間は、定時ポーリングの実行間隔（すなわち第７図のステップ２１３の待ち時間）より短い必要がある。例えば、定時ポーリングの実行間隔が１５分である場合、行９０５に設定される所定の時間は、５分であってもよい。
この場合、１５分間隔で、全てのルールに含まれる全ての事象に対するポーリングが実行される。そして、５分間隔で、少なくとも一つの事象が検出されたルールに含まれるまだ検出されていない事象（第５図の例では、事象Ｅ１が検出されたルール１に含まれる未検出の事象Ｅ３、及び、事象Ｅ１が検出されたルール２に含まれる未検出の事象Ｅ２及びＥ４）に対する特別ポーリングが実行される。
運用管理の対象である計算機システムが大規模になるほど、全てのルールに含まれる事象の数は増大する。このため、１回の定時ポーリングに要する時間も長くなる。しかし、それらの事象のうち、実際に検出されるものはごく一部であるのが通常である。このため、特別ポーリングの実行間隔として、定時ポーリングの実行間隔より短い時間を設定することができる。
行９０６によれば、例えば管理者６２０が再評価の実行指示を入力した場合に条件が成立し、列９０２に「Ｔ」が設定される。
行９０７によれば、管理サーバ１００が所定のイベントを検出した場合、例えば、処理２２４によって障害イベントを検出した場合に条件が成立し、列９０２に「Ｔ」が設定される。
管理者６２０からの指示に従って自動再評価実行プログラム９２０が実行されることによって、再評価プログラム４３０が種々のタイミングで実行される。
第２７図は、本発明の第１の実施形態の自動再評価実行プログラム９２０の処理を示すフローチャートである。
自動再評価実行プログラム９２０は、まず、所定の時間、例えば１０秒間、ＷＡＩＴ処理（プログラム実行の待ち処理）を行なう（ステップ９２１）。この所定の時間は、１０秒より短くてもよいし、長くてもよい。
次に、自動再評価実行プログラム９２０は、ステップ９２２において、再評価処理を実行する条件が成立しているか否かを判定する。具体的には、自動再評価実行プログラム９２０は、再評価実行条件テーブル９００を参照し、列９０２の値が「Ｔ」である行が存在するか否かを判定する。
列９０２の値が「Ｔ」である行が存在しない場合、処理はステップ９２１に戻る。一方、列９０２の値が「Ｔ」である行が存在する場合、自動再評価実行プログラム９２０は、該当する行の列９０２に「Ｆ」を設定し、ステップ９２３へ進む。
ステップ９２３において、再評価プログラム４３０が実行される。
次に、ステップ９２４において、自動再評価実行プログラム９２０は、管理者から終了指示が入力されたか否かを判定する。一般的に、管理者からの終了指示は、入出力端末１５０から入力されたプログラム終了指示である。
ステップ９２４において、プログラムの終了指示が入力されたと判定された場合、自動再評価実行プログラム９２０の処理が終了する。一方、ステップ９２４において、プログラムの終了指示が入力されていないと判定された場合、処理はステップ９２１に戻る。
以上の方法によって、管理者６２０が推論結果再評価１６９ボタンを操作する以外のタイミングで再評価プログラム４３０を実行することができる。
例えば、ストレージ装置Ａ７３０にディスク障害が発生した場合、事象Ｅ１及び事象Ｅ３が検出されるはずである（ルール１参照）。これらの事象は、第７図及び第８図に示す定時ポーリングによって検出される。しかし、ポーリングは各機器に対して順次実行される性質のものであるため、複数の機器に同時に発生した事象をポーリングによって同時に検出することができない。
例えば、第７図のステップ２１２において第８図の処理が呼び出され、ステップ２２２から２２５までのループの１回目の実行によって事象Ｅ１が検出されず、２回目の実行によって事象Ｅ３が検出された場合、その１回目と２回目の間にストレージ装置Ａ７３０にディスク障害が発生した可能性がある。しかし、仮にストレージ装置Ａ７３０にディスク障害が発生していたとしても、その結論は、ステップ２２２から２２５までのループ処理が終了し、ステップ２１３の待ち時間（例えば１５分）が経過した後、再びステップ２２２から２２５までのループが実行され、それによって事象Ｅ１が検出されるまで確定しない。
しかし、本実施形態によれば、ステップ２１３の待ち時間が経過する前（すなわち、次回の定時ポーリングが実行される前）であっても、所定の条件（本実施形態の例では、再評価実行条件テーブル９００に定義された条件）が成立する場合には、再評価プログラム４３０による特別ポーリングが実行される。それによって、次回の定時ポーリングの実行を待たずに、結論を確定することができる。
具体的には、例えば、上記のようにルール１に含まれる事象Ｅ１及び事象Ｅ３のうち事象Ｅ１のみが検出された場合、定時ポーリングの実行間隔より短い所定の時間（例えば５分）が経過すると、事象Ｅ３を検出するための特別ポーリングが実行されてもよい（行９０５）。あるいは、ユーザからの指示を受信した場合、次回の定時ポーリングを待たずに特別ポーリングが実行されてもよい（行９０６）。あるいは、事象Ｅ１が検出されたことを契機に、次回の定時ポーリングを待たずに直ちに特別ポーリングが実行されてもよい（行９０７）。これらによって、事象Ｅ３を早期に検出し、早期に結論を確定することが可能になる。
なお、上記の実施形態には、曖昧推論（Ｒｅａｓｏｎｉｎｇ  ｕｎｄｅｒ  ｕｎｃｅｒｔａｉｎｔｙ）を適用することもできる。曖昧推論は、不確実な知識又は信念を持つ場合の推論方法である。曖昧推論の代表的なものに、例えばファジィ推論（Ｆｕｚｚｙ  Ｉｎｆｅｒｅｎｃｅ）、又は、ＭＹＣＩＮのＣＦ（Ｃｅｒｔａｉｎｔｙ  Ｆａｃｔｏｒ）値を用いた推論手法がある。
次に、第１２図及び第１３図に基づいて、本発明の第２の実施形態を説明する。第２の実施形態は、第１の実施形態の変形例に相当する。
第１の実施形態では、再評価プログラム４３０の処理によって、検出状況管理テーブル４５０に基づいて、事象が未検出の機器に対して、定時ポーリングとは異なる特別ポーリングが直ちに実行される。しかしながら、事象が未検出の機器全てに対して特別ポーリングを実行すると、その処理時間のため、推論結果の確定が遅れる。
ところで、第１実施形態では、結論の要素となる事象が未検出の機器全てに対して特別ポーリングが実行される。しかし、一つのルールに含まれる複数の事象のうち、少なくとも一つが検出されなければ、残りの事象が検出されるか否かにかかわらず、そのルールに対応する結論は成立しない。すなわち、それらの複数の事象のうち、少なくとも一つが検出されないことが判明した時点で、残りの事象についてのポーリングを実行するまでもなく、そのルールに対応する結論が成立しないと判定することができる。
そのため、第２の実施形態では、再評価プログラム５００が、ある結論に対応する事象のうち、未検出の事象を対象とする特別ポーリングを実行するが、その特別ポーリングにおいて対象である事象が検出されなかった場合、その結論に対応する他の事象への特別ポーリングを中止する（すなわち、その結論に対応する残りの事象への特別ポーリングを実行しない）。
第１２図は、本発明の第２の実施形態の運用管理システムの構成を示すブロック図である。
第２の実施形態は、管理サーバ１００における再評価プログラム４３０が、再評価プログラム５００によって置き換えられている点が、第１の実施形態と異なる。以下、第２の実施形態が第１の実施形態と異なる点について説明する。
本実施形態では、再評価プログラム５００が管理者６２０によって実行される。例えば、管理者６２０が、ＧＵＩ画面１６０を参照して、推論結果を確認する。確定した推論結果が存在しない場合、又は、管理者６２０が期待する推論結果とは異なる推論結果が確定した場合に、管理者６２０が推論結果再評価１６９のボタンを操作することによって、再評価プログラム５００が実行される。
第１３図は、本発明の第２の実施形態の再評価プログラム５００の処理を示すフローチャートである。
再評価プログラム５００は、まず、ステップ５０１において、全検出率計算プログラム４２０を実行する。全検出率計算プログラム４２０によって、検出状況管理テーブル４５０が更新される。
次に、再評価プログラム５００は、ループ１開始処理（ステップ５０２）及びループ１終了処理（ステップ５１０）によって、ループ処理を実行する。具体的には、再評価プログラム５００は、検出状況管理テーブル４５０の各行（例えば行４５４及び行４５５）に対して、ステップ５０３〜ステップ５０９を実行する。なお、検出状況管理テーブル４５０は、第１０図のステップ４２８においてソートされているため、本ループ処理は、高い検出率に対応するルールから順に実行される。
ステップ５０３において、再評価プログラム５００は、ルールに対応する事象一覧のデータを取得する。例えば、行４５５のルールの場合、再評価プログラム５００は、列４５３に基づいてサブデータ４７０を参照し、行４７３、行４７４及び行４７５を取得する。
次に、再評価プログラム５００は、ループ２開始処理（ステップ５０４）及びループ２終了処理（ステップ５０９）によって、ループ処理を実行する。具体的には、再評価プログラム５００は、各事象（例えば行４７３に対応する事象）に対して、ステップ５０５〜ステップ５０８を実行する。
ステップ５０５において、再評価プログラム５００は、各事象（例えば行４７３に対応する事象）について、列４７２の値を参照することによって、検出済か否かを判定する。未検出すなわち値が「Ｆ」の場合、再評価プログラム５００は、ステップ５０６〜ステップ５０８を実行する。
ステップ５０６において、再評価プログラム５００は、未検出の事象に対応する機器に対して情報収集（ポーリング）を実行する。具体的には、再評価プログラム５００は、事象定義テーブル２５０中の未検出の事象に対応するＩＰアドレスに対して、対応する取得方法を使って情報収集を実行する。必要であれば、対応するＩＤ及び対応するＰＷを使ってもよい。
ステップ５０７において、再評価プログラム５００は、ステップ５０６の結果、事象が検出されたか否かを判定する。例えば、ステップ５０６において、サブデータ４７０の行４７４について情報収集が実行された場合、再評価プログラム５００は、行４７４の事象であるＥ２を検出したか否かを判定する。事象が検出されなかった場合、再評価プログラム５００は、ループ２終了処理（ステップ５０９）を経由せずに（すなわち、ステップ５０４からステップ５０９までのループ処理を中止して）、ループ１終了処理５１０に進む。
例えば、第５図の結論Ｙに対応する事象Ｅ１、Ｅ２及びＥ４のうちＥ１のみが検出された後に第１３図の処理が実行された場合、ステップ５０６において事象Ｅ２についてのポーリングが実行され、ステップ５０７において、事象Ｅ２が検出されたか否かが判定される。ここで、事象Ｅ２が検出されなかった場合、さらに事象Ｅ４についてのポーリングを実行したとしても、結論Ｙが確定する可能性はない。このため、本実施形態では、確定する可能性がなくなった結論に対応する更なるポーリングの実行（上記の例では事象Ｅ４についてのポーリングの実行）が省略される。言い換えると、少なくとも、次回のポーリングによって再び事象Ｅ２についてのポーリングが実行されるまで、事象Ｅ４についてのポーリングは実行されない。
ステップ５０８において、再評価プログラム５００は、情報収集処理の実行結果に基づいて、入力データを生成して、それをルールベースモジュール３００への入力情報として渡す。ポーリングによって問題が検出されなかった場合、ルールベースモジュール３００に入力情報を渡す必要はない。
ステップ５０４〜ステップ５０９のループ処理及びステップ５０２〜ステップ５１０のループ処理がすべて終了すると、再評価プログラム５００は、ステップ５１１において、検出状況管理テーブル４５０の情報に基づいて、ＧＵＩ画面１６０に、推論結果の情報を表示する。
上記以外の第２の実施形態の処理は、第１の実施形態の処理と同様であるため、説明を省略する。
本実施形態によれば、ルールベースの推論処理機能を備えた運用管理システムにおいて、次回の定時ポーリングのタイミングを待たずに、素早く推論結果を確定することができる。さらに、本実施形態では、上記のように、ポーリングを実行しても結論が確定しないことが明らかな場合には、ポーリングの実行が省略される。このため、本実施形態によれば、第１の実施形態よりさらにすばやく推論結果を確定することができる。
次に、第１４図〜第１６図に基づいて、本発明の第３の実施形態を説明する。第３の実施形態は、第１の実施形態の変形例に相当する。
第１の実施形態では、再評価プログラム４３０の処理によって、検出状況管理テーブル４５０に基づいて、事象が未検出の機器に対して、特別ポーリングが直ちに実行される。しかしながら、ｉｆ条件文に定義されている事象が、複数のルールの中で定義されている場合、第１の実施形態では、同じ事象に対して、複数回、特別ポーリングが実施される。それに要する処理時間のため、推論結果の確定が遅れる。
そのため、第３の実施形態では、再評価プログラム５２０及び事象カウントテーブル５４０によって、特別ポーリングの対象となる事象が最初にカウントされる。そして、カウントの大きい事象から順に特別ポーリングが実行される。これによって、特別ポーリングの重複がなくなる。さらに、より多くのルールに含まれている事象が優先的に特別ポーリングされる。
第１４図は、本発明の第３の実施形態の運用管理システムの構成を示すブロック図である。
第３の実施形態は、管理サーバ１００における再評価プログラム４３０が、再評価プログラム５２０によって置き換えられたこと、及び、事象カウントテーブル５４０が追加された点が、第１の実施形態と異なる。以下、第３の実施形態が第１の実施形態と異なる点について説明する。
第１５図は、本発明の第３の実施形態の事象カウントテーブル５４０のフォーマットを示す説明図である。
事象カウントテーブル５４０は、事象ＩＤの列５４１及びカウントの列５４２を含む。これによって、特別ポーリングを実施すべき事象と、その事象を含むルールの数とが管理される。なお、行５４６の事象ＩＤに存在するＥ５という事象は、本実施形態では定義されていないが、事象カウントテーブル５４０の特性を説明する便宜上、記載したものである。事象Ｅ５の定義については、説明を省略する。
第１５図の例では、事象Ｅ２、Ｅ３及びＥ４が１回ずつカウントされている（それぞれ行５４３、５４４及び５４５）。一方、事象Ｅ５は、２回カウントされている（行５４６）。この場合、事象Ｅ２、Ｅ３、Ｅ４及びＥ５が未検出であり、事象Ｅ２、Ｅ３及びＥ４が、それぞれ、一つのルールのｉｆ条件文に含まれ、事象Ｅ５が二つのルールのｉｆ条件文に含まれている。
本実施形態では、再評価プログラム５２０が管理者６２０によって実行される。例えば、管理者６２０が、ＧＵＩ画面１６０を参照して、推論結果を確認する。確定した推論結果が存在しない場合、又は、確定した推論結果が、管理者６２０が期待する推論結果とは異なる場合に、管理者６２０が推論結果再評価１６９のボタンを操作することによって、再評価プログラム５２０が実行される。
第１６図は、本発明の第３の実施形態の再評価プログラム５２０の処理を示すフローチャートである。
再評価プログラム５２０は、まず、ステップ５２１において、全検出率計算プログラム４２０を実行する。全検出率計算プログラム４２０によって、検出状況管理テーブル４５０が更新される。
次に、ステップ５３９において、再評価プログラム５２０は、事象カウントテーブル５４０のカウンタをクリアする。具体的には、再評価プログラム５２０は、事象カウントテーブル５４０の各行の列５４２に対して、全て「０」を設定する。
次に、再評価プログラム５２０は、ループ１開始処理（ステップ５２２）及びループ１終了処理（ステップ５２８）によって、ループ処理を実行する。具体的には、再評価プログラム５２０は、検出状況管理テーブル４５０の各行（例えば行４５４及び行４５５）に対して、ステップ５２３〜ステップ５２７を実行する。
ステップ５２３において、再評価プログラム５２０は、検出状況管理テーブル４５０の各行が示すルールに対応する事象一覧のデータを取得する。例えば、行４５４のルールの場合、列４５３に基づいてサブデータ４６０が参照され、行４６３及び行４６４が取得される。
次に、再評価プログラム５２０は、ループ２開始処理（ステップ５２４）及びループ２終了処理（ステップ５２７）によって、ループ処理を実行する。具体的には、再評価プログラム５２０は、各事象（例えば行４６３に対応する事象）に対して、ステップ５２５〜ステップ５２６を実行する。
ステップ５２５において、再評価プログラム５２０は、各事象（例えば行４６３に対応する事象）について、列４６２の値を参照することによって、その事象が検出済であるか否かを判定する。その事象が未検出である（すなわち列４６２の値が「Ｆ」である）場合、再評価プログラム５２０は、ステップ５２６を実行する。
ステップ５２６において、再評価プログラム５２０は、事象をカウントする。具体的には、再評価プログラム５２０は、事象カウントテーブル５４０を参照して、ステップ５２５で未検出であると判定された事象に対応する行の列５４２の値に「１」を加算する。
ステップ５２９において、再評価プログラム５２０は、事象カウントテーブル５４０の行のソート（並べ替え）を行なう。具体的には、事象カウントテーブル５４０の行を、カウント列５４２の値が大きなものから順に並べ替える。
例えば、ステップ５２８が終了した時点の事象カウントテーブル５４０が第１５図に示す通りであった場合、事象Ｅ５のカウント列５４２の値「２」が最も大きい（行５４６）。この場合、ステップ５２９によって、事象Ｅ５の行５４６が事象カウントテーブル５４０の先頭に移動する。
次に、再評価プログラム５２０は、ループ３開始処理（ステップ５３０）及びループ３終了処理（ステップ５３３）によって、ループ処理を実行する。具体的には、再評価プログラム５２０は、事象カウントテーブル５４０の先頭の行から順に、各行に対して、ステップ５３１及びステップ５３２を実行する。事象カウントテーブル５４０はステップ５２９においてソートされているため、再評価プログラム５２０は、カウント列５４２の値が大きい行に対して優先的にステップ５３１及びステップ５３２を実行する。
ステップ５３１において、再評価プログラム５２０は、事象カウントテーブル５４０の各行が示す事象に対応する機器に対して情報収集のためのポーリングを実行する。
具体的には、再評価プログラム５２０は、事象定義テーブル２５０中の各事象に対応するＩＰアドレスに対して、対応する取得方法を使ってポーリングを実行する。必要であれば、対応するＩＤ及び対応するＰＷを使ってもよい。
ステップ５３２において、再評価プログラム５２０は、上記のポーリングの実行結果に基づいて、入力データを生成して、その入力データをルールベースモジュール３００へ入力情報として渡す。この入力情報は、事象定義テーブル２５０によって定義された事象がポーリングによって検出されたことを示す情報を含む。ポーリングによって問題が検出されなかった場合、ルールベースモジュール３００に入力情報を渡す必要はない。
ステップ５３４において、再評価プログラム５２０は、検出状況管理テーブル４５０の情報に基づいて、ＧＵＩ画面１６０に、推論結果の情報を表示する。
上記以外の第３の実施形態の処理は、第１の実施形態の処理と同様であるため、説明を省略する。
以上の第３の実施形態によれば、ルールベースの推論処理機能を備えた運用管理システムにおいて、次回の定時ポーリングのタイミングを待たずに、素早く推論結果を確定することができる。さらに、第３の実施形態によれば、同一の機器に対する重複したポーリングが省略される。さらに、第３の実施形態によれば、より多くのルールに含まれる事象についてのポーリングが優先的に（すなわち、より少ないルールに含まれる事象についてのポーリングより先に）実行される。このため、第１の実施形態よりさらに効率よく素早く推論結果を確定することができる。
次に、第１７図〜第２２図に基づいて、本発明の第４の実施形態を説明する。第４の実施形態は、第３の実施形態の変形例に相当する。
第３の実施形態によれば、再評価プログラム５２０の処理によって、検出状況管理テーブル４５０及び事象カウントテーブル５４０に基づいて、特別ポーリングの重複が省略され、より多くのルールに含まれている事象から優先的に特別ポーリングが実行される。
しかしながら、通常の定時ポーリングと並行して特別ポーリングが実行されるため、管理サーバ１００に対して、一時的に負荷が集中してしまう問題がある。
そのため、第４の実施形態では、再評価プログラム５６０、ポーリングタスク生成プログラム８１０、ポーリングタスク実行プログラム８２０及びポーリングタスクキュー８５０によって、定時ポーリングと特別ポーリングとを並行して実行しないように制御することによって、管理サーバ１００のポーリング処理の負荷が一定になるように制御される。
第１７図は、本発明の第４の実施形態の運用管理システムの構成を示すブロック図である。
第４の実施形態の構成が第３の実施形態の構成と異なる点は、管理サーバ１００における再評価プログラム５２０が再評価プログラム５６０によって置き換えられたこと、定期監視プログラム２１０及び全体情報収集プログラム２２０がポーリングタスク生成プログラム８１０及びポーリングタスク実行プログラム８２０によって置き換えられたこと、及び、ポーリングタスクキュー８５０が追加されたことである。
第１８図は、本発明の第４の実施形態のポーリングタスクキュー８５０のフォーマットを示す説明図である。
ポーリングタスクキュー８５０は、順番の列８５１及び事象ＩＤの列８５２から構成されるテーブルであり、ポーリング実行のタスクの順番を決めるために利用される。このキューは、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）形式であり、基本的に、追加されるタスクはキューの末尾に追加される。ポーリングタスクキュー８５０の１行が一つのタスクに対応する。タスク実行のためのキューからタスクが取り出される場合は、先頭（すなわち順番の列８５１の値が１のもの）から順に取り出される。ただし、優先度の高いタスクをキューの先頭に追加することもできる。さらに、キューの各要素の順番を入れ替えることも可能である。
第１８図の例では、順番の列８５１の値「１」、「２」、「３」及び「４」に対応する事象ＩＤの列８５２に、それぞれ「Ｅ１」、「Ｅ２」、「Ｅ３」及び「Ｅ４」が設定される（それぞれ、行８５３、８５４、８５５及び８５６）。この場合、事象Ｅ１、Ｅ２、Ｅ３及びＥ４の順にポーリングが実行される。
第１９図は、本発明の第４の実施形態の再評価プログラム５６０が実行されている途中のある時点におけるポーリングタスクキュー８５０の一例を示す説明図である。
第１９図の例では、順番の列８５１の値「１」、「２」、「３」、「４」及び「５」に対応する事象ＩＤの列８５２に、それぞれ「Ｅ３」、「Ｅ１」、「Ｅ２」、「Ｅ３」及び「Ｅ４」が設定される（それぞれ、行８５７、８５８、８５９、８６０及び８６１）。この場合、事象Ｅ３、Ｅ１、Ｅ２、Ｅ３及びＥ４の順にポーリングが実行される。
本実施形態では、まず、ポーリングタスク生成プログラム８１０が管理者６２０から入力された指示に従って実行される。
第２０図は、本発明の第４の実施形態のポーリングタスク生成プログラム８１０の処理を示すフローチャートである。
ポーリングタスク生成プログラム８１０は、まず、ステップ８１１において、管理者６２０からの終了指示を受信したか否かを判定する。一般的に、管理者６２０からの終了指示は、管理者６２０が入出力端末１５０を用いて入力したプログラム終了指示である。ステップ８１１において、プログラムの終了指示を受信したと判定された場合、ポーリングタスク生成プログラム８１０は、処理を終了する。一方、ステップ８１１において、プログラムの終了指示を受信していないと判定された場合、次のステップ８１２が実行される。
ステップ８１２において、ポーリングタスク生成プログラム８１０は、事象定義テーブル２５０を参照することによって、事象定義の一覧を取得する。
次に、ポーリングタスク生成プログラム８１０は、ループ開始処理（ステップ８１３）及びループ終了処理（ステップ８１５）によって、ループ処理を実行する。具体的には、ポーリングタスク生成プログラム８１０は、事象定義テーブル２５０中の各行、例えば行２５３〜２５６の各々に対して、ステップ８１４を実行する。
ステップ８１４において、ポーリングタスク生成プログラム８１０は、事象定義テーブル２５０の各行に対応する事象をポーリングタスクキュー８５０の末尾に追加する。
次に、ポーリングタスク生成プログラム８１０は、ステップ８１６において、所定の時間（例えば１５分間）ＷＡＩＴ処理（すなわちプログラム実行の待ち処理）を行なう。この所定の時間は１５分より短くてもよいし、長くてもよい。
ステップ８１６が実行された後、処理はステップ８１１に戻り、以後、終了指示を受信するまで処理が続行される。
本実施形態では、次に、ポーリングタスク実行プログラム８２０が管理者６２０からの指示に従って実行される。
第２１図は、本発明の第４の実施形態のポーリングタスク実行プログラム８２０の処理を示すフローチャートである。
ポーリングタスク実行プログラム８２０は、まず、ステップ８２１において、管理者６２０から終了指示を受信したか否かを判定する。一般的に、管理者６２０からの終了指示は、管理者６２０が入出力端末１５０を用いて入力したプログラム終了指示である。ステップ８２１において、プログラムの終了指示を受信したと判定された場合、ポーリングタスク実行プログラム８２０は、処理を終了する。一方、ステップ８２１において、プログラムの終了指示を受信していないと判定された場合、ポーリングタスク実行プログラム８２０は、次のステップ８２２を実行する。
ポーリングタスク実行プログラム８２０は、ループ開始処理（ステップ８２２）及びループ終了処理（ステップ８２６）によって、ループ処理を実行する。具体的には、ポーリングタスク実行プログラム８２０は、ポーリングタスクキュー８５０の内容が空になるまで、ステップ８２３〜ステップ８２５の実行を繰り返す。
ステップ８２３において、ポーリングタスク実行プログラム８２０は、ポーリングタスクキュー８５０の先頭からタスクを一つ取り出す。
ステップ８２４において、ポーリングタスク実行プログラム８２０は、取り出されたタスクに対応するポーリングを実行する。具体的には、ポーリングタスク実行プログラム８２０は、ポーリングタスクキュー８５０から取り出した事象ＩＤ（例えば、Ｅ３など）をキーとして、事象テーブル２５０を参照し、対応するＩＰアドレス、取得方法、ＩＤ及びＰＷを取得する。そして、ポーリングタスク実行プログラム８２０は、取得したＩＰアドレス、取得方法、ＩＤ及びＰＷを使って、実際の機器に対してポーリングを実行する。
ステップ８２５において、ポーリングタスク実行プログラム８２０は、ポーリングの実行結果に基づいて、入力データを生成して、その入力データをルールベースモジュール３００へ入力情報として渡す。この入力情報は、事象定義テーブル２５０によって定義された事象がポーリングによって検出されたことを示す情報を含む。ポーリングによって問題が検出されなかった場合、ルールベースモジュール３００に入力情報を渡す必要はない。
次に、ステップ８２７において、ポーリングタスク実行プログラム８２０は、所定の時間、例えば５分間、ＷＡＩＴ処理を行なう。この所定の時間は５分より短くてもよいし、長くてもよい。
ステップ８２７が実行された後、処理はステップ８２１に戻り、以後、終了指示を受信するまで処理が続行される。
本実施形態では、再評価プログラム５６０が管理者６２０からの指示に従って実行される。例えば、管理者６２０が、ＧＵＩ画面１６０を参照して、推論結果を確認する。確定した推論結果が存在しない場合、又は、確定した推論結果が、管理者６２０が期待する推論結果とは異なる場合に、推論結果再評価１６９のボタンを操作することによって、再評価プログラム５６０が実行される。
第２２図は、本発明の第４の実施形態の再評価プログラム５６０の処理を示すフローチャートである。
再評価プログラム５６０は、まず、ステップ５６１において、全検出率計算プログラム４２０を実行する。全検出率計算プログラム４２０によって検出状況管理テーブル４５０が更新される。
次に、ステップ５７９において、再評価プログラム５６０は、事象カウントテーブル５４０のカウンタをクリアする。具体的には、再評価プログラム５６０は、事象カウントテーブル５４０の各行の列５４２に対して、全て「０」を設定する。
次に、再評価プログラム５６０は、ループ１開始処理（ステップ５６２）及びループ１終了処理（ステップ５６８）によって、ループ処理を実行する。具体的には、再評価プログラム５６０は、検出状況管理テーブル４５０の各行（例えば行４５４及び行４５５）に対して、ステップ５６３〜ステップ５６７を実行する。
ステップ５６３において、再評価プログラム５６０は、検出状況管理テーブル４５０の各行が示すルールに対応する事象一覧のデータを取得する。例えば、行４５４のルールの場合、列４５３に基づいてサブデータ４６０が参照され、行４６３及び行４６４が取得される。
次に、再評価プログラム５６０は、ループ２開始処理（ステップ５６４）及びループ２終了処理（ステップ５６７）によって、ループ処理を実行する。具体的には、再評価プログラム５６０は、各事象（例えば行４６３に対応する事象）に対して、ステップ５６５〜ステップ５６６を実行する。
ステップ５６５において、再評価プログラム５６０は、各事象（例えば行４６３に対応する事象）について、列４６２の値を参照することによって、その事象が検出済であるか否かを判定する。その事象が未検出である（すなわち列４６２の値が「Ｆ」である）場合、再評価プログラム５６０は、ステップ５６６を実行する。
ステップ５６６において、再評価プログラム５６０は、事象をカウントする。具体的には、再評価プログラム５６０は、事象カウントテーブル５４０を参照して、ステップ５６５で未検出であると判定された事象に対応する行の列５４２の値に「１」１を加算する。
ステップ５６９において、再評価プログラム５６０は、事象カウントテーブル５４０の行のソート（並べ替え）を行なう。具体的には、事象カウントテーブル５４０の行を、カウント列５４２の値が大きなものから順に並べ替える。
次に、再評価プログラム５６０は、ループ３開始処理（ステップ５７０）及びループ３終了処理（ステップ５７３）によって、ループ処理を実行する。具体的には、再評価プログラム５６０は、カウント数の大きさに基づいて並べ替えられた事象カウントテーブル５４０の各行に対して、ステップ５７１を実行する。
ステップ５７１において、再評価プログラム５６０は、事象カウントテーブル５４０の各行が示す事象をポーリングタスクキュー８５０のｉ番目に追加挿入する。なお、このｉは、初期値が「１」であり、ステップ５７０からステップ５７３までのループが繰り返されるごとに１ずつ加算されるインデックスである。すなわち、ステップ５６９によって事象カウントテーブル５４０の各行はポーリングの優先度順に並べられており、この優先度に従って、ポーリングタスクキュー８５０のｉ番目に事象が追加挿入される。
なお、ループ３の処理が実行されている間は、ポーリングタスクキュー８５０に対して排他処理が行なわれることが望ましい。
ステップ５７４において、再評価プログラム５６０は、検出状況管理テーブル４５０の情報に基づいて、ＧＵＩ画面１６０に、推論結果の情報を表示する。
上記以外の第４の実施形態の処理は、第３の実施形態の処理と同様であるため、説明を省略する。
なお、第１９図は、第１８図に示すポーリングタスクキュー８５０の状態に対して、特別ポーリングのタスク（事象Ｅ３）をポーリングタスクキュー８５０の先頭（１番目）の要素として追加挿入した状態を示す例である。これは、例えば、第５図の例において、事象Ｅ３のみが検出されなかった場合に相当する。この場合、次回のポーリングとして、事象Ｅ３についてのポーリングが最初に実行される。その結果、事象Ｅ３については、定時ポーリングの実行間隔より短い間隔でポーリングが実行される。
以上の第４の実施形態によれば、ルールベースの推論処理機能を備えた運用管理システムにおいて、次回の定時ポーリングのタイミングを待たずに、優先度の高い事象から順にポーリングが実行される。このとき、第４の実施形態によれば通常の定時ポーリングと特別ポーリングとがごく短い間隔で実行されないように制御される。このため、管理サーバへの処理負荷を一定に保ったまま、素早く推論結果を確定することができる。
次に、第２３図〜第２５図に基づいて、本発明の第５の実施形態を説明する。第５の実施形態は、第４の実施形態の変形例に相当する。
第４の実施形態によれば、検出状況管理テーブル４５０、ポーリングタスクキュー８５０、再評価プログラム５６０、ポーリングタスク生成プログラム８１０及びポーリングタスク実行プログラム８２０によって、通常の定時ポーリングと特別ポーリングとが同時に実行されないため、管理サーバ１００への負荷が一定になるように制御される。
しかしながら、第４の実施形態では、通常の定時ポーリングに加えて特別ポーリングも実行されるため、管理サーバ１００の処理負荷が増えるという問題がある。
そのため、第５の実施形態では、特別ポーリングの回数をできるだけ減らすことを目的とする。第５の実施形態では、ポーリングタスクキュー８５０中に、特別ポーリングのタスクと同じ事象に対する通常ポーリングのタスクが存在する場合、再評価プログラム５８０は、該事象に対する特別ポーリングを実行せず、その通常ポーリングのタスクをポーリングタスクキュー８５０の前方に移動するように制御する。
第２３図は、本発明の第５の実施形態の運用管理システムの構成を示すブロック図である。
第５の実施形態の構成が第４の実施形態の構成と異なる点は、管理サーバ１００における再評価プログラム５６０が再評価プログラム５８０によって置き換えられたことである。
第２４図は、本発明の第５の実施形態の再評価プログラム５８０が実行されている途中のある時点におけるポーリングタスクキュー８５０の一例を示す説明図である。
第２４図の例では、順番の列８５１の値「１」、「２」、「３」及び「４」に対応する事象ＩＤの列８５２に、それぞれ「Ｅ３」、「Ｅ１」、「Ｅ２」及び「Ｅ４」が設定される（それぞれ、行８６２、８６３、８６４及び８６５）。この場合、事象Ｅ３、Ｅ１、Ｅ２及びＥ４の順にポーリングが実行される。
本実施形態では、再評価プログラム５８０が管理者６２０からの指示に従って実行される。例えば、管理者６２０が、ＧＵＩ画面１６０を参照して、推論結果を確認する。確定した推論結果が存在しない場合、又は、確定した推論結果が、管理者６２０が期待する推論結果とは異なる場合に、管理者６２０が推論結果再評価１６９のボタンを操作することによって、再評価プログラム５８０が実行される。
第２５図は、本発明の第５の実施形態の再評価プログラム５８０の処理を示すフローチャートである。
ただし、第２５図に示すように、再評価プログラム５８０の処理は、ステップ５７１がステップ５９１に置き換えられていることを除いて、再評価プログラム５６０の処理（第２２図参照）と同じである。このため、ステップ５９１のみについて説明し、その他のステップの説明は省略する。
ステップ５９１において、再評価プログラム５８０は、事象カウントテーブル５４０の各行が示す事象と同一の事象をポーリングタスクキュー８５０の中から見つけ出し、見つけ出した事象をポーリングタスクキュー８５０のｉ番目のタスクに移動する。なお、このｉは、第２２図において説明したインデックスである。これによって、その事象が、ポーリングタスクキュー８５０における現在位置よりも前方（すなわち先頭に近い位置）に移動する。なお、該当する事象がポーリングタスクキュー８５０の中に存在しない場合は、その事象に対応するタスクを生成して、ポーリングタスクキュー８５０のｉ番目に追加挿入する。
なお、ループ３の処理が実行されている間は、ポーリングタスクキュー８５０に対して排他処理が行われることが望ましい。
なお、第２４図は、第１８図に示すポーリングタスクキュー８５０の状態に対して、特別ポーリングのタスク（事象Ｅ３）をポーリングタスクキュー８５０の先頭（１番目）に移動した状態を示す例である。これは、例えば、第５図の例において、事象Ｅ３のみが検出されなかった場合に相当する。この場合、次回のポーリングとして、事象Ｅ３についてのポーリングが最初に実行される。その結果、事象Ｅ３については、定時ポーリングの実行間隔より短い間隔でポーリングが実行される。
以上の第５の実施形態によれば、ルールベースの推論処理機能を備えた運用管理システムにおいて、次回の定時ポーリングのタイミングを待たずに、優先度の高い事象から順にポーリングが実行される。このとき、第５の実施形態によれば、第４の実施形態と比較して、ポーリングの実行回数が削減されるため、管理サーバへの処理負荷を一定に保ったまま、素早く推論結果を確定することができる。
以上のように、本発明の実施形態は、定時ポーリングなどによって障害を検出するステップと、そのポーリングによって検出された情報に基づいて、障害が発生している可能性が高い管理対象機器（すなわち予測障害）を見つけ出すステップと、その予測障害に対して、通常よりも早く情報収集するようにタイミングを制御するステップと、を有することを特徴とする。
例えば、複数のｉｆ−ｔｈｅｎルールが定義されている場合、まず、ｉｆ条件文のイベント集合のうち１つ以上イベントが検出されたルールを検査対象として特定し、次に、その検査対象ルールのｉｆ条件文の中から、補集合（すなわちまだ検出されていないイベント）を予測障害として特定することができる。
予測障害に対して、通常よりも早く情報収集することは、例えば、予測障害に対して直ちにポーリングを実行することで実現できる。あるいは、複数の予測障害に対してポーリング順序に優先度を付けて、優先度の高いものから順に、直ちにポーリングを実行することによっても実現できる。あるいは、定時ポーリングの実行スケジュールを制御することによって、予測障害のポーリングを通常よりも早く実行することによっても実現できる。
【図１】
2009144969.tif 000003
【図２】
2009144969.tif 000004
【図３】
2009144969.tif 000005
【図４】
2009144969.tif 000006
【図５】
2009144969.tif 000007
【図６】
2009144969.tif 000008
【図７】
2009144969.tif 000009
【図８】
2009144969.tif 000010
【図９】
2009144969.tif 000011
【図１０】
2009144969.tif 000012
【図１１】
2009144969.tif 000013
【図１２】
2009144969.tif 000014
【図１３】
2009144969.tif 000015
【図１４】
2009144969.tif 000016
【図１５】
2009144969.tif 000017
【図１６】
2009144969.tif 000018
【図１７】
2009144969.tif 000019
【図１８】
2009144969.tif 000020
【図１９】
2009144969.tif 000021
【図２０】
2009144969.tif 000022
【図２１】
2009144969.tif 000023
【図２２】
2009144969.tif 000024
【図２３】
2009144969.tif 000025
【図２４】
2009144969.tif 000026
【図２５】
2009144969.tif 000027
【図２６】
2009144969.tif 000028
【図２７】
2009144969.tif 000029