(57)【要約】  本発明は、ネットワーク内でのメッセージ型を認知し識別する方法であって、その認知と識別は、ネットワーク内のメッセージに含まれる情報のみに基づく方法を提供する。一実施例において、本方法は、現在のメッセージを、以前に定義した一つあるいはそれ以上の数のメッセージ構造と比較するステップと、比較方法を適用し、現在のメッセージの構造が、以前に定義したメッセージ構造のいずれか一つに合致しているかどうかを推論するステップとを含んでいる。また、本発明は、計算ノードからのメッセージの入力又は出力の集合を分類し、このメッセージの集合を、類似のメッセージからなるサブセットに分割し、各サブセットのメッセージの構造の特徴付けを行う。さらに、本発明は、ネットワークの計算ノードに入力するメッセージ型と、ネットワークの計算ノードから出力するメッセージ型との間の因果関係を、一つあるいはそれ以上の数の統計試験を用いて推論する方法を提供する。さらに、本発明は、分散情報ネットワーク内のトランザクションを監視するシステムを提供する。本システムは、分類モジュールと相関モジュールを実行する収集サーバを含んでいる。管理サーバは、収集サーバからのデータを分析し、システム内のトランザクションの性能を求める。【特許請求の範囲】
【請求項１】
ネットワーク内のメッセージ型を認知し識別する方法であって、二つあるいはそれ以上の数のメッセージに含まれる情報のみに基づいて、メッセージ型を学習し、識別するステップを含む方法。
【請求項２】
請求項１記載の方法において、
（ａ）現在のメッセージを、一つあるいはそれ以上の数の以前に定義したメッセージ型と比較するステップと、
（ｂ）現在のメッセージの型が、以前に定義したメッセージ型のいずれか一つと合致するかどうかを推論するために、比較方法を適用するステップ
とを含むことを特徴とする方法。
【請求項３】
計算ノードに入力する又は計算ノードから出力するメッセージの集合を分類する方法であって、メッセージの集合を、類似のメッセージからなるサブセットに分割するステップと、各サブセットのメッセージの構造を特徴付けるステップとを含むことを特徴とする方法。
【請求項４】
請求項３記載の方法において、計算ノードに入力する又は計算ノードから出力するメッセージの集合を分割するステップは、多様性関数として、メッセージ位置合わせ評価を用いる階層的分類アルゴリズムを含むことを特徴とする方法。
【請求項５】
ネットワーク内の計算ノードに入力するメッセージ型と、計算ノードから出力するメッセージ型との間の因果関係を推論する方法であって、一つあるいはそれ以上の数の統計試験を適用するステップを含むことを特徴とする方法。
【請求項６】
請求項５記載の方法において、一つあるいはそれ以上の数の統計試験の、一つあるいはそれ以上の数の出力は、バイナリ出力値であることを特徴とする方法。
【請求項７】
請求項５記載の方法において、一つあるいはそれ以上の数の統計試験の、一つあるいはそれ以上の数の出力は、ゼロ仮説が正しいものであると仮定し、二つの集合に因果関係があるというゼロ仮説を棄却する確率の一つあるいは両者であることを特徴とする方法。
【請求項８】
請求項５記載の方法において、統計試験は、入力メッセージ型の時系列と、出力メッセージ型の時系列の畳み込みを計算するステップを含むことを特徴とする方法。
【請求項９】
請求項８記載の方法において、さらに、畳み込みが最大となる遅延τと、遅延τでの畳み込みの値の一つあるいは両者を計算するステップを含むことを特徴とする方法。
【請求項１０】
請求項５記載の方法において、入力メッセージ型は、推論された構造を有し、出力データ型は、推論された構造を有し、統計試験は、入力メッセージ型と出力メッセージ型が因果関係を有するかどうかを、入力メッセージ型の推論された構造と、出力メッセージ型の推論された構造の変数フィールドの値に基づいて推論するステップを含むことを特徴とする方法。
【請求項１１】
請求項１０記載の方法において、文字列照合方法を含むことを特徴とする方法。
【請求項１２】
請求項５記載の方法において、二つあるいはそれ以上の数の統計試験を適用するステップを含むことを特徴とする方法。
【請求項１３】
請求項１２記載の方法において、さらに、二つあるいはそれ以上の数の統計試験に基づいて最終的な推論結果を求めることを特徴とする方法。
【請求項１４】
請求項１３記載の方法において、少なくとも、あらかじめ定められた数の試験が、メッセージ型に因果関係があると判定した場合、最終的な推論結果は、入力及び出力メッセージ型に因果関係があるという結果であり、そうでない場合、最終的な推論結果は、入力及び出力メッセージ型に因果関係はないという結果であることを特徴とする方法。
【請求項１５】
請求項５記載の方法において、さらに、一つあるいはそれ以上の数の統計試験の各々について、統計によって、入力メッセージ型と出力メッセージ型に因果関係があると推論された際に、統計試験に基づいて最新の時間枠における入力及び出力メッセージ型の組の挙動の、一つあるいはそれ以上の数の統計値を、計算するステップを含むことを特徴とする方法。
【請求項１６】
請求項１５記載の方法において、計算された統計値は、出力メッセージ型を許可する入力メッセージ型の平均サービス時間であることを特徴とする方法。
【請求項１７】
分散ネットワーク内のトランザクションを監視するシステムであって、
（ａ）管理サーバと、
（ｂ）一つあるいはそれ以上の数の収集サーバとを含み、各収集サーバは、分類モジュール及び相関モジュールのいずれか一つ、あるいはそれら両方を実行するように構成され、さらい、各メッセージ収集サーバは、分類モジュール及び相関モジュールのいずれか一つ、あるいはそれら両方からの出力を管理サーバに送出し、管理サーバは、システムのトランザクション性能を決定するために一つあるいはそれ以上の数の収集サーバからのデータを分析するように構成されていることを特徴とするシステム。
【請求項１８】
請求項１７記載のシステムにおいて、管理サーバは、さらに、ネットワーク内のトランザクションを再構成するために、一つあるいはそれ以上の数の収集サーバからのデータを分析するように構成されていることを特徴とするシステム。
【請求項１９】
請求項１７記載のシステムにおいて、一つあるいはそれ以上の数の収集サーバは、分類モジュールを実行するように構成されていることを特徴とするシステム。
【請求項２０】
請求項１９記載のシステムにおいて、分類モジュールは、二つあるいはそれ以上の数のメッセージに含まれる情報のみに基づいて、メッセージ型を学習し、識別するように構成されていることを特徴とするシステム。
【請求項２１】
請求項２０記載の、メッセージを認知し識別するシステムは、
（ａ）現在のメッセージの型を、一つあるいはそれ以上の数の以前に定義したメッセージ型と比較するステップと、
（ｂ）現在のメッセージの型が、以前に定義したメッセージ型のいずれか一つと合致するかどうかを推論するために、一つあるいはそれ以上の数の統計試験を適用するステップと、
（ｃ）もし、現在のメッセージ型に合致するものが、以前に定義したメッセージ型の中にあると推論された場合に、メッセージを、そのネットワークデータと、推論された構造とともに、メモリ内に格納するステップとを含むことを特徴とするシステム。
【請求項２２】
請求項２１記載のシステムにおいて、メッセージを学習し識別するステップは、さらに、もし、現在のメッセージ型に合致するものが、以前に定義したメッセージ型の中にあると推論されなかった場合に、各サブセットのメッセージが、同一の推論された構造を有し、特定のメッセージ型を有するものであると推論されるように、計算ノードに入力する又は計算ノードから出力するメッセージの集合を、メッセージのサブセットに分割するステップを含むことを特徴とするシステム。
【請求項２３】
請求項２２記載のシステムにおいて、計算ノードに入力する又は計算ノードから出力するメッセージの集合を分割するステップは、多様性関数として、メッセージ位置合わせ評価を用いる階層的分類アルゴリズムを含むことを特徴とするシステム。
【請求項２４】
請求項１７記載のシステムにおいて、一つあるいはそれ以上の数の収集サーバは、相関モジュールを実行するように構成されていることを特徴とするシステム。
【請求項２５】
請求項２４記載のシステムにおいて、相関モジュールは、一つあるいはそれ以上の数の統計試験を適用するアルゴリズムによって、計算ノードに入力するメッセージ型と、計算ノードから出力するメッセージ型との間の因果関係を推論することを特徴とするシステム。
【請求項２６】
請求項２５記載のシステムにおいて、一つあるいはそれ以上の数の統計試験の、一つあるいはそれ以上の数の出力は、バイナリ出力値であることを特徴とするシステム。
【請求項２７】
請求項２５記載のシステムにおいて、一つあるいはそれ以上の数の統計試験の、一つあるいはそれ以上の数の出力は、ゼロ仮説が正しいものであると仮定し、二つの集合に因果関係があるというゼロ仮説を棄却する確率の一つあるいは両者であることを特徴とするシステム。
【請求項２８】
請求項２５記載のシステムにおいて、統計試験は、入力メッセージ型の時系列と、出力メッセージ型の時系列の畳み込みを計算するステップを含むことを特徴とするシステム。
【請求項２９】
請求項２８記載のシステムにおいて、さらに、畳み込みが最大となる遅延τと、遅延τでの畳み込みの値の一つあるいは両者を計算するステップを含むことを特徴とするシステム。
【請求項３０】
請求項２５記載のシステムにおいて、入力メッセージ型は、推論された構造を有し、出力データ型は、推論された構造を有し、統計試験は、入力メッセージ型と出力メッセージ型が直接的な因果関係を有するかどうかを、入力メッセージ型の推論された構造と、出力メッセージ型の推論された構造の変数フィールドの値に基づいて推論するステップを含むことを特徴とするシステム。
【請求項３１】
請求項３０記載のシステムにおいて、データ相関アルゴリズムは、文字列照合方法を含むことを特徴とするシステム。
【請求項３２】
請求項２５記載のシステムにおいて、相関モジュールは、二つあるいはそれ以上の数の統計試験を適用することを特徴とするシステム。
【請求項３３】
請求項３２記載のシステムにおいて、相関モジュールは、二つあるいはそれ以上の数の統計試験に基づいて最終的な推論結果を求めることを特徴とするシステム。
【請求項３４】
請求項３３記載のシステムにおいて、少なくとも、あらかじめ定められた数の試験が、メッセージ型に因果関係があると判定した場合、最終的な推論結果は、入力及び出力メッセージ型に因果関係があるという結果であり、そうでない場合、最終的な推論結果は、入力及び出力メッセージ型に因果関係はないという結果であることを特徴とするシステム。
【請求項３５】
請求項２５記載のシステムにおいて、相関モジュールは、さらに、一つあるいはそれ以上の数の統計試験の各々について、統計によって、入力メッセージ型と出力メッセージ型に因果関係があると推論された際に、統計試験に基づいて最新の時間枠における入力及び出力メッセージ型の組の挙動の、一つあるいはそれ以上の数の統計値を、計算するように構成されていることを特徴とするシステム。
【請求項３６】
請求項１５記載のシステムにおいて、計算された統計値は、入力メッセージ型の入力メッセージと、出力メッセージ型の出力メッセージの平均サービス時間であることを特徴とするシステム。
【請求項３７】
請求項１７記載のシステムにおいて、管理サーバは、さらに、ネットワーク内のトランザクションを再構成するように構成されていることを特徴とするシステム。
【請求項３８】
請求項１７記載のシステムにおいて、管理サーバは、さらに、一つあるいはそれ以上の数の収集サーバによって与えられた、それらの間に因果関係を有する入力メッセージ型と出力メッセージ型の各組の性能に関する統計値から、ネットワークの基準となる挙動を導き出すように構成されていることを特徴とするシステム。
【請求項３９】
請求項３８記載のシステムにおいて、管理サーバは、一つあるいはそれ以上の数の統計の現在値を、一つあるいはそれ以上の数の統計の一つあるいはそれ以上の数の基準値と比較するように構成されていることを特徴とするシステム。
【請求項４０】
請求項３９記載のシステムにおいて、管理サーバは、一つあるいはそれ以上の数の統計の現在値が、その基準となる挙動から著しく逸脱している際に、警報を出すように構成されていることを特徴とするシステム。
【請求項４１】
請求項１７記載のシステムにおいて、さらにモニタを含むことを特徴とするシステム。
【請求項４２】
請求項４１記載のシステムにおいて、管理サーバは、モニタ上に警報を表示するように構成されていることを特徴とするシステム。
【請求項４３】
請求項１９記載のシステムにおいて、管理サーバはメッセージ再構成器を含み、さらに、
（ａ）トランスポート層のメッセージトラフィックを収集するネットワーク・インフラストラクチャ・カード（ＮＩＣ）と、
（ｂ）ネットワーク・インフラストラクチャ・カードを空にして、ＴＣＰパケットを、シン・スタック・モジュールに送るスニファモジュールと、
（ｃ）ＴＤＣＰフローを再構成する、シン・スタック・モジュールと、
（ｄ）ＴＣＰフローを受信し、アプリケーション層のメッセージを再構成するメッセージ検出器と、
（ｅ）ＴＣＰフローを受信し、パケットの各集合をメッセージを構成するバイトストリングに変換するために、パケット内のネットワーク情報を用いて、ＴＣＰフローをアプリケーション層のメッセージを構成するパケットの集合に分割し、変換したシーケンスを分類モジュールに出力するメッセージ検出器を含むことを特徴とするシステム。
【請求項４４】
コンピュータプログラムであって、前記プログラムをコンピュータ上で実行する際に、請求項のいずれか、請求項１から１６のいずれか一つの全てのステップを実行するための、コンピュータ・プログラム・コード手段を含むことを特徴とするコンピュータプログラム。
【請求項４５】
コンピュータで読取り可能な媒体に実装された、請求項４３記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワークのトランザクション監視のための方法及びシステムに関するものである。
【背景技術】
【０００２】
近年の企業規模で導入される典型的な技術を概観すると、その情報システムが分散化されているという特性と、そのシステムが様々な技術から成り立っているという様相を呈している。何十年という発展と革新を経た後、ＥＲＰ、ＣＲＭ、ＳＣＭ、ＳＲＭ、ＰＬＭ等の最善のパッケージ化されたアプリケーションと、自社開発システムと、さらにレガシーアプリケーションがあり、各々は、それらを相互に接続する多くのインターフェースを備えていることが一般的になってきた。これらの分散した複雑な環境では、通常のトランザクションの処理は、多くのアプリケーションを介在し、技術的な境界を越えて動作するものとなり、これにより、企業にとっては、トランザクションの実行経路や、それらの論理的、技術的な相互依存性を理解することが不可能となることも多くなってきた。
トランザクションがどのように実行されるかに関する必要知識がないと、企業は、トランザクションを監視し、それらの隘路及び遅延並びに故障箇所を検出し解決する能力に著しい制約を受けることになる。
【０００３】
従って、企業組織は、トランザクションの可視性とビジネス効率との間の直接的な相関を見る際に、自動化されたビジネストランザクションの可視性を向上させる要望が生じている。高いレベルの可視性を達成することにより、企業は、顧客サービスを改善し、トランザクションの効率と健全性を監視し、ビジネス論理を最適化し、さらに、企業自身が提起する問題に対して、効率的な解決策を実行することが可能となる。
【０００４】
クライン（Ｋｌｅｉｎ）他による米国特許公開２００５／０１９２８９４は、あらかじめ定義されたトランザクション情報を用いて、トランザクションのインスタンス内のメッセージの組の間でテキストの相関関係を求めることにより、トランザクションのインスタンスを再構築する方法を開示している。
【０００５】
ブラックウェル（Ｂｌａｃｋｗｅｌｌ）他による米国特許番号７，００３，７８１は、分散データ処理システムを監視する方法及びシステムを開示している。生成されたアプリケーション・プログラム・インターフェース（ＡＰＩ）コールを検査し、特定のＡＰＩコールが、あらかじめ定められたＡＰＩコールの基準を満たすかどうかを判定する。もし、特定のＡＰＩコールが、あらかじめ定められたＡＰＩコールの基準を満たしているならば、ＡＰＩコールのコンテンツの一部を、ストアド・イベントとして格納する。ストアド・イベントを処理して、特定のビジネストランザクションに属するイベントなど、論理的な相関関係をもつイベントを特定する。格納されたＡＰＩコールのコンテンツデータは、論理的な相関関係をもつイベントとして表示される。
【０００６】
アロン（Ａｌｏｎ）他による米国特許公開２００６００１５５１２は、多層計算機環境の中から、選択した層を監視する装置を開示している。本装置は、コンテキストエージェントと動的層拡張とを含んでいる。コンテキストエージェントは、選択した層に関連したものであり、他のコンテキストエージェントと結合されており、各コンテキストエージェントは、各層に対応したものとなっている。動的層拡張は、コンテキストエージェントと、少なくとも選択した層の要求入力ポートなどの、選択した層の特定のあらかじめ定められた点とに結合されている。動的層拡張は、選択した層を通過する要求トラフィックを監視し、監視される要求トラフィックには、隣接した層から要求入力ポートで受信した少なくとも一つの入力要求が含まれている。動的層拡張は、監視される要求トラフィックの中から個々の要求を識別し、コンテキストエージェントに少なくとも要求識別子を送る。また、コンテキストエージェントは、隣接した層のコンテキストエージェントから、入力要求の要求コンテキストに関する情報を受信する。コンテキストエージェントは、受信した要求識別子に従って、入力要求の要求コンテキストに関する情報を、入力要求に関連付ける。
【０００７】
以下の説明とクレームで用いられる用語を、それらの定義とともに以下に用語集としてまとめる。これらの用語のいくつかは、従来技術で公知ものであり、他のものは、新たに創り出したものである。
【０００８】
計算ノード
計算ノードとは、情報を受信及び／又は生成する、通信ネットワークのノードである。便宜上、計算ノードは、単に、“ノード”と呼ぶこととする。ノードの例としては、Ｗｅｂサーバ、データベースサーバ、待ち行列、仮想環境での仮想サーバ、サーバ内のプロセスがある。クラスタ、多重化システム、同一サーバ内の複数のインスタンスは、単一ノードとして考えるものとする。
【０００９】
メッセージ
メッセージとは、アプリケーション層上で送られる情報の単位である。メッセージに関する情報は、三種類のものがある。すなわち、ネットワーク情報（ＴＣＰ／ＩＰ）及びインスタンス情報並びにアプリケーション（アプリケーション層）情報である。
例：ＰＣからＷｅｂサーバへの、Ｗｅｂページに対する要求を含むメッセージ。これは、メソッド“ｇｅｔ”のＨＴＴＰメッセージである。銀行のデータベースへの“Ｕｐｄａｔｅ”メッセージを考える。このメッセージは、以下の構造を持つものと仮定する、すなわち、
型：更新（Ｕｐｄａｔｅ）。セッションＩＤ（ＳｅｓｓｉｏｎＩＤ）：ＸＸＸ。動作（Ａｃｔｉｏｎ）：預け入れ（Ｄｅｐｏｓｉｔ）／引き出し（Ｗｉｔｈｄｒｅｗ）。口座番号（ＡｃｃｏｕｎｔＮｕｍ）：ＸＸＸ。金額（Ａｍｏｕｎｔ）：ＸＸＸ。
【００１０】
メッセージ型
ネットワーク内の特定の起点ノードから、特定の宛先ノードに送られる、二つあるいはそれ以上の数のメッセージが、同一の構造を有し、アプリケーションで同一の動作を起こす場合、これらのメッセージは同一の型として考える。
【００１１】
入力メッセージ型と出力メッセージ型との間の直接的な因果関係
型Ａのメッセージがその宛先ノードに到着することで、型Ｂのメッセージが、そのノードから生成される場合、型Ａと型Ｂの二つのメッセージは因果関係を有している。
例：４つの条件（ｓｏｕｒｃｅ）により承認された場合のみ実行する、“買い（Ｂｕｙ）”注文を考える。その場合、“買い”メッセージとの直接的な因果関係が、４つの全ての承認メッセージとの間に存在する。
【００１２】
本発明は、その観点の一つにおいて、メッセージの構造に基づいて、以前に検出したメッセージの構造とメッセージとを比較することにより、メッセージの型の推論を試みる分類モジュールを提供する。以前に検出したメッセージの構造に基づいて、クラシファイアにより定義されたメッセージ構造と、現在のメッセージの構造とを比較する高速検出モジュールに、メッセージを入力する。高速検出モジュールは、一つあるいはそれ以上の数の統計試験を適用し、現在のメッセージの構造が、以前に検出されたメッセージの構造のいずれか一つに合致するかどうかを推論する。高速検出モジュールが、現在のメッセージの構造と合致するものが、以前に検出されたメッセージの構造の中に見つけ出すことができた場合には、そのメッセージを、そのネットワークデータと推論により見つけ出した構造とともに、コレクタの中に格納する。高速検出モジュールが、現在のメッセージの構造と合致するものを、メモリ内のメッセージの構造に見つけ出すことができなかった場合には、そのメッセージを、クラシファイアに入力する。クラシファイアは、各計算ノードに到達し、各計算ノードから送出され、高速検出モジュールでは特定されなかった構造をもつメッセージを収集する。クラシファイアは、計算ノードに入力又は計算ノードから出力されるメッセージの集合を、メッセージのサブセットに分割するための分類アルゴリズムを実行し、各サブセットに含まれるメッセージは、いずれもが同一の構造を有し、特定のメッセージ型を有するものと判定する。本アルゴリズムは、分割によって定義されたメッセージの各型について、そのメッセージ型を表す、推論されたメッセージの構造を戻す。
【００１３】
高速検出モジュールのメモリは、メッセージ型に対して推論された構造のリストを保持しており、クラシファイアがメッセージの新しい構造を検出する毎に、このリストは、クラシファイアによって更新される。さらに、クラシファイアは、分類モジュールに入力されたメッセージ内に含まれる情報のみに基づいてメッセージ型を認知し、メッセージ型について事前に定義された知識や、ユーザが提供した他の定義に頼ることはない。
【００１４】
本発明は、その他の観点において、計算ノードでの、入力メッセージ型と出力メッセージ型と間の因果関係を推論する相関モジュールを提供する。相関モジュールは、各計算ノードに対して、特定の時間内に計算ノードに入力するメッセージの集合の第一集合と、それと同じ時間内に計算ノードから出力するメッセージの集合の第二集合とを保持する。ここで、各集合に含まれるメッセージは、推論された同一のメッセージ型を有している。一つあるいはそれ以上の数の統計試験を適用し、計算ノードに入力するメッセージの型と、計算ノードから出力するメッセージの型との間の因果関係を検出する。各試験の結果として、メッセージの入力集合と出力集合との間の因果関係の強さを示す出力を生成する。二つあるいはそれ以上の数の試験を行った場合には、それらの試験の出力を、メッセージ型相関器に入力する。メッセージ型相関器は、入力メッセージ型と出力メッセージ型の各組に関して、入力メッセージ型と出力メッセージ型とが因果関係を有するかどうかを表す、最終的な推論結果を出力する。
【００１５】
入力メッセージ型と出力メッセージ型の各組に関して、それら二者間に因果関係があると推論した組について、メッセージ型相関器は、計算ノードでの、その組に対するサービス時間など、その組に関する統計値を出力する。
【００１６】
本発明は、さらに他の観点において、分散情報ネットワークでのトランザクションを監視するシステムを提供する。本発明の監視システムは、ネットワークのトランスポート層でのデータフローに基づくものであり、その監視方法は非浸入性を有し、トランザクション又はメッセージに関してあらかじめ定義された情報を必要としないものである。本発明のこの観点によれば、本システムは、一つあるいはそれ以上の数の収集サーバと管理サーバを含んでいる。各収集サーバは、本発明の分類モジュールと相関モジュールを実行する。管理サーバは、ネットワーク内の各収集サーバに格納した分析結果の中から、ネットワーク内のメッセージフローに関する情報を収集する。管理サーバに集められたデータを用いて、ネットワーク内のトランザクションを再構成し、各収集サーバによって与えられた、ルーティング時間とサービス時間の性能に関する統計値から、ネットワーク内のトランザクションの基準となる挙動を導き出す。統計の現在値を、基準となる挙動と比較し、ネットワークの現在の挙動が基準となる挙動から著しく逸脱している場合には、警報を出すことができる。本システムは、これらの警報と、ネットワークに関する関連情報とを表示するためのモニタを含んでもよい。
【００１７】
以上のように、本発明は、その第一の観点において、ネットワーク内のメッセージ型を認知し、それを識別する方法であって、二つあるいはそれ以上の数のメッセージに含まれる情報のみに基づいて、メッセージ型を学習するステップとそれを識別するステップとを含む方法を提供する。
【００１８】
本発明は、その第二の観点において、計算ノードに入力するメッセージ又は計算ノードから出力するメッセージの集合を分類する方法であって、メッセージの集合を、同一のメッセージからなるサブセットに分割するステップと、各サブセットのメッセージの構造を特徴づけるステップとを含む方法を提供する。
【００１９】
本発明は、その第三の観点において、ネットワーク内の計算ノードに入力するメッセージ型と、計算ノードから出力するメッセージ型との間の因果関係を推論する方法であって、一つあるいはそれ以上の数の統計試験を適用するステップを含む方法を提供する。
【００２０】
また、本発明は、その第四の観点において、分散情報ネットワーク内のトランザクションを監視するシステムであって、以下を含むシステムを提供する。
（ａ）管理サーバ
（ｂ）一つあるいはそれ以上の数のメッセージ収集サーバ。各収集サーバは、分類モジュール及び相関モジュールのいずれか一つ、あるいはそれら両方を実行するように構成され、さらに、各メッセージ収集サーバは、分類モジュール及び相関モジュールのいずれか一つ、あるいはそれら両方からの出力を、管理サーバに送出する。ここで、管理サーバは、一つあるいはそれ以上の数の収集サーバからのデータを分析し、システムのトランザクション性能を求めるように構成されている。
【００２１】
また、本発明は、本発明の方法の全てのステップを実行するためのコンピュータ・プログラム・コード手段を含む、コンピュータプログラムを提供する。ここで、前記プログラムは、コンピュータ上で実行され、このコンピュータプログラムは、コンピュータで読取り可能な媒体に実装されている。
【００２２】
本発明を理解し、それがどのように実施されるかを知るために、添付の図面を引用し、制限を与えることのない例のみにより、好適な実施例を以下で説明する。
【実施例】
【００２３】
ネットワーク内の計算ノード間で送られる各メッセージは、そのメッセージ型に特有の構造規則を用いて作成される。従って、同一の型のメッセージは、共通の構造を有している。図１に、メッセージ構造の一例を示す。構造６００は、複数の定数フィールド６０１から構成されており、ここで、各定数フィールド６０１の後には、変数フィールド６０２が続いている。所定の型の全てのメッセージは、同一の定数フィールド６０１を有しているが、同一の型のメッセージでは、各メッセージは、変数フィールドには異なる値を有している。図１では、３つの定数フィールド６０２を示している。これは一例であって、メッセージの構造は、任意の数の定数フィールドを有するものであってよい。
【００２４】
図２は、本発明の本観点の一実施例による、一般的に要素２０５で表した分類モジュールを示すものである。分類モジュール２０５は、以下に説明する認知と識別のアルゴリズムを用いて、所定のメッセージの型を推論することを試みる。ここで、分類モジュール２０５によって、メッセージを、以前に検出したメッセージ構造と比較する。分類モジュール２０５は、クラシファイア３０３とコレクタ３０２と通信するメモリ３１１を有する高速検出モジュール３０１を含んでいる。
【００２５】
図３は、本発明の本観点の一実施例による、分類モジュール２０５によって実行される、メッセージ型の認知及び識別の方法を示すものである。ステップ２０において、高速検出モジュール３０１にメッセージを入力する。ステップ２２において、高速検出モジュール３０１は、メモリ３１１内に格納された、以前に検出したメッセージ構造に基づいて、現在のメッセージを、クラシファイア３０３によって定義されたメッセージ構造と比較する。この比較は、メッセージを構造に位置合わせし、構造の定数フィールドに対するメッセージの類似度を最大化することによって行われる。ここで用いる位置合わせ方法は、例えば、ダン・グスフィールド（Ｄａｎ Ｇｕｓｆｉｅｌｄ）“文字列及びツリー並びに順列に関するアルゴリズム”、１９９７年ケンブリッジ大学出版局発行、２１５ページ〜２４５ページに記載されている。ステップ２４において、高速検出モジュール３０１が、メモリ３１１に格納されたメッセージ構造の中から、現在のメッセージに合致するものを識別できたかどうかを判定する。高速検出モジュール３０１が、メモリに格納されたメッセージ構造の中から、現在のメッセージに合致するものを識別できた場合には、ここでは、識別されたメッセージ構造を、入力メッセージの“推論された構造”と称して、ステップ２６において、そのメッセージを、そのネットワークデータと推論された構造とともに、コレクタ３０２に格納し、処理を終える。
【００２６】
もし、ステップ２４において、高速検出モジュール３０１が、メモリに格納されたメッセージ構造の中から、現在のメッセージに合致するものを識別できなかった場合には、ステップ２８に進み、そこで、クラシファイア３０３にメッセージを入力する。クラシファイア３０３は、高速検出モジュール３０１ではその構造が識別されなかったメッセージについて、各計算ノードに到達したものと、各計算ノードから送出されるものとを集める。ステップ３０において、クラシファイア３０３は、分類アルゴリズムを実行し、これにより、計算ノードに入力するメッセージと計算ノードから出力するメッセージの集合を、同一のメッセージからなるサブセットに分割する。一実施例において、分類アルゴリズムは、メッセージの位置合わせ度を多様性関数として用いる階層的分類アルゴリズムを用いる。位置合わせ度の評価は、例えば、ダン・グスフィールド（Ｄａｎ Ｇｕｓｆｉｅｌｄ）“文字列及びツリー並びに順列に関するアルゴリズム”、１９９７年ケンブリッジ大学出版局発行、２１５ページ〜２４５ページに記載されているように行う。さらに、各サブセットについて、サブセット内の全てのメッセージについて、共通の構造を推論する。このために、サブセット内の全てのメッセージを、同時に位置合わせする。サブセット内の全てのメッセージで、実質的に同一のフィールドは、定数フィールドとして表す。その他のフィールドは、変数フィールドとして表す。分類アルゴリズムは、分割によって定義された個々のメッセージ型について、メッセージ型の推論された構造を、その処理結果として戻す。ステップ３２において、これらの新しいメッセージ構造を、高速検出モジュール３０１のメモリ３１１に入力し、処理を終える。
【００２７】
このようにして、高速検出モジュール３０１のメモリ３１１は、クラシファイア３０３が、新しいメッセージ構造を検出する毎に、クラシファイア３０３によって更新されたメッセージ構造のリストを保持している。さらに、クラシファイア３０３は、分類モジュール３０３に入力されたメッセージ内に含まれる情報のみに基づいて、メッセージ型を学習し、メッセージ型について事前に定義された知識や、ユーザが提供した他の定義に頼ることはない。
【００２８】
図４は、本発明の本観点の一実施例による、一般的に要素３０６で表した相関モジュールを示すものである。相関モジュール３０６は、図２に示したコレクタ３０２となるコレクタ３１０を含んでいる。さらに、相関モジュール３０６は、相関器３０４と分析結果ストレージ３０５を含んでいる。
【００２９】
コレクタ３１０は、各計算ノードに対して、特定の時間内に計算ノードに入力するメッセージの集合の第一集合と、それと同じ時間内に計算ノードから出力するメッセージの集合の第二集合とを保持する。ここで、各集合に含まれる全てのメッセージは、推論された同一のメッセージ型を有しており、その結果、同一のメッセージ型となっている。第一及び第二集合は、相関器３０４に入力される。
【００３０】
図５は、相関器３０４の構造を示すものである。相関器３０４は、一つあるいはそれ以上の数の試験モジュール５１０を含んでいる。各試験モジュールは、統計試験を適用し、計算ノードに入力するメッセージ型と、計算ノードから出力するメッセージ型との間の因果関係を検出する。統計試験は、入力メッセージ型のメッセージの集合と、出力メッセージ型のメッセージの集合とからなる各組に対して行う。試験モジュール５１０によって行われる各試験で、モジュールは、入力メッセージの集合と出力メッセージの集合との間の因果関係の強さを表す出力５１５を出力する。一実施例において、一つあるいはそれ以上の数の出力５１５は、バイナリ出力値である。その値が“１”であることは、試験モジュールが、入力メッセージ型と出力メッセージ型との間に因果関係があると判定したことを示している。一方、その値が“０”であることは、試験モジュールが、入力メッセージ型と出力メッセージ型との間には因果関係がないと判定したことを示している。他の実施例において、一つあるいはそれ以上の数の出力５１５は、ゼロ仮説が正しいものと仮定し、ゼロ仮説を棄却する（二つの集合が互いに因果関係がある）確率の形式となっている。
【００３１】
試験モジュール５１０によって実行される試験の一例としては、試験モジュール５１０が、コレクタ３１０から、メッセージの各集合の時系列を受け取るものがある。この時系列は、発生事象のリストから構成されおり、各発生事象は、集合内のメッセージの到着又は送信時刻である。さらに、入力メッセージの集合と、出力メッセージの集合と各組について、試験モジュール５１０は、入力と出力の時系列の畳み込みを計算するアルゴリズムを実行し、畳み込み値が最大となる遅延τと、その遅延τでの畳み込み値とを求める。一実施例において、畳み込み値の最大値が、あらかじめ定められた閾値を超えた場合には、時間試験モジュール５１０は、入力メッセージ型と出力メッセージ型との間に因果関係があることを表す値“１”を出力する。そうでない場合には、時間試験モジュール５１０は、入力メッセージ型と出力メッセージ型との間には因果関係がないことを表す値“０”を出力する。他の実施例において、試験モジュール５１０は、畳み込み値の最大値が、少なくともランダムプライア（ｒａｎｄｏｍ  ｐｒｉｏｒ）の元で試験モジュールが計算した値となる確率を計算する。
【００３２】
試験モジュール５１０によって実行される試験の第二の例としては、試験モジュール５１０が、データ相関アルゴリズムを実行するものがある。このアルゴリズムは、入力メッセージ型と出力メッセージ型とが直接的な因果関係を有するかどうかを、入力メッセージ型の推論された構造と出力メッセージ型の推論された構造の各変数フィールド６０２の値に基づいて判定するものである。本アルゴリズムは、入力メッセージの集合の一つあるいはそれ以上の数の変数フィールド６０２内のデータの、出力メッセージの集合の一つあるいはそれ以上の数の変数フィールド内のデータに対する類似性を調べることにより、入力の集合に基づいて出力の集合が生成された確率を求める。変数フィールドの所定の値に基づいた確率の計算は、例えば、文字列照合方法を用いることによって行うこともできる。この方法は、例えば、例えば、ダン・グスフィールド（Ｄａｎ Ｇｕｓｆｉｅｌｄ）“文字列及びツリー並びに順列に関するアルゴリズム”、１９９７年ケンブリッジ大学出版局発行、２１５ページ〜２４５ページに記載されている。一実施例において、確率が、あらかじめ定められた閾値を超えた場合には、データを考慮することにより、メッセージ型には因果関係があると考えられる。他の実施例において、試験モジュール５１０は、入力の集合に基づいて出力の集合が生成された確率を求める。
【００３３】
一例として、入力メッセージの集合が、以下のメッセージリストである場合を説明する。
ＩＤＪｏｈｎＳｍｉｔｈ１２３４ＣｏｍｍａｎｄＢＵＹＳｙｍｂｏｌＣＧＥＮＡｍｏｕｎｔ１５００
ＩＤＭａｒｋＳｍｉｔｈ１２３５ＣｏｍｍａｎｄＢＵＹＳｙｍｂｏｌＣＧＥＮＡｍｏｕｎｔ１５００
ＩＤＪｏｈｎＣｏｈｅｎ１２３６ＣｏｍｍａｎｄＢＵＹＳｙｍｂｏｌＣＧＥＮＡｍｏｕｎｔ１６００
さらに、入力メッセージの集合が、以下のメッセージリストである場合を説明する。
ＣｏｍｍａｎｄＣｈｅｃｋｂａｌａｎｃｅＦｉｒｓｔＮａｍｅＪｏｈｎＬａｓｔＮａｍｅＳｍｉｔｈＡｃｃｏｕｎｔＮｕｍ１２３４
ＣｏｍｍａｎｄＣｈｅｃｋｂａｌａｎｃｅＦｉｒｓｔＮａｍｅＭａｒｋＬａｓｔＮａｍｅＳｍｉｔｈＡｃｃｏｕｎｔＮｕｍ１２３５
ＣｏｍｍａｎｄＣｈｅｃｋｂａｌａｎｃｅＦｉｒｓｔＮａｍｅＪｏｈｎＬａｓｔＮａｍｅＣｏｈｅｎＡｃｃｏｕｎｔＮｕｍ１２３６
【００３４】
本例では、データ相関アルゴリズムは、出力メッセージの集合のＣｏｍｍａｎｄＣｈｅｃｋｂａｌａｎｃｅＦｉｒｓｔＮａｍｅ、ＬａｓｔＮａｍｅ、ＡｃｃｏｕｎｔＮｕｍに続く変数フィールドと、ＩＤに続く入力変数フィールドとの間の類似性に基づいて、入力メッセージ型は、出力メッセージ型との間に、データによる因果関係を有し、また、変数フィールドは、ランダムに生成されたものではないことを結論付けることが期待されている。
【００３５】
相関器３０４が、二つあるいはそれ以上の数の試験を実施すると、試験の出力５１５は、メッセージ型相関器４０３に入力される。メッセージ型相関器４０３は、入力メッセージ型と出力メッセージ型の各組に対して、入力メッセージ型と出力メッセージ型とが因果関係を有しているかに関する最終的な判断結果を出力する。相関器４０３の出力５１６は、試験モジュール５１０の出力５１５に基づいて決定される。一実施例において、出力５１６は、バイナリ出力値である。その値が１であることは、試験モジュールが、入力メッセージ型と出力メッセージ型との間に因果関係があると判定したことを示している。一方、値が０であることは、試験モジュールが、入力メッセージ型と出力メッセージ型との間には因果関係がないと判定したことを示している。他の実施例において、出力５１６はゼロ仮説が正しい場合は、ゼロ仮説を棄却する（二つの集合が互いに因果関係がある）確率のそして／あるいはそれが正しくない場合はゼロ仮説を受け入れる確率の形式となっている。
【００３６】
相関器４０３の出力５１６は、例えば、全ての試験が、入力メッセージ型と出力メッセージ型とが因果関係を有していると判定した場合にのみ、メッセージ型には因果関係があると判定してもよい。他の例として、相関器４０３は、少なくとも一つの試験が、入力メッセージ型と出力メッセージ型とが因果関係を有していると判定した場合にのみ、メッセージ型には因果関係があると判定してもよい。さらに、他の例として、相関器４０３は、少なくともあらかじめ定めた数の試験が、入力メッセージ型と出力メッセージ型とが因果関係を有していると判定した場合にのみ、メッセージ型には因果関係があると判定してもよい。相関器４０３の出力５１６は、分析結果ストレージ３０５に入力される。
【００３７】
コレクタ３１０は、以下から構成される出力を、分析結果ストレージ３０５に出力する。
（ａ）各計算ノードについて、現在処理中の入力メッセージ型のリストと出力メッセージ型のリスト
（ｂ）各メッセージのルーティング時間
【００３８】
試験モジュール５１０が、入力メッセージ型と出力メッセージ型とが因果関係を有していると判定した際には、試験モジュールは、計算ノードが実行する試験に基づいて、最新の時間枠の計算ノードでの各組の挙動に関する一つあるいはそれ以上の数の統計値を、メッセージ型相関器４０３に出力する。例えば、試験が、時系列の畳み込みを計算した際には、統計値は、時系列の時間枠内での、特定の型の入力及び出力メッセージの組の平均サービス時間を表す遅延τとなる。
【００３９】
メッセージ型相関器４０３によって、入力メッセージ型と出力メッセージ型との間に相関関係が有ると判定された、入力メッセージ型と出力メッセージ型の各組に対して、メッセージ型相関器は、いずれかの試験モジュール５１０から試験結果ストレージ３０５に受け取った、サービス時間τなどの各組の統計値を出力する。従って、試験結果ストレージ３０５は、因果関係を有すると判定された入力メッセージ型と出力メッセージ型からなる全ての組の集合と、時間枠での計算ノードでの各組の挙動に関する統計値を含んでいる。
【００４０】
図６は、本発明の本観点の一実施例による、分散情報ネットワーク内でのトランザクションを監視するためのシステムを、一般的に符号１００として示したものである。ネットワーク１００は、一つあるいはそれ以上の数のクライアント１０６と、一つあるいはそれ以上の数の分散スイッチ１０４と、一つあるいはそれ以上の数のアクセススイッチ１０１とを含んでいる。クライアント１０６、分散スイッチ１０４、アクセススイッチは、階層的に配置され、一つあるいはそれ以上の数のクライアント１０６は、共通の分散スイッチ１０４に接続され、一つあるいはそれ以上の数の分散スイッチは、共通のアクセススイッチ１０１に接続されている。アクセススイッチ１０１は、ネットワーク１００のコア１０５に接続している。本発明の本観点によれば、ネットワーク１００は、さらに、一つあるいはそれ以上の数の収集サーバ１０２と管理サーバ１０３とを含んでいる。図６の実施例において、各収集サーバ１０２は、ポート監視装置を介して、個々のアクセススイッチ１０１に接続されている。管理サーバ１０３は、分散スイッチ１０１で、ネットワーク１００に接続されている。また、システム１００に含まれるものとしては、アクセススイッチ１０１に接続した一つあるいはそれ以上の数の計算ノード１０７がある。各収集サーバ１０２は、分類モジュール２０５、相関モジュール３０６、メッセージ再構成器３１０を実行し、以下に示すように、分析結果ストレージ３０５に格納されたデータを管理サーバ１０３に送る。
【００４１】
メッセージ再構成器３１０を、図７に示す。メッセージ再構成器３１０は、トランスポート層のトラフィックを収集するネットワーク・インフラストラクチャ・カード（ＮＩＣ）２０１を含んでいる。スニファモジュール２０２は、ネットワーク・インフラストラクチャ・カード２０１を空にして、ＴＣＰパケットを、シン・スタック・モジュール２０３に送る。そこで、ＴＤＣＰフローを再構成する。スニファ２０２では、ＬｉｂＰＣＡＰ、Ｅｔｈｅｒｅａｌ及びＲａｗＳｏｃｋｅｔなどのオープンソース・ユーティリティを用いてもよい。メッセージ検出器２０４は、ＴＣＰフローを受信し、アプリケーション層のメッセージを再構成する。メッセージ検出器２０４は、ＴＣＰフローを受信し、それをパケットの集合に分割する。ここで、各集合は、パケット内のネットワーク情報を用いて、アプリケーション層のメッセージを構成している。次に、パケットの各集合を、メッセージを構成するバイトストリングに変換し、それを分離モジュール２０５に出力する。
【００４２】
管理サーバ１０３は、ネットワーク内の各収集サーバ１０２の分析結果ストレージ３０５から、メッセージフローに関する情報を収集する。管理サーバ１０３に集められたデータを用いて、ネットワーク内のトランザクションを再構成し、各収集サーバ１０２から提供された、両者間に因果関係を有する入力メッセージ型と出力メッセージ型の各組の性能に関する統計から、ネットワーク内のトランザクションの基準となる挙動を導出する。統計の現在値は、管理サーバ１０３に接続されているか、インターネットを介してアクセス可能となっているモニタ１０９上に表示される。統計の現在値を、基準となる統計と連続して比較し、一つあるいはそれ以上の数の統計の現在値が、その基準となる値から逸脱した際には、モニタ１０９上に警告を表示する。
【００４３】
図８に示すように、管理サーバ１０３は、収集サーバ１０２のメッセージ及びデータストレージ３０５からデータを受け取る、接続及びデータ収集モジュール５０１を有している。メッセージ型と因果関係データは、トランザクション同定モジュール５０２に送られ、そこで、各トランザクションのフローを再構成する。トランザクション同定モジュール５０２は、ネットワークの構造を含んでおり、入力データ内の因果関係を用いて、全ての可能なトランザクション型を再構成する。例えば、メッセージ型に因果関係をもたないメッセージ型は、トランザクションに対する初期化と考えられる。モジュールは、トランザクションの最後のステップで生成されるメッセージ型を繰り返し調べることにより、その初期化メッセージ型から、トランザクションのフローを作成する。その出力は、トランザクション型のリストと、それらのトランザクションのネットワーク内での物理的なフローである。
【００４４】
トランザクション同定モジュール５０２の出力は、接続及びデータ収集モジュール５０１からのメッセージ型性能に関するデータとともに、基準作成及び傾向分析モジュール５０３に送られる。各メッセージ型と、因果関係を有するメッセージ型の組とトランザクションについて、性能挙動についての基準を定義し、傾向規則を定式化する。各メッセージ型と因果関係を有する組についての統計には、時間で表したネットワーク１００の性能と、その時間でのネットワークの状態に関する情報が含まれている。基準作成及び傾向分析モジュール５０３は、この情報を分析し、基準となる挙動を動的に定義する。適応的な傾向分析によって、特定のメッセージ型及び／又は特定のトランザクション型に関する低い性能の予測が可能となる。この情報は、現在のネットワーク状態を保存するリポジトリ５０４に送られる。
【００４５】
現在のネットワーク状態を保存するリポジトリ５０４は、基準となるネットワーク分析データと現在のネットワーク統計値を含んでいる。現在のネットワーク状態を保存するリポジトリ５０４は、現在の統計値を基準値と比較し、統計試験を実行して、現在の統計値のいずれか一つあるいはそれ以上の数のものが、基準値から著しく逸脱していないかを判定する。現在のネットワーク状態を保存するリポジトリ５０４は、モニタ１０９への情報フローを管理する。モニタ１０９は、トランザクション性能を監視し、トランザクションフロー内の障害を検出するために、オペレータが、物理ネットワークとトランザクションフローとを介してシステムを監視できるようにする。また、モニタは、物理的な故障と、その故障によって影響を受けるトランザクションとの間を関連付けもおこなう。
【００４６】
本発明は、計算ノードでの類似の入力メッセージと類似の出力メッセージを、計算ノードでの挙動モデルを構成する論理的なグループに分類する方法を提供するものである。本方法では、計算ノードが、入力メッセージと出力メッセージは一つづつ受信する能力がある点を除いては、計算ノードの特性やその出力、入力ストリームに関しては、いかなる仮定も設けていない。
【００４７】
本方法は、二つの異なるグループに分類される、全入力メッセージと全出力メッセージに対して、全く同一に作用する。
【００４８】
メッセージ・プロファイル
ここでは、“メッセージ・プロファイル”は、“定数シーケンス”と“変数シーケンス”とから構成されたバイトシーケンスであると定義する。“メッセージ・プロファイル”は、いくつかの（１より大きな数の）メッセージから、増分を加えながら作成される。ここでは、メッセージ位置合わせ方法を用いて、類似のメッセージのためのメッセージ・プロファイル（例えば、バイトシーケンス）を構築する。
【００４９】
メッセージ位置合わせ
二つあるいはそれ以上の数のメッセージ間の“メッセージ位置合わせ”とは、一つのシーケンスを、他方のシーケンスの先頭に書き加え、（ときどき）‘―’のような一意のシンボルを、位置合わせのシーケンス内に付加することを指す。
【００５０】
線図１
二つのメッセージ間のメッセージ位置合わせ：
メッセージ１−ＡＢＣＤ
メッセージ２−ＡＢＧＤ
2009527839.tif 000002
【００５１】
線図２
二つのメッセージ間のメッセージ位置合わせ：
メッセージ１−ＡＢＤ
メッセージ２−ＡＢＧＤ
2009527839.tif 000003
【００５２】
線図３
３つのメッセージ間のメッセージ位置合わせ：
メッセージ１−ＡＢＤ
メッセージ２−ＡＢＧＤ
メッセージ２−ＡＢＣＤ
2009527839.tif 000004
【００５３】
線図１及び線図２は、ともに、定義に合わせた、二つのメッセージの位置合わせを図示したものである。線図２では、位置合わせの一部として、第一メッセージの第三列に、記号‘−’を付加した。これらの線図では、記号Ａ、Ｂ、Ｃ、Ｄ、Ｇは、０と２５５の間の値を有するバイト値を表している。
【００５４】
類似度指数
各メッセージ位置合わせに対して、一意の評価値を計算して求める。この評価値は、各列の個々の値を合計して求める。すなわち、二つあるいはそれ以上の数のシンボル（実際には、二つあるいはそれ以上の数のバイト又はビット）が、同一の列にある場合、評価値を評価関数によって求める。列が、全てのシーケンスについて同一のシンボルで埋められている場合には、それを“一致”と見なす（例えば、線図３の例では、列１、２、４が“一致”している）。一方、同一の列で、一つあるいはそれ以上の数のシンボルが、互いに異なる場合には、それを“不一致”と見なす（例えば、線図３の例では、列３が“不一致”である）。
【００５５】
定数シーケンス
“メッセージ・プロファイル”内の“定数シーケンス”とは、メッセージが他のメッセージの先頭に位置合わせされる際に、全てのメッセージの間で共有される（一つあるいはそれ以上の数の）バイトシーケンスである。一方、“変数シーケンス”とは、一つあるいはそれ以上の数の）プレースホルダー・シーケンスであり、これらのシーケンスの位置合わせでは、このプレースホルダーの列に、異なる値や（‘−’）などのシンボルを含んでいる。
【００５６】
線図４
３つのメッセージの位置合わせから得られた“メッセージ・プロファイル”：
メッセージ１−ＡＢＤ
メッセージ２−ＡＢＧＤ
メッセージ２−ＡＢＣＤ
2009527839.tif 000005
線図４では、二つの“定数シーケンス”と、一つの“変数シーケンス”を有する“メッセージ・プロファイル”の例を示している。二つの“定数シーケンス”はＡＢとＤである。“変数シーケンス”は、ここでは、プレースホルダーとして、記号＊で示している。
【００５７】
メッセージを類似のプロファイルにグループ化する方法
１．各メッセージについて、それが、すでに存在するメッセージ・プロファイルに一致するかをチェックする。
ｉ．各メッセージ・プロファイルは、メッセージがそのプロファイルの部分であると判定するのに必要な、最小の類似度指数を示す閾値を有している。
１．類似度指数は、位置合わせの類似度のレベルを示す関数である。
ａ．例えば、単純和の指標では、シンボルが同一の列で同一の場合、指標に１００を加える、また、二つのシンボルが異なる場合、指標に１を加える。類似度指数の値は、合計値を、プロファイルの長さ×１００で割った値とする。
ｂ．特定の２５５行×２５５列の指数行列によって、より複雑な指数を求めることもできる。各行列要素には、行番号のところにある値を有するバイトが、列番号のところにある値を有するバイトと同一の列のところにある際に決定された、指数の値が置かれている。
ｉｉ．メッセージ・プロファイルと新しいメッセージとの間の最適な位置合わせを求めるために、動的計画法を用いて、新しいメッセージと既知のメッセージ・プロファイルとの間の位置合わせ指数をチェックする。（次セクション、シーケンス位置合わせ指数計算を参照のこと）
１．次の３ステップで、Ｃｅｌｌ（ｉ，ｊ）の指数を計算する。
ａ．Ｃｅｌｌ（ｉ−１，ｊ−１）＋ＳｃｏｒｅＭａｔｒｉｘ（ｓｅｑｕｅｎｃｅ１［ｉ］，ｓｅｑｕｅｎｃｅ［ｊ］）
ｂ．Ｃｅｌｌ（ｉ−１，ｊ）＋ＧａｐＦｕｎｃｔｉｏｎ（ｉ，ｊ）
ｃ．Ｃｅｌｌ（ｉ，ｊ−１）＋ＧａｐＦｕｎｃｔｉｏｎ（ｉ，ｊ）
２．各要素について、１．の計算結果に対応した以下の中から最適なものへのポインタを保存する。
ａ．Ｃｅｌｌ（ｉ−１，ｊ−１）
ｂ．Ｃｅｌｌ（ｉ，ｊ−１）
ｃ．Ｃｅｌｌ（ｊ−１，ｉ）
３．行列Ｃｅｌｌの一列を一度に書き込む。
４．最後の要素を調べ、メッセージとメッセージ・プロファイルとの間の最良の位置合わせによってバックトレースする。
【００５８】
入力メッセージと出力メッセージをメッセージ・プロファイルに集約できることにより、計算ノードの通信パタンを、把握しやすくした。このパタン分類を用いて、二つのプロファイル間（二つの入力プロファイル間、二つの出力プロファイル間、入力プロファイルと出力プロファイルとの間のいずれか）が発生する通常の計算時間を計算する。
【００５９】
メッセージ・プロファイルを識別した後、各メッセージ・プロファイルに関して、“着目する”データが、計算ノードに送られた場所を知り、アプリケーションの監視と記録のために、このデータを利用することができる。また、抽出されたデータを用いて、相互関係のある入力メッセージ・プロファイルを、出力メッセージ・プロファイルに関連付けることもできる。
【００６０】
本発明は、分析機構により、ネットワーク内のサーバを監視する能力を提供するものであり、通常のパケットベースの通信分析よりも、進歩した統計をおこなうことができる。本改良は、パケットではなく、“論理”メッセージに関する統計と計測を行い、他のメッセージに対する挙動を求めることにある。例えば、典型的な挙動というものは、ある種のプロファイルを伴うものであるため、一般的なパケットの往復伝達時間計算ではなく、特定の種類の要求に対する典型的な実行時間を計測することができる。
【図面の簡単な説明】
【００６１】
【図１】典型的なメッセージ構成を示す図である。
【図２】本発明の一実施例による分類モジュールを示す図である。
【図３】図２の分類モジュールによって実行される、メッセージ型の学習及び識別のための方法を示す図である。
【図４】本発明の一実施例による、相関モジュールを示す図である。
【図５】図４の相関モジュールの相関器の構造を示す図である。
【図６】本発明の本観点の一実施例による、分散情報ネットワーク内のトランザクションを監視するためのシステムを示す図である。
【図７】図６のシステムで用いられるメッセージ再構成器を示す図である。
【図８】本発明の一実施例による、管理サーバを示す図である。
【図１】
2009527839.tif 000006
【図２】
2009527839.tif 000007
【図３】
2009527839.tif 000008
【図４】
2009527839.tif 000009
【図５】
2009527839.tif 000010
【図６】
2009527839.tif 000011
【図７】
2009527839.tif 000012
【図８】
2009527839.tif 000013