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