(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置を備え、システム内において発生したイベントが予め定められた発生パターンで発生したかを検出するシステムであって、
前記複数の情報処理装置のそれぞれが、
当該情報処理装置において検出するべき前記発生パターンを示すパターンデータを少なくとも１つ記憶している記憶装置と、
前記記憶装置から読み出した前記パターンデータに基づいて、前記発生パターンにおいて検出されるべきイベントの集合を特定し、特定したイベントの集合を示す必要イベントデータを生成する生成部と、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、前記必要イベントデータに含まれるイベントを選択する選択部と、
選択したイベントが前記パターンデータの示す発生パターンに一致するかを検出して、検出結果を出力する検出部と
を有するシステム。
【請求項２】
それぞれの前記情報処理装置において、
前記選択部は、当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、当該情報処理装置の必要イベントデータに含まれるイベントを選択して前記記憶装置に格納し、
前記検出部は、前記記憶装置に格納されたイベントに基づいて、発生したイベントが前記パターンデータの示す発生パターンに一致するかを検出し、
それぞれの前記情報処理装置は、
当該情報処理装置の必要イベントデータに含まれないイベントを更に他の情報処理装置に転送する転送部を更に有する、請求項１に記載のシステム。
【請求項３】
それぞれの前記情報処理装置は、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、他の情報処理装置の生成部により生成された必要イベントデータに含まれるイベントを、当該他の情報処理装置に転送する転送部を更に有する、請求項１または２に記載のシステム。
【請求項４】
それぞれの前記情報処理装置において、
前記記憶装置は、隣接する他の情報処理装置ごとに、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータとして、当該隣接する他の情報処理装置の必要イベントデータに含まれるか、または、当該隣接する他の情報処理装置に隣接する更に他の情報処理装置の要求イベントデータに含まれるイベントの集合を記憶しており、
前記転送部は、当該情報処理装置において発生したイベント、および、通信インターフェイスを介して転送を受けたイベントのうち、隣接する他の情報処理装置に対応する要求イベントデータに含まれるイベントを選択して、当該隣接する他の情報処理装置に転送する
請求項２または３に記載のシステム。
【請求項５】
それぞれの前記情報処理装置において、
前記生成部は、前記記憶装置に記憶されたパターンデータが更新される毎に、更新後の前記パターンデータに基づいて前記必要イベントデータを生成し、隣接する他の情報処理装置に送信して当該隣接する他の情報処理装置に記憶されている要求イベントデータを更新させる
請求項１から４のいずれかに記載のシステム。
【請求項６】
それぞれの前記情報処理装置において、
前記生成部は、当該情報処理装置のＣＰＵの演算処理能力、記憶装置の記憶容量、およびイベント検出機能の少なくとも１つである処理能力および処理負荷に基づいて、当該情報処理装置において検出可能なイベントの発生パターンを特定し、特定した何れかの発生パターンに含まれるイベントの集合を示す検出可能イベントデータを生成し、
前記選択部は、当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、前記検出可能イベントデータに含まれるイベントをさらに選択する
請求項１から５のいずれかに記載のシステム。
【請求項７】
それぞれの前記情報処理装置において、
前記選択部は、発生したイベントを記憶するために前記記憶装置内に設けられた記憶領域の空き容量が予め定められたサイズ以上であることを条件に、前記必要イベントデータに含まれないイベントであっても前記記憶領域に格納し、
前記転送部は、前記記憶領域の空き容量が予め定められたサイズ未満になったことを条件に、前記必要イベントデータに含まれないイベントを前記記憶領域から削除して更に他の情報処理装置に転送する
請求項２に記載のシステム。
【請求項８】
それぞれの前記情報処理装置において、
前記転送部は、前記記憶領域から削除したイベントについては、当該イベントの識別情報を当該イベントの転送先の情報処理装置に対応付けて前記記憶装置に格納し、
前記検出部は、前記パターンデータの示す発生パターンに含まれるイベントが前記記憶領域に格納されておらず、かつ、当該イベントの識別情報が前記記憶装置に記憶されていることを条件に、当該識別情報に対応して記憶された転送先の情報処理装置の検出部に、当該発生パターンの検出処理を指示する
請求項７に記載のシステム。
【請求項９】
一の情報処理装置において、
前記転送部は、通信インターフェイスを介して他の情報処理装置から転送を受けて前記記憶装置に格納したイベントを、当該記憶装置から削除したことを条件に、当該他の情報処理装置に対し削除した旨を通知し、
当該他の情報処理装置において、
前記転送部は、イベントを削除した旨の通知を受けたことに応じて、転送先である当該一の情報処理装置に対応付けた当該イベントの識別情報を前記記憶装置から削除する
請求項７または８に記載のシステム。
【請求項１０】
それぞれの前記情報処理装置において、
前記転送部は、通信インターフェイスを介して転送を受けたイベントに対応付けて、当該イベントの転送経路を更に受け取り、転送先の当該更に他の情報処理装置が当該転送経路に含まれないことを条件に、当該転送経路に当該情報処理装置を追加して当該イベントに対応付けて転送する
請求項２に記載のシステム。
【請求項１１】
それぞれの前記情報処理装置が、
隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを受信する要求受信部と、
受信した前記要求イベントデータに、前記生成部が生成した前記必要イベントデータを組み合わせて、当該情報処理装置の要求イベントデータを生成し、隣接する更に他の情報処理装置に送信する要求送信部と
を更に有し、
それぞれの前記情報処理装置において、前記記憶装置は、隣接する各情報処理装置から前記要求受信部が受信した前記要求イベントデータを記憶する
請求項４に記載のシステム。
【請求項１２】
複数の情報処理装置を備え、前記複数の情報処理装置によりイベントを相互に転送して、システム内においてイベントが予め定められた発生パターンで発生したかを検出するシステムであって、
それぞれの情報処理装置が、
当該情報処理装置で検出するべき前記発生パターンの何れかに含まれるイベントの集合を示す必要イベントデータを記憶している記憶装置と、
隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを受信する要求受信部と、
受信した前記要求イベントデータに、前記記憶装置から読み出した前記必要イベントデータを組み合わせて、当該情報処理装置の要求イベントデータを生成し、隣接する更に他の情報処理装置に送信する要求送信部と、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、隣接する他の情報処理装置から受信した前記要求イベントデータに含まれるイベントを、当該隣接する他の情報処理装置に転送する転送部と
を有するシステム。
【請求項１３】
情報システム内に設けられ、当該情報システムにおいてイベントが予め定められた発生パターンで発生したかを検出する情報処理装置であって、
当該情報処理装置において検出するべき前記発生パターンを示すパターンデータを少なくとも１つ記憶している記憶装置と、
前記記憶装置から読み出した前記パターンデータに基づいて、前記発生パターンにおいて検出されるべきイベントの集合を特定し、特定したイベントの集合を示す必要イベントデータを生成する生成部と、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、前記必要イベントデータに含まれるイベントを選択する選択部と、
選択したイベントが前記パターンデータの示す発生パターンに一致するかを検出して、検出結果を出力する検出部と
を備える情報処理装置。
【請求項１４】
情報システム内に設けられ、他の情報処理装置との間でイベントを相互に転送して、システム内においてイベントが予め定められた発生パターンで発生したかを検出する情報処理装置であって、
当該情報処理装置で検出するべき前記発生パターンの何れかに含まれるイベントの集合を示す必要イベントデータを記憶している記憶装置と、
隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを受信する要求受信部と、
受信した前記要求イベントデータに、前記記憶装置から読み出した前記必要イベントデータを組み合わせて、当該情報処理装置の要求イベントデータを生成し、隣接する更に他の情報処理装置に送信する要求送信部と、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、隣接する他の情報処理装置から受信した前記要求イベントデータに含まれるイベントを、当該隣接する他の情報処理装置に転送する転送部と
を備える情報処理装置。
【請求項１５】
情報システムにおいてイベントが予め定められた発生パターンで発生したかを、当該情報システム内の情報処理装置が検出する方法であって、
当該情報処理装置は、当該情報処理装置において検出するべき前記発生パターンを示すパターンデータを少なくとも１つ記憶している記憶装置を有し、
前記記憶装置から読み出した前記パターンデータに基づいて、前記発生パターンにおいて検出されるべきイベントの集合を特定し、特定したイベントの集合を示す必要イベントデータを生成するステップと、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、前記必要イベントデータに含まれるイベントを選択するステップと、
選択したイベントが前記パターンデータの示す発生パターンに一致するかを検出して、検出結果を出力するステップと
を備える方法。
【請求項１６】
情報システムにおいて、前記情報システムに設けられた情報処理装置により他の情報処理装置との間でイベントを相互に転送させて、システム内においてイベントが予め定められた発生パターンで発生したかを検出させる方法であって、
当該情報処理装置は、当該情報処理装置で検出するべきイベントの発生パターンの何れかに含まれるイベントの集合を示す必要イベントデータを記憶している記憶装置を有し、
隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを受信するステップと、
受信した前記要求イベントデータに、前記記憶装置から読み出した前記必要イベントデータを組み合わせて、当該情報処理装置の要求イベントデータを生成し、隣接する更に他の情報処理装置に送信するステップと、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、隣接する他の情報処理装置から受信した前記要求イベントデータに含まれるイベントを、当該隣接する他の情報処理装置に転送するステップと
を有する方法。
【請求項１７】
情報システム内に設けられた情報処理装置に、当該情報システムにおいてイベントが予め定められた発生パターンで発生したかを検出させるプログラムであって、
当該情報処理装置は、当該情報処理装置において検出するべき前記発生パターンを示すパターンデータを少なくとも１つ記憶している記憶装置を有し、
当該情報処理装置を、
前記記憶装置から読み出した前記パターンデータに基づいて、前記発生パターンにおいて検出されるべきイベントの集合を特定し、特定したイベントの集合を示す必要イベントデータを生成する生成部と、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、前記必要イベントデータに含まれるイベントを選択する選択部と、
選択したイベントが前記パターンデータの示す発生パターンに一致するかを検出して、検出結果を出力する検出部と
して機能させるプログラム。
【請求項１８】
情報システム内に設けられた情報処理装置に、他の情報処理装置との間でイベントを相互に転送させて、システム内においてイベントが予め定められた発生パターンで発生したかを検出させるプログラムであって、
当該情報処理装置は、当該情報処理装置で検出するべきイベントの発生パターンの何れかに含まれるイベントの集合を示す必要イベントデータを記憶している記憶装置を有し、
当該情報処理装置を、
隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを受信する要求受信部と、
受信した前記要求イベントデータに、前記記憶装置から読み出した前記必要イベントデータを組み合わせて、当該情報処理装置の要求イベントデータを生成し、隣接する更に他の情報処理装置に送信する要求送信部と、
当該情報処理装置で発生したイベント、および、通信インターフェイスを介して他の情報処理装置から転送を受けたイベントのうち、隣接する他の情報処理装置から受信した前記要求イベントデータに含まれるイベントを、当該隣接する他の情報処理装置に転送する転送部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報システムに発生したイベントを検出する技術に関する。特に、本発明は、イベントが予め定められた発生パターンで発生したかを検出する技術に関する。
【背景技術】
【０００２】
コンピュータ・システムには、動作障害や性能障害などの問題が発生する場合のみならず、障害とまではいえないが、コンピュータ・システムの設定がその用途に合致していないため設定変更をした方がよい場合がある。このような問題や設定変更の必要が生じることは症状（シンプトン・Ｓｙｍｐｔｏｍ）と呼ばれており、症状の検出と対処によってコンピュータ・システムを効率的かつ安全に管理できる。しかしながら、近年、コンピュータ・システムは複雑化しており、症状が発生した場合にそれを検出・対処するのは容易でない。これに対し、コンピュータに生じた症状をコンピュータ自体が検出して対処する技術が提案されている（非特許文献１を参照。）。
【非特許文献１】オートノミック・コンピューティング・アーキテクチャーに関するブループリント、ホームページＵＲＬ「http://www-06.ibm.com/jp/autonomic/pdf/2006_AC_Blueprint_2006_06.pdf」、２００７年６月５日検索
【発明の開示】
【発明が解決しようとする課題】
【０００３】
オートノミック・コンピューティングにおいて、症状を検出・対処する仕組みは、オートノミック・マネージャと呼ばれ、分析、計画および実行の各機能から構成される（非特許文献１の第１０−１１ページを参照。）。そして、オートノミック・マネージャに新たな機能を追加して、例えば新たな症状を検出可能とするためには、知識ベースが用いられる（非特許文献１の第１２ページを参照。）。このため、この仕組みを適切に機能させるためには、まず、分析に必要なイベントの情報を充分に収集でき、次に、計画および実行の実現のために充分な演算処理能力を利用でき、さらには、知識ベースを蓄積するための充分な記憶領域を有することが望ましい。
【０００４】
一方、近年、携帯電話やＰＤＡ、家電製品などのデバイスにもコンピュータとしての諸機能が搭載されるようになってきている。しかしながら、これらのデバイスには充分な演算処理能力や記憶領域が備わっておらず、これらのデバイスでオートノミック・マネージャを適切に動作させるのは難しい。また、デバイス単体の動作から特定の症状の発生を判定するのは難しく、そのデバイスと通信するサーバ装置を含む複合的な要因が特定の症状を引き起こす場合もある。したがって、例え演算処理能力が充分でも各デバイスでオートノミック・マネージャを動作させるのは適切でない場合がある。
【０００５】
一方、このようなデバイスは近年爆発的に普及しているため、各デバイスにおいて発生した症状をサーバ装置が集中的に管理しようとしても、サーバ装置の処理能力が不足するおそれがある。また、これらのデバイスは通信状態が不安定な場合も多く、サーバ装置が各デバイスの状態を収集しようとしても適切に収集できないおそれがある。また、デバイスがサーバ装置に対し症状の検出・対処を依頼する仕組みとすれば、デバイスがそれ自体で症状の検出・対処を行う場合と比べて、通信処理の分だけ処理に時間がかかってしまい、操作性や利便性の低下を引き起こすおそれがある。
【０００６】
そこで本発明は、上記の課題を解決することのできるシステム、情報処理装置、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の第１の側面においては、複数の情報処理装置を備え、前記複数の情報処理装置においてイベントが予め定められた発生パターンで発生したかを検出するシステムであって、前記複数の情報処理装置のそれぞれが、当該情報処理装置において検出するべきイベントの発生パターンを示すパターンデータを少なくとも１つ記憶している記憶装置と、前記記憶装置から読み出した前記パターンデータに基づいて、前記発生パターンにおいて検出されるべきイベントの集合を特定し、特定したイベントの集合を示す必要イベントデータを生成する生成部と、当該情報処理装置で発生したイベント、および、他の情報処理装置から転送を受けたイベントのうち、前記必要イベントデータに含まれるイベントを選択する選択部と、選択したイベントが前記パターンデータの示す発生パターンに一致するかを検出して、検出結果を出力する検出部とを有するシステムを提供する。また、当該システムに設けられた情報処理装置、当該情報処理装置によりイベントを検出させる方法、および、当該情報処理装置によりイベントを検出させるプログラムを提供する。
【０００８】
また、本発明の第２の側面においては、複数の情報処理装置を備え、イベントが予め定められた発生パターンで発生したかを検出するために、前記複数の情報処理装置によりイベントを相互に転送するシステムであって、それぞれの情報処理装置が、当該情報処理装置で検出するべきイベントの発生パターンの何れかに含まれるイベントの集合を示す必要イベントデータを記憶している記憶装置と、隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを受信する要求受信部と、受信した前記要求イベントデータに、前記記憶装置から読み出した前記必要イベントデータを組み合わせて、当該情報処理装置の要求イベントデータを生成し、隣接する更に他の情報処理装置に送信する要求送信部と、当該情報処理装置で発生したイベント、および、他の情報処理装置から転送を受けたイベントのうち、隣接する他の情報処理装置から受信した前記要求イベントデータに含まれるイベントを、当該隣接する他の情報処理装置に転送する転送部とを有するシステムを提供する。また、当該システムに設けられた情報処理装置、当該情報処理装置によりイベントを転送させる方法、および、当該情報処理装置によりイベントを転送させるプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００９】
以下、発明を実施するための最良の形態（以下、実施の形態と称す）を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、本実施の形態に係る情報システム１０の全体構成の概要を示す。情報システム１０は、複数の情報処理装置、例えば、情報処理装置１００Ａと、情報処理装置１００Ｂと、情報処理装置１００Ｃと、情報処理装置１００Ｄと、情報処理装置１００Ｅとを備える。情報処理装置１００Ａ−Ｅのそれぞれは、例えば、パーソナルコンピュータ、サーバ装置、または、ホストコンピュータなどの汎用の装置である。これに代えて、情報処理装置１００Ａ−Ｅのそれぞれは、プリンタ・スキャナなどの入出力装置、ネットワークスイッチ、および、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）などの特定目的の機器であってもよい。さらに、情報処理装置１００Ａ−Ｅのそれぞれは、携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、カーナビゲーション・システム、または、オーディオプレーヤーなどの携帯型または移動体に設けられた機器であってもよい。また、情報処理装置１００Ａ−Ｅのそれぞれは、ビデオカメラなどの電化製品であってもよい。
【００１１】
情報処理装置１００Ａ−Ｅのそれぞれは、ハードウェアの基本構成として、記憶装置、通信インターフェイス、および、ＣＰＵを備える。そして、情報処理装置１００Ａ−Ｅのそれぞれは、備えているＣＰＵの処理により、少なくとも１つのアプリケーション・プログラムおよびオートノミック・マネージャを動作させている。情報処理装置１００Ａに備えられる記憶装置を記憶装置１０４Ａとし、通信インターフェイスを通信インターフェイス１０６Ａとし、情報処理装置１００Ａで動作するアプリケーション・プログラムをアプリケーション・プログラム１０８Ａとし、オートノミック・マネージャをオートノミック・マネージャ１０２Ａとする。情報処理装置１００Ｂ−Ｅのそれぞれについても同様に、各ハードウェア／ソフトウェア・コンポーネントを示す符号には、そのコンポーネントを備える情報処理装置の符号に付加された添え字Ｂ−Ｅを付加して示す。
【００１２】
また、情報処理装置１００Ａは、情報処理装置１００Ｃおよび情報処理装置１００Ｄのそれぞれに直接接続しているが、情報処理装置１００Ｂおよび情報処理装置１００Ｅには直接接続していない。情報処理装置１００Ｂは、情報処理装置１００Ｄおよび情報処理装置１００Ｅのそれぞれに直接接続しているが、情報処理装置１００Ａおよび情報処理装置１００Ｃには直接接続していない。情報処理装置１００Ｄは、情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置１００Ｃおよび情報処理装置１００Ｅのそれぞれと直接接続している。ここでいう接続とは、有線もしくは無線、または、これらの組合せにより実現されてもよい。また、接続とは、必ずしも物理的な通信経路の確立を意味せず、実際にはブロードキャスト型のネットワークを媒介とした、論理的な通信経路を意味してもよい。情報処理装置１００Ａ−Ｅが備える通信インターフェイス１０６Ａ−Ｅは、これらの物理的な又は論理的な通信経路により相互に通信する。なお、情報処理装置がグラフ状に接続されていることから、以降の説明においては、情報処理装置のことをグラフのノードに見立てて「ノード」として参照する場合がある。
【００１３】
以上の各情報処理装置は略同一に動作するので、以下、これらを代表して情報処理装置１００Ｃについて更に詳しく説明する。情報処理装置１００Ｃは、オートノミック・マネージャ１０２Ｃと、記憶装置１０４Ｃと、通信インターフェイス１０６Ｃと、アプリケーション・プログラム１０８Ｃとを有する。オートノミック・マネージャ１０２Ｃは、情報システム１０においてイベントが予め定められた発生パターンで発生したかを検出する。これを実現するために、まず、記憶装置１０４Ｃは、検出するべき発生パターンを示すパターンデータを記憶している。そして、オートノミック・マネージャ１０２Ｃは、アプリケーション・プログラム１０８Ｃにおいて発生したイベントをアプリケーション・プログラム１０８Ｃから取得し、または、他の情報処理装置において発生したイベントを通信インターフェイス１０６Ｃを介して取得する。そして、オートノミック・マネージャ１０２Ｃは、取得したイベントの発生パターンが、記憶装置１０４Ｃに記憶しているパターンデータと一致するかを判断する。
【００１４】
一致していれば、オートノミック・マネージャ１０２Ｃは、情報システム１０に所定の症状が表れたものとして利用者に通知し、あるいは、予め定められた内容の設定変更を行う。オートノミック・マネージャ１０２Ａ−Ｂ、Ｄ−Ｅのそれぞれもオートノミック・マネージャ１０２Ｃと同様に、イベント発生の検出とその対応を独自に行う。但し、記憶装置１０４Ａ−Ｅのそれぞれは、他の装置とは異なるパターンデータを記憶してもよく、望ましくは、それを備える情報処理装置における検出に適した発生パターンのみを記憶している。これにより、情報処理装置１００Ａ−Ｅにおいて検出される発生パターンを互いに異ならせて、パターン検出の処理全体を複数の装置に分散させることができる。
【００１５】
本実施の形態に係る情報システム１０は、このようにイベントのパターン検出を分散して処理する構成において、情報システム１０の各箇所で発生したイベントを、それを検出対象とする情報処理装置に対し適切にかつ効率的に転送することを目的とする。
【００１６】
図２は、本実施の形態に係るオートノミック・マネージャ１０２Ｃの機能構成を、記憶装置１０４Ｃのデータ構造と対応させて示す図である。オートノミック・マネージャ１０２Ｃは、イベントハンドラ部と、コリレーション部と、対策実行部２８５と、生成部２３０と、要求受信部２９０と、要求送信部２９５とを備える。また、記憶装置１０４Ｃは、シンプトン記憶部２００と、イベント記憶部２１０と、ノード情報記憶部２２０とを有する。シンプトン記憶部２００は、情報処理装置１００Ｃにおいて検出するべきイベントの発生パターンを示すパターンデータを少なくとも１つ記憶している。パターンデータは、例えば、複数のタスクを含む。これら複数のタスクのそれぞれは、イベントがその発生パターンで発生したことを判定するための複数の条件のそれぞれが満たされたかどうかをそれぞれ判定する。このほかに、シンプトン記憶部２００は、イベントが当該発生パターンで発生した場合に実行する処理である対策処理などを記憶している。このようなパターンデータおよび対策処理などの組をシンプトンデータと呼び、後に図６ａ−ｂを参照して具体的に説明する。
【００１７】
イベント記憶部２１０は、アプリケーション・プログラム１０８Ｃで発生したイベント、および、外部から取得したイベントを記憶するために記憶装置１０４Ｃ内に設けられた記憶領域である。ノード情報記憶部２２０は、情報処理装置１００Ｃ自体による検出に必要なイベント、および、他の情報処理装置で必要なため当該他の情報処理装置が転送を要求するイベントの集合を記憶している。これらの具体例についても後に図４−５を参照して説明する。生成部２３０は、シンプトン記憶部２００からパターンデータを読み出して、そのパターンデータが示す発生パターンにおいて検出されるべきイベントの集合を特定する。（なお、以降の説明において、ある発生パターンにおいて検出されるべきイベントのことを、その発生パターンに含まれるイベントとも呼ぶ。）そして、生成部２３０は、特定したイベントの集合を示す必要イベントデータを生成し、ノード情報記憶部２２０に格納する。
【００１８】
これに加えて、生成部２３０は、情報処理装置１００Ｃの処理能力および処理負荷に基づいて、当該情報処理装置１００Ｃにおいて検出可能なイベントの発生パターンを特定してもよい。この場合、生成部２３０は、特定した何れかの発生パターンに含まれるイベントの集合を示す検出可能イベントデータを生成して、ノード情報記憶部２２０に格納する。さらにこの場合、生成部２３０は、情報処理装置１００Ｃの処理能力および処理負荷の変化に基づいて、生成したこの検出可能イベントデータを更新してもよい。生成部２３０は、この検出可能イベントデータの更新に応じて、更新したこの検出可能イベントデータを、隣接する他の情報処理装置１００に送信して、当該隣接する他の情報処理装置１００において必要イベントデータを更新させる。
【００１９】
イベントハンドラ部は、情報処理装置１００Ｃ（即ちアプリケーション・プログラム１０８Ｃ）で発生したイベント、および、他の情報処理装置から転送を受けたイベントを、当該情報処理装置１００Ｃで処理対象とするか、あるいは、他の装置に転送して他の装置において処理対象とするかを判断する。具体的には、イベントハンドラ部は、選択部２４０および転送部２５０を有する。選択部２４０は、情報処理装置１００Ｃ（即ちアプリケーション・プログラム１０８Ｃ）で発生したイベント、および、他の情報処理装置から転送を受けたイベントを取得する。望ましくは、選択部２４０は、情報処理装置１００Ｃに隣接する（即ち、他の情報処理装置を介在させずに直接接続する）情報処理装置からのみイベントを取得する。例えば本実施の形態において、情報処理装置１００Ｃは情報処理装置１００Ａまたは情報処理装置１００Ｄからイベントを取得する。取得したイベントを示すデータをイベントデータ３０とする。
【００２０】
そして、選択部２４０は、発生／取得したこれらのイベントのうち、生成部２３０により生成された必要イベントデータまたは検出可能イベントデータに含まれるイベントを選択する。そして、選択部２４０は、選択したイベントをイベント記憶部２１０に格納すると共に処理判断部２６０に通知する。なお、選択部２４０は、イベント記憶部２１０の空き容量が予め定められたサイズ以上であることを条件に、必要／検出可能イベントデータに含まれないイベントであってもイベント記憶部２１０に格納してもよい。
【００２１】
転送部２５０は、この必要イベントデータおよびこの検出可能イベントデータの何れにも含まれないイベントを、他の情報処理装置、例えば、情報処理装置１００Ａまたは情報処理装置１００Ｄに転送する。これに代えて、または、これに加えて、転送部２５０は、発生したイベントが必要イベントデータ等に含まれるかどうかに関わらず、発生したイベントが他の情報処理装置に対応する要求イベントデータに含まれていれば、そのイベントを選択して当該他の情報処理装置に転送してよい。
【００２２】
コリレーション部は、選択されたイベントに基づいて、そのイベントを含むイベントの発生パターンが予め定められたパターンに一致するかを判断して、判断結果を出力する。詳細には、この一致の判断は、完全一致のみならず、新たに発生したイベントのパターンをイベントの発生履歴と比較した相関の大きさなどに基づく。この判断の技術は、例えば、ＡＣＴ（Ａｃｔｉｖｅ  Ｃｏｒｒｅｌａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）として知られている。このほかに、コリレーション部は、このパターンの検出の処理を、他の情報処理装置と協働して実現する機能を有する。具体的には、コリレーション部は、処理判断部２６０と、処理実行部２７０と、検出部２８０とを有する。
【００２３】
処理判断部２６０は、選択部２４０からイベント発生の通知を受けて、発生したイベントを含む発生パターンをシンプトン記憶部２００から検索し、検索した当該発生パターンに対応する複数のタスクをシンプトン記憶部２００から読み出す。そして、処理判断部２６０は、読み出したそれぞれのタスクを何れの情報処理装置で処理させるか判断する。この判断は、予め各タスクに対応付けてそのタスクをどの装置で処理させるかを記憶したデータに基づいてもよいし、タスクの処理に必要なイベントについての転送記録に基づいてもよい。
【００２４】
処理実行部２７０は、情報処理装置１００Ｃで処理すると判断したタスクを処理する。また、処理実行部２７０は、他の情報処理装置に処理させると判断したタスクを当該他の情報処理装置に指示して処理させる。検出部２８０は、選択部２４０から通知されたイベントが、パターンデータの示す発生パターンに一致するかを検出して、検出結果を出力する。この検出の処理は、各タスクが判定した各条件が充足するかを判定することにより実現される。このため、検出部２８０は、処理実行部２７０の処理結果の他、他の情報処理装置に処理させたタスクの処理結果に基づき検出の可否を判断する。そして、対策実行部２８５は、イベントがその発生パターンで発生したことを条件に、そのパターンデータに対応付けてシンプトン記憶部２００に記憶される対策処理を読み出して、それを実行する。対策処理は、例えば、アプリケーション・プログラム１０８Ｃの設定変更などである。
【００２５】
要求受信部２９０および要求送信部２９５は、必要イベントデータを配信する役割を果たす。具体的には以下の通りである。要求受信部２９０は、隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを受信する。そして、要求送信部２９５は、受信したその要求イベントデータに、ノード情報記憶部２２０から読み出した当該情報処理装置１００Ｃの必要イベントデータ、および、検出可能イベントデータを組み合わせて、当該情報処理装置１００Ｃの要求イベントデータを生成する。この要求イベントデータは、即ち、情報処理装置１００Ｃが、隣接する他の情報処理装置に対して転送を要求するイベントの集合を示す。そして、要求送信部２９５は、その要求イベントデータを、隣接する他の情報処理装置に送信する。送信先からは、元の要求イベントデータの送信元は除外される。即ち例えば情報処理装置１００Ｃは要求イベントデータを情報処理装置１００Ａから受信した場合にはそれを情報処理装置１００Ｄに転送する。
【００２６】
図３ａは、本実施の形態に係るイベントデータ３０のデータ構造の一例を示す。図３ｂは、本実施の形態に係るイベント本体部３００の具体例を示す。イベントデータ３０は、イベント本体部３００と、転送経路情報３３０とを含む。イベント本体部３００は、例えば、図３ｂに例示するように、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）などで記述された構造化データであり、一例としては、ＷＳＤＭ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｍａｎａｇｅｍｅｎｔ）のＥｖｅｎｔ  Ｆｏｒｍａｔに準拠している。また、転送経路情報３３０は、当該イベントの発生元および転送経路の情報処理装置の識別情報を含んでいる。選択部２４０は、イベントを転送しようとする場合にこの転送経路の情報を参照することで、既に当該イベントを受け取った装置をイベントの転送先から除外できる。
【００２７】
イベント本体部３００は、イベントＩＤ３０５と、イベント発生元３１０と、イベント内容３２０とを少なくとも含む。イベントＩＤ３０５は、図３ｂの３行目に示すように、イベントの識別情報を示すタグに対応付けて記録される。また、イベント発生元３１０は、４−９行目に示すように、イベント発生元の装置のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）およびその装置の名称などを含む。また、イベント内容３２０は、１０−２１行目に示すように、イベントの詳細な内容やイベント発生時の状況を含む。この図の例では、１７行目に示すように、プリンタが用紙切れになったことが記録されている。このように、イベントとは、ハードウェアやソフトウェアのコンポーネントがその動作状況を知らせるために出力する情報のことをいう。なお、当該技術分野ではよくあることだが、本実施の形態において、イベントという用語は、その動作状況そのものを指すだけでなく、その動作状況を記したデータという意味としても用いる。
【００２８】
図４は、本実施の形態に係るイベント記憶部２１０のデータ構造の一例を示す。イベント記憶部２１０は、イベントの識別情報と、イベントと、そのイベントが他の装置から転送されたものである場合にはその転送元の情報処理装置の識別情報と、そのイベントを削除したかどうかを示すフラグと、そのイベントを転送した転送先の情報処理装置の識別情報とを対応付けて記憶している。例えば、イベント１２３４（識別情報が１２３４のイベントのことをいう、以下同様）は、情報処理装置１００Ｅにおいて６：００時に発生し、その内容にはそのイベント１２３４のプライオリティが０であることが含まれている。そして、そのイベント１２３４は情報処理装置１００Ｄから転送を受けたものであるので、転送部２５０はそのイベント１２３４に対応付けて情報処理装置１００Ｄの識別情報を記憶している。また、転送部２５０はそのイベント１２３４を削除も転送もしていないので、イベント記憶部２１０は、削除済フラグも転送先の識別情報も記憶していない。
【００２９】
一方で、転送部２５０は、イベント記憶部２１０から削除したイベントについては、そのイベントの識別情報を当該イベントの転送先の情報処理装置に対応付けて記憶している。具体的には、イベント記憶部２１０は、イベント２３４５の内容は削除して、その代わりに、削除済フラグをセットし、かつ、転送先の情報処理装置の識別情報を記憶している。この場合であっても、転送部２５０は、イベントの発生元や発生時刻などの、そのイベントのカテゴリを識別するために最低限必要な情報は削除せずに記憶しつつけてもよい。他の例として、転送部２５０は、イベントを削除したかどうかに関わらず、イベントを転送してもよい。この場合には、例えばイベント３４５６のように、削除済みフラグはリセットされたままだが、転送先の識別情報はイベント記憶部２１０に記憶される。
【００３０】
図５は、本実施の形態に係るノード情報記憶部２２０のデータ構造の一例を示す。ノード情報記憶部２２０は、当該情報処理装置１００Ｃに隣接する他の情報処理装置ごとに、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを記憶している。具体的には、情報処理装置１００Ａの要求イベントデータは、１２３４、２３４５などであり、情報処理装置１００Ｄの要求イベントデータは、５６７８、６７８９などである。これを参照すれば、転送部２５０はイベントを適切な装置に転送できる。例えば、情報処理装置１００Ｃがイベント１２３４を取得した場合には、転送部２５０はこのイベントを情報処理装置１００Ａに転送し、イベント５６７８を取得した場合には、転送部２５０はこのイベントを情報処理装置１００Ｄに転送できる。
【００３１】
隣接するある他の情報処理装置の要求イベントデータは、当該隣接する他の情報処理装置の必要イベントデータ若しくは検出可能イベントデータに含まれるか、または、当該隣接する他の情報処理装置に隣接する更に他の情報処理装置の要求イベントデータに含まれるイベントの集合を示している。例えば、情報処理装置１００Ｄの要求イベントデータは、情報処理装置１００Ｄの必要イベントデータのみならず、情報処理装置１００Ｂや情報処理装置１００Ｅの必要イベントデータも含む。要求イベントデータをこのように構成させることで、隣接する情報処理装置を順次経由した適切な経路によって、結果としてイベントを必要とする情報処理装置に適切にそのイベントを到達させることができる。要求イベントデータを各装置に伝播させる技術については、図９ａ−ｂおよび図１０を参照して後に説明する。
【００３２】
また、ノード情報記憶部２２０は、当該情報処理装置１００Ｃ自体の必要イベントデータおよび検出可能イベントデータを更に記憶している。必要イベントデータは、上述のように、当該情報処理装置１００Ｃで行う発生パターンの検出に必要なイベントの集合であるため、当該情報処理装置１００Ｃが興味を持つイベントの集合という意味でインタレスト（Ｉｎｔｅｒｅｓｔ）データとも呼ぶ。なお、必要イベントデータは、これに関わらず、当該情報処理装置１００Ｃの管理者のポリシーに従って任意に定められてもよい。また、検出可能イベントデータは、上述のように、当該情報処理装置１００Ｃの処理能力等の観点から検出可能なイベントの集合であるため、ケイパビリティ（Ｃａｐａｂｉｌｉｔｙ）データとも呼ぶ。このように各種データがノード情報記憶部２２０に記憶されているので、選択部２４０は、ノード情報記憶部２２０を参照して、イベント記憶部２１０に格納するべきイベントを適切に判断することができる。
【００３３】
図６ａは、本実施の形態に係るシンプトン記憶部２００のデータ構造の一例を示す。シンプトン記憶部２００は、検出するべきイベントの発生パターンごとにシンプトンデータを記憶している。具体的には、シンプトン記憶部２００はシンプトンデータ６０−１〜Ｎを記憶している。記憶しているシンプトンデータ６０の組合せは、情報処理装置１００ごとに異なっている。情報処理装置１００は、製品として出荷されるときから、あるいは、オートノミック・マネージャ１０２をインストールしたときから、予め所定のシンプトンデータ６０を記憶していてもよいが、以下のように動的にシンプトンデータ６０を取得してもよい。例えば、ある情報処理装置１００（情報処理装置１００Ｃとする）が新たに情報システム１０に接続したときに、情報処理装置１００Ｃは、既に情報システム１０に含まれている他の情報処理装置１００（情報処理装置１００Ｄとする）に対し、シンプトンデータ６０を要求する。この要求には、情報処理装置１００Ｃが設けられている場所や、情報処理装置１００Ｃの所属などの属性情報が対応付けられて送信されてもよい。情報処理装置１００Ｄは、この属性情報に基づいて、情報処理装置１００Ｄのシンプトン記憶部２００が格納しているシンプトンデータ６０の中から選択したシンプトンデータ６０を、情報処理装置１００Ｃに返信する。
【００３４】
次に、これらのシンプトンデータ６０−１〜Ｎを代表してシンプトンデータ６０−１について説明する。シンプトンデータ６０−１は、パターンデータ６００と、シンプトン詳細データ６１０と、対策処理データ６２０とを含む。パターンデータ６００は、情報処理装置１００Ｃにおいて検出するべきイベントの発生パターンを示す。具体的には、パターンデータ６００は、複数のタスク（例えばタスク６０５−１〜Ｍ）のそれぞれを、そのタスクを処理させる情報処理装置の識別情報（例えば識別情報６０８−１〜Ｍ）に対応付けて含んでいる。
【００３５】
一例として、タスク６０５−１は、ある条件を判定するタスクであり、その処理をさせる情報処理装置の識別情報である識別情報６０８−１に対応付けられている。一方で、タスク６０５−２のように、その処理をさせる情報処理装置の識別情報が対応付けられていないタスクがあってもよい。また、シンプトン詳細データ６１０は、各タスクにより判定された条件が満たされた場合に、情報システム１０に表れている症状を示す。このシンプトン詳細データ６１０は、当該条件が満たされた場合に出力されてもよいし、何ら処理に用いられなくとも、システム管理者がシンプトンデータ６０−１の保守・点検をする場合に参照可能となっていてもよい。
【００３６】
また、対策処理データ６２０は、イベントが当該発生パターンで発生した場合に実行する処理を示している。ここでは、例えば、「コンポーネントＡの動作優先度を２に設定する」というように、具体的な設定作業の詳細が記録されている。対策処理データ６２０は、このような具体的な設定作業の他、「発生したイベントに関する情報を表示する」というように、利用者に対し注意を喚起する処理を示してもよい。なお、本実施の形態では説明のために設定処理の内容を自然言語で示したが、実際には、対策処理データ６２０には、そのような設定をするための具体的なコマンド（例えば呼び出すべきメソッド）やそのパラメータが含まれてよい。さらに、シンプトン記憶部２００は、対策処理データ６２０に対応付けて、その対策処理を実行する情報処理装置の識別情報を示す識別情報６２２を記憶していてもよい。これにより、全タスクの実行を終えた情報処理装置は、その後の対策処理をどこで実行させるかを判別できる。
【００３７】
図６ｂは、タスク６０５−１〜２の具体例を示す。これらのタスクも、例えば、ＸＭＬなどの言語によって構造化されたデータであってもよい。タスク６０５−１は、部分式６３０および出力定義６４０を含む。部分式６３０が判定処理の実体を示す。例えば、部分式６３０は、複数のイベントのそれぞれについて、発生したイベントのＩＤや属性が所定の値であるかどうか判定し、その判定結果を示す論理値を、論理積演算または論理和演算して評価値を算出することを示している。出力定義６４０は、評価値とは別に、他のタスクへ出力するべき数値の演算方法を示している。
【００３８】
タスク６０５−２は、部分式６５０を含む。部分式６５０も、部分式６３０と同様に、複数のイベントの各々について、そのＩＤや属性を判定して、その判定結果に基づいて論理式を評価している。また、部分式６５０は、その過程で、出力定義６４０において算出された出力値を参照すべきことを示している。
各タスクが判定する条件は、このような各イベントのＩＤや属性に基づくものに限られない。例えばこのほかに、各タスクは、あるイベントの発生回数、複数のイベントが発生した順序、ある組合せのイベントが所定の期間内に発生したかどうか、もしくは、あるイベントが発生しなかったか、または、これらの組合せに基づく判定を行ってよい。
【００３９】
図７ａは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、イベントの発生に応じて行う処理のフローチャートを示す。図７ｂは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、イベントの発生に応じて行う処理において、送受信するデータの一例を示す。選択部２４０および転送部２５０は、情報システム１０において発生したイベントを受信する（Ｓ７００）。転送部２５０は、そのイベントをアプリケーション・プログラム１０８Ｃから受信した場合には、そのイベントに対応付けてそのイベントの転送経路を示す情報を生成する。その情報には、初期値として、イベントが発生した情報処理装置である情報処理装置１００Ｃの識別情報が記録される。一方で、転送部２５０は、情報処理装置１００Ａまたは情報処理装置１００Ｄなどの他の情報処理装置からそのイベントの転送を受けた場合には、そのイベントに対応付けてさらに、そのイベントの転送経路を示す情報を受信する。例えば、図７ｂに示すように、転送部２５０は、イベント１２３４に対応付けて、そのイベントの転送経路にある情報処理装置１００Ｄの識別情報を受信する。
【００４０】
次に、選択部２４０は、受信したそのイベントが、当該情報処理装置１００Ｃの必要イベントデータまたは検出可能イベントデータに含まれるかどうかを判断する（Ｓ７１０）。含まれることを条件に、選択部２４０は、そのイベントを格納可能か、例えば、そのイベントを格納するための充分な空き容量が記憶装置１０４Ｃにあるかを判断する（Ｓ７２０）。格納可能であれば（Ｓ７２０：ＹＥＳ）、選択部２４０は、そのイベントを、イベントのパターン検出の対象として選択して、イベント記憶部２１０に格納する（Ｓ７３０）。一例として図７ｂに示すように、受信したイベント１２３４は、情報処理装置１００Ｃの必要イベントデータに含まれるので、イベント記憶部２１０に格納される。格納の結果としてイベント記憶部２１０の空き容量が少なくなった場合には、選択部２４０は、イベント記憶部２１０に格納された他のイベントを削除してもよい。
【００４１】
そして、検出部２８０は、シンプトン記憶部２００からパターンデータを読み出し、イベント記憶部２１０に格納されたイベントに基づいて、発生したイベントがそのパターンデータに一致するかを検出する（Ｓ７３５）。例えば、検出部２８０自体が処理判断部２６０および処理実行部２７０と協働してその検出を行ってもよいし、処理実行部２７０の働きにより他の情報処理装置にその検出の少なくとも一部を実行させてもよい。検出処理を行う装置は静的に決定付けられている場合と動的に決定される場合とがある。静的に決定付けられている場合とは、シンプトンデータ６０においてタスク６０５が識別情報６０８に対応付けられている場合である。この場合、検出部２８０は、そのタスク６０５をその識別情報６０８により識別される情報処理装置に指示して実行させる。
【００４２】
動的に決定される場合とは、タスク６０５が識別情報６０８に対応付けられていない場合である。この場合、処理実行部２７０は、まず、自らそのタスク６０５の実行を試みる。しかしながら、そのタスクの判定処理に用いられるイベントがイベント記憶部２１０に格納されておらず、処理実行部２７０によってはそのタスクを実行できない場合がある。この場合、処理実行部２７０は、そのイベントの識別情報がイベント記憶部２１０に記憶されており、かつ、その識別情報に対応付けて、そのイベントを転送先の情報処理装置の識別情報が記憶されているかを判断する。記憶されていれば、処理実行部２７０は、その転送先の情報処理装置の検出部に、当該発生パターンの検出処理を指示する。
【００４３】
この場合、処理実行部２７０は、検出処理の指示に、検出するべき発生パターンについてのシンプトンデータを対応付けて、その転送先の情報処理装置に送信してもよい。これにより、検出処理の指示を受けた情報処理装置は、予め当該情報処理装置で検出するべきことが定められている発生パターンでなくとも、その発生パターンを適切に検出することができる。
このようにして実行された検出処理の結果は利用者に対し出力されてもよい。また、対策実行部２８５は、この検出結果に基づいて更に対策処理を実行してもよい。
【００４４】
検出処理（Ｓ７３５）の後に、または、イベントをイベント記憶部２１０に格納不能な場合には（Ｓ７２０：ＮＯ）、転送部２５０は、受信したイベントが、隣接する他の情報処理装置に対応する要求イベントデータに含まれるかどうかを判断する（Ｓ７４０、Ｓ７７０）。含まれる場合には（Ｓ７４０：ＹＥＳ、Ｓ７７０：ＹＥＳ）、転送部２５０は、そのようなイベントを選択して、当該隣接する他の情報処理装置に転送する（Ｓ７５０）。但し、イベントに対応付けて受け取った転送経路の情報に、当該転送先の情報処理装置の識別情報が含まれないことが条件となる。例えば、図７ｂに示すように、転送部２５０は、受信した転送経路には情報処理装置１００Ｄの識別情報が含まれるので、隣接する情報処理装置のうち情報処理装置１００Ｄにはそのイベントを転送せず、情報処理装置１００Ａやその他の隣接する情報処理装置にのみそのイベントを転送する。
【００４５】
そしてこの場合には、転送部２５０は、当該情報処理装置１００Ｃの識別情報を転送経路の情報に追加して、転送するそのイベントに対応付けて送信する。例えば図７ｂに示すように、イベントに対応付けられた経路情報には、情報処理装置１００Ｄの識別情報に加えて情報処理装置１００Ｃの識別情報が含まれる。情報処理装置１００Ｃが転送先と一時的に通信不能な場合には、転送部２５０は、転送するべきベントを順次バッファリングして、通信可能となった場合にそれらのイベントをまとめて送信してもよい。また、アプリケーション・プログラム１０８Ｃ等の処理を妨げることの無いように、転送部２５０は、情報システム１０のメインテナンス時間などの予め定められた期間内にのみ、バッファリングしたイベントを送信してもよい。
【００４６】
更にこれに加えて、予め各イベントに対応付けられた優先順位が基準値以上のイベントのみを送信することで、通信トラフィックや処理負荷を軽減してもよい。さらに、転送／送信などの用語は、結果としてイベントが転送／送信されることを指すものであり、情報処理装置１００Ｃが他の情報処理装置のデータを送信する具体的な処理を限定的に示すものではない。例えば、情報処理装置１００Ｃがサーバ・クライアントモデルにおけるサーバ側のソフトウェア・コンポーネントを搭載しており、転送先の情報処理装置がクライアント側のソフトウェア・コンポーネントを搭載している場合においては、情報処理装置１００Ｃが転送先の情報処理装置に対し、イベントを取得させるように指示することで、転送を実現してもよい。転送が完了した場合に、転送部２５０は、転送したそのイベントの識別情報に、そのイベントの転送先の情報処理装置の識別情報に対応付けて、イベント記憶部２１０に格納する（Ｓ７６０）。
【００４７】
一方、受信したイベントが、当該情報処理装置１００Ｃで格納不能であり（Ｓ７２０：ＮＯ）、かつ、隣接する何れの情報処理装置に対応する要求イベントデータにも含まれていない場合には（Ｓ７７０：ＮＯ）、転送部２５０は、隣接する何れかの情報処理装置においてそのイベントを格納可能か判断する（Ｓ７８０）。この判断は、転送部２５０が隣接する各情報処理装置に記憶領域の空き容量などを問合せることによって実現されてもよく、一例としては、隣接する他の情報処理装置の検出可能イベントデータを取得することによって実現されてもよい。即ち、検出可能イベントデータは、該当するイベントを検出可能であることを示すものであるところ、それが可能であるならば、少なくとも関連するイベントを格納可能であることを示しているからである。
【００４８】
隣接する何れかの情報処理装置で格納可能であれば（Ｓ７８０：ＹＥＳ）、転送部２５０は、そのイベントをその情報処理装置に転送するステップである７５０に処理を移す。一方、何れの情報処理装置においても格納不能であれば（Ｓ７８０：ＮＯ）、転送部２５０は、そのイベントや以降に発生するためのイベントを格納することができるように、記憶装置１０４Ｃ内でイベント記憶部２１０の占める記憶領域を拡張する処理を行う（Ｓ７９０）。
【００４９】
図８は、Ｓ７３０における処理の詳細を示す。選択部２４０は、イベント記憶部２１０の空き容量が予め定められたサイズ以上かどうかを判断する（Ｓ８００）。予め定められたサイズ以上であることを条件に（Ｓ８００：ＹＥＳ）、選択部２４０は、当該イベントをイベント記憶部２１０に格納する（Ｓ８１０）。一方、転送部２５０は、イベント記憶部２１０の空き容量が予め定められたサイズ未満になったことを条件に（Ｓ８００：ＮＯ）、イベント記憶部２１０を走査して、既に他の装置に送信済みであるが削除されていないイベントを検索する（Ｓ８２０）。
【００５０】
そのようなイベントが検索された場合には（Ｓ８２０：ＹＥＳ）、転送部２５０は、そのイベントをイベント記憶部２１０から削除する（Ｓ８２５）。削除したそのイベントが、他の情報処理装置（情報処理装置１００Ｄとする）から転送を受けてイベント記憶部２１０に格納したものである場合には、転送部２５０は、情報処理装置１００Ｄに対し削除した旨を通知する。当該他の情報処理装置が情報処理装置１００Ｄであることを判別するには、イベント記憶部２１０においてそのイベントに対応付けられた送信元の情報処理装置の識別情報を参照すればよい。これを受けて、当該通知を受けた情報処理装置１００Ｄにおいて、転送部は、転送先である当該情報処理装置１００Ｃに対応付けた当該イベントの識別情報を情報処理装置１００Ｄの記憶装置から削除する。そして、情報処理装置１００Ｃの転送部２５０は、受信した新たなイベントをイベント記憶部２１０に格納する（Ｓ８１０）。そのイベントが他の情報処理装置から転送を受けたものであれば、転送部２５０は、そのイベントに対応付けて当該他の情報処理装置の識別情報を、当該イベントの転送元の情報処理装置を示す情報としてイベント記憶部２１０に格納する。
【００５１】
一方、そのようなイベントが検索されなければ（Ｓ８２０：ＮＯ）、転送部２５０は、イベント記憶部２１０に格納されている何れかのイベントの転送を受け付ける、隣接する他の情報処理装置があるかどうかを判断する（Ｓ８３０）。この判断は、上述の例と同様に、隣接する他の情報処理装置に検出可能イベントデータ等の情報を問合せることにより実現されてよい。転送を受け付ける情報処理装置がある場合には（Ｓ８３０：ＹＥＳ）、転送部２５０は、イベント記憶部２１０から読み出したイベントを当該情報処理装置に転送する（Ｓ８４０）。転送するべきイベントは、第１に、情報処理装置１００Ｃの必要イベントデータまたは検出可能イベントデータに含まれないイベントである。そのようなイベントが無い場合や、そのようなイベントが複数ある場合には、イベントの優先度または発生時刻などに基づいて選択されてよい。そして、転送部２５０は、そのイベントの識別情報に対応付けて、そのイベントが削除される旨のフラグ、および、転送先の情報処理装置の識別情報をイベント記憶部２１０に格納し（Ｓ８５０）、Ｓ８２５に処理を移してイベントを削除する。
【００５２】
一方、転送を受け付ける情報処理装置が無い場合には（Ｓ８３０：ＮＯ）、転送部２５０は、予め定められたポリシーに従って、イベント記憶部２１０に既に格納された何れかのイベントを削除し（Ｓ８６０）、受信したイベントをイベント記憶部２１０に格納する（Ｓ８１０）。
【００５３】
以上、図１から図８までを参照して説明した実施形態によれば、情報システム１０内の各箇所で発生したイベントを、そのイベントを必要とする情報処理装置に対し適切に送り届けることができる。これにより、それぞれの情報処理装置は独立してイベントの発生パターンを検出して、所定の症状が発生したことを判断できる。また、各情報処理装置は隣接する他の情報処理装置において必要とするイベントの集合を記憶しているので、イベントは複数の情報処理装置を経由して適切な経路で転送される。これにより、イベントの転送に当たって経路の検索などの追加的な処理を不要として、情報システム１０全体として処理を効率化できる。
【００５４】
続いて、このようなイベントの効率的な転送を実現するために、各情報処理装置が隣接する他の情報処理装置の要求イベントデータを取得する実現方法について、図９ａ−ｂおよび図１０を参照して説明する。
【００５５】
図９ａは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、シンプトンデータの更新に応じて行う処理のフローチャートを示す。図９ｂは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、シンプトンデータの更新に応じて行う処理において、送受信するデータの一例を示す。生成部２３０は、シンプトン記憶部２００に記憶されたパターンデータ６００が更新される毎に（Ｓ９００：ＹＥＳ）、更新後のそのパターンデータ６００に基づいて、必要イベントデータを生成する（Ｓ９０５）。
【００５６】
また、生成部２３０は、当該情報処理装置１００Ｃの処理能力および処理負荷が変更される毎に（Ｓ９１０：ＹＥＳ）、変更後の処理能力および処理負荷に基づいて検出可能イベントデータを生成する（Ｓ９１５）。処理能力とは、情報処理装置１００Ｃが有するハードウェア・コンポーネントのみならずソフトウェア・コンポーネントにも基づいて定められる。例えば、処理能力とは、ＣＰＵの演算処理能力、記憶装置の記憶容量のほか、オートノミック・マネージャ１０２Ｃに備えられたイベント検出機能を示す。例えば、オートノミック・マネージャ１０２Ｃには、イベント検出エンジンと呼ばれる、検出機能ごとに予め設けられたサブ・コンポーネントを追加することができる。生成部２３０は、このようなサブ・コンポーネントの追加に応じて検出可能イベントデータを更新してよい。
【００５７】
要求受信部２９０は、隣接する他の情報処理装置から、当該隣接する他の情報処理装置が転送を要求するイベントの集合を示す要求イベントデータを更新するべき通知を受信したかどうか判断する（Ｓ９２０）。この通知は、更新後の要求イベントデータそのものであってもよいし、イベントの集合についての更新前後の差分であってもよい。この通知を受信したことを条件に（Ｓ９２０：ＹＥＳ）、要求送信部２９５は、受信したこの通知の示す要求イベントデータに、生成部２３０が生成した必要イベントデータおよび検出可能イベントデータを組合せて、当該情報処理装置１００Ｃの要求イベントデータを生成する（Ｓ９３０）。
【００５８】
具体的には、要求送信部２９５は、隣接する情報処理装置の要求イベントデータ、当該情報処理装置１００Ｃの必要イベントデータ、および、当該情報処理装置１００Ｃの検出可能イベントデータの和集合を算出して、更新後の要求イベントデータとする。例えば図９ｂの例で、要求受信部２９０は、イベント１２３４および２３４５の集合を要求イベントデータとして受信した場合には、その集合と、必要／検出可能イベントデータの集合であるイベント１２３４および３４５６の和集合を計算する。計算される和集合には、イベント１２３４、２３４５および３４５６が含まれる。
【００５９】
そして、要求送信部２９５は、生成したこの要求イベントデータを、隣接する他の情報処理装置に送信して、当該隣接する他の情報処理装置に記憶されている要求イベントデータを更新させる（Ｓ９４０）。但し、Ｓ９２０において受信した更新通知の送信元の情報処理装置は、送信先からは除外される。また、要求送信部２９５は、送信するべき要求イベントデータを順次バッファリングしておき、それらを、所定のタイミングで、例えば定期的に送信してもよい。また、上述のイベント転送の例と同様、要求送信部２９５は、要求イベントデータを取得させる指示を、他の情報処理装置に送信することで、要求イベントデータの送信を実現してもよい。また、要求イベントデータをＳ９３０において生成した結果、生成前の要求イベントデータと同一の場合には、その要求イベントデータは送信しなくてよい。
【００６０】
以上、図９ａｂに説明したように、各情報処理装置は、必要イベントデータ等の更新に応じてその旨を隣接する情報処理装置に通知すると共に、通知を受けた情報処理装置はその通知と自己で必要なイベントとを併合してさらに他の情報処理装置に通知する。これにより、ある情報処理装置で更新された必要イベントデータを、ネットワークを徐々に伝播して他の情報処理装置に浸透させることができる。このように、各情報処理装置が協働してデータを徐々に浸透させることにより、通信トラフィックや処理負荷をネットワークの特定箇所に集中させることを防ぐことができる。
【００６１】
これに代えて、ネットワーク内に処理能力の極めて高いサーバ装置が設けられている場合には、そのサーバ装置によって要求イベントデータを集中的に管理してもよい。その一例を本実施の形態の変形例として図１０に示す。
図１０は、本実施の形態の変形例において、各情報処理装置１００が要求イベントデータを共有する処理の概念図である。集中管理サーバ１５は、情報処理装置１００Ａ−Ｅのそれぞれから、必要イベントデータおよび検出可能イベントデータを収集する。例えば、集中管理サーバ１５は、情報処理装置１００Ａからイベント１２３４を、情報処理装置１００Ｂからイベント４５６７を、情報処理装置１００Ｃからイベント３４５６を、情報処理装置１００Ｄからイベント２３４５を、情報処理装置１００Ｅからイベント５６７８を、それぞれ受信する。集中管理サーバ１５は、受信したそれぞれのイベントの論理和を求め、それを情報処理装置１００Ａ−Ｅのそれぞれに対し、要求イベントデータとして配信する。このような変形例によっても、各情報処理装置１００は、情報システム１０内の何れかのノードでどのイベントが必要とされているかを判別することができる。
【００６２】
図１１は、情報処理装置１００Ｃのハードウェア構成の一例を示す。情報処理装置１００Ｃは、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０（図１の通信インターフェイス１０６Ｃに対応）、ハードディスクドライブ１０４０（図１の記憶装置１０４Ｃに対応）、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００６３】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００６４】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、情報処理装置１００Ｃが使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００６５】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、情報処理装置１００Ｃの起動時にＣＰＵ１０００が実行するブートプログラムや、情報処理装置１００Ｃのハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００６６】
情報処理装置１００Ｃに提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出され情報処理装置１００Ｃにインストールされて実行される。プログラムが情報処理装置１００Ｃ等に働きかけて行わせる動作は、図１から図１０において説明した情報処理装置１００Ｃにおける動作と同一であるから、説明を省略する。
【００６７】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置１００Ｃに提供してもよい。
情報処理装置１００Ａ、情報処理装置１００Ｂ、情報処理装置１００Ｄおよび情報処理装置１００Ｅのそれぞれについても、そのハードウェア構成は情報処理装置１００Ｃと略同一であるから、その説明を省略する。
【００６８】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることのできることが当業者にとって明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６９】
【図１】図１は、本実施の形態に係る情報システム１０の全体構成の概要を示す。
【図２】図２は、本実施の形態に係るオートノミック・マネージャ１０２Ｃの機能構成を、記憶装置１０４Ｃのデータ構造と対応させて示す図である。
【図３ａ】図３ａは、本実施の形態に係るイベントデータ３０のデータ構造の一例を示す。
【図３ｂ】図３ｂは、本実施の形態に係るイベント本体部３００の具体例を示す。
【図４】図４は、本実施の形態に係るイベント記憶部２１０のデータ構造の一例を示す。
【図５】図５は、本実施の形態に係るノード情報記憶部２２０のデータ構造の一例を示す。
【図６ａ】図６ａは、本実施の形態に係るシンプトン記憶部２００のデータ構造の一例を示す。
【図６ｂ】図６ｂは、タスク６０５−１〜２の具体例を示す。
【図７ａ】図７ａは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、イベントの発生に応じて行う処理のフローチャートを示す。
【図７ｂ】図７ｂは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、イベントの発生に応じて行う処理において、送受信するデータの一例を示す。
【図８】図８は、Ｓ７３０における処理の詳細を示す。
【図９ａ】図９ａは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、シンプトンデータの更新に応じて行う処理のフローチャートを示す。
【図９ｂ】図９ｂは、本実施の形態に係るオートノミック・マネージャ１０２Ｃが、シンプトンデータの更新に応じて行う処理において、送受信するデータの一例を示す。
【図１０】図１０は、本実施の形態の変形例において、各情報処理装置１００が要求イベントデータを共有する処理の概念図である。
【図１１】図１１は、情報処理装置１００Ｃのハードウェア構成の一例を示す。
【符号の説明】
【００７０】
１０  情報システム
１５  集中管理サーバ
３０  イベントデータ
６０  シンプトンデータ
１００  情報処理装置
１０２  オートノミック・マネージャ
１０４  記憶装置
１０６  通信インターフェイス
１０８  アプリケーション・プログラム
２００  シンプトン記憶部
２１０  イベント記憶部
２２０  ノード情報記憶部
２３０  生成部
２４０  選択部
２５０  転送部
２６０  処理判断部
２７０  処理実行部
２８０  検出部
２８５  対策実行部
２９０  要求受信部
２９５  要求送信部
３００  イベント本体部
３０５  イベントＩＤ
３１０  イベント発生元
３２０  イベント内容
３３０  転送経路情報
６００  パターンデータ
６０５  タスク
６０８  識別情報
６１０  シンプトン詳細データ
６２０  対策処理データ
６２２  識別情報
６３０  部分式
６４０  出力定義
６５０  部分式
【図１】
0004367962.tif 000002
【図２】
0004367962.tif 000003
【図３ａ】
0004367962.tif 000004
【図３ｂ】
0004367962.tif 000005
【図４】
0004367962.tif 000006
【図５】
0004367962.tif 000007
【図６ａ】
0004367962.tif 000008
【図６ｂ】
0004367962.tif 000009
【図７ａ】
0004367962.tif 000010
【図７ｂ】
0004367962.tif 000011
【図８】
0004367962.tif 000012
【図９ａ】
0004367962.tif 000013
【図９ｂ】
0004367962.tif 000014
【図１０】
0004367962.tif 000015
【図１１】
0004367962.tif 000016