(57)【特許請求の範囲】
【請求項１】
第１ノードと第１ノード群と第２ノード群に跨って処理されるトランザクションのメッセージを採取する際のタイムスタンプを補正するプログラムであって、
コンピュータに、
前記第１ノードと前記第１ノード群との間にある第１中継装置および前記第１ノード群と前記第２ノード群との間にある第２中継装置によって、トランザクションのメッセージが採取された時刻であるタイムスタンプを収集し、
前記第１中継装置で収集された各メッセージのタイムスタンプと前記第２中継装置で収集された各メッセージのタイムスタンプとのずれを、トランザクション毎に算出し、
前記第１中継装置で収集されたタイムスタンプを基準に、前記第２中継装置で収集されたタイムスタンプを、前記トランザクション毎に算出された前記ずれの平均値に応じて補正する、
処理を実行させるプログラム。
【請求項２】
前記補正する処理は、前記第２中継装置で収集されたタイムスタンプを基準に、前記第１中継装置で収集されたタイムスタンプを、前記トランザクション毎に算出された前記ずれの平均値に応じて補正する、請求項１記載のプログラム。
【請求項３】
前記第１中継装置および前記第２中継装置は、スイッチのミラーポートである、請求項１または請求項２記載のプログラム。
【請求項４】
前記コンピュータに、
前記メッセージから前記メッセージに関する情報であるメッセージ情報を取得し、
前記メッセージ情報と前記補正されたタイムスタンプとに基づいて、前記トランザクションと前記第１中継装置および前記第２中継装置で収集された各メッセージの時間差を推定し、推定結果をトランザクションモデルとして生成し、
生成されたトランザクションモデルに基づいて、前記補正されたタイムスタンプを補正する、処理を更に実行させる請求項１乃至請求項３のいずれかに記載のプログラム。
【請求項５】
前記メッセージ情報は、処理種別、リクエストメッセージかレスポンスメッセージかを示すメッセージ方向、および処理に関するパラメータを含み、
前記生成する処理は、前記処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、前記処理種別に対応する各処理を識別し、処理間の呼び出し関係の確からしさに基づく選択基準に従ってメッセージ集合を選択し、該メッセージ集合に基づいて処理間の呼び出し関係に関する制約条件を満たすトランザクションモデルを生成する、請求項４記載のプログラム。
【請求項６】
前記補正されたタイムスタンプを補正する処理は、生成された複数のトランザクションモデルから得られる前記第１中継装置および前記第２中継装置による前記タイムスタンプのずれの平均値を用いて、前記補正されたタイムスタンプを補正する、請求項４または請求項５記載のプログラム。
【請求項７】
前記補正されたタイムスタンプを補正する処理は、前記生成された複数のトランザクションモデルのうち、ユーザの指示により選択されたトランザクションモデルを用いて、前記平均値を算出する、請求項６記載のプログラム。
【請求項８】
第１ノードと第１ノード群と第２ノード群に跨って処理されるトランザクションのメッセージを採取する際のタイムスタンプを補正するデータ解析装置であって、
前記第１ノードと前記第１ノード群との間にある第１中継装置および前記第１ノード群と前記第２ノード群との間にある第２中継装置によって、トランザクションのメッセージが採取された時刻であるタイムスタンプを収集するパケットデータ収集部と、
前記第１中継装置で収集された各メッセージのタイムスタンプと前記第２中継装置で収集された各メッセージのタイムスタンプとのずれを、トランザクション毎に算出し、前記第１中継装置で収集されたタイムスタンプを基準に、前記第２中継装置で収集されたタイムスタンプを、前記トランザクション毎に算出された前記ずれの平均値に応じて補正するタイムスタンプ補正部と、
を備えるデータ解析装置。
【請求項９】
第１ノードと第１ノード群と第２ノード群に跨って処理されるトランザクションのメッセージを採取する際のタイムスタンプを補正するデータ解析方法であって、
コンピュータにより、
前記第１ノードと前記第１ノード群との間にある第１中継装置および前記第１ノード群と前記第２ノード群との間にある第２中継装置によって、トランザクションのメッセージが採取された時刻であるタイムスタンプを収集し、
前記第１中継装置で収集された各メッセージのタイムスタンプと前記第２中継装置で収集された各メッセージのタイムスタンプとのずれを、トランザクション毎に算出し、
前記第１中継装置で収集されたタイムスタンプを基準に、前記第２中継装置で収集されたタイムスタンプを、前記トランザクション毎に算出された前記ずれの平均値に応じて補正する、
データ解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のパケットデータを解析するパケットデータ解析プログラム、パケットデータ解析装置、パケットデータ解析方法に関するものである。
【背景技術】
【０００２】
システムのサービスに手を加えずに、システムの稼動状態を正確に分析するためには、ネットワークから収集したパケットデータを利用することが有効である。システムの規模が大きい場合はパケットデータを複数箇所で採取せざるを得なくなるので、正確な稼動状態の把握のためには、複数箇所で収集したパケットデータの時刻を正確に合わせることが極めて重要となる。
【０００３】
なお、本発明の関連ある従来技術として、例えば、下記に示す特許文献１が知られている。この通信システムは、ルータにおいて指定されたポートを流れるパケットをキャプチャし、キャプチャしたパケットデータをコンソールにおいて表示するものである。
【特許文献１】特開２００４−２０７９６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の時刻合わせに用いられるＮＴＰ（Network Time Protocol）は、システムの規模が大きい場合、精度に限界があった。更に、複数の異なるネットワークを持つシステムの場合、複数箇所に共通して流れるパケットが得られないため、正確な時刻合わせを行うことができなかった。
【０００５】
本発明は上述した問題点を解決するためになされたものであり、ネットワーク上の複数の位置で採取されたパケットデータの解析を行い、パケットデータが採取された時刻を補正するパケットデータ解析プログラム、パケットデータ解析装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明は、パケットデータの解析をコンピュータに実行させるパケットデータ解析プログラムであって、ネットワーク上の複数の位置で採取されたパケットデータと、該パケットデータが採取された時刻であるタイムスタンプとを収集するパケットデータ収集ステップと、前記パケットデータ収集ステップにより収集されたパケットデータからメッセージに関する情報であるメッセージ情報を取得するメッセージ情報取得ステップと、前記メッセージ情報取得ステップにより取得されたメッセージ情報に基づいて、前記位置による前記タイムスタンプのずれを補正するタイムスタンプ補正ステップとをコンピュータに実行させるものである。
【０００７】
また、本発明に係るパケットデータ解析プログラムにおいて、前記メッセージ情報は、処理種別、リクエストメッセージかレスポンスメッセージかを示すメッセージ方向、処理に関するパラメータのいずれかを含むことを特徴とするものである。
【０００８】
また、本発明に係るパケットデータ解析プログラムにおいて、前記ネットワーク上の複数の位置は、前記ネットワーク上に設けられたスイッチのミラーポートであることを特徴とするものである。
【０００９】
また、本発明に係るパケットデータ解析プログラムにおいて、前記タイムスタンプ補正ステップは、前記ネットワークを階層に分け、隣接する階層同士のタイムスタンプのずれを補正することにより、全ての階層におけるタイムスタンプのずれを補正することを特徴とするものである。
【００１０】
また、本発明に係るパケットデータ解析プログラムにおいて、更に、前記メッセージ情報取得ステップにより取得されたメッセージ情報と前記タイムスタンプ補正ステップにより補正されたタイムスタンプとに基づいて、トランザクションと各メッセージの時間差を推定し、推定結果をトランザクションモデルとして生成するトランザクションモデル生成ステップと、前記トランザクションモデル生成ステップにより生成されたトランザクションモデルに基づいて、前記タイムスタンプ補正ステップにより補正されたタイムスタンプを補正するタイムスタンプ再補正ステップとをコンピュータに実行させることを特徴とするものである。
【００１１】
また、本発明に係るパケットデータ解析プログラムにおいて、前記トランザクションモデル生成ステップは、前記処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、前記処理種別に対応する各処理を識別し、処理間の呼び出し関係の確からしさに基づく選択基準に従ってメッセージ集合を選択し、該メッセージ集合に基づいて処理間の呼び出し関係に関する制約条件を満たすトランザクションモデルを生成することを特徴とするものである。
【００１２】
また、本発明に係るパケットデータ解析プログラムにおいて、前記タイムスタンプ再補正ステップは、前記トランザクションモデル生成ステップにより生成された複数のトランザクションモデルから得られる前記位置による前記タイムスタンプのずれの平均値を用いて、前記タイムスタンプ補正ステップにより補正されたタイムスタンプを補正することを特徴とするものである。
【００１３】
また、本発明に係るパケットデータ解析プログラムにおいて、前記タイムスタンプ再補正ステップは、前記トランザクションモデル生成ステップにより生成された複数のトランザクションモデルのうち、ユーザの指示により選択されたとトランザクションモデルを用いて、前記平均値を算出することを特徴とするものである。
【００１４】
また、本発明に係るパケットデータ解析プログラムにおいて、前記制約条件は、呼び出し元の処理時間帯は呼び出し先の処理時間帯を包含するという条件が定義されていることを特徴とするものである。
【００１５】
また、本発明に係るパケットデータ解析プログラムにおいて、前記制約条件は、ノード間の呼び出し方向が定義されていることを特徴とするものである。
【００１６】
また、本発明に係るパケットデータ解析プログラムにおいて、前記トランザクションモデル生成部は、同一トランザクション内の各処理種別のリクエストメッセージからレスポンスメッセージまでの時間に基づいて、ノードにおける各処理種別に対応する処理の所要時間を計算し、前記トランザクションモデルに設定することを特徴とするものである。
【００１７】
また、本発明に係るパケットデータ解析プログラムにおいて、前記トランザクションモデル生成部は、クライアントから最初に呼び出されたリクエストメッセージと、該リクエストメッセージに対応するレスポンスメッセージとから、各トランザクションの処理時間帯を判定し、他のトランザクションとの間で処理時間帯が重複しない非多重のトランザクションを検出し、検出された非多重のトランザクションの処理時間帯内で各処理間の呼び出し関係を判断することを特徴とするものである。
【００１８】
また、本発明に係るパケットデータ解析プログラムにおいて、前記トランザクションモデル生成部は、呼び出し先となる処理に対し、呼び出し可能な処理が複数ある場合、各処理からの呼び出し確率を均等に定め、呼び出し元となる処理から他の処理の呼び出し確率を処理の種別毎に統合し、処理間の呼び出し関係の可能性を算出することを特徴とするものである。
【００１９】
また、本発明に係るパケットデータ解析プログラムにおいて、前記トランザクションモデル生成部は、処理種別毎に、呼び出し可能な処理の組み合わせを示す１以上の発生パターンを生成し、該発生パターンごとに生起確率を計算し、該生起確率が上位の前記発生パターンを所定の個数だけ選択し、選択された発生パターンに基づいて、前記トランザクションモデルを生成することを特徴とするものである。
【００２０】
また、本発明は、パケットデータの解析を行うパケットデータ解析装置であって、ネットワーク上の複数の位置で採取されたパケットデータと、該パケットデータが採取された時刻であるタイムスタンプとを収集するパケットデータ収集部と、前記パケットデータ収集部により収集されたパケットデータからメッセージに関する情報であるメッセージ情報を取得するメッセージ情報取得部と、前記メッセージ情報取得部により取得されたメッセージ情報に基づいて、前記位置による前記タイムスタンプのずれを補正するタイムスタンプ補正部とを備えたものである。
【００２１】
また、本発明に係るパケットデータ解析装置において、前記メッセージ情報は、処理種別、リクエストメッセージかレスポンスメッセージかを示すメッセージ方向、処理に関するパラメータのいずれかを含むことを特徴とするものである。
【００２２】
また、本発明に係るパケットデータ解析装置において、前記ネットワーク上の複数の位置は、前記ネットワーク上に設けられたスイッチのミラーポートであることを特徴とするものである。
【００２３】
また、本発明に係るパケットデータ解析装置において、前記タイムスタンプ補正部は、前記ネットワークを階層に分け、隣接する階層同士のタイムスタンプのずれを補正することにより、全ての階層におけるタイムスタンプのずれを補正することを特徴とするものである。
【００２４】
また、本発明に係るパケットデータ解析装置において、更に、前記メッセージ情報取得部により取得されたメッセージ情報と前記タイムスタンプ補正部により補正されたタイムスタンプとに基づいて、トランザクションと各メッセージの時間差を推定し、推定結果をトランザクションモデルとして生成するトランザクションモデル生成部と、前記トランザクションモデル生成部により生成されたトランザクションモデルに基づいて、前記タイムスタンプ補正部により補正されたタイムスタンプを補正するタイムスタンプ再補正部とを備えることを特徴とするものである。
【００２５】
また、本発明は、パケットデータの解析を行うパケットデータ解析方法であって、ネットワーク上の複数の位置で採取されたパケットデータと、該パケットデータが採取された時刻であるタイムスタンプとを収集するパケットデータ収集ステップと、前記パケットデータ収集ステップにより収集されたパケットデータからメッセージに関する情報であるメッセージ情報を取得するメッセージ情報取得ステップと、前記メッセージ情報取得ステップにより取得されたメッセージ情報に基づいて、前記位置による前記タイムスタンプのずれを補正するタイムスタンプ補正ステップとを実行するものである。
【発明の効果】
【００２６】
本発明によれば、ネットワーク上の複数の位置で採取されたパケットデータを収集し、解析することにより、パケットデータが採取された時刻を補正することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００２８】
本実施の形態においては、本発明に係るパケットデータ解析装置を用いたシステムの一例であるＷｅｂシステムについて説明する。
【００２９】
まず、本実施の形態に係るＷｅｂシステムの構成について説明する。
【００３０】
図１は、本実施の形態に係るＷｅｂシステムの構成の一例を示すブロック図である。このＷｅｂシステムは、Ｗｅｂサーバ（ＷＥＢ）１１、アプリケーションサーバ（ＡＰＬ）１２ａ，１２ｂ、データベース（ＤＢ）１３ａ，１３ｂ、負荷分散装置１４ａ，１４ｂ、パケットデータ解析装置１５を備える。ＷＥＢ１１からＡＰＬ１２ａ，１２ｂへのアクセスは、負荷分散装置１４ａにより負荷分散され、ＡＰＬ１２ａ，１２ｂからＤＢ１３ａ，１３ｂへのアクセスは、負荷分散装置１４ｂにより負荷分散される。また、負荷分散装置１４ａ，１４ｂは、ＷＥＢ１１、ＡＰＬ１２ａ，１２ｂ、ＤＢ１３ａ，１３ｂとは別の経路でパケットデータ解析装置１５に接続されている。また、本実施の形態に係るＷｅｂシステムは、この図のようにＷｅｂサーバの階層、アプリケーションサーバの階層、データベースの階層の３階層に分かれている。
【００３１】
また、このＷｅｂシステムにおいて、パケットを採取するキャプチャポイントは、負荷分散装置１４ａにおけるＡＰＬ１２ａとの間のパケットのキャプチャポイント（Ｃ）３１、負荷分散装置１４ａにおけるＡＰＬ１２ｂとの間のパケットのキャプチャポイント（Ｃ）３２、負荷分散装置１４ｂにおけるＤＢ１３ａとの間のパケットのキャプチャポイント（Ｃ）３３、負荷分散装置１４ａにおけるＤＢ１３ｂとの間のパケットのキャプチャポイント（Ｃ）３４の４箇所である。また、Ｃ３１，３２，３３，３４には、同一のパケットが流れないものとする。キャプチャポイントは、例えば、スイッチのミラーポートで実現され、キャプチャポイントで採取されたパケットデータと、パケットデータが採取された時刻であるタイムスタンプは、パケットデータ解析装置１５へ送信される。
【００３２】
次に、Ｗｅｂシステムの論理的な接続関係について説明する。
【００３３】
図２は、本実施の形態に係るＷｅｂシステムの第１の接続関係を示すブロック図である。論理的に到達可能な第１の接続関係は以下の４系統であり、以後、第１の接続関係を用いてＷｅｂシステムの動作を説明する。
【００３４】
１．ＷＥＢ１１→ＡＰＬ１２ａ→ＤＢ１３ａ
２．ＷＥＢ１１→ＡＰＬ１２ａ→ＤＢ１３ｂ
３．ＷＥＢ１１→ＡＰＬ１２ｂ→ＤＢ１３ａ
４．ＷＥＢ１１→ＡＰＬ１２ｂ→ＤＢ１３ｂ
【００３５】
次に、本実施の形態に係るパケットデータ解析装置の構成について説明する。
【００３６】
図３は、本実施の形態に係るパケットデータ解析装置の構成の一例を示すブロック図である。このパケットデータ解析装置１５は、パケットデータ収集部２０、メッセージ情報取得部２１、タイムスタンプ補正部２２、トランザクションモデル生成部２３を備える。パケットデータ収集部２０は、各キャプチャポイントから送信されるパケットデータとタイムスタンプを収集する。
【００３７】
次に、メッセージ情報取得部２１の動作について説明する。
【００３８】
メッセージ情報取得部２１は、パケットデータ収集部２０により収集されたパケットデータの内容を解析し、パケットデータに含まれるＨＴＴＰ等の上位レイヤのメッセージ情報を取得する。メッセージ情報には、メッセージで要求されている処理種別、メッセージの方向（リクエストメッセージかレスポンスメッセージか）、リクエストメッセージ中のパラメータが含まれる。例えば、メッセージに適用されているプロトコルがＨＴＴＰ（HyperText Transfer Protocol）である場合、処理要求で指定されたＵＲＬ（Uniform Resource Locator）によって、処理種別が判別できる。キャプチャポイントＣ３１で採取されたＨＴＴＰリクエスト中のＣＧＩパラメータの例を以下に示す。
【００３９】
http://www.test.com/login.html?userID=01223&item=TOP
【００４０】
ここでは、記号“？”と“＆”の後にそれぞれｕｓｅｒＩＤとｉｔｅｍが設定されており、“＝”の後にそれぞれの値が埋め込まれている。ＷＥＢ１１とＡＰＬ１２ａ，１２ｂの間の通信についても、ＩＩＯＰ（Internet Inter-ORB Protocol）において同様のパラメータが埋め込まれる。本実施の形態では、ＨＴＴＰと同様のパラメータｕｓｅｒＩＤ＝０１２２３が埋め込まれているものとする。その場合、ＷＥＢ１１からＡＰＬ１２ａ，１２ｂへの経路までは同一の時計でキャプチャされているので、ｕｓｅｒＩＤを用いて呼び出し関係の関係付けを行うことができる。
【００４１】
キャプチャポイントＣ３３で採取されたＳＱＬ文の中では、ＳＱＬ（Structured Query Language：ＡＮＳＩ規格）に従って、パラメータｕｓｅｒＩＤ＝０１２２３が以下のように指定される。
【００４２】
SELECT amount from userData where userID = 01223
【００４３】
次に、タイムスタンプ補正部２２による第１のタイムスタンプ補正処理について説明する。
【００４４】
タイムスタンプ補正部２２は、第１のタイムスタンプ補正処理として、メッセージ情報取得部２１で取得されたメッセージ情報を用いて、パケットデータ収集部２０で収集されたタイムスタンプの補正を行う。ここでは、図１のＷｅｂシステムの配置に従い、クライアントに近い階層を左側、クライアントから遠い階層を右側として説明する。図４は、本実施の形態に係るタイムスタンプ補正部の動作の一例を示すフローチャートである。まず、タイムスタンプ補正部２２は、ノードを集約できる階層があるか否かの判断を行う（Ｓ１１）。ノードを集約できる階層がある場合（Ｓ１１，Ｙ）、同じ階層のノードを集約し、すなわち同じ階層のノードのタイムスタンプを合わせ、同じ階層のノードのパケットデータをマージし（Ｓ１２）、処理Ｓ１１へ移行し、他の階層について判断する。一方、ノードを集約できる階層がない場合（Ｓ１１，Ｎ）、タイムスタンプ補正部２２は、Ｗｅｂシステムにおける右端の階層をタイムスタンプ補正の対象階層とする（Ｓ１３）。
【００４５】
次に、対象階層の左隣の階層が存在するか否かの判断を行う（Ｓ１４）。左隣の階層が存在しない場合（Ｓ１４，Ｎ）、このフローを終了する。一方、左隣の階層が存在する場合（Ｓ１４，Ｙ）、タイムスタンプ補正部２２は、左隣の階層のうちの１ノードを選択し、対象階層のノードのタイムスタンプを、選択したノードのタイムスタンプに合わせる（Ｓ２１）。
【００４６】
次に、タイムスタンプ補正部２２は、左隣の階層に他のノードが存在するか否かの判断を行う（Ｓ２２）。他のノードが存在しない場合（Ｓ２２，Ｎ）、対象階層と左隣の階層とを集約し、すなわち対象階層と左隣の階層のパケットデータをマージし（Ｓ２４）、処理Ｓ１４へ移行する。一方、他のノードが存在する場合（Ｓ２２，Ｙ）、左隣の階層の他の１ノードを選択し、選択したノードのタイムスタンプを、対象階層のノードのタイムスタンプに合わせ（Ｓ２３）、処理Ｓ２２へ移行する。
【００４７】
次に、上述した処理Ｓ２１，Ｓ２３において２つのノードの時刻のずれを算出するための第１の時刻ずれ算出処理について説明する。
【００４８】
第１の時刻ずれ算出処理において、メッセージ情報取得部２１により取得されたメッセージ情報を用いて、タイムスタンプの補正を行う。図５は、本実施の形態に係る第１の時刻ずれ算出処理の動作の一例を示すシーケンス図である。この例では、パケットデータとして、ＷＥＢ１１からＡＰＬ１２ａへのリクエストＭ１、ＡＰＬ１２ａからＤＢ１３ａへのリクエストＭ２、ＤＢ１３ａからＡＰＬ１２ａへのリプライＭ４、ＡＰＬ１２ａからＷＥＢ１１へのリプライＭ３がパケットデータ収集部２０により収集されている。また、点線で示したＭ２’とＭ４’は、それぞれＭ２とＭ４のタイムスタンプを補正した場合の位置である。また、Ｍ２とＭ４のタイムスタンプにはずれがあるため、パケットデータにおけるＭ３とＭ４の順序が逆になってしまっている。
【００４９】
タイムスタンプ補正部２２は、メッセージ情報よりＭ１とＭ２をｕｓｅｒＩＤ＝０１２３４を持つペアとして認識する。従って、Ｍ１のタイムスタンプＴ１とＭ２のタイムスタンプＴ２に対して、Ｔ１＜Ｔ２の制約条件が得られる。同様に、Ｍ４のタイムスタンプＴ４とＭ３のタイムスタンプＴ３に対して、Ｔ４＜Ｔ３の制約条件が得られる。従って、タイムスタンプ補正部２２は、Ｔ１とＴ３の中間に配置されるようＴ２とＴ４を補正する。具体的には、タイムスタンプ補正部２２は、時間差Ｄ１＝Ｔ２−Ｔ１と時間差Ｄ２＝Ｔ３−Ｔ４が等しくなるようにタイムスタンプを補正する。タイムスタンプ補正部２２は、この時間差をＡＰＬ１２ａとＤＢ１３ａの時刻のずれとし、その値をα１とする。また、α１と同様にして求められた、ＡＰＬ１２ａとＤＢ１３ｂの時刻のずれをβ１とする。
【００５０】
タイムスタンプ補正部２２は、処理Ｓ１３により、ＤＢ１３ａ，１３ｂを対象階層とし、処理Ｓ２１により、対象階層の左隣の階層の１つのノードであるＡＰＬ１２ａを選択し、ＡＰＬ１２ａのタイムスタンプを基準にして対象階層のノードであるＤＢ１３ａ，１３ｂのタイムスタンプを合わせる。これにより、ＤＢ１３ａのタイムスタンプはＡＰＬ１２ａに対してα１だけ修正され、ＤＢ１３ｂのタイムスタンプはＡＰＬ１２ａに対してβ１だけ修正される。その結果、ＡＰＬ１２ａ、ＤＢ１３ａ，１３ｂの時刻、すなわちＣ３１，３３，３４におけるタイムスタンプが合わせられたことになる。
【００５１】
次に、タイムスタンプ補正部２２は、処理Ｓ２３により、対象階層の左隣の階層の他のノードであるＡＰＬ１２ｂを選択し、対象階層のノードであるＤＢ１３ａ，１３ｂのタイムスタンプを基準にしてＡＰＬ１２ｂのタイムスタンプを合わせる。ここで、α１，β１と同様にして求められた、ＡＰＬ１２ｂとＤＢ１３ａの時刻のずれをα２とし、ＡＰＬ１２ｂとＤＢ１３ｂの時刻のずれをβ２とする。次に、タイムスタンプ補正部２２は、ＡＰＬ１２ａと相対的に時刻を合わせるために、ＡＰＬ１２ｂのタイムスタンプを平均値−（α２＋β２）／２だけ修正する。その結果、ＡＰＬ１２ａ，１２ｂ、ＤＢ１３ａ，１３ｂの全ての時刻、すなわちＣ３１，３２，３３，３４における全てのタイムスタンプが合わせられたことになる。
【００５２】
上述した第１の時刻ずれ算出処理によれば、メッセージ情報に基づいてノード間の時刻ずれを概算することができる。
【００５３】
次に、Ｗｅｂシステムの論理的な接続関係において、同じ階層で呼び出し関係が生じる場合の第１のタイムスタンプ補正処理について説明する。
【００５４】
図６は、本実施の形態に係るＷｅｂシステムの第２の接続関係を示すブロック図である。論理的に到達可能な第２の接続関係は以下の４系統である。
【００５５】
１．ＷＥＢ１１→ＡＰＬ１２ａ→ＡＰＬ１２ｂ→ＤＢ１３ａ
２．ＷＥＢ１１→ＡＰＬ１２ａ→ＤＢ１３ｂ
３．ＷＥＢ１１→ＡＰＬ１２ｂ→ＡＰＬ１２ａ→ＤＢ１３ａ
４．ＷＥＢ１１→ＡＰＬ１２ｂ→ＤＢ１３ｂ
【００５６】
このように同じ階層にあるＡＰＬ１２ａとＡＰＬ１２ｂが通信を行う場合、タイムスタンプ補正部２２は、処理Ｓ１２により、ＡＰＬ１２ａとＡＰＬ１２ｂのタイムスタンプを合わせ、ノードを集約する、すなわちパケットデータをマージすることができる。ここで、同じ階層にあるＡＰＬ１２ａとＡＰＬ１２ｂは同一のパケットを用いることができることから、同一のパケットを用いてタイムスタンプを合わせる。その結果、ＡＰＬ１２ａとＡＰＬ１２ｂを１つのノードとして扱う。図７は、本実施の形態に係るＷｅｂシステムのノードを集約した第２の接続関係を示すブロック図である。その後、タイムスタンプ補正処理の処理Ｓ１３以降を行う。
【００５７】
次に、大規模なシステムにおけるタイムスタンプ補正部の動作について説明する。
【００５８】
図８は、大規模なＷｅｂシステムにおけるタイムスタンプ補正部の動作の一例を示すシーケンス図である。このＷｅｂシステムは、クライアント、ＷＥＢ（Ｗｅｂサーバ）ａ、ＷＥＢ（Ｗｅｂサーバ）ｂ、ＡＰＬ（アプリケーションサーバ）、ＤＢ（データベース）、ＢＵＣＫＵＰ（バックアップサーバ）を備える。それぞれを階層と見なすと、右端の階層であるＢＵＣＫＵＰを対象階層として上述した第１のタイムスタンプ補正処理を行い、左側の階層へ向かってタイムスタンプの補正とノードの集約を行う。図の例では、まず、メッセージの時間差Ｄ１１とＤ１２が等しくなるようにＡＰＬとＤＢの時刻のずれを補正し、次に、メッセージの時間差Ｄ２１とＤ２２が等しくなるようにＷＥＢａとＷＥＢｂの時刻のずれを補正する。
【００５９】
上述した第１のタイムスタンプ補正処理によれば、規模が大きいシステムであっても、ノード間の時刻ずれを概算し、タイムスタンプを補正し、メッセージの順序を補正することができる。
【００６０】
次に、トランザクションモデル生成部２３の動作について説明する。
【００６１】
トランザクションモデル生成部２３は、メッセージ情報取得部２１により取得されたメッセージ情報とタイムスタンプ補正部２２により補正されたタイムスタンプとを用いて、トランザクションとその各メッセージの時間を含むモデルであるトランザクションモデルを生成する。また、トランザクションモデル生成部２３は、処理時間が異なる複数のトランザクションモデルを生成する。
【００６２】
まず、トランザクションモデル生成部２３は、メッセージ情報における処理種別毎のリクエストメッセージとレスポンスメッセージの対応関係により、処理種別に対応する各処理を認識する。次に、トランザクションモデル生成部２３は、処理間の呼び出し関係の確からしさに基づく選択基準に従ってメッセージを選択し、メッセージ集合とする。次に、トランザクションモデル生成部２３は、メッセージ集合が処理間の呼び出し関係に関する制約条件を満たすようにトランザクションモデルを生成する。また、トランザクションモデル生成部２３は、同一トランザクション内の各処理種別のリクエストメッセージからレスポンスメッセージまでの時間に基づいて、ノードにおける各処理種別に対応する処理の所要時間を計算し、トランザクションモデルに設定する。
【００６３】
選択基準は、例えば、処理時間帯が他のトランザクションと重複しない非多重トランザクションの時間帯内からメッセージの集合を選択することである。つまり、各トランザクションが他のトランザクション（クライアントのリクエストからレスポンスまで）とオーバーラップすることのない部分のみを抜き出して、モデルを獲得する。トランザクションモデル生成部２３は、このような非多重のトランザクションであれば、そのトランザクションが実行されている処理時間帯内の各処理間には呼び出し関係が存在する確からしさが高いと判断する。
【００６４】
トランザクションモデル生成部２３は、まず、同じ識別番号を持つＨＴＴＰプロトコルのリクエスト・レスポンスのペア群を検出する。次に、トランザクションモデル生成部２３は、ＨＴＴＰプロトコルのメッセージペアの間に、他の識別番号を持つＨＴＴＰのメッセージが存在するかどうかをチェックする。存在しない場合、トランザクションモデル生成部２３は、ＨＴＴＰプロトコルのリクエスト・レスポンスのペア、及びその間のリクエストを選択する。つまり、横断関係にないトランザクションが抽出される。
【００６５】
このようにトランザクションモデル生成部２３は、他のトランザクションと重複しないトランザクションを構成するメッセージを特定し、モデル生成用メッセージを選択する。
【００６６】
また、制約条件は、例えば、呼び出し元の処理時間帯は呼び出し先の処理時間帯を包含するという条件である。つまり、ある処理から呼び出された処理の開始時刻は、呼び出し元の処理開始時刻以降で、且つ終了時刻は呼び出し元の処理終了時刻以前である。他に、ノード間の呼び出し方向が定義される。また、ＩＩＯＰの処理は、直接システム外部（例えば、クライアント）から呼び出されることや、ＤＢの処理は、必ずＩＩＯＰから呼び出されることが定義される。
【００６７】
このような呼び出し条件を用いて、トランザクションモデル生成部２３は、呼び出し先となる処理に対し、呼び出し可能な処理が複数ある場合、各処理からの呼び出し確率を均等に定め、呼び出し元となる処理から他の処理の呼び出し確率を、処理種別毎に統合して、処理間の呼び出し関係の可能性を算出する。これにより、複数のトランザクションが同時に処理されている場合であっても、トランザクションモデルを生成することができる。
【００６８】
また、トランザクションモデル生成部２３は、処理種別毎に、呼び出し可能な処理の組み合わせを示す１以上の発生パターンを生成し、発生パターン毎に生起確率を計算する。そして、トランザクションモデル生成部２３は、生起確率が上位の発生パターンを所定の個数選択し、選択された発生パターンに基づいて、トランザクションを生成する。これにより、ある呼び出し元の処理種別について可能処理パターンが複数ある場合でも、そのモデルを正しく生成することができる。
【００６９】
上述したように、トランザクションモデル生成部２３は、メッセージ情報に明示された呼び出し関係を抽出すると共に、メッセージ情報に明示されていない呼び出し関係であっても呼び出し関係を抽出することができる。
【００７０】
次に、タイムスタンプ補正部２２による第２のタイムスタンプ補正処理について説明する。
【００７１】
タイムスタンプ補正部２２は、第２のタイムスタンプ補正処理として、トランザクションモデル生成部２３により生成された複数のトランザクションモデルを用いて、より高い精度のタイムスタンプの補正を行う。第２のタイムスタンプ補正処理は、第１のタイムスタンプ処理と同様であるが、第１の時刻ずれ補正処理の代わりに第２の時刻ずれ補正処理を行う。
【００７２】
次に、上述した処理Ｓ２１，Ｓ２３において２つのノードの時刻のずれを算出するための第２の時刻ずれ算出処理について説明する。
【００７３】
トランザクションモデル生成部２３によりノード間の時刻のずれが異なる複数のトランザクションモデルが生成される。例えば、トランザクションモデル生成部２３によりトランザクションモデルとして、図５と同様のシーケンスで、ＷＥＢ１１とＡＰＬ１２ａの時刻のずれが６５ｍｓｅｃであるモデルＡと、ＷＥＢ１１とＡＰＬ１２ａの時刻のずれが５５ｍｓｅｃであるモデルＢと、ＷＥＢ１１とＡＰＬ１２ａの時刻のずれが７５ｍｓｅｃであるモデルＣとが生成されたとする。
【００７４】
このように時刻のずれの値が異なる複数のトランザクションモデルが生成されるが、真の時刻のずれの値は１つであるため、全てのモデルにおける時刻のずれの平均値６５ｍｓｅｃをＷＥＢ１１とＡＰＬ１２ａの時刻のずれとして決定する。ここでは、全てのモデルを用いるとしたが、算出に用いるモデルをユーザに選択させ、選択されたモデルにおける時刻のずれの平均値を求めても良い。
【００７５】
タイムスタンプ補正部２２は、この第２の時刻ずれ補正処理を用いて、第１のタイムスタンプ補正処理と同様にタイムスタンプの補正を行う。タイムスタンプ補正部２２により、マージされたパケットデータと補正されたタイムスタンプは、システムの稼動状態の分析等に用いられる。
【００７６】
上述した第２の時刻ずれ算出処理によれば、メッセージ情報に明示されない呼び出し関係から時刻ずれを検出することができると共に、トランザクションモデルを用いることにより時刻のずれを高精度で算出することができる。また、この第２のタイムスタンプ補正処理によれば、第１のタイムスタンプ補正処理よりも高い精度でタイムスタンプの補正を行うことができる。
【００７７】
また、本実施の形態に係るパケットデータ解析装置は、ネットワーク監視装置に容易に適用することができ、ネットワーク監視装置の性能をより高めることができる。ネットワーク監視装置等が、タイムスタンプが補正されたパケットデータを監視することにより、システムの稼動状態をより正確に分析することができる。
【００７８】
更に、パケットデータ解析装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、パケットデータ解析プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、パケットデータ解析装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００７９】
（付記１）  パケットデータの解析をコンピュータに実行させるパケットデータ解析プログラムであって、
ネットワーク上の複数の位置で採取されたパケットデータと、該パケットデータが採取された時刻であるタイムスタンプとを収集するパケットデータ収集ステップと、
前記パケットデータ収集ステップにより収集されたパケットデータからメッセージに関する情報であるメッセージ情報を取得するメッセージ情報取得ステップと、
前記メッセージ情報取得ステップにより取得されたメッセージ情報に基づいて、前記位置による前記タイムスタンプのずれを補正するタイムスタンプ補正ステップと
をコンピュータに実行させるパケットデータ補正プログラム。
（付記２）  付記１に記載のパケットデータ解析プログラムにおいて、
前記メッセージ情報は、処理種別、リクエストメッセージかレスポンスメッセージかを示すメッセージ方向、処理に関するパラメータのいずれかを含むことを特徴とするパケットデータ解析プログラム。
（付記３）  付記１または付記２に記載のパケットデータ解析プログラムにおいて、
前記ネットワーク上の複数の位置は、前記ネットワーク上に設けられたスイッチのミラーポートであることを特徴とするパケットデータ解析プログラム。
（付記４）  付記１乃至付記３のいずれかに記載のパケットデータ解析プログラムにおいて、
前記タイムスタンプ補正ステップは、前記ネットワークを階層に分け、隣接する階層同士のタイムスタンプのずれを補正することにより、全ての階層におけるタイムスタンプのずれを補正することを特徴とするパケットデータ解析プログラム。
（付記５）  付記２乃至付記４のいずれかに記載のパケットデータ解析プログラムにおいて、
更に、前記メッセージ情報取得ステップにより取得されたメッセージ情報と前記タイムスタンプ補正ステップにより補正されたタイムスタンプとに基づいて、トランザクションと各メッセージの時間差を推定し、推定結果をトランザクションモデルとして生成するトランザクションモデル生成ステップと、
前記トランザクションモデル生成ステップにより生成されたトランザクションモデルに基づいて、前記タイムスタンプ補正ステップにより補正されたタイムスタンプを補正するタイムスタンプ再補正ステップと
をコンピュータに実行させることを特徴とするパケットデータ解析プログラム。
（付記６）  付記５に記載のパケットデータ解析プログラムにおいて、
前記トランザクションモデル生成ステップは、前記処理種別毎のリクエストメッセージとレスポンスメッセージとの対応関係により、前記処理種別に対応する各処理を識別し、処理間の呼び出し関係の確からしさに基づく選択基準に従ってメッセージ集合を選択し、該メッセージ集合に基づいて処理間の呼び出し関係に関する制約条件を満たすトランザクションモデルを生成することを特徴とするパケットデータ解析プログラム。
（付記７）  付記または付記６に記載のパケットデータ解析プログラムにおいて、
前記タイムスタンプ再補正ステップは、前記トランザクションモデル生成ステップにより生成された複数のトランザクションモデルから得られる前記位置による前記タイムスタンプのずれの平均値を用いて、前記タイムスタンプ補正ステップにより補正されたタイムスタンプを補正することを特徴とするパケットデータ解析プログラム。
（付記８）  付記７に記載のパケットデータ解析プログラムにおいて、
前記タイムスタンプ再補正ステップは、前記トランザクションモデル生成ステップにより生成された複数のトランザクションモデルのうち、ユーザの指示により選択されたとトランザクションモデルを用いて、前記平均値を算出することを特徴とするパケットデータ解析プログラム。
（付記９）  付記５乃至付記８のいずれかに記載のパケットデータ解析プログラムにおいて、
前記制約条件は、呼び出し元の処理時間帯は呼び出し先の処理時間帯を包含するという条件が定義されていることを特徴とするパケットデータ解析プログラム。
（付記１０）  付記５乃至付記９のいずれかに記載のパケットデータ解析プログラムにおいて、
前記制約条件は、ノード間の呼び出し方向が定義されていることを特徴とするパケットデータ解析プログラム。
（付記１１）  付記５乃至付記１０のいずれかに記載のパケットデータ解析プログラムにおいて、
前記トランザクションモデル生成部は、同一トランザクション内の各処理種別のリクエストメッセージからレスポンスメッセージまでの時間に基づいて、ノードにおける各処理種別に対応する処理の所要時間を計算し、前記トランザクションモデルに設定することを特徴とするパケットデータ解析プログラム。
（付記１２）  付記５乃至付記１１のいずれかに記載のパケットデータ解析プログラムにおいて、
前記トランザクションモデル生成部は、クライアントから最初に呼び出されリクエストメッセージと、該リクエストメッセージに対応するレスポンスメッセージとから、各トランザクションの処理時間帯を判定し、他のトランザクションとの間で処理時間帯が重複しない非多重のトランザクションを検出し、検出された非多重のトランザクションの処理時間帯内で各処理間の呼び出し関係を判断することを特徴とするパケットデータ解析プログラム。
（付記１３）  付記５乃至付記１２のいずれかに記載のパケットデータ解析プログラムにおいて、
前記トランザクションモデル生成部は、呼び出し先となる処理に対し、呼び出し可能な処理が複数ある場合、各処理からの呼び出し確率を均等に定め、呼び出し元となる処理から他の処理の呼び出し確率を処理の種別毎に統合し、処理間の呼び出し関係の可能性を算出することを特徴とするパケットデータ解析プログラム。
（付記１４）  付記５乃至付記１３のいずれかに記載のパケットデータ解析プログラムにおいて、
前記トランザクションモデル生成部は、処理種別毎に、呼び出し可能な処理の組み合わせを示す１以上の発生パターンを生成し、該発生パターンごとに生起確率を計算し、該生起確率が上位の前記発生パターンを所定の個数だけ選択し、選択された発生パターンに基づいて、前記トランザクションモデルを生成することを特徴とするパケットデータ解析プログラム。
（付記１５）  パケットデータの解析を行うパケットデータ解析装置であって、
ネットワーク上の複数の位置で採取されたパケットデータと、該パケットデータが採取された時刻であるタイムスタンプとを収集するパケットデータ収集部と、
前記パケットデータ収集部により収集されたパケットデータからメッセージに関する情報であるメッセージ情報を取得するメッセージ情報取得部と、
前記メッセージ情報取得部により取得されたメッセージ情報に基づいて、前記位置による前記タイムスタンプのずれを補正するタイムスタンプ補正部と
を備えるパケットデータ補正装置。
（付記１６）  付記１５に記載のパケットデータ解析装置において、
前記メッセージ情報は、処理種別、リクエストメッセージかレスポンスメッセージかを示すメッセージ方向、処理に関するパラメータのいずれかを含むことを特徴とするパケットデータ解析装置。
（付記１７）  付記１５または付記１６のいずれかに記載のパケットデータ解析装置において、
前記ネットワーク上の複数の位置は、前記ネットワーク上に設けられたスイッチのミラーポートであることを特徴とするパケットデータ解析装置。
（付記１８）  付記１５乃至付記１７のいずれかに記載のパケットデータ解析装置において、
前記タイムスタンプ補正部は、前記ネットワークを階層に分け、隣接する階層同士のタイムスタンプのずれを補正することにより、全ての階層におけるタイムスタンプのずれを補正することを特徴とするパケットデータ解析装置。
（付記１９）  付記１５乃至付記１８のいずれかに記載のパケットデータ解析装置において、
更に、前記メッセージ情報取得部により取得されたメッセージ情報と前記タイムスタンプ補正部により補正されたタイムスタンプとに基づいて、トランザクションと各メッセージの時間差を推定し、推定結果をトランザクションモデルとして生成するトランザクションモデル生成部と、
前記トランザクションモデル生成部により生成されたトランザクションモデルに基づいて、前記タイムスタンプ補正部により補正されたタイムスタンプを補正するタイムスタンプ再補正部と
を備えることを特徴とするパケットデータ解析装置。
（付記２０）  パケットデータの解析を行うパケットデータ解析方法であって、
ネットワーク上の複数の位置で採取されたパケットデータと、該パケットデータが採取された時刻であるタイムスタンプとを収集するパケットデータ収集ステップと、
前記パケットデータ収集ステップにより収集されたパケットデータからメッセージに関する情報であるメッセージ情報を取得するメッセージ情報取得ステップと、
前記メッセージ情報取得ステップにより取得されたメッセージ情報に基づいて、前記位置による前記タイムスタンプのずれを補正するタイムスタンプ補正ステップと
を実行するパケットデータ補正方法。
【図面の簡単な説明】
【００８０】
【図１】本実施の形態に係るＷｅｂシステムの構成の一例を示すブロック図である。
【図２】本実施の形態に係るＷｅｂシステムの第１の接続関係を示すブロック図である。
【図３】本実施の形態に係るパケットデータ解析装置の構成の一例を示すブロック図である。
【図４】本実施の形態に係るタイムスタンプ補正部の動作の一例を示すフローチャートである。
【図５】本実施の形態に係る第１の時刻ずれ算出処理の動作の一例を示すシーケンス図である。
【図６】本実施の形態に係るＷｅｂシステムの第２の接続関係を示すブロック図である。
【図７】本実施の形態に係るＷｅｂシステムのノードを集約した第２の接続関係を示すブロック図である。
【図８】大規模なＷｅｂシステムにおけるタイムスタンプ補正部の動作の一例を示すシーケンス図である。
【符号の説明】
【００８１】
１１  Ｗｅｂサーバ（ＷＥＢ）、１２ａ，１２ｂ  アプリケーションサーバ（ＡＰＬ）、１３ａ，１３ｂ  データベース（ＤＢ）、１４ａ，１４ｂ  負荷分散装置、１５  パケットデータ解析装置、２０  パケットデータ収集部、２１  メッセージ情報取得部、２２  タイムスタンプ補正部、２３  トランザクションモデル生成部、３１，３２，３３，３４  キャプチャポイント（Ｃ）。
【図１】
0004648181.tif 000002
【図２】
0004648181.tif 000003
【図３】
0004648181.tif 000004
【図４】
0004648181.tif 000005
【図５】
0004648181.tif 000006
【図６】
0004648181.tif 000007
【図７】
0004648181.tif 000008
【図８】
0004648181.tif 000009