(57)【要約】【課題】トランザクションモデルを事前に作成することなく、システム内のサーバの稼働状況を簡易的に分析すること。【解決手段】ネットワークシステム１００内のコンピュータ装置間で受け渡されたメッセージデータ群を取得し、そのメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する。そして、検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定し、特定された特定結果に基づいて、ペア群から選ばれた任意の親階層ペアのリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、親階層ペアのプロトコルより下位階層のプロトコルの子階層ペアを検索し、検索された子階層ペアを親階層ペアと呼出関係を有するペア候補として出力する。【選択図】図１
2010044742.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得する取得手段、
前記取得手段によって取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する検出手段、
前記検出手段によって検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定する特定手段、
前記特定手段によって特定された特定結果に基づいて、前記ペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、前記親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索する検索手段、
前記検索手段によって検索された子階層ペアを前記親階層ペアと呼出関係を有するペア候補として出力する出力手段、
として機能させることを特徴とするシステム分析プログラム。
【請求項２】
前記コンピュータを、
前記特定手段によって特定されたペアごとのリクエスト時刻とレスポンス時刻とを用いて、前記親階層ペアおよび前記子階層ペアそれぞれのリクエストからレスポンスまでにかかったレスポンス時間を算出する第１の算出手段、
前記第１の算出手段によって算出された親階層ペアおよび子階層ペアのレスポンス時間に基づいて、前記親階層ペアのリクエストメッセージの送信元であるサーバの処理時間を算出する第２の算出手段として機能させ、
前記出力手段は、
前記第２の算出手段によって算出されたサーバの処理時間を出力することを特徴とする請求項１に記載のシステム分析プログラム。
【請求項３】
前記コンピュータを、
前記検索手段によって検索された検索結果に基づいて、前記子階層ペアと呼出関係を有する親階層ペアの候補数を計数する計数手段として機能させ、
前記第２の算出手段は、
前記第１の算出手段によって算出された親階層ペアおよび子階層ペアのレスポンス時間と、前記計数手段によって計数された候補数とに基づいて、前記親階層ペアのリクエストメッセージの送信元であるサーバの処理時間を算出することを特徴とする請求項２に記載のシステム分析プログラム。
【請求項４】
前記第２の算出手段は、
最上位階層のプロトコルのリクエストメッセージから特定される宛先ごとに、任意に指定された時間帯での前記宛先が指定された場合における前記親階層ペアのリクエストメッセージの送信先であるサーバの処理時間を集計することにより、前記サーバの平均処理時間を算出し、
前記出力手段は、
前記第２の算出手段によって算出されたサーバの平均処理時間を出力することを特徴とする請求項２または３に記載のシステム分析プログラム。
【請求項５】
前記コンピュータを、
前記メッセージデータ群に基づいて、隣接する上位階層および下位階層の同一メッセージ種別のメッセージ間の送信時刻の時間間隔と前記下位階層のメッセージの出現頻度との関係を表わす頻度分布を作成する作成手段、
前記作成手段によって作成された頻度分布に基づいて、前記上位階層のメッセージと呼出関係を有する前記下位階層のメッセージの送信時刻に関する範囲を決定する決定手段として機能させ、
前記出力手段は、
前記決定手段によって決定された決定結果を出力することを特徴とする請求項４に記載のシステム分析プログラム。
【請求項６】
前記コンピュータを、
前記決定手段によって決定された決定結果に基づいて、前記検索手段によって検索された子階層ペアの中から、前記上位階層の親階層ペアと呼出関係を有する前記下位階層の子階層ペアを絞り込む絞込手段として機能させ、
前記第２の算出手段は、
前記上位階層の親階層ペアのレスポンス時間と、前記絞込手段によって絞り込まれた下位階層の子階層ペアのレスポンス時間とに基づいて、前記親階層ペアのリクエストメッセージの送信元であるサーバの処理時間を算出することを特徴とする請求項５に記載のシステム分析プログラム。
【請求項７】
プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得する取得手段と、
前記取得手段によって取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する検出手段と、
前記検出手段によって検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定する特定手段と、
前記特定手段によって特定された特定結果に基づいて、前記ペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、前記親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索する検索手段と、
前記検索手段によって検索された子階層ペアを前記親階層ペアと呼出関係を有するペア候補として出力する出力手段と、
を備えることを特徴とするシステム分析装置。
【請求項８】
制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得する取得工程と、
前記制御手段により、前記取得工程によって取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する検出工程と、
前記制御手段により、前記検出工程によって検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定する特定工程と、
前記制御手段により、前記特定工程によって特定された特定結果に基づいて、前記ペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、前記親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索する検索工程と、
前記制御手段により、前記検索工程によって検索された子階層ペアを前記親階層ペアと呼出関係を有するペア候補として出力する出力工程と、
を実行することを特徴とするシステム分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、通信プロトコルの階層構造が定義されたネットワークシステム内のサーバの稼働状況を分析する技術に関する。
【背景技術】
【０００２】
近年では、大規模化、複雑化するネットワークシステムの運用状況や性能問題などを的確に把握することが難しくなっている。なぜなら、複数のアプリケーションが連携して動作する複雑なネットワークシステムでは、性能劣化や障害の原因を突き止めるために、各サーバの挙動だけでなくシステム全体の性能を観測、分析する必要があるからである。
【０００３】
そこで、従来において、複数のサーバからなるネットワークシステム内のサーバ間のメッセージの受け渡しを定義するトランザクションモデルを用いて、ネットワークシステム全体の稼働状態を分析することで、対象システムの運用状況の詳細な把握や性能問題の迅速な解決を図る技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した従来技術では、システム分析のためにトランザクションモデルを事前に作成する必要がある。ところが、トランザクションモデルの作成には、メッセージの詳細情報とともに、作業者の知識やノウハウに依存する確認作業が必要となる。このため、分析作業にかかる作業時間および作業負荷が増加し、システム分析に費やす導入コストの増大化を招くという問題があった。
【０００６】
本開示技術は、上述した従来技術による問題点を解消するため、トランザクションモデルを事前に作成することなく、システム内のサーバの稼働状況を簡易的に分析することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本開示技術は、プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得し、取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出し、検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定し、特定された特定結果に基づいて、前記ペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、前記親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索し、検索された子階層ペアを前記親階層ペアと呼出関係を有するペア候補として出力する。
【発明の効果】
【０００８】
本開示技術によれば、トランザクションモデルを事前に作成することなく、システム内のサーバの稼働状況を簡易的に分析することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】ネットワークシステムのシステム構成図である。
【図２】キャプチャ機能の概要を示す説明図である。
【図３】パケットＤＢの記憶内容を示す説明図である。
【図４】システム分析装置のハードウェア構成を示すブロック図である。
【図５】実施の形態１にかかるシステム分析装置の機能的構成を示すブロック図である。
【図６】階層構造定義情報の具体例を示す説明図である。
【図７】メッセージＤＢの記憶内容を示す説明図である。
【図８】ペア情報テーブルの具体例を示す説明図である。
【図９】検索処理の概要を示す説明図である。
【図１０】親子関係テーブルの記憶内容を示す説明図である。
【図１１】トランザクションモデルの具体例を示す説明図である。
【図１２】レスポンス時間テーブルの具体例を示す説明図である。
【図１３−１】サーバの処理時間を算出する算出処理の概要を示す説明図（その１）である。
【図１３−２】サーバの処理時間を算出する算出処理の概要を示す説明図（その２）である。
【図１４】出力結果の具体例を示す説明図（その１）である。
【図１５】出力結果の具体例を示す説明図（その２）である。
【図１６】出力結果の具体例を示す説明図（その３）である。
【図１７】実施の形態１にかかるシステム分析装置のシステム分析処理手順の一例を示すフローチャートである。
【図１８】検索処理の具体的処理手順を示すフローチャートである。
【図１９】算出処理の具体的処理手順を示すフローチャートである。
【図２０】実施の形態２にかかるシステム分析手法の説明図である。
【図２１】実施の形態２にかかるシステム分析装置の機能的構成を示すブロック図である。
【図２２】リクエスト頻度分布の作成例を示す説明図である。
【図２３】絞込範囲テーブルの記憶内容の一例を示す説明図である。
【図２４】子階層ペアＩＤの削除例を示す説明図である。
【図２５】絞込範囲決定処理手順の一例を示すフローチャートである。
【図２６】ステップＳ２５０２の作成処理の具体的処理手順の一例を示すフローチャート（その１）である。
【図２７】ステップＳ２５０２の作成処理の具体的処理手順の一例を示すフローチャート（その２）である。
【図２８】ステップＳ２５０３の決定処理の具体的処理手順の一例を示すフローチャートである。
【図２９】実施の形態２にかかるシステム分析装置のシステム分析処理手順の一例を示すフローチャートである。
【図３０】ステップＳ２９０６の絞込処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本開示技術にかかるシステム分析プログラム、システム分析装置、およびシステム分析方法の好適な実施の形態を詳細に説明する。
【００１１】
（実施の形態１）
このシステム分析プログラム、システム分析装置、およびシステム分析方法は、プロトコルの階層構造が定義されたシステム内で受け渡されるメッセージ間の親子関係を解析し、各メッセージのレスポンス時間から階層単位のレスポンス時間を簡易的に見積もることで、各サーバの稼働状況を分析する。
【００１２】
（ネットワークシステムのシステム構成）
まず、本実施の形態１にかかるネットワークシステムのシステム構成について説明する。図１は、ネットワークシステムのシステム構成図である。図１において、ネットワークシステム１００は、システム分析装置１０１と、Ｗｅｂサーバ１０２と、ＡＰ（アプリケーション）サーバ１０３と、ＤＢ（データベース）サーバ１０４と、クライアント端末１０５と、がインターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク１１０を介して相互に通信可能に接続されている。
【００１３】
ネットワークシステム１００には、プロトコルの階層構造が定義されている。具体的には、最上位階層の第１階層には、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）が定義されている。このＨＴＴＰは、クライアント端末１０５とＷｅｂサーバ１０２との通信に用いられるプロトコルである。
【００１４】
第２階層には、ＩＩＯＰ（Ｉｎｔｅｒｎｅｔ  Ｉｎｔｅｒ−ＯＲＢ  Ｐｒｏｔｏｃｏｌ）が定義されている。このＩＩＯＰは、Ｗｅｂサーバ１０２とＡＰサーバ１０３との通信に用いられるプロトコルである。最下位階層の第３階層には、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）が定義されている。このＳＱＬは、ＡＰサーバ１０３とＤＢサーバ１０４との通信に用いられるプロトコルである。
【００１５】
システム分析装置１０１は、ネットワークシステム１００内で受け渡されるメッセージを解析して、ネットワークシステム１００内のサーバ（Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４）の稼働状況を分析するコンピュータ装置である。
【００１６】
Ｗｅｂサーバ１０２は、クライアント端末１０５に搭載されたブラウザからの要求に応じて、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイルを送信するコンピュータ装置である。ＡＰサーバ１０３は、Ｗｅｂサーバ１０２とＤＢサーバ１０４との橋渡しをおこない、データベースの検索／更新処理を制御するコンピュータ装置である。
【００１７】
ＤＢサーバ１０４は、データベースの検索／更新処理を実行するコンピュータ装置である。なお、図１では簡単化のため、Ｗｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４およびクライアント端末１０５をそれぞれ１台のみ表記している。
【００１８】
（キャプチャ機能の概要）
つぎに、システム分析装置１０１が有するキャプチャ機能について説明する。図２は、キャプチャ機能の概要を示す説明図である。図２において、Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４間で、ネットワーク１１０内（図１参照）に設けられたスイッチＳ１〜Ｓ３を介して各種プロトコル（ＨＴＴＰ、ＩＩＯＰ、ＳＱＬ）のパケットＰ１〜Ｐ３が送受信されている。
【００１９】
ここで、システム分析装置１０１、Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４は、スイッチＳ１〜Ｓ３の個別のポートに接続されている。これらスイッチＳ１〜Ｓ３は、自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。
【００２０】
ここでは、Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４が接続されたポートのミラーリング先として、システム分析装置１０１が接続されたポートが指定されている。このため、各サーバ宛のパケットは宛先となるサーバに入力されるとともに、システム分析装置１０１にも入力される。
【００２１】
たとえば、クライアント端末１０５（図１参照）からの要求に応じて、Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４が連動してサービスを提供する場合を想定する。この場合、まず、クライアント端末１０５からＷｅｂサーバ１０２に対してパケットＰ１が送信される。
【００２２】
このとき、パケットＰ１と同じ内容のパケットＰ１がシステム分析装置１０１に入力される。つぎに、Ｗｅｂサーバ１０２からＡＰサーバ１０３へパケットＰ２が送信されると、パケットＰ２と同じ内容のパケットＰ２がシステム分析装置１０１に入力される。さらに、ＡＰサーバ１０３からＤＢサーバ１０４へパケットＰ３が送信されると、パケットＰ３と同じ内容のパケットＰ３がシステム分析装置１０１に入力される。
【００２３】
システム分析装置１０１に入力されたパケットＰ１〜Ｐ３は、スイッチＳ１〜Ｓ３に直接接続されたキャプチャ部２１０によって取得され、パケットＤＢ２３０に格納される。このとき、キャプチャ部２１０は、タイムスタンプ（受信時刻）とともにスイッチＳ１〜Ｓ３から送られたパケットＰ１〜Ｐ３をパケットＤＢ２３０に格納する。
【００２４】
なお、キャプチャ部２１０は、キャプチャしたパケットＰ１〜Ｐ３をパケットＤＢ２３０に格納することなく、メッセージ解析部２２０（詳細は後述）に送ってもよい。また、キャプチャ部２１０は、任意のパケットのみをキャプチャすることもできる。さらに、スイッチＳ１〜Ｓ３において必要なデータのみを選択してミラーリングすることもできる。
【００２５】
（パケットＤＢの記憶内容）
ここで、パケットＤＢ２３０の記憶内容について説明する。図３は、パケットＤＢの記憶内容を示す説明図である。図３において、パケットＤＢ２３０には、キャプチャ部２１０（図２参照）によってキャプチャされたパケットＰ１〜Ｐｍに関するパケットデータ３００−１〜３００−ｍが記憶されている。
【００２６】
具体的には、パケットデータ３００−１〜３００−ｍは、タイムスタンプ、パケット長およびパケットから構成されている。ここで、パケットデータ３００−１を例に挙げると、タイムスタンプｔ１、パケット長Ｌ１およびパケットＰ１から構成されている。
【００２７】
（システム分析装置のハードウェア構成）
つぎに、実施の形態１にかかるシステム分析装置１０１のハードウェア構成について説明する。図４は、システム分析装置のハードウェア構成を示すブロック図である。図４において、システム分析装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３と、磁気ディスクドライブ４０４と、磁気ディスク４０５と、光ディスクドライブ４０６と、光ディスク４０７と、ディスプレイ４０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）４０９と、キーボード４１０と、マウス４１１と、スキャナ４１２と、プリンタ４１３と、を備えている。また、各構成部はバス４００によってそれぞれ接続されている。
【００２８】
ここで、ＣＰＵ４０１は、システム分析装置１０１の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。磁気ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがって磁気ディスク４０５に対するデータのリード／ライトを制御する。磁気ディスク４０５は、磁気ディスクドライブ４０４の制御で書き込まれたデータを記憶する。
【００２９】
光ディスクドライブ４０６は、ＣＰＵ４０１の制御にしたがって光ディスク４０７に対するデータのリード／ライトを制御する。光ディスク４０７は、光ディスクドライブ４０６の制御で書き込まれたデータを記憶したり、光ディスク４０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３０】
ディスプレイ４０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ４０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３１】
インターフェース（以下、「Ｉ／Ｆ」と略する。）４０９は、通信回線を通じてＬＡＮ、ＷＡＮ、インターネットなどのネットワーク１１０に接続され、このネットワーク１１０を介して他の装置に接続される。そして、Ｉ／Ｆ４０９は、ネットワーク１１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ４０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３２】
キーボード４１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３３】
スキャナ４１２は、画像を光学的に読み取り、システム分析装置１０１内に画像データを取り込む。なお、スキャナ４１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ４１３は、画像データや文書データを印刷する。プリンタ４１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３４】
（システム分析装置の機能的構成）
つぎに、実施の形態１にかかるシステム分析装置１０１の機能的構成について説明する。実施の形態１では、ある時間単位（たとえば、１時間単位、１日単位）で出現するリクエストのサーバの処理時間を宛先（たとえば、ＵＲＬ：Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）ごとに集計することにより、宛先別の簡易的なサーバの平均処理時間を統計的に算出することを目的とする。
【００３５】
ここでは、まず、任意の宛先（後述するＵＲＬ１，ＵＲＬ２）が１回指定された場合におけるＷｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４それぞれの処理時間を算出する手法について説明する。そして最終的に、ある時間単位でのサーバの処理時間を宛先ごとに集計し、その平均値を求めることで、宛先別の簡易的なサーバの平均処理時間を統計的に算出する。
【００３６】
図５は、実施の形態１にかかるシステム分析装置の機能的構成を示すブロック図である。システム分析装置１０１は、キャプチャ部２１０と、メッセージ解析部２２０と、取得部５０１と、検出部５０２と、特定部５０３と、検索部５０４と、第１の算出部５０５と、第２の算出部５０６と、計数部５０７と、出力部５０８と、を含む構成である。
【００３７】
この制御部となる機能（キャプチャ部２１０、メッセージ解析部２２０、取得部５０１〜出力部５０８）は、具体的には、たとえば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０９により、その機能を実現する。また、図５中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをＣＰＵ４０１に実行させるものとする。
【００３８】
取得部５０１は、プロトコルの階層構造が定義されたシステム内（たとえば、図１に示したネットワークシステム１００）のコンピュータ装置間（たとえば、図１に示したＷｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４およびクライアント端末１０５間）で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得する機能を有する。
【００３９】
プロトコルの階層構造は、システムに予め定義されていてもよく、また、図４に示したキーボード４１０やマウス４１１をユーザが操作することで階層構造定義情報（図６参照）を入力することとしてもよい。階層構造定義情報が入力された場合、取得部５０１により階層構造定義情報が取得され、プロトコルの階層構造が定義される。
【００４０】
メッセージデータ群は、メッセージ解析部２２０によって解析された解析結果を記憶するメッセージＤＢ７００（図７参照）からの抽出によって取得することとしてもよい。また、図４に示したキーボード４１０やマウス４１１をユーザが操作することでシステム分析装置１０１に直接入力することとしてもよく、外部のコンピュータ装置から取得することとしてもよい。
【００４１】
ここで、キャプチャ部２１０は、システム内に設けられたスイッチ（たとえば、図２に示したスイッチＳ１〜Ｓ３）を介して、システム内のコンピュータ装置間で受け渡されるパケットをキャプチャする機能を有する。また、メッセージ解析部２２０は、キャプチャ部２１０によってキャプチャされたパケットをメッセージ解析する機能を有する。
【００４２】
具体的には、たとえば、メッセージ解析部２２０は、パケットＤＢ２３０に格納されているパケットデータ３００−１〜３００−ｍを用いて、システム内のコンピュータ装置間で受け渡されたメッセージデータを再構成する。なお、パケットを解析してメッセージを再構成するメッセージ解析処理は公知技術のため、ここでは説明を省略する（たとえば、［背景技術］で示した特許文献１参照。）。
【００４３】
ここで、プロトコルの階層構造を定義する階層構造定義情報について説明する。図６は、階層構造定義情報の具体例を示す説明図である。図６において、階層構造定義情報６００には、ネットワークシステム１００のプロトコルの階層構造が定義されている。具体的には、最上位階層の第１階層にはＨＴＴＰが定義されており、第２階層にはＩＩＯＰが定義されており、最下位階層の第３階層にはＳＱＬが定義されている。
【００４４】
つぎに、メッセージ解析部２２０による解析結果を記憶するメッセージＤＢの記憶内容について説明する。図７は、メッセージＤＢの記憶内容を示す説明図である。図７において、メッセージＤＢ７００には、ネットワークシステム１００内のコンピュータ装置間で受け渡されたメッセージデータ７００−１〜７００−１６が記憶されている。なお、図面では、コンピュータ間で受け渡されたメッセージデータの一部を抜粋して表示している。
【００４５】
具体的には、メッセージデータ７００−１〜７００−１６は、メッセージごとに、メッセージＩＤ、送信時刻（時：分：秒）、プロトコル、メッセージ種別およびＵＲＬに関する情報を有している。ここで、メッセージＩＤは、メッセージを識別する識別子である。送信時刻は、メッセージの送信時刻である。メッセージ種別は、リクエストメッセージまたはレスポンスメッセージを特定する情報である。ＵＲＬは、クライアント端末１０５に搭載されたブラウザによって指定されたＵＲＬである。このＵＲＬは、最上位階層のプロトコルを用いて受け渡されたリクエストメッセージ（たとえば、メッセージデータ７００−１）にのみ含まれている。
【００４６】
たとえば、メッセージデータ７００−８によれば、送信時刻「００：００：００．０１２」にＳＱＬ（第３階層）を用いて、メッセージＩＤ「Ｓ２」のリクエストメッセージが、ＡＰサーバ１０３からＤＢサーバ１０４に送信されたことを認識することができる。なお、送信元および送信先のコンピュータ装置は、プロトコルとメッセージ種別から特定することができる。たとえば、プロトコル：ＨＴＴＰ、メッセージ種別：リクエストの場合、送信元のコンピュータ装置はクライアント端末１０５であり、送信先のコンピュータ装置はＷｅｂサーバ１０２である。
【００４７】
図５の説明に戻り、検出部５０２は、取得部５０１によって取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する機能を有する。具体的には、たとえば、まず、メッセージデータ群の中から任意のメッセージデータを検出する。
【００４８】
つぎに、検出されたメッセージデータのメッセージＩＤを手掛かりに、検出されていない残余のメッセージデータ群の中から同一メッセージＩＤのメッセージデータを検索する。ここで、同一メッセージＩＤのメッセージデータが検索された場合、そのメッセージデータを検出する。
【００４９】
これにより、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージのペアを検出することができる。そして、上記一連の手順を、メッセージデータ群の中から検出されていない残余のメッセージデータがなくなるまで繰り返し実行することで、メッセージデータ群の中からすべてのペアを検出することができる。
【００５０】
たとえば、メッセージデータ７００−１〜７００−１６の中からメッセージデータ７００−１が検出されたとする。この場合、残余のメッセージデータ７００−２〜７００−１６の中からメッセージＩＤ「Ｈ１」のメッセージデータを検索する。ここでは、メッセージデータ７００−１４が検索され、この結果、メッセージＩＤ「Ｈ１」のリクエストメッセージとレスポンスメッセージとのペアが検出される。
【００５１】
特定部５０３は、検出部５０２によって検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定する機能を有する。具体的には、ペアごとに、該ペアを構成するリクエストメッセージの送信時刻をリクエスト時刻とし、該ペアを構成するレスポンスメッセージの送信時刻をレスポンス時刻として特定する。
【００５２】
ここで、メッセージＩＤ「Ｈ１」のペアを例に挙げると、メッセージデータ７００−１の送信時刻「００：００：００．０００」をリクエスト時刻とし、メッセージデータ７００−１４の送信時刻「００：００：００．０２４」をレスポンス時刻として特定する。
【００５３】
ここで、検出部５０２および特定部５０３による処理結果を記憶するペア情報テーブルについて説明する。図８は、ペア情報テーブルの具体例を示す説明図である。図８において、ペア情報テーブル８００には、図７に示したメッセージデータ７００−１〜７００−１６の中から検出されたペアＰ１〜Ｐ８ごとのペア情報８００−１〜８００−８が示されている。
【００５４】
具体的には、ペア情報８００−１〜８００−８は、ペアＰ１〜Ｐ８ごとに、ペアＩＤ、メッセージＩＤ、階層、リクエスト時刻およびレスポンス時刻に関する情報を有している。ここで、ペアＩＤは、各ペアを識別する識別子である。メッセージＩＤは、各ペア固有のメッセージＩＤである。階層は、各ペア固有のプロトコルを示す階層である。リクエスト時刻およびレスポンス時刻は、各ペアのリクエスト時刻およびレスポンス時刻である。
【００５５】
ここで、ペア情報８００−４を例に挙げると、ペアＰ４のメッセージＩＤ「Ｈ２」、階層「第１階層（ＨＴＴＰ）」、リクエスト時刻「００：００：００．００７」およびレスポンス時刻「００：００：００．０２７」が示されている。
【００５６】
図５の説明に戻り、検索部５０４は、特定部５０３によって特定された特定結果に基づいて、検出部５０２によって検出されたペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索する機能を有する。
【００５７】
具体的には、たとえば、図８に示したペア情報テーブル８００を参照して、ペアＰ１〜Ｐ８から選ばれた任意の親階層ペアのリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、親階層ペアのプロトコルより直下階層のプロトコルの子階層ペアを検索することとしてもよい。
【００５８】
このとき、親階層ペアとして、ペアＰ１〜Ｐ８のうち最下位階層のプロトコルのペアＰ３，Ｐ６，Ｐ８を除く残余のプロトコルのペアＰ１，Ｐ２，Ｐ４，Ｐ５，Ｐ７から任意のペアを選ぶこととしてもよい。これにより、最下位階層のプロトコルより下位階層のペア（存在しないペア）を検索する無駄な検索処理を削減することができる。
【００５９】
ここで、検索部５０４による検索処理の概要について説明する。ここでは、ペア情報テーブル８００を参照して、ペアＰ１〜Ｐ８から選ばれた任意の親階層ペアのリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、親階層ペアのプロトコルの直下階層のプロトコルの子階層ペアを検索する検索処理について説明する。
【００６０】
図９は、検索処理の概要を示す説明図である。図９において、ネットワークシステム１００内のコンピュータ装置間でのメッセージの流れを時系列的に示すシーケンスグラフ９００が表示されている。図９中、右向矢印はリクエストメッセージ、左向矢印はレスポンスメッセージを表わしている。また、各矢印には、各メッセージのメッセージＩＤが付与されている。
【００６１】
具体的には、シーケンスグラフ９００には、メッセージデータ７００−１〜７００−１６から特定される全メッセージの流れが時系列に示されている。また、最上位階層（第１階層）のリクエストメッセージには、クライアント端末１０５に搭載されたブラウザによって指定されたＵＲＬ１、ＵＲＬ２が示されている。
【００６２】
まず、検索部５０４は、ペア情報テーブル８００を参照して、ペアＰ１〜Ｐ８の中から最上位階層の任意の親階層ペアＰ１，Ｐ４を選択する。このあと、選択された親階層ペアＰ１，Ｐ４のリクエスト時刻からレスポンス時刻までの間に、リクエスト時刻およびレスポンス時刻が含まれ、親階層ペアＰ１，Ｐ４のプロトコル（ＨＴＴＰ）の直下階層のプロトコル（ＩＩＯＰ）の子階層ペアを検索する。
【００６３】
具体的には、第１階層の親階層ペアＰ１のリクエスト時刻「００：００：００．０００」からレスポンス時刻「００：００：００．０２４」までの間に、リクエスト時刻およびレスポンス時刻が含まれる第２階層の子階層ペアＰ２，Ｐ５を検索する。この結果、第１階層の親階層ペアＰ１と第２階層の子階層ペアＰ２，Ｐ５との親子関係が解析される（グラフ９１０参照）。
【００６４】
ここで、親子関係とは、たとえば、上位階層のプロトコルのコンピュータ装置（たとえば、Ｗｅｂサーバ１０２）への処理要求にともなって、下位階層のプロトコルのコンピュータ装置（たとえば、ＡＰサーバ１０３）への処理要求が発生する呼出関係を表わしている。
【００６５】
グラフ９１０では、ペアＰ１のリクエスト時刻からレスポンス時刻までの間に、ペアＰ２，Ｐ５のリクエスト時刻からレスポンス時刻が含まれており、親階層ペアＰ１と子階層ペアＰ２，Ｐ５との親子関係が形成されている。なお、子階層ペアＰ２，Ｐ５は、親階層ペアＰ１と呼出関係を有するペア候補となる。なぜなら、子階層ペアＰ２，Ｐ５は、親階層ペアＰ１とは異なる他の親階層ペアと親子関係となる可能性があるからである。
【００６６】
同様に、第１階層の親階層ペアＰ４のリクエスト時刻「００：００：００．００７」からレスポンス時刻「００：００：００．０２７」までの間に、リクエスト時刻およびレスポンス時刻が含まれる第２の子階層ペアＰ５，Ｐ７を検索する。この結果、第１階層の親階層ペアＰ４と第２階層の子階層ペアＰ５，Ｐ７との親子関係が解析される（グラフ９２０参照）。
【００６７】
グラフ９２０では、ペアＰ４のリクエスト時刻からレスポンス時刻までの間に、ペアＰ５，Ｐ７のリクエスト時刻からレスポンス時刻が含まれており、親階層ペアＰ４と子階層ペアＰ５，Ｐ７との親子関係が形成されている。この例では、子階層ペアＰ５は、親階層ペアＰ１およびＰ４と親子関係にあるため、これら親階層ペアＰ１およびＰ４双方と呼出関係にあるペア候補となる。
【００６８】
なお、図示は省略するが、第１階層の親階層ペアＰ１，Ｐ４についての検索が終了すると、１階層下位の第２階層に移行して、ペアＰ１〜Ｐ８の中から第２階層の任意の親階層ペアＰ２，Ｐ５，Ｐ７を選択し、それぞれの親子関係を解析することとなる。そして、これら一連の処理を、最下位階層（第３階層）を除く階層（第１および第２階層）のペアから選択されていない未選択のペアがなくなるまで繰り返す。
【００６９】
これにより、隣接する階層間の親子関係を解析することができる。グラフ９３０には、第１階層の親階層ペアと第２階層の子階層ペアとの親子関係が示されている。子階層ペアＰ２，Ｐ５，Ｐ７に付与されている（数字）は、呼出関係を有する親階層ペアの候補数である。
【００７０】
各子階層ペアと呼出関係を有する親階層ペアの候補数は、計数部５０７により、検索部５０４によって検索された検索結果に基づいて計数される。ここでは、子階層ペアＰ５は、親階層ペアＰ１，Ｐ４双方と親子関係を有するため、呼出関係を有する親階層ペアの候補数が（２）となっている。
【００７１】
ここで、検索部５０４による検索結果を記憶する親子関係テーブルについて説明する。図１０は、親子関係テーブルの記憶内容を示す説明図である。図１０において、親子関係テーブル１０００には、ペアＰ１〜Ｐ８ごとの親子情報１０００−１〜１０００−８が記憶されている。
【００７２】
具体的には、親子情報１０００−１〜１０００−８は、ペアＰ１〜Ｐ８ごとに、ペアＩＤ、メッセージＩＤ、プロトコル、親候補数、子階層ペアＩＤ列およびＵＲＬに関する情報を有している。ここで、親候補数は、呼出関係を有する親階層ペアの候補数である。また、子階層ペアＩＤ列は、呼出関係を有する子階層ペアのペアＩＤである。
【００７３】
たとえば、図９に示したペアＰ１の親子情報１０００−１を例に挙げると、メッセージＩＤ「Ｈ１」、親候補数「０（なぜなら、最上位階層のため）」、子階層ペアＩＤ列「Ｐ２，Ｐ５」、およびクライアント端末１０５に搭載されたブラウザによって指定されたＵＲＬ「ＵＲＬ１」に関する情報を有している。
【００７４】
この親子関係テーブル１０００を参照することで、最上位階層のペアから最下位階層のペアまでの子孫階層ペアを探索することができる。具体的には、最上位階層の親階層ペアの子階層ペアＩＤ列を手掛かりに子階層ペアを探索することができる。さらに、子階層ペアの子階層ペアＩＤ列を手掛かりに孫階層ペアを探索することができる。
【００７５】
出力部５０８は、検索部５０４によって検索された子階層ペアを親階層ペアと呼出関係を有するペア候補として出力する。より具体的には、検索部５０３によって検索された最上位階層のペアから最下位階層のペアまでの呼出関係を探索することにより、最上位階層から最下位階層までのメッセージの呼出関係を表現するトランザクションモデルを出力することとしてもよい。図１１は、トランザクションモデルの具体例を示す説明図である。
【００７６】
図１１において、ネットワークシステム１００内のコンピュータ装置間でのメッセージの流れを時系列的に示すトランザクションモデル１１００が示されている。これによれば、クライアント端末１０５のブラウザにより「ＵＲＬ１」が指定されることで発生するメッセージ候補を特定することができる。
【００７７】
図５の説明に戻り、第１の算出部５０５は、特定部５０３によって特定されたペアごとのリクエスト時刻とレスポンス時刻とを用いて、親階層ペアおよび子階層ペアそれぞれのリクエストからレスポンスまでにかかったレスポンス時間を算出する機能を有する。
【００７８】
具体的には、たとえば、ペア情報テーブル８００を参照して、ペアＰ１〜Ｐ８ごとに、リクエスト時刻とレスポンス時刻との差分を求めることで、各ペアＰ１〜Ｐ８のレスポンス時間を算出することができる。ペアＰ１を例に挙げると、ペア情報８００−１から特定されるレスポンス時刻からリクエスト時刻を差し引くことで、ペアＰ１のレスポンス時間２４［ｍｓ］を求めることができる。
【００７９】
ここで、第１の算出部５０５による算出結果を記憶するレスポンス時間テーブルについて説明する。図１２は、レスポンス時間テーブルの具体例を示す説明図である。図１２において、レスポンス時間テーブル１２００には、ペアＰ１〜Ｐ８ごとに、リクエストからレスポンスまでにかかったレスポンス時間［ｍｓ］が示されている。
【００８０】
第２の算出部５０６は、第１の算出部５０５によって算出された親階層ペアおよび子階層ペアのレスポンス時間に基づいて、親階層ペアのリクエストメッセージの送信先であるサーバの処理時間を算出する機能を有する。具体的には、たとえば、親子関係テーブル１０００およびレスポンス時間テーブル１２００を参照して、親階層ペアのレスポンス時間から子階層ペアのレスポンス時間を差し引くことで、親階層ペアのリクエストメッセージの送信先であるサーバの処理時間を算出することができる。
【００８１】
このとき、子階層ペアと呼出関係を有する親候補数が複数の場合には、親階層ペアのレスポンス時間から差し引く子階層ペアのレスポンス時間を、親候補数で割った値に置き換
える。これにより、子階層ペアのレスポンス時間を、親子関係を有する複数の親階層ペアに均等に割り当てることができる。
【００８２】
要するに、親子関係を有する親階層ペアが複数存在する場合には、実際に呼出関係を有する親階層ペアがわからないため、子階層ペアのレスポンス時間を親候補数で割った値を各親階層ペアに割り当てることで、上記サーバの処理時間を暫定的に求める。
【００８３】
ここで、サーバの処理時間を算出する算出処理の概要について説明する。図１３−１および図１３−２は、サーバの処理時間を算出する算出処理の概要を示す説明図である。ここでは、検索部５０４によって検索された検索結果に基づいて、第１階層の親階層ペアＰ１，Ｐ４それぞれの子孫階層ペア（子階層：第２階層、孫階層：第３階層）が探索されていることとする。
【００８４】
図１３−１において、まず、最下位階層の第３階層のレスポンス時間を第２階層のレスポンス時間に割り当てる（１）。具体的には、第３階層のペアＰ３のレスポンス時間を第２階層のペアＰ２のレスポンス時間に割り当てる。また、第３階層のペアＰ６のレスポンス時間を第２階層のペアＰ５のレスポンス時間に割り当てる。また、第３階層のペアＰ８は、第２階層のペアＰ５およびＰ７と親子関係にあるため、ペアＰ８のレスポンス時間を２（候補数）で割った値を、ペアＰ５およびＰ７のレスポンス時間にそれぞれ割り当てる。
【００８５】
つぎに、第２階層のレスポンス時間を第１階層のレスポンス時間に割り当てる（２）。具体的には、第２階層のペアＰ２のレスポンス時間を第１階層のペアＰ１のレスポンス時間に割り当てる。また、第２階層のペアＰ５は、第１階層のペアＰ１およびＰ４と親子関係にあるため、ペアＰ５のレスポンス時間を２（候補数）で割った値を、ペアＰ１およびＰ４のレスポンス時間にそれぞれ割り当てる。また、第２階層のペアＰ７のレスポンス時間を第１階層のペアＰ４のレスポンス時間に割り当てる。
【００８６】
図１３−２において、隣接する上位階層のレスポンス時間から下位階層のレスポンス時間を差し引くことで、上位階層のリクエストメッセージの送信先のサーバの処理時間を求める（３）。具体的には、第１階層のレスポンス時間から第２階層のレスポンス時間を差し引くことで、Ｗｅｂサーバ１０２での処理時間を求める。また、第２階層のレスポンス時間から第３階層のレスポンス時間を差し引くことで、ＡＰサーバ１０３での処理時間を求める。なお、第３階層は最下位階層のため、第３階層のレスポンス時間がＤＢサーバ１０４での処理時間となる。
【００８７】
これにより、ネットワークシステム１００内の各Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４での処理時間を求めることができる（４）。ここで、「ＵＲＬ１」を例に挙げると、Ｗｅｂサーバ１０２での処理時間は１３［ｍｓ］、ＡＰサーバ１０３での処理時間は７［ｍｓ］、ＤＢサーバ１０４での処理時間は４［ｍｓ］となる。
【００８８】
出力部５０８は、第２の算出部５０６によって算出されたサーバの処理時間を出力する機能を有する。具体的には、たとえば、第２の算出部５０６によって算出された各サーバ（たとえば、Ｗｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４）の処理時間をリスト化して表わすテーブル表を出力することとしてもよい。
【００８９】
図１４は、出力結果の具体例を示す説明図（その１）である。図１４において、処理時間テーブル１４００には、ＵＲＬ１，２ごとに、ネットワークシステム１００内のＷｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４での処理時間がリスト化されて示されている。これによれば、各ＵＲＬ１，２が指定された場合におけるＷｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４それぞれの処理時間を把握することができる。
【００９０】
また、出力部５０８は、全体の処理時間に対する各サーバでの処理時間の内訳をグラフ化して表わす棒グラフをディスプレイ４０８に表示することとしてもよい。図１５は、出力結果の具体例を示す説明図（その２）である。
【００９１】
図１５において、ＵＲＬ１，２ごとに、全体の処理時間に対するＷｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４での処理時間の内訳を表わす棒グラフ１５１０，１５２０が表示されている。これによれば、各ＵＲＬ１，２が指定された場合におけるＷｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４それぞれの処理時間を直感的に把握することができる。
【００９２】
なお、図１４および図１５に示した出力結果は、ＵＲＬ１，２が１回指定されたときの処理時間のため、実際の処理時間と比べてばらつきが大きくなってしまうことが想定される。そこで、システム分析処理を適用する時間帯を任意に指定し、その時間帯（時間単位）での処理時間の平均値を求めることで誤差を低減させることができる。
【００９３】
この場合、取得部５０１は、指定された時間帯（たとえば、「００：００：００．０００」〜「２３：５９：５９．９９９」）に含まれるメッセージデータ群を取得する。この結果、指定された時間帯に関するシステム分析処理が実行される。なお、上記時間帯は、図４に示したキーボード４１０やマウス４１１をユーザが操作することで任意に指定することができる。
【００９４】
また、第２の算出部５０６は、任意に指定された時間帯での親階層ペアのリクエストメッセージの送信先であるサーバの平均処理時間を算出することとしてもよい。具体的には、たとえば、ＵＲＬごとに、指定された時間帯（たとえば、「００：００：００．０００〜２３：５９：５９．９９９」）における各サーバの処理時間を集計し、その平均値を算出することで、各サーバの平均処理時間を求めることができる。なお、ＵＲＬは、最上位階層のプロトコルのリクエストメッセージから特定可能である。
【００９５】
図１６は、出力結果の具体例を示す説明図（その３）である。図１６において、処理時間テーブル１６００には、ＵＲＬ１〜ｋごとに、ネットワークシステム１００内のＷｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４での平均処理時間がリスト化されて示されている。
【００９６】
これによれば、任意に指定された時間帯におけるＷｅｂサーバ１０２、ＡＰサーバ１０３およびＤＢサーバ１０４の統計的な処理時間を把握することができる。この結果、たとえば、負荷が高くなっているサーバ（ここでは、Ｗｅｂサーバ１０２）を的確に特定することが可能となり、性能劣化の原因を迅速に突き止めることができる。また、図示は省略するが、図１６に示した出力結果をグラフ化して表わす棒グラフをディスプレイ４０８に表示することとしてもよい（図１５参照）。
【００９７】
なお、実施の形態１では、キャプチャ部２１０およびメッセージ解析部２２０を、システム分析装置１０１が備えることとしたが、外部のコンピュータ装置が備えることとしてもよい。この場合、取得部５０１により、外部のコンピュータ装置からメッセージデータ群を取得することとしてもよい。
【００９８】
（システム分析装置のシステム分析処理手順）
つぎに、実施の形態１にかかるシステム分析装置１０１のシステム分析処理手順について説明する。図１７は、実施の形態１にかかるシステム分析装置のシステム分析処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、取得部５０１により、システム内のコンピュータ装置間で受け渡されたメッセージデータ群を取得したか否かを判断する（ステップＳ１７０１）。
【００９９】
ここで、メッセージデータ群を取得するのを待って（ステップＳ１７０１：Ｎｏ）、取得した場合（ステップＳ１７０１：Ｙｅｓ）、検出部５０２により、取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する（ステップＳ１７０２）。
【０１００】
このあと、特定部５０３により、各メッセージデータの送信時刻から、検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定し（ステップＳ１７０３）、第１の算出部５０５により、特定されたペアごとのリクエスト時刻とレスポンス時刻とを用いて、親階層ペアおよび子階層ペアそれぞれのリクエストからレスポンスまでにかかったレスポンス時間を算出する（ステップＳ１７０４）。
【０１０１】
そして、検索部５０４により、特定された特定結果に基づいて、ペア群から選ばれた親階層ペアのリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、親階層ペアのプロトコルより下位階層のプロトコルの子階層ペアを検索する検索処理を実行する（ステップＳ１７０５）。
【０１０２】
このあと、第２の算出部５０６により、算出された親階層ペアおよび子階層ペアのレスポンス時間に基づいて、親階層ペアのリクエストメッセージの送信元であるサーバの処理時間を算出する算出処理を実行し（ステップＳ１７０６）、出力部５０８により、算出された算出結果を出力して（ステップＳ１７０７）、本フローチャートによる一連の処理を終了する。
【０１０３】
つぎに、図１７に示したステップＳ１７０５における検索処理の具体的な処理手順について説明する。以下において、システムに定義されているプロトコルの階層構造のうち、最上位階層を第１階層、最下位階層を第Ｎ階層とし、さらに、任意の階層を第ｎ階層（ｎ＝１，２，…，Ｎ）とする。
【０１０４】
図１８は、検索処理の具体的処理手順を示すフローチャートである。図１８のフローチャートにおいて、まず、ｎ＝１とし（ステップＳ１８０１）、第ｎ（ｎ＝１）階層のペアのペアＩＤ、メッセージＩＤ、プロトコルおよびＵＲＬを親子関係テーブルに登録する（ステップＳ１８０２）。
【０１０５】
このあと、『ｎ＝Ｎ』となったか否かを判断し（ステップＳ１８０３）、『ｎ≠Ｎ』の場合（ステップＳ１８０３：Ｎｏ）、図１７のステップＳ１７０２において検出されたペア群の中から、第ｎ階層の任意の親階層ペアを選択し（ステップＳ１８０４）、検索部５０４により、選択された親階層ペアのリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれる第ｎ＋１階層の子階層ペアを検索する（ステップＳ１８０５）。
【０１０６】
ここで、第ｎ＋１階層の子階層ペアが検索されたか否かを判断し（ステップＳ１８０６）、第ｎ＋１階層の子階層ペアが検索されなかった場合（ステップＳ１８０６：Ｎｏ）、ステップＳ１８０８に移行する。
【０１０７】
一方、検索された場合（ステップＳ１８０６：Ｙｅｓ）、検索された子階層ペアのペアＩＤを、親子関係テーブル内の親階層ペアの該当エントリに登録するとともに、子階層ペアのペアＩＤ、メッセージＩＤおよびプロトコルを親子関係テーブルに登録する（ステップＳ１８０７）。このとき、子階層ペアのペアＩＤ、メッセージＩＤおよびプロトコルが既に登録済みの場合には、計数部５０７により、その子階層ペアの親候補数に「１」をインクリメントする。
【０１０８】
このあと、ペア群の中から選択されていない未選択の第ｎ階層の親階層ペアがあるか否かを判断し（ステップＳ１８０８）、未選択の親階層ペアがある場合（ステップＳ１８０８：Ｙｅｓ）、ステップＳ１８０４に戻って一連の処理を繰り返す。
【０１０９】
一方、未選択の親階層ペアがない場合（ステップＳ１８０８：Ｎｏ）、『ｎ＝ｎ＋１』として（ステップＳ１８０９）、ステップＳ１８０３に戻り、ここで、『ｎ＝Ｎ』となった場合には（ステップＳ１８０３：Ｙｅｓ）、図１７に示したステップＳ１７０６に移行する。
【０１１０】
つぎに、図１７に示したステップＳ１７０６における算出処理の具体的な処理手順について説明する。図１９は、算出処理の具体的処理手順を示すフローチャートである。図１９のフローチャートにおいて、まず、図１７のステップＳ１７０２において検出されたペア群の中から、第１階層の任意の親階層ペアを選択する（ステップＳ１９０１）。
【０１１１】
このあと、親子関係テーブルの子階層ペアＩＤ列を参照して、選択された親階層ペアの子孫階層ペアを探索する（ステップＳ１９０２）。つぎに、レスポンス時間テーブルを参照して、隣接する下位階層のレスポンス時間を上位階層のレスポンス時間に割り当てることで、各階層のレスポンス時間を算出する（ステップＳ１９０３）。
【０１１２】
そして、隣接する上位階層のレスポンス時間から下位階層のレスポンス時間を差し引くことで、各サーバの処理時間を算出し（ステップＳ１９０４）、つぎに、ペア群の中から選択されていない未選択の第１階層の親階層ペアがあるか否かを判断する（ステップＳ１９０５）。
【０１１３】
ここで、未選択の第１階層の親階層ペアがある場合（ステップＳ１９０５：Ｙｅｓ）、ステップＳ１９０１に戻って一連の処理を繰り返す。一方、未選択の第１階層の親階層ペアがない場合（ステップＳ１９０５：Ｎｏ）、図１７に示したステップＳ１７０７に移行する。
【０１１４】
以上説明したように、実施の形態１によれば、トランザクションモデルを事前に作成することなく、システム内の各サーバの稼働状況を簡易的に分析することができる。具体的には、システム内で受け渡されたメッセージデータ群からメッセージ間の親子関係を解析し、その解析結果と各メッセージのレスポンス時間から各サーバの処理時間を簡易的に見積もることができる。
【０１１５】
これにより、各種ＵＲＬが指定された場合におけるサーバの処理時間を把握することができる。また、ある時間単位（たとえば、１時間単位、１日単位）で出現するリクエストのサーバの処理時間をＵＲＬごとに集計することにより、ＵＲＬ別の簡易的なサーバの平均処理時間を統計的に算出し、システム分析の分析精度を向上させることができる。この結果、負荷が高くなっているサーバや稼働していないサーバを特定することが可能となり、性能劣化や故障の原因を迅速に突き止めることができる。
【０１１６】
さらに、従来のシステム分析に比べて、システム内で受け渡されるメッセージの詳細情報や、トランザクションモデルの作成にかかる作業者の知識やノウハウが不要となるため、システム分析に費やす導入コストの低減化を図ることができる。
【０１１７】
（実施の形態２）
つぎに、実施の形態２にかかるシステム分析手法について説明する。実施の形態１では、子階層ペアと親子関係を有する親階層ペアが複数存在する場合、子階層ペアのレスポンス時間を親候補数で割った値を各親階層ペアに割り当てる。これは、親階層ペアと実際に呼出関係を有する子階層ペアが特定できないため、子階層ペアのレスポンス時間を各親階層ペアに均等に配分してサーバの処理時間を求める手法である。
【０１１８】
ところが、実施の形態１の手法では、業務間（異なるＵＲＬ間）でサーバの処理時間が平均化されるため、システム分析の分析精度が低下する場合がある。特に、業務間でサーバの処理時間の内訳が大きく異なる場合や、サーバにかかる負荷が大きくなることでメッセージの重なりが増える場合に分析精度の低下が顕著になる可能性が高い。なお、クライアント端末１０５によって指定されるＵＲＬと業務とは対応している。
【０１１９】
そこで、実施の形態２では、子階層ペアと親子関係を有する親階層ペアが複数存在する場合、親階層ペアと実際に呼出関係を有する可能性が高い子階層ペアを絞り込むことにより、システム分析の分析精度を向上させる。なお、実施の形態１で説明した箇所と同一の箇所については図示および説明を省略する。
【０１２０】
図２０は、実施の形態２にかかるシステム分析手法の説明図である。図２０において、シーケンスグラフ２０００は、第１階層および第２階層のメッセージの流れを時系列的に示すグラフである。図２０中、右向矢印はリクエストメッセージ、左向矢印はレスポンスメッセージを表わしている。なお、各矢印には、各メッセージのメッセージＩＤが付与されている。
【０１２１】
また、グラフ２０１０は、第１階層および第２階層のリクエストメッセージ間の送信時刻の時間間隔と第２階層のリクエストメッセージの出現頻度との関係を表わす頻度分布である。ここで、出現頻度とは、メッセージの送信回数である。グラフ２０１０において、出現頻度「Ｆ１」は、第２階層のリクエストメッセージの単位時間当たりの出現頻度の平均値（以下、「平均度数」という）である。
【０１２２】
グラフ２０１０では、時間間隔「ｔ１〜ｔ２」での第２階層のリクエストメッセージの出現頻度が、平均度数「Ｆ１」よりも高くなっている。なお、第２階層のリクエストメッセージには、ＵＲＬ１のリクエストメッセージと呼出関係を有していないリクエストメッセージが含まれている。
【０１２３】
また、グラフ２０２０は、第１階層および第２階層のレスポンスメッセージ間の送信時刻の時間間隔と第２階層のレスポンスメッセージの出現頻度との関係を表わす頻度分布である。グラフ２０２０において、出現頻度「Ｆ２」は、第２階層のレスポンスメッセージの単位時間当たりの出現頻度の平均度数である。
【０１２４】
グラフ２０２０では、時間間隔「ｔ３〜ｔ４」での第２階層のレスポンスメッセージの出現頻度が、平均度数「Ｆ２」よりも高くなっている。なお、第２階層のレスポンスメッセージには、ＵＲＬ１のレスポンスメッセージと呼出関係を有していないレスポンスメッセージが含まれている。
【０１２５】
実施の形態２では、第２階層のメッセージの出現頻度が平均度数と比べて高くなっている範囲内のメッセージは、第１階層のメッセージと呼出関係を有する可能性が高いメッセージとして扱う。一方、第２階層のメッセージの出現頻度が平均度数と比べて低くなっている範囲内のメッセージは、第１階層のメッセージと呼出関係を有する可能性が低いメッセージとして扱う。
【０１２６】
具体的には、第２階層のリクエストメッセージＩａ，Ｉｂのうち、時間間隔「ｔ１〜ｔ２」の範囲内のリクエストメッセージＩａは、第１階層のリクエストメッセージＨａと呼出関係を有するメッセージとして扱う。一方、第２階層のリクエストメッセージＩａ，Ｉｂのうち、時間間隔「ｔ１〜ｔ２」の範囲外のリクエストメッセージＩｂは、第１階層のリクエストメッセージＨａと呼出関係を有さないメッセージとして扱う。
【０１２７】
同様に、第２階層のレスポンスメッセージＩａ，Ｉｂのうち、時間間隔「ｔ３〜ｔ４」の範囲内のレスポンスメッセージＩａは、第１階層のレスポンスメッセージＨａと呼出関係を有するメッセージとして扱う。一方、第２階層のレスポンスメッセージＩａ，Ｉｂのうち、時間間隔「ｔ３〜ｔ４」の範囲外のレスポンスメッセージＩｂは、第１階層のレスポンスメッセージＨａと呼出関係を有さないメッセージとして扱う。
【０１２８】
そして、リクエストメッセージおよびレスポンスメッセージの両方が範囲内となった子階層ペアを、親階層ペアと呼出関係を有する子階層ペアとして絞り込む。図２０の例では、メッセージＩＤ「Ｉａ，Ｉｂ」の子階層ペアのうちメッセージＩＤ「Ｉａ」の子階層ペアが、メッセージＩＤ「Ｈａ」の親階層ペアと呼出関係を有する子階層ペアとして絞り込まれる。一方で、メッセージＩＤ「Ｉｂ」の子階層ペアは、メッセージＩＤ「Ｈａ」の親階層ペアと呼出関係を有さない子階層ペアとして排除される。
【０１２９】
このように、実施の形態２にかかるシステム分析手法によれば、親階層ペアと実際に呼出関係を有する可能性が高い子階層ペアを特定することができる。これにより、子階層ペアのレスポンス時間を親階層ペアに適切に配分することが可能となり、業務間でのサーバの処理時間の平均化を抑制して、システム分析の分析精度を向上させることができる。
【０１３０】
（システム分析装置の機能的構成）
つぎに、実施の形態２にかかるシステム分析装置の機能的構成について説明する。図２１は、実施の形態２にかかるシステム分析装置の機能的構成を示すブロック図である。システム分析装置２１００は、キャプチャ部２１０と、メッセージ解析部２２０と、取得部５０１と、検出部５０２と、特定部５０３と、検索部５０４と、第１の算出部５０５と、第２の算出部５０６と、計数部５０７と、出力部５０８と、作成部２１０１と、決定部２１０２と、絞込部２１０３と、判定部２１０４と、を含む構成である。
【０１３１】
この制御部となる機能（キャプチャ部２１０、メッセージ解析部２２０、取得部５０１〜出力部５０８、作成部２１０１〜判定部２１０４）は、具体的には、たとえば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０９により、その機能を実現する。また、図２１中矢印で示した接続先の機能は、接続元の機能からの出力データを記憶領域から読み込んで、当該機能に関するプログラムをＣＰＵ４０１に実行させるものとする。
【０１３２】
作成部２１０１は、メッセージデータ群に基づいて、隣接する上位階層および下位階層の同一メッセージ種別のメッセージ間の送信時刻の時間間隔と下位階層のメッセージの出現頻度との関係を表わす頻度分布を作成する機能を有する。メッセージデータ群は、たとえば、図７に示したメッセージデータ７００−１〜７００−１６である。ただし、メッセージデータ群は、各サーバの負荷の変動が少ないときのものである。
【０１３３】
具体的には、たとえば、作成部２１０１が、ＵＲＬごとに、第１階層および第２階層のリクエストメッセージ間の送信時刻の時間間隔と第２階層のリクエストメッセージの出現頻度との関係を表わすリクエスト頻度分布を作成する。また、たとえば、作成部２１０１が、ＵＲＬごとに、第１階層および第２階層のレスポンスメッセージ間の送信時刻の時間間隔と第２階層のレスポンスメッセージの出現頻度との関係を表わすレスポンス頻度分布を作成する。
【０１３４】
なお、作成された作成結果は、図４に示したＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶される。ここで、リクエスト頻度分布を例に挙げて、作成部２１０１による作成処理の具体的な処理内容について説明する。
【０１３５】
図２２は、リクエスト頻度分布の作成例を示す説明図である。図２２において、シーケンスグラフ２２１０は、第１階層および第２階層のリクエストメッセージの流れを時系列的に示すグラフである。ただし、第１階層のリクエストメッセージとして、ＵＲＬ１が指定された場合のリクエストメッセージのみ表示している。なお、シーケンスグラフ２２１０の左側に示す送信時刻は、各リクエストメッセージの送信時刻である。
【０１３６】
まず、作成部２１０１が、ＵＲＬ１を手掛かりに、メッセージデータ群の中からメッセージＨ１を選択する。このあと、作成部２１０１が、メッセージＨ１の送信時刻以降に送信された第２階層のメッセージＩ１〜７ごとに、選択されたメッセージＨ１との間の送信時刻の時間間隔を算出する。たとえば、メッセージＨ１とメッセージＩ１との間の送信時刻の時間間隔は２［ｍｓ］である。
【０１３７】
つぎに、作成部２１０１が、ＵＲＬ１を手掛かりに、メッセージデータ群の中から未選択のメッセージＨ２を選択する。このあと、作成部２１０１が、メッセージＨ２の送信時刻以降に送信された第２階層のメッセージＩ２〜７ごとに、選択されたメッセージＨ２との間の送信時刻の時間間隔を算出する。たとえば、メッセージＨ２とメッセージＩ２との間の送信時刻の時間間隔は１［ｍｓ］である。
【０１３８】
同様に第１階層のメッセージＨ３，Ｈ４についても、作成部２１０１が、メッセージ間の送信時刻の算出処理をおこなう。このあと、作成部２１０１が、算出されたメッセージ間の送信時刻の時間間隔に基づいて、所定時間間隔（たとえば、１［ｍｓ］間隔）ごとに第２階層のリクエストメッセージの出現頻度を算出する。
【０１３９】
そして、作成部２１０１が、算出された所定時間間隔ごとの出現頻度を時系列的に並べて、リクエスト頻度分布２２２０を作成する。リクエスト頻度分布２２２０は、第１および第２階層のリクエストメッセージ間の送信時刻の時間間隔と第２階層のリクエストメッセージの出現頻度との関係を表わすヒストグラムである。なお、図面では、リクエスト頻度分布２２２０の一部を抜粋して表示している。
【０１４０】
ここで、メッセージ間の時間間隔をｔ［ｍｓ］とする。リクエスト頻度分布２２２０によれば「０．５≦ｔ＜１．５」での出現頻度は１［回］、「１．５≦ｔ＜２．５」での出現頻度は３［回］である。また、「２．５≦ｔ＜３．５」での出現頻度は３［回］、「３．５≦ｔ＜４．５」での出現頻度は１［回］である。
【０１４１】
図２１の説明に戻り、決定部２１０２は、作成された頻度分布に基づいて、上位階層のメッセージと呼出関係を有する下位階層のメッセージの送信時刻に関する範囲を決定する機能を有する。
【０１４２】
具体的には、たとえば、決定部２１０２が、リクエスト頻度分布に基づいて、ＵＲＬごとに、第１階層のリクエストメッセージと呼出関係を有する第２階層のリクエストメッセージを絞り込むための範囲（以下、「リクエスト絞込範囲」という）を決定する。また、たとえば、決定部２１０２が、レスポンス頻度分布に基づいて、ＵＲＬごとに、第１階層のレスポンスメッセージと呼出関係を有する第２階層のレスポンスメッセージを絞り込むための範囲（以下、「レスポンス絞込範囲」という）を決定する。
【０１４３】
ここで、リクエスト絞込範囲を例に挙げて、決定部２１０２による決定処理の具体例について説明する。まず、決定部２１０２が、メッセージデータ群を用いて、第２階層のリクエストメッセージの単位時間当たりの出現頻度の平均値（以下、「平均度数」という）を算出する。なお、単位時間は、たとえば、上述した所定時間（たとえば、１［ｍｓ］）である。
【０１４４】
より具体的には、たとえば、下記式（１）を用いて平均度数を算出することができる。ただし、Ｆは、リクエストメッセージ（または、レスポンスメッセージ）の出現頻度の平均度数である。Ｔは、メッセージデータの集計期間である。ｎは、集計期間Ｔ中にシステム内のコンピュータ装置間で受け渡された第２階層のリクエストメッセージ（または、レスポンスメッセージ）のメッセージ数である。Ｃは、集計期間Ｔ中にＵＲＬｉ（ｉ＝１，２，…，ｋ）が指定された回数である。
【０１４５】
Ｆ＝ｎ／Ｔ×Ｃ      ・・・（１）
【０１４６】
図２２に示した例では、リクエストメッセージのメッセージ数ｎは「ｎ＝７」、メッセージデータの集計期間Ｔは「Ｔ＝１４」、集計期間Ｔ中にＵＲＬ１が指定された回数Ｃは「Ｃ＝４」である。したがって、リクエストメッセージの出現頻度の平均度数Ｆは『Ｆ＝７／１４×４＝２［回／ｍｓ］』となる。
【０１４７】
このあと、決定部２１０２が、リクエスト頻度分布を参照して、第２階層のリクエストメッセージの出現頻度が平均度数以上となる範囲を特定する。そして、決定部２１０２が、特定された範囲をリクエスト絞込範囲に決定する。図２２に示した例では、決定部２１０２が、リクエスト頻度分布２２２０を参照して、平均度数Ｆ（Ｆ＝２［回／ｍｓ］）以上となる範囲「１．５≦ｔ＜３．５」をリクエスト絞込範囲に決定する。
【０１４８】
なお、絞込範囲は１つであっても複数であってもよい。たとえば、リクエスト頻度分布２２２０において、平均度数Ｆ以上となる範囲が複数存在する場合には、複数のリクエスト絞込範囲を決定してもよい。なお、決定された決定結果は、たとえば、図２３に示す絞込範囲テーブルに記憶される。
【０１４９】
また、上記平均度数は、頻度分布のばらつきを考慮して平均度数±αとしてもよい。なお、αは任意に設定可能である。たとえば、ユーザが、全メッセージ間の呼出関係が明らかな状態での実測値をもとにαを調整して決定することにしてもよい。
【０１５０】
図２３は、絞込範囲テーブルの記憶内容の一例を示す説明図である。図２３において、絞込範囲テーブル２３００は、ＵＲＬ、リクエストメッセージの絞込範囲およびレスポンスメッセージの絞込範囲のフィールドを有する。各フィールドに情報を設定することで、ＵＲＬごとの絞込範囲がレコードとして記憶されている。
【０１５１】
ここで、ＵＲＬとは、クライアント端末１０５に搭載されたブラウザによって指定された宛先である。リクエスト絞込範囲とは、第１階層のリクエストメッセージと呼出関係を有する第２階層のリクエストメッセージを絞り込むための範囲である。レスポンス絞込範囲とは、第１階層のレスポンスメッセージと呼出関係を有する第２階層のレスポンスメッセージを絞り込むための範囲である。
【０１５２】
ＵＲＬ１を例に挙げると、リクエスト絞込範囲は「ｔ1≦ｔ＜ｔ2」、レスポンス絞込範囲は「ｔ3≦ｔ＜ｔ4」である。この絞込範囲テーブル２３００によれば、第１階層のメッセージと呼出関係を有する可能性が高い第２階層のメッセージ候補を絞り込むことができる。なお、出力部５０８は、たとえば、図２３に示した絞込テーブル２３００を出力することにしてもよい。
【０１５３】
図２１の説明に戻り、絞込部２１０３は、決定された決定結果に基づいて、検索部５０４によって検索された子階層ペアの中から、上位階層の親階層ペアと呼出関係を有する下位階層の子階層ペアを絞り込む機能を有する。具体的には、たとえば、絞込部２１０３が、絞込範囲テーブル２３００を参照して、ＵＲＬごとに、第１階層の親階層ペアと呼出関係を有する第２階層の子階層ペアを絞り込む。
【０１５４】
ここで、ＵＲＬ１を例に挙げて、絞込部２１０３による絞込処理の具体例について説明する。ただし、ここではＵＲＬ１のリクエスト絞込範囲を「１．５≦ｔ＜３．５」、レスポンス絞込範囲を「２．５≦ｔ＜４．５」とする。まず、絞込部２１０３が、親子関係テーブル１０００のＵＲＬを参照して、ＵＲＬ１の第１階層の親階層ペアＰ１を選択する。
【０１５５】
つぎに、絞込部２１０３が、親子関係テーブル１０００の子階層ペアＩＤ列を参照して、任意の子階層ペアを選択する。ここでは、子階層ペアＰ５が選択されたとする。この場合、絞込部２１０３が、ペア情報テーブル８００を参照して、親階層ペアＰ１のリクエスト時刻と子階層ペアＰ５のリクエスト時刻との時間間隔を算出する。ここでは、９［ｍｓ］となる。
【０１５６】
このあと、絞込部２１０３が、ＵＲＬ１を手掛かりに絞込範囲テーブル２３００を参照して、算出された時間間隔（９［ｍｓ］）がリクエスト絞込範囲内か否かを判断する。ここでは、リクエスト絞込範囲は「１．５≦ｔ＜３．５」のため範囲外となる。この場合、絞込部２１０３が、親子関係テーブル１０００の親階層ペアＰ１の子階層ペアＩＤ列から子階層ペアＰ５を削除する。
【０１５７】
図２４は、子階層ペアＩＤの削除例を示す説明図である。図２４において、親子情報１０００−１（図１０参照）の子階層ペアＩＤ列から子階層ペアＩＤ「Ｐ５」が削除されている。これにより、親階層ペアＰ１と実際に呼出関係を有する可能性が低い子階層ペアＰ５を排除することができる。
【０１５８】
なお、リクエストメッセージ間の時間間隔がリクエスト絞込範囲内の場合は、レスポンス絞込範囲についても同様の判断をおこなう。すなわち、絞込部２１０３が、ペア情報テーブル８００を参照して、親階層ペアＰ１のレスポンス時刻と子階層ペアＰ５のレスポンス時刻との時間間隔を算出する。ここでは、３［ｍｓ］となる。
【０１５９】
このあと、絞込部２１０３が、ＵＲＬ１を手掛かりに絞込範囲テーブル２３００を参照して、算出された時間間隔（３［ｍｓ］）がレスポンス絞込範囲内か否かを判断する。ここでは、レスポンス絞込範囲は「２．５≦ｔ＜４．５」のため範囲内となる。ただし、ここでは、リクエスト絞込範囲またはレスポンス絞込範囲の少なくともいずれか一方が範囲外となった場合は、親子関係テーブル１０００の子階層ペアＩＤ列から子階層ペアＩＤ「Ｐ５」を削除する。
【０１６０】
判定部２１０４は、計数部５０７によって計数された計数結果に基づいて、下位階層の子階層ペアと呼出関係を有する親階層ペアの候補が複数存在するか否かを判定する機能を有する。具体的には、たとえば、判定部２１０４が、親子関係テーブル１０００の親候補数を参照して、親候補数が２以上か否かを判定する。
【０１６１】
ここで、親階層ペアの候補が複数存在する場合、絞込部２１０３は、検索された子階層ペアの中から、上位階層の親階層ペアと呼出関係を有する下位階層の子階層ペアを絞り込む。一方、親階層ペアの候補が複数存在しない場合、絞込部２１０３は、子階層ペアの絞り込みはおこなわない。すなわち、親階層ペアの候補が複数存在しない場合は子階層ペアを絞り込む必要がない。これにより、無駄な絞込処理を削減できる。
【０１６２】
また、第２の算出部５０６は、親階層ペアのレスポンス時間と絞込部２１０３によって絞り込まれた下位階層の子階層ペアのレスポンス時間とに基づいて、親階層ペアのリクエストメッセージの送信元であるサーバの処理時間を算出する。
【０１６３】
具体的には、たとえば、第２の算出部５０６が、子階層ペアＩＤが削除された削除後の親子関係テーブル１０００およびレスポンス時間テーブル１２００を参照して、サーバの処理時間を算出する。より具体的には、たとえば、第２の算出部５０６が、親階層ペアのレスポンス時間から子階層ペアのレスポンス時間を差し引くことで、親階層ペアのリクエストメッセージの送信先であるサーバの処理時間を算出する。このとき、親階層ペアと呼出関係を有する可能性が低い子階層ペアが排除されているため、サーバの処理時間を精度良く算出することができる。
【０１６４】
なお、本明細書では、リクエスト絞込範囲とレスポンス絞込範囲との両方を考慮して子階層ペアを絞り込むことにしたが、いずれか一方の範囲について考慮することにしてもよい。また、リクエスト絞込範囲またはレスポンス絞込範囲の少なくともいずれか一方が範囲内となった子階層ペアを、親階層ペアと呼出関係を有する子階層ペアとして扱うことにしてもよい。
【０１６５】
（システム分析装置のシステム分析処理手順）
つぎに、実施の形態２にかかるシステム分析装置２１００のシステム分析処理手順について説明する。ここではまず、上位階層のメッセージと呼出関係を有する下位階層のメッセージを絞り込むための絞込範囲を決定する処理手順について説明する。
【０１６６】
＜絞込範囲決定処理手順＞
図２５は、絞込範囲決定処理手順の一例を示すフローチャートである。図２５のフローチャートにおいて、まず、取得部５０１により、システム内のコンピュータ装置間で受け渡されたメッセージデータ群を取得する（ステップＳ２５０１）。このあと、作成部２１０１により、取得されたメッセージデータ群に基づいて、リクエスト頻度分布およびレスポンス頻度分布を作成する作成処理を実行する（ステップＳ２５０２）。
【０１６７】
そして、決定部２１０２により、リクエスト絞込範囲およびレスポンス絞込範囲を決定する決定処理を実行する（ステップＳ２５０３）。最後に、出力部５０８により、絞込範囲テーブルを出力して（ステップＳ２５０４）、本フローチャートによる一連の処理を終了する。絞込範囲テーブルは、たとえば、図２３に示した絞込範囲テーブル２３００である。
【０１６８】
＜作成処理手順＞
つぎに、図２５のステップＳ２５０２の作成処理の具体的処理手順について説明する。図２６および図２７は、ステップＳ２５０２の作成処理の具体的処理手順の一例を示すフローチャートである。図２６のフローチャートにおいて、まず、作成部２１０１により、図２５のステップＳ２５０１において取得されたメッセージデータ群の中から任意のＵＲＬを選択する（ステップＳ２６０１）。
【０１６９】
このあと、作成部２１０１により、メッセージデータ群の中から、選択されたＵＲＬに対応する第１階層のリクエストメッセージを選択する（ステップＳ２６０２）。そして、作成部２１０１により、メッセージデータ群の中から、選択されたリクエストメッセージの送信時刻以降に送信された第２階層のリクエストメッセージを選択する（ステップＳ２６０３）。
【０１７０】
つぎに、作成部２１０１により、ステップＳ２６０２において選択された第１階層のリクエストメッセージと、ステップＳ２６０３において選択された第２階層のリクエストメッセージとの間の送信時刻の時間間隔を算出する（ステップＳ２６０４）。
【０１７１】
このあと、作成部２１０１により、未選択の第２階層のリクエストメッセージがあるか否かを判断する（ステップＳ２６０５）。ここで、未選択の第２階層のリクエストメッセージがある場合（ステップＳ２６０５：Ｙｅｓ）、ステップＳ２６０３に戻る。
【０１７２】
一方、未選択の第２階層のリクエストメッセージがない場合（ステップＳ２６０５:Ｎｏ）、作成部２１０１により、選択されたＵＲＬに対応する未選択の第１階層のリクエストメッセージがあるか否かを判断する（ステップＳ２６０６）。ここで、未選択の第１階層のリクエストメッセージがある場合（ステップＳ２６０６：Ｙｅｓ）、ステップＳ２６０２に戻る。
【０１７３】
一方、未選択の第１階層のリクエストメッセージがない場合（ステップＳ２６０６:Ｎｏ）、作成部２１０１により、所定時間間隔ごとの第２階層のリクエストメッセージの出現頻度を算出する（ステップＳ２６０７）。具体的には、作成部２１０１により、第１階層および第２階層のリクエストメッセージ間の時間間隔に基づいて、所定時間間隔ごとの第２階層のリクエストメッセージの出現頻度を算出する。
【０１７４】
そして、作成部２１０１により、算出された所定時間間隔ごとの出現頻度を時系列的に並べて、リクエスト頻度分布を作成する（ステップＳ２６０８）。このあと、作成部２１０１により、未選択のＵＲＬがあるか否かを判断する（ステップＳ２６０９）。ここで、未選択のＵＲＬがある場合（ステップＳ２６０９：Ｙｅｓ）、ステップＳ２６０１に戻る。一方、未選択のＵＲＬがない場合（ステップＳ２６０９：Ｎｏ）、図２７のステップＳ２７０１に移行する。
【０１７５】
図２７のフローチャートにおいて、まず、作成部２１０１により、図２５のステップＳ２５０１において取得されたメッセージデータ群の中から任意のＵＲＬを選択する（ステップＳ２７０１）。
【０１７６】
このあと、作成部２１０１により、メッセージデータ群の中から、選択されたＵＲＬに対応する第１階層のレスポンスメッセージを選択する（ステップＳ２７０２）。そして、作成部２１０１により、メッセージデータ群の中から、選択されたレスポンスメッセージの送信時刻以前に送信された第２階層のレスポンスメッセージを選択する（ステップＳ２７０３）。
【０１７７】
つぎに、作成部２１０１により、ステップＳ２７０２において選択された第１階層のレスポンスメッセージと、ステップＳ２７０３において選択された第２階層のレスポンスメッセージとの間の送信時刻の時間間隔を算出する（ステップＳ２７０４）。
【０１７８】
このあと、作成部２１０１により、未選択の第２階層のレスポンスメッセージがあるか否かを判断する（ステップＳ２７０５）。ここで、未選択の第２階層のレスポンスメッセージがある場合（ステップＳ２７０５：Ｙｅｓ）、ステップＳ２７０３に戻る。
【０１７９】
一方、未選択の第２階層のレスポンスメッセージがない場合（ステップＳ２７０５:Ｎｏ）、作成部２１０１により、選択されたＵＲＬに対応する未選択の第１階層のレスポンスメッセージがあるか否かを判断する（ステップＳ２７０６）。ここで、未選択の第１階層のレスポンスメッセージがある場合（ステップＳ２７０６：Ｙｅｓ）、ステップＳ２７０２に戻る。
【０１８０】
一方、未選択の第１階層のレスポンスメッセージがない場合（ステップＳ２７０６:Ｎｏ）、作成部２１０１により、所定時間間隔ごとの第２階層のレスポンスメッセージの出現頻度を算出する（ステップＳ２７０７）。具体的には、作成部２１０１により、第１階層および第２階層のレスポンスメッセージ間の時間間隔に基づいて、所定時間間隔ごとの第２階層のレスポンスメッセージの出現頻度を算出する。
【０１８１】
そして、作成部２１０１により、算出された所定時間間隔ごとの出現頻度を時系列的に並べて、レスポンス頻度分布を作成する（ステップＳ２７０８）。このあと、作成部２１０１により、未選択のＵＲＬがあるか否かを判断する（ステップＳ２７０９）。ここで、未選択のＵＲＬがある場合（ステップＳ２７０９：Ｙｅｓ）、ステップＳ２７０１に戻る。一方、未選択のＵＲＬがない場合（ステップＳ２７０９：Ｎｏ）、図２５のステップＳ２５０３に移行する。
【０１８２】
これにより、第１階層および第２階層の同一メッセージ種別のメッセージ間の時間間隔と第２階層のメッセージの出現頻度との関係を表わす頻度分布を作成することができる。
【０１８３】
＜決定処理手順＞
つぎに、図２５のステップＳ２５０３の決定処理の具体的処理手順について説明する。図２８は、ステップＳ２５０３の決定処理の具体的処理手順の一例を示すフローチャートである。図２８のフローチャートにおいて、まず、決定部２１０２により、図２５のステップＳ２５０１において取得されたメッセージデータ群の中から任意のＵＲＬを選択する（ステップＳ２８０１）。
【０１８４】
このあと、決定部２１０２により、上記式（１）を用いて、第２階層のリクエストメッセージの出現頻度の平均度数を算出する（ステップＳ２８０２）。ただし、算出される平均度数は、ステップＳ２８０１において選択されたＵＲＬに対応する平均度数である。
【０１８５】
つぎに、決定部２１０２により、図２６のステップＳ２６０８において作成されたリクエスト頻度分布を参照して、第２階層のリクエストメッセージの出現頻度が平均度数以上となる範囲を特定する（ステップＳ２８０３）。ただし、参照するリクエスト頻度分布は、ステップＳ２８０１において選択されたＵＲＬに対応するリクエスト頻度分布である。
【０１８６】
そして、決定部２１０２により、特定された範囲をリクエスト絞込範囲に決定して（ステップＳ２８０４）、選択されたＵＲＬと対応付けて絞込範囲テーブルに登録する（ステップＳ２８０５）。
【０１８７】
このあと、決定部２１０２により、上記式（１）を用いて、第２階層のレスポンスメッセージの出現頻度の平均度数を算出する（ステップＳ２８０６）。ただし、算出される平均度数は、ステップＳ２８０１において選択されたＵＲＬに対応する平均度数である。
【０１８８】
つぎに、決定部２１０２により、図２７のステップＳ２７０８において作成されたレスポンス頻度分布を参照して、第２階層のレスポンスメッセージの出現頻度が平均度数以上となる範囲を特定する（ステップＳ２８０７）。ただし、参照するレスポンス頻度分布は、ステップＳ２８０１において選択されたＵＲＬに対応するレスポンス頻度分布である。
【０１８９】
そして、決定部２１０２により、特定された範囲をレスポンス絞込範囲に決定して（ステップＳ２８０８）、選択されたＵＲＬと対応付けて絞込範囲テーブルに登録する（ステップＳ２８０９）。このあと、決定部２１０２により、選択されていない未選択のＵＲＬがあるか否かを判断する（ステップＳ２８１０）。
【０１９０】
ここで、未選択のＵＲＬがある場合（ステップＳ２８１０：Ｙｅｓ）、ステップＳ２８０１に戻る。一方、未選択のＵＲＬがない場合（ステップＳ２８１０：Ｎｏ）、図２５のステップＳ２５０４に移行する。
【０１９１】
これにより、第１階層のメッセージと呼出関係を有する第２階層のメッセージを絞り込むためのリクエスト絞込範囲およびレスポンス絞込範囲を特定することができる。
【０１９２】
＜システム分析処理手順＞
つぎに、システム分析装置２１００のシステム分析処理手順について説明する。図２９は、実施の形態２にかかるシステム分析装置のシステム分析処理手順の一例を示すフローチャートである。図２９のフローチャートにおいて、まず、取得部５０１により、システム内のコンピュータ装置間で受け渡されたメッセージデータ群を取得したか否かを判断する（ステップＳ２９０１）。
【０１９３】
ここで、メッセージデータ群を取得するのを待って（ステップＳ２９０１：Ｎｏ）、取得した場合（ステップＳ２９０１：Ｙｅｓ）、検出部５０２により、取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する（ステップＳ２９０２）。
【０１９４】
このあと、特定部５０３により、各メッセージデータの送信時刻から、検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定し（ステップＳ２９０３）、第１の算出部５０５により、特定されたペアごとのリクエスト時刻とレスポンス時刻とを用いて、親階層ペアおよび子階層ペアそれぞれのリクエストからレスポンスまでにかかったレスポンス時間を算出する（ステップＳ２９０４）。
【０１９５】
そして、検索部５０４により、特定された特定結果に基づいて、ペア群から選ばれた親階層ペアのリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、親階層ペアのプロトコルより下位階層のプロトコルの子階層ペアを検索する検索処理を実行する（ステップＳ２９０５）。
【０１９６】
このあと、絞込部２１０３により、検索された子階層ペアの中から、上位階層の親階層ペアと呼出関係を有する下位階層の子階層ペアを絞り込む絞込処理を実行する（ステップＳ２９０６）。そして、第２の算出部５０６により、ステップＳ２９０４の算出結果とステップＳ２９０６の絞込結果とに基づいて、サーバの処理時間を算出する算出処理を実行する（ステップＳ２９０７）。
【０１９７】
最後に、出力部５０８により、算出された算出結果を出力して（ステップＳ２９０８）、本フローチャートによる一連の処理を終了する。
【０１９８】
＜絞込処理手順＞
つぎに、図２９のステップＳ２９０６の絞込処理の具体的処理手順について説明する。図３０は、ステップＳ２９０６の絞込処理の具体的処理手順の一例を示すフローチャートである。図３０のフローチャートにおいて、まず、絞込部２１０３により、親子関係テーブルのＵＲＬを参照して、第１階層の任意の親階層ペアを選択する（ステップＳ３００１）。親子関係テーブルは、たとえば、図１０に示した親子関係テーブル１０００である。
【０１９９】
このあと、絞込部２１０３により、親子関係テーブルの子階層ペアＩＤ列を参照して、選択された親階層ペアの子階層ペアを選択する（ステップＳ３００２）。そして、判定部２１０４により、親子関係テーブルの親候補数を参照して、選択された子階層ペアの親候補数が２以上か否かを判定する（ステップＳ３００３）。
【０２００】
ここで、親候補数が２以上の場合（ステップＳ３００３：Ｙｅｓ）、絞込部２１０３により、ペア情報テーブルを参照して、選択された親階層ペアのリクエスト時刻と子階層ペアのリクエスト時刻との時間間隔を算出する（ステップＳ３００４）。ペア情報テーブルは、たとえば、図８に示したペア情報テーブル８００である。そして、絞込部２１０３により、絞込範囲テーブルを参照して、親階層ペアのＵＲＬに対応するリクエスト絞込範囲を特定する（ステップＳ３００５）。
【０２０１】
このあと、絞込部２１０３により、算出されたリクエスト時刻の時間間隔が、特定されたリクエスト絞込範囲内か否かを判断する（ステップＳ３００６）。ここで、リクエスト絞込範囲内の場合（ステップＳ３００６：Ｙｅｓ）、絞込部２１０３により、ペア情報テーブルを参照して、選択された親階層ペアのレスポンス時刻と子階層ペアのレスポンス時刻との時間間隔を算出する（ステップＳ３００７）。
【０２０２】
そして、絞込部２１０３により、絞込範囲テーブルを参照して、親階層ペアのＵＲＬに対応するレスポンス絞込範囲を特定する（ステップＳ３００８）。絞込範囲テーブルは、たとえば、図２３に示した絞込範囲テーブル２３００である。このあと、絞込部２１０３により、算出されたレスポンス時刻の時間間隔が、特定されたレスポンス絞込範囲内か否かを判断する（ステップＳ３００９）。
【０２０３】
ここで、レスポンス絞込範囲外の場合（ステップＳ３００９：Ｎｏ）、絞込部２１０３により、親子関係テーブルの親階層ペアの子階層ペアＩＤ列から子階層ペアのペアＩＤを削除する（ステップＳ３０１０）。そして、絞込部２１０３により、未選択の子階層ペアがあるか否かを判断する（ステップＳ３０１１）。
【０２０４】
ここで、未選択の子階層ペアがある場合（ステップＳ３０１１：Ｙｅｓ）、ステップＳ３００２に戻る。一方、未選択の子階層ペアがない場合（ステップＳ３０１１：Ｎｏ）、絞込部２１０３により、ステップＳ３００１において選択されていない未選択の親階層ペアがあるか否かを判断する（ステップＳ３０１２）。
【０２０５】
ここで、未選択の親階層ペアがある場合（ステップＳ３０１２：Ｙｅｓ）、ステップＳ３００１に戻る。一方、未選択の親階層ペアがない場合（ステップＳ３０１２：Ｎｏ）、図２９のステップＳ２９０７に移行する。
【０２０６】
また、ステップＳ３００６において、リクエスト絞込範囲外の場合（ステップＳ３００６：Ｎｏ）、ステップＳ３０１０に移行する。また、ステップＳ３００３において、親候補数が１以下の場合（ステップＳ３００３：Ｎｏ）、ステップＳ３０１１に移行する。また、ステップＳ３００９において、レスポンス絞込範囲内の場合（ステップＳ３００９：Ｙｅｓ）、ステップＳ３０１１に移行する。
【０２０７】
これにより、親階層ペアと呼出関係を有する子階層ペア候補の中から、親階層ペアと呼出関係を有する可能性が高い子階層ペアを絞り込むことができる。
【０２０８】
なお、ステップＳ２９０７の算出処理の具体的処理手順は、図１９に示した算出処理の具体的処理手順と同様のため説明を省略する。ただし、参照対象となる親子関係テーブルは、図３０のステップＳ３００９において子階層ペアＩＤが削除された削除後の親子関係テーブルである。
【０２０９】
以上説明したように、実施の形態２によれば、隣接する上位階層および下位階層の同一メッセージ種別のメッセージ間の時間間隔と下位階層のメッセージの出現頻度との関係を表わす頻度分布を作成することができる。また、実施の形態２によれば、作成された頻度分布を用いて、上位階層のメッセージと呼出関係を有する下位階層のメッセージの送信時刻に関する範囲を特定することができる。また、実施の形態２によれば、親階層ペアと呼出関係を有する子階層ペア候補を、特定された範囲を用いて絞り込むことにより、親階層ペアと呼出関係を有する可能性が高い子階層ペアを特定することができる。
【０２１０】
これにより、子階層ペアのレスポンス時間を親階層ペアに適切に配分することが可能となり、業務間でのサーバの処理時間の平均化を抑制して、システム分析の分析精度を向上させることができる。さらに、上位２階層（第１および第２階層）での絞り込みの影響は下位階層（第２および第３階層）にも及ぶため、結果的に、下位階層においても子階層ペアのレスポンス時間を親階層ペアに適切に配分することができる。
【０２１１】
また、実施の形態２によれば、子階層ペアの親階層ペアとなる候補が複数存在する場合にのみ子階層ペアの絞込処理を実行することにしてもよい。これにより、無駄な絞込処理を削減することができる。
【０２１２】
なお、本実施の形態で説明したシステム分析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布してもよい。
【０２１３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２１４】
（付記１）コンピュータを、
プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得する取得手段、
前記取得手段によって取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する検出手段、
前記検出手段によって検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定する特定手段、
前記特定手段によって特定された特定結果に基づいて、前記ペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、前記親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索する検索手段、
前記検索手段によって検索された子階層ペアを前記親階層ペアと呼出関係を有するペア候補として出力する出力手段、
として機能させることを特徴とするシステム分析プログラム。
【０２１５】
（付記２）前記検索手段は、
前記親階層ペアのプロトコルの直下階層のプロトコルの子階層ペアを検索することを特徴とする付記１に記載のシステム分析プログラム。
【０２１６】
（付記３）前記コンピュータを、
前記特定手段によって特定されたペアごとのリクエスト時刻とレスポンス時刻とを用いて、前記親階層ペアおよび前記子階層ペアそれぞれのリクエストからレスポンスまでにかかったレスポンス時間を算出する第１の算出手段、
前記第１の算出手段によって算出された親階層ペアおよび子階層ペアのレスポンス時間に基づいて、前記親階層ペアのリクエストメッセージの送信先であるサーバの処理時間を算出する第２の算出手段として機能させ、
前記出力手段は、
前記第２の算出手段によって算出されたサーバの処理時間を出力することを特徴とする付記１または２に記載のシステム分析プログラム。
【０２１７】
（付記４）前記出力手段は、
さらに、前記子階層ペアのプロトコルが最下位階層であった場合、前記子階層ペアのレスポンス時間を、前記子階層ペアのリクエストメッセージの送信先であるサーバの処理時間として出力することを特徴とする付記３に記載のシステム分析プログラム。
【０２１８】
（付記５）前記コンピュータを、
前記検索手段によって検索された検索結果に基づいて、前記子階層ペアと呼出関係を有する親階層ペアの候補数を計数する計数手段として機能させ、
前記第２の算出手段は、
前記第１の算出手段によって算出された親階層ペアおよび子階層ペアのレスポンス時間と、前記計数手段によって計数された候補数とに基づいて、前記親階層ペアのリクエストメッセージの送信先であるサーバの処理時間を算出することを特徴とする付記３または４に記載のシステム分析プログラム。
【０２１９】
（付記６）前記検索手段は、
最下位階層のプロトコルを除く残余のプロトコルのペア群から選ばれていない未選択の親階層ペアがなくなるまで繰り返し検索処理を実行し、
前記計数手段は、
前記検索手段によって検索された検索結果に基づいて、前記子階層ペアと呼出関係を有する親階層ペアの候補数を計数することを特徴とする付記５に記載のシステム分析プログラム。
【０２２０】
（付記７）前記親階層ペアは、前記ペア群のうち最下位階層のプロトコルを除く残余のプロトコルのペアから選ばれた任意のペアであることを特徴とする付記１〜６のいずれか一つに記載のシステム分析プログラム。
【０２２１】
（付記８）前記第２の算出手段は、
最上位階層のプロトコルのリクエストメッセージから特定される宛先ごとに、任意に指定された時間帯での前記宛先が指定された場合における前記親階層ペアのリクエストメッセージの送信先であるサーバの処理時間を集計することにより、前記サーバの平均処理時間を算出し、
前記出力手段は、
前記第２の算出手段によって算出されたサーバの平均処理時間を出力することを特徴とする付記３〜７のいずれか一つに記載のシステム分析プログラム。
【０２２２】
（付記９）前記第２の算出手段は、
前記時間帯での前記宛先が指定された場合における最下位階層の子階層ペアのリクエストメッセージの送信先であるサーバの処理時間を集計することにより、前記サーバの平均処理時間を算出することを特徴とする付記８に記載のシステム分析プログラム。
【０２２３】
（付記１０）前記出力手段は、
前記宛先ごとに、当該宛先が指定された場合における最上位階層から最下位階層までの各階層のプロトコルのリクエストメッセージの送信先のサーバの処理時間を出力することを特徴とする付記９に記載のシステム分析プログラム。
【０２２４】
（付記１１）前記コンピュータを、
前記メッセージデータ群に基づいて、隣接する上位階層および下位階層の同一メッセージ種別のメッセージ間の送信時刻の時間間隔と前記下位階層のメッセージの出現頻度との関係を表わす頻度分布を作成する作成手段、
前記作成手段によって作成された頻度分布に基づいて、前記上位階層のメッセージと呼出関係を有する前記下位階層のメッセージの送信時刻に関する範囲を決定する決定手段として機能させ、
前記出力手段は、
前記決定手段によって決定された決定結果を出力することを特徴とする付記８または９に記載のシステム分析プログラム。
【０２２５】
（付記１２）前記コンピュータを、
前記決定手段によって決定された決定結果に基づいて、前記検索手段によって検索された子階層ペアの中から、前記上位階層の親階層ペアと呼出関係を有する前記下位階層の子階層ペアを絞り込む絞込手段として機能させ、
前記第２の算出手段は、
前記上位階層の親階層ペアのレスポンス時間と、前記絞込手段によって絞り込まれた下位階層の子階層ペアのレスポンス時間とに基づいて、前記親階層ペアのリクエストメッセージの送信元であるサーバの処理時間を算出することを特徴とする付記１１に記載のシステム分析プログラム。
【０２２６】
（付記１３）前記コンピュータを、
前記計数手段によって計数された計数結果に基づいて、前記下位階層の子階層ペアと呼出関係を有する親階層ペアの候補が複数存在するか否かを判定する判定手段として機能させ、
前記絞込手段は、
前記判定手段によって複数存在すると判定された場合、前記上位階層の親階層ペアと呼出関係を有する前記下位階層の子階層ペアを絞り込むことを特徴とする付記１２に記載のシステム分析プログラム。
【０２２７】
（付記１４）プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得する取得手段と、
前記取得手段によって取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する検出手段と、
前記検出手段によって検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定する特定手段と、
前記特定手段によって特定された特定結果に基づいて、前記ペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、前記親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索する検索手段と、
前記検索手段によって検索された子階層ペアを前記親階層ペアと呼出関係を有するペア候補として出力する出力手段と、
を備えることを特徴とするシステム分析装置。
【０２２８】
（付記１５）制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージのメッセージＩＤ、プロトコル、メッセージ種別および送信時刻に関するメッセージデータ群を取得する取得工程と、
前記制御手段により、前記取得工程によって取得されたメッセージデータ群の中から、同一メッセージＩＤのリクエストメッセージとレスポンスメッセージとのペアを検出する検出工程と、
前記制御手段により、前記検出工程によって検出されたペアごとのリクエスト時刻とレスポンス時刻とを特定する特定工程と、
前記制御手段により、前記特定工程によって特定された特定結果に基づいて、前記ペア群から選ばれた任意のペア（以下、「親階層ペア」という）のリクエスト時刻とレスポンス時刻との間に、リクエスト時刻およびレスポンス時刻が含まれ、前記親階層ペアのプロトコルより下位階層のプロトコルのペア（以下、「子階層ペア」という）を検索する検索工程と、
前記制御手段により、前記検索工程によって検索された子階層ペアを前記親階層ペアと呼出関係を有するペア候補として出力する出力工程と、
を実行することを特徴とするシステム分析方法。
【符号の説明】
【０２２９】
１００  ネットワークシステム
１０１，２１００  システム分析装置
１０２  Ｗｅｂサーバ
１０３  ＡＰサーバ
１０４  ＤＢサーバ
１０５  クライアント端末
２１０  キャプチャ部
２２０  メッセージ解析部
２３０  パケットＤＢ
５０１  取得部
５０２  検出部
５０３  特定部
５０４  検索部
５０５  第１の算出部
５０６  第２の算出部
５０７  計数部
５０８  出力部
２１０１  作成部
２１０２  決定部
２１０３  絞込部
２１０４  判定部
【図１】
2010044742.tif 000003
【図２】
2010044742.tif 000004
【図３】
2010044742.tif 000005
【図４】
2010044742.tif 000006
【図５】
2010044742.tif 000007
【図６】
2010044742.tif 000008
【図７】
2010044742.tif 000009
【図８】
2010044742.tif 000010
【図９】
2010044742.tif 000011
【図１０】
2010044742.tif 000012
【図１１】
2010044742.tif 000013
【図１２】
2010044742.tif 000014
【図１３−１】
2010044742.tif 000015
【図１３−２】
2010044742.tif 000016
【図１４】
2010044742.tif 000017
【図１５】
2010044742.tif 000018
【図１６】
2010044742.tif 000019
【図１７】
2010044742.tif 000020
【図１８】
2010044742.tif 000021
【図１９】
2010044742.tif 000022
【図２０】
2010044742.tif 000023
【図２１】
2010044742.tif 000024
【図２２】
2010044742.tif 000025
【図２３】
2010044742.tif 000026
【図２４】
2010044742.tif 000027
【図２５】
2010044742.tif 000028
【図２６】
2010044742.tif 000029
【図２７】
2010044742.tif 000030
【図２８】
2010044742.tif 000031
【図２９】
2010044742.tif 000032
【図３０】
2010044742.tif 000033