(57)【特許請求の範囲】
【請求項１】
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第１の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第１の時間を算出するとともに、複数の応答データの応答時刻に基づいて第２の時間を算出し、
算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力する
処理をコンピュータに実行させるプログラム。
【請求項２】
各要求データの要求時刻間の時間を加算することにより第１の時間を算出し、各応答データの応答時刻間の時間を加算することにより第２の時間を算出する
請求項１に記載のプログラム。
【請求項３】
各要求データの要求時刻間の時間を加算し、前記計数値で除すことにより第１の時間を算出し、各応答データの応答時刻間の時間を加算し、前記計数値で除すことにより第２の時間を算出する
請求項１に記載のプログラム。
【請求項４】
要求データの要求時刻及び応答データの応答時刻を取得する取得部と、
該取得部により取得した一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数する計数部と、
該計数部により計数した計数値が第１の閾値を超える場合に、複数の要求データの要求時刻に基づいて第１の時間を算出すると共に、複数の応答データの応答時刻に基づいて第２の時間を算出する算出部と、
該算出部により算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力する出力部と
を備える情報処理装置。
【請求項５】
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第１の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第１の時間を算出すると共に、複数の応答データの応答時刻に基づいて第２の時間を算出し、
算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御部を有するコンピュータにより情報処理を行うプログラム、情報処理装置、及び、情報処理方法に関する。
【背景技術】
【０００２】
ネットワーク上を流れる通信パケットに基づき、処理要求に対する各コンピュータの処理時間及び応答時間を分析することで遅延箇所を特定する技術が知られている（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１１６８３号公報
【特許文献２】特開２０１１−１２８９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術では、業務モデル別の各階層の処理時間内訳から特定のＵＲＬ（UniformResource Locator）に対する遅延を求めることは可能だが、処理間の影響を把握できない。また特許文献２の技術は、処理要求滞在数の頻度分布に基づき遅延を判断するため、処理要求滞在数の制限に伴う飽和がない場合、遅延を判断できない。
【０００５】
１つの側面では、本発明は、遅延を引き起こしている処理を特定することが可能なプログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に開示するプログラムは、要求データの要求時刻及び応答データの応答時刻を取得し、一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、計数した計数値が第１の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第１の時間を算出するとともに、複数の応答データの応答時刻に基づいて第２の時間を算出し、算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力する処理をコンピュータに実行させる。
【発明の効果】
【０００７】
本願の一態様によれば、遅延を引き起こしている処理を特定することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの概要を示す説明図である。
【図２】情報処理装置のハードウェア群を示すブロック図である。
【図３】履歴ファイルのレコードレイアウトを示す説明図である。
【図４】プロトコル及びメッセージＩＤによるソート処理を示す説明図である。
【図５】ＵＲＬによるソート処理を示す説明図である。
【図６】抽出処理後のレコードを示す説明図である。
【図７】データの記憶処理手順を示すフローチャートである。
【図８】遅延判断処理の手順を示すフローチャートである。
【図９】遅延判断処理の手順を示すフローチャートである。
【図１０】履歴ファイルのレコードレイアウトを示す説明図である。
【図１１】プロトコル及びメッセージＩＤによるソート処理を示す説明図である。
【図１２】ＵＲＬによるソート処理を示す説明図である。
【図１３】ＦＩＦＯに違反するグループの排除処理手順を示すフローチャートである。
【図１４】ＦＩＦＯに違反するグループの排除処理手順を示すフローチャートである。
【図１５】遅延情報の出力画面のイメージを示す説明図である。
【図１６】他の画面データの表示形態を示す説明図である。
【図１７】遅延状況を示すグラフである。
【図１８】遅延情報の出力処理の手順を示すフローチャートである。
【図１９】遅延情報の出力処理の手順を示すフローチャートである。
【図２０】上述した形態の情報処理装置の動作を示す機能ブロック図である。
【図２１】実施の形態３に係る情報処理装置のハードウェア群を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１
以下実施の形態を、図面を参照して説明する。図１は情報処理システムの概要を示す説明図である。情報処理システムは情報処理装置１、クライアントコンピュータ２１、２２、２３（以下、場合により２で代表する）、サーバコンピュータ３１、３２、３３（以下、場合により３で代表する）及びスイッチ４等を含む。サーバコンピュータ３は例えばＷｅｂサーバコンピュータ３１、アプリケーションサーバコンピュータ３２またはデータベース（以下ＤＢという）サーバコンピュータ３３等である。なお、本実施形態ではクライアントコンピュータ２及びサーバコンピュータ３の数を３としているが、一例でありこれに限るものではない。
【００１０】
情報処理装置１は例えばサーバコンピュータまたはパーソナルコンピュータである。情報処理装置１、各サーバコンピュータ３はスイッチ４を介して相互に接続されている。またスイッチ４はインターネットまたはＬＡＮ(Local Area Network)等の通信網Ｎを介してクライアントコンピュータ２と接続されている。Ｗｅｂサーバコンピュータ３１、アプリケーションサーバコンピュータ３２、及びＤＢサーバコンピュータ３３は、クライアントコンピュータ２１，２２，２３からの要求に応じて、サービスを提供する。
【００１１】
サービスを提供する為のトランザクションにおいて、Ｗｅｂサーバコンピュータ３１、アプリケーションサーバコンピュータ３２、及びＤＢサーバコンピュータ３３間で、スイッチ４を介してメッセージの送受信が行われる場合がある。このスイッチ４を介して送受信されるメッセージを情報処理装置１が監視することで、システムの動作状態の分析を行う。スイッチ４は自身を通過するデータをミラーリングする機能を有している。ミラーリングとは、あるポートに出力されるデータと同じデータを、他のポートからも出力する機能である。
【００１２】
例えばＷｅｂサーバコンピュータ３１が接続されたポート、アプリケーションサーバコンピュータ３２が接続されたポート、及びＤＢサーバコンピュータ３３が接続されたポートのミラーリング先として、情報処理装置１が接続されたポートが指定されている。これにより、各サーバコンピュータ３宛のパケットは宛先となるサーバコンピュータ３に入力されるとともに、情報処理装置１にも入力される。
【００１３】
例えば、クライアントコンピュータ２１の要求に応じて、各サーバコンピュータ３が連動してサービスを提供する場合を想定する。この場合、まず、クライアントコンピュータ２１からＷｅｂサーバコンピュータ３１に対し、ＨＴＴＰ(HyperText Transfer Protocol)パケットが送信される。このとき、ＨＴＴＰパケットと同内容のＨＴＴＰパケットが情報処理装置１に入力される。次に、Ｗｅｂサーバコンピュータ３１からアプリケーションサーバコンピュータ３２へＩＩＯＰ（Internet Inter-ORB Protocol）パケットが送信される。
【００１４】
この場合、ＩＩＯＰパケットと同内容のＩＩＯＰパケットが情報処理装置１に入力される。さらに、アプリケーションサーバコンピュータ３２からＤＢサーバコンピュータ３３へ、ＤＢアクセスパケットが送信された場合、ＤＢアクセスパケットと同内容のＤＢアクセスパケットが情報処理装置１に入力される。
【００１５】
情報処理装置１は処理の要求を示すパケット（以下、要求データという）と、要求データに対応して処理が行われた応答を示すパケット（以下、応答データという）とに基づき、遅延を検出する。情報処理装置１は要求データを受信する度に要求時刻を記憶し、応答データを受信する度に応答時刻を記憶する。情報処理装置１は一の要求データの要求時刻から、当該一の要求データに対応する応答データの応答時刻までの間に、要求時刻を有する要求データを抽出する。情報処理装置１は抽出した要求データの要求時刻及び応答時刻を読み出す。情報処理装置１は複数の要求データの要求時刻間の第１の時間（以下、第１時間という）と、複数の応答データの応答時刻間の第2の時間（以下、第２時間という）とを比較する。情報処理装置１は第１時間と第２時間との差または比が第２の閾値（以下、第2閾値という）を超える場合に、遅延情報を出力する。以下詳細を説明する。
【００１６】
図２は情報処理装置１のハードウェア群を示すブロック図である。情報処理装置１は制御部（算出処理部）としてのＣＰＵ（Central Processing Unit）１１、ＲＡＭ（RandomAccess Memory）１２、入力部１３、表示部１４、記憶部１５、通信部１６及び時計部１８等を含む。ＣＰＵ１１は、バス１７を介してハードウェア各部と接続されている。ＣＰＵ１１は記憶部１５に記憶された制御プログラム１５Ｐに従いハードウェア各部を制御する。ＲＡＭ１２は例えばＳＲＡＭ（Static ＲＡＭ）、ＤＲＡＭ（Dynamic ＲＡＭ）、フラッシュメモリ等である。ＲＡＭ１２は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１７】
入力部１３はマウス、キーボード、またはタッチパネル等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ出力する。表示部１４は液晶ディスプレイまたは有機ＥＬ（electroluminescence）ディスプレイ等であり、ＣＰＵ１１の指示に従い各種情報を表示する。通信部１６は例えばＬＡＮカード等であり、スイッチ４との間で情報の送受信を行う他、通信網Ｎを介して他のコンピュータと情報の送受信を行う。時計部１８は現在時刻、または、任意の時点を起点とした経過時間をＣＰＵ１１へ出力する。記憶部１５は例えば、ハードディスクまたは大容量フラッシュメモリ等であり、制御プログラム１５Ｐ及び履歴ファイル１５１等を格納する。
【００１８】
図３は履歴ファイル１５１のレコードレイアウトを示す説明図である。履歴ファイル１５１はタイムスタンプフィールド、プロトコルフィールド、メッセージＩＤフィールド、メッセージ種別フィールド及びオブジェクトフィールド等を含む。タイムスタンプフィールドには、ＣＰＵ１１が要求データまたは応答データを、通信部１６を介して受信した際に、時計部１８から出力される現在時刻が記憶されている。なお、本実施形態では現在時刻を記憶する例を挙げて説明するがこれに限るものではない。例えば、任意の時刻を起点とした経過時刻をタイムスタンプフィールドに記憶しても良い。また以下では要求データを受信した際の時刻を要求時刻といい、応答データを受信した際の時刻を応答時刻という。ＣＰＵ１１は要求データ及び応答データを受信する度に、履歴ファイル１５１のタイムスタンプフィールドに要求時刻及び応答時刻を記憶する。
【００１９】
プロトコルフィールドには要求データ及び応答データのプロトコル種別が記憶されている。例えばプロトコルは、ＨＴＴＰまたはＳＱＬ(Structured Query Language)等である。メッセージＩＤフィールドは要求データ及び応答データを特定するためのＩＤが記憶される。メッセージ種別フィールドには、取得したデータが要求データであるか、または、応答データを示す情報が記憶される。図３の例ではメッセージ種別が要求と記憶されているのは要求データであり、応答と記憶されているのは応答データである。
【００２０】
オブジェクトフィールドには、プロトコルがＨＴＴＰであり、メッセージ種別が要求である場合に、要求データの要求先のＵＲＬが記憶されている。ＣＰＵ１１は要求データ及び応答データのヘッダに記述されたプロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを抽出し、履歴ファイル１５１に記憶する。例えば、タイムスタンプ０００（簡略化のため、場合により小数点以下を表示する）の場合、プロトコルはＨＴＴＰ、メッセージＩＤは１、メッセージ種別は要求、オブジェクトはＵＲＬ１となる。ここで、オブジェクトは、類似の要求をグルーピングするために、ＵＲＬの文字列から特定の文字列を抽出して記載してもよい。例えば、ＵＲＬのパス部分のみを抽出したり、ＵＲＬのパスといくつかの特定のＣＧＩパラメタを抽出して記載することができる。当該要求データに対応する応答データはタイムスタンプ０１５のフィールドに記憶されている。ＣＰＵ１１はプロトコル及びメッセージＩＤが一致するメッセージ種別が要求の要求データと、メッセージ種別が応答の応答データを相互に対応するデータであると判断する。同様にプロトコルはＨＴＴＰであり、メッセージＩＤは１、メッセージ種別は応答と記憶されている。なお、本実施形態では履歴ファイル１５１を記憶部１５に設ける例を挙げたがこれに限るものではない。ＲＡＭ１２に記憶するほか、図示しない外部のＤＢに記憶しても良い。また、履歴ファイル１５１のデータレイアウトはあくまで一例であり、これに限るものではない。データ間の関係が維持されていれば、他の記憶形態であっても良い。
【００２１】
図４はプロトコル及びメッセージＩＤによるソート処理を示す説明図である。ＣＰＵ１１はプロトコルとメッセージＩＤとを同じくする要求データ及び応答データのレコードを抽出する。例えば、ＣＰＵ１１はプロトコルＨＴＴＰ、メッセージＩＤが１、タイムスタンプが０００の要求データと、タイムスタンプ０１５の応答データとを抽出する。またＣＰＵ１１はプロトコルＳＱＬ、メッセージＩＤが２、タイムスタンプが００７の要求データと、タイムスタンプ００９の応答データとを抽出する。ＣＰＵ１１は抽出した要求データと対応する応答データとの関係をＲＡＭ１２に記憶する。
【００２２】
ＣＰＵ１１は抽出した要求データの要求時刻と対応する応答データの応答時刻とに基づき、経過時間を算出する。具体的には応答時刻から要求時刻を減じることで経過時間を算出する。例えば、応答時刻（タイムスタンプ）０．０１５から、要求時刻０．０００を減じ、０．０１５を算出する。ＣＰＵ１１は算出した経過時間を要求データ及び応答データに対応づけてＲＡＭ１２に記憶する。
【００２３】
図５はＵＲＬによるソート処理を示す説明図である。ＣＰＵ１１はオブジェクトフィールドに記憶されたＵＲＬを参照し、抽出した要求データ及び応答データの組み合わせをグループ化する。ここで、ファーストインファーストアウト（以下、ＦＩＦＯという）の条件も加味してグループ化する。なお、図３及び図４では記載を省略したが、図５において、ＦＩＦＯ違反の例を示すべく、タイムスタンプが01.000〜01.018、オブジェクトがＵＲＬ２のレコードをも追加した。図５の例では、オブジェクトＵＲＬ１のグループ、オブジェクトが記憶されていないグループ（プロトコルがＳＱＬの要求データと応答データ）、及び、オブジェクトＵＲＬ２のグループが２つの、計４つに分けられる。ここで、ＣＰＵ１１は記憶部１５から閾時間（所定時間、例えば0.005秒）を読み出し、ＣＰＵ１１は経過時間が閾時間を越える要求データと応答データのみの組み合わせのみをグループとして抽出してもよい。図５の例では、閾時間0.005以上の経過時間が記憶された要求データおよび応答データの組み合わせのみがグループとして抽出される。ＣＰＵ１１はグループ化した要求データの内、最先の要求データに係る要求時刻と当該要求時刻に対応する応答時刻とを読み出す。ＣＰＵ１１は読み出した要求時刻と応答時刻との間に、要求時刻及び応答時刻の双方を有する他の要求データ及び応答データが存在するか否かを判断する。ＣＰＵ１１は存在すると判断した場合、当該グループについてはＦＩＦＯ違反であるとして、遅延処理を行うことなく処理を終了する。図５の例では、ＣＰＵ１１は、最先の要求データに係る要求時刻１．０００と応答時刻１．０１６とを読み出す。ここで、メッセージＩＤ５の要求時刻は、１．００６、応答時刻は１．０１２であり、当該要求時刻及び応答時刻の双方が、最先の要求データに係る要求時刻１．０００と応答時刻１．０１６との間に存在する。この場合、ＣＰＵ１１は当該グループについて遅延処理を行うことなく処理を終了する。
【００２４】
なお、グループの抽出は、第１番目の要求データの要求時刻と応答時刻との間に要求時刻が存在する他の要求データ数に関する制約を前記方法に加えて行っても良い。ＣＰＵ１１は第１番目の要求データの要求時刻と応答時刻とを履歴ファイル１５１から読み出す。次いで、ＣＰＵ１１は読み出した要求時刻と応答時刻との間の要求時刻を有する要求データを計数する。ＣＰＵ１１は計数した計数値をＲＡＭ１２に記憶する。例えば、図３のタイムスタンプ０００の例では、計数値は２となる。すなわち第１番目の要求データの要求時刻０００と応答時刻０１５とを読み出す。ＣＰＵ１１は要求時刻００１、００８を有する２つの要求データを計数する。ＣＰＵ１１は記憶部１５から第１の閾値（以下、第１閾値という）を読み出す。第１閾値は例えば１である。ＣＰＵ１１は第１閾値を超える計数値を有するグループを抽出する。ＣＰＵ１１は抽出処理後のレコードをＲＡＭ１２に記憶する。
【００２５】
図６は抽出処理後のレコードを示す説明図である。ＣＰＵ１１は要求時刻間の時間を加算し第１時間を算出する。図６の例では要求時刻０００と要求時刻００１との間の時間(001)に、要求時刻００１と要求時刻００８との間の時間(007)を加算し、第１時間である０．００８（001＋007）を算出する。ＣＰＵ１１はＲＡＭ１２にグループに対応づけて０．００８を記憶する。同様に、ＣＰＵ１１は応答時刻間の時間を加算し第２時間を算出する。図６の例では応答時刻０１５と応答時刻０１６との間の時間(001)に、応答時刻０１６と応答時刻０１７との間の時間(001)を加算し、第２時間である０．００２（001＋001）を算出する。ＣＰＵ１１はＲＡＭ１２にグループに対応づけて０．００２を記憶する。
【００２６】
ＣＰＵ１１は第１時間と第２時間との差または比を算出する。本実施形態では比を用いた例を挙げて説明するが、差であっても良い。ＣＰＵ１１は第１時間を第２時間で除す。なお、第２時間を第１時間で除しても良い。ＣＰＵ１１は記憶部１５から第２閾値を読み出す。ＣＰＵ１１は除した値が第２閾値を超えるか否かを判断する。ＣＰＵ１１は除した値が第２閾値を超える場合に、遅延を示す遅延情報を出力する。なお、遅延情報の出力は、表示部１４への出力、図示しないスピーカ等への出力、通信網Ｎを介して接続される他のコンピュータへ出力しても良い。
【００２７】
以上のハードウェアにおいて、ソフトウェア処理を、フローチャートを用いて説明する。図７はデータの記憶処理手順を示すフローチャートである。ＣＰＵ１１はスイッチ４から送信された要求データのプロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを、通信部１６を介して受信する（ステップＳ７１）。ＣＰＵ１１は受信時に時計部１８から出力された要求時刻、プロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを履歴ファイル１５１に記憶する（ステップＳ７２）。なお、ＣＰＵ１１はメッセージ種別を参照し、データを要求データ、時刻を要求時刻と判断する。
【００２８】
ＣＰＵ１１はスイッチ４から送信された応答データのプロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを、通信部１６を介して受信する（ステップＳ７３）。ＣＰＵ１１は受信時に時計部１８から出力された応答時刻、プロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを履歴ファイル１５１に記憶する（ステップＳ７４）。なお、ＣＰＵ１１はメッセージ種別を参照し、データを応答データ、時刻を応答時刻と判断する。
【００２９】
図８及び図９は遅延判断処理の手順を示すフローチャートである。ＣＰＵ１１は履歴ファイル１５１にデータを記憶した後、一定時間毎、任意の時間または予め定めた適宜の時間に以下の処理を行う。ＣＰＵ１１は履歴ファイル１５１から要求データの要求時刻、プロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを取得する（読み出す）（ステップＳ８１）。ＣＰＵ１１は履歴ファイル１５１から応答データの応答時刻、プロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを取得する（読み出す）（ステップＳ８２）。
【００３０】
ＣＰＵ１１は取得した要求時刻、応答時刻、プロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトをＲＡＭ１２に展開する（ステップＳ８３）。ＣＰＵ１１はプロトコル及びメッセージＩＤを共通にする組み合わせを抽出する（ステップＳ８４）。ＣＰＵ１１はオブジェクトとＦＩＦＯに基づき、グループ化する（ステップＳ８５）。ＣＰＵ１１は要求時刻と応答時刻との組み合わせに基づき、経過時間を算出する（ステップＳ８６）。具体的にはグループ内の抽出された組み合わせに係る応答時刻から要求時刻を減じ、経過時間を算出する。
【００３１】
ＣＰＵ１１は記憶部１５から閾時間を読み出す（ステップＳ８７）。ＣＰＵ１１は経過時間が閾時間を超える組み合わせをステップＳ８５で作成したグループ内のデータから削除する（ステップＳ８８）。ＣＰＵ１１は抽出したグループの要求時刻が最も先の要求データ（一の要求データ）に係る要求時刻を読み出す（ステップＳ８９）。ＣＰＵ１１は当該先の要求データに対応する応答データに係る応答時刻をＲＡＭ１２から読み出す（ステップＳ９１）。
【００３２】
ＣＰＵ１１は読み出した先の要求データに係る要求時刻と応答時刻との間の要求時刻を有する要求データ数を、ＲＡＭ１２を参照し、計数する（ステップＳ９２）。ＣＰＵ１１は記憶部１５から第１閾値を読み出す（ステップＳ９３）。ＣＰＵ１１はステップＳ９２で計数した計数値が第１閾値を超えるか否か判断する（ステップＳ９４）。ＣＰＵ１１は第１閾値を超えないと判断した場合（ステップＳ９４でＮＯ）、処理を終了する。ＣＰＵ１１は第１閾値を超えると判断した場合（ステップＳ９４でＹＥＳ）、処理をステップＳ９５へ移行させる。
【００３３】
ＣＰＵ１１はＲＡＭ１２から第１閾値を超えないグループを削除する。ＣＰＵ１１はＲＡＭ１２に記憶した各要求時刻間の時間を加算し第１時間を算出する（ステップＳ９５）。具体的には、ＣＰＵ１１は相互に連続する要求時刻間の時間を求め、合計することで第１時間を算出する。なお、第１時間の算出は一例であり、複数の要求データに係る要求時刻を用いるものであれば、これに限るものではない。例えば、時刻が最も後の要求時刻からそれ以前のそれぞれの要求時刻を減じたものの総和で第１時間を算出しても良い。その他、ＣＰＵ１１は相互に連続する要求時刻間の時間の合計値、または、時刻が最も後の要求時刻から時刻が最も先の要求時刻を減じた値を、ステップＳ９２で計数した計数値で除すことにより第１時間を算出しても良い。
【００３４】
ＣＰＵ１１はＲＡＭ１２に記憶した各応答時刻間の時間を加算し第２時間を算出する（ステップＳ９６）。具体的には、ＣＰＵ１１は相互に連続する応答時刻間の時間を求め、合計することで第２時間を算出する。なお、第２時間の算出は一例であり、複数の応答データに係る応答時刻を用いるものであれば、これに限るものではない。例えば、時刻が最も後の応答時刻からそれ以前のそれぞれの応答時刻を減じたものの総和で第２時間を算出しても良い。その他、ＣＰＵ１１は相互に連続する応答時刻間の時間の合計値、または、時刻が最も後の応答時刻から時刻が最も先の応答時刻を減じた値を、ステップＳ９２で計数した計数値で除すことにより第２時間を算出しても良い。
【００３５】
ＣＰＵ１１は第１時間を第２時間で除算する（ステップＳ９７）。ＣＰＵ１１は記憶部１５から第２閾値を読み出す（ステップＳ９８）。ＣＰＵ１１は除算した値が第２閾値を超えるか否か判断する（ステップＳ９９）。なお、第２閾値は例えば２等である。ＣＰＵ１１は第２閾値を越えないと判断した場合（ステップＳ９９でＮＯ）、処理を終了する。ＣＰＵ１１はＲＡＭ１２に記憶したグループのレコードを消去する。ＣＰＵ１１は除算した値が第２閾値を超えると判断した場合（ステップＳ９９でＹＥＳ）、遅延していることを示す遅延情報を表示部１４または通信部１６を介して外部のコンピュータ（図示せず）へ出力する（ステップＳ９１０）。これにより、特定のサーバコンピュータ３の処理が全般的に遅延しているのか、或いは、当該サーバにおいて、特定の処理に起因して遅延しているのかを判別することが可能となる。
【００３６】
続いてＦＩＦＯ抽出処理について説明する。ＣＰＵ１１はグループ化した要求データの内、最先の要求データに係る要求時刻と応答時刻とを読み出す。ＣＰＵ１１は読み出した要求時刻と応答時刻との間に、要求時刻と応答時刻との双方を有する要求データ及び当該要求データに対応する応答データが記憶されている場合、遅延と判断せず、処理を終了する。
【００３７】
図１０は履歴ファイル１５１のレコードレイアウトを示す説明図である。履歴ファイル１５１は、タイムスタンプフィールド、プロトコルフィールド、メッセージＩＤフィールド、メッセージ種別フィールド及びオブジェクトフィールドを含む。
【００３８】
図１１はプロトコル及びメッセージＩＤによるソート処理を示す説明図である。ＣＰＵ１１はプロトコルとメッセージＩＤとを同じくする要求データ及び応答データのレコードを抽出する。例えば、ＣＰＵ１１はプロトコルＨＴＴＰ、メッセージＩＤが１、タイムスタンプが１．０００の要求データと、タイムスタンプ１．０１６の応答データとを抽出する。またＣＰＵ１１はプロトコルＳＱＬ、メッセージＩＤが１、タイムスタンプが１．００２の要求データと、タイムスタンプ１．００５の応答データとを抽出する。ＣＰＵ１１は抽出した要求データの要求時刻と対応する応答データの応答時刻とに基づき、経過時間を算出する。
【００３９】
図１２はＵＲＬによるソート処理を示す説明図である。ＣＰＵ１１はオブジェクトフィールドに記憶されたＵＲＬを参照し、抽出した要求データ及び応答データの組み合わせをグループ化する。図１２の例では、オブジェクトＵＲＬ２のグループ、オブジェクトが記憶されていないグループ（プロトコルがＳＱＬの要求データと応答データ）、及び、オブジェクトＵＲＬ１のグループの３つに分けられる。ここで、オブジェクトがＵＲＬ２のグループに着目する。ＣＰＵ１１はグループ化した要求データの内、最先の要求データに係る要求時刻１．０００と応答時刻１．０１６とを読み出す。ここで、メッセージＩＤが５の要求時刻は、１．００６、応答時刻は１．０１２であり、当該要求時刻及び応答時刻の双方が、最先の要求データに係る要求時刻１．０００と応答時刻１．０１６との間に存在する。この場合、ＣＰＵ１１は当該グループについて遅延処理を行うことなく処理を終了する。
【００４０】
図１３及び図１４はＦＩＦＯに違反するグループの排除処理手順を示すフローチャートである。ステップＳ８１〜Ｓ９１間での処理は上述したとおりであるので詳細な説明は省略する。ＣＰＵ１１はステップＳ９１の後、ＲＡＭ１２を参照し、最先の要求データに係る要求時刻と応答時刻との間に要求時刻と応答時刻を有する要求データ及び応答データの組み合わせが存在するか否かを判断する（ステップＳ１３１）。ＣＰＵ１１は存在しないと判断した場合（ステップＳ１３１でＮＯ）、処理をステップＳ９２へ移行させる。ステップＳ９２以降の処理は上述したとおりであるので、詳細な説明を省略する。
【００４１】
ＣＰＵ１１は組み合わせが存在すると判断した場合（ステップＳ１３１でＹＥＳ）、ＦＩＦＯに反するとして処理をステップＳ１３２へ移行させる。ＣＰＵ１１はＲＡＭ１２からステップＳ１３１において組み合わせが存在するグループに係るレコードをＲＡＭ１２から削除する（ステップＳ１３２）。ＣＰＵ１１はステップＳ１３１における処理を、ステップＳ８８で抽出した全てのグループについて実行したか否かを判断する（ステップＳ１３３）。ＣＰＵ１１は全てのグループについて処理を実行していないと判断した場合（ステップＳ１３３でＮＯ）、ステップＳ８９へ移行し、未処理のグループについて同様の処理を行う。
【００４２】
ＣＰＵ１１は全てのグループについて処理を実行したと判断した場合（ステップＳ１３３でＹＥＳ）、処理を終了する。この場合、ステップＳ９２で述べた計数処理、ステップＳ９５及びＳ９６における算出処理、並びに、ステップＳ９１０における出力処理が中止（スキップ）される。なお、本実施形態で追加したステップＳ１３１〜Ｓ１３３の処理は、ステップＳ９２〜Ｓ９４の計数処理の後に実行しても良い。この場合、ステップＳ９５及びＳ９６における算出処理、並びに、ステップＳ９１０における出力処理が中止される。また本実施形態で追加したステップＳ１３１〜Ｓ１３３の処理は、ステップＳ９５〜Ｓ９９の算出処理の後に実行しても良い。
【００４３】
この場合、ステップＳ９１０における出力処理が中止される。このようにＦＩＦＯに反するグループを除去することで、特定処理の遅延に起因しない遅延情報の出力を防止することが可能となる。  
【００４４】
実施の形態２
実施の形態２は遅延情報を出力する形態に関する。図１５は遅延情報の出力画面のイメージを示す説明図である。ＣＰＵ１１はステップＳ９９において第２閾値を超えると判断した場合、記憶部１５から遅延情報を表示するための画面データを読み出す。テンプレートとなる画面データには、図１５に示すように、「以下の要求データにより遅延が発生しています。」等の遅延が発生したことを示す情報が記憶されている。ＣＰＵ１１はステップＳ８９でＲＡＭ１２から読み出した最も先の要求データに係る要求時刻を読み出す。またＣＰＵ１１は要求データに対応するプロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを読み出す。ＣＰＵ１１はテンプレートとなる画面データに要求データに係る要求時刻（タイムスタンプ）、プロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトを記述する。ＣＰＵ１１は記述後の遅延情報を表示部１４へ出力する。
【００４５】
図１５の例では要求時刻が00:00:00.000、プロトコルがＨＴＴＰ、メッセージＩＤが１、メッセージ種別が要求、オブジェクトがＵＲＬ１と表示される。なお、これら全てを表示する必要はない。例えば、要求時刻のみを表示しても良い。なお、本実施形態では遅延情報の出力先を表示部１４としたがこれに限るものではない。例えば、ＣＰＵ１１は電子メールアドレスを記憶部１５に記憶しておき、遅延情報を出力する際に、記憶した電子メールアドレス宛に上述した記述済みの画面データを送信しても良い。またＣＰＵ１１は遅延情報を含む画面データを記憶部１５に記憶しておき、図示しない他のコンピュータから送信要求があった場合に、当該画面データを他のコンピュータへ送信しても良い。
【００４６】
図１６は他の画面データの表示形態を示す説明図である。さらにＣＰＵ１１はステップＳ８８で残ったグループの内、ステップＳ９９で第２閾値を超えると判断されたグループの各種データを表示しても良い。ＣＰＵ１１はグループの要求データ及び応答データに係るタイムスタンプ（要求時刻及び応答時刻）、プロトコル、メッセージＩＤ、メッセージ種別、オブジェクト、経過時間、第１時間及び第２時間を、記述する。なお、少なくとも要求データの要求時刻と応答データの応答時刻とを記述すればよい。他の表示項目については適宜追加するようにすればよい。図１６にはタイムスタンプの他、経過時間、第１時間及び第２時間もが表示される。
【００４７】
図１７は遅延状況を示すグラフである。ＣＰＵ１１はさらにＲＡＭ１２に記憶したデータに基づき、遅延状況をグラフ表示しても良い。横軸は時間、縦軸は要求または応答の有無を示す。実線は要求時刻０００及び応答時刻０１５の要求データ及び応答データを示す。点線は要求時刻００１及び応答時刻０１６の要求データ及び応答データを示す。一点鎖線は要求時刻００８及び応答時刻０１７の要求データ及び応答データを示す。ＣＰＵ１１は要求データの要求時刻及び応答データの応答時刻に基づき、時間的変化をグラフ表示する。ＣＰＵ１１は時間的変化の表示処理を各要求データ及び応答データの組み合わせが識別できるよう、相違する形態でグラフ表示する。例えば、本実施形態の如く、実線及び点線で識別するほか、着色により識別できるようにしても良い。
【００４８】
ＣＰＵ１１は要求データの要求時刻及び応答データの応答時刻を横軸上に記述する。またＣＰＵ１１はＲＡＭ１２から第１時間及び第２時間を読み出す。ＣＰＵ１１は時間的に最も先の第１番目の要求データの時刻と、時間的に最終の要求データの時刻との間に、第１時間を記述する。図１７の例では要求時刻０００と００８との間に、左右に伸びる双方向矢印が表示され、さらに第１時間０．００８と表示されている。ＣＰＵ１１は時間的に最も先の第１番目の応答データの時刻と、時間的に最終の応答データの時刻との間に、第２時間を記述する。図１７の例では要求時刻０１５と０１７との間に左右に伸びる双方向矢印が表示され、さらに第２時間０．００２と表示されている。
【００４９】
図１８及び図１９は遅延情報の出力処理の手順を示すフローチャートである。ＣＰＵ１１は第２閾値を超えるグループを抽出する（ステップＳ１８１）。具体的には、ステップＳ８８で抽出されたグループの内、ステップＳ９９で第２閾値を超えるグループを抽出する。ＣＰＵ１１は当該グループの要求データ及び応答データに係るタイムスタンプ、プロトコル、メッセージＩＤ、メッセージ種別及びオブジェクトをＲＡＭ１２から読み出す（ステップＳ１８２）。同様に、ＣＰＵ１１は要求データ及び応答データに係る経過時間、第１時間及び第２時間を読み出す（ステップＳ１８３）。なお、経過時間、第１時間及び第２時間はステップＳ８６、Ｓ９５及びＳ９６で算出され、ＲＡＭ１２に要求データ及び応答データに対応づけて記憶されているデータを利用すればよい。
【００５０】
ＣＰＵ１１は記憶部１５からテンプレートとなる画面データを読み出す（ステップＳ１８４）。テンプレートとなる画面データには、遅延が発生していることを示す文章が予め記述されている。ＣＰＵ１１は画面データに、タイムスタンプ、プロトコル、メッセージＩＤ、メッセージ種別、オブジェクト、経過時間、第１時間及び第２時間を記述する（ステップＳ１８５）。ＣＰＵ１１は記述後の画面データを表示部１４に図１６の如く表示する（ステップＳ１８６）。ＣＰＵ１１は入力部１３からグラフを表示する旨の要求を受け付けた場合、以下の処理を行う。
【００５１】
ＣＰＵ１１はテンプレートとなるグラフデータを読み出す（ステップＳ１８７）。テンプレートとなるグラフデータには、遅延が発生していることを示す文章の他、クライアントコンピュータ２とサーバコンピュータ３との間の通信状況を時系列で示すことができるよう横軸が予め記述されている。例えば下側をクライアントコンピュータ２、上側をサーバコンピュータ３とすれば良い。なお、グラフの表示例はあくまで一例であり、これに限るものではない。例えば、時計方向に９０度回転させても良い。すなわち、時間の経過方向を上から下へと定義し、左側をクライアントコンピュータ２、右側をサーバコンピュータ３としても良い。
【００５２】
ＣＰＵ１１はステップＳ１８２で読み出した要求データ及び応答データの要求時刻及び応答時刻に基づき、要求データ及び応答データの時間的変化を記述する（ステップＳ１８８）。具体的には要求時刻を起点とし、クライアントコンピュータ２の軸からサーバコンピュータ３の軸へと向かう矢印を記述する。またＣＰＵ１１は応答時刻を起点とし、サーバコンピュータ３の軸からクライアントコンピュータ２の軸へと向かう矢印を記述する。最後に要求データを示す線の矢印先端と、応答データを示す線の末端とを結ぶ線を記述する。
【００５３】
ＣＰＵ１１はステップＳ１８２で読み出した要求時刻及び応答時刻を記述する（ステップＳ１８９）。ＣＰＵ１１は全ての要求データ及び応答データに対するステップＳ１８８及びＳ１８９に対する処理が終了したか否かを判断する（ステップＳ１９１）。ＣＰＵ１１は全ての処理が終了していないと判断した場合（ステップＳ１９１でＮＯ）、処理をステップＳ１８８に戻し、他の組み合わせに係る要求データ及び応答データに対する処理を行う。ＣＰＵ１１はステップＳ１８８の処理を実行する際、既に記述済みの線と識別することができる線を記述する。
【００５４】
ＣＰＵ１１はグループ内の全ての要求データ及び応答データに対する処理が終了したと判断した場合（ステップＳ１９１でＹＥＳ）、処理をステップＳ１９２へ移行させる。ＣＰＵ１１は、ステップＳ１８３で読み出した第１時間を読み出す（ステップＳ１９２）。ＣＰＵ１１は最初の要求時刻及び最終の要求時刻をＲＡＭ１２から読み出す（ステップＳ１９３）。ＣＰＵ１１は第１時間を最初の要求時刻と最終の要求時刻との間に記述する（ステップＳ１９４）。ＣＰＵ１１は、ステップＳ１８３で読み出した第２時間を読み出す（ステップＳ１９５）。ＣＰＵ１１は最初の応答時刻及び最終の応答時刻をＲＡＭ１２から読み出す（ステップＳ１９６）。ＣＰＵ１１は第２時間を最初の応答時刻と最終の応答時刻との間に記述する（ステップＳ１９７）。ＣＰＵ１１は記述後のグラフを表示部１４に表示する（ステップＳ１９８）。
【００５５】
ＣＰＵ１１は遅延の原因となった最初の要求時刻を他の時刻とは識別できるよう表示する（ステップＳ１９９）。具体的には、時刻を点滅させるか、または、他の時刻の色とは異なる色により表示する。図１７の例では要求時刻０００が点滅する。またＣＰＵ１１は遅延の原因となった最初の要求データに係る線を、他の線とは識別できるように表示する（ステップＳ１９１０）。例えば、最初の要求データに係る矢印線を点滅または他の矢印とは異なる色、または、点線により表示する。図１７の例では要求時刻０００にクライアントコンピュータ２の軸を起点に、サーバコンピュータ３の軸まで上向きに伸びる矢印を点滅させる。
【００５６】
ＣＰＵ１１は遅延を示す第１時間を第２時間とは異なる形態で表示する（ステップＳ１９１１）。例えば、第１時間を点滅または第２時間とは異なる色で表示する。図１７の例では第２時間を黒、第１時間を赤色とすれば良い。これにより、ユーザは特定の原因に起因する遅延を容易に特定することができ、速やかに対処することが可能となる。
【００５７】
本実施の形態２は以上の如きであり、その他は実施の形態１と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００５８】
実施の形態３
図２０は上述した形態の情報処理装置１の動作を示す機能ブロック図である。ＣＰＵ１１が制御プログラム１５Ｐ等を実行することにより、情報処理装置１は以下のように動作する。ＣＰＵ１１は制御プログラム１５Ｐのモジュールに係る取得部１２１、計数部１２２、算出部１２３及び出力部１２４をＲＡＭ１２に展開する。取得部１２１は、要求データの要求時刻及び応答データの応答時刻を取得する。計数部１２２は取得部１２１により取得した一の要求データの要求時刻から応答時刻までの間に要求時刻を有する他の要求データ数を計数する。算出部１２３は、計数部１２２により計数した計数値が第１閾値を超える場合に、各要求データの要求時刻に基づき算出される第１時間及び各要求データの応答時刻に基づき算出される第２時間を算出する。出力部１２４は算出部１２３により算出した要求時間と応答時間との差または比が第２閾値を超える場合に、遅延情報を出力する。
【００５９】
図２１は実施の形態３に係る情報処理装置１のハードウェア群を示すブロック図である。情報処理装置１を動作させるためのプログラムは、ディスクドライブ等の読み取り部１０ＡにＣＤ-ＲＯＭ、ＤＶＤ（DigitalVersatile Disc）ディスクまたはＵＳＢ(Universal Serial Bus)メモリ等の可搬型記録媒体１Ａを読み取らせて記憶部１５に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ１Ｂを情報処理装置１内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網Ｎを介して接続される他のサーバコンピュータ（図示せず）からダウンロードすることも可能である。以下に、その内容を説明する。
【００６０】
図２１に示す情報処理装置１は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体１Ａまたは半導体メモリ１Ｂから読み取り、或いは、通信網Ｎを介して他のサーバコンピュータ（図示せず）からダウンロードする。当該プログラムは、制御プログラム１５Ｐとしてインストールされ、ＲＡＭ１２にロードして実行される。これにより、上述した情報処理装置１として機能する。
【００６１】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
【００６２】
以上の実施の形態１乃至３を含む実施形態に関し、さらに以下の付記を開示する。
【００６３】
（付記１）
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第１の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第１の時間を算出するとともに、複数の応答データの応答時刻に基づいて第２の時間を算出し、
算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力する
処理をコンピュータに実行させるプログラム。
【００６４】
（付記２）
各要求データの要求時刻間の時間を加算することにより第１の時間を算出し、各応答データの応答時刻間の時間を加算することにより第２の時間を算出する
付記１に記載のプログラム。
【００６５】
（付記３）
各要求データの要求時刻間の時間を加算し、前記計数値で除すことにより第１の時間を算出し、各応答データの応答時刻間の時間を加算し、前記計数値で除すことにより第２の時間を算出する
付記１に記載のプログラム。
【００６６】
（付記４）
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第１の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第１の時間を算出するとともに、複数の応答データの応答時刻に基づいて第２の時間を算出し、
算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力し、
一の要求データの要求時刻から応答時刻までの間に要求時刻及び応答時刻を有する他の要求データが存在する場合、前記制御部は前記計数、算出または出力処理を中止する
処理をコンピュータに実行させるプログラム。
【００６７】
（付記５）
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間の経過時間を前記制御部により算出し、
算出した経過時間が記憶部に記憶した所定時間以上の場合に、前記制御部により他の要求データ数を計数する
付記１乃至４のいずれか一つに記載のプログラム。
【００６８】
（付記６）
算出した要求時間と応答時間との差または比が第２の閾値を超える場合に、前記制御部により前記一の要求データを特定するための情報を出力する
付記１乃至５のいずれか一つに記載のプログラム。
【００６９】
（付記７）
算出した要求時間と応答時間との差または比が第２の閾値を超える場合に、前記制御部により前記一の要求データ及び他の要求データの要求時刻及び応答時刻を特定するための情報を出力する
付記１乃至５のいずれか一つに記載のプログラム。
【００７０】
（付記８）
要求データの要求時刻及び応答データの応答時刻を取得する取得部と、
該取得部により取得した一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数する計数部と、
該計数部により計数した計数値が第１の閾値を超える場合に、複数の要求データの要求時刻に基づいて第１の時間を算出すると共に、複数の応答データの応答時刻に基づいて第２の時間を算出する算出部と、
該算出部により算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力する出力部と
を備える情報処理装置。
【００７１】
（付記９）
要求データの要求時刻及び応答データの応答時刻を取得し、
一の要求データの要求時刻から前記一の要求データに対応する応答データの応答時刻までの間に要求時刻を有する他の要求データ数を計数し、
計数した計数値が第１の閾値を超える場合に、算出処理部を用いて、複数の要求データの要求時刻に基づいて第１の時間を算出すると共に、複数の応答データの応答時刻に基づいて第２の時間を算出し、
算出した前記第１の時間と前記第２の時間との間の差、または、比が第２の閾値を超える場合に、遅延情報を出力する
情報処理方法。
【符号の説明】
【００７２】
１      情報処理装置
１Ａ    可搬型記録媒体
１Ｂ    半導体メモリ
２、２１、２２、２３      クライアントコンピュータ
３、３１、３２、３３      サーバコンピュータ
４      スイッチ
１０Ａ  読み取り部
１１    ＣＰＵ
１２    ＲＡＭ
１３    入力部
１４    表示部
１５    記憶部
１５Ｐ  制御プログラム
１６    通信部
１８    時計部
１２１  取得部
１２２  計数部
１２３  算出部
１２４  出力部
１５１  履歴ファイル
Ｎ      通信網
【図１】
0005696627.tif 000002
【図２】
0005696627.tif 000003
【図３】
0005696627.tif 000004
【図４】
0005696627.tif 000005
【図５】
0005696627.tif 000006
【図６】
0005696627.tif 000007
【図７】
0005696627.tif 000008
【図８】
0005696627.tif 000009
【図９】
0005696627.tif 000010
【図１０】
0005696627.tif 000011
【図１１】
0005696627.tif 000012
【図１２】
0005696627.tif 000013
【図１３】
0005696627.tif 000014
【図１４】
0005696627.tif 000015
【図１５】
0005696627.tif 000016
【図１６】
0005696627.tif 000017
【図１７】
0005696627.tif 000018
【図１８】
0005696627.tif 000019
【図１９】
0005696627.tif 000020
【図２０】
0005696627.tif 000021
【図２１】
0005696627.tif 000022