(57)【要約】  異なるサーバで実行された処理のイベント情報の時刻のずれを補正可能とする。  第１の記憶手段（１ａ）は、第１のサーバ（３）で実行された処理に関するイベントの要求元イベント情報を記憶する。第２の記憶手段（１ｂ）は、第１のサーバ（３）からの実行要求に応じて第２のサーバ（４）で実行された処理に関するイベントの要求先イベント情報を記憶する。関連付け手段（１ｄ）は、第１の記憶手段（１ａ）と第２の記憶手段（１ｂ）とを参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付ける。決定手段（１ｅ）は、関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、第１の記憶手段（１ａ）に格納された要求元イベント情報の時刻情報と、第２の記憶手段（１ｂ）に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する。
2013057790.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションの一部として第１のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する第１の記憶手段、および前記第１のサーバからのトランザクションの一部の実行要求に応じて第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する第２の記憶手段を参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付ける関連付け手段と、
関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する決定手段と、
を有する情報処理装置。
【請求項２】
前記決定手段は、
前記第１のサーバで実行された処理の開始を示す要求元イベント情報と該処理の終了を示す要求元イベント情報とのイベント情報対を生成し、該イベント情報対を構成する各要求元イベント情報の時刻情報に基づき、該処理の実行期間を判断し、
該イベント情報対を構成する要求元イベント情報と同一のトランザクションの識別子を含む要求先イベント情報の時刻情報を補正した場合に、補正後の時刻を該実行期間内とすることができる適合時間幅を決定し、
該適合時間幅内の時間を、前記補正値に決定する、
ことを特徴とする請求の範囲第１項記載の情報処理装置。
【請求項３】
前記決定手段は、
トランザクションの識別子を含む要求先イベント情報ごとに適合時間幅を計算し、
要求先イベント情報それぞれの適合時間幅の重複範囲内の時間を、前記補正値に決定する、
ことを特徴とする請求の範囲第２項記載の情報処理装置。
【請求項４】
前記決定手段は、
トランザクションの識別子を含む要求先イベント情報ごとに適合時間幅を計算し、
時刻の補正量を示す複数の補正値候補それぞれについて、該補正値候補に示される補正量を適合時間幅に含む要求先イベント情報の割合を計算し、該割合が最も大きくなる補正値候補を前記補正値に決定する、
ことを特徴とする請求の範囲第２項記載の情報処理装置。
【請求項５】
前記第２の記憶手段には、さらに、トランザクションの一部として前記第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報を含み、該トランザクションの識別子を含まない、トランザクション不明イベント情報が格納されており、
前記決定手段は、
補正値候補を適合時間幅に含む要求先イベントの割合が最も大きくなる補正値候補が複数ある場合、該割合が最も大きくなる複数の補正値候補それぞれについて、該補正値候補に示される補正量だけ時刻のずれを補正した場合に、補正後の時刻情報が、前記第１のサーバで実行された処理の実行期間のいずれかに含まれる、要求先イベント情報およびトランザクション不明イベント情報の割合を計算し、該割合が最も大きくなる補正値候補を前記補正値に決定する、
ことを特徴とする請求の範囲第４項記載の情報処理装置。
【請求項６】
前記第１のサーバまたは前記第２のサーバで実行された処理に関するイベントは、処理を要求するリクエストメッセージの発生、および該リクエストメッセージに対するレスポンスメッセージの発生である請求の範囲第１項乃至第５項のいずれかに記載の情報処理装置。
【請求項７】
さらに、
前記第１の記憶手段または第２の記憶手段から、前記補正値で時刻情報を補正しながら、要求元イベント情報または要求先イベント情報を取得して分析を行う分析手段を有することを特徴とする請求の範囲第１項乃至第６項のいずれかに記載の情報処理装置。
【請求項８】
さらに、
要求元イベント情報および要求先イベント情報を取得し、要求元イベント情報または要求先イベント情報の時刻情報を前記補正値で補正しながら前記第１の記憶手段または第２の記憶手段に格納する取得手段を有することを特徴とする請求の範囲第１項乃至第６項のいずれかに記載の情報処理装置。
【請求項９】
さらに、
補正値候補ごとの、該補正値候補を適合時間幅に含む要求先イベント情報の割合を表示する表示手段を有することを特徴とする請求の範囲第４項記載の情報処理装置。
【請求項１０】
さらに、
補正値候補ごとの、該補正値候補を適合時間幅に含む要求先イベント情報の割合、および複数のトランザクション不明イベント情報それぞれの発生時刻が、トランザクションごとに求められた、前記第１のサーバで実行された処理の実行期間のいずれかに含まれる割合を表示する表示手段を有することを特徴とする請求の範囲第５項記載の情報処理装置。
【請求項１１】
さらに、
前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを、決定された前記補正値で補正した後の、要求元イベント情報と要求先イベント情報との時刻情報の関係を表示する表示手段を有することを特徴とする請求の範囲第１項乃至第１０項のいずれかに記載の情報処理装置。
【請求項１２】
前記関連付け手段は、トランザクションの処理を複数の階層に分けて実行する多階層システムの処理において、上下に隣接する階層の上位の階層の処理を実行するサーバを前記第１のサーバとし、該隣接する階層の下位の階層の処理を実行するサーバを前記第２のサーバとする請求の範囲第１項乃至第１１項のいずれかに記載の情報処理装置。
【請求項１３】
コンピュータが、
トランザクションの一部として第１のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する第１の記憶手段、および前記第１のサーバからのトランザクションの一部の実行要求に応じて第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する第２の記憶手段を参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付け、
関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する、
ことを特徴とする時刻補正値決定方法。
【請求項１４】
トランザクションの一部として第１のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する第１の記憶手段、および前記第１のサーバからのトランザクションの一部の実行要求に応じて第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する第２の記憶手段を参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付け、
関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランザクションの処理で発生したイベントに関する情報を処理する情報処理装置、時刻補正値決定方法、およびプログラムに関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションソフトウェアなどを用い、インターネットなどのネットワークを介してユーザにサービスを提供する場合がある。このとき安定したサービスを提供するために、サービスを提供するシステムの運用管理が行われる。【０００３】
システムの運用管理では、ユーザの処理要求の遅延などを監視するため、例えば性能の測定が行われる。性能測定としては、例えば、最初のリクエストからユーザへのレスポンスまでの処理時間、ＤＢ（データベース）アクセスに要した処理時間など、処理内容ごとの処理時間が測定される。処理がＷｅｂレイヤ、アプリケーションレイヤ、およびＤＢレイヤに分かれたＷｅｂ３階層システムのような多階層システムであれば、ネットワークから収集したメッセージの内容を解析して、トランザクションの処理状態を分析する技術がある。【０００４】
なおトランザクション中で発生したメッセージに基づいてトランザクションの処理時間を測定するには、まず同一トランザクション中で発生したメッセージが特定される。例えば、多階層システムの上位レイヤの処理の開始から終了までの実行期間が、その処理のリクエストメッセージとレスポンスメッセージとの発生時刻によって特定される。そして、上位レイヤの処理の実行期間内に発生した下位レイヤの処理のリクエストメッセージが、同一トランザクションに関するメッセージとして、上位レイヤの処理のリクエストメッセージとレスポンスメッセージとの組に関連づけられる。【０００５】
下位レイヤへのリクエストメッセージの送信が上位レイヤの処理の開始から終了までの実行期間内に行われているかどうかの判断を正確に行うには、メッセージの送信などのイベント発生の前後関係が正確であることが重要である。イベント発生の前後関係は、各イベントの発生時刻を示す時刻情報に基づいて判断される。【０００６】
なお、メッセージ送信などのイベントに関する情報を、複数の機器から収集する場合がある。その場合、イベントの前後関係の判定精度向上のために、例えばメッセージを採取する機器間の時刻合わせが行われる。例えば、中央のタイムベースにローカルのタイムベースを同期させる技術などが考えられている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−０１１６８３号公報
【特許文献２】特表２００２−５１００８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、異なるサーバそれぞれのイベント情報を別個の機器で取得する場合、取得する複数の機器間で時刻同期による時刻合わせを行っても、メッセージの送受信などのイベント間の前後関係の正確な把握に十分な同期精度が得られないことがある。しかも、複数の機器の時刻が完全に一致した場合であっても、各機器でイベント情報を採取するプロセスによるタイムスタンプの付与タイミングがプロセス間で異なり、時刻のずれが生じることがある。このようなプロセスのタイムスタンプ付与タイミングのずれから生じる時刻情報のずれは、異なるサーバそれぞれのイベント情報を、同一機器の複数のプロセスを使って採取するような場合にも同様に発生する。このように、各イベント情報の時刻情報にずれがあると、メッセージの送受信などのイベント間の前後関係の判定制度が劣化する。その結果、例えばトランザクション分析による分析結果の信頼性が低下する。【０００９】
しかも、異なるサーバで発生したイベントの時刻情報の補正値を判断する手法がない。そのため、異なるサーバそれぞれで実行した処理のイベント情報を、異なる装置または異なるプロセスで取得した場合、イベント情報の時刻のずれを補正することができない。【００１０】
１つの側面では、本発明は、異なるサーバで実行した処理のイベント情報の時刻のずれを補正可能とする情報処理装置、時刻補正値決定方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
１つの案では、トランザクションの一部として第１のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する第１の記憶手段、および前記第１のサーバからのトランザクションの一部の実行要求に応じて第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する第２の記憶手段を参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付ける関連付け手段と、関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する決定手段と、を有する情報処理装置が提供される。
【発明の効果】
【００１２】
１態様によれば、異なるサーバで実行した処理のイベント情報の時刻のずれが補正可能となる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係るシステムの構成例を示す図である。
【図２】第２の実施の形態のシステム構成の一例を示す図である。
【図３】第２の実施の形態に用いる分析装置のハードウェアの一構成例を示す図である。
【図４】分析装置の機能の一例を示すブロック図である。
【図５】トランザクション分析処理の手順を示すフローチャートである。
【図６】Ｗｅｂメッセージ記憶部のデータ構造の一例を示す図である。
【図７】アプリケーションメッセージ記憶部のデータ構造の一例を示す図である。
【図８】ＤＢメッセージ記憶部のデータ構造の一例を示す図である。
【図９】補正値決定処理の手順を示すフローチャートである。
【図１０】分析装置で検出されたメッセージの一例を示す図である。
【図１１】適合時間幅情報の一例を示す図である。
【図１２】適合率調査結果の一例を示す図である。
【図１３】補正値記憶部のデータ構造の一例を示す図である。
【図１４】時刻補正後のメッセージの一例を示す図である。
【図１５】適合率グラフの表示例を示す図である。
【図１６】包含関係図の表示例を示す図である。
【図１７】第３の実施の形態の補正値決定処理の手順の一例を示すフローチャートである。
【図１８】適合率／カバー率調査結果の一例を示す図である。
【図１９】時刻補正後のメッセージの一例を示す図である。
【図２０】適合率／カバー率グラフの表示例を示す図である。
【図２１】包含関係図の表示例を示す図である。
【図２２】第４の実施の形態に係る分析装置の機能の一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るシステムの構成例を示す図である。第１の実施の形態に係るシステムには、例えば、情報処理装置１、端末装置２、第１のサーバ３、第２のサーバ４、およびキャプチャ装置５が含まれる。
【００１５】
端末装置２は、例えばユーザからの入力に応じて、第１のサーバ３に対して処理要求を送信する。第１のサーバ３と第２のサーバ４とは、互いに連携し、端末装置２からの処理要求に応じて、トランザクション処理を実行する。例えば第１のサーバ３がＷｅｂサーバとアプリケーションサーバとの機能を備え、第２のサーバ４がＤＢサーバの機能を備える。この場合、第１のサーバ３は、端末装置２から処理要求に応じたＷｅｂサービスおよびアプリケーションの処理サービスを実行し、第２のサーバ４が管理するデータにアクセスする際に、第２のサーバ４に対してリクエストメッセージを送信する。なお第１のサーバ３が第２のサーバ４に送信するリクエストメッセージには、トランザクションの識別子を含めることができる。第２のサーバ４は、受信したリクエストメッセージに応じたデータへのアクセスを行い、アクセス結果をレスポンスメッセージとして第１のサーバ３に応答する。
【００１６】
第１の実施の形態に係るシステムは、第１のサーバ３と第２のサーバ４とのそれぞれに関し、トランザクションの処理に関連して発生したイベントに関するイベント情報を記録する機能を備えている。
【００１７】
例えば第１のサーバ３は、リクエストメッセージに応じてトランザクションの処理の一部を実行すると、実行した処理の開始イベントに関するイベント情報と、処理の終了イベントに関するイベント情報と生成する。なお第１のサーバ３は、生成したイベント情報に、イベントの発生時刻を示す時刻情報を含める。また第１のサーバ３は、実行したトランザクションを一意に示す識別子を生成し、イベント情報にトランザクションの識別子を含める。そして第１のサーバ３は、生成したイベント情報を内部の記憶装置に格納する。
【００１８】
また第１のサーバ３と第２のサーバ４との通信経路上にネットワークタップ６が設けられ、そのネットワークタップ６にキャプチャ装置５が接続されている。ネットワークタップ６は、第１のサーバ３と第２のサーバ４との間で送受信されたパケットのコピーを、キャプチャ装置５に送信する。キャプチャ装置５は、ネットワークタップ６から送信されたパケットを解析して、第１のサーバ３から第２のサーバ４へのリクエストメッセージ、および第２のサーバ４から第１のサーバ３へのレスポンスメッセージを再生する。そしてキャプチャ装置５は、それぞれのメッセージの発生イベントを示すイベント情報を、内部の記憶装置に記憶する。なおキャプチャ装置５は、イベント情報を記憶する際に、イベントの発生時刻を示す時刻情報をイベント情報に付与する。またキャプチャ装置５は、取得したメッセージにトランザクションの識別子が含まれていれば、その識別子をイベント情報に含める。
【００１９】
情報処理装置１は、第１の記憶手段１ａ、第２の記憶手段１ｂ、取得手段１ｃ、関連付け手段１ｄ、および決定手段１ｅを有する。
第１の記憶手段１ａは、トランザクションの一部として第１のサーバ３で実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する。なお図１の例では、第１のサーバ３で発生したイベントのイベント情報には、イベント内容として、処理内容や、処理の開始イベントなのか終了イベントなのかを示す情報が含まれる。
【００２０】
第２の記憶手段１ｂは、第１のサーバ３からのトランザクションの一部の実行要求に応じて第２のサーバ４で実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する。なお図１の例では、第１のサーバ３で発生したイベントのイベント情報には、さらに処理内容を示す情報がイベント内容として含まれる。
【００２１】
なお、第１の記憶手段１ａと第２の記憶手段１ｂとの一部のイベント情報には、トランザクション識別子が付与されていなくてもよい。例えば図１の例では、第１の記憶手段１ａには、トランザクション識別子が付与されている要求元イベント情報のみが格納されている。他方第２の記憶手段１ｂには、トランザクション識別子が付与されている要求先イベント情報と、トランザクション識別子が付与されていないイベント情報（トランザクション不明イベント情報）とが格納されている。
【００２２】
取得手段１ｃは、キャプチャ装置５から第１のサーバ３で実行された処理に関する要求元イベント情報を取得し、第１の記憶手段１ａに格納する。また取得手段１ｃは、第２のサーバ４から、第２のサーバ４で実行された処理に関する要求先イベント情報を取得し、第２の記憶手段１ｂに格納する。
【００２３】
関連付け手段１ｄは、第１の記憶手段１ａと第２の記憶手段１ｂとを参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付ける。
【００２４】
決定手段１ｅは、関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較する。そして決定手段１ｅは、第１の記憶手段１ａに格納された要求元イベント情報の時刻情報と、第２の記憶手段１ｂに格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値１ｆを決定する。
【００２５】
例えば決定手段１ｅは、第１のサーバで実行された処理の開始を示す要求元イベント情報と該処理の終了を示す要求元イベント情報とのイベント情報対を生成する。次に決定手段１ｅは、生成したイベント情報対を構成する各要求元イベント情報の時刻情報に基づき、処理の実行期間を判断する。さらに決定手段１ｅは、生成したイベント情報対を構成する要求元イベント情報と同一のトランザクションの識別子を含む要求先イベント情報の時刻情報を補正した場合に、補正後の時刻を該実行期間内とすることができる適合時間幅を決定する。そして決定手段１ｅは、適合時間幅内の時間を、補正値１ｆに決定する。例えば決定手段１ｅは、トランザクションの識別子を含む要求先イベント情報ごとに適合時間幅を計算する。そして決定手段１ｅは、要求先イベント情報それぞれの適合時間幅の重複範囲内の時間を、補正値１ｆに決定する。
【００２６】
このようなシステムによれば、端末装置２からの処理要求に応じて、第１のサーバ３と第２のサーバ４とでトランザクション処理が実行される。第１のサーバ３で実行された処理に関する要求元イベント情報は、キャプチャ装置５で記録される。第２のサーバ４で実行された処理に関する要求先イベント情報は、第２のサーバ４で記録される。このとき、キャプチャ装置５と第２のサーバ４との間に、内部時計にずれがあれば、それぞれで記録したイベント情報に付与される時刻情報にもずれが生じる。そこで、情報処理装置１によって、時刻ずれの補正値１ｆが判断される。
【００２７】
例えば情報処理装置１の取得手段１ｃにより、キャプチャ装置５から要求元イベント情報が取得され、第１の記憶手段１ａに格納される。また取得手段１ｃにより、第２のサーバ４から要求先イベント情報が取得され第２の記憶手段１ｂに格納される。
【００２８】
次に関連付け手段１ｄにより、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とが関連づけられる。例えば図１の例であれば、第１の記憶手段１ａ内のトランザクションの識別子「ｔｉｄ１」を有する上位２つの要求元イベント情報と、第２の記憶手段１ｂ内のトランザクションの識別子「ｔｉｄ１」を有する最上位の要求先イベント情報とが関連づけられる。同様に、トランザクションの識別子「ｔｉｄ２」を有する要求元イベント情報と要求先イベント情報とが関連づけられる。さらにトランザクションの識別子「ｔｉｄ３」を有する要求元イベント情報と要求先イベント情報とが関連づけられる。
【００２９】
次に決定手段１ｅによって、補正値１ｆが決定される。例えば決定手段１ｅにより、同一のトランザクションの識別子を含む複数の要求元イベント情報のうちの、処理の開始を示す要求元イベント情報と該処理の終了を示す要求元イベント情報それぞれの時刻情報に基づき、処理の実行期間が判断される。図１の例では、トランザクション識別子「ｔｉｄ１」に対応する第１のサーバ３の処理の実行期間は「３．１０〜３．２０（秒）」である。トランザクション識別子「ｔｉｄ２」に対応する第１のサーバ３の処理の実行期間は「３．３０〜３．４０（秒）」である。トランザクション識別子「ｔｉｄ３」に対応する第１のサーバ３の処理の実行期間は「３．５０〜３．５９（秒）」である。
【００３０】
さらに決定手段１ｅにより、複数の要求元イベント情報と同一のトランザクションの識別子を含む要求先イベント情報の時刻情報の補正後の時刻を、要求元イベント情報に対応する処理の実行期間内とすることができる適合時間幅が判断される。図１の例では、トランザクション識別子「ｔｉｄ１」の第２のサーバ４のイベント情報の時刻情報は「３．０５（秒）」である。この時刻情報「３．０５（秒）」に対して補正を行った後に、トランザクション識別子「ｔｉｄ１」に対応する処理の実行期間内とする適合時間幅は、「＋０．０５〜＋０．１５」である。同様に、トランザクション識別子「ｔｉｄ２」の第２のサーバ４のイベント情報の時刻情報「３．３１（秒）」に対する適合時間幅は、「−０．０１〜＋０．０９」である。またトランザクション識別子「ｔｉｄ３」の第２のサーバ４のイベント情報の時刻情報「３．４３（秒）」に対する適合時間幅は、「＋０．０７〜＋０．１６」である。
【００３１】
そして決定手段１ｅにより、第２のサーバ４のイベント情報ごとに算出された適合時間幅に基づいて、補正値１ｆが決定される。例えば複数のトランザクションそれぞれの適合時間幅の重複範囲内の時間が、補正値１ｆに決定される。図１の例では、適合時間幅の重複範囲は「＋０．０７〜＋０．０９（秒）」である。そこで、例えば重複範囲の中間値「０．０８」が補正値１ｆに決定される。
【００３２】
このように第１の実施の形態では、第１のサーバ３のイベント情報と第２のサーバ４のイベント情報とがトランザクション識別子で関連付けられ、関連付けられたイベント情報の時刻情報を比較することで、補正値１ｆが決定される。決定された補正値１ｆを用いて、第１の記憶手段１ａ内の要求元イベント情報の第２の記憶手段１ｂ内の要求先イベント情報との時刻のずれを補正すれば、要求元イベント情報と要求先イベント情報とを、対応するイベントの発生順に正しく並べることができる。しかもトランザクションの識別子を持たないイベント情報がある場合でも、イベント情報の時刻のずれを補正することができる。そのため、一つのトランザクションに関連するすべての情報をより正確に収集することができるようになる。個々のトランザクションの情報を正確に収集できれば、トランザクション内の処理ごとの所要時間をアプリケーション本体から外部の通信に至るまでトランザクションごとに計測できるようになる。そのため、システムの不具合や性能の監視、ボトルネックの検出などを、正確に行うことが可能になる。その結果、例えばトランザクション分析の信頼性が向上する。
【００３３】
なお図１の例では、第２の記憶手段１ｂ内の要求先イベント情報の時刻情報を補正するための補正値１ｆを決定しているが、時刻のずれは相対的なものである。そのため、第１の記憶手段１ａ内の要求先イベント情報の時刻情報を補正するための補正値を決定してもよい。例えば図１に示す補正値１ｆの値「＋０．０８」の符号を逆にし、「−０．０８」とすれば、第１の記憶手段１ａ内の要求先イベント情報の時刻情報を補正するための補正値となる。
【００３４】
なお、取得手段１ｃ、関連付け手段１ｄ、および決定手段１ｅは、情報処理装置１が有するＣＰＵ（Central Processing Unit）により実現することができる。また、第１の記憶手段１ａおよび第２の記憶手段１ｂは、情報処理装置１が有するＲＡＭ（Random Access Memory）やハードディスクドライブ（ＨＤＤ:Hard Disk Drive）などにより実現することができる。
【００３５】
また、図１に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第２の実施の形態〕
次に第２の実施の形態について説明する。第２の実施の形態は、トランザクションの分析を行う分析装置において、トランザクションの分析に先立って時刻情報の補正値を決定するものである。
【００３６】
なお、第２の実施の形態では、ＷＷＷ（World Wide Web）を用いたサーバビスを提供するＷｅｂ３階層システムの例を用いる。Ｗｅｂ３階層システムでは、トランザクションの処理が、ＷＷＷによるサービスの入口となるＷｅｂレイヤ、各種データ処理を行うアプリケーションレイヤ、およびデータを管理するＤＢレイヤの３つのレイヤ（階層）に分かれる。Ｗｅｂ３階層システムでは、Ｗｅｂレイヤが最上位である。Ｗｅｂレイヤの下位にアプリケーションレイヤが存在する。さらにアプリケーションレイヤの下位に、ＤＢレイヤが存在する。
【００３７】
また第２の実施の形態では、第１の実施の形態のイベント情報の一例として、各サーバに入出力されたメッセージに関する情報（メッセージ情報）を取得する。例えばサーバにリクエストメッセージが入力されれば、そのサーバでの処理の開始イベントが発生したものと認識できる。また、サーバからレスポンスメッセージが出力されれば、そのサーバでの処理の終了イベントが発生したものと認識できる。
【００３８】
図２は、第２の実施の形態のシステム構成の一例を示す図である。図２には、Ｗｅｂ３階層システムを用いてサービスを提供するシステムの例が示されている。このシステムでは、端末装置３１〜３３がネットワーク２１、スイッチ２２を介してＷｅｂサーバ４１に接続されている。端末装置３１〜３３は、サービスの提供を受けるユーザが使用するコンピュータ、携帯端末装置などの機器である。
【００３９】
スイッチ２２は、例えばレイヤ２スイッチである。またスイッチ２２は、中継するパケットの信号を分岐させて出力するキャプチャポートを備えている。スイッチ２２のキャプチャポートには、キャプチャ装置４４が接続されている。
【００４０】
Ｗｅｂサーバ４１は、ＷＷＷによる情報通信機能を備えたコンピュータである。Ｗｅｂサーバ４１は、端末装置３１〜３３からの要求に応じて、処理を実行し、処理結果を応答する。またＷｅｂサーバ４１は、処理の実行過程でアプリケーションサーバ４２の処理機能を利用する場合、アプリケーションサーバ４２に処理要求を送信し、処理結果の応答を受け取る。
【００４１】
なおＷｅｂサーバ４１は、例えば端末装置３１〜３３から処理を要求するリクエストメッセージを受信すると、そのリクエストメッセージに応じて実行するトランザクションを一意に識別するトランザクションＩＤを生成する。そしてＷｅｂサーバ４１は、トランザクションの処理の一部をアプリケーションサーバ４２に依頼する場合、そのトランザクションのトランザクションＩＤを付与したリクエストメッセージをアプリケーションサーバ４２に送信する。さらにＷｅｂサーバ４１は、トランザクションの処理結果を示すレスポンスメッセージに、そのトランザクションのトランザクションＩＤを付与する。
【００４２】
アプリケーションサーバ４２は、各種アプリケーションソフトウェアを実行するコンピュータである。アプリケーションサーバ４２は、Ｗｅｂサーバ４１からの要求に応じて処理を実行し、実行結果を応答する。なおアプリケーションサーバ４２は、処理の実行過程でＤＢサーバ４３が管理するデータへのアクセス処理が発生した場合、ＤＢサーバ４３にデータアクセスの処理要求を送信し、処理結果の応答を受け取る。またアプリケーションサーバ４２は、実行した処理に関連して送受信したメッセージ（アプリケーションメッセージ）の履歴を、タイムスタンプ（時刻情報）を付加して記憶する。
【００４３】
なおアプリケーションサーバ４２は、ＤＢサーバ４３に送信するリクエストメッセージの少なくとも一部に、アプリケーションサーバ４２からのリクエストメッセージに含まれていたトランザクションＩＤを付与する。
【００４４】
ＤＢサーバ４３は、スイッチ２３を介してアプリケーションサーバ４２に接続されている。ＤＢサーバ４３は、データベースを有し、そのデータベースを管理するコンピュータである。ＤＢサーバ４３は、Ｗｅｂサーバ４１からの要求に応じて処理を実行し、実行結果を応答する。
【００４５】
スイッチ２３は、例えばレイヤ２スイッチである。またスイッチ２３は、中継するパケットの信号を分岐させて出力するキャプチャポートを備えている。スイッチ２３のキャプチャポートには、キャプチャ装置４５が接続されている。
【００４６】
キャプチャ装置４４は、スイッチ２２を介して端末装置３１〜３３それぞれと、Ｗｅｂサーバ４１との間で送受信されたパケットを取得するコンピュータである。そしてキャプチャ装置４４は、取得したパケットに含まれるメッセージ（Ｗｅｂメッセージ）を解析し、タイムスタンプを付加して記憶する。
【００４７】
キャプチャ装置４５は、スイッチ２３を介してアプリケーションサーバ４２とＤＢサーバ４３との間で送受信されたパケットを取得するコンピュータである。そしてキャプチャ装置４５は、取得したパケットに含まれるメッセージ（ＤＢメッセージ）を解析し、タイムスタンプを付加して記憶する。
【００４８】
分析装置１００は、ネットワーク２４を介してアプリケーションサーバ４２、およびキャプチャ装置４４，４５に接続されている。分析装置１００は、Ｗｅｂサーバ４１、アプリケーションサーバ４２、およびＤＢサーバ４３によって処理が実行された一連のトランザクションを分析するコンピュータである。例えば分析装置１００は、キャプチャ装置４４から、端末装置３１〜３３それぞれと、Ｗｅｂサーバ４１との間で送受信されたメッセージの情報を取得する。また分析装置１００は、アプリケーションサーバ４２から、Ｗｅｂサーバ４１とアプリケーションサーバ４２との間で送受信されたメッセージの情報を取得する。さらに分析装置１００は、キャプチャ装置４５から、アプリケーションサーバ４２とＤＢサーバ４３との間で送受信されたメッセージに関するメッセージ情報を取得する。そして分析装置１００は、取得したメッセージ情報を解析し、例えばトランザクションの種別毎の各サーバでの平均処理時間などを解析する。
【００４９】
分析装置１００は、メッセージを解析する際に、同一トランザクションの処理に関するメッセージ同士の関連付けを行う。そして分析装置１００は、各トランザクションに関するメッセージを解析することで、例えばトランザクションのレイヤごとの処理時間の分析が可能となる。
【００５０】
なお、同一トランザクションの処理であれば、上位レイヤの処理の開始から終了までの実行期間内に、下位レイヤの処理の実行期間は包含される。従って、上位レイヤへのリクエストメッセージとレスポンスメッセージとの間に、同一トランザクションにおける下位レイヤのリクエストメッセージやレスポンスメッセージが発生する。このような条件を満たすメッセージ同士を関連付けることで、同一トランザクションにおいて発生したメッセージの集合を生成することができる。この条件を満たすか否かは、例えば各メッセージを時系列に並べることで判断できる。
【００５１】
ここで、各メッセージに付与されたタイムスタンプの時刻が正確であれば、メッセージを正しく時系列で並べることができる。しかし、第２の実施の形態では、Ｗｅｂメッセージのタイムスタンプは、キャプチャ装置４４によって付加される。アプリケーションメッセージのタイムスタンプは、アプリケーションサーバ４２によって付加される。ＤＢメッセージのタイムスタンプは、キャプチャ装置４５によって付加される。するとアプリケーションサーバ４２と各キャプチャ装置４４，４５の内部時計の時刻にずれがある場合、タイムスタンプで示された時刻にもずれが生じる。またアプリケーションサーバ４２と各キャプチャ装置４４，４５との内部時計の時刻が一致していたとしても、タイムスタンプを設定するプロセスの処理タイミングの違いにより、例えば０．０１秒単位での微妙な時刻のずれが生じる。このような時刻のずれにより、メッセージを、そのメッセージが送信された順に正しく時系列に並べるのが困難となる。
【００５２】
そこで分析装置１００では、異なる機器でタイムスタンプが付与されたメッセージ間の時刻を補正する補正値を算出し、時刻の補正を行ったうえでメッセージを時系列に並べる。これにより、上位の処理と、その処理に呼び出されて実行された下位の処理の時間的な包含関係が正しく再現され、同一トランザクションに含まれるメッセージ集合を正しく判定可能となる。
【００５３】
このような処理を実現する分析装置１００は、例えば以下のようなハードウェアで構成される。
図３は、第２の実施の形態に用いる分析装置のハードウェアの一構成例を示す図である。分析装置１００は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
【００５４】
ＲＡＭ１０２は、分析装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００５５】
バス１０８に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、および通信インタフェース１０７がある。
【００５６】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、分析装置１００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００５７】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００５８】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００５９】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００６０】
通信インタフェース１０７は、ネットワーク２４に接続されている。通信インタフェース１０７は、ネットワーク２４を介して、アプリケーションサーバ４２、またはキャプチャ装置４４，４５との間でデータの送受信を行う。
【００６１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、第１の実施の形態に示した情報処理装置１も、図３に示した分析装置と同様のハードウェアにより実現することができる。
【００６２】
図４は、分析装置の機能の一例を示すブロック図である。分析装置１００は、メッセージ収集部１１０、Ｗｅｂメッセージ記憶部１２０、アプリケーションメッセージ記憶部１３０、ＤＢメッセージ記憶部１４０、補正値決定部１５０、補正値記憶部１６０、トランザクション分析部１７０、および表示部１８０を有する。
【００６３】
メッセージ収集部１１０は、アプリケーションサーバ４２、および各キャプチャ装置４４，４５からメッセージを収集する。例えばメッセージ収集部１１０は、キャプチャ装置４４から、キャプチャ装置４４が記憶しているＷｅｂメッセージを取得し、Ｗｅｂメッセージ記憶部１２０に格納する。またメッセージ収集部１１０は、アプリケーションサーバ４２から、アプリケーションサーバ４２が記憶しているアプリケーションメッセージを取得し、アプリケーションメッセージ記憶部１３０に格納する。さらにメッセージ収集部１１０は、キャプチャ装置４５から、キャプチャ装置４５が記憶しているＤＢメッセージを取得し、ＤＢメッセージ記憶部１４０に格納する。
【００６４】
Ｗｅｂメッセージ記憶部１２０は、端末装置３１〜３３とＷｅｂサーバ４１との間で送受信されたＷｅｂメッセージを記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が、Ｗｅｂメッセージ記憶部１２０として使用される。
【００６５】
アプリケーションメッセージ記憶部１３０は、Ｗｅｂサーバ４１とアプリケーションサーバ４２との間で送受信されたアプリケーションメッセージを記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が、アプリケーションメッセージ記憶部１３０として使用される。
【００６６】
ＤＢメッセージ記憶部１４０は、アプリケーションサーバ４２とＤＢサーバ４３との間で送受信されたＤＢメッセージを記憶する。例えばＲＡＭ１０２またはＨＤＤ１０３の記憶領域の一部が、ＤＢメッセージ記憶部１４０として使用される。
【００６７】
補正値決定部１５０は、Ｗｅｂメッセージ、アプリケーションメッセージ、ＤＢメッセージ間の時刻情報の補正値を計算する。補正値決定部１５０は、算出した補正値を補正値記憶部１６０に格納する。
【００６８】
補正値記憶部１６０は、Ｗｅｂメッセージ、アプリケーションメッセージ、ＤＢメッセージ間の時刻情報の補正値を記憶する。例えば補正値記憶部１６０は、Ｗｅｂメッセージとアプリケーションメッセージとの間の補正値、およびアプリケーションメッセージとＤＢメッセージとの間の補正値とを記憶する。
【００６９】
トランザクション分析部１７０は、補正値記憶部１６０に格納された補正値に従って各メッセージに付与されたタイムスタンプの時刻を補正し、補正後の時刻に従ってメッセージを時系列に並べる。そしてトランザクション分析部１７０は、時系列に並べられたメッセージに基づいて、同一トランザクションで送信されたメッセージを関連付ける。そして関連付けられたメッセージの情報に基づいて、トランザクションの各サーバでの処理時間などを分析する。なお、メッセージに基づくトランザクションの分析技術は、例えば、前述の「特許文献１」に示す特開２００６−０１１６８３号公報に開示されている。
【００７０】
表示部１８０は、メッセージに付与された時刻の補正値などを表示する。また表示部１８０は、トランザクション分析部１７０による分析結果も表示する。
なお、図４に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
【００７１】
以上のような機能を有する分析装置１００により、Ｗｅｂ３階層システムで実行されたトランザクションが再現され、トランザクションの分析が行われる。
なお、メッセージ収集部１１０は、図１に示した第１の実施の形態における取得手段１ｃの一例である。補正値決定部１５０は、図１に示した第１の実施の形態における関連付け手段１ｄと決定手段１ｅとを合わせた機能の一例である。Ｗｅｂメッセージ記憶部１２０は、図１に示した第１の実施の形態における第１の記憶手段１ａの一例である。アプリケーションメッセージ記憶部１３０は、Ｗｅｂメッセージとアプリケーションメッセージとの間の時刻補正の補正値を決定する際には、図１に示した第１の実施の形態における第２の記憶手段１ｂの一例となる。またアプリケーションメッセージ記憶部１３０は、アプリケーションメッセージとＤＢメッセージとの間の時刻補正の補正値を決定する際には、図１に示した第１の実施の形態における第１の記憶手段１ａの一例となる。ＤＢメッセージ記憶部１４０は、図１に示した第１の実施の形態における第２の記憶手段１ｂの一例である。
【００７２】
次に、トランザクション分析処理の手順について説明する。
図５は、トランザクション分析処理の手順を示すフローチャートである。以下、図５に示す処理をステップ番号に沿って説明する。
【００７３】
［ステップＳ１０１］メッセージ収集部１１０は、アプリケーションサーバ４２、および各キャプチャ装置４４，４５からメッセージ情報を収集する。例えばメッセージ収集部１１０は、管理者の操作などによるトランザクション分析の指示が入力されると、メッセージ情報を収集する。メッセージ収集部１１０は、キャプチャ装置４４から収集したメッセージ情報をＷｅｂメッセージ記憶部１２０に格納する。またメッセージ収集部１１０は、アプリケーションサーバ４２から収集したメッセージ情報をアプリケーションメッセージ記憶部１３０に格納する。さらにメッセージ収集部１１０は、キャプチャ装置４５から収集したメッセージ情報をＤＢメッセージ記憶部１４０に格納する。
【００７４】
［ステップＳ１０２］補正値決定部１５０は、レイヤごとのメッセージに付与された時刻の補正値を算出する。例えば補正値決定部１５０は、Ｗｅｂメッセージの時刻を基準として、アプリケーションメッセージの時刻の補正値を算出する。また補正値決定部１５０は、アプリケーションメッセージの時刻を基準として、ＤＢメッセージの補正値を算出する。補正値決定部１５０は、算出した補正値を補正値記憶部１６０に格納する。なお補正値決定処理の詳細は後述する（図９参照）。
【００７５】
［ステップＳ１０３］トランザクション分析部１７０は、補正値記憶部１６０を参照し、各メッセージの補正値を認識する。そしてトランザクション分析部１７０は、Ｗｅｂメッセージ記憶部１２０、アプリケーションメッセージ記憶部１３０、およびＤＢメッセージ記憶部１４０からメッセージを取り出す際に、タイムスタンプの時刻を補正し、トランザクションの分析を行う。
【００７６】
［ステップＳ１０４］表示部１８０は、トランザクション分析の結果を表示する。また表示部１８０は、補正値決定部１５０による時刻の補正値および算出根拠を示す情報を表示することもできる。
【００７７】
次に、メッセージ収集部１１０で収集されたメッセージ情報について、図６〜図８を参照して説明する。
図６は、Ｗｅｂメッセージ記憶部のデータ構造の一例を示す図である。Ｗｅｂメッセージ記憶部１２０内には、Ｗｅｂメッセージ管理テーブル１２１が設けられている。Ｗｅｂメッセージ管理テーブル１２１には、タイムスタンプ、種別、ＵＲＬ（Uniform Resource Locator）、セッションＩＤ、およびトランザクションＩＤの欄が設けられている。Ｗｅｂメッセージ管理テーブル１２１の各行に、Ｗｅｂメッセージに関する情報が登録されている。
【００７８】
タイムスタンプの欄には、Ｗｅｂメッセージをキャプチャ装置４４が取得した時刻（タイムスタンプ）が設定される。このタイムスタンプは、キャプチャ装置４４の内部時計に基づいて設定されている。
【００７９】
種別の欄には、Ｗｅｂメッセージの種別が設定される。種別は、例えばリクエストメッセージとレスポンスメッセージとがある。図６の例では、リクエストメッセージの場合、種別の欄に「ｒｅｑ」と設定される。またレスポンスメッセージの場合、種別の欄に「ｒｅｓ」と設定される。
【００８０】
ＵＲＬの欄には、リクエストメッセージにおけるアクセス先のＵＲＬが設定される。
セッションＩＤの欄には、端末装置３１〜３３とＷｅｂサーバ４１との間の通信のセッションを一意に示すＩＤ（セッションＩＤ）が設定される。セッションＩＤが同じリクエストメッセージとレスポンスメッセージとの対（メッセージ対）により、そのリクエストメッセージに応じて実行された処理の開始時刻と終了時刻とが示される。
【００８１】
トランザクションＩＤの欄には、端末装置からの要求に応じて実行されるトランザクションを一意に識別するＩＤ（トランザクションＩＤ）が設定される。メッセージ対のレスポンスメッセージに示されるトランザクションＩＤにより、そのメッセージ対に対応する処理のトランザクションが一意に示される。
【００８２】
図７は、アプリケーションメッセージ記憶部のデータ構造の一例を示す図である。アプリケーションメッセージ記憶部１３０内には、アプリケーションメッセージ管理テーブル１３１が設けられている。アプリケーションメッセージ管理テーブル１３１には、スタート／エンド、トランザクションＩＤ、タイムスタンプ、クラス名、およびメソッド名の欄が設けられている。アプリケーションメッセージ管理テーブル１３１の各行に、アプリケーションメッセージに関する情報が登録されている。
【００８３】
スタート／エンドの欄には、アプリケーションサーバ４２において、処理開始の契機となるリクエストメッセージを受信したのか、処理の完了により、処理結果を示すレスポンスメッセージを送信したのかを示す情報が設定される。アプリケーションサーバ４２がリクエストメッセージを受信したのであれば、処理の開始（スタート）を示すフラグ「Ｓ」が設定される。アプリケーションサーバ４２がレスポンスメッセージを送信したのであれば、処理の終了（エンド）を示すフラグ「Ｅ」が設定される。
【００８４】
トランザクションＩＤの欄には、アプリケーションサーバで実行された処理に対応するトランザクションのトランザクションＩＤが設定される。
タイムスタンプの欄には、アプリケーションサーバ４２がメッセージを受信または送信した時刻が設定される。
【００８５】
クラス名の欄には、トランザクションの処理の一環として、アプリケーションサーバ４２で実行された処理のクラス名が設定される。
メソッド名の欄には、トランザクションの処理の一環として、アプリケーションサーバ４２で実行された処理のメソッド名が設定される。
【００８６】
なお、アプリケーションサーバ４２における特定の処理の開始のアプリケーションメッセージと終了のメッセージとには、同じトランザクションＩＤ、クラス名、メソッド名が設定される。従ってトランザクションＩＤ、クラス名、メソッド名が同じ、スタート（Ｓ）のアプリケーションメッセージとエンド（Ｅ）のアプリケーションメッセージとのタイムスタンプにより、そのトランザクションＩＤに対応する処理の実行期間が求められる。
【００８７】
また図７の例では、同じトランザクションＩＤの複数のスタートのアプリケーションメッセージが存在する。これは、Ｗｅｂサーバ４１が、一つのトランザクション中で複数回、アプリケーションサーバ４２にリクエストメッセージを送信したためである。
【００８８】
図８は、ＤＢメッセージ記憶部のデータ構造の一例を示す図である。ＤＢメッセージ記憶部１４０内には、ＤＢメッセージ管理テーブル１４１が設けられている。ＤＢメッセージ管理テーブル１４１には、タイムスタンプ、トランザクションＩＤ、種別＋プロトコル、ＳＱＬコマンド／データの欄が設けられている。ＤＢメッセージ管理テーブル１４１の各行に、ＤＢメッセージに関する情報が登録されている。
【００８９】
タイムスタンプの欄には、キャプチャ装置４５によってＤＢメッセージに付与されたタイムスタンプが設定される。
トランザクションＩＤの欄には、ＤＢメッセージに付与されたトランザクションＩＤが設定される。
【００９０】
種別＋プロトコルの欄には、ＤＢメッセージがリクエストメッセージなのかレスポンスメッセージなのかの種別と、ＤＢメッセージのプロトコルが設定される。
ＳＱＬコマンド／データの欄には、ＤＢメッセージに含まれていたＳＱＬコマンドとデータとが設定される。
【００９１】
図６〜図８に示したレイヤごとのメッセージ情報に基づいて、トランザクション分析が可能となる。第２の実施の形態では、トランザクション分析に先だって、メッセージの時刻の補正値が算出される。以下、補正値の算出処理の手順について詳細に説明する。
【００９２】
図９は、補正値決定処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］補正値決定部１５０は、上下に隣接する２つのレイヤのうち、時刻の補正値を算出していないレイヤの組を選択する。例えば補正値決定部１５０は、Ｗｅｂレイヤとアプリケーションレイヤの組、またはアプリケーションレイヤとＤＢレイヤの組を選択する。
【００９３】
［ステップＳ１１２］補正値決定部１５０は、時間ウィンドウの範囲を決定する。時間ウィンドウは、補正値決定のための解析対象とする時間幅である。例えば補正値決定部１５０は、選択したレイヤのメッセージに付与されたタイムスタンプに示される最古の時刻から最新の時刻までの時間帯内の、所定の時間幅（例えば１分）の時間帯を、時間ウィンドウとする。
【００９４】
［ステップＳ１１３］補正値決定部１５０は、選択した２つのレイヤのうちの上位レイヤについて、時間ウィンドウ内の時刻情報を有し、かつトランザクションＩＤを有するメッセージを選択する。そして補正値決定部１５０は、選択したメッセージに関連する処理の、開始を示すメッセージと終了を示すメッセージとを関連付ける。関連付けられた２つのメッセージを、メッセージ対とする。
【００９５】
例えば図６に示したＷｅｂレイヤのメッセージであれば、種別「リクエスト（ｒｅｑ）」のメッセージが処理の開始を示し、種別「レスポンス（ｒｅｓ）」のメッセージが処理の終了を示す。また同一のセッションＩＤが付与されたメッセージが、同じ処理に関するメッセージである。
【００９６】
また図７に示したアプリケーションレイヤのメッセージであれば、スタート（Ｓ）のフラグが設定されたメッセージが、処理の開始を示し、エンド（Ｅ）のフラグが設定されたメッセージが、処理の終了を示す。アプリケーションレイヤのメッセージの場合、トランザクションＩＤ、クラス名、およびメソッド名が同一の、開始と終了とのメッセージ同士が関連付けられる。
【００９７】
関連付けられた開始と終了との各メッセージにタイムスタンプより、それらのメッセージに対応する処理の開始時刻から終了時刻までの時間帯が判別できる。
［ステップＳ１１４］補正値決定部１５０は、選択した２つのレイヤのうちの下位レイヤについて、トランザクションＩＤが付与されたメッセージを、同じトランザクションに関する上位レイヤのメッセージ対に関連付ける。
【００９８】
［ステップＳ１１５］補正値決定部１５０は、対応付けられた上位レイヤのメッセージ対の開始から終了までの時間帯内に下位レイヤのメッセージの時刻が入る範囲での、下位のメッセージの時刻の適合時間幅を求める。この処理は、時間ウィンドウ内のトランザクションＩＤが付与された下位レイヤのメッセージごとに行われる。
【００９９】
なお、下位レイヤのメッセージの時刻が、そのメッセージと同じトランザクションＩＤを有する上位レイヤのメッセージ対の開始から終了の時間帯内に納まることを、トランザクションＩＤが適合すると呼ぶこととする。
【０１００】
［ステップＳ１１６］補正値決定部１５０は、適合率を調査する補正値候補の最小値と最大値とを求める。適合率は、時刻を補正した際に、下位レイヤのトランザクションＩＤが付与されたメッセージのうち、補正後の時刻が、上位レイヤの同一トランザクションＩＤの処理の実行期間内に含まれるメッセージの割合である。
【０１０１】
調査する補正値候補の最小値は、下位レイヤのメッセージごとの適合時間幅のうちの最小値である。調査するずれ量の最小値は、下位レイヤのメッセージごとの適合時間幅のうちの最大値である。例えば、下位レイヤの３つのメッセージそれぞれの適合時間幅が、「＋０．０５〜＋０．１５」、「−０．０１〜＋０．０９」、「＋０．０７〜＋０．１６」であるものとする。この場合、最小値は、２つめの時間幅内の「−０．０１」であり、最大値は３つめの時間幅内の「０．１６」である。得られた最小値から最大値の範囲「−０．０１〜＋０．１６」が、適合率を調査する範囲となる。適合率は、トランザクションＩＤが付与された下位レイヤのメッセージのうち、トランザクションＩＤが適合するメッセージの数である。
【０１０２】
［ステップＳ１１７］補正値決定部１５０は、ステップＳ１１６で得られた最小値から最大値までの時刻の補正幅の範囲で、適合率が最も高くなる補正値候補を、補正値に決定する。例えば補正値決定部１５０は、最小値から最大値までの時刻の補正幅の範囲で、所定値（例えば０．０１秒）刻みの値を、補正値候補とする。そして補正値決定部１５０は、補正値候補ごとに、その補正値候補を適合時間幅内に含む下位レイヤのメッセージの割合を求め、適合率とする。そして補正値決定部１５０は、適合率が最も高い補正値候補を、補正値に決定する。補正値決定部１５０は、決定した補正値を、上位レイヤと下位レイヤとの組に対応付けて、補正値記憶部１６０に格納する。
【０１０３】
［ステップＳ１１８］補正値決定部１５０は、上下に隣接する２つのレイヤの組うち、補正値の決定処理が未処理のレイヤの組があるか否かを判断する。補正値決定部１５０は、補正値を決定していないレイヤの組があれば、処理をステップＳ１１１に進める。また補正値決定部１５０は、上下に隣接する２つのレイヤの組のすべてについて補正値を決定した場合、補正値決定処理を終了し、図５のステップＳ１０３に処理を進める。
【０１０４】
以上のような処理により、上下に隣接するレイヤ間の補正値が決定される。以下、アプリケーションサーバ４２で行われた処理（アプリケーションレイヤ）を上位レイヤとし、ＤＢサーバ４３で行われた処理（ＤＢレイヤ）を下位レイヤとする場合の補正値の決定例について説明する。
【０１０５】
図１０は、分析装置で検出されたメッセージの一例を示す図である。図１０には、Ｗｅｂサーバ４１とアプリケーションサーバ４２との間で通信されたメッセージ５１〜５６と、アプリケーションサーバ４２とＤＢサーバ４３との間で通信されたメッセージ６１〜６６とが時系列で示されている。トランザクションＩＤを含むメッセージの上には、トランザクションＩＤが示されている。以下、Ｗｅｂサーバ４１とアプリケーションサーバ４２との間で通信されたメッセージ５１〜５６を時系列で並べた情報を、アプリケーションレイヤストリームとする。またアプリケーションサーバ４２とＤＢサーバ４３との間で通信されたメッセージ６１〜６６を時系列で並べた情報を、ＤＢレイヤストリームとする。
【０１０６】
アプリケーションレイヤストリームに含まれるメッセージ５１〜５６は、アプリケーションサーバ４２から収集した情報に基づいて再現したものである。アプリケーションレイヤストリームに含まれるメッセージ５１〜５６の左には、そのメッセージに付与されたタイムスタンプの時刻（秒単位）が示されている。アプリケーションレイヤストリームに含まれるメッセージ５１〜５６に示された時刻は、メッセージ検出時のアプリケーションサーバ４２の内部時計の時刻である。
【０１０７】
ＤＢレイヤストリームに含まれるメッセージ６１〜６６は、キャプチャ装置４５から収集した情報に基づいて再現されたものである。ＤＢレイヤストリームに含まれるメッセージ６１〜６６の右には、そのメッセージに付与されたタイムスタンプの時刻（秒単位）が示されている。ＤＢレイヤストリームに含まれるメッセージ６１〜６６に示された時刻は、メッセージ検出時のキャプチャ装置４５の内部時計の時刻である。
【０１０８】
図１０に示す各レイヤのストリームに基づいて、補正値決定部１５０により、上位レイヤであるアプリケーションレイヤにおける同一トランザクションＩＤを有する開始と終了との各メッセージが対応付けられる。例えば、時刻「３．１０」のリクエストのメッセージ５１と、時刻「３．２０」のレスポンスのメッセージ５２とが対応付けられる。
【０１０９】
さらに補正値決定部１５０により、下位レイヤであるＤＢレイヤストリームにおけるトランザクションＩＤが付与されたメッセージが、アプリケーションレイヤストリームにおける同じトランザクションＩＤのメッセージに関連付けられる。例えば、ＤＢレイヤストリームにおける時刻「３．０５」のリクエストのメッセージ６１が、アプリケーションレイヤストリームにおけるメッセージ５１，５２に関連付けられる。
【０１１０】
そして関連付けられた異なるレイヤのメッセージに基づいて、下位レイヤのメッセージの時刻が、同じトランザクションＩＤの上位レイヤのメッセージの開始から終了までの時間に入るようにするための、適合時間幅が求められる。求められた適合時間幅は、例えば、補正値決定部１５０によってＲＡＭ１０２内に一時的に格納される。
【０１１１】
図１１は、適合時間幅情報の一例を示す図である。適合時間幅情報１５１では、アプリケーションレイヤのメッセージ対と同じ行に、そのメッセージ対に関連付けられたＤＢレイヤのメッセージが示されている。アプリケーションレイヤのメッセージ対は、開始のメッセージに付与された時刻、終了のメッセージに付与された時刻、およびそれらのメッセージのトランザクションＩＤで表されている。ＤＢレイヤのメッセージは、そのメッセージに付与された時刻、およびそのメッセージのトランザクションＩＤで示されている。図１１に示すように、アプリケーションレイヤにおける開始・終了のメッセージ対に対して、そのメッセージ対と同じトランザクションＩＤを有するＤＢレイヤのメッセージが関連付けられている。さらに適合時間幅情報１５１には、ＤＢレイヤのメッセージに対応付けて、そのメッセージの適合時間幅が設定されている。
【０１１２】
例えば図１１に示すトランザクションＩＤ「ｔｉｄ１」によって関連付けられた各レイヤのメッセージに着目する。この例では、アプリケーションレイヤのメッセージ対の開始−終了時刻が「３．１０〜３．２０（秒）」である。またそのメッセージ対に関連付けられたＤＢレイヤのメッセージに付与された時刻が「３．０５（秒）」である。この場合、適合時間幅は、「＋０．０５〜＋０．１５（秒）」となる。すなわち、この時間幅内であれば、下位レイヤのメッセージの時刻を変動させても、変動後の時刻が上位レイヤのメッセージ対の開始−終了の時間帯内に収まる。
【０１１３】
次にトランザクションＩＤ「ｔｉｄ２」によって関連付けられた各レイヤのメッセージに着目する。この例では、アプリケーションレイヤのメッセージ対の開始−終了時刻が「３．３０〜３．４０（秒）」である。またそのメッセージ対に関連付けられたＤＢレイヤのメッセージに付与された時刻が「３．３１（秒）」である。この場合、適合時間幅は、「−０．０１〜＋０．０９（秒）」となる。
【０１１４】
次にトランザクションＩＤ「ｔｉｄ３」によって関連付けられた各レイヤのメッセージに着目する。この例では、アプリケーションレイヤのメッセージ対の開始−終了時刻が「３．５０〜３．５９（秒）」である。またそのメッセージ対に関連付けられたＤＢレイヤのメッセージに付与された時刻が「３．４３（秒）」である。この場合、適合時間幅は、「＋０．０７〜＋０．１６（秒）」となる。
【０１１５】
このような場合、適合率調査の最小値は、トランザクションＩＤ「ｔｉｄ２」の適合時間幅の最小値「−０．０１」となる。適合率調査の最大値は、トランザクションＩＤ「ｔｉｄ３」の適合時間幅の最小値「＋０．１６」となる。
【０１１６】
そこで、補正値決定部１５０は、適合率調査の最小値から最大値までの時間幅を、所定間隔で刻んだ補正値候補ごとに、トランザクションＩＤの適合率を計算する。補正値候補ごとの適合率調査結果は、例えばＲＡＭ１０２内に一時的に格納される。
【０１１７】
図１２は、適合率調査結果の一例を示す図である。適合率調査結果１５２には、補正値候補に対応付けて、適合率と、トランザクションＩＤの適合の有無を示すフラグとが設定されている。トランザクションＩＤの適合の有無を示すフラグは、トランザクションＩＤが割り当てられた列に、そのトランザクションＩＤが適合する補正値候補に対応付けて、「１」が設定される。図１２の例では、０．０１秒間隔の補正値候補ごとに適合率が求められている。
【０１１８】
例えば適合率調査の最小値の補正値候補「−０．０１」を補正値とした場合の適合率について説明する。この場合、ＤＢレイヤのトランザクションＩＤが付与されたメッセージ６１，６３，６５（図１０参照）のうち、適合時間幅に「−０．０１」を含むのは、トランザクションＩＤ「ｔｉｄ２」のメッセージ６３のみである。すなわち３つのメッセージ６１，６３，６５のうち１つのメッセージ６３のみトランザクションＩＤが適合する。その結果、補正値候補「−０．０１」の場合の適合率は、１／３（３３．３％）となる。
【０１１９】
また、例えばほぼ中間の補正値候補「０．０８」を補正値とした場合、ＤＢレイヤのトランザクションＩＤが付与されたメッセージ６１，６３，６５のすべてが、適合時間幅に「０．０８」を含む。その結果、補正値候補「０．０８」の場合の適合率は、３／３（１００％）となる。
【０１２０】
同様に補正値候補「０．１０」を補正値とした場合の適合率は「６６．７％」であり、補正値候補「０．１６」を補正値とした場合の適合率は「３３．３％」である。
図１２に示したように、最も高い適合率は１００％である。また適合率１００％となる補正値候補は「０．０７〜０．０９」の範囲である。この範囲内であれば、どの補正値候補をメッセージの時刻の補正に利用する補正値に決定してもよい。例えば適合率１００％となる補正値候補の範囲の中間点の「０．０８」を補正値としてもよい。また、例えば経験則（ヒューリスティック）により範囲の先頭付近が適切である場合が多いと分かっていれば、適合率が最大となる範囲の先頭の補正値候補「０．０７」をメッセージの時刻の補正に利用する補正値に決定してもよい。
【０１２１】
時刻補正に利用する補正値が決定されると、その補正値が補正値記憶部１６０に格納される。
図１３は、補正値記憶部のデータ構造の一例を示す図である。図１３の例では、補正値記憶部１６０に補正値管理テーブル１６１が格納されている。補正値管理テーブル１６１には、上位レイヤ、下位レイヤ、および補正値の欄が設けられている。
【０１２２】
上位レイヤの欄には、補正値決定の対象となる上下に隣接するレイヤのうちの上位のレイヤの名称が設定される。
下位レイヤの欄には、補正値決定の対象となる上下に隣接するレイヤのうちの下位のレイヤの名称が設定される。
【０１２３】
補正値の欄には、上位レイヤと下位レイヤとで示されるレイヤの一方のメッセージの時刻を補正するための補正値が設定される。例えば、下位レイヤのメッセージの時刻を補正する補正値が設定される。
【０１２４】
図１３の例では、Ｗｅｂレイヤとアプリケーションレイヤとの間の補正値は「０．０３」である。またアプリケーションレイヤとＤＢレイヤとの間の補正値は「０．０７」である。
【０１２５】
トランザクション分析部１７０は、収集したメッセージに基づいてトランザクションの分析を行う際に、補正値決定部１５０で決定された補正値でメッセージの時刻を補正する。例えばＷｅｂメッセージ記憶部１２０の時刻情報を基準として補正を行う場合、トランザクション分析部１７０は、Ｗｅｂメッセージ記憶部１２０からメッセージ情報を取得した際には、時刻情報の補正を行わない。他方トランザクション分析部１７０は、アプリケーションメッセージ記憶部１３０からメッセージ情報を取得した際には、取得したメッセージ情報の時刻情報に「０．０３（秒）」を加算する。さらにトランザクション分析部１７０は、ＤＢメッセージ記憶部１４０からメッセージ情報を取得した際には、取得したメッセージ情報の時刻情報に「０．１０（秒）」（０．０３＋０．０７）を加算する。これにより、上位レイヤのメッセージ対の開始から終了までの時間帯内に、そのメッセージ対と同じトランザクションＩＤの下位レイヤのメッセージが含まれるようになる。
【０１２６】
図１４は、時刻補正後のメッセージの一例を示す図である。図１４の例は、ＤＢレイヤの各メッセージ６１〜６６の時刻を、補正値「＋０．０７」で補正したものである。すなわち、各メッセージ６１〜６６に付与されたタイムスタンプに示された時刻に対して「０．０７（秒）」を加算した時刻を、各メッセージの時刻としている。これにより、トランザクションＩＤ「ｔｉｄ１」のメッセージ６１の時刻は、上位レイヤのトランザクションＩＤ「ｔｉｄ１」のメッセージ対（メッセージ５１，５２）の開始から終了の間に含まれる。同様にトランザクションＩＤ「ｔｉｄ２」のメッセージ６３の時刻は、上位レイヤのトランザクションＩＤ「ｔｉｄ２」のメッセージ対（メッセージ５３，５４）の開始から終了の間に含まれる。トランザクションＩＤ「ｔｉｄ３」のメッセージ６５の時刻は、上位レイヤのトランザクションＩＤ「ｔｉｄ３」のメッセージ対（メッセージ５５，５６）の開始から終了の間に含まれる。
【０１２７】
このように時刻を補正した後のメッセージ情報に基づいて、トランザクションの分析を行えば、同一トランザクションを構成するメッセージの集合を的確に判断することができる。
【０１２８】
なお表示部１８０は、例えば補正値決定部１５０から適合率調査結果１５２（図１２参照）を取得し、メッセージの時刻の補正に使用した補正値の決定根拠を表す適合率グラフをモニタ１１などに表示することができる。
【０１２９】
図１５は、適合率グラフの表示例を示す図である。適合率グラフ８１では、横軸に補正値候補、縦軸に適合率を採っている。適合率グラフ８１は、補正値の変化に応じた適合率の変化を折れ線によって表している。
【０１３０】
図１５に示した適合率グラフ８１を参照すれば、適合率が１００％となる補正値候補が、「０．０７〜０．０９」であることを容易に認識できる。これによりトランザクションの分析を行うユーザは、メッセージの時刻の補正値の決定根拠を知ることができる。
【０１３１】
また表示部１８０は、図１４に示したようなメッセージ間の包含関係を示す包含関係図をモニタ１１に表示することもできる。
図１６は、包含関係図の表示例を示す図である。包含関係図８２には、時刻補正前と補正後とのメッセージのストリームが示されている。ユーザは、包含関係図８２を参照することで、時刻補正によって、トランザクションＩＤが付与されている下位レイヤのメッセージの時刻が、同じトランザクションＩＤの上位レイヤのメッセージ対の開始から終了までの時間帯に包含されたことを確認できる。すなわち、補正値の妥当性を確認することができる。
【０１３２】
以上のように、適合率が最大となるように補正値を決定することで、レイヤごとに異なる装置でメッセージにタイムスタンプを付加しても、メッセージに付与された時刻情報のずれを適切に補正できる。また、レイヤごとに同一装置内の異なるプロセスでメッセージにタイムスタンプを付加した場合であっても、プロセス間のタイムスタンプ付加タイミングのずれに基づく時刻情報のずれを適切に補正できる。これにより、例えばトランザクション分析において、トランザクションを正しく再現できるようになる。その結果、トランザクション分析の信頼性が向上する。
【０１３３】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、適合率に加え、カバー率を考慮して補正値を決定するものである。カバー率とは、下位レイヤのメッセージのうち、補正後の時刻が、上位レイヤのいずれかのメッセージ対の開始から終了の間の時刻となるメッセージの割合である。カバー率の計算では、トランザクションＩＤが付与されていないメッセージも判断の対象となる。
【０１３４】
なお、第３の実施の形態は、図２〜図４に示した第２の実施の形態のシステムと同様の構成のシステムで実現できる。そこで図２〜図４に示した各要素の符号を用いて、第３の実施の形態における第２の実施の形態との相違点について説明する。
【０１３５】
第３の実施の形態では、補正値決定処理が第２の実施の形態と異なる。
図１７は、第３の実施の形態の補正値決定処理の手順の一例を示すフローチャートである。なおステップＳ２０１〜Ｓ２０６，Ｓ２１１の処理は、それぞれ図９に示した第２の実施の形態の処理のステップＳ１１１〜Ｓ１１６，Ｓ１１８と同様である。以下第２の実施の形態と異なる処理についてステップ番号に沿って説明する。
【０１３６】
［ステップＳ２０７］補正値決定部１５０は、ステップＳ２０６で求めた最小値から最大値までの範囲で、トランザクションＩＤの適合率が１００％となる補正値の範囲を求める。トランザクションＩＤの適合率が１００％となる補正値とは、ステップＳ２０５で求めた下位レイヤのすべてのメッセージにおける適合時間幅が重なる範囲である。
【０１３７】
［ステップＳ２０８］補正値決定部１５０は、適合率１００％となる時間幅がある場合、処理をステップＳ２０９に進める。また補正値決定部１５０は、適合率１００％となる時間幅がない場合、処理をステップＳ２１０に進める。
【０１３８】
［ステップＳ２０９］補正値決定部１５０は、適合率１００％となる時間幅があれば、例えばその時間幅内に所定間隔（例えば０．０１秒）で設定された補正値ごとにカバー率を計算する。
【０１３９】
カバー率は、以下のようにして算出できる。まず、時間ウィンドウ内で下位レイヤのすべてのリクエストメッセージのうち、上位レイヤのいずれかのトランザクション対の開始から終了の時間幅に収まる数をＡとする。また時間ウィンドウ内の下位レイヤのリクエストメッセージ数をＢとする。このとき、カバー率はＡ／Ｂとなる。Ａ／Ｂの値を１００倍すれば、カバー率をパーセンテージで表すことができる。
【０１４０】
なおカバー率として、下位レイヤのリクエストメッセージに限定せず、下位レイヤのすべてのメッセージのカバー率を計算してもよい。その場合、時間ウィンドウ内で下位レイヤのすべてのメッセージのうち、上位レイヤのいずれかのトランザクション対の開始から終了の時間幅に収まる数をＣとする。また時間ウィンドウ内の下位レイヤのメッセージ数をＤとする。このとき、カバー率はＣ／Ｄとなる。
【０１４１】
補正値決定部１５０は、適合率が１００％の範囲内においてカバー率が最も良い補正値を、メッセージの時刻補正に適用する補正値に決定する。その後、補正値決定部１５０は、処理をステップＳ２１１に進める。
【０１４２】
［ステップＳ２１０］補正値決定部１５０は、適合率１００％となる時間幅がなければ、適合率調査の最小値から最大値の範囲で、最もトランザクションＩＤの適合率が高くなる補正値を選択する。その後、補正値決定部１５０は、処理をステップＳ２１１に進める。
【０１４３】
このような処理により、適合率とカバー率とに基づいて、メッセージの時刻の補正に適用する補正値を決定することができる。
なお補正値決定部１５０は、ステップＳ２０９，Ｓ２１０で求めた適合率とカバー率との調査結果を、例えばＲＡＭ１０２に格納する。
【０１４４】
図１８は、適合率／カバー率調査結果の一例を示す図である。適合率／カバー率調査結果１５３には、補正値候補に対応付けて、適合率、トランザクションＩＤの適合の有無を示すフラグ、メッセージの被包含を示すフラグ、およびカバー率が設定されている。この適合率／カバー率調査結果１５３は、図１２に示した適合率調査結果１５２に対し、補正値候補ごとの、メッセージの被包含を示すフラグとカバー率とを追加したものである。
【０１４５】
メッセージの被包含を示すフラグは、メッセージの識別子（msg#1〜msg#6）に対応付けて設定されている。当該フラグは、対応する識別子で示されるメッセージの時刻が、上位レイヤのいずれかのメッセージ対の開始から終了までの範囲に含まれる場合に「１」が設定される。
【０１４６】
図１８に示すような適合率／カバー率調査結果１５３が得られた場合、補正値候補「０．０７〜０．０９」の範囲で適合率が１００％になっている。そこで、その範囲でのカバー率が調べられる。すると、補正値候補「０．０７〜０．０８」の範囲におけるカバー率が「４／６＝６６．７％」、補正値候補「０．０９」でのカバー率が１００％となっている。そこで補正値決定部１５０は、下位レイヤのメッセージの時刻の補正値として「０．０９」を選択する。
【０１４７】
仮にカバー率が１００％の範囲に幅がある場合（０．０７〜０．０９でカバー率１００％になる場合など）は、この間のどの値を選んでもよい。中間点の「０．０８」を使う事や、ヒューリスティックにより、例えば範囲の先頭付近を選ぶ事が考えられる。
【０１４８】
トランザクション分析部１７０は、収集したメッセージに基づいてトランザクションの分析を行う際に、補正値決定部１５０で決定された補正値でメッセージの時刻を補正する。これにより、上位レイヤのメッセージ対の開始から終了までの時間帯内に、そのメッセージ対と同じトランザクションＩＤのメッセージが含まれるようになる。また、下位レイヤのメッセージの時刻は、上位レイヤのいずれかのメッセージ対の開始から終了までの時間帯に含まれるようになる。
【０１４９】
図１９は、時刻補正後のメッセージの一例を示す図である。図１９の例は、ＤＢレイヤの各メッセージ６１〜６６の時刻を、補正値「＋０．０９」で補正したものである。すなわち、各メッセージ６１〜６６に付与されたタイムスタンプに示された時刻に対して「０．０９（秒）」を加算した時刻を、各メッセージの時刻としている。これにより、トランザクションＩＤが付与された下位レイヤのメッセージ６１，６３，６５の時刻は、上位レイヤの同じトランザクションＩＤのメッセージ対の開始から終了の間に含まれる。
【０１５０】
また下位レイヤのすべてのメッセージ６１〜６６の時刻が、上位レイヤのいずれかのメッセージ対の開始から終了の間に含まれる。
このように時刻を補正した後のメッセージ情報に基づいて、トランザクションの分析を行えば、同一トランザクションを構成するメッセージの集合を的確に判断することができる。
【０１５１】
また表示部１８０は、例えば補正値決定部１５０から適合率／カバー率調査結果１５３（図１８参照）を取得し、メッセージの時刻の補正に使用した補正値の決定根拠を表す適合率グラフをモニタ１１などに表示することができる。
【０１５２】
図２０は、適合率／カバー率グラフの表示例を示す図である。適合率／カバー率グラフ８３では、横軸に補正値候補、縦軸に適合率／カバー率を採っている。適合率／カバー率グラフ８３は、補正値の変化に応じた適合率とカバー率との変化を、折れ線によって表している。
【０１５３】
図２０に示した適合率／カバー率グラフ８３を参照すれば、適合率が１００％となる補正値が、「０．０７〜０．０９」であること、およびカバー率が１００％となる補正値が「０．０９」であることを容易に認識できる。これによりトランザクションの分析を行うユーザは、メッセージの時刻の補正値の決定根拠を知ることができる。
【０１５４】
また表示部１８０は、図１９に示したようなメッセージ間の包含関係を示す包含関係図をモニタ１１に表示することもできる。
図２１は、包含関係図の表示例を示す図である。包含関係図８４には、時刻補正前と補正後とのメッセージのストリームが示されている。ユーザは、包含関係図８４を参照することで、時刻補正によって、トランザクションＩＤが付与されている下位レイヤのメッセージの時刻が、同じトランザクションＩＤの上位レイヤのメッセージ対の開始から終了までの時間帯に包含されたことを確認できる。またユーザは、時刻補正によって、下位レイヤのメッセージの時刻が、上位レイヤのいずれかのメッセージ対の開始から終了までの時間帯に包含されたことを確認できる。
【０１５５】
以上のように、適合率が１００％の範囲内でカバー率が最大となるように補正値を決定することで、レイヤごとに異なる装置でメッセージにタイムスタンプを付加しても、装置間の時刻のずれを適切に補正できる。また、レイヤごとに同一装置内の異なるプロセスでメッセージにタイムスタンプを付加した場合であっても、プロセス間のタイムスタンプ付加タイミングのずれを適切に補正できる。これにより、例えばトランザクション分析において、トランザクションを正しく再現できるようになる。その結果、トランザクション分析の信頼性が向上する。
【０１５６】
〔第４の実施の形態〕
次に第４の実施の形態について説明する。第４の実施の形態は、メッセージを収集する際に、メッセージに付与された時刻情報を補正して、格納するものである。
【０１５７】
図２２は、第４の実施の形態に係る分析装置の機能の一例を示すブロック図である。なお第４の実施の形態の要素のうち、第２の実施の形態と同様の機能を有する要素については図４に示した第２の実施の形態の要素と同じ符号を付し、説明を省略する。
【０１５８】
第４の実施の形態に係る分析装置１００ａは、メッセージ収集部１１０ａとトランザクション分析部１７０ａとの機能が第２の実施の形態と異なる。メッセージ収集部１１０ａは、キャプチャ装置４４，４５、およびアプリケーションサーバ４２からメッセージ情報を収集した際に、補正値記憶部１６０に格納されている補正値を参照する。そして、収集したメッセージ情報の時刻情報を、補正値に従って補正して、Ｗｅｂメッセージ記憶部１２０、アプリケーションメッセージ記憶部１３０、またはＤＢメッセージ記憶部１４０に格納する。
【０１５９】
例えば、図１３に示したような補正値が補正値記憶部１６０に格納されており、Ｗｅｂレイヤのメッセージの時刻情報を基準にして、他のレイヤのメッセージ情報の時刻情報を補正する場合を想定する。この場合、Ｗｅｂレイヤのメッセージ情報の時刻情報は補正されず、Ｗｅｂメッセージ記憶部１２０に格納される。アプリケーションレイヤのメッセージ情報の時刻情報は、「０．０３（秒）」加算する補正が行われた後、アプリケーションメッセージ記憶部１３０に格納される。ＤＢレイヤのメッセージ情報の時刻情報は、「０．１０（秒）」（０．０３＋０．０７）加算する補正が行われた後、ＤＢメッセージ記憶部１４０に格納される。
【０１６０】
第４の実施の形態のトランザクション分析部１７０ａは、各メッセージ情報の時刻情報の補正を行わずに、トランザクション分析を実行する。
このように、メッセージ収集段階で時刻情報を補正することで、トランザクション分析の際の処理負荷が軽減される。また、メッセージ情報の時刻情報の補正機能を有していないトランザクション分析用のソフトウェアを用いて、信頼性の高いトランザクション分析を行うことも可能となる。
【０１６１】
〔その他の実施の形態〕
第２・第３・第４の実施の形態では、下位レイヤのメッセージの時刻を補正しているが、時刻のずれ量は相対的なものである。そのため上位レイヤのメッセージを補正してもよい。また上位レイヤと下位レイヤとのそれぞれのメッセージの時刻を補正してもよい。
【０１６２】
また第２・第３・第４の実施の形態では、適合率を求める際に、下位レイヤのメッセージについては、レスポンスメッセージを考慮していないが、レスポンスメッセージを考慮して適合率を求めることもできる。例えば補正値決定部１５０は、下位レイヤのトランザクションＩＤが付与されたリクエストメッセージと、そのリクエストメッセージに対応するレスポンスメッセージとを関連付け、メッセージ対を生成する。補正値決定部１５０は、このメッセージ対のリクエストメッセージの時刻を、リクエストメッセージに応じた処理の開始時刻とする。また補正値決定部１５０は、レスポンスメッセージの時刻を、リクエストメッセージに応じた処理の終了時刻とする。補正値決定部１５０は、下位レイヤのメッセージ対に対応する処理の開始から終了までの実行期間が、同じトランザクションＩＤの上位レイヤのメッセージ対に対応する処理の開始から終了までの実行期間に包含される補正の範囲を求める。そして補正値決定部１５０は、求めた補正の範囲を、下位レイヤのメッセージ対の適合時間幅とする。補正値決定部１５０は、このようにして算出した適合時間幅に基づいて、適合率を計算する。これにより、レスポンスメッセージを考慮に入れた、より正確な適合率を求めることが可能となる。
【０１６３】
また第２の実施の形態では、トランザクション分析部１７０が、分析を行う際に、メッセージ情報の時刻情報を補正値で補正することとしているが、補正値決定部１５０が、各記憶部内のメッセージ情報の時刻情報を補正値によって予め補正してもよい。これにより、トランザクション分析部１７０におけるトランザクション分析の際の処理負荷が軽減される。
【０１６４】
なお、上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、情報処理装置１または分析装置１００が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。なおプログラムを記録する記録媒体には、一時的な伝搬信号自体は含まれない。
【０１６５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１６７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１６８】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１６９】
１  情報処理装置
１ａ  第１の記憶手段
１ｂ  第２の記憶手段
１ｃ  取得手段
１ｄ  関連付け手段
１ｅ  決定手段
１ｆ  補正値
２  端末装置
３  第１のサーバ
４  第２のサーバ
５  キャプチャ装置
６  ネットワークタップ
【図１】
2013057790.tif 000003
【図２】
2013057790.tif 000004
【図３】
2013057790.tif 000005
【図４】
2013057790.tif 000006
【図５】
2013057790.tif 000007
【図６】
2013057790.tif 000008
【図７】
2013057790.tif 000009
【図８】
2013057790.tif 000010
【図９】
2013057790.tif 000011
【図１０】
2013057790.tif 000012
【図１１】
2013057790.tif 000013
【図１２】
2013057790.tif 000014
【図１３】
2013057790.tif 000015
【図１４】
2013057790.tif 000016
【図１５】
2013057790.tif 000017
【図１６】
2013057790.tif 000018
【図１７】
2013057790.tif 000019
【図１８】
2013057790.tif 000020
【図１９】
2013057790.tif 000021
【図２０】
2013057790.tif 000022
【図２１】
2013057790.tif 000023
【図２２】
2013057790.tif 000024
【手続補正書】
【提出日】平成26年4月1日(2014.4.1)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
しかし、異なるサーバそれぞれのイベント情報を別個の機器で取得する場合、取得する複数の機器間で時刻同期による時刻合わせを行っても、メッセージの送受信などのイベント間の前後関係の正確な把握に十分な同期精度が得られないことがある。しかも、複数の機器の時刻が完全に一致した場合であっても、各機器でイベント情報を採取するプロセスによるタイムスタンプの付与タイミングがプロセス間で異なり、時刻のずれが生じることがある。このようなプロセスのタイムスタンプ付与タイミングのずれから生じる時刻情報のずれは、異なるサーバそれぞれのイベント情報を、同一機器の複数のプロセスを使って採取するような場合にも同様に発生する。このように、各イベント情報の時刻情報にずれがあると、メッセージの送受信などのイベント間の前後関係の判定精度が劣化する。その結果、例えばトランザクション分析による分析結果の信頼性が低下する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
第２の記憶手段１ｂは、第１のサーバ３からのトランザクションの一部の実行要求に応じて第２のサーバ４で実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する。なお図１の例では、第２のサーバ４で発生したイベントのイベント情報には、さらに処理内容を示す情報がイベント内容として含まれる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
なお図１の例では、第２の記憶手段１ｂ内の要求先イベント情報の時刻情報を補正するための補正値１ｆを決定しているが、時刻のずれは相対的なものである。そのため、第１の記憶手段１ａ内の要求元イベント情報の時刻情報を補正するための補正値を決定してもよい。例えば図１に示す補正値１ｆの値「＋０．０８」の符号を逆にし、「−０．０８」とすれば、第１の記憶手段１ａ内の要求元イベント情報の時刻情報を補正するための補正値となる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
なお、第２の実施の形態では、ＷＷＷ（World Wide Web）を用いたサービスを提供するＷｅｂ３階層システムの例を用いる。Ｗｅｂ３階層システムでは、トランザクションの処理が、ＷＷＷによるサービスの入口となるＷｅｂレイヤ、各種データ処理を行うアプリケーションレイヤ、およびデータを管理するＤＢレイヤの３つのレイヤ（階層）に分かれる。Ｗｅｂ３階層システムでは、Ｗｅｂレイヤが最上位である。Ｗｅｂレイヤの下位にアプリケーションレイヤが存在する。さらにアプリケーションレイヤの下位に、ＤＢレイヤが存在する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
なおアプリケーションサーバ４２は、ＤＢサーバ４３に送信するリクエストメッセージの少なくとも一部に、Ｗｅｂサーバ４１からのリクエストメッセージに含まれていたトランザクションＩＤを付与する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
ＤＢサーバ４３は、スイッチ２３を介してアプリケーションサーバ４２に接続されている。ＤＢサーバ４３は、データベースを有し、そのデータベースを管理するコンピュータである。ＤＢサーバ４３は、アプリケーションサーバ４２からの要求に応じて処理を実行し、実行結果を応答する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
調査する補正値候補の最小値は、下位レイヤのメッセージごとの適合時間幅のうちの最小値である。調査する補正値候補の最大値は、下位レイヤのメッセージごとの適合時間幅のうちの最大値である。例えば、下位レイヤの３つのメッセージそれぞれの適合時間幅が、「＋０．０５〜＋０．１５」、「−０．０１〜＋０．０９」、「＋０．０７〜＋０．１６」であるものとする。この場合、最小値は、２つめの時間幅内の「−０．０１」であり、最大値は３つめの時間幅内の「０．１６」である。得られた最小値から最大値の範囲「−０．０１〜＋０．１６」が、適合率を調査する範囲となる。適合率は、トランザクションＩＤが付与された下位レイヤのメッセージのうち、トランザクションＩＤが適合するメッセージの割合である。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
このような場合、適合率調査の最小値は、トランザクションＩＤ「ｔｉｄ２」の適合時間幅の最小値「−０．０１」となる。適合率調査の最大値は、トランザクションＩＤ「ｔｉｄ３」の適合時間幅の最大値「＋０．１６」となる。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
トランザクションの一部として第１のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する第１の記憶手段、および前記第１のサーバからのトランザクションの一部の実行要求に応じて第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する第２の記憶手段を参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付ける関連付け手段と、
関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する決定手段と、
を有する情報処理装置。
【請求項２】
前記決定手段は、
前記第１のサーバで実行された処理の開始を示す要求元イベント情報と該処理の終了を示す要求元イベント情報とのイベント情報対を生成し、該イベント情報対を構成する各要求元イベント情報の時刻情報に基づき、該処理の実行期間を判断し、
該イベント情報対を構成する要求元イベント情報と同一のトランザクションの識別子を含む要求先イベント情報の時刻情報を補正した場合に、補正後の時刻を該実行期間内とすることができる適合時間幅を決定し、
該適合時間幅内の時間を、前記補正値に決定する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記決定手段は、
トランザクションの識別子を含む要求先イベント情報ごとに適合時間幅を計算し、
要求先イベント情報それぞれの適合時間幅の重複範囲内の時間を、前記補正値に決定する、
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記決定手段は、
トランザクションの識別子を含む要求先イベント情報ごとに適合時間幅を計算し、
時刻の補正量を示す複数の補正値候補それぞれについて、該補正値候補に示される補正量を適合時間幅に含む要求先イベント情報の割合を計算し、該割合が最も大きくなる補正値候補を前記補正値に決定する、
ことを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記第２の記憶手段には、さらに、トランザクションの一部として前記第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報を含み、該トランザクションの識別子を含まない、トランザクション不明イベント情報が格納されており、
前記決定手段は、
補正値候補を適合時間幅に含む要求先イベントの割合が最も大きくなる補正値候補が複数ある場合、該割合が最も大きくなる複数の補正値候補それぞれについて、該補正値候補に示される補正量だけ時刻のずれを補正した場合に、補正後の時刻情報が、前記第１のサーバで実行された処理の実行期間のいずれかに含まれる、要求先イベント情報およびトランザクション不明イベント情報の割合を計算し、該割合が最も大きくなる補正値候補を前記補正値に決定する、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記第１のサーバまたは前記第２のサーバで実行された処理に関するイベントは、処理を要求するリクエストメッセージの発生、および該リクエストメッセージに対するレスポンスメッセージの発生である請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
さらに、
前記第１の記憶手段または第２の記憶手段から、前記補正値で時刻情報を補正しながら、要求元イベント情報または要求先イベント情報を取得して分析を行う分析手段を有することを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【請求項８】
さらに、
要求元イベント情報および要求先イベント情報を取得し、要求元イベント情報または要求先イベント情報の時刻情報を前記補正値で補正しながら前記第１の記憶手段または第２の記憶手段に格納する取得手段を有することを特徴とする請求項１乃至６のいずれかに記載の情報処理装置。
【請求項９】
コンピュータが、
トランザクションの一部として第１のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する第１の記憶手段、および前記第１のサーバからのトランザクションの一部の実行要求に応じて第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する第２の記憶手段を参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付け、
関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する、
ことを特徴とする時刻補正値決定方法。
【請求項１０】
トランザクションの一部として第１のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求元イベント情報を記憶する第１の記憶手段、および前記第１のサーバからのトランザクションの一部の実行要求に応じて第２のサーバで実行された処理に関するイベントの発生時刻を示す時刻情報と、該トランザクションの識別子とを含む要求先イベント情報を記憶する第２の記憶手段を参照し、同一のトランザクションの識別子を含む要求元イベント情報と要求先イベント情報とを関連付け、
関連付けられた要求元イベント情報と要求先イベント情報との間で時刻情報を比較し、前記第１の記憶手段に格納された要求元イベント情報の時刻情報と、前記第２の記憶手段に格納された要求先イベント情報の時刻情報との間の時刻のずれを補正する補正値を決定する、
処理をコンピュータに実行させるプログラム。
【国際調査報告】
2013057790.tif 000025
2013057790.tif 000026