JP3976262B2 - サーバおよびプログラム - Google Patents

サーバおよびプログラム Download PDF

Info

Publication number
JP3976262B2
JP3976262B2 JP2003021804A JP2003021804A JP3976262B2 JP 3976262 B2 JP3976262 B2 JP 3976262B2 JP 2003021804 A JP2003021804 A JP 2003021804A JP 2003021804 A JP2003021804 A JP 2003021804A JP 3976262 B2 JP3976262 B2 JP 3976262B2
Authority
JP
Japan
Prior art keywords
data
socket
network
computer
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003021804A
Other languages
English (en)
Other versions
JP2004234306A (ja
Inventor
康介 岡本
勝義 山本
弘敬 小倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2003021804A priority Critical patent/JP3976262B2/ja
Priority to US10/768,905 priority patent/US8966051B2/en
Publication of JP2004234306A publication Critical patent/JP2004234306A/ja
Application granted granted Critical
Publication of JP3976262B2 publication Critical patent/JP3976262B2/ja
Priority to US14/619,503 priority patent/US9942120B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータシステムにおけるコンポーネント処理を監視する方法に関し、特にコンピュータ内部のコンポーネント間におけるデータのやり取りを監視する方法等に関する。
【0002】
【従来の技術】
コンピュータシステムにおいては、システムの効率化を図るために、各種の処理におけるパフォーマンスを測定し、CPUの使用率などのシステム統計情報を取得することが非常に重要となる。
複数台のコンピュータを接続したネットワークシステムでは、ネットワークトレースなどネットワーク上の通信パケット(以下、単にパケットと称す)を監視する装置を用いて、当該ネットワークに接続されたコンピュータ間でのパケット交換を観測することができる。そこで、パケットをトレースすることにより、各種の処理におけるコンピュータ間の情報のやり取りに要する時間(応答速度)を計測し、パフォーマンスの測定を行うことができる。
【0003】
ここで、パケット通信の通信試験を、人手を要さずに自動的に判定することのできる技術として、無線パケット試験部とパケット網とがパケット通信中の状態において、試験用無線送受信部のIPアドレス、及びパケット折り返し試験用のポート番号を宛て先として、擬似ランダムデータを送信し、測定されたビットエラー率をしきい値と比較して品質を測定する技術が開示されている(例えば、特許文献1)。
【0004】
【特許文献1】
特開2002−077070号公報(第6頁、図3)
【0005】
【発明が解決しようとする課題】
しかし、複数のソフトウェアコンポーネント(以下、単にコンポーネントと称す)がネットワーク上の複数のノード(コンピュータ)で構成される場合、環境の同一性や、時刻の同一性を保証することが難しく、複数コンポーネントにわたるシステム統計情報を平等に比較することは困難である。このことは、どのコンポーネントがシステム全体の効率に最も影響を与えるのかを判断する際の障害となる。
一方、単一ノード上で複数コンポーネントを構成すれば、環境の同一性、時刻の同一性を容易に保証でき、複数コンポーネントに渡るシステム統計情報を比較することが容易となる。
【0006】
ところが、複数コンポーネントが単一ノード上で動作する場合、かかるコンポーネント間での情報のやり取りがネットワーク上の実パケットとなることはない。したがって、上述したようにパケットを監視する手法で各種の処理におけるシステムの応答速度を計測することはできない。
また、上記の特許文献1に記載された技術では、複数ノード間における無線通信自体の通信テストを行うことは可能であるが、単一ノードにおけるシステム応答速度を計測することはできない。
【0007】
そこで、本発明は、単一ノード上で構成された複数コンポーネントにわたるシステム統計情報を測定できるようにすることを目的とする。
さらに本発明は、上記の単一ノード上でのシステム統計情報の測定手法を用いて、システムテストを実施可能とすることを目的とする。
【0008】
【課題を解決するための手段】
上記の目的を達成する本発明は、ソケット作成手段と、経路作成手段と、転送実行手段とを備えた情報処理装置であるサーバを提供することができる。すなわち、このサーバにおいてソケット作成手段は、コンピュータ装置内の複数のコンポーネントどうしの対応関係に含まれるアドレスとポート番号との組み合わせより、仮想インターフェイスとしてのソケットを作成し、経路作成手段は、これらのコンポーネントどうしで送受信されるデータをソケットおよびネットワークを介して取得するための経路を作成し、転送実行手段は、この経路を介して取得されたデータを本来の送信先であるコンポーネントに転送する。
【0009】
ここで、このサーバにおいて、ソケット作成部は、コンポーネントどうしの対応関係の情報に基づいて受信サーバソケットを作成し、受信サーバソケットにデータが送信された際に、この受信サーバソケットの情報を継承したデータを送信する専用のソケットであるクライアントソケットを作成する。このクライアントソケットとしては、受信サーバソケットを介してコンピュータ装置の第1のコンポーネントからサーバに対してデータが送信される際に作成される受信クライアントソケット、およびサーバからコンピュータ装置の第2のコンポーネントに対してデータが送信される際に作成される転送クライアントソケットが挙げられる。また、コンポーネントどうしの対応関係の情報として、具体的には、個々のデータ転送における受信アドレス、受信ポート、転送先アドレスおよび転送先ポートを用いることができる。ただし、データ転送の態様によっては、転送先アドレスおよび転送先ポートを得られない場合があるが、この場合、転送先アドレスとしてリクエストの送信元アドレスを用い、転送先ポートとして当該リクエストの本来の宛先ポートを用いることができる。
またここで上記の経路を作成するにあたり、経路作成手段は、コンピュータ装置からネットワークを介して送信されるデータの伝送路である入力ストリームと、このコンピュータ装置にネットワークを介して転送されるデータの伝送路である出力ストリームとを取得する。そして、この経路作成手段は、コンピュータ装置の第1のコンポーネントから送信されたリクエストとしてのデータを取得してコンピュータ装置の第2のコンポーネントに転送する伝送経路である受信スレッドと、このコンピュータ装置の第2のコンポーネントから送信されたレスポンスとしてのデータを取得してコンピュータ装置の第1のコンポーネントに転送する伝送経路である転送スレッドとを作成する。
【0010】
さらに、このサーバは、ネットワーク上を流れるデータを観測することのできるモニタ手段を備えた構成とすることができる。このような機能構成のサーバにおいて、モニタ手段は、データの送信が開始された時刻と、このデータの転送が終了した時刻とを観測する。そして、このモニタ手段は、観測対象のデータを分類するために、このデータに含まれる宛先アドレスと、宛先ポートと、発信元アドレスと、発信元ポートとを取得する。
またさらに、上記の転送実行手段によれば、種々の条件下における測定を実現することができる。すなわち、この転送実行手段は、ネットワークの帯域幅を変更することにより、帯域幅の狭いネットワーク環境でのデータ転送を行うことができる。また、この転送実行手段は、ネットワークを遅延させることにより、擬似的な遅延が発生したネットワーク環境でのデータ転送を行うことができる。さらに、この転送実行手段では、ネットワークやコンピュータ装置のデータ転送における信頼性が低い環境であっても測定を行い、システム挙動を検証することができる。
【0011】
また、上記の目的を達成する本発明のサーバは、伝送経路設定手段と、監視手段とを備えた機能構成とすることができる。すなわち、このサーバにおいて伝送経路設定手段は、コンピュータ装置内の複数のコンポーネントどうしでやり取りされるデータに対してネットワークを介した伝送経路を設定し、インターフェイス設定手段は、データを伝送経路に流すためのインターフェイスを設定する。そして、このサーバは、インターフェイスおよび伝送経路を介して取得されたデータをネットワーク上で監視する監視手段をさらに備えた構成とすることができる。
【0012】
さらに、上記の目的を達成する本発明は、コンポーネント処理のモニタ方法を提供することができる。すなわち、このコンポーネント処理のモニタ方法は、ネットワークを介して接続されたコンピュータ装置内の複数コンポーネントの対応関係を取得するステップと、この対応関係に基づいて複数コンポーネント間からネットワークにデータを流すためのインターフェイスを作成するステップと、このインターフェイスを介して送信されるデータの伝送路を取得し、取得された伝送路を結合することによりデータを転送する伝送経路を作成するステップと、伝送経路を介してデータを受信し、このデータを転送するステップと、ネットワーク上を流れるデータを監視するステップを含む。
ここで、このインターフェイスを作成するステップは、コンポーネントどうしの対応関係の情報に基づいてソケットを作成するステップと、ソケットにデータが送信された際に、このソケットの情報を継承したデータ専用のソケットを作成するステップをさらに含む。また、この伝送経路を作成するステップは、コンピュータ装置からデータを入力する入力ストリームおよびコンピュータ装置に対してデータを出力する出力ストリームを取得するステップと、この入力ストリームと出力ストリームとを結合することにより受信スレッドおよび/または転送スレッドを作成するステップを含む。
【0013】
また、本発明は、コンピュータを制御してデータ処理を制御する、以下のようなプログラムを提供することができる。このプログラムは、ネットワークを介して接続された他のコンピュータ装置内の複数コンポーネントの対応関係を取得する処理と、この対応関係に基づいて複数コンポーネント間からネットワークにデータを流すためのインターフェイスを作成する処理と、このインターフェイスを介して送信されるデータの伝送路を取得し、取得された伝送路を結合することによりデータを転送する伝送経路を作成する処理と、この伝送経路を介してデータを受信し、このデータを転送する処理をコンピュータに実行させる。
このプログラムは、ネットワーク上を流れるデータを取得してこのデータをトレースし、このデータを特定するためのトレースデータを記録する処理をコンピュータにさらに実行させる。ここで、複数コンポーネントの対応関係を取得する処理では、コンポーネントから送信されるデータの発信元のアドレスおよびポートと、このデータの宛先のアドレスおよびポートとを取得する。
【0014】
またこのプログラムにおいて、インターフェイスを作成する処理としては、コンポーネントどうしの対応関係の情報に基づいてソケットを作成する処理と、このソケットにデータが送信された際に、このソケットの情報を継承したデータ専用のソケットを作成する処理をコンピュータに実行させる。さらにこのプログラムにおいて、伝送経路を作成する処理としては、他のコンピュータ装置からデータを入力する入力ストリームおよび他のコンピュータ装置に対してデータを出力する出力ストリームを取得する処理と、この入力ストリームと出力ストリームとを結合することにより受信スレッドおよび/または転送スレッドを作成する処理をコンピュータに実行させる。
【0015】
さらにまた、本発明は、コンピュータを制御してデータ処理を制御する、以下のようなプログラムを提供することができる。このプログラムは、コンピュータ装置内の複数のコンポーネントどうしでやり取りされるデータに対してネットワークを介した伝送経路を設定する伝送経路設定手段と、このデータを伝送経路に流すためのインターフェイスを設定するインターフェイス設定手段とをコンピュータに機能させる。ここで、上記のプログラムは、エコーサーバばかりでなく被計測対象であるコンピュータ装置に対しても適用することができる。そして、このプログラムによってインターフェイスおよび伝送経路を設定することができ、これにより複数コンポーネント間で行われていたデータのやり取りが、ネットワークを介して行われるようになる。また、このプログラムは、取得されたデータをネットワーク上で監視する監視手段をコンピュータにさらに機能させる。
【0016】
ここで本発明は、上述したプログラムを、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【0017】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
まず、本発明の概要を説明する。本発明は、単一ノード上で構成された複数コンポーネント間の情報のやり取りを、ネットワークを介して実行させることにより、コンポーネント間のパケット交換を観測し、システム統計情報の取得を可能とする。これを実現するため、各コンポーネントから送信された要求(リクエスト)や応答(レスポンス)をネットワーク上で受信し、該当処理における本来の宛先へこだまのように返すエコーサーバを提供する。
【0018】
図1は、エコーサーバの概念を説明する図である。
図1において、エコーサーバ10は、ネットワーク40を介してノードであるコンピュータ20に接続されている(エコーサーバ10自身もネットワーク40上のノードである)。このエコーサーバ10は、ネットワーク40に接続された一台または複数台のコンピュータシステムにて構成することができる。コンピュータ20は、2つのコンポーネントC1、C2を有する。すなわち、単一ノード上で複数のコンポーネントが構成されている。所定の処理において、コンポーネントC1はコンポーネントC2に対して要求を送信し、コンポーネントC2はコンポーネントC1に対して当該要求に対する応答を返送するが、この通信をエコーサーバ10を経由して行う。また、ネットワーク40にはモニタ(監視装置)30が接続され、ネットワーク40を介してやり取りされるこれらのパケットを監視する。
このように、本実施の形態では、単一ノード上に存在する複数コンポーネント間の通信をエコーサーバ10を介在させて行うことで、この通信におけるネットワーク40上を流れる実パケットを作る。このパケット交換をモニタ30で観測することにより、この通信における応答速度を計測し、システム統計情報の取得を可能とする。
【0019】
本実施の形態によるエコーサーバ10は、例えば、ネットワークに接続された1台または複数台のコンピュータ装置にて実現することができる。
図2は、エコーサーバ10を実現するコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図2に示すコンピュータ装置は、演算手段であるCPU(Central Processing Unit:中央処理装置)101と、M/B(マザーボード)チップセット102及びCPUバスを介してCPU101に接続されたメインメモリ103と、同じくM/Bチップセット102及びAGP(Accelerated Graphics Port)を介してCPU101に接続されたビデオカード104と、PCI(Peripheral Component Interconnect)バスを介してM/Bチップセット102に接続されたハードディスク105、ネットワークインターフェイス106及びUSBポート107と、さらにこのPCIバスからブリッジ回路108及びISA(Industry Standard Architecture)バスなどの低速なバスを介してM/Bチップセット102に接続されたフロッピーディスクドライブ109及びキーボード/マウス110とを備える。
なお、図2は本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード104を設ける代わりに、ビデオメモリのみを搭載し、CPU101にてイメージデータを処理する構成としても良いし、ATA(AT Attachment)などのインターフェイスを介してCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)のドライブを設けても良い。
【0020】
ここで、リクエスト(要求)データを送信すると共にレスポンス(応答)データを受信するクライアントデバイスと、このクライアントデバイスにネットワーク接続されたサーバとしてのコンピュータ20との間における通常稼動時の要求および応答に関するデータの流れについて図3および図4を用いて説明する。図3は、クライアントデバイス50と複数のコンポーネントを含むコンピュータ20とからなるネットワーク構成の一例を示す図であり、図4は、図3に示した複数のコンポーネントとクライアントデバイス50との間におけるデータの流れを示す流れ図である。
【0021】
以下、図3〜図6では、エコーサーバ10について説明する。まず、図3のシステムを例に、エコーサーバ10を介さずに各コンポーネントどうしでデータをやり取りする通常動作での態様を示し、図5のシステムを例に、エコーサーバ10が各コンポーネントの間に介在し、これら各コンポーネントから送信されるデータを取得して転送する態様を示す。
【0022】
図3に示すように、クライアントデバイス50とコンピュータ20とは、ネットワーク40を介して接続されている。このコンピュータ20は、例えば、認証(コンポーネント)21、ディレクトリ(コンポーネント)22、コンテンツ変換(コンポーネント)23、Webアプリケーション(コンポーネント)24の4つのコンポーネントを有する。クライアントデバイス50から送信された要求データに応じてコンピュータ20から応答データが返送されるまでの、これら各コンポーネント間におけるデータの流れを図3および図4を参照しながら説明する。
【0023】
クライアントデバイス50から要求データが送信されると(0)、コンピュータ20の認証21において認証処理が行われ、認証処理が施されたデータはディレクトリ22に送られる(1)。ディレクトリ22では送信されてきたデータに基づいて所定のデータが抽出され、抽出されたデータは認証21を介して(2)コンテンツ変換23に送られる(3)。コンテンツ変換23においてコンテンツ変換処理が施されたデータはWebアプリケーション24に送られる(4)。Webアプリケーション24において所定の処理が施されたデータはコンテンツ変換23に送られ(5)、コンテンツ変換処理が施されたデータは認証21に送られる(6)。そして応答データは、コンピュータ20の認証21からネットワーク40を介してクライアントデバイス50に返送される(7)。このように、図3に示す構成のネットワークシステムでは、単一ノードであるコンピュータ20に設けられた複数のコンポーネントにおいて各々所定の処理が施され、このコンピュータ20内部の複数のコンポーネント間において直接データのやり取りが行われる。すなわち通常稼動時においては、要求データおよび応答データの送受信だけがネットワーク40を介して行われる。
【0024】
本実施の形態では、コンピュータ20に設けられた複数のコンポーネントにおける処理速度(応答速度)を計測するにあたり、図3に示した構成に加えてエコーサーバ10を配置する。エコーサーバ10を介して応答速度の計測を行う場合の構成およびデータの流れについて図5および図6を用いて説明する。図5は、本実施の形態においてコンピュータ20の複数のコンポーネントの応答速度の計測を行うためのネットワーク構成の一例を示す図であり、図6は、図5に示した複数のコンポーネントとエコーサーバ10およびクライアントデバイス50との間におけるデータの流れを示す流れ図である。
【0025】
本実施の形態におけるエコーサーバ10は、コンピュータ20内の複数のコンポーネントどうしの間で送受信されるデータを取得して、コンピュータ20のコンポーネントに対して送信する。以下では、このエコーサーバ10による上記の一連の機能をエコー処理と称する。つまり、このエコーサーバ10は、このエコーサーバ10がネットワーク40に接続された際に、コンピュータ20の各コンポーネントどうしの間に割り込むことができる。この割り込みについては、後に図7を用いて説明するが、各々のコンポーネント間に割り込み経路としての伝送路を作成し、この伝送路を流れるパケットデータを取得することにより、リスナ機能が実現される。これにより、通常稼動時においては単一ノードであるコンピュータ20の各コンポーネント間だけで送受信されていたデータを、パケットデータによるデータ通信としてネットワーク40上に流すことが可能となる。そして、他のノードであるエコーサーバ10は、上記のリスナ機能によりネットワーク40上に流れたパケットデータを受信することができる。
【0026】
また、このエコーサーバ10には、受信されたパケットデータをコンピュータ20に転送する転送機能がさらに備えられている。すなわち、このエコーサーバ10は、コンピュータ20内の或るコンポーネントから他のコンポーネントに対して送信されたデータを上記のリスナ機能により伝送路およびネットワーク40を介してパケットデータとして受信し、このパケットデータを上記の転送機能によりネットワーク40および伝送路を介して本来の宛先である他のコンポーネントに対して転送することができる。このようにして、ネットワーク40上を流れるパケットデータを監視することにより、コンピュータ20の各コンポーネントにおける応答速度の計測を行い、このコンピュータ20の各コンポーネントによって構成されたシステムの統計情報を取得することが可能となる。
【0027】
図5および図6に示すように、コンピュータ20とクライアントデバイス50とはネットワーク40を介して接続されており、さらに、このネットワーク40にはエコーサーバ10とネットワーク40上を流れるパケットデータを観測するモニタ30とが接続されている。図5および図6に示した例においてコンピュータ20は、図3および図4に例示したのと同様のコンポーネントを有する。これら各コンポーネントにおいて処理されたデータの流れを図5および図6を参照しながら説明する。
【0028】
クライアントデバイス50から要求データが送信されると(0)、コンピュータ20の認証21において認証処理が行われ、ディレクトリ22を宛先とした認証処理が施されたデータは、上述した伝送路およびネットワーク40を介してエコーサーバ10にて受信(取得)されてからディレクトリ22に転送される(1)。ディレクトリ22では送られてきたデータに基づいて所定のデータが抽出され、認証21を宛先とした抽出されたデータは、上述のようにエコーサーバ10にて受信されてから認証21に転送される(2)。また、コンテンツ変換23を宛先としたデータは、上述のようにエコーサーバ10にて受信されてからコンテンツ変換23に転送される(3)。コンテンツ変換23においてコンテンツ変換処理が施されたデータは、上述のようにエコーサーバ10にて受信されてからWebアプリケーション24に転送される(4)。Webアプリケーション24において所定の処理が施されたデータは、上述のようにエコーサーバ10にて受信されてからコンテンツ変換23に転送され(5)、コンテンツ変換処理が施されたデータは、同様にエコーサーバ10にて受信されてから認証21に転送される(6)。そして応答データは、コンピュータ20の認証21からネットワーク40を介してクライアントデバイス50に返送される(7)。このように、応答速度を計測する場合にネットワークシステムでは、コンピュータ20の各コンポーネントにおいて所定の処理が行われると共に、このエコーサーバ10により、コンピュータ20との間においてパケットデータの取得および転送が行われ、これにより複数ノード間におけるデータのやり取りが行われる。すなわち応答速度の計測時には一つ一つの処理毎にネットワーク40を介したパケットデータの送受信が行われる。そして、ネットワーク40を流れるデータ通信は、ネットワーク40に接続されたモニタ30によって観測される。
【0029】
上述したように、本実施の形態におけるエコーサーバ10では、このエコーサーバ10とコンピュータ20とをネットワーク40を介して接続することによりコンピュータ20のコンポーネント間に割り込むリスナ機能が実現される。またエコーサーバ10では、リスナ機能によってコンポーネントから取得されたパケットデータを受信すると共に、このパケットデータを他のコンポーネントに転送する転送機能が実現される。図7は、本実施の形態におけるエコーサーバ10の機能構成を示す図である。尚、エコーサーバ10の各機能は、このエコーサーバ10に備えられたCPU101の制御により実現されるソフトウェアブロックである。
【0030】
図7に示すように、このエコーサーバ10は、IPアドレスとポート番号との組み合わせよりコンピュータ20と接続するための仮想的なインターフェイスであるソケットを作成するソケット作成部210と、このソケット作成部210にて作成されたソケットから入力ストリーム(データの伝送路)および出力ストリーム(データの伝送路)を取得するストリーム取得部220と、ストリーム取得部220にて取得されたストリームを結合して受信スレッド(伝送経路)および転送スレッド(伝送経路)を作成するスレッド作成部230と、スレッド作成部230にて作成されたスレッドを介してパケットデータの転送を実行する転送実行部240とを備える。ここで、本実施の形態において上記のソケット作成部210はソケット作成手段として、また上記のストリーム取得部220およびスレッド作成部230は経路作成手段として、さらに転送実行部240は転送実行手段としてエコーサーバ10の機能を実現する。
【0031】
ここで、上述したリスナ機能を実現するためのリスナであるソケットを作成する機能について説明する。図8は、ソケット作成部210にてソケットを作成するために用いられる対応表の一例を示す図である。図8に示すように、この対応表は、受信アドレスと、受信ポートと、転送先アドレスと、転送先ポートとの各項目からなり、0〜i行にわたって各々の値が記録されている。図示したような対応表は、例えば、エコーサーバ10でのプロセス開始時や、エコーサーバ10が被計測対象であるコンピュータ20を含むネットワーク40に接続された際に作成される。対応表を作成するための情報のうち、受信アドレス及び受信ポートは、エコーサーバ10及びコンピュータ20を含むネットワーク構成に基づいて予め決定しておかなければならないが、転送先アドレス及び転送先ポートは、コンピュータ20におけるコンポーネントの対応関係(データのやり取りの関係等)から得ることができる。このようにして作成された対応表は、例えば、エコーサーバ10のメインメモリ103などのメモリ領域に保持される。そして、エコーサーバ10が上記のネットワーク40に接続されると、受信アドレスと受信ポート、および転送先アドレスと転送先ポートの組み合わせから、ソケット作成部210により、この対応表の一行につきリスナが1つ作成される。ここでは、エコーサーバ10が各コンポーネントの対応関係を読み込んで対応表を作成するものとして説明したが、この対応表は、外部ファイルとして与えられたものであっても良いし、特定のネットワークサービスから自動的に取得するようにしても構わない。何れの場合においても、この対応表は、最終的には、エコーサーバ10の各機能を実現する際に用いられるメインメモリ103に保持される。
【0032】
図8に示した受信アドレスおよび受信ポートは、エコーサーバ10がコンピュータ20のクライアントとしてのコンポーネントからリクエストを受け取るためのアドレス及びポートであり、ソケット作成部210は、このアドレスに基づいて受信サーバソケットを作成する。この受信サーバソケットは、受信アドレスの受信ポートに送られてくるリクエストを受信するための入口となるソケットであり、エコーサーバ10がネットワーク40に接続されたタイミングでコンポーネントにて指定された上記の受信アドレスおよび受信ポートに基づいて作成される。すなわち、受信サーバソケットは、図8に示した各々のコンポーネントどうしの対応関係の情報に基づいて作成される。
【0033】
ところで、コンピュータ20のコンポーネントからリクエストを受信する際に受信サーバソケットを使用した場合、受信サーバソケットが塞がれてしまう。そのためエコーサーバ10は、そのリクエストの処理が終わるまで次のリクエストを受信することができなくなる。受信アドレスの受信ポートに実際にリクエストが送信されてきたときには、このリクエストを受信するための専用のソケットを設けるのが望ましい。そこでソケット作成部210は、コンピュータ20のクライアントとしてのコンポーネントからリクエストを受信するための専用の通信路である受信クライアントソケットを作成する。また、この受信クライアントソケットは、レスポンスの送信の際、上記のコンポーネントに対してレスポンスを送信するための専用の通信路(出口)として用いられる。ここで、この受信クライアントソケットは、上述した受信サーバソケットの設定情報を継承して作成される。エコーサーバ10が、上記の受信クライアントソケット(通信路)を用いてリクエストの受信(またはレスポンスの送信)を行うことにより、受信サーバソケット塞がれることがなくなり、処理の待ち時間が短縮される。
【0034】
また、コンピュータ20のクライアントとしてのコンポーネントからリクエストがエコーサーバ10にて受信された後には、上記の受信クライアントソケットおよび図8に示した転送先アドレスおよび転送先ポートに基づいて後述する入力ストリームおよび出力ストリームが取得される。転送先アドレスおよび転送先ポートは、エコーサーバ10からコンピュータ20のサーバとしてのコンポーネントに対してリクエストを送信するためのアドレス及びポートであり、ソケット作成部210は、このアドレスに基づいて転送クライアントソケットを作成する。この転送クライアントソケットは、転送先アドレスの転送先ポートに送られてくるリクエストを送信するための出口となる専用のソケットであり、エコーサーバ10からパケットデータを転送するタイミングで作成される。また、この転送クライアントソケットは、レスポンス返送の際、上記のコンポーネントからレスポンスを受信するための専用の通信路(入口)として用いられる。ここで、この転送クライアントソケットは、上記の受信クライアントソケットと同様に、受信サーバソケットの情報を継承して作成される。
【0035】
このようにソケット作成部210では、受信クライアントソケットおよび転送クライアントソケットを作成することにより、本来はコンピュータ20内の或るコンポーネントから他のコンポーネントに対して送られるべきデータの宛先を変更している。つまり、ネットワーク40に接続されたエコーサーバ10がコンポーネント間でのデータの送信を検知した際、上記の或るコンポーネントから送信されたデータをパケットデータとして取得して、このデータの宛先をエコーサーバ10とする。そして、取得されたパケットデータの宛先を上記の他のコンポーネントとし、このパケットデータを送信する。これにより、コンピュータ20内の或るコンポーネントと他のコンポーネントとの間でのデータ送信を、エコーサーバ10を介したパケットデータ通信とすることができる。すると、本来コンピュータ20の各コンポーネント間でやり取りされていたデータが、パケットデータとしてネットワーク40上を流れることになり、このパケットデータをモニタ30にて観測することができる。
【0036】
また、本実施の形態におけるエコーサーバ10には、例えば、メインメモリ103の所定領域に、リクエストを検知した際にエコーサーバ10を介したパケットデータの送受信、すなわちエコー処理を継続するか否かを指示するための受信フラグが設けられている。この受信フラグの値としては真または偽が与えられ、エコー処理中にこのフラグの真偽を設定することにより各ソケットによるリスナ機能の動作を制御することができる。
【0037】
ストリーム取得部220は、ソケット作成部210にて作成された受信クライアントソケットまたは転送クライアントソケット、すなわちリクエストまたはレスポンスの送信元からエコーサーバ10へのパケットデータの伝送路である入力ストリームを取得する。以下では、コンピュータ20のリクエストの送信元としてのコンポーネントから受信クライアントソケットおよびネットワーク40を介したエコーサーバ10への伝送路を入力ストリーム1(以下、入力ストリームIS1と称する)とし、コンピュータ20のレスポンスの返送元としてのコンポーネントから転送クライアントソケットおよびネットワーク40を介したエコーサーバ10への伝送路を入力ストリーム2(以下、入力ストリームIS2と称する)とする。
【0038】
また、ストリーム取得部220は、ソケット作成部210にて作成された受信クライアントソケットまたは転送クライアントソケット、すなわちエコーサーバ10からリクエストまたはレスポンスの転送先へのパケットデータの伝送路である出力ストリームを取得する。以下では、リクエストの転送元であるエコーサーバ10からネットワーク40および転送クライアントソケットを介したコンピュータ20への伝送路を出力ストリーム1(以下、出力ストリームOS1と称する)とし、レスポンスの転送元であるエコーサーバ10からネットワーク40および受信クライアントソケットを介したコンピュータ20への伝送路を出力ストリーム2(以下、出力ストリームOS2と称する)とする。
【0039】
スレッド作成部230は、リクエスト送信元からパケットデータを受信して、このパケットデータを転送先サーバへ送信するためのスレッドを作成する。すなわち、上記のストリーム取得部220にて取得されたリクエストの送信元のコンピュータ20からエコーサーバ10への入力ストリームとエコーサーバ10からのリクエストの転送先サーバとしてのコンピュータ20への出力ストリームとを結合して伝送経路である受信スレッドを作成する。以下では、上記の入力ストリームIS1と出力ストリームOS1とが結合されて作成されたスレッドを受信スレッド(以下、受信スレッドTH1と称する)とする。
【0040】
また、スレッド作成部230は、転送先サーバからパケットデータを受信して、このパケットデータをリクエスト送信元へ送信するためのスレッドを作成する。すなわち、上記のストリーム取得部220にて取得されたレスポンスの返送元のコンピュータ20からエコーサーバ10への伝送路である入力ストリームとエコーサーバ10からのレスポンスの転送先のコンピュータ20への出力ストリームとを結合して伝送経路である転送スレッドを作成する。以下では、上記の入力ストリームIS2と出力ストリームOS2とが結合されて作成されたスレッドを転送スレッド(以下、転送スレッドTH2と称する)とする。
【0041】
転送実行部240は、コンピュータ20のコンポーネントからリクエストが送信されてきたことを検知すると受信スレッドTH1を開始して、エコーサーバ10を介したコンピュータ20のクライアントコンポーネントからコンピュータ20のサーバコンポーネントへのリクエストの転送を実行し、このサーバコンポーネントにデータを送る。また、転送実行部240は、コンピュータ20のコンポーネントからレスポンスが返送されてきたことを検知すると転送スレッドTH2を開始して、エコーサーバ10を介したコンピュータ20のサーバコンポーネントからコンピュータ20のクライアントコンポーネントへのレスポンスの転送を実行し、このクライアントコンポーネントにデータを送る。さらに、この転送実行部240は、上述した受信フラグの値に基づいてエコー処理を継続するか否かを判断する。
【0042】
本実施の形態では、この転送実行部240による転送によって発生するネットワーク40上のパケットデータの流れをモニタ30にて監視することができる。すなわちエコーサーバ10は、パケットデータを転送するための設定を保持しており、この設定にしたがって取得されたパケットデータの送り先を書き換えて再びネットワーク40上に送出している。そして、このパケットデータを監視することによって被計測対象であるコンピュータ20の各コンポーネントにおいてデータ処理に要した時間を観測することができる。
【0043】
以下、フローチャートを用いて、エコーサーバ10における処理について説明する。図9は、エコーサーバ10においてソケット作成処理を開始するための処理の流れを説明するフローチャートである。
エコーサーバ10が被計測対象であるコンピュータ20を含むネットワーク40に接続されると、ソケット作成部210は、エコーサーバ10のメインメモリ103に保持された受信アドレス、受信ポート、転送先アドレス、転送先ポートの各項目からなる対応表を読み込み、この対応表の行数を表すパラメータiに0をセットする(ステップ901)。そしてソケット作成部210は、このパラメータiが対応表のサイズ(対応表の行数)よりも小さいか否かを判断する(ステップ902)。ステップ902において、パラメータiの値が対応表の行数よりも小さいと判断された場合、ソケット作成部210は、対応表のi番目の各項目の値を取得する(ステップ903)。ここで、ステップ903において対応表のi番目の値が取得されると、後に図10を用いて説明するソケット作成処理が行われる(ステップ904)。
【0044】
ステップ904にて対応表のi番目に対応するソケット作成処理が終了したら、ソケット作成部210は、パラメータiに1を加算して(ステップ905)、ステップ902以降の処理を行う。ここで、ステップ902にてパラメータiの値が対応表のサイズよりも大きくなった場合には、ソケット作成部210における対応表の読み込み処理を終了する。
【0045】
図10は、図9のステップ904に示したソケット作成部210におけるソケット作成処理の流れを説明するフローチャートである。
図9のステップ903にて対応表のi番目の値が取得されると、ソケット作成部210は、この対応表の値から受信アドレスを取得し(ステップ1001)、受信ポートを取得する(ステップ1002)。またソケット作成部210は、上記の対応表の値から転送先アドレスを取得し(ステップ1003)、転送先ポートを取得する(ステップ1004)。そしてソケット作成部210は、ステップ1001にて取得された受信アドレス、およびステップ1002にて取得された受信ポートに基づいて、コンピュータ20から送られてくるリクエストの入口となる受信サーバソケットを作成する(ステップ1005)。
【0046】
コンピュータ20のクライアントコンポーネントからリクエストが受信されると(ステップ1006)、ソケット作成部210は、上記の受信アドレスおよび受信ポートに基づいて、このクライアントコンポーネントからリクエストを受信する専用の通信路である受信クライアントソケットを作成する(ステップ1007)。つまり、上記のリクエストに関するパケットデータの送受信には、ステップ1007にて作成された受信クライアントソケットが用いられる。ここで、ステップ1007において受信クライアントソケットが作成されると、ソケット作成部210からストリーム取得部220に処理が委譲され、後に図11を用いて説明するストリーム取得処理、およびこのストリーム取得処理後に実行される図12に示すスレッド作成処理が行われる(ステップ1008)。
【0047】
また、後述するストリーム取得処理、スレッド作成処理およびスレッド処理の各処理が終了した後に、転送実行部240は、受信フラグが真であるか否かを判断する(ステップ1009)。ステップ1009において受信フラグが真であると判断された場合には、ステップ1006以降の処理を繰り返してリクエストの転送が行われる。また、ステップ1009において受信フラグが偽であると判断された場合には、受信ソケットの作成処理が終了する。
【0048】
図11は、図10のステップ1008に示したストリーム取得部220におけるストリーム取得処理および転送実行部240における転送処理の流れを説明するフローチャートである。
図10のステップ1008にてストリーム取得部220に処理が委譲されると、ストリーム取得部220は、ソケット作成部210にて作成された受信クライアントソケットを取得する(ステップ1101)。また、このストリーム取得部220は、上記の対応表から取得された転送先アドレスを取得し(ステップ1102)、転送先ポートを取得する(ステップ1103)。
【0049】
ストリーム取得部220は、ステップ1101にて取得された受信クライアントソケットとエコーサーバ10自身のアドレスおよびポートの情報に基づいて入力ストリームIS1を取得する(ステップ1104)。この入力ストリームIS1は、クライアントコンポーネントからのリクエストを受信クライアントソケットからエコーサーバ10へ送信するためのパケットデータの通信路である。また、ストリーム取得部220は、エコーサーバ10自身のアドレスおよびポートの情報とステップ1102およびステップ1103にて取得された転送先アドレスおよび転送先ポートに基づいて出力ストリームOS1を取得する(ステップ1105)。この出力ストリームOS1は、上記のリクエストをエコーサーバ10からコンピュータ20のサーバコンポーネントへ送信(転送)するためのパケットデータの通信路である。
【0050】
ステップ1104およびステップ1105にて入力ストリームIS1および出力ストリームOS1が取得されると、ソケット作成部210は、ステップ1102およびステップ1103にて取得された転送先アドレスおよび転送先ポートに基づいて、サーバコンポーネントにリクエストを転送する専用の通信路である転送クライアントソケットを作成する(ステップ1106)。
【0051】
ステップ1106おいて転送クライアントソケットが作成されると、ストリーム取得部220は、この転送クライアントソケットとエコーサーバ10自身のアドレスおよびポートの情報に基づいて入力ストリームIS2を取得する(ステップ1107)。この入力ストリームIS2は、サーバコンポーネントからのレスポンスをコンピュータ20のサーバコンポーネントからエコーサーバ10へ送信するためのパケットデータの通信路である。また、ストリーム取得部220は、エコーサーバ10自身のアドレスおよびポートの情報と転送クライアントソケットに基づいて出力ストリームOS2を取得する(ステップ1108)。この出力ストリームOS2は、上記のレスポンスをエコーサーバ10からコンピュータ20のクライアントコンポーネントへ送信(転送)するためのパケットデータの通信路である。
【0052】
図12は、図11に示したストリーム取得処理後に実行されるスレッド作成部230におけるスレッド作成処理の流れを説明するフローチャートである。
図11に示したストリーム取得処理が行われた後に、スレッド作成部230は、ストリーム取得部220にて取得された入力ストリームIS1および出力ストリームOS1をパラメータとし、これらのストリームを結合して受信スレッドTH1を作成する(ステップ1201)。この受信スレッドTH1は、リクエスト送信元からパケットデータを受信して、このパケットデータを転送先サーバへ送信するための伝送経路である。また、スレッド作成部230は、ストリーム取得部220にて取得された入力ストリームIS2および出力ストリームOS2をパラメータとし、これらのストリームを結合して転送スレッドTH2を作成する(ステップ1202)。この転送スレッドTH2は、転送先サーバからパケットデータを受信して、このパケットデータをリクエスト送信元へ送信するための伝送経路である。
【0053】
そしてコンピュータ20のクライアントコンポーネントからリクエストが送信されると、転送実行部240は受信スレッドTH1を伝送経路として受信スレッドを開始する(ステップ1203)。またコンピュータ20のサーバコンポーネントからレスポンスが送信されると、転送実行部240は転送スレッドTH2を伝送経路として転送スレッドを開始する(ステップ1204)。ステップ1203およびステップ1204のスレッド処理については、後に図13を用いて説明する。
【0054】
転送実行部240は、上記の受信スレッドおよび転送スレッドが開始した後には、これらのスレッドが終了するまで待機する(ステップ1205)。そして転送実行部240は、受信スレッドが終了したら、この受信スレッドにて用いられた受信クライアントソケットを破棄する(ステップ1206)。また、転送実行部240は、転送スレッドが終了したら、この転送スレッドにて用いられた転送クライアントソケットを破棄する(ステップ1207)。
【0055】
図13は、転送実行部240におけるスレッド処理(すなわちパケットデータ転送処理)の流れを説明するフローチャートである。ここでは、図12のステップ1203において受信スレッドが開始した際の処理について説明する。
スレッド処理が開始されると、転送実行部240は、入力ストリームIS1からリクエストのパケットデータを読み込む(ステップ1301)。そして、転送実行部240は、入力ストリームIS1からの入力が完了したか否かを判断する(ステップ1302)。ステップ1302において、入力が終了していないと判断された場合、出力ストリームOS1へのデータの書き出しが行われる(ステップ1303)。そして、入力ストリームIS1からの入力が終了したと判断されるまでパケットデータの読み込みおよび書き出しが行われる。ステップ1302において入力が完了したと判断された場合、転送実行部240は、上記の入力ストリームIS1を破棄する(ステップ1304)。また、転送実行部240は、上記の出力ストリームOS1を破棄する(ステップ1305)。
【0056】
このように、本実施の形態におけるエコーサーバ10は、コンピュータ20のクライアントコンポーネントから送信されたリクエストをネットワーク40を介して中継し、このリクエストのパケットデータの送信元のアドレスおよび宛先のアドレスを変更してコンピュータ20のサーバコンポーネントに対して転送している。また、コンピュータ20のサーバコンポーネントから返送されたレスポンスをネットワーク40を介して中継し、このレスポンスのパケットデータの送信元のアドレスおよび宛先のアドレスを変更してコンピュータ20のクライアントコンポーネントに転送している。このようにすれば、コンピュータ20内でやり取りされていたリクエストおよびレスポンスのパケットデータを、ネットワーク40上に流すことができ、このパケットデータをモニタ30にて観測することができる。そして、リクエストのパケットデータの送信が開始されてから、レスポンスのパケットデータの受信が終了するまでの時間を観測することにより、サーバコンポーネントにおいて処理に要した時間を計測することができるようになる。
【0057】
図14は、モニタ30にて観測されるパケットデータのデータ構造の一例を示す図である。
図14に示すようにパケットデータには、このパケットデータが送信された時刻と、このパケットデータを送信する宛先のアドレスである宛先アドレスと、このパケットデータを送信する宛先のポートである宛先ポートと、このパケットデータの発信元のアドレスである発信元アドレスと、このパケットデータの発信元のポートである発信元ポートとが含まれる。本実施の形態は、元々コンピュータ20のコンポーネント間で行われるデータのやり取りを、コンピュータ20からネットワーク40上に設けられたエコーサーバ10へ送信し、かつエコーサーバ10からコンピュータ20へ返信する経路に切り替えるものである。したがって、元のコンポーネント間の通信1つに対して、エコーサーバ10を宛先としコンピュータ20を発信元とするパケットデータと、コンピュータ20を宛先としエコーサーバ10を発信元とするパケットデータの2つが生成され、監視対象となる。また本実施の形態では、ネットワーク40上を流れる上記のパケットデータを、当該ネットワーク40上にエコーサーバ10とは別個に設けられたモニタ30によって観測する。
【0058】
図15は、モニタ30によるパケットデータの観測に関する処理の流れを説明するフローチャートである。
図12のステップ1203における受信スレッドが開始されると、コンピュータ20のクライアントコンポーネントからエコーサーバ10にネットワーク40を介してパケットデータが送信される。ネットワーク40に接続されたモニタ30は、ネットワーク40上を流れる上記のパケットデータを取得する(ステップ1501)。そしてモニタ30は、このパケットデータから時刻を取得する(ステップ1502)。またモニタ30は、このパケットデータから宛先アドレスを取得し(ステップ1503)、宛先ポートを取得する(ステップ1504)。さらにモニタ30は、発信元アドレスを取得し(ステップ1505)、発信元ポートを取得する(ステップ1506)。そしてモニタ30は、ステップ1502〜ステップ1506において取得された各項目に基づいて、例えば装置内に設けられたメモリ領域等にトレースデータを記録する(ステップ1507)。ここでモニタ30は、パケットデータが終了したか否かの判断を行い(ステップ1508)、複数のパケットデータの送信が終了するまでステップ1501〜ステップ1508の処理を繰り返す。ステップ1508の判断は、図12のステップ1205に示したスレッドの終了に伴って行われ、パケットデータの送信が終了したと判断されると、モニタ30は処理を終了し、次のパケットデータが送信されるまで待機する。そして、ステップ1507にて記録されたトレースデータの時刻などの内容を解析することにより、コンピュータ20内のコンポーネントにおいて処理に要した時間を計測することができる。これにより、各々のコンポーネント毎の処理時間を計測され、どのコンポーネントにおいて多大な処理時間を要したかを知ることができる。
【0059】
さて、上述した基本的な動作例では、初期的に図8に示した対応表を作成し、この対応表の情報に基づいてソケット作成処理を行った(図9参照)。この対応表において転送先アドレス及び転送先ポートを未指定にしておくことも可能である。そのような場合、エコーサーバ10は、ソケット作成部210、ストリーム取得部220によって受信クライアントソケット、転送クライアントソケットを作成する際に、転送先アドレスとしてリクエストの送信元アドレスを用い、転送先ポートとして当該リクエストの本来の宛先ポートを用いる。これによって、当該リクエストの送信元ノードへ当該リクエストを送り返すようにスレッドが作成されることとなる(これをエコーバックすると言う)。このスレッドを用いたスレッド処理自体は、図13を参照して説明した動作となる。
【0060】
以上説明したようなエコーサーバ10を用いれば、一台のコンピュータ20内に設けられた複数のコンポーネントにより構成されたシステムにおいて、各コンポーネントにおける処理時間を計測することができる。また、モニタ30は、ネットワーク40に接続されていれば良く、被測定対象であるコンピュータ20中に組み込む必要がないため、コンピュータ20のコンポーネントにおける処理に負荷をかけることがなくなる。ここでは、エコーサーバ10とモニタ30とを別体に設ける場合について例示したが、ネットワーク40を流れるパケットデータを測定することのできる構成であれば、エコーサーバ10内にモニタ30と同等の機能を有する監視機能を設けても構わない。その際、エコーサーバ10における監視機能は、モニタ手段として機能する。
【0061】
また以上では、ソケット作成部210、ストリーム取得部220、スレッド作成部230によるインターフェイスとしてのソケットおよびパケットデータの伝送経路の生成が、エコーサーバ10において行われる場合について例示したが、同様の機能をコンピュータ20内に設けることにより、このコンピュータ20にて上述したソケットと伝送経路とを作成することも勿論可能である。そして、コンポーネント間のデータのやり取りを、このソケットおよび伝送経路を経由させ、ネットワークを介して行うようにすることができる。すると、エコーサーバ10にてソケットおよび伝送経路を作成した場合と同様に、パケットデータの流れをネットワーク40上で監視することができる。
【0062】
また、以上説明したエコーサーバ10の転送実行部240を用いたデータ処理により、ネットワーク40におけるデータ転送に用いられる帯域の幅が変更された状態を作ることができる。そして、この帯域幅を狭く設定することにより、帯域幅の狭いネットワーク環境におけるコンピュータ20内のコンポーネントでの処理速度等の挙動を検証することができる。
【0063】
さらに、上述のエコーサーバ10の転送実行部240を用いたデータ処理により、ネットワーク40におけるデータ転送に擬似的に遅延を発生させた状態を作ることができる。これにより、ネットワーク40に遅延が発生し得るようなネットワーク環境におけるシステムでの、コンピュータ20内の複数のコンポーネントにおける処置時間をシミュレートし、システムの挙動等を検証することができる。
【0064】
またさらに、上述のエコーサーバ10の転送実行部240を用いたデータ処理により、ネットワーク40やコンピュータ20内のデータ転送にエラーを発生させることができる。これにより、ネットワーク40やコンピュータ20がデータ転送の信頼性の低い環境が構築されている場合であっても、このような環境に応じたシステムの挙動を検証することができる。
【0065】
【発明の効果】
以上説明したように、本発明によれば、単一ノード上で構成された複数コンポーネントにわたるシステム統計情報を測定することができ、種々の環境条件に応じたシステムテストを低コストにて実施することができる。
また、本発明によれば、上記の単一ノード上でのシステム統計情報の測定手法を用いて、システムテストを実施可能である。
【図面の簡単な説明】
【図1】 エコーサーバの概念を説明する図である。
【図2】 エコーサーバを実現するコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図3】 クライアントデバイスと複数のコンポーネントを含むコンピュータとからなるネットワーク構成の一例を示す図である。
【図4】 図3に示したクライアントデバイスと複数のコンポーネント間におけるデータの流れを示す流れ図である。
【図5】 コンピュータの複数のコンポーネントの応答速度の計測を行うためのネットワーク構成の一例を示す図である。
【図6】 図5に示した複数のコンポーネントとエコーサーバおよびクライアントデバイスとの間におけるデータの流れを示す流れ図である。
【図7】 本実施の形態におけるエコーサーバの機能構成を示す図である。
【図8】 ソケット作成部にてソケットを作成するために用いられる対応表の一例を示す図である。
【図9】 エコーサーバにおいてソケット作成処理を開始するための処理の流れを説明するフローチャートである。
【図10】 ソケット作成部におけるソケット作成処理の流れを説明するフローチャートである。
【図11】 ストリーム取得部におけるストリーム取得処理および転送実行部における転送処理の流れを説明するフローチャートである。
【図12】 スレッド作成部におけるスレッド作成処理の流れを説明するフローチャートである。
【図13】 転送実行部におけるスレッド処理の流れを説明するフローチャートである。
【図14】 モニタにて観測されるパケットデータのデータ構造の一例を示す図である。
【図15】 モニタによるパケットデータの観測に関する処理の流れを説明するフローチャートである。
【符号の説明】
10…エコーサーバ、20…コンピュータ、30…モニタ、40…ネットワーク、50…クライアントデバイス、101…CPU、102…M/Bチップセット、103…メインメモリ、104…ビデオカード、105…ハードディスク、106…ネットワークインターフェイス、107…USBポート、108…ブリッジ回路、210…ソケット作成部、220…ストリーム取得部、230…スレッド作成部、240…転送実行部

Claims (12)

  1. コンピュータ装置内の複数のコンポーネントどうしの対応関係に含まれるアドレスとポート番号との組み合わせより、仮想インターフェイスとしてのソケットを作成するソケット作成手段と、
    単一の前記コンピュータ装置内の前記コンポーネントどうしで送受信されるデータを前記ソケットおよびネットワークを介して取得するための経路を作成する経路作成手段と、
    前記経路を介して取得された前記データを本来の送信先であるコンポーネントに転送する転送実行手段と
    を備えたことを特徴とするサーバ。
  2. 前記ソケット作成手段は、前記コンポーネントどうしの対応関係の情報に基づいて受信サーバソケットを作成し、当該受信サーバソケットに前記データが送信された際に、当該受信サーバソケットの情報を継承した当該データを送信する専用のソケットであるクライアントソケットを作成することを特徴とする請求項1に記載のサーバ。
  3. 前記経路作成手段は、前記コンピュータ装置から前記ネットワークを介して送信される前記データの伝送路である入力ストリームと、当該コンピュータ装置に当該ネットワークを介して転送される前記データの伝送路である出力ストリームとを取得して前記経路を作成することを特徴とする請求項1に記載のサーバ。
  4. 前記経路作成手段は、前記コンピュータ装置から送信されたリクエストとしての前記データを取得して当該コンピュータ装置に転送する伝送経路である受信スレッドと、当該コンピュータ装置から送信されたレスポンスとしての前記データを取得して当該コンピュータ装置に転送する伝送経路である転送スレッドとを作成することを特徴とする請求項1に記載のサーバ。
  5. 前記ネットワーク上を流れる前記データの送信が開始された時刻と、当該データの転送が終了した時刻とを観測するモニタ手段をさらに備えたことを特徴とする請求項1に記載のサーバ。
  6. 前記モニタ手段は、観測対象の前記データを分類するために、当該データに含まれる宛先アドレスと、宛先ポートと、発信元アドレスと、発信元ポートとを取得することを特徴とする請求項5に記載のサーバ。
  7. 前記転送実行手段は、前記ネットワークの帯域幅を変更して前記データを転送することを特徴とする請求項1に記載のサーバ。
  8. 前記転送実行手段は、前記ネットワークを遅延させて前記データを転送することを特徴とする請求項1に記載のサーバ。
  9. 単一のコンピュータ装置内の複数のコンポーネントどうしでやり取りされるデータに対してネットワークを介した伝送経路を設定する伝送経路設定手段と、
    前記データを前記伝送経路に流すためのインターフェイスを設定するインターフェイス設定手段と
    を備えたことを特徴とするサーバ。
  10. 前記インターフェイスおよび前記伝送経路を介して取得された前記データを前記ネットワーク上で監視する監視手段をさらに備えたことを特徴とする請求項9に記載のサーバ。
  11. コンピュータを制御してデータ処理を制御するプログラムであって、
    単一のコンピュータ装置内の複数のコンポーネントどうしでやり取りされるデータに対してネットワークを介した伝送経路を設定する伝送経路設定手段と、
    前記データを前記伝送経路に流すためのインターフェイスを設定するインターフェイス設定手段と
    を前記コンピュータに機能させることを特徴とするプログラム。
  12. 取得された前記データを前記ネットワーク上で監視する監視手段を前記コンピュータにさらに機能させることを特徴とする請求項11に記載のプログラム。
JP2003021804A 2003-01-30 2003-01-30 サーバおよびプログラム Expired - Fee Related JP3976262B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003021804A JP3976262B2 (ja) 2003-01-30 2003-01-30 サーバおよびプログラム
US10/768,905 US8966051B2 (en) 2003-01-30 2004-01-30 Technique for monitoring component processing
US14/619,503 US9942120B2 (en) 2003-01-30 2015-02-11 Technique for monitoring component processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003021804A JP3976262B2 (ja) 2003-01-30 2003-01-30 サーバおよびプログラム

Publications (2)

Publication Number Publication Date
JP2004234306A JP2004234306A (ja) 2004-08-19
JP3976262B2 true JP3976262B2 (ja) 2007-09-12

Family

ID=32951040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003021804A Expired - Fee Related JP3976262B2 (ja) 2003-01-30 2003-01-30 サーバおよびプログラム

Country Status (2)

Country Link
US (2) US8966051B2 (ja)
JP (1) JP3976262B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3976262B2 (ja) * 2003-01-30 2007-09-12 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバおよびプログラム
US9319451B2 (en) * 2013-07-15 2016-04-19 Google Inc. Systems and methods for selecting an accounting technique for interactions with electronic content
US20200201990A1 (en) * 2017-05-26 2020-06-25 Nec Corporation Data control system, data control method, and data control program
US10862964B2 (en) * 2018-09-18 2020-12-08 At&T Intellectual Property I, L.P. Peer packet transport
US11621980B2 (en) * 2020-07-07 2023-04-04 Agora Lab, Inc. System and method for providing upstream directives based on upstream signal quality of wireless network in real-time communication

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6087921A (ja) 1983-10-20 1985-05-17 Mitsubishi Heavy Ind Ltd スパイラルフインの溶接方法
JPH0573454A (ja) 1991-09-18 1993-03-26 Nippon Denki Computer Syst Kk 通信制御装置内折り返しによるデータ処理間通信方式
JPH05276173A (ja) 1992-03-27 1993-10-22 Hitachi Ltd 通信システム性能測定方式
US6098108A (en) * 1997-07-02 2000-08-01 Sitara Networks, Inc. Distributed directory for enhanced network communication
US6266701B1 (en) * 1997-07-02 2001-07-24 Sitara Networks, Inc. Apparatus and method for improving throughput on a data network
JPH1188330A (ja) 1997-09-12 1999-03-30 Nec Eng Ltd シミュレータ装置及びそれを用いたリモートメンテナンスシステム
US6339750B1 (en) * 1998-11-19 2002-01-15 Ncr Corporation Method for setting and displaying performance thresholds using a platform independent program
US6711137B1 (en) * 1999-03-12 2004-03-23 International Business Machines Corporation System and method for analyzing and tuning a communications network
US7032005B2 (en) * 2000-04-14 2006-04-18 Slam Dunk Networks, Inc. System for handling information and information transfers in a computer network
JP3730480B2 (ja) * 2000-05-23 2006-01-05 株式会社東芝 ゲートウェイ装置
FI20001630A (fi) * 2000-06-30 2001-12-31 Nokia Mobile Phones Ltd Palvelun laadun määritys datavirroille
JP2002077070A (ja) 2000-08-31 2002-03-15 Matsushita Electric Ind Co Ltd 通信ネットワーク自動試験システム
US7587499B1 (en) * 2000-09-14 2009-09-08 Joshua Haghpassand Web-based security and filtering system with proxy chaining
US7120693B2 (en) * 2001-05-08 2006-10-10 International Business Machines Corporation Method using two different programs to determine state of a network node to eliminate message response delays in system processing
US6922727B2 (en) * 2001-06-26 2005-07-26 International Business Machines Corporation Method and system for managing parallel data transfer through multiple sockets to provide scalability to a computer network
US7152105B2 (en) * 2002-01-15 2006-12-19 Mcafee, Inc. System and method for network vulnerability detection and reporting
US7535913B2 (en) * 2002-03-06 2009-05-19 Nvidia Corporation Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols
JP3976262B2 (ja) * 2003-01-30 2007-09-12 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバおよびプログラム

Also Published As

Publication number Publication date
US8966051B2 (en) 2015-02-24
JP2004234306A (ja) 2004-08-19
US20040220950A1 (en) 2004-11-04
US20150156099A1 (en) 2015-06-04
US9942120B2 (en) 2018-04-10

Similar Documents

Publication Publication Date Title
US9928361B2 (en) Debug architecture
US8140704B2 (en) Pacing network traffic among a plurality of compute nodes connected using a data communications network
US7953957B2 (en) Mapping and distributing parallel algorithms to compute nodes in a parallel computer based on temperatures of the compute nodes in a hardware profile and a hardware independent application profile describing thermal characteristics of each parallel algorithm
US7797445B2 (en) Dynamic network link selection for transmitting a message between compute nodes of a parallel computer
TWI423039B (zh) 伺服器系統與其操作方法
US9009350B2 (en) Determining a path for network traffic between nodes in a parallel computer
US9882801B2 (en) Providing full point-to-point communications among compute nodes of an operational group in a global combining network of a parallel computer
US9942120B2 (en) Technique for monitoring component processing
US10132863B2 (en) Debug architecture
US20090040946A1 (en) Executing an Allgather Operation on a Parallel Computer
US8804543B2 (en) Test method for network system
US9927486B2 (en) Debug architecture
US20100223425A1 (en) Monitoring Module
US7783933B2 (en) Identifying failure in a tree network of a parallel computer
CN108768778B (zh) 一种网络时延计算方法、装置、设备及存储介质
Steinberg et al. An empirical analysis of the IEEE-1394 serial bus protocol
US8788644B2 (en) Tracking data processing in an application carried out on a distributed computing system
US10148518B2 (en) Method and apparatus for managing computer system
US7225274B2 (en) Method and apparatus for transferring data across a protocol bridge
US20020174387A1 (en) Stealth module for bus data analyzer
FR3057127A1 (fr) Processeur adapte pour un reseau ethernet commute deterministe
Bauer et al. Intra-node Resource Isolation for SFC with SR-IOV
CN117172205B (zh) 性能分析方法、装置、电子设备及存储介质
JP5069079B2 (ja) ハブ装置
JP2004271282A (ja) 高速シリアルコントローラ

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060530

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070612

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070615

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110629

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120629

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130629

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees