(57)【特許請求の範囲】
【請求項１】
複数の装置を含む監視システムであって、
前記複数の装置のうちの第１の装置が、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手段と、
前記生成手段によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に含まれる第２の装置に送信する第１の送信手段とを有し、
前記第２の装置が、
前記第１の装置を送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記第１の装置に送信する第２の送信手段
を有することを特徴とする監視システム。
【請求項２】
前記第１の装置が、
前記第５のデータと前記第３のデータを識別する情報とを受信した場合に、前記第３のデータに示される文字列に、前記第５のデータが示す文字列を挿入する挿入手段
をさらに有することを特徴とする請求項１に記載の監視システム。
【請求項３】
複数の装置と通信可能な装置であって、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手段と、
前記生成手段によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に含まれる第２の装置に送信する第１の送信手段とを有し、
前記複数の装置のいずれかを送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記送信先に送信する第２の送信手段と
を有することを特徴とする装置。
【請求項４】
監視システムが複数の装置を監視する監視方法であって、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成工程と、
前記生成工程によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に送信する第１の送信工程と、
前記複数の装置のいずれかを送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記送信先に送信する第２の送信工程と
を含むことを特徴とする監視方法。
【請求項５】
複数の装置と通信可能なコンピュータに、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手順と、
前記生成手順によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に送信する第１の送信手順と、
前記複数の装置のいずれかを送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記送信先に送信する第２の送信手順と
を実行させることを特徴とする監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、監視システム、装置、監視方法及び監視プログラムに関する。
【背景技術】
【０００２】
従来、装置の異常等に関するメッセージにより監視を行なう監視システムでは、監視対象装置が監視装置に対してメッセージの全文を送信し、メッセージを送信された監視装置が当該メッセージを用いて監視対象装置を監視していた。
【０００３】
また、異常に関するメッセージの別の送信例では、監視対象装置が、以前に伝送されたメッセージを処理済みのメッセージとして、メッセージＩＤを含んで学習テーブルに記憶する。そして、監視対象装置で新たに異常が発生すると、監視対象装置は、学習テーブル内のメッセージＩＤに、異常に関するメッセージと同一メッセージが記憶されているか否かを検査する。そして、監視対象装置は、同一メッセージが記憶されている場合には、新規メッセージと学習テーブルのメッセージとの部分毎の一致性を判断し、不一致部分をメッセージＩＤとともに監視装置に送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２４４６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば特許文献１の監視システムにおいては、新規メッセージの処理済みのメッセージとの同一性の判定は、メッセージＩＤをキーとするため、メッセージＩＤを必須としない監視システムでは、監視対象装置が新規メッセージの全文を監視対象装置に送信することとなる。この結果、ネットワーク負荷が増大してしまう。なお、メッセージＩＤを必須としないような監視システムには、例えば、ＯＳ（Operation  System）をＵＮＩＸ（登録商標）とするオープン系システムがある。
【０００６】
また、従来技術のようにメッセージＩＤを必須とする監視システムにおいて、仮に新規メッセージ及び処理済みのメッセージのほとんどが一致していても、メッセージＩＤが異なる場合には、監視対象装置が、これらのメッセージを同一と判断できない。この結果、メッセージのほとんどが一致している場合にも、監視対象装置は、新規メッセージの全文を監視装置に送信することとなり、ネットワーク負荷が増大してしまう。
【０００７】
開示の技術は、監視システム等において、ネットワーク負荷を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
１つの側面では、複数の装置を含む監視システムであって、前記複数の装置のうちの第１の装置が、前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手段と、前記生成手段によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に含まれる第２の装置に送信する第１の送信手段とを有し、前記第２の装置が、前記第１の装置を送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記第１の装置に送信する第２の送信手段を備える。
【発明の効果】
【０００９】
本願の開示する監視システムの一つの態様によれば、ネットワーク負荷を抑制できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る監視システムの構成を示す機能ブロック図である。
【図２】図２は、実施例２に係る監視システムの構成を示す機能ブロック図である。
【図３】図３は、蓄積データＤＢのデータ構造の一例を示す図である。
【図４】図４は、送信データのデータ構造の一例を示す図である。
【図５】図５は、実施例２に係る監視対象装置の処理手順を示すフローチャートである。
【図６】図６は、実施例２に係る監視装置の処理手順を示すフローチャートである。
【図７】図７は、文字列同士の一致文字数の算出処理の概念を説明する図である。
【図８−１】図８−１は、一致文字数算出の手順を示すフローチャートである。
【図８−２】図８−２は、エディットグラフから線分毎の位置等を取り出す処理手順を示すフローチャートである。
【図８−３】図８−３は、線分間の関係表を生成する処理手順を示すフローチャートである。
【図８−４】図８−４は、線分間の関係表を用いたルート探索処理手順を示すフローチャートである。
【図９】図９は、送信データのデータ量を比較する図である。
【図１０】図１０は、監視プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する監視システム、装置、監視方法及び監視プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
図１は、本実施例１に係る監視システムの構成を示す機能ブロック図である。図１に示すように、監視システム１は、第１の装置２及び第２の装置３を含む複数の装置を有する。第１の装置２は、生成手段１１及び第１の送信手段１２を有する。第２の装置３は、第２の送信手段１３を有する。
【００１３】
第１の装置２の生成手段１１は、複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する。第１の装置２の第１の送信手段１２は、生成手段１１によって生成された第３のデータ及び第３のデータを識別する情報を、第２の装置３を含む複数の装置に送信する。
【００１４】
第２の装置３の第２の送信手段１３は、第４のデータに示される文字列が第３のデータに示される文字列を含む場合に、第４のデータに示される文字列から第３のデータに示される文字列を除いた文字列を示す第５のデータ及び第３のデータを識別する情報を第１の装置２に送信する。
【００１５】
このようにして、監視システム１では、第１の装置２が、第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致した部分の文字列を示す第３の文字列及び第３の文字列の識別情報を、第２の装置３を含む複数の装置に送信することとした。このため、第２の装置３は、新たなデータに示される文字列との比較に第１の装置２から送信された第３の文字列を用いることにより新たなデータである第４のデータの第１の装置２への送信を第３の文字列との差分と第３の文字列の識別情報とすることを可能とする。この結果、監視システム１では、第２の装置３から第１の装置２への新たなデータである第４のデータに含まれる第３のデータの分のトラフィック量を、第３のデータの識別情報の分のトラフィック量に抑制することができるので、ネットワークに負荷をかけないで監視できる。
【実施例２】
【００１６】
［実施例２に係る監視システムの構成］
図２は、実施例２に係る監視システムの構成を示す機能ブロック図である。図２に示すように、監視システム１Ａは、監視装置２Ａ及び複数の監視対象装置３Ａを有する。監視装置２Ａは、複数の監視対象装置３Ａと接続し、これらの監視対象装置３Ａによって送信されるメッセージを管理する。また、監視装置２Ａは、監視クライアント４と接続する。監視クライアント４は、ＧＵＩ（Graphical User Interface）を用いて監視対象装置３Ａのメッセージを例えばモニタに表示して、監視対象装置３Ａの異常を監視する。監視対象装置のメッセージとして、例えば監視対象装置３Ａの異常を示すメッセージがあり、監視対象装置３Ａの異常として、例えば監視対象装置３Ａの誤動作による異常や通信異常等が考えられる。
【００１７】
さらに、監視装置２Ａは、制御部２０、メッセージログＤＢ２１、保持データ記憶部２２及び蓄積データＤＢ２３を有する。監視装置２Ａと接続する監視対象装置３Ａは、制御部４０、メッセージ記憶部４１及び蓄積データＤＢ４３を有する。
【００１８】
監視対象装置３Ａの制御部４０は、新たなメッセージを監視装置２Ａに管理させるべく、監視装置２Ａへ当該メッセージを送信する。さらに制御部４０は、新規メッセージ取得部５１、蓄積データ管理部５２及び通信制御部５３を有する。なお、制御部４０は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の集積回路またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）等の電子回路である。
【００１９】
新規メッセージ取得部５１は、新たなメッセージを取得する。具体的には、新規メッセージ取得部５１は、メッセージ記憶部４１に保持される新たなメッセージを監視し、メッセージ記憶部４１に保持された新規メッセージを取得する。ここで、メッセージ記憶部４１は、自装置の異常に関するシステムログやアプリケーションログを含むメッセージを記憶する。なお、メッセージ記憶部４１は、例えば、ＲＡＭ（Random Access Memory）、フラッシュメモリ（flash memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。
【００２０】
蓄積データ管理部５２は、蓄積データを管理し、管理する蓄積データを用いて、新規メッセージから監視装置２Ａへ送信する送信データを作成する。さらに、蓄積データ管理部５２は、メッセージ一致判定部５２Ａ及び蓄積データ差分更新部５２Ｂを有する。メッセージ一致判定部５２Ａは、新規メッセージ取得部５１によって取得された新規メッセージが蓄積データＤＢ４３に蓄積されたメッセージを含んでいるか否かを判定する。ここで、蓄積データＤＢ４３について、図３を参照しながら説明する。
【００２１】
図３は、蓄積データＤＢ４３のデータ構造の一例を示す図である。図３に示すように、蓄積データＤＢ４３は、蓄積データＩＤ４３ａ毎に発生元ホスト名４３ｂ及び定型メッセージ４３ｃを対応付けて記憶する。この蓄積データＩＤ４３ａ毎のレコードに含まれるデータを、それぞれ「蓄積データ」とする。
【００２２】
蓄積データＩＤ４３ａは、定型メッセージ４３ｃ毎に一意に割り振られた識別番号である。発生元ホスト名４３ｂは、メッセージの発生元である監視対象装置３Ａの名称である。定型メッセージ４３ｃは、メッセージを可変部分と不変部分とに区別した文字列である。可変部分とは、例えば数字、括弧内の文字列、ブランク、タブ、日付、「：」または「＝」後の文字列等の可変となる部分であり、パラメータとして表される。なお、可変部分となる文字を「特定文字」というものとする。図３の例では、蓄積データＩＤ４３ａを「１」とする定型メッセージ４３ｃでは、数字部分を特定文字としてパラメータ化して表している（Ｔ１）。また、蓄積データＩＤ４３ａを「２」とする定型メッセージ４３ｃでは、括弧内の文字列部分を特定文字としてパラメータ化して表している（Ｔ２）。なお、蓄積データＤＢ４３のそれぞれのデータは、後述する監視装置２Ａのメッセージ類似判定部３２Ｂによって作成される。
【００２３】
図２に戻って、具体的には、メッセージ一致判定部５２Ａは、蓄積データＤＢ４３に記憶された定型メッセージ４３ｃから特定文字として表されるパラメータを除外した文字列を作成する。そして、メッセージ一致判定部５２Ａは、新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいるか否かを判定する。
【００２４】
メッセージ一致判定部５２Ａは、新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいると判定する場合には、メッセージが一致すると判断する。そして、メッセージ一致判定部５２Ａは、新規メッセージに示される文字列と定型メッセージ４３ｃから作成された文字列との差分を抽出する。すなわち、メッセージ一致判定部５２Ａは、新規メッセージに示される文字列から定型メッセージ４３ｃに表されたパラメータに相当する特定文字を抽出する。そして、メッセージ一致判定部５２Ａは、抽出したパラメータに相当する特定文字及び定型メッセージ４３ｃに対応付けられた蓄積データＩＤ４３ａを送信データとして、通信制御部５３に出力する。
【００２５】
また、メッセージ一致判定部５２Ａは、新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいないと判定する場合には、メッセージが一致しないと判断する。そして、メッセージ一致判定部５２Ａは、新規メッセージで示される文字列そのものを送信データとして、通信制御部５３に出力する。
【００２６】
ここで、送信データのデータ構造について、図４を参照しながら説明する。図４は、送信データのデータ構造の一例を示す図である。図４（Ａ）では、蓄積データＤＢ４３に蓄積データがない場合、もしくは新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいない場合の送信データのデータ構造を示す。図４（Ｂ）では、蓄積データＤＢ４３に蓄積データがあり、且つ新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいる場合の送信データのデータ構造を示す。
【００２７】
図４（Ａ）に示すように、蓄積データＤＢ４３に蓄積データがない場合の送信データには、全データ長１ａ、データ種別１ｂ、ホスト名オフセット１ｃ、メッセージオフセット１ｄ、ホスト名１ｅ及びメッセージ１ｆが含まれる。全データ長１ａは、送信データの全データ長を示す。データ種別１ｂは、送信するデータがメッセージで示される文字列そのものであることを示す値を指す。ここでは、この値を「０ｘ０４」とする。ホスト名オフセット１ｃは、後述するホスト名について、送信データの先頭からの設定される位置を示す。メッセージオフセット１ｄは、後述するメッセージについて、送信データの先頭からの設定される位置を示す。ホスト名１ｅは、メッセージの発生元であるホスト名を示す。すなわち、ホスト名１ｅには、自装置のホスト名が設定される。メッセージ１ｆは、メッセージそのものが設定される。
【００２８】
図４（Ｂ）に示すように、蓄積データＤＢ４３に蓄積データがある場合の送信データには、全データ長２ａ、データ種別２ｂ、蓄積データＩＤ２ｃ、ホスト名オフセット２ｄ、パラメータ数２ｅ及びパラメータ数分のパラメータオフセット２ｆが含まれる。さらに、送信データには、ホスト名２ｇ及びパラメータ数分のパラメータ２ｈが含まれる。全データ長２ａ、ホスト名オフセット２ｄ及びホスト名２ｇは、それぞれ図４（Ａ）に示した全データ長１ａ、ホスト名オフセット１ｃ及びホスト名１ｅに相当するので、その説明を省略する。データ種別２ｂは、送信するデータが特定文字及び蓄積データＩＤであることを示す値を指す。ここでは、この値を「０ｘ０１」とする。蓄積データＩＤ２ｃには、メッセージと一致すると判断された定型メッセージ４３ｃに対応付けられた蓄積データＩＤ４３ａが設定される。パラメータ数２ｅは、定型メッセージ４３ｃに含まれるパラメータの数を示す。パラメータオフセット２ｆは、後述するパラメータについて、送信データの先頭からの設定される位置を示す。パラメータ２ｈには、メッセージに示される文字列から抽出される、定型メッセージ４３ｃに表されたパラメータに相当する特定文字を示す。
【００２９】
図２に戻って、蓄積データ差分更新部５２Ｂは、自装置に有する蓄積データＤＢ４３について、監視装置２Ａに有する蓄積データＤＢ２３との差分を更新する。具体的には、蓄積データ差分更新部５２Ｂは、通信制御部５３を介して監視装置２Ａから配付された蓄積データの差分を取得する。また、蓄積データ差分更新部５２Ｂは、取得した蓄積データを自装置に有する蓄積データＤＢ４３に更新する。すなわち、蓄積データ差分更新部５２Ｂは、自装置に有する蓄積データＤＢ４３の内容を監視装置２Ａに有する蓄積データＤＢ２３の内容と同一にすることができる。
【００３０】
通信制御部５３は、監視装置２Ａから送信された蓄積データを蓄積データ差分更新部５２Ｂに出力する。また、通信制御部５３は、メッセージ一致判定部５２Ａから要求された内容で、送信データを監視装置２Ａへ送信する。
【００３１】
監視装置２Ａの制御部２０は、監視対象装置３Ａのメッセージを管理する。さらに、制御部２０は、通信制御部３１、蓄積データ管理部３２及びメッセージログ管理部３３を有する。蓄積データ管理部３２は、メッセージ復元部３２Ａ、メッセージ類似判定部３２Ｂ及び蓄積データ差分配付部３２Ｃを有する。なお、制御部２０は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の集積回路またはＣＰＵ（Central Processing Unit）やＭＰＵ（Micro Processing Unit）等の電子回路である。
【００３２】
通信制御部３１は、監視対象装置３Ａから送信された送信データを受信し、蓄積データ管理部３２に出力する。また、通信制御部３１は、後述する蓄積データ差分配付部３２Ｃによって配付される蓄積データを監視対象装置３Ａへ送信する。蓄積データ差分配付部３２Ｃによって配付される蓄積データは、自装置に有する蓄積データＤＢ２３と監視対象装置３Ａに有する蓄積データＤＢ４３との差分となる。
【００３３】
メッセージ復元部３２Ａは、送信データが特定文字及び定型メッセージに対応付けられた蓄積データＩＤを含む場合には、蓄積データＤＢ２３を用いて、メッセージを復元する。具体的には、メッセージ復元部３２Ａは、通信制御部３１によって受信された送信データが特定文字及び蓄積データＩＤである場合には、蓄積データＤＢ２３から蓄積データＩＤに対応付けられた定型メッセージ４３ｃを読み出す。そして、メッセージ復元部３２Ａは、読み出した定型メッセージ４３ｃに表されたパラメータに、送信データに含まれた特定文字を挿入し、メッセージを復元する。そして、メッセージ復元部３２Ａは、復元後のメッセージをメッセージログ管理部３３に出力する。
【００３４】
メッセージ類似判定部３２Ｂは、送信データがメッセージそのものを含む場合には、当該メッセージについて、保持データ記憶部２２に記憶された保持データとの類似を、予め定められた割合を用いて判定する。具体的には、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージが保持データ記憶部２２に記憶されたいずれかの保持データと予め定められた割合以上一致するか否かを判定する。そして、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージが保持データ記憶部２２に記憶されたいずれかの保持データと予め定められた割合以上一致すると判定する場合には、類似メッセージであると判断する。そして、メッセージ類似判定部３２Ｂは、一致した部分の文字列を含む蓄積データを生成し、生成した蓄積データを蓄積データＤＢ２３に格納し、蓄積データＤＢ２３を更新する。
【００３５】
メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージが保持データ記憶部２２に記憶されたいずれの保持データとも予め定められた割合以上一致しないと判定する場合には、類似メッセージでないと判断する。そして、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージを保持データ記憶部２２に記憶する。そして、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージをメッセージログ管理部３３に出力する。
【００３６】
さらに具体的に、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージに示される文字列から特定文字を除外した文字列を生成する。また、メッセージ類似判定部３２Ｂは、保持データ記憶部２２に記憶された保持データに示される文字列から特定文字を除外した文字列を生成する。そして、メッセージ類似判定部３２Ｂは、生成したそれぞれの文字列について、予め定められた割合以上一致するか否かを判定する。そして、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージが保持データ記憶部２２に記憶されたいずれかの保持データと予め定められた割合以上一致すると判定する場合には、類似メッセージであると判断する。そして、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージに示される文字列の特定文字に該当する部分をパラメータ化して、定型メッセージを生成する。そして、メッセージ類似判定部３２Ｂは、生成した定型メッセージに対応付ける識別番号を蓄積データＩＤとして、他の識別番号と重複しないように割り振る。そして、メッセージ類似判定部３２Ｂは、割り振られた蓄積データＩＤ及び定型メッセージを対応付けて蓄積データＤＢ２３に格納し、蓄積データＤＢ２３を更新する。
【００３７】
なお、予め定められた割合は、例えば８０％であるが、これに限定されるものではなく、メッセージ同士が類似と認められる割合であれば良い。また、予め定められた割合以上一致するか否かの判定方法として、例えばエディットグラフを利用したＯ（ＮＤ）アルゴリズム等を用いることができる。また、蓄積データＤＢ２３のデータ構造は、監視対象装置３Ａに有する蓄積データＤＢ４３と同様であるので、その説明を省略する。
【００３８】
蓄積データ差分配付部３２Ｃは、更新された蓄積データＤＢ２３と監視対象装置３Ａの蓄積データＤＢ４３との蓄積データの差分を監視対象装置３Ａに配付する。具体的には、蓄積データ差分配付部３２Ｃは、前回配付してから今回配付するまでの期間に新しく更新された蓄積データを、蓄積データの差分として監視対象装置３Ａに配付する。なお、蓄積データの差分の配付タイミングは、予め定められた一定間隔であったり、予め定められた不定間隔であったりするが、予め定められていない随時であっても良い。
【００３９】
メッセージログ管理部３３は、メッセージ復元部３２Ａによって復元されたメッセージをメッセージログとしてメッセージログＤＢ２１に格納する。また、メッセージログ管理部３３は、メッセージ類似判定部３２Ｂによって出力されたメッセージをメッセージログとしてメッセージログＤＢ２１に格納する。ここで、メッセージログＤＢ２１は、メッセージログを、メッセージの発生元である監視対象装置３Ａに対応付けて記憶する。なお、監視クライアント４は、定期的または不定期的にメッセージログＤＢ２１からメッセージログを参照することで、監視対象装置３Ａを監視することができる。
【００４０】
［実施例２に係る監視対象装置の処理］
次に、実施例２に係る監視対象装置３Ａの処理手順を、図５を参照して説明する。図５は、実施例２に係る監視対象装置３Ａの処理手順を示すフローチャートである。
【００４１】
まず、新規メッセージ取得部５１は、メッセージ記憶部４１を用いて、新規メッセージを待つ（ステップＳ１１）。新規メッセージ取得部５１は、予め定められたタイマ時間が経過したか否かを判定する（ステップＳ１２）。そして、新規メッセージ取得部５１によって予め定められたタイマ時間が経過したと判定された場合には（ステップＳ１２；Ｙｅｓ）、通信制御部５３は、監視装置２Ａから送信された蓄積データの差分が有るか否かを判定する（ステップＳ１３）。
【００４２】
そして、通信制御部５３によって蓄積データの差分が有ると判定された場合には（ステップＳ１３；有）、蓄積データ差分更新部５２Ｂは、通信制御部５３を介して蓄積データを取得し、取得した蓄積データを蓄積データＤＢ４３に更新する（ステップＳ１４）。そして、蓄積データ差分更新部５２Ｂは、新規メッセージを検知すべく、ステップＳ１５に移行する。
【００４３】
一方、通信制御部５３によって蓄積データの差分が無いと判定された場合には（ステップＳ１３；無）、新規メッセージを検知すべく、ステップＳ１５に移行する。
【００４４】
新規メッセージ取得部５１によって予め定められたタイマ時間が経過していないと判定された場合には（ステップＳ１２；Ｎｏ）、新規メッセージを検知すべく、ステップＳ１５に移行する。新規メッセージ取得部５１は、メッセージ記憶部４１を用いて、新規メッセージの検知を判定する（ステップＳ１５）。新規メッセージ取得部５１が新規メッセージを検知しない場合には（ステップＳ１５；Ｎｏ）、処理を終了する。一方、新規メッセージ取得部５１が新規メッセージを検知した場合には（ステップＳ１５；Ｙｅｓ）、新規メッセージをメッセージ記憶部４１から取得する（ステップＳ１６）。
【００４５】
続いて、メッセージ一致判定部５２Ａは、新規メッセージ取得部５１によって取得された新規メッセージを蓄積データＤＢ４３に記憶された定型メッセージ４３ｃと照合する（ステップＳ１７）。そして、メッセージ一致判定部５２Ａは、新規メッセージが蓄積データＤＢ４３に記憶された定型メッセージ４３ｃと一致するか否かを判定する（ステップＳ１８）。具体的には、メッセージ一致判定部５２Ａは、新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいるか否かを判定する。
【００４６】
メッセージ一致判定部５２Ａは、新規メッセージが蓄積データＤＢ４３に記憶された定型メッセージ４３ｃと一致すると判定する場合には（ステップＳ１８；Ｙｅｓ）、検索結果を取得する（ステップＳ１９）。具体的には、メッセージ一致判定部５２Ａは、新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいると判定する場合には、メッセージが一致すると判断する。そして、メッセージ一致判定部５２Ａは、蓄積データＤＢ４３から検索した蓄積データを取得する。
【００４７】
続いて、メッセージ一致判定部５２Ａは、蓄積データに含まれる蓄積データＩＤ４３ａ及び新規メッセージの可変パラメータを送信データとして組み立てる（ステップＳ２０）。具体的には、メッセージ一致判定部５２Ａは、新規メッセージに示される文字列から定型メッセージ４３ｃに表されたパラメータに相当する特定文字を抽出する。そして、メッセージ一致判定部５２Ａは、抽出した特定文字及び定型メッセージ４３ｃに対応付けられた蓄積データＩＤ４３ａを送信データとして組み立てる。このとき、送信データには、自装置を示す発生元ホスト名を含む。そして、メッセージ一致判定部５２Ａは、組み立てた送信データを監視装置２Ａに送信するように、通信制御部５３に送信要求を行い（ステップＳ２２）、通信制御部５３は送信要求の内容で送信データを送信する。その後、ステップＳ１１に移行する。
【００４８】
一方、メッセージ一致判定部５２Ａは、新規メッセージが蓄積データＤＢ４３に記憶された定型メッセージ４３ｃと一致しないと判定する場合には（ステップＳ１８；Ｎｏ）、新規メッセージそのものを送信データとして組み立てる（ステップＳ２１）。このとき、送信データには、自装置を示す発生元ホスト名を含む。そして、メッセージ一致判定部５２Ａは、組み立てた送信データを監視装置２Ａに送信するように、通信制御部５３に送信要求を行う（ステップＳ２２）、通信制御部５３は送信要求の内容で送信データを送信する。その後、ステップＳ１１に移行する。
【００４９】
［実施例２に係る監視装置の処理］
次に、実施例２に係る監視装置２Ａの処理手順を、図６を参照して説明する。図６は、実施例２に係る監視装置の処理手順を示すフローチャートである。
【００５０】
まず、通信制御部３１は、監視対象装置３Ａから送信される送信データを待つ（ステップＳ３１）。通信制御部３１は、予め定められたタイマ時間が経過したか否かを判定する（ステップＳ３２）。そして、通信制御部３１によって予め定められたタイマ時間が経過したと判定された場合には（ステップＳ３２；Ｙｅｓ）、蓄積データ差分配付部３２Ｃは、複数の監視対象装置３Ａの中から１個の監視対象装置３Ａを選択する（ステップＳ３３）。
【００５１】
そして、蓄積データ差分配付部３２Ｃは、選択した監視対象装置３Ａにおける蓄積データＤＢ２３に記憶された蓄積データについて、前回配付してから今回配付するまでの期間の差分を抽出する（ステップＳ３４）。そして、蓄積データ差分配付部３２Ｃは、抽出した蓄積データの差分を、該選択した監視対象装置３Ａに配付する（ステップＳ３５）。蓄積データ差分配付部３２Ｃは、全監視対象装置３Ａを選択したか否かを判定する（ステップＳ３６）。
【００５２】
蓄積データ差分配付部３２Ｃは、全監視対象装置３Ａを選択していないと判定した場合には（ステップＳ３６；Ｎｏ）、次の監視対象装置３Ａを選択し（ステップＳ３７）、ステップＳ３４に移行する。一方、蓄積データ差分配付部３２Ｃは，全監視対象装置３Ａを選択したと判定した場合には（ステップＳ３６；Ｙｅｓ）、ステップＳ３８に移行する。
【００５３】
続いて、予め定められたタイマ時間が経過していない場合（ステップＳ３２；Ｎｏ）または全監視対象装置３Ａを選択した場合には（ステップＳ３６；Ｙｅｓ）、通信制御部３１は、送信データを受信したか否かを判定する（ステップＳ３８）。そして、通信制御部３１は、送信データを受信していないと判定する場合（ステップＳ３８；Ｎｏ）、ステップＳ３１に移行する。
【００５４】
一方、通信制御部３１は、送信データを受信したと判定する場合（ステップＳ３８；Ｙｅｓ）、送信データを取得する（ステップＳ３９）。そして、通信制御部３１は、送信データが定型メッセージ内のパラメータに相当する特定文字及び蓄積データＩＤを含むか否かを判定する（ステップＳ４０）。
【００５５】
送信データがパラメータに相当する特定文字及び蓄積データＩＤを含む場合（ステップＳ４０；Ｙｅｓ）、メッセージ復元部３２Ａは、送信データ内の蓄積データＩＤ及び発生元ホスト名を指定し、蓄積データＤＢ２３から蓄積データを検索する（ステップＳ４１）。そして、メッセージ復元部３２Ａは、検索結果である蓄積データ及びパラメータに相当する特定文字から新規メッセージを復元する（ステップＳ４２）。すなわち、メッセージ復元部３２Ａは、蓄積データ内の定型メッセージに表されたパラメータに、当該パラメータに相当する特定文字を挿入し、メッセージを復元する。そして、メッセージ復元部３２Ａは、ステップＳ５２に移行する。
【００５６】
送信データがパラメータに相当する特定文字及び蓄積データＩＤを含まない場合（ステップＳ４０；Ｎｏ）、メッセージ類似判定部３２Ｂは、送信データ内のメッセージ中の特定文字を、パラメータを表す文字（パラメータ文字）に置き換える（ステップＳ４３）。なお、送信データがパラメータに相当する特定文字及び蓄積データＩＤを含まない場合とは、すなわち送信データがメッセージそのものを含む場合を意味する。
【００５７】
続いて、メッセージ類似判定部３２Ｂは、保持データ記憶部２２に記憶された、１個の保持データを選択する（ステップＳ４４）。そして、メッセージ類似判定部３２Ｂは、選択した保持データから特定文字を除外した文字列と、特定文字をパラメータ文字に置き換えたメッセージからパラメータ文字を除外した文字列との一致文字数を算出する（ステップＳ４５）。なお、この文字列同士の一致文字数の算出については、後に詳述する。
【００５８】
そして、メッセージ類似判定部３２Ｂは、算出した一致文字数を用いて、これら文字列同士が予め定められた割合（例えば８０％）以上一致するか否かの一致率判定を行なう（ステップＳ４６）。メッセージ類似判定部３２Ｂは、これら文字列同士が８０％以上一致すると判定する場合（ステップＳ４６；８０％以上）、類似メッセージであると判断する。そして、メッセージ類似判定部３２Ｂは、特定文字をパラメータ文字に置き換えたメッセージを、さらに保持データとの不一致部分をパラメータ文字に置き換えて定型メッセージを生成する（ステップＳ４７）。
【００５９】
そして、メッセージ類似判定部３２Ｂは、生成した定型メッセージに対応付ける蓄積データＩＤを割り振り、当該蓄積データＩＤ、発生元ホスト名及び生成した定型メッセージを対応付けて蓄積データＤＢ２３に登録する（ステップＳ４８）。そして、メッセージ類似判定部３２Ｂは、ステップＳ５２に移行する。
【００６０】
メッセージ類似判定部３２Ｂは、これら文字列同士が８０％未満しか一致しないと判定する場合（ステップＳ４６；８０％未満）、類似メッセージでないと判断する。そして、メッセージ類似判定部３２Ｂは、保持データ記憶部２２に記憶された全保持データを選択したか否かを判定する（ステップＳ４９）。メッセージ類似判定部３２Ｂは，全保持データを選択していないと判定する場合（ステップＳ４９；Ｎｏ）、次の保持データを選択し（ステップＳ５０）、選択した保持データとの一致文字数を算出すべく、ステップＳ４５に移行する。
【００６１】
一方、メッセージ類似判定部３２Ｂは、全保持データを選択したと判定する場合（ステップＳ４９；Ｙｅｓ）、送信データに含まれるメッセージを保持データとして保持データ記憶部２２に登録する（ステップＳ５１）。そして、メッセージ類似判定部３２Ｂは，送信データに含まれるメッセージをメッセージログ管理部３３に出力し（ステップＳ５２）、ステップＳ３１に移行する。
【００６２】
［一致文字数の算出処理］
次に、図６のステップＳ４５に示した文字列同士の一致文字数の算出処理の一例について説明する。なお、この文字列同士の一致文字数の算出処理は、例えば、既存技術である「エディットグラフに基づいて最長共通部分（ＬＣＳ：Longest  Common  Subsequence）を求めるＯ（ＮＤ）アルゴリズム」を利用するものである。
【００６３】
ここで、文字列同士の一致文字数の算出処理の概念を、図７を参照して説明する。図７は、文字列同士の一致文字数算出処理の概念を説明する図である。図７（Ａ）に示すように、１個目の文字列をＡ（ｉ）（１≦ｉ≦９）配列に設定される「あいうあおかきあか」、２個目の文字列をＢ（ｊ）（１≦ｊ≦１１）配列に設定される「いうあかききあかかあか」とする。
【００６４】
図７（Ｂ）に示すように、Ａ（ｉ）及びＢ（ｊ）の文字同士の比較結果を２次元配列Ｃ（ｉ、ｊ）の比較表で示す。文字同士の比較結果が一致する場合には「１」が設定され、文字同士の比較結果が一致しない場合には「０」が設定される。例えば、符号Ｃ１で表されるＢ（１）の文字「い」について、Ａ（２）の文字が「い」と一致するので、Ｃ（２、１）には「１」が設定され、それ以外の文字が「い」と不一致であるので、Ｃ（ｉ、１）（ｉ≠２）には「０」が設定される。
【００６５】
次に、図７（Ｃ）に示すように、Ｃ（ｉ、ｊ）の比較表からエディットグラフを生成する。エディットグラフとは、文字列Ａ（ｉ）、Ｂ（ｊ）の各文字をＸ軸Ｙ軸上に並べ、これらの交点を縦横の辺で結合し、Ａのｘ番目の文字とＢのｙ番目の文字とが等しい場合のみ（ｘ−１、ｙ−１）から（ｘ、ｙ）を線分とするものである。文字列Ａ（ｉ）をＸ軸、文字列Ｂ（ｊ）をＹ軸に並べた場合、Ｓ１〜Ｓ１２を線分とするエディットグラフが生成される。なお、ここでは（ｘ−１、ｙ−１）を（ｘ１、ｙ１）とし、（ｘ、ｙ）を（ｘ２、ｙ２）として説明する。また、線分が連続する場合には、線分の開始を（ｘ１、ｙ１）とし、連続した線分の終了を（ｘ２、ｙ２）とする。
【００６６】
次に、図７（Ｄ）に示すように、エディットグラフから線分毎の位置と連続する一致文字数とを取り出す。例えば、線分がＳ１である場合には、（ｘ１、ｙ１）が（１、０）であり、（ｘ２、ｙ２）が（４、３）であり、連続する一致文字数（連続一致文字数）Ｌが３となる。
【００６７】
次に、図７（Ｅ）に示すように、線分間の関係表を生成する。すなわち、線分毎に同時に選択可能な他の線分を抽出する。なお、ここでは、上位列とは、線分に対して先に選択可能な線分（文字列）を示し、下位列とは、線分に対して後に選択可能な線分（文字列）を示す。例えば、線分Ｓ３では、先に選択可能な線分にＳ１、Ｓ２があり、後に選択可能な線分にＳ８、Ｓ１１がある。
【００６８】
次に、図７（Ｆ）に示すように、線分間の関係表を用いて一致文字数が最長となるルート探索を行なう。ここでは、例えば先後順にＳ１、Ｓ３及びＳ８の経路では、一致文字数が６となり、Ｓ１、Ｓ３及びＳ１１の経路では、一致文字数が７となる。また、Ｓ１及びＳ４の経路では、一致文字数が６となり、Ｓ１、Ｓ６及びＳ１１の経路では、一致文字数が６となる。したがって、Ｓ１、Ｓ３及びＳ１１の経路が一致文字数を最長とすることがわかる。
【００６９】
図８−１〜図８−４は、一致文字数の算出処理の手順を示すフローチャートである。図８−１は、Ａ（ｉ）及びＢ（ｊ）の文字同士の比較結果を２次元配列Ｃ（ｉ、ｊ）の比較表とする処理手順を示し、図８−２は、比較表からエディットグラフを生成し、エディットグラフから線分毎の位置等を取り出す処理手順を示す。図８−３は、線分間の関係表を生成する処理手順を示し、図８−４は、線分間の関係表を用いたルート探索処理手順を示す。なお、２個の文字列は、Ａ（ｉ）（１≦ｉ≦ｎ）、Ｂ（ｊ）（１≦ｊ≦ｍ）の配列にそれぞれ設定されているものとして説明する。また、ｉ、ｊ、ｎ及びｍは自然数であるものとする。
【００７０】
まず、メッセージ類似判定部３２Ｂは、Ａ文字列のインデックスｉ、Ｂ文字列のインデックスｊをそれぞれ１に設定する（ステップＳ６１、Ｓ６２）。そして、メッセージ類似判定部３２Ｂは、Ａ（ｉ）の文字がＢ（ｊ）の文字と一致するか否かを判定する（ステップＳ６３）。Ａ（ｉ）の文字がＢ（ｊ）の文字と一致しない場合（ステップＳ６３；Ｎｏ）、メッセージ類似判定部３２Ｂは、文字同士の比較結果である２次元配列Ｃ（ｉ、ｊ）に「０」を設定する（ステップＳ６４）。
【００７１】
一方、Ａ（ｉ）の文字がＢ（ｊ）の文字と一致する場合（ステップＳ６３；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、Ｃ（ｉ、ｊ）に「１」を設定する（ステップＳ６５）。そして、メッセージ類似判定部３２Ｂは、インデックスｊを１加算し（ステップＳ６６）、インデックスｊがＢ文字列の最大数ｍより大きいか否かを判定する（ステップＳ６７）。インデックスｊがＢ文字数の最大数ｍ以下である場合には（ステップＳ６７；Ｎｏ）、メッセージ類似判定部３２Ｂは、ステップＳ６３に移行する。
【００７２】
一方、インデックスｊがＢ文字数の最大数ｍより大きい場合には（ステップＳ６７；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、インデックスｉを１加算し（ステップＳ６８）、インデックスｉがＡ文字列の最大数ｎより大きいか否かを判定する（ステップＳ６９）。インデックスｉがＡ文字数の最大数ｎ以下である場合には（ステップＳ６９；Ｎｏ）、メッセージ類似判定部３２Ｂは、ステップＳ６２に移行する。一方、インデックスｉがＡ文字数の最大数ｎより大きい場合には（ステップＳ６９；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、図８−２に示すステップＳ７１に移行する。
【００７３】
次に、図８−２は、エディットグラフから線分毎の位置等を取り出す処理手順を示すフローチャートである。まず、メッセージ類似判定部３２Ｂは、線分の数βを初期化すべく「０」を設定する（ステップＳ７１）。メッセージ類似判定部３２Ｂは、Ａ文字列のインデックスｉ、Ｂ文字列のインデックスｊにそれぞれ１を設定し（ステップＳ７２、Ｓ７３）、連続一致文字数αを初期化すべく「０」を設定する（ステップＳ７４）。
【００７４】
そして、メッセージ類似判定部３２Ｂは、Ｃ（ｉ、ｊ）が１であるか否かを判定する（ステップＳ７５）。Ｃ（ｉ、ｊ）が１である場合（ステップＳ７５；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、Ｃ（ｉ、ｊ）を「０」に設定し（ステップＳ７６）、インデックスｉ及びｊをそれぞれ１加算し（ステップＳ７７）、連続一致文字数αを１加算する（ステップＳ７８）。そして、メッセージ類似判定部３２Ｂは、ステップＳ７５に移行する。
【００７５】
一方、Ｃ（ｉ、ｊ）が１でない場合（ステップＳ７５；Ｎｏ）、メッセージ類似判定部３２Ｂは、インデックスｉ及びｊをそれぞれ連続一致文字数αだけ減算する（ステップＳ７９）。そして、メッセージ類似判定部３２Ｂは、連続一致文字数αが「０」であるか否かを判定する（ステップＳ８０）。連続一致文字数αが「０」である場合（ステップＳ８０；Ｎｏ）、メッセージ類似判定部３２Ｂは、ステップＳ８３に移行する。一方、連続一致文字数αが「０」でない場合（ステップＳ８０；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、一致文字に対する線分であると判断し、線分の数βを１加算する（ステップＳ８１）。そして、メッセージ類似判定部３２Ｂは、連続一致文字数Ｌ（β）にα値を設定し、ｘ１（β）にインデックスｉ、ｙ１（β）にインデックスｊを設定し、ｘ２（β）にインデックスｉ＋α、ｙ２（β）にインデックスｊ＋αを設定する（ステップＳ８２）。
【００７６】
そして、メッセージ類似判定部３２Ｂは、インデックスｊを１加算し（ステップＳ８３）、インデックスｊがＢ文字列の最大数ｍより大きいか否かを判定する（ステップＳ８４）。インデックスｊがＢ文字列の最大数ｍ以下である場合には（ステップＳ８４；Ｎｏ）、メッセージ類似判定部３２Ｂは、ステップＳ７４に移行する。
【００７７】
一方、インデックスｊがＢ文字列の最大数ｍより大きい場合には（ステップＳ８４；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、インデックスｉを１加算し（ステップＳ８５）、インデックスｉがＡ文字列の最大数ｎより大きいか否かを判定する（ステップＳ８６）。インデックスｉがＡ文字列の最大数ｎ以下である場合には（ステップＳ８６；Ｎｏ）、メッセージ類似判定部３２Ｂは、ステップＳ７３に移行する。一方、インデックスｉがＡ文字列の最大数ｎより大きい場合には（ステップＳ８６；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、図８−３に示すステップＳ９１に移行する。
【００７８】
次に、図８−３は、線分間の関係表を生成する処理手順を示すフローチャートである。まず、メッセージ類似判定部３２Ｂは、対象線分を示すインデックスγに「１」、線分を示すインデックスγ´にそれぞれ「１」を設定する（ステップＳ９１、Ｓ９２）。そして、メッセージ類似判定部３２Ｂは、インデックスγがγ´と一致するか否かを判定する（ステップＳ９３）。インデックスγがγ´と一致しない場合（ステップＳ９３；Ｙｅｓ）、インデックスγの対象線分とインデックスγ´の線分との関係を探索すると判断する。メッセージ類似判定部３２Ｂは、γの対象線分の開始位置ｘ１（γ）がγ´の線分の開始位置ｘ１（γ´）以上且つγの対象線分の開始位置ｙ１（γ）がγ´の線分の開始位置ｙ１（γ´）以上であるか否かを判定する（ステップＳ９４）。
【００７９】
ｘ１（γ）がｘ１（γ´）以上且つｙ１（γ）がｙ１（γ´）以上である場合には（ステップＳ９４；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、インデックスγ´の線分をインデックスγの対象線分の上位列として線分間の関係表に格納する（ステップＳ９５）。一方、ｘ１（γ）がｘ１（γ´）以上且つｙ１（γ）がｙ１（γ´）以上でない場合には（ステップＳ９４；Ｎｏ）、メッセージ類似判定部３２Ｂは、ｘ２（γ）がｘ２（γ´）以下且つｙ２（γ）がｙ２（γ´）以下であるか否かを判定する（ステップＳ９６）。ｘ２（γ）がｘ２（γ´）以下且つｙ２（γ）がｙ２（γ´）以下である場合には（ステップＳ９６；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、インデックスγ´の線分をインデックスγの対象線分の下位列として線分間の関係表に格納する（ステップＳ９７）。一方、ｘ２（γ）がｘ２（γ´）以下且つｙ２（γ）がｙ２（γ´）以下でない場合には（ステップＳ９６；Ｎｏ）、メッセージ類似判定部３２Ｂは、ステップＳ９８に移行する。
【００８０】
ステップＳ９５またはステップＳ９７の処理後、メッセージ類似判定部３２Ｂは、インデックスγの連続一致文字数Ｌ（γ）を線分間の関係表に格納する（ステップＳ９８）。続いて、メッセージ類似判定部３２Ｂは、線分を示すインデックスγ´を１加算し（ステップＳ９９）、インデックスγ´が線分の数の最大値β以下であるか否かを判定する（ステップＳ１００）。インデックスγ´が線分の数の最大値β以下である場合には（ステップＳ１００；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、ステップＳ９３に移行する。
【００８１】
一方、インデックスγ´が線分の数の最大値βより大きい場合には（ステップＳ１００；Ｎｏ）、メッセージ類似判定部３２Ｂは、インデックスγを１加算し（ステップＳ１０１）、インデックスγが線分の数の最大値β以下であるか否かを判定する（ステップＳ１０２）。インデックスγが線分の数の最大値β以下である場合には（ステップＳ１０２；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、ステップＳ９２に移行する。一方、インデックスγが線分の数の最大値βより大きい場合には（ステップＳ１０２；Ｎｏ）、メッセージ類似判定部３２Ｂは、図８−４に示すステップＳ１１１に移行する。
【００８２】
次に、図８−４は、線分間の関係表を用いたルート探索処理手順を示すフローチャートである。まず、メッセージ類似判定部３２Ｂは、最大の一致文字数Ｔ及び対象線分を示すインデックスγを初期化すべくそれぞれ「０」に設定する（ステップＳ１１１）。メッセージ類似判定部３２Ｂは、インデックスγを１加算し（ステップＳ１１２）、インデックスγが線分の数の最大値β以下であるか否かを判定する（ステップＳ１１３）。
【００８３】
インデックスγが線分の数の最大値β以下である場合（ステップＳ１１３；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、一致文字数Ｐを「０」に設定する。また、メッセージ類似判定部３２Ｂは、一致文字を有する線分を示すインデックスを保持する配列Ｒのインデックスを示すｋを「１」に選択する（ステップＳ１１４）。そして、メッセージ類似判定部３２Ｂは、一致文字数Ｐに、線分を示すインデックスγの連続一致文字数Ｌ（γ）を加算し、配列Ｒ（ｋ）に線分を示すインデックスγの値を設定する（ステップＳ１１５）。
【００８４】
メッセージ類似判定部３２Ｂは、線分を示すインデックスγに選択されていない下位列があるか否かを、線分間の関係表に基づいて判定する（ステップＳ１１６）。インデックスγに選択されていない下位列がある場合（ステップＳ１１６；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、選択されていない下位列のうちの１つを選択し（ステップＳ１１７）、選択した下位列をインデックスγに設定する（ステップＳ１１８）。そして、メッセージ類似判定部３２Ｂは、配列Ｒのインデックスを示すｋを１加算し（ステップＳ１１９）、ステップＳ１１５に移行する。
【００８５】
一方、線分を示すインデックスγに選択されていない下位列がない場合（ステップＳ１１６；Ｎｏ）、メッセージ類似判定部３２Ｂは、対象線分からの１個のルート探索を完了したと判断する。そして、メッセージ類似判定部３２Ｂは、前回までの最大の一致文字数Ｔが今回のルート探索の結果を示す一致文字数Ｐより小さいか否かを判定する（ステップＳ１２０）。前回までの最大の一致文字数Ｔが今回のルート探索の結果を示す一致文字数Ｐより小さい場合（ステップＳ１２０；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、最大の一致文字数Ｔに今回のルート探索の結果を示す一致文字数Ｐを設定する（ステップＳ１２１）。そして、メッセージ類似判定部３２Ｂは、一致文字を有する線分を示すインデックスを保持した配列Ｒを配列Ｑにコピーする（ステップＳ１２２〜Ｓ１２５）。一方、前回までの最大の一致文字数Ｔが今回のルート探索の結果を示す一致文字数Ｐ以上である場合（ステップＳ１２０；Ｎｏ）、次のルート探索を実行すべく、ステップＳ１２６に移行する。
【００８６】
メッセージ類似判定部３２Ｂは、１個前のルートに戻るため、直近に選択された線分を示すインデックスγに関する情報をクリアする。ここでは、メッセージ類似判定部３２Ｂは、配列Ｒ（ｋ）を「０」に設定し、一致文字数Ｐから直近に選択された線分γの連続一致文字数を減算し（ステップＳ１２６）、線分γの値を１個前に選択された線分を示すＲ（ｋ−１）に設定する（ステップＳ１２７）。さらに、メッセージ類似判定部３２Ｂは、配列Ｒのインデックスを示すｋを１減算する（ステップＳ１２８）。
【００８７】
そして、メッセージ類似判定部３２Ｂは、減算したｋが「１」であるか否かを判定する（ステップＳ１２９）。ｋが「１」である場合には（ステップＳ１２９；Ｙｅｓ）、メッセージ類似判定部３２Ｂは、次の対象線分に関するルート探索を実行させるべく、ステップＳ１１２に移行する。一方、ｋが「１」でない場合には（ステップＳ１２９；Ｎｏ）、今回の対象線分に関する他のルート探索を実行させるべく、ステップＳ１１６に移行する。
【００８８】
そして、インデックスγが線分の数の最大値βを超過した場合に（ステップＳ１１３；Ｎｏ）、メッセージ類似判定部３２Ｂは、最大の一致文字数Ｔを出力する（ステップＳ１３０）。そして、メッセージ類似判定部３２Ｂは、配列Ｑに保持された、一致文字を有する線分を示すインデックスを出力して（ステップＳ１３１〜Ｓ１３４）、一致文字数の算出処理を終了する。
【００８９】
［実施例２の効果］
上記実施例２によれば、監視装置２Ａが、複数の監視対象装置３Ａとの通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列及びデータＩＤを含む蓄積データを生成する。そして、監視装置２Ａは、生成した蓄積データを蓄積データＤＢ２３に更新し、更新した蓄積データを、蓄積データの差分として監視対象装置３Ａに配付する。そして、監視対象装置３Ａは、監視装置２Ａから配付された蓄積データを取得し、自装置に有する蓄積データＤＢ２３に更新する。そして、監視対象装置３Ａは、新たなデータに示される文字列が蓄積データＤＢ４３に更新された蓄積データに示される文字列を含む場合に、新たなデータに示される文字列から、当該蓄積データに示される文字列を除いた文字列を示すデータを生成する。そして、監視対象装置３Ａは、生成したデータと当該蓄積データを識別するデータＩＤとを含む送信データを監視装置２Ａに送信する。
【００９０】
かかる構成によれば、監視装置２Ａが、第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致した部分の文字列及びデータＩＤを含む蓄積データを複数の監視対象装置３Ａに配付することとした。このため、監視対象装置３Ａは、新たなデータに示される文字列との比較に監視装置２Ａから配付された蓄積データを用いることにより新たなデータの監視装置２Ａへの送信を蓄積データとの差分のみとすることを可能とする。この結果、監視システム１Ａは、監視対象装置３Ａから監視装置２Ａへの新たなデータのトラフィック量を軽減できる。
【００９１】
以下に、蓄積データＤＢ４３に蓄積データがある場合と、蓄積データＤＢ４３に蓄積データがない場合との送信データのデータ量を比較する。図９は、送信データのデータ量を比較する図である。図９（Ａ）では、説明の便宜上、蓄積データ及び新たなデータである新規メッセージの例を示す。図９（Ｂ）では、蓄積データＤＢ４３に蓄積データがあり、且つ新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいる場合の送信データを示す。図９（Ｃ）では、蓄積データＤＢ４３に蓄積データがない場合、もしくは新規メッセージに示される文字列が定型メッセージ４３ｃから作成された文字列を含んでいない場合の送信データを示す。
【００９２】
図９（Ａ）に示すように、蓄積データＤＢ４３には、蓄積データＩＤ４３ａを「００１」とする定型メッセージＭ１があるものとする。また、新規メッセージＭ２に示される文字列は、定型メッセージＭ１から特定文字として表されるパラメータＴ３、Ｔ４を除外した文字列を含んでいる。
【００９３】
図９（Ｂ）に示すように、蓄積データＤＢ４３に蓄積データがある場合、送信データのデータ量は、４４バイトとなる。一方、図９（Ｃ）に示すように、蓄積データＤＢ４３に蓄積データがない場合、送信データのデータ量は、１１６バイトとなる。
【００９４】
したがって、図９（Ａ）に示す新規メッセージの例においては、蓄積データＤＢ４３に蓄積データがある場合には、蓄積データＤＢ４３に蓄積データがない場合と比べて、送信データのデータ量を約２／５に減少させることができる。すなわち、監視システム１Ａは、監視対象装置３Ａから監視装置２Ａへの新たなデータのトラフィック量を軽減できる。
【００９５】
また、上記実施例２によれば、監視装置２Ａが、特定文字及び蓄積データを識別するデータＩＤを含む送信データを受信した場合に、蓄積データＤＢ２３から当該データＩＤに対応付けられた定型メッセージを読み出す。そして、監視装置２Ａが、読み出した定型メッセージに表されたパラメータに、送信データに含まれた特定文字を挿入する。かかる構成によれば、監視装置２Ａは、送信データに含まれたデータＩＤ及び特定文字を用いて、
監視対象装置３Ａで発生した新たなメッセージを効率よく生成することができる。
【００９６】
なお、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージから特定文字を除外した文字列及び保持データ記憶部２２に記憶された保持データから特定文字を除外した文字列について、予め定められた割合以上一致するか否かを判定すると説明した。しかしながら、メッセージ類似判定部３２Ｂは、これに限定されず、送信データに含まれるメッセージに示される文字列及び保持データ記憶部２２に記憶された保持データに示される文字列について、予め定められた割合以上一致するか否かを判定しても良い。この場合、メッセージ類似判定部３２Ｂは、送信データに含まれるメッセージの文字列について、保持データとの不一致部分をパラメータ化して、定型メッセージを生成する。そして、メッセージ類似判定部３２Ｂは、生成した定型メッセージを、当該定型メッセージに対応付ける蓄積データＩＤとともに蓄積データとして蓄積データＤＢ２３に格納すれば良い。これにより、監視装置２Ａが、蓄積データＤＢ２３の差分の蓄積データを複数の監視対象装置３Ａに配付すれば、配付以降、監視対象装置３Ａから監視装置２Ａへの新たなデータのトラフィック量を軽減することが可能となる。
【００９７】
［プログラム等］
なお、監視装置２Ａは、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した通信制御部３１、蓄積データ管理部３２及びメッセージログ管理部３３等の各機能を搭載することによって実現することができる。また、監視対象装置３Ａは、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した新規メッセージ取得部５１、蓄積データ管理部５２及び通信制御部５３等の各機能を搭載することによって実現することができる。
【００９８】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、メッセージ復元部３２Ａとメッセージ類似判定部３２Ｂとを１個の部として統合しても良い。一方、メッセージ類似判定部３２Ｂを、送信データに含まれるメッセージと保持データとの一致率を算出する一致率算出部と、一致率から類似メッセージであるか否かを判定する類似判定部とに分散しても良い。また、蓄積データＤＢ２３や保持データ記憶部２２等の記憶部を監視装置２Ａの外部装置としてネットワーク経由で接続するようにしても良い。
【００９９】
さらに、監視装置２Ａの制御部２０に監視対象装置３Ａの制御部４０内の処理部（新規メッセージ取得部５１、蓄積データ管理部５２、通信制御部５３）を追加して、監視装置２Ａを監視対象装置３Ａとして動作させるようにしても良い。一方、監視対象装置３Ａの制御部４０に監視装置２Ａの制御部２０内の処理部（通信制御部３１、蓄積データ管理部３２、メッセージログ管理部３３）を追加して、監視対象装置３Ａを監視装置２Ａとして動作させるようにしても良い。
【０１００】
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図１０を用いて、図２に示した監視装置２Ａの制御部２０と同様の機能を有する監視プログラムを実行するコンピュータの一例を説明する。
【０１０１】
図１０は、監視プログラムを実行するコンピュータを示す図である。図１０に示すように、コンピュータ１０００は、ＲＡＭ（Random  Access  Memory）１０１０と、キャッシュ１０２０と、ＨＤＤ１０３０と、ＣＰＵ（Central  Processing  Unit）１０４０及びバス１０５０とを有する。ＲＡＭ１０１０、キャッシュ１０２０、ＨＤＤ１０３０、ＣＰＵ１０４０は、バス１０５０によって接続されている。
【０１０２】
そして、ＨＤＤ１０３０には、図２に示した制御部２０と同様の機能を有する監視プログラム１０３１が記憶される。また、ＨＤＤ１０３０には、図２に示したメッセージログＤＢ２１、保持データ記憶部２２及び蓄積データＤＢ２３に対応する監視メッセージ関連情報１０３２が記憶される。なお、監視プログラム１０３１には、図２に示した制御部４０と同様の機能を有するプログラムを含むものとしても良い。また、監視メッセージ関連情報１０３２には、図２に示したメッセージ記憶部４１及び蓄積データＤＢ４３に対応するデータを含むものとしても良い。
【０１０３】
そして、ＣＰＵ１０１０が監視プログラム１０３１をＨＤＤ１０３０から読み出してＲＡＭ１０１０に展開することにより、監視プログラム１０３１は、監視プロセス１０１１として機能するようになる。そして、監視プロセス１０１１は、監視メッセージ関連情報１０３２から読み出した情報等を適宜ＲＡＭ１０１０上の自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
【０１０４】
なお、上記の監視プログラム１０３１は、必ずしもＨＤＤ１０３０に格納されている必要はなく、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたこのプログラムを、コンピュータ１０００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等を介してコンピュータ１０００に接続される他のコンピュータ（またはサーバ）等にこのプログラムを記憶させておいても良い。この場合には、コンピュータ１０００がこれらからプログラムを読み出して実行する。
【０１０５】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【０１０６】
（付記１）複数の装置を含む監視システムであって、
前記複数の装置のうちの第１の装置が、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手段と、
前記生成手段によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に含まれる第２の装置に送信する第１の送信手段とを有し、
前記第２の装置が、
前記第１の装置を送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記第１の装置に送信する第２の送信手段
を有することを特徴とする監視システム。
【０１０７】
（付記２）前記第１の装置が、
前記第５のデータと前記第３のデータを識別する情報とを受信した場合に、前記第３のデータに示される文字列に、前記第５のデータが示す文字列を挿入する挿入手段
をさらに有することを特徴とする付記１に記載の監視システム。
【０１０８】
（付記３）複数の装置と通信可能な装置であって、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手段と、
前記生成手段によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に含まれる第２の装置に送信する第１の送信手段とを有し、
前記複数の装置のいずれかを送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記送信先に送信する第２の送信手段と
を有することを特徴とする装置。
【０１０９】
（付記４）複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手段と、
前記生成手段によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に含まれる監視対象の装置に送信する送信手段と
を有することを特徴とする監視装置。
【０１１０】
（付記５）複数のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータ及び前記第３のデータを識別する情報を、複数の装置を監視する監視装置から取得する取得手段と、
前記監視装置を送信先とする第４のデータに示される文字列が、前記取得手段によって取得された前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記送信先に送信する送信手段と
を有することを特徴とする監視対象装置。
【０１１１】
（付記６）監視システムが複数の装置を監視する監視方法であって、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成工程と、
前記生成工程によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に送信する第１の送信工程と、
前記複数の装置のいずれかを送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記送信先に送信する第２の送信工程と
を含むことを特徴とする監視方法。
【０１１２】
（付記７）複数の装置と通信可能なコンピュータに、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手順と、
前記生成手順によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に送信する第１の送信手順と、
前記複数の装置のいずれかを送信先とする第４のデータに示される文字列が、前記第３のデータに示される文字列を含む場合に、前記第４のデータに示される文字列から、前記第３のデータに示される文字列を除いた文字列を示す第５のデータと、前記第３のデータを識別する情報とを前記送信先に送信する第２の送信手順と
を実行させることを特徴とする監視プログラム。
【０１１３】
（付記８）複数の装置と通信可能なコンピュータに、
前記複数の装置との通信により取得した第１のデータ及び第２のデータに示されるそれぞれの文字列が予め定められた割合以上一致する場合に、一致した部分の文字列を示す第３のデータを生成する生成手順と、
前記生成手順によって生成された前記第３のデータ及び前記第３のデータを識別する情報を、前記複数の装置に含まれる監視対象の装置に送信する送信手順と
を実行させることを特徴とする監視プログラム。
【符号の説明】
【０１１４】
１、１Ａ  監視システム
２  第１の装置
２Ａ  監視装置
３  第２の装置
３Ａ  監視対象装置
４  監視クライアント
２０、４０  制御部
２１  メッセージログＤＢ
２２  保持データ記憶部
２３、４３  蓄積データＤＢ
３１、５３  通信制御部
３２、５２  蓄積データ管理部
３２Ａ  メッセージ復元部
３２Ｂ  メッセージ類似判定部
３２Ｃ  蓄積データ差分配付部
３３  メッセージログ管理部
４１  メッセージ記憶部
５１  新規メッセージ取得部
５２Ａ  メッセージ一致判定部
５２Ｂ  蓄積データ差分更新部
【図１】
0005488317.tif 000002
【図２】
0005488317.tif 000003
【図３】
0005488317.tif 000004
【図４】
0005488317.tif 000005
【図５】
0005488317.tif 000006
【図６】
0005488317.tif 000007
【図７】
0005488317.tif 000008
【図８−１】
0005488317.tif 000009
【図８−２】
0005488317.tif 000010
【図８−３】
0005488317.tif 000011
【図８−４】
0005488317.tif 000012
【図９】
0005488317.tif 000013
【図１０】
0005488317.tif 000014