(57)【要約】【課題】システム内のサーバ間で通信されるデータのうち暗号などにより保護されている部分を用いることなくシステムの稼動状況を分析できるようにする。【解決手段】下位階層サーバと上位階層サーバとのパケットのやりとりから、上位階層サーバにおける処理の区切りを特定し、当該処理の区切りに係る上りパケットから次の処理の区切りの下りパケットまでを処理の塊として特定する。また下位階層サーバに対するリクエストメッセージの受信時刻と対応するレスポンスメッセージの受信時刻との間に包含される、上位階層サーバの処理の塊を特定する。そして、当該上位階層サーバの処理の塊における最初のパケットの受信時刻と最後のパケットの受信時刻との差を用いて、下位階層サーバの処理の塊の間に行われる当該下位階層サーバの処理のための、上位階層サーバの処理時間を算出する。【選択図】図２
2010218185.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するための処理をコンピュータに実行させるためのシステム分析プログラムであって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクＩＤを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納するステップと、
前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理ＩＤに対応付けて前記包含関係データ格納部に格納されている各前記チャンクＩＤについて、当該チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて解析結果格納部に格納するステップと、
を前記コンピュータに実行させるためのシステム分析プログラム。
【請求項２】
前記特定の処理について、前記下位階層サーバに対する前記特定の処理要求のパケットを受信した時刻と当該処理要求のパケットに対応する応答のパケットを受信した時刻との差を第１の応答時間として算出するステップと、
前記特定の処理について算出された前記第１の応答時間から、前記特定の処理についての処理ＩＤに対応付けて前記解析結果格納部に格納されている前記上位階層サーバの処理時間を差し引くことにより、前記特定の処理における前記下位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて算出結果格納部に格納するステップと、
をさらに含む請求項１記載のシステム分析プログラム。
【請求項３】
前記算出ステップが、
前記チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を、前記チャンクＩＤに対応付けて前記包含関係データ格納部に格納されている前記処理ＩＤの数で除することによりチャンク処理時間を算出するステップ
を含む請求項１記載のシステム分析プログラム。
【請求項４】
前記所定の条件が、送信先ＩＰアドレス、送信元ＩＰアドレス、送信先ポート番号及び送信元ポート番号により特定されるコネクションが同一であり、且つ前記送信先ポート番号がデータベースサーバとアプリケーションサーバとの間の通信であることを示す番号であるという条件である
請求項１記載のシステム分析プログラム。
【請求項５】
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するシステム分析装置であって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定し、特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納する手段と、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクＩＤを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納し、前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理ＩＤに対応付けて前記包含関係データ格納部に格納されている各前記チャンクＩＤについて、当該チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出すると共に、前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて解析結果格納部に格納する手段と、
を有するシステム分析装置。
【請求項６】
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法であって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクＩＤを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納するステップと、
前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理ＩＤに対応付けて前記包含関係データ格納部に格納されている各前記チャンクＩＤについて、当該チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて解析結果格納部に格納するステップと、
を含むシステム分析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、システムの稼働状況を分析するための技術に関する。
【背景技術】
【０００２】
多階層システムでは、役割の異なる複数のサーバがメッセージを交換することにより連携して動作し、クライアントからの要求に応じた処理を実施する。例えばオンラインバンキングのシステムやネットショッピングにおける受発注システムにおいては、ウェブサーバ（以下、Ｗｅｂサーバと呼ぶ）、アプリケーションサーバ（以下、ＡＰサーバと呼ぶ）及びデータベースサーバ（以下、ＤＢサーバと呼ぶ）から構成されるＷｅｂ３階層システムが採用されることが多い。一般にこのようなシステムは、大規模で複雑になりやすいため、システム全体の稼動状況を把握することが難しく、例えば障害が発生した場合に問題箇所を直ちに特定することは容易ではない。
【０００３】
このようなシステムの稼動状況を分析するための技術として、例えば、サーバ間で送受信されるパケットを収集し、収集したパケットの内容を解析するような技術がある。この技術では、収集したパケットのペイロードに含まれる識別子等に基づき、サーバ間におけるリクエストメッセージとレスポンスメッセージとの対応関係を特定し、プロトコルログとして出力する。また、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づきサーバ間の呼出の制約条件を満たすトランザクションモデルを生成する。そして、トランザクションモデルに合致するプロトコルログによりトランザクションの処理状態を分析する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１６８３号公報
【特許文献２】特開２００７−２４１８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、サーバ間で送受信されるパケットのペイロードが暗号化されているような場合には、識別子等を用いて複数のリクエストメッセージと複数のレスポンスメッセージの中で特定のリクエストメッセージと特定のレスポンスメッセージとの対応付けを行うことができず、トランザクションモデルの生成、ひいてはシステムの稼動状況の分析を行うことができないという問題があった。
【０００６】
そこで、本技術の目的は、システム内のサーバ間で通信されるデータのうち暗号などにより保護されている部分を用いることなくシステムの稼動状況を分析できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００７】
本システム分析方法は、ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法である。そして、本方法は、複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ上位階層サーバから下位階層サーバへの下りパケット及び下位階層サーバから上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす上りパケット及び下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、特定された組み合わせのうち特定の組み合わせに含まれる上りパケットから、特定の組み合わせの直後の組み合わせに含まれる下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、特定の組み合わせに含まれる上りパケットの受信時刻と特定の組み合わせの直後の組み合わせに含まれる下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、チャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻とが共に含まれるチャンクのチャンクＩＤをチャンク・データ格納部から特定し、処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納するステップと、下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての処理ＩＤに対応付けて包含関係データ格納部に格納されている各チャンクＩＤについて、当該チャンクＩＤに対応付けてチャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、特定の処理について算出されたチャンク処理時間の総和を求めることにより、特定の処理における上位階層サーバの処理時間を算出し、特定の処理についての処理ＩＤに対応付けて解析結果格納部に格納するステップとを含む。
【発明の効果】
【０００８】
システム内のサーバ間で通信されるデータのうち暗号などにより保護されている部分を用いることなくシステムの稼動状況を分析できるようになる。
【図面の簡単な説明】
【０００９】
【図１】本技術の一実施の形態に係るシステムの構成図である。
【図２】システム分析装置の機能ブロック図である。
【図３】（ａ）はプロトコルログ格納部に格納されるデータの一例を示す図である。（ｂ）はモデル格納部に格納されるデータの一例を示す図である。
【図４】トランザクションデータ格納部に格納されるデータの一例を示す図である。
【図５】システム分析装置における処理の処理フローを示す図である。
【図６】（ａ）及び（ｂ）はパケットデータ格納部に格納されるデータの一例を示す図である。
【図７】ＤＢチャンクデータ格納部に格納されるデータの一例を示す図である。
【図８】解析結果格納部に格納されるデータの一例を示す図である。
【図９】各サーバの処理時間の算出方法を説明するための模式図である。
【図１０】算出結果格納部に格納されるデータの一例を示す図である。
【図１１】出力結果の一例を示す図である。
【図１２】コネクション毎に処理を実施することを説明するための模式図である。
【図１３】ＤＢチャンクの区切りを判定する方法を説明するための模式図である。
【図１４】ＤＢチャンク解析処理の処理フローを示す図である。
【図１５】ＤＢチャンク解析処理の処理フローを示す図である。
【図１６】コネクション管理データ格納部に格納されるデータの一例を示す図である。
【図１７】チャンク番号格納部に格納されるデータの一例を示す図である。
【図１８】ＤＢサーバの処理時間の算出方法を説明するための模式図である。
【図１９】呼出関係解析処理の処理フローを示す図である。
【図２０】包含関係データ格納部に格納されるデータの一例を示す図である。
【図２１】振り分けデータ格納部に格納されるデータの一例を示す図である。
【図２２】コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態に係るシステムの構成図を示す。例えばインターネットであるネットワーク１には、ユーザ端末７と例えばルータであるスイッチ５とが接続されている。スイッチ５には、本実施の形態における主要な処理を実施するシステム分析装置３と、Ｗｅｂサーバ９と、ＡＰサーバ１１と、ＤＢサーバ１３とが接続されている。ここでは、ユーザ端末７、Ｗｅｂサーバ９、ＡＰサーバ１１及びＤＢサーバ１３はそれぞれ１つしか図示していないが、数に限定はない。
【００１１】
Ｗｅｂサーバ９、ＡＰサーバ１１及びＤＢサーバ１３からなるこのシステムは、いわゆるウェブ３階層システムである。ユーザ端末７からＷｅｂサーバ９に対して処理の要求があった場合、Ｗｅｂサーバ９、ＡＰサーバ１１及びＤＢサーバ１３はメッセージを交換することにより連携して処理を実施し、要求に対する応答をユーザ端末７に返す。ユーザ端末７とＷｅｂサーバ９との間（以下、ＣＬ−ＷＢ間と呼ぶ）は、例えばＨＴＴＰ（HyperText Transfer Protocol）で通信が行われる。Ｗｅｂサーバ９とＡＰサーバ１１との間（以下、ＷＢ−ＡＰ間と呼ぶ）は、例えばＩＩＯＰ（Internet Inter-ORB Protocol）で通信が行われる。ＡＰサーバ１１とＤＢサーバ１３との間（以下、ＡＰ−ＤＢ間と呼ぶ）は、ＤＢサーバ１３の仕様に応じたプロトコルで通信が行われる。そして、システム分析装置３は、スイッチ５を通過するパケットを例えばポートミラーリングにより受信できるようになっている。
【００１２】
図２に、システム分析装置３の機能ブロック図を示す。システム分析装置３は、下記の処理部及びデータ格納部を有する。
・スイッチ５からパケットを受信するパケットキャプチャ部３０１
・受信したパケットを格納するパケットデータ格納部３０２
・後で説明するＤＢチャンク解析処理を実施するＤＢチャンク解析部３０３
・ＤＢチャンク解析部３０３により生成されるコネクション管理データを格納するコネクション管理データ格納部３０４
・ＤＢチャンク解析処理の解析結果を格納するＤＢチャンクデータ格納部３０５
・チャンクＩＤを生成するためのチャンク番号を格納するチャンク番号格納部３０６
・後で説明する呼出関係解析処理を実施する呼出関係解析部３０７
・呼出関係解析部３０７により生成される振り分けデータを格納する振り分けデータ格納部３０８
・呼出関係解析部３０７により生成される包含関係データを格納する包含関係データ格納部３０９
・呼出関係解析処理の解析結果を格納する解析結果格納部３１０
・Ｗｅｂサーバ９及びＡＰサーバ１１の処理時間を算出する処理時間算出部３１１
・処理時間算出部３１１により算出された結果を格納する算出結果格納部３１２
・算出結果格納部３１２に格納されている結果を表示装置等に出力する出力部３１３
・パケットデータ格納部３０２から読み出したパケットの内容を解析し、解析結果をプロトコルログ格納部３１５に格納するメッセージ解析部３１４
・メッセージ解析部３１４による解析結果を格納するプロトコルログ格納部３１５
・プロトコルログ格納部３１５に格納されているデータに基づきトランザクションモデルを生成するモデル生成部３１６
・モデル生成部３１６により生成されたトランザクションモデルを格納するモデル格納部３１７
・プロトコルログ格納部３１５に格納されているデータ及びモデル格納部３１７に格納されているトランザクションモデルに基づきトランザクションの処理状態を解析するマッチング処理部３１８
・マッチング処理部３１８による解析結果が格納されるトランザクションデータ格納部３１９
【００１３】
なお、メッセージ解析部３１４、プロトコルログ格納部３１５、モデル生成部３１６、モデル格納部３１７、マッチング処理部３１８及びトランザクションデータ格納部３１９により実施される処理は、例えば特開２００６−１１６８３号公報に記載されている処理と同様である。本実施の形態においては、この従来技術を用いてＣＬ−ＷＢ間及びＷＢ−ＡＰ間のパケットについて処理を行う。詳細は特開２００６−１１６８３号公報に記載されているので、ここでは処理の内容を簡単に説明する。
【００１４】
メッセージ解析部３１４は、パケットのペイロードに含まれるトランザクションＩＤ等に基づきリクエストメッセージとレスポンスメッセージとの対応付け等を行い、解析結果をプロトコルログ格納部３１５に格納する。プロトコルログ格納部３１５に格納されるデータの一例を図３（ａ）に示す。図３（ａ）の例では、受信時刻の列と、トランザクションＩＤの列と、プロトコルの列と、メッセージ種別の列と、オブジェクト／応答時間の列とが含まれる。オブジェクト／応答時間には、リクエストメッセージであれば処理の内容を識別するためのオブジェクト名が、レスポンスメッセージであればリクエストメッセージの受信時刻との差が格納される。なお、「受信時刻」とはパケットキャプチャ部３０１がパケットを受信した時刻のことであり、以下の記述においても同様である。
【００１５】
モデル生成部３１６は、プロトコルログ格納部３１５に格納されているデータに基づきトランザクションモデルを生成し、モデル格納部３１７に格納する。例えば、他のトランザクションに遮られることなく一連の処理を終了したトランザクションを抽出することにより、トランザクションモデルを生成する。モデル格納部３１７に格納されるデータの一例を図３（ｂ）に示す。図３（ｂ）の例では、受信時刻の列と、トランザクションＩＤの列と、プロトコルの列と、メッセージ種別の列と、オブジェクト／応答時間の列とが含まれる。例えば、オブジェクト名から特定されるトランザクションの種別毎にこのようなトランザクションモデルが生成される。生成されたモデルにはモデルＩＤが割り当てられる。
【００１６】
マッチング処理部３１８は、プロトコルログ格納部３１５に格納されているデータを、モデル格納部３１７に格納されているトランザクションモデルと比較することにより、各トランザクションについて分析を行い、結果をトランザクションデータ格納部３１９に格納する。図４に、トランザクションデータ格納部３１９に格納されるデータの一例を示す。図４の例では、トランザクションＩＤの列と、モデルＩＤの列と、ＨＴＴＰリクエスト時刻の列と、ＨＴＴＰレスポンス時刻の列と、ＩＩＯＰリクエスト時刻の列と、ＩＩＯＰレスポンス時刻の列とが含まれる。
【００１７】
このような処理を実施することにより、ＣＬ−ＷＢ間及びＷＢ−ＡＰ間のパケットについてトランザクションデータを生成する。
【００１８】
一方、本実施の形態においては、ＡＰ−ＤＢ間で送受信されるパケットが、例えば暗号などにより保護されており、ペイロードからトランザクションＩＤ等のデータを取得することができないものとする。この場合、ＡＰ−ＤＢ間のパケットについては、上で述べたような処理を実施することができないため、以下で述べるような処理を実施する。そして、以下で得られる処理結果と、上で述べた処理で得られたトランザクションデータを合わせて解析することにより、システム全体の稼働状況を分析する。
【００１９】
以下では、図５を用いて、図２に示したシステム分析装置３においてＡＰ−ＤＢ間のパケットを分析する処理の概要を説明する。まず、システム分析装置３のパケットキャプチャ部３０１は、パケットを受信すると、受信したパケットからペイロードを取り出し、受信した時刻の情報及びペイロードの長さに対応付けてパケットデータ格納部３０２に格納する（図５：ステップＳ１）。ここでは、ペイロードは受信時刻の順にパケットデータ格納部３０２に格納される。
【００２０】
図６（ａ）に、イーサネット（登録商標）・フレームを受信した場合にパケットデータ格納部３０２に格納されるデータの一例を示す。このように、パケットデータ格納部３０２には、ＭＡＣヘッダの後ろのフレームが受信時刻の情報及びＭＡＣヘッダに含まれるフレーム長のデータに対応付けて格納されるようになっている。すなわち、図６（ｂ）に示すように、ＭＡＣヘッダの後ろの部分をフレームと呼び、当該フレームにはＩＰヘッダ、ＴＣＰヘッダ及びＴＣＰデータが含まれる。なお、ＩＰヘッダに含まれる送信元及び宛先ＩＰアドレス、及びＴＣＰヘッダに含まれる送信元及び宛先ポート番号は、後で説明するＤＢチャンク解析処理で利用される。また、以下ではフレームの部分をパケットと呼ぶこととする。
【００２１】
なお、先に述べたように、パケットデータ格納部３０２に格納されているフレームのうち、ＣＬ−ＷＢ間のパケット及びＷＢ−ＡＰ間のパケットについては、従来技術により解析を行う。そして、解析の結果は、トランザクションデータ格納部３１９に格納されているものとする。
【００２２】
図５の説明に戻り、ＤＢチャンク解析部３０３は、ＤＢチャンク解析処理を実施する（ステップＳ３）。ＤＢチャンク解析処理については後で図１４及び図１５を用いて詳しく説明するが、ここで処理の内容を簡単に説明する。
【００２３】
上で述べたようにＡＰサーバ１１とＤＢサーバ１３との間でやりとりされるパケットのペイロード部分は暗号化などによって保護されているので、正確にはリクエストとレスポンスとの対応付けは不可能である。そこで、ＤＢチャンク解析処理では、ペイロードの解析を行うのではなく、ＡＰサーバ１１とＤＢサーバ１３との間のパケットのやりとりから、ＤＢサーバ１３からＡＰサーバ１１への下りパケットとＡＰサーバ１１からＤＢサーバ１３への上りパケットとの受信時刻の差が所定の閾値以上となっている部分を処理の区切りであるとみなして、当該処理の区切りを特定する。そして、この処理の区切りに係る上りパケットから次の処理の区切りの下りパケットまでをＤＢチャンクとして特定するものである。そして、ＤＢチャンクを表す上りパケットと下りパケットの受信時刻などをＤＢチャンクデータ格納部３０５に格納する。
【００２４】
図７に、ＤＢチャンクデータ格納部３０５に格納されるデータの一例を示す。図７の例では、受信時刻の列と、チャンクＩＤの列と、種別の列とが含まれる。なお、チャンクＩＤは、コネクション番号とチャンク番号とからなる。例えばチャンクＩＤが５−３である場合、コネクション番号が５でチャンク番号が３である（すなわち、５番のコネクションにおいて３番目に特定されたＤＢチャンクである）ことを示している。また、種別がＢｅｇｉｎ（開始）であれば、ＤＢチャンクにおける最初のパケット（すなわち、受信時刻が最も早いパケット）であることを示し、種別がＥｎｄ（終了）であれば、ＤＢチャンクにおける最後のパケット（すなわち、受信時刻が最も遅いパケット）であることを示している。
【００２５】
そして、呼出関係解析部３０７は、呼出関係解析処理を実施する（ステップＳ５）。呼出関係解析処理については後で図１９を用いて詳しく説明するが、ここで処理の内容を簡単に説明する。
【００２６】
呼出関係解析では、まず、ＩＩＯＰリクエストの受信時刻とＩＩＯＰレスポンスの受信時刻との間に包含されるＤＢチャンクを特定する。また、特定されたＤＢチャンクについて、ＤＢチャンクにおける最初のパケットの受信時刻と最後のパケットの受信時刻との差を用いてチャンク処理時間を計算し、このチャンク処理時間の総和をＤＢサーバ１３の処理時間とする。そして、解析結果は解析結果格納部３１０に格納される。
【００２７】
図８に、解析結果格納部３１０に格納されるデータの一例を示す。図８の例では、トランザクションＩＤの列と、モデルＩＤの列と、ＨＴＴＰリクエスト時刻の列と、ＨＴＴＰレスポンス時刻の列と、ＩＩＯＰリクエスト時刻の列と、ＩＩＯＰレスポンス時刻の列と、ＤＢサーバの処理時間の列とが含まれる。解析結果格納部３１０に格納されているデータは、呼出関係解析処理において算出されたＤＢサーバ１３の処理時間、及びトランザクションデータ格納部３１９に格納されているデータから生成されたものである。
【００２８】
図５の説明に戻り、処理時間算出部３１１は、各トランザクションについて、各サーバの処理時間を算出し、算出結果格納部３１２に格納する（ステップＳ７）。具体的には、まず、解析結果格納部３１０に格納されているＩＩＯＰレスポンス時刻とＩＩＯＰリクエスト時刻との差から、ＤＢサーバ１３の処理時間を差し引くことにより、ＡＰサーバ１１の処理時間を算出する。また、解析結果格納部３１０に格納されているＨＴＴＰレスポンス時刻とＨＴＴＰリクエスト時刻との差から、ＡＰサーバ１１の処理時間及びＤＢサーバ１３の処理時間を差し引くことにより、Ｗｅｂサーバ９の処理時間を算出する。
【００２９】
ステップＳ７の算出方法について、図９を用いて具体的に説明する。図では、上から下へ時間が進行するものとする。呼出関係解析処理によって算出されたＤＢサーバ１３の処理時間は、図のＤ１に相当する。ＡＰサーバ１１の処理時間はＩＩＯＰレスポンス時刻とのＩＩＯＰリクエスト時刻との差から、Ｄ１を差し引くことにより算出できる。これは、図のＡ１とＡ２の和に相当する（なお、便宜上「Ａ１とＡ２の和」という表現をしているが、ここではＡ１とＡ２それぞれの処理時間を算出しているわけではない。Ｗｅｂサーバ９についても同様である）。また、Ｗｅｂサーバ９の処理時間はＨＴＴＰレスポンス時刻とＨＴＴＰリクエスト時刻との差から、ＡＰサーバ１１の処理時間及びＤＢサーバ１３の処理時間を差し引くことにより算出できる。これは、図のＷ１とＷ２の和に相当する。
【００３０】
このようにして、各トランザクションについて、各サーバの処理時間を算出することができる。図１０に、算出結果格納部３１２に格納されるデータの一例を示す。図１０の例では、トランザクションＩＤの列と、Ｗｅｂサーバの処理時間の列と、ＡＰサーバの処理時間の列と、ＤＢサーバの処理時間の列とが含まれる。
【００３１】
図５の説明に戻り、出力部３１３は、算出結果格納部３１２に格納されているデータを表示装置や印刷装置等の出力装置に出力する（ステップＳ９）。図１１に、出力されるデータの一例を示す。図１１の例は、トランザクションの種別（例えばオンラインバンキングであれば、入金や残高照会など）毎に、所定の期間における各サーバの平均処理時間を棒グラフにして示したものである。図１１のような表示は、トランザクションＩＤ毎に行ってもよいし、トランザクション種別毎に平均値や中央値等の統計量を算出して、測定期間を代表する数値を基に行ってもよい。このような表示例以外にも、例えばサーバ毎に処理時間についてのヒストグラムを生成して出力する等、目的に応じた統計処理を実施し、さらに様々な表示形態により効果的に分析結果を提示することも可能である。
【００３２】
以上のような処理を実施すれば、ＤＢサーバ１３の処理時間の算出結果と、別途得られたトランザクションデータとを用いて算出された各サーバの処理時間を基に、システムの稼動状況を分析することができるようになる。
【００３３】
次に、図１２乃至図１７を用いて、ＤＢチャンク解析処理について説明する。先に述べたように、ＡＰ−ＤＢ間のパケットのペイロードは暗号などにより保護されているため、ペイロードに含まれるデータを用いてリクエストメッセージとレスポンスメッセージとの対応付けを行うことはできない。そこで、ＤＢチャンク解析処理では、以下で述べるような処理を実施することにより、ＤＢサーバ１３における処理の区切りを特定し、当該処理の区切りに係る上りパケットから次の処理の区切りの下りパケットまでを処理の塊であるとみなす。
【００３４】
なお、サーバ間では複数のコネクションを張って複数の処理に係るパケットを並行して送受信するのが普通であり、同じコネクション上のパケットについて処理の区切りを特定しなければ、全く関係の無い処理に係るパケットを同じ処理の塊に含めてしまうことになる。
【００３５】
そこで、本実施の形態では、図１２に示すように、同じコネクション上のパケットについて処理の区切りを特定する。図１２においては、上から下へ時間が進行する。ＡＰサーバとＤＢサーバには下向きの矢印がそれぞれ２本あるが、これはＡＰサーバとＤＢサーバとの間で２つのコネクションが張られていることを示している。左から１番目の矢印と３番目の矢印とに挟まれている部分は１番のコネクションでパケットの送受信が行われ、左から２番目の矢印と４番目の矢印とに挟まれている部分は２番のコネクションでパケットの送受信が行われることを示している。色が付いた長方形の部分はＤＢチャンクであることを示し、それぞれにチャンクＩＤが割り当てられている。ここでは、１番のコネクション上ではチャンクＩＤが１−１であるＤＢチャンクと１−２であるＤＢチャンクとが特定されており、２番のコネクション上ではチャンクＩＤが２−１であるＤＢチャンクと２−２であるＤＢチャンクとが特定されている。右向きの矢印はＤＢチャンクにおける最初のパケットであり、左向きの矢印はＤＢチャンクにおける最後のパケットである。
【００３６】
図１３は、処理の区切りを特定する方法を説明するための模式図である。図中、上から下へ時間が進行する。左右方向の矢印はＡＰ−ＤＢ間でのパケットのやりとりを示しており、また色の付いた部分はＤＢチャンクであることを示している。図１３に示すように、ＤＢチャンク解析処理では、上りパケットと直前の下りパケットの受信時刻の差が所定の閾値以上になる部分を処理の区切りであるとみなしている。そして、この処理の区切りにより、ＤＢチャンクが特定される。
【００３７】
次に、図１４乃至図１７を用いて、ＤＢチャンク解析処理の内容を詳細に説明する。まず、ＤＢチャンク解析部３０３は、パケットデータ格納部３０２から、一つ分の未処理のパケットと当該パケットの受信時刻の情報とを読み出す（図１４：ステップＳ１１）。なお、上で述べたように、パケットデータ格納部３０２には受信時刻の順にパケットが格納されており、ステップＳ１１においては未処理のパケットを受信時刻の順に読み出す。
【００３８】
そして、ＤＢチャンク解析部３０３は、読み出したパケットのＩＰヘッダ及びＴＣＰヘッダから、送信元ＩＰアドレス、送信先ＩＰアドレス、送信元ポート番号及び送信先ポート番号を特定する（ステップＳ１３）。
【００３９】
そして、ＤＢチャンク解析部３０３は、送信先ポート番号が所定の番号であるか判断する（ステップＳ１５）。ここでは、ＤＢサーバ１３との通信であることを示す番号であるかを判断する。これは、ＡＰ−ＤＢ間のパケットのみに対して以下の処理を実施するためである。送信先ポート番号が所定の番号ではない場合（ステップＳ１５：Ｎｏルート）、次のパケットについて処理を実施するため、ステップＳ１１の処理に戻る。
【００４０】
一方、送信先ポート番号が所定の番号である場合（ステップＳ１５：Ｙｅｓルート）、ＤＢチャンク解析部３０３は、ステップＳ１１で読み出したパケットに係るコネクションと同じコネクションのパケットのデータがコネクション管理データ格納部３０４に格納されているか判断する（ステップＳ１７）。同じコネクションのパケットのデータがコネクション管理データ格納部３０４に格納されていない場合（ステップＳ１７：Ｎｏルート）、ＤＢチャンク解析部３０３は、ステップＳ１１で読み出したパケットに対して新たにコネクション番号を割り当て、当該コネクション番号に対応付けて送信先ＩＰアドレス、送信元ＩＰアドレス、送信先ポート番号、送信元ポート番号及び受信時刻の情報をコネクション管理データ格納部３０４に格納する（ステップＳ１９）。また、ステップＳ１９において、新たに割り当てたコネクション番号に対応付けてチャンク番号格納部３０６にチャンク番号「１」を格納する。すなわち、新たにコネクションが張られた場合、チャンク番号格納部３０６にレコードが生成される。そして、処理は端子Ａを介して図１５のステップＳ３９へ移行する。
【００４１】
図１６に、コネクション管理データ格納部３０４に格納されるデータの一例を示す。図１６の例では、コネクション番号の列と、送信元ＩＰアドレスの列と、送信先ＩＰアドレスの列と、送信元ポート番号の列と、送信先ポート番号の列と、受信時刻の列とが含まれる。ＡＰサーバ１１とＤＢサーバ１３が１つしかない場合であっても、ＡＰサーバ側のポート番号が異なるのでコネクションを区別することができる。
【００４２】
また、図１７に、チャンク番号格納部３０６に格納されるデータの一例を示す。図１７の例では、コネクション番号の列とチャンク番号の列とが含まれる。チャンク番号は、特定のコネクション上においてＤＢチャンクがいくつ特定されているかを判別するための番号である。例えば１行目のレコードは、コネクション番号が１でチャンク番号が６であるので、１番のコネクションにおいてはＤＢチャンクが既に５つ特定され、現在６つ目のＤＢチャンクを特定するための処理を実施しているということを示している。
【００４３】
図１４の説明に戻り、同じコネクションのパケットのデータがコネクション管理データ格納部３０４に格納されている場合（ステップＳ１７：Ｙｅｓルート）、ＤＢチャンク解析部３０３は、同じコネクションのパケットのコネクション番号を特定し、特定したコネクション番号に対応付けて、ステップＳ１３で特定した送信先ＩＰアドレス、送信元ＩＰアドレス、送信先ポート番号、送信元ポート番号及び受信時刻の情報をコネクション管理データ格納部３０４に格納する（ステップＳ２１）。
【００４４】
そして、ＤＢチャンク解析部３０３は、同じコネクションのパケットのうち直前のパケット（すなわち、受信時刻が最も遅いパケット）のデータをコネクション管理データ格納部３０４から特定し、当該直前のパケットが「上り」と「下り」のどちらであるか判断する（ステップＳ２３）。ここでは、「上り」とはＡＰサーバ１１からＤＢサーバ１３へ送信されたパケットであり、「下り」とはＤＢサーバ１３からＡＰサーバ１１へ送信されたパケットである。また、「上り」と「下り」のどちらであるかは例えば送信先ＩＰアドレスにより判断される。
【００４５】
そして、同じコネクションのパケットのうち直前のパケットが「下り」ではない場合（ステップＳ２５：Ｎｏルート）、次のパケットについて処理を実施するため、ステップＳ１１の処理に戻る。一方、同じコネクションのパケットのうち直前のパケットが「下り」である場合（ステップＳ２５：Ｙｅｓルート）、ＤＢチャンク解析部３０３は、ステップＳ１１において読み出したパケットが「上り」と「下り」のどちらであるか判断する（ステップＳ２７）。処理は端子Ｂを介して図１５のステップＳ２９へ移行する。
【００４６】
次に、図１５について説明する。ＤＢチャンク解析部３０３は、ステップＳ１１において読み出したパケットが「上り」でない場合（ステップＳ２９：Ｎｏルート）、次のパケットについて処理を実施するため、処理は端子Ｃを介して図１４のステップＳ１１に戻る。一方、ステップＳ１１において読み出したパケットが「上り」である場合（ステップＳ２９：Ｙｅｓルート）、ＤＢチャンク解析部３０３は、同じコネクションのパケットのうち直前のパケットとステップＳ１１において読み出したパケットの受信時刻の差を算出する（ステップＳ３１）。そして、ＤＢチャンク解析部３０３は、算出した差が所定の閾値を超えているか判断する（ステップＳ３３）。
【００４７】
そして、ＤＢチャンク解析部３０３は、算出した差が所定の閾値を超えていない場合（ステップＳ３３：Ｎｏルート）、次のパケットについて処理を実施するため、処理は端子Ｃを介して図１４のステップＳ１１に戻る。
【００４８】
一方、算出した差が所定の閾値を超えている場合（ステップＳ３３：Ｙｅｓルート）、ＤＢチャンク解析部３０３は、同じコネクションのパケットのうち直前のパケットについて、受信時刻の情報と種別Ｅｎｄ（終了）とチャンクＩＤとを含むＤＢチャンクデータを生成し、当該ＤＢチャンクデータをＤＢチャンクデータ格納部３０５に格納する（ステップＳ３５）。チャンクＩＤは、ステップＳ２１において特定されたコネクション番号及び当該コネクション番号に対応付けてチャンク番号格納部３０６に格納されているチャンク番号を含むチャンクＩＤである。そして、ＤＢチャンク解析部３０３は、ステップＳ２１において特定されたコネクション番号に対応付けてチャンク番号格納部３０６に格納されているチャンク番号を１インクリメントする（ステップＳ３７）。
【００４９】
そして、ＤＢチャンク解析部３０３は、ステップＳ１１で読み出したパケットについて、受信時刻の情報と種別Ｂｅｇｉｎ（開始）とチャンクＩＤとを含むＤＢチャンクデータを生成し、当該ＤＢチャンクデータをＤＢチャンクデータ格納部３０５に格納する（ステップＳ３９）。チャンクＩＤは、ステップＳ１９又はステップＳ２１で特定されたコネクション番号、及び当該コネクション番号に対応付けてチャンク番号格納部３０６に格納されているチャンク番号を含むチャンクＩＤである。なお、パケットデータ格納部３０２に格納されている先頭のパケットが、ＤＢチャンクの最初のパケットであるとは限らない。しかし、本実施の形態では、最初であるか否かを確認できないので、最初のＤＢチャンクについては以下の処理では用いないものとする。
【００５０】
そして、ＤＢチャンク解析部３０３は、パケットデータ格納部３０２に格納されている全てのパケットを処理したか判断する（ステップＳ４１）。全てのパケットを処理していない場合（ステップＳ４１：Ｎｏルート）、次のパケットについて処理を実施するため、処理は端子Ｃを介して図１４のステップＳ１１に戻る。一方、全てのパケットを処理している場合（ステップＳ４１：Ｙｅｓルート）、元の処理に戻る。
【００５１】
以上のような処理を実施することにより、ＡＰ−ＤＢ間のパケットのペイロードに含まれるトランザクションＩＤ等を用いることができず、リクエストメッセージとそれに対するレスポンスメッセージとを対応付けることができない場合であっても、ＤＢサーバ１３における処理の塊を特定することができる。
【００５２】
なお、ＤＢチャンク解析処理の変形例として、以下のような処理を実施してもよい。例えば、最初に、パケットデータ格納部３０２から、ＡＰ−ＤＢ間のパケットをすべて読み出し、当該パケットに対してコネクション番号の付与を行ってしまう。その後、受信時刻の早いパケットから順番に、同じコネクションに係るパケットであって、直前又は直後のパケットとの上り下りの関係を判断したり、受信時刻の差が所定の閾値を超えるかを判断する。このような処理であっても、上で述べた処理と同じ処理結果を得ることができる。
【００５３】
次に、図１８乃至２１を用いて、呼出関係解析処理について説明する。呼出関係解析処理では、ＡＰサーバ１１に対するリクエストメッセージの受信時刻と対応するレスポンスメッセージの受信時刻との間に包含されるＤＢチャンクについてチャンク処理時間を算出し、当該チャンク処理時間の総和をＤＢサーバ１３の処理時間として算出する。
【００５４】
図１８に、ＤＢサーバ１３の処理時間を算出する方法を説明するための模式図を示す。図中、上から下へ向かって時間が進行するものとする。左右方向の矢印はメッセージが送信されていることを示し、トランザクション１に係るメッセージは実線で、トランザクション２に係るメッセージは点線で示されている。トランザクション１において、ＨＴＴＰリクエストメッセージＨ１に対応するＨＴＴＰレスポンスメッセージはＨ３であり、ＩＩＯＰリクエストメッセージＩ１に対応するＩＩＯＰレスポンスメッセージはＩ３である。また、トランザクション２において、ＨＴＴＰリクエストメッセージＨ２に対応するＨＴＴＰレスポンスメッセージはＨ４であり、ＩＩＯＰリクエストメッセージＩ２に対応するＩＩＯＰレスポンスメッセージはＩ４である。ＡＰ−ＤＢ間についてはリクエストメッセージとレスポンスメッセージとの対応付けはされていないが、ＤＢチャンクが４つ特定されている。Ｔ１はＤＢチャンク１における最初のパケットの受信時刻と最後のパケットの受信時刻との差に相当する。Ｔ２、Ｔ３、Ｔ４も同様に算出される。
【００５５】
例えばトランザクション１におけるＤＢサーバの処理時間を算出する場合、Ｉ１とＩ３との間に包含されているＤＢチャンクはＤＢチャンク１、ＤＢチャンク２及びＤＢチャンク３であるので、Ｔ１、Ｔ２及びＴ３を用いて処理時間を算出する。但し、ＤＢチャンク２及びＤＢチャンク３については、Ｉ２とＩ４との間にも包含されているので、トランザクション２におけるＤＢサーバの処理を含んでいる可能性がある。そこで、トランザクション１におけるＤＢサーバの処理時間は、Ｔ１／１（＝包含元トランザクション（トランザクション１）の数）＋Ｔ２／２（＝包含元トランザクション（トランザクション１及び２）の数）＋Ｔ３／２（＝包含元トランザクション（トランザクション１及び２）の数）として算出する。すなわち、注目しているＤＢチャンクにおける最初のパケットの受信時刻と最後のパケットの受信時刻との差を、当該注目しているＤＢチャンクを包含するトランザクションの数で除することによりチャンク処理時間を算出し、当該チャンク処理時間の総和をＤＢサーバの処理時間としている。トランザクション２についても、同様に、Ｔ２／２＋Ｔ３／２＋Ｔ４／１としてＤＢサーバの処理時間を算出する。
【００５６】
次に、図１９乃至図２１を用いて、呼出関係解析処理の内容を詳細に説明する。まず、呼出関係解析部３０７は、トランザクションデータ格納部３１９に格納されている未処理のトランザクションデータを１つ分読み出し、トランザクションＩＤとＩＩＯＰリクエスト時刻の情報とＩＩＯＰレスポンス時刻の情報とを特定する（図１９：ステップＳ５１）。そして、呼出関係解析部３０７は、ＤＢチャンクデータ格納部３０５から、種別が「Ｂｅｇｉｎ」であるパケットの受信時刻がＩＩＯＰリクエスト時刻よりも後であり、且つ同じチャンクＩＤで種別が「Ｅｎｄ」であるパケットの受信時刻がＩＩＯＰレスポンス時刻よりも前であるＤＢチャンクのチャンクＩＤを特定し、当該チャンクＩＤをステップＳ５１で特定したトランザクションＩＤに対応付けて包含関係データ格納部３０９に格納する（ステップＳ５３）。
【００５７】
図２０に、包含関係データ格納部３０９に格納されるデータの一例を示す。図２０の例では、トランザクションＩＤ毎に、当該トランザクションＩＤに係るトランザクションに包含される１又は複数のＤＢチャンクのチャンクＩＤとが格納されるようになっている。例えば１行目のレコードは、トランザクションＩＤが１であるトランザクションは、チャンクＩＤが１−１であるＤＢチャンクと、チャンクＩＤが１−２であるＤＢチャンクと、チャンクＩＤが２−１であるＤＢチャンクとを包含していることを示している。
【００５８】
図１９の説明に戻り、呼出関係解析部３０７は、ステップＳ５３で特定したチャンクＩＤに対応付けてＤＢチャンクデータ格納部３０５に格納されている種別「Ｅｎｄ」のパケットの受信時刻と種別「Ｂｅｇｉｎ」のパケットの受信時刻との差を算出し、算出結果をチャンクＩＤに対応付けて振り分けデータ格納部３０８に格納する（ステップＳ５５）。ステップＳ５３で特定したチャンクＩＤが複数ある場合には、それぞれのチャンクＩＤについて処理が実施される。なお、既に差が算出されているＤＢチャンクについては、ステップＳ５５の処理をスキップする。
【００５９】
図２１に、振り分けデータ格納部３０８に格納されるデータの一例を示す。図２１の例では、チャンクＩＤの列と、時間の列と、振り分け数の列とが含まれる。なお、「時間」とはＤＢチャンクにおける最初のパケットの受信時刻と最後のパケットの受信時刻との差である。「振り分け数」とはＤＢチャンクを包含するトランザクションの数であり、初期値は「０」である。
【００６０】
図１９の説明に戻り、呼出関係解析部３０７は、ステップＳ５３で特定したチャンクＩＤに対応付けて振り分けデータ格納部３０８に格納されている振り分け数を１インクリメントする（ステップＳ５７）。ステップＳ５３で特定したチャンクＩＤが複数ある場合には、それぞれのチャンクＩＤについて処理が実施される。そして、呼出関係解析部３０７は、全トランザクションデータを処理したか判断する（ステップＳ５９）。全トランザクションデータを処理したわけではない場合（ステップＳ５９：Ｎｏルート）、次のトランザクションデータについて処理を実施するため、ステップＳ５１の処理に戻る。
【００６１】
一方、全トランザクションデータを処理した場合（ステップＳ５９：Ｙｅｓルート）、呼出関係解析部３０７は、包含関係データ格納部３０９から未処理の包含関係データを１つ分読み出し、トランザクションＩＤと１又は複数のチャンクＩＤとを特定する（ステップＳ６１）。そして、呼出関係解析部３０７は、特定したチャンクＩＤについて、当該チャンクＩＤに対応付けて振り分けデータ格納部３０８に格納されている時間及び振り分け数を特定し、当該時間を当該振り分け数で除することによりチャンク処理時間を算出し、当該チャンク処理時間の総和をＤＢサーバ１３の処理時間として算出する（ステップＳ６３）。この処理は図１８を用いて説明したとおりである。
【００６２】
そして、呼出関係解析部３０７は、ステップＳ６１で特定したトランザクションＩＤを含み且つトランザクションデータ格納部３１９に格納されているトランザクションデータと、ステップＳ６３で算出したＤＢサーバ１３の処理時間とを含む解析結果のデータを解析結果格納部３１０に格納する（ステップＳ６５）。解析結果格納部３１０に格納されているデータの一例については上で説明しているので、ここでは説明を省略する。
【００６３】
そして、呼出関係解析部３０７は、全包含関係データを処理したか判断する（ステップＳ６７）。全包含関係データを処理したわけではない場合（ステップＳ６７：Ｎｏルート）、次の包含関係データについて処理を実施するため、ステップＳ６１の処理に戻る。一方、全包含関係データを処理した場合（ステップＳ６７：Ｙｅｓルート）、元の処理に戻る。
【００６４】
以上のような処理を実施することにより、個別のＤＢチャンクの内容を解析できずＤＢサーバ１３におけるＤＢチャンクがどのトランザクションに係るＤＢチャンクであるか特定できない場合であっても、受信時刻に基づき特定される、トランザクションとＤＢチャンクとの包含関係に基づき、各トランザクションについてＤＢサーバ１３の処理時間を算出することができるようになる。
【００６５】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したシステム分析装置３の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
【００６６】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６７】
なお、本実施の形態ではＷｅｂサーバ９、ＡＰサーバ１１及びＤＢサーバ１３からなるウェブ３階層システムを分析する例を示したが、このような例に限られるわけではなく、同じように階層構造を有するシステムであれば分析を行うことが可能である。
【００６８】
また、ＤＢチャンクにおける最初の上りパケットの受信時刻と最後の下りパケットの受信時刻との差を、当該ＤＢチャンクを包含するトランザクションに均等に配分しているが、例えば重み付けを行い、特定のトランザクションに多く又は少なく配分するようにしてもよい。
【００６９】
また、チャンクＩＤは例えば「２−１」などのようにコネクション番号及びチャンク番号から生成する例を示したが、単純に「１」「２」「３」というような識別番号を用いるようにしてもよい。この場合、チャンク番号格納部３０６の代わりに、例えばコネクション毎に現在何番の識別番号を使用しているかを管理するようなテーブルを用いればよい。
【００７０】
なお、システム分析装置３、ユーザ端末７、Ｗｅｂサーバ９、ＡＰサーバ１１及びＤＢサーバ１３は、図２２に示すように、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。ＯＳ及びＷｅｂブラウザを含むアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。このようなコンピュータは、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７１】
また、上で述べたような処理をハードウエアに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【００７２】
以上本実施の形態をまとめると以下のようになる。
【００７３】
本システム分析方法は、ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法である。そして、本方法は、（ａ）複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ上位階層サーバから下位階層サーバへの下りパケット及び下位階層サーバから上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす上りパケット及び下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、（ｂ）特定された組み合わせのうち特定の組み合わせに含まれる上りパケットから、特定の組み合わせの直後の組み合わせに含まれる下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、特定の組み合わせに含まれる上りパケットの受信時刻と特定の組み合わせの直後の組み合わせに含まれる下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、（ｃ）下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、チャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻とが共に含まれるチャンクのチャンクＩＤをチャンク・データ格納部から特定し、処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納するステップと、（ｄ）下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての処理ＩＤに対応付けて包含関係データ格納部に格納されている各チャンクＩＤについて、当該チャンクＩＤに対応付けてチャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、（ｅ）特定の処理について算出されたチャンク処理時間の総和を求めることにより、特定の処理における上位階層サーバの処理時間を算出し、特定の処理についての処理ＩＤに対応付けて解析結果格納部に格納するステップとを含む。
【００７４】
本方法では、下位階層サーバ（実施の形態におけるＡＰサーバ）と上位階層サーバ（実施の形態におけるＤＢサーバ）とのデータ通信が暗号化されていてトランザクションＩＤなどのデータを取得できないため、おおまかには以下のような処理を実施する。すなわち、（１）下位階層サーバと上位階層サーバとのパケットのやりとりから上位階層サーバの処理の塊（実施の形態におけるＤＢチャンク）を特定し（上の（ａ）及び（ｂ））、（２）また逆に下位階層サーバの処理の塊（例えばトランザクション）に包含される、上位階層サーバの処理の塊を特定し（上の（ｃ））、（３）当該上位階層サーバの処理の塊の時間を用いて、下位階層サーバの処理の塊の間に行われる当該下位階層サーバの処理のための、上位階層サーバの処理時間を算出する（上の（ｄ）及び（ｅ））。
【００７５】
このように、本方法では、例えばトランザクションＩＤなど、リクエストメッセージとレスポンスメッセージとの対応付けを行うためのデータをパケットのペイロードから取得することなく、上位階層サーバの処理時間を算出し、稼働状況を分析することができる。
【００７６】
また、上で述べたシステム分析方法が、特定の処理について、下位階層サーバに対する特定の処理要求のパケットを受信した時刻と当該処理要求のパケットに対応する応答のパケットを受信した時刻との差を第１の応答時間として算出するステップと、特定の処理について算出された第１の応答時間から、特定の処理についての処理ＩＤに対応付けて解析結果格納部に格納されている上位階層サーバの処理時間を差し引くことにより、特定の処理における下位階層サーバの処理時間を算出し、特定の処理についての処理ＩＤに対応付けて算出結果格納部に格納するステップとをさらに含むようにしてもよい。
【００７７】
このようにすれば、上位階層サーバについて算出した処理時間を用いて、下位階層サーバについても処理時間を算出し、稼働状況を分析することができるようになる。
【００７８】
また、上で述べた算出ステップが、チャンクＩＤに対応付けてチャンク・データ格納部に格納されている上りパケットの受信時刻と下りパケットの受信時刻との差を、チャンクＩＤに対応付けて包含関係データ格納部に格納されている処理ＩＤの数で除することによりチャンク処理時間を算出するステップを含むようにしてもよい。上位階層サーバの処理の塊を包含する下位階層サーバの処理の塊が複数ある場合には、上位階層サーバの処理の塊における処理時間を、各下位階層サーバの処理の塊に均等配分するものである。
【００７９】
また、所定の条件が、送信先ＩＰアドレス、送信元ＩＰアドレス、送信先ポート番号及び送信元ポート番号により特定されるコネクションが同一であり、且つ送信先ポート番号がデータベースサーバとアプリケーションサーバとの間の通信であることを示す番号であるという条件であってもよい。サーバ間では複数のコネクションを張って複数の処理に係るパケットを並行して送受信するのが普通であり、同じコネクション上のパケットについて処理の塊を特定しなければ、全く関係の無い処理に係るパケットを同じ処理の塊に含めてしまうことになるからである。
【００８０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８１】
（付記１）
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するための処理をコンピュータに実行させるためのシステム分析プログラムであって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクＩＤを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納するステップと、
前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理ＩＤに対応付けて前記包含関係データ格納部に格納されている各前記チャンクＩＤについて、当該チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて解析結果格納部に格納するステップと、
を前記コンピュータに実行させるためのシステム分析プログラム。
【００８２】
（付記２）
前記特定の処理について、前記下位階層サーバに対する前記特定の処理要求のパケットを受信した時刻と当該処理要求のパケットに対応する応答のパケットを受信した時刻との差を第１の応答時間として算出するステップと、
前記特定の処理について算出された前記第１の応答時間から、前記特定の処理についての処理ＩＤに対応付けて前記解析結果格納部に格納されている前記上位階層サーバの処理時間を差し引くことにより、前記特定の処理における前記下位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて算出結果格納部に格納するステップと、
をさらに含む付記１記載のシステム分析プログラム。
【００８３】
（付記３）
前記算出ステップが、
前記チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を、前記チャンクＩＤに対応付けて前記包含関係データ格納部に格納されている前記処理ＩＤの数で除することによりチャンク処理時間を算出するステップ
を含む付記１記載のシステム分析プログラム。
【００８４】
（付記４）
前記所定の条件が、送信先ＩＰアドレス、送信元ＩＰアドレス、送信先ポート番号及び送信元ポート番号により特定されるコネクションが同一であり、且つ前記送信先ポート番号がデータベースサーバとアプリケーションサーバとの間の通信であることを示す番号であるという条件である
付記１記載のシステム分析プログラム。
【００８５】
（付記５）
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するシステム分析装置であって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定し、特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納する手段と、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクＩＤを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納し、前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理ＩＤに対応付けて前記包含関係データ格納部に格納されている各前記チャンクＩＤについて、当該チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出すると共に、前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて解析結果格納部に格納する手段と、
を有するシステム分析装置。
【００８６】
（付記６）
ユーザ端末からの要求に応じて連携して処理を行う複数のサーバ間で送受信されるメッセージを受信してシステムの稼働状況を分析するためのコンピュータにより実行されるシステム分析方法であって、
前記複数のサーバのうち上位階層サーバと当該上位階層サーバに対して処理要求を行う下位階層サーバとの間で送受信され且つ前記上位階層サーバから前記下位階層サーバへの下りパケット及び前記下位階層サーバから前記上位階層サーバへの上りパケットと当該下りパケット又は上りパケットの受信時刻の情報とが対応付けて格納されているパケット格納部に格納されており且つ所定の条件を満たす前記上りパケット及び前記下りパケットのうち、基準となる下りパケットと、当該基準となる下りパケットの直後の上りパケットであって且つ当該基準となる下りパケットとの受信時刻の差が所定の閾値以上である上りパケットとの組み合わせを複数特定するステップと、
特定された前記組み合わせのうち特定の組み合わせに含まれる前記上りパケットから、前記特定の組み合わせの直後の組み合わせに含まれる前記下りのパケットまでのチャンクを特定するチャンクＩＤに対応付けて、前記特定の組み合わせに含まれる前記上りパケットの受信時刻と前記特定の組み合わせの直後の組み合わせに含まれる前記下りパケットの受信時刻とをチャンク・データ格納部に格納するステップと、
前記下位階層サーバに対する処理要求のパケットを受信した時刻と当該処理要求に対応する応答のパケットを受信した時刻との間に、前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻とが共に含まれる前記チャンクのチャンクＩＤを前記チャンク・データ格納部から特定し、前記処理要求に応答して実施される処理を識別するための処理ＩＤに対応付けて包含関係データ格納部に格納するステップと、
前記下位階層サーバに対する特定の処理要求に応答して実施される特定の処理についての前記処理ＩＤに対応付けて前記包含関係データ格納部に格納されている各前記チャンクＩＤについて、当該チャンクＩＤに対応付けて前記チャンク・データ格納部に格納されている前記上りパケットの受信時刻と前記下りパケットの受信時刻との差を用いてチャンク処理時間を算出する算出ステップと、
前記特定の処理について算出された前記チャンク処理時間の総和を求めることにより、前記特定の処理における前記上位階層サーバの処理時間を算出し、前記特定の処理についての前記処理ＩＤに対応付けて解析結果格納部に格納するステップと、
を含むシステム分析方法。
【符号の説明】
【００８７】
１  ネットワーク    ３  システム分析装置
５  スイッチ    ７  ユーザ端末
９  Ｗｅｂサーバ    １１  ＡＰサーバ
１３  ＤＢサーバ
３０１  パケットキャプチャ部    ３０２  パケットデータ格納部
３０３  ＤＢチャンク解析部    ３０４  コネクション管理データ格納部
３０５  ＤＢチャンクデータ格納部    ３０６  チャンク番号格納部
３０７  呼出関係解析部    ３０８  振り分けデータ格納部
３０９  包含関係データ格納部    ３１０  解析結果格納部
３１１  処理時間算出部    ３１２  算出結果格納部
３１３  出力部    ３１４  メッセージ解析部
３１５  プロトコルログ格納部    ３１６  モデル生成部
３１７  モデル格納部    ３１８  マッチング処理部
３１９  トランザクションデータ格納部
【図１】
2010218185.tif 000003
【図２】
2010218185.tif 000004
【図３】
2010218185.tif 000005
【図４】
2010218185.tif 000006
【図５】
2010218185.tif 000007
【図６】
2010218185.tif 000008
【図７】
2010218185.tif 000009
【図８】
2010218185.tif 000010
【図９】
2010218185.tif 000011
【図１０】
2010218185.tif 000012
【図１１】
2010218185.tif 000013
【図１２】
2010218185.tif 000014
【図１３】
2010218185.tif 000015
【図１４】
2010218185.tif 000016
【図１５】
2010218185.tif 000017
【図１６】
2010218185.tif 000018
【図１７】
2010218185.tif 000019
【図１８】
2010218185.tif 000020
【図１９】
2010218185.tif 000021
【図２０】
2010218185.tif 000022
【図２１】
2010218185.tif 000023
【図２２】
2010218185.tif 000024