(57)【要約】【課題】本発明は、単一ノード上で構成された複数コンポーネントにわたるシステム統計情報を測定できるようにすることを目的とする。【解決手段】本発明のエコーサーバは、コンピュータ内の複数のコンポーネントどうしの対応関係の情報に基づいて受信サーバソケットを作成し、データが送信された際、受信サーバソケットの情報を継承した専用のソケットであるクライアントソケットを作成するソケット作成部２１０と、コンポーネントどうしで送受信されるデータを取得する伝送路を取得するストリーム取得部２２０およびストリームを結合して伝送経路を作成するスレッド作成部２３０と、スレッドを介して取得されたデータを本来の送信先であるコンポーネントに転送する転送実行部２４０とを備える。そして、ネットワーク上を流れるデータを観測することにより、システムの挙動を検証する。【選択図】        図７
2004234306.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置内の複数のコンポーネントどうしの対応関係に含まれるアドレスとポート番号との組み合わせより、仮想インターフェイスとしてのソケットを作成するソケット作成手段と、
前記コンポーネントどうしで送受信されるデータを前記ソケットおよびネットワークを介して取得するための経路を作成する経路作成手段と、
前記経路を介して取得された前記データを本来の送信先であるコンポーネントに転送する転送実行手段と
を備えたことを特徴とするサーバ。
【請求項２】
前記ソケット作成手段は、前記コンポーネントどうしの対応関係の情報に基づいて受信サーバソケットを作成し、当該受信サーバソケットに前記データが送信された際に、当該受信サーバソケットの情報を継承した当該データを送信する専用のソケットであるクライアントソケットを作成することを特徴とする請求項１に記載のサーバ。
【請求項３】
前記経路作成手段は、前記コンピュータ装置から前記ネットワークを介して送信される前記データの伝送路である入力ストリームと、当該コンピュータ装置に当該ネットワークを介して転送される前記データの伝送路である出力ストリームとを取得して前記経路を作成することを特徴とする請求項１に記載のサーバ。
【請求項４】
前記経路作成手段は、前記コンピュータ装置から送信されたリクエストとしての前記データを取得して当該コンピュータ装置に転送する伝送経路である受信スレッドと、当該コンピュータ装置から送信されたレスポンスとしての前記データを取得して当該コンピュータ装置に転送する伝送経路である転送スレッドとを作成することを特徴とする請求項１に記載のサーバ。
【請求項５】
前記ネットワーク上を流れる前記データの送信が開始された時刻と、当該データの転送が終了した時刻とを観測するモニタ手段をさらに備えたことを特徴とする請求項１に記載のサーバ。
【請求項６】
前記モニタ手段は、観測対象の前記データを分類するために、当該データに含まれる宛先アドレスと、宛先ポートと、発信元アドレスと、発信元ポートとを取得することを特徴とする請求項５に記載のサーバ。
【請求項７】
前記転送実行手段は、前記ネットワークの帯域幅を変更して前記データを転送することを特徴とする請求項１に記載のサーバ。
【請求項８】
前記転送実行手段は、前記ネットワークを遅延させて前記データを転送することを特徴とする請求項１に記載のサーバ。
【請求項９】
コンピュータ装置内の複数のコンポーネントどうしでやり取りされるデータに対してネットワークを介した伝送経路を設定する伝送経路設定手段と、
前記データを前記伝送経路に流すためのインターフェイスを設定するインターフェイス設定手段と
を備えたことを特徴とするサーバ。
【請求項１０】
前記インターフェイスおよび前記伝送経路を介して取得された前記データを前記ネットワーク上で監視する監視手段をさらに備えたことを特徴とする請求項９に記載のサーバ。
【請求項１１】
ネットワークを介して接続されたコンピュータ装置内の複数コンポーネントの対応関係を取得するステップと、
前記対応関係に基づいて前記複数コンポーネント間から前記ネットワークにデータを流すためのインターフェイスを作成するステップと、
前記インターフェイスを介して送信されるデータの伝送路を取得し、取得された当該伝送路を結合することにより当該データを転送する伝送経路を作成するステップと、
前記伝送経路を介して前記データを受信し、当該データを転送するステップと、
前記ネットワーク上を流れる前記データを監視するステップと
を含むことを特徴とするコンポーネント処理のモニタ方法。
【請求項１２】
前記インターフェイスを作成するステップは、
前記コンポーネントどうしの対応関係の情報に基づいてソケットを作成するステップと、
前記ソケットに前記データが送信された際に、当該ソケットの情報を継承した当該データ専用のソケットを作成するステップと
をさらに含むことを特徴とする請求項１１に記載のコンポーネント処理のモニタ方法。
【請求項１３】
前記伝送経路を作成するステップは、
前記コンピュータ装置から前記データを入力する入力ストリームおよび当該コンピュータ装置に対して当該データを出力する出力ストリームを取得するステップと、
前記入力ストリームと前記出力ストリームとを結合することにより受信スレッドおよび／または転送スレッドを作成するステップと
を含むことを特徴とする請求項１１に記載のコンポーネント処理のモニタ方法。
【請求項１４】
コンピュータを制御してデータ処理を制御するプログラムであって、
ネットワークを介して接続された他のコンピュータ装置内の複数コンポーネントの対応関係を取得する処理と、
前記対応関係に基づいて前記複数コンポーネント間から前記ネットワークにデータを流すためのインターフェイスを作成する処理と、
前記インターフェイスを介して送信されるデータの伝送路を取得し、取得された当該伝送路を結合することにより当該データを転送する伝送経路を作成する処理と、
前記伝送経路を介して前記データを受信し、当該データを転送する処理と
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項１５】
前記ネットワーク上を流れる前記データを取得して当該データをトレースし、当該データを特定するためのトレースデータを記録する処理を前記コンピュータにさらに実行させることを特徴とする請求項１４に記載のプログラム。
【請求項１６】
前記複数コンポーネントの対応関係を取得する処理では、
前記コンポーネントから送信されるデータの発信元のアドレスおよびポートと、当該データの宛先のアドレスおよびポートとを取得することを特徴とする請求項１４に記載のプログラム。
【請求項１７】
前記インターフェイスを作成する処理としては、
前記コンポーネントどうしの対応関係の情報に基づいてソケットを作成する処理と、
前記ソケットに前記データが送信された際に、当該ソケットの情報を継承した当該データ専用のソケットを作成する処理と
を前記コンピュータに実行させることを特徴とする請求項１４に記載のプログラム。
【請求項１８】
前記伝送経路を作成する処理としては、
前記他のコンピュータ装置から前記データを入力する入力ストリームおよび当該他のコンピュータ装置に対して当該データを出力する出力ストリームを取得する処理と、
前記入力ストリームと前記出力ストリームとを結合することにより受信スレッドおよび／または転送スレッドを作成する処理と
を前記コンピュータに実行させることを特徴とする請求項１４に記載のプログラム。
【請求項１９】
コンピュータを制御してデータ処理を制御するプログラムであって、
コンピュータ装置内の複数のコンポーネントどうしでやり取りされる前記データに対してネットワークを介した伝送経路を設定する伝送経路設定手段と、
前記データを前記伝送経路に流すためのインターフェイスを設定するインターフェイス設定手段と
を前記コンピュータに機能させることを特徴とするプログラム。
【請求項２０】
取得された前記データを前記ネットワーク上で監視する監視手段を前記コンピュータにさらに機能させることを特徴とする請求項１９に記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムにおけるコンポーネント処理を監視する方法に関し、特にコンピュータ内部のコンポーネント間におけるデータのやり取りを監視する方法等に関する。
【０００２】
【従来の技術】
コンピュータシステムにおいては、システムの効率化を図るために、各種の処理におけるパフォーマンスを測定し、ＣＰＵの使用率などのシステム統計情報を取得することが非常に重要となる。
複数台のコンピュータを接続したネットワークシステムでは、ネットワークトレースなどネットワーク上の通信パケット（以下、単にパケットと称す）を監視する装置を用いて、当該ネットワークに接続されたコンピュータ間でのパケット交換を観測することができる。そこで、パケットをトレースすることにより、各種の処理におけるコンピュータ間の情報のやり取りに要する時間（応答速度）を計測し、パフォーマンスの測定を行うことができる。
【０００３】
ここで、パケット通信の通信試験を、人手を要さずに自動的に判定することのできる技術として、無線パケット試験部とパケット網とがパケット通信中の状態において、試験用無線送受信部のＩＰアドレス、及びパケット折り返し試験用のポート番号を宛て先として、擬似ランダムデータを送信し、測定されたビットエラー率をしきい値と比較して品質を測定する技術が開示されている（例えば、特許文献１）。
【０００４】
【特許文献１】
特開２００２−０７７０７０号公報（第６頁、図３）
【０００５】
【発明が解決しようとする課題】
しかし、複数のソフトウェアコンポーネント（以下、単にコンポーネントと称す）がネットワーク上の複数のノード（コンピュータ）で構成される場合、環境の同一性や、時刻の同一性を保証することが難しく、複数コンポーネントにわたるシステム統計情報を平等に比較することは困難である。このことは、どのコンポーネントがシステム全体の効率に最も影響を与えるのかを判断する際の障害となる。
一方、単一ノード上で複数コンポーネントを構成すれば、環境の同一性、時刻の同一性を容易に保証でき、複数コンポーネントに渡るシステム統計情報を比較することが容易となる。
【０００６】
ところが、複数コンポーネントが単一ノード上で動作する場合、かかるコンポーネント間での情報のやり取りがネットワーク上の実パケットとなることはない。したがって、上述したようにパケットを監視する手法で各種の処理におけるシステムの応答速度を計測することはできない。
また、上記の特許文献１に記載された技術では、複数ノード間における無線通信自体の通信テストを行うことは可能であるが、単一ノードにおけるシステム応答速度を計測することはできない。
【０００７】
そこで、本発明は、単一ノード上で構成された複数コンポーネントにわたるシステム統計情報を測定できるようにすることを目的とする。
さらに本発明は、上記の単一ノード上でのシステム統計情報の測定手法を用いて、システムテストを実施可能とすることを目的とする。
【０００８】
【課題を解決するための手段】
上記の目的を達成する本発明は、ソケット作成手段と、経路作成手段と、転送実行手段とを備えた情報処理装置であるサーバを提供することができる。すなわち、このサーバにおいてソケット作成手段は、コンピュータ装置内の複数のコンポーネントどうしの対応関係に含まれるアドレスとポート番号との組み合わせより、仮想インターフェイスとしてのソケットを作成し、経路作成手段は、これらのコンポーネントどうしで送受信されるデータをソケットおよびネットワークを介して取得するための経路を作成し、転送実行手段は、この経路を介して取得されたデータを本来の送信先であるコンポーネントに転送する。
【０００９】
ここで、このサーバにおいて、ソケット作成部は、コンポーネントどうしの対応関係の情報に基づいて受信サーバソケットを作成し、受信サーバソケットにデータが送信された際に、この受信サーバソケットの情報を継承したデータを送信する専用のソケットであるクライアントソケットを作成する。このクライアントソケットとしては、受信サーバソケットを介してコンピュータ装置の第１のコンポーネントからサーバに対してデータが送信される際に作成される受信クライアントソケット、およびサーバからコンピュータ装置の第２のコンポーネントに対してデータが送信される際に作成される転送クライアントソケットが挙げられる。また、コンポーネントどうしの対応関係の情報として、具体的には、個々のデータ転送における受信アドレス、受信ポート、転送先アドレスおよび転送先ポートを用いることができる。ただし、データ転送の態様によっては、転送先アドレスおよび転送先ポートを得られない場合があるが、この場合、転送先アドレスとしてリクエストの送信元アドレスを用い、転送先ポートとして当該リクエストの本来の宛先ポートを用いることができる。
またここで上記の経路を作成するにあたり、経路作成手段は、コンピュータ装置からネットワークを介して送信されるデータの伝送路である入力ストリームと、このコンピュータ装置にネットワークを介して転送されるデータの伝送路である出力ストリームとを取得する。そして、この経路作成手段は、コンピュータ装置の第１のコンポーネントから送信されたリクエストとしてのデータを取得してコンピュータ装置の第２のコンポーネントに転送する伝送経路である受信スレッドと、このコンピュータ装置の第２のコンポーネントから送信されたレスポンスとしてのデータを取得してコンピュータ装置の第１のコンポーネントに転送する伝送経路である転送スレッドとを作成する。
【００１０】
さらに、このサーバは、ネットワーク上を流れるデータを観測することのできるモニタ手段を備えた構成とすることができる。このような機能構成のサーバにおいて、モニタ手段は、データの送信が開始された時刻と、このデータの転送が終了した時刻とを観測する。そして、このモニタ手段は、観測対象のデータを分類するために、このデータに含まれる宛先アドレスと、宛先ポートと、発信元アドレスと、発信元ポートとを取得する。
またさらに、上記の転送実行手段によれば、種々の条件下における測定を実現することができる。すなわち、この転送実行手段は、ネットワークの帯域幅を変更することにより、帯域幅の狭いネットワーク環境でのデータ転送を行うことができる。また、この転送実行手段は、ネットワークを遅延させることにより、擬似的な遅延が発生したネットワーク環境でのデータ転送を行うことができる。さらに、この転送実行手段では、ネットワークやコンピュータ装置のデータ転送における信頼性が低い環境であっても測定を行い、システム挙動を検証することができる。
【００１１】
また、上記の目的を達成する本発明のサーバは、伝送経路設定手段と、監視手段とを備えた機能構成とすることができる。すなわち、このサーバにおいて伝送経路設定手段は、コンピュータ装置内の複数のコンポーネントどうしでやり取りされるデータに対してネットワークを介した伝送経路を設定し、インターフェイス設定手段は、データを伝送経路に流すためのインターフェイスを設定する。そして、このサーバは、インターフェイスおよび伝送経路を介して取得されたデータをネットワーク上で監視する監視手段をさらに備えた構成とすることができる。
【００１２】
さらに、上記の目的を達成する本発明は、コンポーネント処理のモニタ方法を提供することができる。すなわち、このコンポーネント処理のモニタ方法は、ネットワークを介して接続されたコンピュータ装置内の複数コンポーネントの対応関係を取得するステップと、この対応関係に基づいて複数コンポーネント間からネットワークにデータを流すためのインターフェイスを作成するステップと、このインターフェイスを介して送信されるデータの伝送路を取得し、取得された伝送路を結合することによりデータを転送する伝送経路を作成するステップと、伝送経路を介してデータを受信し、このデータを転送するステップと、ネットワーク上を流れるデータを監視するステップを含む。
ここで、このインターフェイスを作成するステップは、コンポーネントどうしの対応関係の情報に基づいてソケットを作成するステップと、ソケットにデータが送信された際に、このソケットの情報を継承したデータ専用のソケットを作成するステップをさらに含む。また、この伝送経路を作成するステップは、コンピュータ装置からデータを入力する入力ストリームおよびコンピュータ装置に対してデータを出力する出力ストリームを取得するステップと、この入力ストリームと出力ストリームとを結合することにより受信スレッドおよび／または転送スレッドを作成するステップを含む。
【００１３】
また、本発明は、コンピュータを制御してデータ処理を制御する、以下のようなプログラムを提供することができる。このプログラムは、ネットワークを介して接続された他のコンピュータ装置内の複数コンポーネントの対応関係を取得する処理と、この対応関係に基づいて複数コンポーネント間からネットワークにデータを流すためのインターフェイスを作成する処理と、このインターフェイスを介して送信されるデータの伝送路を取得し、取得された伝送路を結合することによりデータを転送する伝送経路を作成する処理と、この伝送経路を介してデータを受信し、このデータを転送する処理をコンピュータに実行させる。
このプログラムは、ネットワーク上を流れるデータを取得してこのデータをトレースし、このデータを特定するためのトレースデータを記録する処理をコンピュータにさらに実行させる。ここで、複数コンポーネントの対応関係を取得する処理では、コンポーネントから送信されるデータの発信元のアドレスおよびポートと、このデータの宛先のアドレスおよびポートとを取得する。
【００１４】
またこのプログラムにおいて、インターフェイスを作成する処理としては、コンポーネントどうしの対応関係の情報に基づいてソケットを作成する処理と、このソケットにデータが送信された際に、このソケットの情報を継承したデータ専用のソケットを作成する処理をコンピュータに実行させる。さらにこのプログラムにおいて、伝送経路を作成する処理としては、他のコンピュータ装置からデータを入力する入力ストリームおよび他のコンピュータ装置に対してデータを出力する出力ストリームを取得する処理と、この入力ストリームと出力ストリームとを結合することにより受信スレッドおよび／または転送スレッドを作成する処理をコンピュータに実行させる。
【００１５】
さらにまた、本発明は、コンピュータを制御してデータ処理を制御する、以下のようなプログラムを提供することができる。このプログラムは、コンピュータ装置内の複数のコンポーネントどうしでやり取りされるデータに対してネットワークを介した伝送経路を設定する伝送経路設定手段と、このデータを伝送経路に流すためのインターフェイスを設定するインターフェイス設定手段とをコンピュータに機能させる。ここで、上記のプログラムは、エコーサーバばかりでなく被計測対象であるコンピュータ装置に対しても適用することができる。そして、このプログラムによってインターフェイスおよび伝送経路を設定することができ、これにより複数コンポーネント間で行われていたデータのやり取りが、ネットワークを介して行われるようになる。また、このプログラムは、取得されたデータをネットワーク上で監視する監視手段をコンピュータにさらに機能させる。
【００１６】
ここで本発明は、上述したプログラムを、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【００１７】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
まず、本発明の概要を説明する。本発明は、単一ノード上で構成された複数コンポーネント間の情報のやり取りを、ネットワークを介して実行させることにより、コンポーネント間のパケット交換を観測し、システム統計情報の取得を可能とする。これを実現するため、各コンポーネントから送信された要求（リクエスト）や応答（レスポンス）をネットワーク上で受信し、該当処理における本来の宛先へこだまのように返すエコーサーバを提供する。
【００１８】
図１は、エコーサーバの概念を説明する図である。
図１において、エコーサーバ１０は、ネットワーク４０を介してノードであるコンピュータ２０に接続されている（エコーサーバ１０自身もネットワーク４０上のノードである）。このエコーサーバ１０は、ネットワーク４０に接続された一台または複数台のコンピュータシステムにて構成することができる。コンピュータ２０は、２つのコンポーネントＣ１、Ｃ２を有する。すなわち、単一ノード上で複数のコンポーネントが構成されている。所定の処理において、コンポーネントＣ１はコンポーネントＣ２に対して要求を送信し、コンポーネントＣ２はコンポーネントＣ１に対して当該要求に対する応答を返送するが、この通信をエコーサーバ１０を経由して行う。また、ネットワーク４０にはモニタ（監視装置）３０が接続され、ネットワーク４０を介してやり取りされるこれらのパケットを監視する。
このように、本実施の形態では、単一ノード上に存在する複数コンポーネント間の通信をエコーサーバ１０を介在させて行うことで、この通信におけるネットワーク４０上を流れる実パケットを作る。このパケット交換をモニタ３０で観測することにより、この通信における応答速度を計測し、システム統計情報の取得を可能とする。
【００１９】
本実施の形態によるエコーサーバ１０は、例えば、ネットワークに接続された１台または複数台のコンピュータ装置にて実現することができる。
図２は、エコーサーバ１０を実現するコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図２に示すコンピュータ装置は、演算手段であるＣＰＵ（Ｃｅｎｔｒａｌ  ＰｒｏｃｅｓｓｉｎｇＵｎｉｔ：中央処理装置）１０１と、Ｍ／Ｂ（マザーボード）チップセット１０２及びＣＰＵバスを介してＣＰＵ１０１に接続されたメインメモリ１０３と、同じくＭ／Ｂチップセット１０２及びＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）を介してＣＰＵ１０１に接続されたビデオカード１０４と、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介してＭ／Ｂチップセット１０２に接続されたハードディスク１０５、ネットワークインターフェイス１０６及びＵＳＢポート１０７と、さらにこのＰＣＩバスからブリッジ回路１０８及びＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バスなどの低速なバスを介してＭ／Ｂチップセット１０２に接続されたフロッピーディスクドライブ１０９及びキーボード／マウス１１０とを備える。
なお、図２は本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード１０４を設ける代わりに、ビデオメモリのみを搭載し、ＣＰＵ１０１にてイメージデータを処理する構成としても良いし、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）などのインターフェイスを介してＣＤ−ＲＯＭ（ＣｏｍｐａｃｔＤｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）のドライブを設けても良い。
【００２０】
ここで、リクエスト（要求）データを送信すると共にレスポンス（応答）データを受信するクライアントデバイスと、このクライアントデバイスにネットワーク接続されたサーバとしてのコンピュータ２０との間における通常稼動時の要求および応答に関するデータの流れについて図３および図４を用いて説明する。図３は、クライアントデバイス５０と複数のコンポーネントを含むコンピュータ２０とからなるネットワーク構成の一例を示す図であり、図４は、図３に示した複数のコンポーネントとクライアントデバイス５０との間におけるデータの流れを示す流れ図である。
【００２１】
以下、図３〜図６では、エコーサーバ１０について説明する。まず、図３のシステムを例に、エコーサーバ１０を介さずに各コンポーネントどうしでデータをやり取りする通常動作での態様を示し、図５のシステムを例に、エコーサーバ１０が各コンポーネントの間に介在し、これら各コンポーネントから送信されるデータを取得して転送する態様を示す。
【００２２】
図３に示すように、クライアントデバイス５０とコンピュータ２０とは、ネットワーク４０を介して接続されている。このコンピュータ２０は、例えば、認証（コンポーネント）２１、ディレクトリ（コンポーネント）２２、コンテンツ変換（コンポーネント）２３、Ｗｅｂアプリケーション（コンポーネント）２４の４つのコンポーネントを有する。クライアントデバイス５０から送信された要求データに応じてコンピュータ２０から応答データが返送されるまでの、これら各コンポーネント間におけるデータの流れを図３および図４を参照しながら説明する。
【００２３】
クライアントデバイス５０から要求データが送信されると（０）、コンピュータ２０の認証２１において認証処理が行われ、認証処理が施されたデータはディレクトリ２２に送られる（１）。ディレクトリ２２では送信されてきたデータに基づいて所定のデータが抽出され、抽出されたデータは認証２１を介して（２）コンテンツ変換２３に送られる（３）。コンテンツ変換２３においてコンテンツ変換処理が施されたデータはＷｅｂアプリケーション２４に送られる（４）。Ｗｅｂアプリケーション２４において所定の処理が施されたデータはコンテンツ変換２３に送られ（５）、コンテンツ変換処理が施されたデータは認証２１に送られる（６）。そして応答データは、コンピュータ２０の認証２１からネットワーク４０を介してクライアントデバイス５０に返送される（７）。このように、図３に示す構成のネットワークシステムでは、単一ノードであるコンピュータ２０に設けられた複数のコンポーネントにおいて各々所定の処理が施され、このコンピュータ２０内部の複数のコンポーネント間において直接データのやり取りが行われる。すなわち通常稼動時においては、要求データおよび応答データの送受信だけがネットワーク４０を介して行われる。
【００２４】
本実施の形態では、コンピュータ２０に設けられた複数のコンポーネントにおける処理速度（応答速度）を計測するにあたり、図３に示した構成に加えてエコーサーバ１０を配置する。エコーサーバ１０を介して応答速度の計測を行う場合の構成およびデータの流れについて図５および図６を用いて説明する。図５は、本実施の形態においてコンピュータ２０の複数のコンポーネントの応答速度の計測を行うためのネットワーク構成の一例を示す図であり、図６は、図５に示した複数のコンポーネントとエコーサーバ１０およびクライアントデバイス５０との間におけるデータの流れを示す流れ図である。
【００２５】
本実施の形態におけるエコーサーバ１０は、コンピュータ２０内の複数のコンポーネントどうしの間で送受信されるデータを取得して、コンピュータ２０のコンポーネントに対して送信する。以下では、このエコーサーバ１０による上記の一連の機能をエコー処理と称する。つまり、このエコーサーバ１０は、このエコーサーバ１０がネットワーク４０に接続された際に、コンピュータ２０の各コンポーネントどうしの間に割り込むことができる。この割り込みについては、後に図７を用いて説明するが、各々のコンポーネント間に割り込み経路としての伝送路を作成し、この伝送路を流れるパケットデータを取得することにより、リスナ機能が実現される。これにより、通常稼動時においては単一ノードであるコンピュータ２０の各コンポーネント間だけで送受信されていたデータを、パケットデータによるデータ通信としてネットワーク４０上に流すことが可能となる。そして、他のノードであるエコーサーバ１０は、上記のリスナ機能によりネットワーク４０上に流れたパケットデータを受信することができる。
【００２６】
また、このエコーサーバ１０には、受信されたパケットデータをコンピュータ２０に転送する転送機能がさらに備えられている。すなわち、このエコーサーバ１０は、コンピュータ２０内の或るコンポーネントから他のコンポーネントに対して送信されたデータを上記のリスナ機能により伝送路およびネットワーク４０を介してパケットデータとして受信し、このパケットデータを上記の転送機能によりネットワーク４０および伝送路を介して本来の宛先である他のコンポーネントに対して転送することができる。このようにして、ネットワーク４０上を流れるパケットデータを監視することにより、コンピュータ２０の各コンポーネントにおける応答速度の計測を行い、このコンピュータ２０の各コンポーネントによって構成されたシステムの統計情報を取得することが可能となる。
【００２７】
図５および図６に示すように、コンピュータ２０とクライアントデバイス５０とはネットワーク４０を介して接続されており、さらに、このネットワーク４０にはエコーサーバ１０とネットワーク４０上を流れるパケットデータを観測するモニタ３０とが接続されている。図５および図６に示した例においてコンピュータ２０は、図３および図４に例示したのと同様のコンポーネントを有する。これら各コンポーネントにおいて処理されたデータの流れを図５および図６を参照しながら説明する。
【００２８】
クライアントデバイス５０から要求データが送信されると（０）、コンピュータ２０の認証２１において認証処理が行われ、ディレクトリ２２を宛先とした認証処理が施されたデータは、上述した伝送路およびネットワーク４０を介してエコーサーバ１０にて受信（取得）されてからディレクトリ２２に転送される（１）。ディレクトリ２２では送られてきたデータに基づいて所定のデータが抽出され、認証２１を宛先とした抽出されたデータは、上述のようにエコーサーバ１０にて受信されてから認証２１に転送される（２）。また、コンテンツ変換２３を宛先としたデータは、上述のようにエコーサーバ１０にて受信されてからコンテンツ変換２３に転送される（３）。コンテンツ変換２３においてコンテンツ変換処理が施されたデータは、上述のようにエコーサーバ１０にて受信されてからＷｅｂアプリケーション２４に転送される（４）。Ｗｅｂアプリケーション２４において所定の処理が施されたデータは、上述のようにエコーサーバ１０にて受信されてからコンテンツ変換２３に転送され（５）、コンテンツ変換処理が施されたデータは、同様にエコーサーバ１０にて受信されてから認証２１に転送される（６）。そして応答データは、コンピュータ２０の認証２１からネットワーク４０を介してクライアントデバイス５０に返送される（７）。このように、応答速度を計測する場合にネットワークシステムでは、コンピュータ２０の各コンポーネントにおいて所定の処理が行われると共に、このエコーサーバ１０により、コンピュータ２０との間においてパケットデータの取得および転送が行われ、これにより複数ノード間におけるデータのやり取りが行われる。すなわち応答速度の計測時には一つ一つの処理毎にネットワーク４０を介したパケットデータの送受信が行われる。そして、ネットワーク４０を流れるデータ通信は、ネットワーク４０に接続されたモニタ３０によって観測される。
【００２９】
上述したように、本実施の形態におけるエコーサーバ１０では、このエコーサーバ１０とコンピュータ２０とをネットワーク４０を介して接続することによりコンピュータ２０のコンポーネント間に割り込むリスナ機能が実現される。またエコーサーバ１０では、リスナ機能によってコンポーネントから取得されたパケットデータを受信すると共に、このパケットデータを他のコンポーネントに転送する転送機能が実現される。図７は、本実施の形態におけるエコーサーバ１０の機能構成を示す図である。尚、エコーサーバ１０の各機能は、このエコーサーバ１０に備えられたＣＰＵ１０１の制御により実現されるソフトウェアブロックである。
【００３０】
図７に示すように、このエコーサーバ１０は、ＩＰアドレスとポート番号との組み合わせよりコンピュータ２０と接続するための仮想的なインターフェイスであるソケットを作成するソケット作成部２１０と、このソケット作成部２１０にて作成されたソケットから入力ストリーム（データの伝送路）および出力ストリーム（データの伝送路）を取得するストリーム取得部２２０と、ストリーム取得部２２０にて取得されたストリームを結合して受信スレッド（伝送経路）および転送スレッド（伝送経路）を作成するスレッド作成部２３０と、スレッド作成部２３０にて作成されたスレッドを介してパケットデータの転送を実行する転送実行部２４０とを備える。ここで、本実施の形態において上記のソケット作成部２１０はソケット作成手段として、また上記のストリーム取得部２２０およびスレッド作成部２３０は経路作成手段として、さらに転送実行部２４０は転送実行手段としてエコーサーバ１０の機能を実現する。
【００３１】
ここで、上述したリスナ機能を実現するためのリスナであるソケットを作成する機能について説明する。図８は、ソケット作成部２１０にてソケットを作成するために用いられる対応表の一例を示す図である。図８に示すように、この対応表は、受信アドレスと、受信ポートと、転送先アドレスと、転送先ポートとの各項目からなり、０〜ｉ行にわたって各々の値が記録されている。図示したような対応表は、例えば、エコーサーバ１０でのプロセス開始時や、エコーサーバ１０が被計測対象であるコンピュータ２０を含むネットワーク４０に接続された際に作成される。対応表を作成するための情報のうち、受信アドレス及び受信ポートは、エコーサーバ１０及びコンピュータ２０を含むネットワーク構成に基づいて予め決定しておかなければならないが、転送先アドレス及び転送先ポートは、コンピュータ２０におけるコンポーネントの対応関係（データのやり取りの関係等）から得ることができる。このようにして作成された対応表は、例えば、エコーサーバ１０のメインメモリ１０３などのメモリ領域に保持される。そして、エコーサーバ１０が上記のネットワーク４０に接続されると、受信アドレスと受信ポート、および転送先アドレスと転送先ポートの組み合わせから、ソケット作成部２１０により、この対応表の一行につきリスナが１つ作成される。ここでは、エコーサーバ１０が各コンポーネントの対応関係を読み込んで対応表を作成するものとして説明したが、この対応表は、外部ファイルとして与えられたものであっても良いし、特定のネットワークサービスから自動的に取得するようにしても構わない。何れの場合においても、この対応表は、最終的には、エコーサーバ１０の各機能を実現する際に用いられるメインメモリ１０３に保持される。
【００３２】
図８に示した受信アドレスおよび受信ポートは、エコーサーバ１０がコンピュータ２０のクライアントとしてのコンポーネントからリクエストを受け取るためのアドレス及びポートであり、ソケット作成部２１０は、このアドレスに基づいて受信サーバソケットを作成する。この受信サーバソケットは、受信アドレスの受信ポートに送られてくるリクエストを受信するための入口となるソケットであり、エコーサーバ１０がネットワーク４０に接続されたタイミングでコンポーネントにて指定された上記の受信アドレスおよび受信ポートに基づいて作成される。すなわち、受信サーバソケットは、図８に示した各々のコンポーネントどうしの対応関係の情報に基づいて作成される。
【００３３】
ところで、コンピュータ２０のコンポーネントからリクエストを受信する際に受信サーバソケットを使用した場合、受信サーバソケットが塞がれてしまう。そのためエコーサーバ１０は、そのリクエストの処理が終わるまで次のリクエストを受信することができなくなる。受信アドレスの受信ポートに実際にリクエストが送信されてきたときには、このリクエストを受信するための専用のソケットを設けるのが望ましい。そこでソケット作成部２１０は、コンピュータ２０のクライアントとしてのコンポーネントからリクエストを受信するための専用の通信路である受信クライアントソケットを作成する。また、この受信クライアントソケットは、レスポンスの送信の際、上記のコンポーネントに対してレスポンスを送信するための専用の通信路（出口）として用いられる。ここで、この受信クライアントソケットは、上述した受信サーバソケットの設定情報を継承して作成される。エコーサーバ１０が、上記の受信クライアントソケット（通信路）を用いてリクエストの受信（またはレスポンスの送信）を行うことにより、受信サーバソケット塞がれることがなくなり、処理の待ち時間が短縮される。
【００３４】
また、コンピュータ２０のクライアントとしてのコンポーネントからリクエストがエコーサーバ１０にて受信された後には、上記の受信クライアントソケットおよび図８に示した転送先アドレスおよび転送先ポートに基づいて後述する入力ストリームおよび出力ストリームが取得される。転送先アドレスおよび転送先ポートは、エコーサーバ１０からコンピュータ２０のサーバとしてのコンポーネントに対してリクエストを送信するためのアドレス及びポートであり、ソケット作成部２１０は、このアドレスに基づいて転送クライアントソケットを作成する。この転送クライアントソケットは、転送先アドレスの転送先ポートに送られてくるリクエストを送信するための出口となる専用のソケットであり、エコーサーバ１０からパケットデータを転送するタイミングで作成される。また、この転送クライアントソケットは、レスポンス返送の際、上記のコンポーネントからレスポンスを受信するための専用の通信路（入口）として用いられる。ここで、この転送クライアントソケットは、上記の受信クライアントソケットと同様に、受信サーバソケットの情報を継承して作成される。
【００３５】
このようにソケット作成部２１０では、受信クライアントソケットおよび転送クライアントソケットを作成することにより、本来はコンピュータ２０内の或るコンポーネントから他のコンポーネントに対して送られるべきデータの宛先を変更している。つまり、ネットワーク４０に接続されたエコーサーバ１０がコンポーネント間でのデータの送信を検知した際、上記の或るコンポーネントから送信されたデータをパケットデータとして取得して、このデータの宛先をエコーサーバ１０とする。そして、取得されたパケットデータの宛先を上記の他のコンポーネントとし、このパケットデータを送信する。これにより、コンピュータ２０内の或るコンポーネントと他のコンポーネントとの間でのデータ送信を、エコーサーバ１０を介したパケットデータ通信とすることができる。すると、本来コンピュータ２０の各コンポーネント間でやり取りされていたデータが、パケットデータとしてネットワーク４０上を流れることになり、このパケットデータをモニタ３０にて観測することができる。
【００３６】
また、本実施の形態におけるエコーサーバ１０には、例えば、メインメモリ１０３の所定領域に、リクエストを検知した際にエコーサーバ１０を介したパケットデータの送受信、すなわちエコー処理を継続するか否かを指示するための受信フラグが設けられている。この受信フラグの値としては真または偽が与えられ、エコー処理中にこのフラグの真偽を設定することにより各ソケットによるリスナ機能の動作を制御することができる。
【００３７】
ストリーム取得部２２０は、ソケット作成部２１０にて作成された受信クライアントソケットまたは転送クライアントソケット、すなわちリクエストまたはレスポンスの送信元からエコーサーバ１０へのパケットデータの伝送路である入力ストリームを取得する。以下では、コンピュータ２０のリクエストの送信元としてのコンポーネントから受信クライアントソケットおよびネットワーク４０を介したエコーサーバ１０への伝送路を入力ストリーム１（以下、入力ストリームＩＳ１と称する）とし、コンピュータ２０のレスポンスの返送元としてのコンポーネントから転送クライアントソケットおよびネットワーク４０を介したエコーサーバ１０への伝送路を入力ストリーム２（以下、入力ストリームＩＳ２と称する）とする。
【００３８】
また、ストリーム取得部２２０は、ソケット作成部２１０にて作成された受信クライアントソケットまたは転送クライアントソケット、すなわちエコーサーバ１０からリクエストまたはレスポンスの転送先へのパケットデータの伝送路である出力ストリームを取得する。以下では、リクエストの転送元であるエコーサーバ１０からネットワーク４０および転送クライアントソケットを介したコンピュータ２０への伝送路を出力ストリーム１（以下、出力ストリームＯＳ１と称する）とし、レスポンスの転送元であるエコーサーバ１０からネットワーク４０および受信クライアントソケットを介したコンピュータ２０への伝送路を出力ストリーム２（以下、出力ストリームＯＳ２と称する）とする。
【００３９】
スレッド作成部２３０は、リクエスト送信元からパケットデータを受信して、このパケットデータを転送先サーバへ送信するためのスレッドを作成する。すなわち、上記のストリーム取得部２２０にて取得されたリクエストの送信元のコンピュータ２０からエコーサーバ１０への入力ストリームとエコーサーバ１０からのリクエストの転送先サーバとしてのコンピュータ２０への出力ストリームとを結合して伝送経路である受信スレッドを作成する。以下では、上記の入力ストリームＩＳ１と出力ストリームＯＳ１とが結合されて作成されたスレッドを受信スレッド（以下、受信スレッドＴＨ１と称する）とする。
【００４０】
また、スレッド作成部２３０は、転送先サーバからパケットデータを受信して、このパケットデータをリクエスト送信元へ送信するためのスレッドを作成する。すなわち、上記のストリーム取得部２２０にて取得されたレスポンスの返送元のコンピュータ２０からエコーサーバ１０への伝送路である入力ストリームとエコーサーバ１０からのレスポンスの転送先のコンピュータ２０への出力ストリームとを結合して伝送経路である転送スレッドを作成する。以下では、上記の入力ストリームＩＳ２と出力ストリームＯＳ２とが結合されて作成されたスレッドを転送スレッド（以下、転送スレッドＴＨ２と称する）とする。
【００４１】
転送実行部２４０は、コンピュータ２０のコンポーネントからリクエストが送信されてきたことを検知すると受信スレッドＴＨ１を開始して、エコーサーバ１０を介したコンピュータ２０のクライアントコンポーネントからコンピュータ２０のサーバコンポーネントへのリクエストの転送を実行し、このサーバコンポーネントにデータを送る。また、転送実行部２４０は、コンピュータ２０のコンポーネントからレスポンスが返送されてきたことを検知すると転送スレッドＴＨ２を開始して、エコーサーバ１０を介したコンピュータ２０のサーバコンポーネントからコンピュータ２０のクライアントコンポーネントへのレスポンスの転送を実行し、このクライアントコンポーネントにデータを送る。さらに、この転送実行部２４０は、上述した受信フラグの値に基づいてエコー処理を継続するか否かを判断する。
【００４２】
本実施の形態では、この転送実行部２４０による転送によって発生するネットワーク４０上のパケットデータの流れをモニタ３０にて監視することができる。すなわちエコーサーバ１０は、パケットデータを転送するための設定を保持しており、この設定にしたがって取得されたパケットデータの送り先を書き換えて再びネットワーク４０上に送出している。そして、このパケットデータを監視することによって被計測対象であるコンピュータ２０の各コンポーネントにおいてデータ処理に要した時間を観測することができる。
【００４３】
以下、フローチャートを用いて、エコーサーバ１０における処理について説明する。図９は、エコーサーバ１０においてソケット作成処理を開始するための処理の流れを説明するフローチャートである。
エコーサーバ１０が被計測対象であるコンピュータ２０を含むネットワーク４０に接続されると、ソケット作成部２１０は、エコーサーバ１０のメインメモリ１０３に保持された受信アドレス、受信ポート、転送先アドレス、転送先ポートの各項目からなる対応表を読み込み、この対応表の行数を表すパラメータｉに０をセットする（ステップ９０１）。そしてソケット作成部２１０は、このパラメータｉが対応表のサイズ（対応表の行数）よりも小さいか否かを判断する（ステップ９０２）。ステップ９０２において、パラメータｉの値が対応表の行数よりも小さいと判断された場合、ソケット作成部２１０は、対応表のｉ番目の各項目の値を取得する（ステップ９０３）。ここで、ステップ９０３において対応表のｉ番目の値が取得されると、後に図１０を用いて説明するソケット作成処理が行われる（ステップ９０４）。
【００４４】
ステップ９０４にて対応表のｉ番目に対応するソケット作成処理が終了したら、ソケット作成部２１０は、パラメータｉに１を加算して（ステップ９０５）、ステップ９０２以降の処理を行う。ここで、ステップ９０２にてパラメータｉの値が対応表のサイズよりも大きくなった場合には、ソケット作成部２１０における対応表の読み込み処理を終了する。
【００４５】
図１０は、図９のステップ９０４に示したソケット作成部２１０におけるソケット作成処理の流れを説明するフローチャートである。
図９のステップ９０３にて対応表のｉ番目の値が取得されると、ソケット作成部２１０は、この対応表の値から受信アドレスを取得し（ステップ１００１）、受信ポートを取得する（ステップ１００２）。またソケット作成部２１０は、上記の対応表の値から転送先アドレスを取得し（ステップ１００３）、転送先ポートを取得する（ステップ１００４）。そしてソケット作成部２１０は、ステップ１００１にて取得された受信アドレス、およびステップ１００２にて取得された受信ポートに基づいて、コンピュータ２０から送られてくるリクエストの入口となる受信サーバソケットを作成する（ステップ１００５）。
【００４６】
コンピュータ２０のクライアントコンポーネントからリクエストが受信されると（ステップ１００６）、ソケット作成部２１０は、上記の受信アドレスおよび受信ポートに基づいて、このクライアントコンポーネントからリクエストを受信する専用の通信路である受信クライアントソケットを作成する（ステップ１００７）。つまり、上記のリクエストに関するパケットデータの送受信には、ステップ１００７にて作成された受信クライアントソケットが用いられる。ここで、ステップ１００７において受信クライアントソケットが作成されると、ソケット作成部２１０からストリーム取得部２２０に処理が委譲され、後に図１１を用いて説明するストリーム取得処理、およびこのストリーム取得処理後に実行される図１２に示すスレッド作成処理が行われる（ステップ１００８）。
【００４７】
また、後述するストリーム取得処理、スレッド作成処理およびスレッド処理の各処理が終了した後に、転送実行部２４０は、受信フラグが真であるか否かを判断する（ステップ１００９）。ステップ１００９において受信フラグが真であると判断された場合には、ステップ１００６以降の処理を繰り返してリクエストの転送が行われる。また、ステップ１００９において受信フラグが偽であると判断された場合には、受信ソケットの作成処理が終了する。
【００４８】
図１１は、図１０のステップ１００８に示したストリーム取得部２２０におけるストリーム取得処理および転送実行部２４０における転送処理の流れを説明するフローチャートである。
図１０のステップ１００８にてストリーム取得部２２０に処理が委譲されると、ストリーム取得部２２０は、ソケット作成部２１０にて作成された受信クライアントソケットを取得する（ステップ１１０１）。また、このストリーム取得部２２０は、上記の対応表から取得された転送先アドレスを取得し（ステップ１１０２）、転送先ポートを取得する（ステップ１１０３）。
【００４９】
ストリーム取得部２２０は、ステップ１１０１にて取得された受信クライアントソケットとエコーサーバ１０自身のアドレスおよびポートの情報に基づいて入力ストリームＩＳ１を取得する（ステップ１１０４）。この入力ストリームＩＳ１は、クライアントコンポーネントからのリクエストを受信クライアントソケットからエコーサーバ１０へ送信するためのパケットデータの通信路である。また、ストリーム取得部２２０は、エコーサーバ１０自身のアドレスおよびポートの情報とステップ１１０２およびステップ１１０３にて取得された転送先アドレスおよび転送先ポートに基づいて出力ストリームＯＳ１を取得する（ステップ１１０５）。この出力ストリームＯＳ１は、上記のリクエストをエコーサーバ１０からコンピュータ２０のサーバコンポーネントへ送信（転送）するためのパケットデータの通信路である。
【００５０】
ステップ１１０４およびステップ１１０５にて入力ストリームＩＳ１および出力ストリームＯＳ１が取得されると、ソケット作成部２１０は、ステップ１１０２およびステップ１１０３にて取得された転送先アドレスおよび転送先ポートに基づいて、サーバコンポーネントにリクエストを転送する専用の通信路である転送クライアントソケットを作成する（ステップ１１０６）。
【００５１】
ステップ１１０６おいて転送クライアントソケットが作成されると、ストリーム取得部２２０は、この転送クライアントソケットとエコーサーバ１０自身のアドレスおよびポートの情報に基づいて入力ストリームＩＳ２を取得する（ステップ１１０７）。この入力ストリームＩＳ２は、サーバコンポーネントからのレスポンスをコンピュータ２０のサーバコンポーネントからエコーサーバ１０へ送信するためのパケットデータの通信路である。また、ストリーム取得部２２０は、エコーサーバ１０自身のアドレスおよびポートの情報と転送クライアントソケットに基づいて出力ストリームＯＳ２を取得する（ステップ１１０８）。この出力ストリームＯＳ２は、上記のレスポンスをエコーサーバ１０からコンピュータ２０のクライアントコンポーネントへ送信（転送）するためのパケットデータの通信路である。
【００５２】
図１２は、図１１に示したストリーム取得処理後に実行されるスレッド作成部２３０におけるスレッド作成処理の流れを説明するフローチャートである。
図１１に示したストリーム取得処理が行われた後に、スレッド作成部２３０は、ストリーム取得部２２０にて取得された入力ストリームＩＳ１および出力ストリームＯＳ１をパラメータとし、これらのストリームを結合して受信スレッドＴＨ１を作成する（ステップ１２０１）。この受信スレッドＴＨ１は、リクエスト送信元からパケットデータを受信して、このパケットデータを転送先サーバへ送信するための伝送経路である。また、スレッド作成部２３０は、ストリーム取得部２２０にて取得された入力ストリームＩＳ２および出力ストリームＯＳ２をパラメータとし、これらのストリームを結合して転送スレッドＴＨ２を作成する（ステップ１２０２）。この転送スレッドＴＨ２は、転送先サーバからパケットデータを受信して、このパケットデータをリクエスト送信元へ送信するための伝送経路である。
【００５３】
そしてコンピュータ２０のクライアントコンポーネントからリクエストが送信されると、転送実行部２４０は受信スレッドＴＨ１を伝送経路として受信スレッドを開始する（ステップ１２０３）。またコンピュータ２０のサーバコンポーネントからレスポンスが送信されると、転送実行部２４０は転送スレッドＴＨ２を伝送経路として転送スレッドを開始する（ステップ１２０４）。ステップ１２０３およびステップ１２０４のスレッド処理については、後に図１３を用いて説明する。
【００５４】
転送実行部２４０は、上記の受信スレッドおよび転送スレッドが開始した後には、これらのスレッドが終了するまで待機する（ステップ１２０５）。そして転送実行部２４０は、受信スレッドが終了したら、この受信スレッドにて用いられた受信クライアントソケットを破棄する（ステップ１２０６）。また、転送実行部２４０は、転送スレッドが終了したら、この転送スレッドにて用いられた転送クライアントソケットを破棄する（ステップ１２０７）。
【００５５】
図１３は、転送実行部２４０におけるスレッド処理（すなわちパケットデータ転送処理）の流れを説明するフローチャートである。ここでは、図１２のステップ１２０３において受信スレッドが開始した際の処理について説明する。
スレッド処理が開始されると、転送実行部２４０は、入力ストリームＩＳ１からリクエストのパケットデータを読み込む（ステップ１３０１）。そして、転送実行部２４０は、入力ストリームＩＳ１からの入力が完了したか否かを判断する（ステップ１３０２）。ステップ１３０２において、入力が終了していないと判断された場合、出力ストリームＯＳ１へのデータの書き出しが行われる（ステップ１３０３）。そして、入力ストリームＩＳ１からの入力が終了したと判断されるまでパケットデータの読み込みおよび書き出しが行われる。ステップ１３０２において入力が完了したと判断された場合、転送実行部２４０は、上記の入力ストリームＩＳ１を破棄する（ステップ１３０４）。また、転送実行部２４０は、上記の出力ストリームＯＳ１を破棄する（ステップ１３０５）。
【００５６】
このように、本実施の形態におけるエコーサーバ１０は、コンピュータ２０のクライアントコンポーネントから送信されたリクエストをネットワーク４０を介して中継し、このリクエストのパケットデータの送信元のアドレスおよび宛先のアドレスを変更してコンピュータ２０のサーバコンポーネントに対して転送している。また、コンピュータ２０のサーバコンポーネントから返送されたレスポンスをネットワーク４０を介して中継し、このレスポンスのパケットデータの送信元のアドレスおよび宛先のアドレスを変更してコンピュータ２０のクライアントコンポーネントに転送している。このようにすれば、コンピュータ２０内でやり取りされていたリクエストおよびレスポンスのパケットデータを、ネットワーク４０上に流すことができ、このパケットデータをモニタ３０にて観測することができる。そして、リクエストのパケットデータの送信が開始されてから、レスポンスのパケットデータの受信が終了するまでの時間を観測することにより、サーバコンポーネントにおいて処理に要した時間を計測することができるようになる。
【００５７】
図１４は、モニタ３０にて観測されるパケットデータのデータ構造の一例を示す図である。
図１４に示すようにパケットデータには、このパケットデータが送信された時刻と、このパケットデータを送信する宛先のアドレスである宛先アドレスと、このパケットデータを送信する宛先のポートである宛先ポートと、このパケットデータの発信元のアドレスである発信元アドレスと、このパケットデータの発信元のポートである発信元ポートとが含まれる。本実施の形態は、元々コンピュータ２０のコンポーネント間で行われるデータのやり取りを、コンピュータ２０からネットワーク４０上に設けられたエコーサーバ１０へ送信し、かつエコーサーバ１０からコンピュータ２０へ返信する経路に切り替えるものである。したがって、元のコンポーネント間の通信１つに対して、エコーサーバ１０を宛先としコンピュータ２０を発信元とするパケットデータと、コンピュータ２０を宛先としエコーサーバ１０を発信元とするパケットデータの２つが生成され、監視対象となる。また本実施の形態では、ネットワーク４０上を流れる上記のパケットデータを、当該ネットワーク４０上にエコーサーバ１０とは別個に設けられたモニタ３０によって観測する。
【００５８】
図１５は、モニタ３０によるパケットデータの観測に関する処理の流れを説明するフローチャートである。
図１２のステップ１２０３における受信スレッドが開始されると、コンピュータ２０のクライアントコンポーネントからエコーサーバ１０にネットワーク４０を介してパケットデータが送信される。ネットワーク４０に接続されたモニタ３０は、ネットワーク４０上を流れる上記のパケットデータを取得する（ステップ１５０１）。そしてモニタ３０は、このパケットデータから時刻を取得する（ステップ１５０２）。またモニタ３０は、このパケットデータから宛先アドレスを取得し（ステップ１５０３）、宛先ポートを取得する（ステップ１５０４）。さらにモニタ３０は、発信元アドレスを取得し（ステップ１５０５）、発信元ポートを取得する（ステップ１５０６）。そしてモニタ３０は、ステップ１５０２〜ステップ１５０６において取得された各項目に基づいて、例えば装置内に設けられたメモリ領域等にトレースデータを記録する（ステップ１５０７）。ここでモニタ３０は、パケットデータが終了したか否かの判断を行い（ステップ１５０８）、複数のパケットデータの送信が終了するまでステップ１５０１〜ステップ１５０８の処理を繰り返す。ステップ１５０８の判断は、図１２のステップ１２０５に示したスレッドの終了に伴って行われ、パケットデータの送信が終了したと判断されると、モニタ３０は処理を終了し、次のパケットデータが送信されるまで待機する。そして、ステップ１５０７にて記録されたトレースデータの時刻などの内容を解析することにより、コンピュータ２０内のコンポーネントにおいて処理に要した時間を計測することができる。これにより、各々のコンポーネント毎の処理時間を計測され、どのコンポーネントにおいて多大な処理時間を要したかを知ることができる。
【００５９】
さて、上述した基本的な動作例では、初期的に図８に示した対応表を作成し、この対応表の情報に基づいてソケット作成処理を行った（図９参照）。この対応表において転送先アドレス及び転送先ポートを未指定にしておくことも可能である。そのような場合、エコーサーバ１０は、ソケット作成部２１０、ストリーム取得部２２０によって受信クライアントソケット、転送クライアントソケットを作成する際に、転送先アドレスとしてリクエストの送信元アドレスを用い、転送先ポートとして当該リクエストの本来の宛先ポートを用いる。これによって、当該リクエストの送信元ノードへ当該リクエストを送り返すようにスレッドが作成されることとなる（これをエコーバックすると言う）。このスレッドを用いたスレッド処理自体は、図１３を参照して説明した動作となる。
【００６０】
以上説明したようなエコーサーバ１０を用いれば、一台のコンピュータ２０内に設けられた複数のコンポーネントにより構成されたシステムにおいて、各コンポーネントにおける処理時間を計測することができる。また、モニタ３０は、ネットワーク４０に接続されていれば良く、被測定対象であるコンピュータ２０中に組み込む必要がないため、コンピュータ２０のコンポーネントにおける処理に負荷をかけることがなくなる。ここでは、エコーサーバ１０とモニタ３０とを別体に設ける場合について例示したが、ネットワーク４０を流れるパケットデータを測定することのできる構成であれば、エコーサーバ１０内にモニタ３０と同等の機能を有する監視機能を設けても構わない。その際、エコーサーバ１０における監視機能は、モニタ手段として機能する。
【００６１】
また以上では、ソケット作成部２１０、ストリーム取得部２２０、スレッド作成部２３０によるインターフェイスとしてのソケットおよびパケットデータの伝送経路の生成が、エコーサーバ１０において行われる場合について例示したが、同様の機能をコンピュータ２０内に設けることにより、このコンピュータ２０にて上述したソケットと伝送経路とを作成することも勿論可能である。そして、コンポーネント間のデータのやり取りを、このソケットおよび伝送経路を経由させ、ネットワークを介して行うようにすることができる。すると、エコーサーバ１０にてソケットおよび伝送経路を作成した場合と同様に、パケットデータの流れをネットワーク４０上で監視することができる。
【００６２】
また、以上説明したエコーサーバ１０の転送実行部２４０を用いたデータ処理により、ネットワーク４０におけるデータ転送に用いられる帯域の幅が変更された状態を作ることができる。そして、この帯域幅を狭く設定することにより、帯域幅の狭いネットワーク環境におけるコンピュータ２０内のコンポーネントでの処理速度等の挙動を検証することができる。
【００６３】
さらに、上述のエコーサーバ１０の転送実行部２４０を用いたデータ処理により、ネットワーク４０におけるデータ転送に擬似的に遅延を発生させた状態を作ることができる。これにより、ネットワーク４０に遅延が発生し得るようなネットワーク環境におけるシステムでの、コンピュータ２０内の複数のコンポーネントにおける処置時間をシミュレートし、システムの挙動等を検証することができる。
【００６４】
またさらに、上述のエコーサーバ１０の転送実行部２４０を用いたデータ処理により、ネットワーク４０やコンピュータ２０内のデータ転送にエラーを発生させることができる。これにより、ネットワーク４０やコンピュータ２０がデータ転送の信頼性の低い環境が構築されている場合であっても、このような環境に応じたシステムの挙動を検証することができる。
【００６５】
【発明の効果】
以上説明したように、本発明によれば、単一ノード上で構成された複数コンポーネントにわたるシステム統計情報を測定することができ、種々の環境条件に応じたシステムテストを低コストにて実施することができる。
また、本発明によれば、上記の単一ノード上でのシステム統計情報の測定手法を用いて、システムテストを実施可能である。
【図面の簡単な説明】
【図１】エコーサーバの概念を説明する図である。
【図２】エコーサーバを実現するコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図３】クライアントデバイスと複数のコンポーネントを含むコンピュータとからなるネットワーク構成の一例を示す図である。
【図４】図３に示したクライアントデバイスと複数のコンポーネント間におけるデータの流れを示す流れ図である。
【図５】コンピュータの複数のコンポーネントの応答速度の計測を行うためのネットワーク構成の一例を示す図である。
【図６】図５に示した複数のコンポーネントとエコーサーバおよびクライアントデバイスとの間におけるデータの流れを示す流れ図である。
【図７】本実施の形態におけるエコーサーバの機能構成を示す図である。
【図８】ソケット作成部にてソケットを作成するために用いられる対応表の一例を示す図である。
【図９】エコーサーバにおいてソケット作成処理を開始するための処理の流れを説明するフローチャートである。
【図１０】ソケット作成部におけるソケット作成処理の流れを説明するフローチャートである。
【図１１】ストリーム取得部におけるストリーム取得処理および転送実行部における転送処理の流れを説明するフローチャートである。
【図１２】スレッド作成部におけるスレッド作成処理の流れを説明するフローチャートである。
【図１３】転送実行部におけるスレッド処理の流れを説明するフローチャートである。
【図１４】モニタにて観測されるパケットデータのデータ構造の一例を示す図である。
【図１５】モニタによるパケットデータの観測に関する処理の流れを説明するフローチャートである。
【符号の説明】
１０…エコーサーバ、２０…コンピュータ、３０…モニタ、４０…ネットワーク、５０…クライアントデバイス、１０１…ＣＰＵ、１０２…Ｍ／Ｂチップセット、１０３…メインメモリ、１０４…ビデオカード、１０５…ハードディスク、１０６…ネットワークインターフェイス、１０７…ＵＳＢポート、１０８…ブリッジ回路、２１０…ソケット作成部、２２０…ストリーム取得部、２３０…スレッド作成部、２４０…転送実行部
【図１】
2004234306.tif 000003
【図２】
2004234306.tif 000004
【図３】
2004234306.tif 000005
【図４】
2004234306.tif 000006
【図５】
2004234306.tif 000007
【図６】
2004234306.tif 000008
【図７】
2004234306.tif 000009
【図８】
2004234306.tif 000010
【図９】
2004234306.tif 000011
【図１０】
2004234306.tif 000012
【図１１】
2004234306.tif 000013
【図１２】
2004234306.tif 000014
【図１３】
2004234306.tif 000015
【図１４】
2004234306.tif 000016
【図１５】
2004234306.tif 000017