(57)【要約】【課題】既存のコンピュータ間で送信されるデータの順番と同じ順番で試験対象コンピュータにデータを送信する。【解決手段】第１装置から第２装置へ送信される第１データと、第１データの第１送信時刻とを取得すると共に、第１データ送信開始後に、第１装置から第２装置へ送信された第２データと、第２データの第２送信時刻とを受信する受信部と、受信した第１データ及び第２データを第３の装置へ送信する送信部と、送信部による第１データの送信時刻と第１データに対する返信データの受信時刻との間の第１時間間隔が、第１送信時刻と、第２送信時刻との間の時間間隔より長い場合に、送信部による第１データ送信の送信時刻と送信部による第２データの送信時刻との間の時間間隔が、第１時間間隔より長くなるように、送信部に対する第２データの送信タイミングの制御を行う制御部と、を有するデータ変換装置が提供される。【選択図】図３
2011159168.tif 000002
【特許請求の範囲】
【請求項１】
第１の装置から第２の装置へ送信される第１のデータと、前記第１のデータの第１の送信時刻とを取得すると共に、前記第１のデータ送信開始後に、前記第１の装置から前記第２の装置へ送信された第２のデータと、前記第２のデータの第２の送信時刻とを受信する受信部と、
受信した前記第１のデータ及び前記第２のデータを第３の装置へ送信する送信部と、
前記送信部による前記第１のデータの送信時刻と前記第１のデータに対する返信データの受信時刻との間の第１の時間間隔が、前記第１の送信時刻と、前記第２の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第１のデータ送信の送信時刻と前記送信部による前記第２のデータの送信時刻との間の時間間隔が、前記第１の時間間隔より長くなるように、前記送信部に対する前記第２のデータの送信タイミングの制御を行う制御部と、を有することを特徴とするデータ変換装置。
【請求項２】
前記受信部が、前記第２のデータ送信の開始後に、前記第１の装置から前記第２の装置へ送信された第３のデータと、前記第３のデータの第３の送信時刻と、前記第３の装置から前記第２のデータに対する返信データを受信し、
前記送信部が、前記第２のデータを前記第３の装置へ送信し、
前記送信部による前記第２のデータの送信時刻との前記第２のデータに対する返信データの受信時刻との第２の時間間隔が、前記第２のデータ送信時刻と、前記第３の送信時刻との間の時間間隔より長い場合に、前記制御部が、前記送信部による前記第２のデータのデータ送信時刻と前記送信部による前記第３のデータの送信時刻との時間間隔が、前記第２の時間間隔より長くなるように、前記送信部に対する前記第３のデータの送信タイミングの制御を行うことを特徴とする請求項１に記載のデータ変換装置。
【請求項３】
前記受信部が、前記第１のデータ送信開始後に開始される前記第１の装置から前記第２の装置へ送信された第４のデータと、前記第４のデータの第４の送信時刻とを受信し、前記第２のデータ及び前記第４のデータは、前記第３の装置が前記第３の装置に格納されるソフトウェアを実行するときに、使用されるデータであり、
前記制御部は、前記送信部による前記第１のデータの送信時刻と前記第４の送信時刻との時間間隔が、前記第１の時間間隔より長くなるように、前記送信部に対する前記第４のデータの送信タイミングの制御を行うことを特徴とする請求項１又は２に記載のデータ変換装置。
【請求項４】
受信部、送信部、及び制御部を有するデータ変換装置を用いてデータ変換方法であって、
前記受信部が、第１の装置から第２の装置へ送信された第１のデータと、前記第１のデータの第１の送信時刻と、前記第１のデータ送信開始後に、前記第１の装置から前記第２の装置へ送信された第２のデータと、前記第２のデータの第２の送信時刻と、を受信し、
前記送信部が、前記第１のデータを前記第３の装置へ送信し、
前記第１のデータの送信時刻と前記第１のデータに対する返信データの受信時刻との第１の時間間隔が、前記第１の送信時刻と、前記第２の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第１のデータ送信の送信時刻と前記送信部による前記第２のデータの送信時刻との時間間隔が記第１の時間間隔より長くなるように、前記制御部が、前記送信部に対する前記第２のデータの送信タイミングの制御を行い、
前記送信部が、前記制御部の指示に従って前記第２のデータを前記第３の装置へ送信することを特徴とするデータ変換方法。
【請求項５】
前記受信部が、前記第２のデータ送信の開始後に、前記第１の装置から前記第２の装置へ送信された第３のデータと、前記第３のデータの第３の送信時刻と、前記第３の装置から前記第２のデータに対する返信データを受信し、
前記送信部が、前記第２のデータを前記第３の装置へ送信し、
前記送信部による前記第２のデータの送信時刻との前記第２のデータに対する返信データの受信時刻との第２の時間間隔が、前記第２のデータ送信時刻と、前記第３の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第２のデータのデータ送信時刻と前記送信部による前記第３のデータの送信時刻との時間間隔が、前記第２の時間間隔より長くなるように、前記制御部が、前記送信部に対する前記第３のデータの送信タイミングの制御を行うことを特徴とする請求項４に記載のデータ変換方法。
【請求項６】
前記受信部が、前記第１のデータ送信開始後に開始される前記第１の装置から前記第２の装置へ送信された第４のデータと、前記第４のデータの第４の送信時刻とを受信し、前記第２のデータ及び前記第４のデータは、前記第３の装置が前記第３の装置に格納されるソフトウェアを実行するときに、使用されるデータであり、
前記送信部による前記第１のデータの送信時刻と前記第４の送信時刻との時間間隔が、前記第１の時間間隔より長くなるように、前記制御部が、前記送信部に対する前記第４のデータの送信タイミングの制御を行うことを特徴とする請求項４又は５に記載のデータ変換方法。
【請求項７】
受信部、送信部、記憶部、及び制御部を有するデータ変換装置にデータ変換を実行させるプログラムであって、
前記記憶部に、第１の装置から第２の装置へ送信された第１のデータと、前記第１のデータの第１の送信時刻と、前記第１のデータ送信開始後に、前記第１の装置から前記第２の装置へ送信された第２のデータと、前記第２のデータの第２の送信時刻と、を記憶させる手順、
前記送信部に、前記第１のデータを前記第３の装置へ送信させる手順と、
前記第１のデータの送信時刻と前記第１のデータに対する返信データの受信時刻との第１の時間間隔が、前記第１の送信時刻と、前記第２の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第１のデータ送信の送信時刻と前記送信部による前記第２のデータの送信時刻との時間間隔が前記第１の時間間隔より長くなるように、前記制御部に、前記送信部に対する前記第２のデータの送信タイミングの制御を行わせる手順、及び、
前記送信部に、前記制御部の指示に従って前記第２のデータを前記第３の装置へ送信させる手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ変換装置、データ変換方法及びプログラムに関する。
【背景技術】
【０００２】
ソフトウェア開発では、開発中のソフトウェアがコンピュータにより正しく実行されるか否かを確認する試験が行われる。このような試験を行うことで、ソフトウェアの不具合に加え、ハードウェアの不具合も発見することができる。
【０００３】
ソフトウェアやハードウェアの不具合には、ハードウェアがソフトウェアの実行を短時間行っているときには発見されないものがある。そのため、コンピュータにソフトウェアの実行を長時間行わせる試験が行われる。
【０００４】
既存のコンピュータと同じ処理を、試験対象のコンピュータに行わせる試験がある。そのような試験では、ハードウェア負荷を上げるために、試験対象のコンピュータに擬似的なデータを処理させることが行われる。また、他のコンピュータとのデータ通信を行うコンピュータの試験では、既存のコンピュータ間で送受信されるデータを取得して、試験対象コンピュータに、取得したデータを送信することが行われる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１９３４６８号公報
【特許文献２】特開２００３−２８３５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、擬似的にデータを生成する試験では、試験データは擬似データに限定されるため、実際に送信されるデータの内容や、データの送受信タイミングを完全に再現することはできない。そのため、擬似的にデータを生成する試験では、実際にコンピュータがソフトウェアを実行することで生じる問題を完全に再現できないため、試験を行ったコンピュータが、運用を開始した後に、ソフトウェアやコンピュータに不具合が発見されることがある。
【０００７】
また、運用中のコンピュータ間で送受信されるデータを取得して、試験対象コンピュータにデータを送信する試験は、送信されるデータの順番がずれる場合がある。そのような場合、試験対象コンピュータで実行中の処理に要するデータと一致しないデータが送信されるため、試験対象コンピュータは適切なソフトウェア処理を実行できなくなる。
【０００８】
開示のデータ変換装置は、既存のコンピュータに送信されるデータを、既存のコンピュータに送信されるデータの順番と同じ順番で試験対象コンピュータに送信することを目的とする。
【課題を解決するための手段】
【０００９】
第１の装置から第２の装置へ送信される第１のデータと、第１のデータの第１の送信時刻とを取得すると共に、第１のデータ送信開始後に、第１の装置から第２の装置へ送信された第２のデータと、第２のデータの第２の送信時刻とを受信する受信部と、受信した第１のデータ及び第２のデータを第３の装置へ送信する送信部と、送信部による第１のデータの送信時刻と第１のデータに対する返信データの受信時刻との間の第１の時間間隔が、第１の送信時刻と、第２の送信時刻との間の時間間隔より長い場合に、送信部による第１のデータ送信の送信時刻と送信部による第２のデータの送信時刻との間の時間間隔が、第１の時間間隔より長くなるように、送信部に対する第２のデータの送信タイミングの制御を行う制御部と、を有するデータ変換装置が提供される。
【発明の効果】
【００１０】
開示のデータ変換装置は、既存のコンピュータに送信されるデータを、既存のコンピュータに送信されるデータの順番と同じ順番で試験対象コンピュータに送信することができる。
【図面の簡単な説明】
【００１１】
【図１】データ変換装置が用いられるシステム構成の一例を示す図である。
【図２】データ変換装置の構成の第１例を示す図である。
【図３】データ送信制御処理の一例を示すタイムチャートである。
【図４】データ変換装置の構成の第２例を示す図である。
【図５】既存サーバ送信情報の一例を示す図である。
【図６】既存サーバシーケンス情報の一例を示す図である。
【図７】試験サーバ送信情報の一例を示す図である。
【図８】試験サーバシーケンス情報の一例を示す図である。
【図９】テーブルの一例を示す図である。
【図１０】データ変換装置のハードウェア構成の一例を示す図である。
【図１１Ａ】通信部の一例を示す図である。
【図１１Ｂ】通信部の一例を示す図である。
【図１２】データ変換方法の一例を示すシーケンス図である。
【図１３】データ変換方法の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、データ変換装置及びデータ変換方法の実施形態を説明する。
【００１３】
［システム構成］
図１は、データ変換装置１００が用いられるシステム構成の一例を示す図である。図１に示すシステム構成１は、ネットワーク２、データ変換装置１００、クライアント２００Ａ〜２００Ｃ、既存サーバ３００Ａ〜３００Ｃ、試験サーバ４００Ａ〜４００Ｃ、及び通信装置５００、通信装置５１０Ａ、５１０Ｂを有する。データ変換装置１００、クライアント２００Ａ〜２００Ｃ、既存サーバ３００Ａ〜３００Ｃ、試験サーバ４００Ａ〜４００Ｃは、通信装置５００、５１０Ａ、５１０Ｂを介してネットワーク２に接続されている。ネットワーク２は、コンピュータネットワークであり、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットである。
【００１４】
なお、図１に示すクライアント２００、既存サーバ３００、試験サーバ４００の台数は例示であり、それらの装置は、図示される台数以上であってもよい。また、以下の説明では、２００は、クライアント２００Ａ〜２００Ｃの何れかを示し、３００は、既存サーバ３００Ａ〜３００Ｃの何れかを示し、４００は、試験サーバ４００Ａ〜４００Ｃの何れかを示すものとする。
【００１５】
クライアント２００は、既存サーバ３００に所定の機能を要求する情報処理装置であり、例えば、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末である。クライアント２００は、既存サーバ３００と伝送制御プロトコルに従うデータ通信を行う。伝送制御プロトコルは、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）や、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）である。
【００１６】
既存サーバ３００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）とメモリを有し、ＣＰＵでメモリに格納されたソフトウェアを実行することにより、クライアント２００に所定の機能を提供する情報処理装置である。既存サーバ３００は、例えば、ソフトウェア開発が終了して、運用が開始された情報処理装置である。既存サーバ３００は、クライアント２００によるデータの送信先になり、クライアント２００と、伝送制御プロトコルに従ってデータ通信を行う。
【００１７】
試験サーバ４００は、ＣＰＵとメモリを有し、ＣＰＵでメモリに格納されたソフトウェアを実行することにより、クライアント２００に対して、既存サーバ３００と同じ機能を提供するプログラムを実行する情報処理装置である。試験サーバ４００は、例えば、ソフトウェアのデバッグ作業が終了して、そのソフトウェアを実行することで、クライアント２００にサービスを提供する予定の情報処理装置であり、且つ長時間ソフトウェアを実行する試験の対象となる情報処理装置である。
【００１８】
試験サーバ４００は、例えば、既存サーバ３００に含まれると同じ機能を提供するが、コンピュータ言語が既存サーバ３００に含まれるプログラムとは異なるプログラムを実行する情報処理装置に相当する。或いは、試験サーバ４００は、例えば、既存サーバ３００と同じアプリケーションプログラムを実行するが、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及び／又はハードウェアが異なるタイプのものである情報処理装置に相当する。また、試験サーバ４００は、例えば、既存サーバ３００と同じアプリケーションプログラム及びＯＳを、仮想化ソフトウェアと共に、既存サーバ３００のハードウェアとは異なるハードウェアにより実行する情報処理装置に相当する。試験サーバ４００は、データ変換装置１００がデータの送信先として指定し、既存サーバ３００と同じ伝送制御プロトコルに従って、データ変換装置１００とデータ通信を行う。
【００１９】
データ変換装置１００は、クライアント２００が既存サーバ３００に送信したデータを取得し、取得したデータを、クライアント２００に代わって試験サーバ４００に送信する情報処理装置である。データ変換装置１００は、例えば、試験サーバ４００を対象とする長時間ソフトウェアを実行する試験を行うためにデータを試験サーバ４００に送信する試験装置として機能することが出来る。クライアント２００から送信されたデータの宛先は既存サーバ３００であるので、データ変換装置１００は、データの宛先を試験サーバ４００に変換するアドレス変換処理を実行する。データ変換装置１００は、擬似データを使用せず、クライアント２００と既存サーバ３００との間の送信データを試験サーバ４００に送信する。そのため、そのようなデータ送信を長時間行う試験を行うことで、試験サーバ４００が実際に運用を開始する前に、ソフトウェアやハードウェアに生ずる不具合が発見することができる。このような、不具合は、例えば、試験サーバ４００のメモリに格納されるログファイル（アプリケーションプログラム、ＯＳ等の処理内容、警告などの時間履歴）等に保存されて、試験後又は試験中にログファイルを参照することで発見される。
【００２０】
データ変換装置１００はさらに、既存サーバ３００がクライアント２００に送信したデータも取得し、クライアント２００と既存サーバ３００との間のデータ送信の順番を検出する。データ変換装置１００は、クライアント２００と既存サーバ３００との間のデータ送信の順番が、データ変換装置１００と試験サーバ４００との間でも維持されるように、試験サーバ４００へのデータ送信タイミングを制御するデータ送信制御処理を実行する。データ変換装置１００についての詳細な説明は、例えば、図２を用いて後述される。
【００２１】
通信装置５００、５１０Ａ、５１０Ｂは、入力されたデータを、データの転送先の機器を宛先アドレスに従って転送する装置である。宛先アドレスは、例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス、又は、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスである。通信装置５００、５１０Ａ、５１０Ｂは、例えば、Ｌ３（Ｌａｙｅｒ  ３）スイッチ、又は、Ｌ２（Ｌａｙｅｒ  ２）スイッチである。
【００２２】
通信装置５００は、データ変換装置１００、クライアント２００Ａ〜２００Ｃ、既存サーバ３００Ａ〜３００Ｃ、及び試験サーバ４００Ａ〜４００Ｃに接続される。
【００２３】
通信装置５００は、クライアント２００が接続されるポートと、既存サーバ３００が接続されるポートと接続することで、クライアント２００と既存サーバ３００との間のデータ通信を提供する。通信装置５００はさらに、データ変換装置１００が接続されるポートと、試験サーバ４００が接続されるポートとを接続することで、データ変換装置１００と試験サーバ４００との間のデータ通信を提供する。
【００２４】
また、通信装置５００は、クライアント２００又は既存サーバ３００と接続されるポートを経由するフレームを、データ変換装置１００が接続されるポートにコピーする動作を行う。このようにして、通信装置５００は、クライアント２００と既存サーバ３００との間で送信されるデータを、データ変換装置１００に送信することができる。
【００２５】
なお、通信装置５００とデータ変換装置１００は、同じ装置であってもよい。通信装置５００とデータ変換装置１００が同じ装置となる場合の機能並びにハードウェア構成の説明は、図１１Ｂを用いて後述される。
【００２６】
［データ変換装置の構成の第１例］
図２は、データ変換装置１００の第１例を示す図である。データ変換装置１００の第１例であるデータ変換装置１００ａは、制御部１１０、受信部１７０ａ、及び送信部１７１ａを有する。
【００２７】
受信部１７０ａは、クライアント２００から既存サーバ３００に送信されたデータ、及び、試験サーバ４００から送信されたデータを受信する。送信部１７１ａは、制御部１１０により指示を受けたデータを、試験サーバ４００に送信する処理を行う。
【００２８】
制御部１１０は、クライアント２００が既存サーバ３００に送信したデータの宛先を試験サーバ４００に変換すると共に、データの発信元をクライアント２００からデータ変換装置１００に変えるアドレス変換処理を実行する。
【００２９】
制御部１１０はさらに、クライアント２００と既存サーバ３００との間のデータ送信の順番が、データ変換装置１００と試験サーバ４００との間でも維持されるように、試験サーバ４００へのデータ送信のタイミングを制御するデータ送信制御処理を実行する。
【００３０】
既存サーバ３００と試験サーバ４００は、クライアント２００の要求に対して応答した応答時間が異なる場合がある。例えば、クライアント２００の代わりとなるデータ変換装置１００と試験サーバ４００との間のコネクションの確立から開放までの時間間隔が、クライアント２００と既存サーバ３００との間のコネクションの確立から開放までの時間間隔と異なる場合がある。
【００３１】
なお、コネクションとは、情報処理装置間のデータ通信において使用される論理的な通信路であって、送信されるデータに含まれる識別情報を用いて特定される通信路である。コネクションは、例えば、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルで特定される通信路に相当する。データ通信が、例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）によるものである場合、ＩＰアドレス、ポート番号、シーケンス番号、ウィンドウサイズ等により特定される。
【００３２】
既存サーバ３００の応答時間と試験サーバ４００の応答時間が相違する理由は、例えば、ハードウェアの相違、アプリケーションソフトウェア、システムソフトウェアの相違である。ハードウェア構成の違いとは、例えば、プロセッサの処理時間の相違や、通信経路の違いである。また、システムソフトウェアの違いとは、例えば、ＯＳや、ＯＳ環境を仮想的に実現する仮想化ソフトウェアの違いである。
【００３３】
試験サーバ４００の応答時間が既存サーバ３００の応答時間より長い場合、データ変換装置１００が、クライアント２００の送信タイミングと同様に試験サーバ４００に要求を送信すると、試験サーバ４００は応答処理を完了しない状況で後続要求を受信する。試験サーバ４００に送信される後続の要求は、クライアント２００が既存サーバ３００から受信したデータを元に生成された要求であるため、試験サーバ４００において既存サーバ３００と異なるデータ処理を生じさせて、不具合が生じる。
【００３４】
既存サーバ３００及び試験サーバ４００が実行するソフトウェアが、電子商取引サービスに関するものである例を説明する。既存サーバ３００及び試験サーバ４００が実行する電子商取引サービスは、以下のような処理を実行するものとする。
（１）サーバは、クライアント２００から商品Ａの購入価格を受け取り、購入価格が他クライアントの受け取り価格より高ければ、クライアント２００に商品の引き当て処理を実行すると共にクライアント２００に購入が可能であることを通知する処理を実行する。
（２）サーバは、クライアント２００から購入要求を受け取ると、クライアント２００への引き当てを確認できれば、クライアント２００に商品Ａを発注する処理を実行する。
【００３５】
このような処理において、試験サーバ４００による処理（１）が既存サーバ３００による処理（１）に対して遅いと、クライアント２００に対する商品引き当てが終了していない状況で、クライアント２００から購入要求を受け取ることになる。そのような場合、試験サーバ４００は商品引き当ての無いクライアントが購入要求をしてきたと判断して、クライアント２００への処理（２）の実行を行わない。試験サーバ４００による処理（１）終了後、試験サーバ４００はクライアント２００からの購入要求を待つことになるが、クライアント２００は既に購入要求を行っており、購入要求を再送しないため、試験サーバ４００の処理は中断することになる。このように、試験サーバ４００が既存サーバ３００より処理時間が遅いと、同じ処理を実行できるか否かという検証が中断することになる。
【００３６】
既存サーバ３００及び試験サーバ４００が実行する電子商取引サービスはさらに、以下のような処理を実行するものとする。
（３）他のクライアントが、処理（１）の後で、処理（２）の前に商品Ａの購入価格を送信し、他のクライアントが、処理（１）のクライアント２００より高い価格であったため、サーバは、他のクライアントの購入を拒絶する処理を実行する。
【００３７】
試験サーバ４００による処理（１）が既存サーバ３００による処理（１）に対して遅いと、処理（３）でクライアント２００に対する商品引き当てが終了せず、他のクライアントの購入価格が最安値となり、他のクライアントに商品引き当てが生じる。このような状況で、クライアント２００から購入要求を受け取ると、試験サーバ４００は、クライアント２００への商品Ａの発注処理を行なわず、他のクライアントからの発注処理を待つことになる。他のクライアントは既存サーバ３００から購入を拒絶されており、発注処理を行わないため、試験サーバ４００の処理は中断することになる。このように、試験サーバ４００が既存サーバ３００より処理時間が遅いと、同じ処理を実行できるか否かという検証が中断することになる。
【００３８】
このような不具合を回避するため、制御部１１０は、クライアント２００と既存サーバ３００との間のデータ送信の順番が、データ変換装置１００と試験サーバ４００との間でも維持されるように、試験サーバ４００へのデータ送信のタイミングを制御する。以下に、データ送信制御処理の一例を説明する。
【００３９】
［データ送信制御処理］
図３は、データ送信制御処理の一例を示す図である。図３のＴ７０１は、クライアント２００と既存サーバ３００との間で送信されるデータのタイミングチャートの一例である。
【００４０】
Ｃ１は、クライアント２００と既存サーバ３００との間のデータ送信を示し、例えば、クライアント２００が既存サーバ３００に対する要求と、既存サーバ３００がその要求に対して応答とを含むデータ送信である。また、Ｃ１は、例えば、ＴＣＰによるコネクションが確立してから、ＴＣＰによるコネクションを放棄するまでのデータ送信である。Ｔ１１は、クライアント２００が既存サーバ３００に対してＣ１に関する要求データを最初に送信した時刻である。
【００４１】
Ｃ２は、Ｃ１の後に、Ｃ１においてデータを送信したクライアント２００が既存サーバ３００に対する要求の送信と、既存サーバ３００がその要求に対して応答の送信とを含むデータ送信である。Ｔ１２は、クライアント２００が既存サーバ３００に対してＣ２に関する要求データを最初に送信した時刻である。ＴＳ１０は、Ｃ１に関する要求データの送信時刻Ｔ１１と、Ｃ１に関する要求データに対する返信データの受信時刻Ｔ１２との間の時間間隔である。
【００４２】
Ｃ５は、Ｃ２の後に、Ｃ１においてデータを送信したクライアント２００が既存サーバ３００に対する要求の送信と、既存サーバ３００がその要求に対して応答の送信とを含むデータ送信である。Ｔ１３は、クライアント２００が既存サーバ３００に対してＣ５に関する要求データを最初に送信した時刻である。ＴＳ２０は、Ｃ２に関する要求データの送信時刻Ｔ１２と、Ｃ５に関する要求データの送信時刻Ｔ１３との間の時間間隔である。
【００４３】
Ｃ７は、Ｃ１の後に、クライアント２００と異なるクライアントが、Ｃ１においてクライアント２００が送信した要求と同じ要求の送信と、既存サーバ３００がその要求に対して応答の送信とを含むデータ送信である。例えば、Ｃ１でクライアント２００が、既存サーバ３００が実行する電子商取引サービスに対する商品Ａの購入価格を送信するケースであれば、Ｃ７ではクライアント２００と異なるクライアントが商品Ａの購入価格を送信するケースに相当する。Ｔ１４は、データ送信Ｃ１とは関係の無いクライアントが既存サーバ３００に対してＣ７に関する要求データを最初に送信した時刻である。ＴＳ１５は、Ｃ１に関する要求データの送信時刻Ｔ１１と、Ｃ７に関する要求データの送信時刻Ｔ１４との間の時間間隔である。
【００４４】
Ｃ２、Ｃ５、Ｃ７は、例えば、コネクション確立からコネクション放棄までのクライアント２００と既存サーバ３００との間のデータ送信である。
【００４５】
図３のＴ７１１、Ｔ７１２、及びＴ７１３は、データ変換装置１００と既存サーバ３００との間で送信されるデータのタイミングチャートの一例である。データ変換装置１００は、データの送受信処理、アドレス変換処理、データ送信制御処理を実行するために、受信データと送信データとの間には時間差ΔＴが生じる。そのため、クライアント２００と既存サーバ３００との間の送信データを取得した後のΔＴ経過後に、試験サーバ４００にデータを送信する。したがって、７１５、７１６、及び７１７に示すデータ変換装置１００と試験サーバ４００との間のデータ送信時間は、７０５に示すクライアント２００と既存サーバ３００との間のデータ送信時間に対してΔＴ加算した時間となる。
【００４６】
Ｃ３は、Ｃ１に関してクライアント２００が既存サーバ３００に送信したデータを、クライアント２００に代わってデータ変換装置１００が行う試験サーバ４００へのデータ送信と、それに対する試験サーバ４００の応答とを含むデータ送信を示す。Ｃ４ａ及びＣ４ｂは、Ｃ２に関してクライアント２００が既存サーバ３００に送信したデータを、クライアント２００に代わってデータ変換装置１００が行う試験サーバ４００へのデータ送信と、それに対する試験サーバ４００の応答とを含むデータ送信を示す。Ｃ６ａ及びＣ６ｂは、Ｃ５に関してクライアント２００が既存サーバ３００に送信したデータを、クライアント２００に代わってデータ変換装置１００が行う試験サーバ４００へのデータ送信と、それに対する試験サーバ４００の応答とを含むデータ送信を示す。Ｃ８ａ及びＣ８ｂは、Ｃ７に関してクライアント２００が既存サーバ３００に送信したデータを、クライアント２００に代わってデータ変換装置１００が行う試験サーバ４００へのデータ送信と、それに対する試験サーバ４００の応答とを含むデータ送信を示す。Ｃ３、Ｃ４ａ及びＣ４ｂ、Ｃ６ａ及びＣ６ｂ、Ｃ８ａ及びＣ８ｂは何れも、例えば、コネクション確立からコネクション放棄するまでのデータ変換装置１００と試験サーバ４００とのデータ送信である。
【００４７】
Ｔ２１は、クライアント２００に代わってデータ変換装置１００が既存サーバ３００に対してＣ３に関する要求データを最初に送信した時刻である。Ｔ２３は、試験サーバ４００がデータ変換装置１００により送信されたデータに対する返信データを受信した時刻である。ＴＳ３０は、Ｃ３に関する要求データの送信時刻Ｔ２１と、Ｃ３に関する要求データに対する返信データの受信時刻Ｔ２３との間の時間間隔である。ＴＳ３１は、Ｃ３に関する要求データの送信時刻Ｔ２１と、Ｃ４ａに関する要求データの送信時刻Ｔ２２との間の時間間隔である。
【００４８】
Ｔ２２は、Ｔ２１から、クライアント２００と既存サーバ３００とにおける時間間隔ＴＳ１０経過後に、データ変換装置１００が試験サーバ４００にＣ４ａに関するデータを送信した場合を示す。このように、時刻Ｔ２２でＣ４ａに関するデータ送信を開始した場合、試験サーバ４００がＣ３に関する返信データの受信（Ｔ２３）前に、試験サーバ４００は、時刻Ｔ２２で新たなデータを受信することになる。上述のように、先行送信データの処理完了前に後続送信データに関する処理を実行することによる不都合が生じる。
【００４９】
ＴＳ３３は、Ｃ３に関する要求データの送信時刻Ｔ２１と、Ｃ４ｂに関する要求データの送信時刻Ｔ２４との間の時間間隔である。データ変換装置１００は、Ｃ４ａに関するデータ送信を、Ｃ３に関するデータ送信が終了するまで遅延させる。データ変換装置１００は、Ｃ３に関するデータ送信終了時Ｔ２３経過後である時刻Ｔ２４に、Ｃ４ａに相当するＴ７１２のデータ送信Ｃ４ｂを開始する。このように、データ変換装置１００がＣ２に対応するデータ送信Ｃ４ｂを、先行のデータ送信Ｃ３の経過後に行うことで、試験サーバ４００が先行データの処理中にＣ４ｂを受信するという不都合を回避することができる。
【００５０】
Ｔ２５は、Ｔ２１から、クライアント２００と既存サーバ３００とにおける時間間隔ＴＳ１０及びＴＳ２０経過後に、データ変換装置１００が試験サーバ４００にＣ６ａに関するデータを送信した時刻を示す。ＴＳ４０は、Ｃ４ｂに関する要求データの送信時刻Ｔ２４と、Ｃ４ｂに関する要求データに対する返信データの受信時刻Ｔ２７との間の時間間隔である。ＴＳ４１は、Ｃ４ｂに関する要求データの送信時刻Ｔ２４と、Ｃ６ａに関する要求データの送信時刻Ｔ２５との間の時間間隔である。Ｃ４ｂの送信には、Ｃ２と同様に時間間隔ＴＳ２０に相当するＴＳ４０の時間がかかる。データ変換装置１００によって、データ送信Ｃ４ｂの送信開始を遅延させた場合、試験サーバ４００がＣ４ｂに関する返信データの受信時刻Ｔ２７前に、試験サーバ４００は、Ｃ６ａに関する新たなデータを、時刻Ｔ２５で受信することになる。上述のように、先行送信データの処理完了前に後続送信データに関する処理を実行することによる不都合が生じる。
【００５１】
そこで、データ変換装置１００は、Ｃ６ａに関するデータ送信を、Ｃ４ｂに関するデータ送信が終了するまで遅延させる。データ変換装置１００は、Ｃ４ｂに関する要求データの受信時刻Ｔ２７の後の時刻Ｔ２８、Ｃ５に相当するＴ７１３のデータ送信Ｃ６ｂを開始する。このように、データ変換装置１００がＣ５に対応するデータ送信Ｃ６ｂを、先行のデータ送信Ｃ４ｂの経過後に行うことで、試験サーバ４００が先行データの処理中にＣ６ｂを受信するという不都合を回避することができる。
【００５２】
Ｔ２６は、Ｔ２１から、クライアント２００と既存サーバ３００とにおける時間間隔ＴＳ１５経過後に、データ変換装置１００が試験サーバ４００に、データ送信Ｃ７に対応するＣ８ａに関するデータを送信した時刻を示す。ＴＳ５０は、Ｃ３に関する要求データの送信時刻Ｔ２１と、Ｃ８ａに関する要求データの送信時刻Ｔ２６との間の時間間隔である。このように、時刻Ｔ２６でＣ８ａに関するデータ送信を開始した場合、試験サーバ４００がＣ３に関するデータ応答を行う前に、試験サーバ４００は、Ｃ８ａに関する新たなデータを受信することになる。上述のように、先行送信データの処理完了前に後続送信データに関する処理を実行することによる不都合が生じる。
【００５３】
ＴＳ４３は、Ｃ４ｂに関する要求データの送信時刻Ｔ２４と、Ｃ６ｂに関する要求データの送信時刻Ｔ２８との間の時間間隔である。データ変換装置１００は、Ｃ８ａに関するデータ送信を、Ｃ３に関するデータ送信が終了するまで遅延させる。データ変換装置１００は、Ｃ３に関するデータ送信終了時Ｔ２３経過後である時刻Ｔ２４に、Ｃ８ａに相当するＴ７１２のデータ送信Ｃ８ｂを開始する。このように、データ変換装置１００がＣ７に対応するデータ送信Ｃ８ｂを、先行のデータ送信Ｃ３の経過後に行うことで、試験サーバ４００が先行データの処理中にＣ８ｂを受信するという不都合を回避することができる。
【００５４】
［データ変換装置の構成の第２例］
図４は、データ変換装置の構成の第２例を示す図である。図４に示す第２例に係るデータ変換装置１００ｂは、図２に示す制御部１１０として、後述する複数の制御部を有する。データ変換装置１００ｂは、データ取得部１１２、取得データ解析部１１４、データ送信制御部１１７、サーバ出力解析部１１６、アドレス変換部１１８、記憶部１２０、受信部１７０ｂ、送信部１７１ｂを有する。受信部１７０ｂ及び送信部１７１ｂは、図２で示した受信部１７０ｂ及び送信部１７１ｂにそれぞれ対応し、下記の記載で特定される機能を除いて、受信部１７０ｂ及び送信部１７１ｂと同じ機能を有する。以下、図４に示す各制御部を、図５〜図９を参照して説明する。
【００５５】
データ取得部１１２は、既存サーバ３００とクライアント２００との間で送受信されるデータ、並びに、試験サーバ４００から送信されるデータを、記憶部１２０に書き込む制御部である。
【００５６】
記憶部１２０は、受信部１７０ａで受信されたデータを格納する。受信されたデータは、データに含まれるＭＡＣアドレス、ＩＰアドレス、データ本体等の項目毎に用意される列で分類されたテーブルとして、格納されてもよい。なお、記憶部１２０に受信データを蓄積することで、時間差ΔＴは延長化してもよい。
【００５７】
取得データ解析部１１４は、記憶部１２０に格納される既存サーバ３００とクライアント２００との間で送受信されるデータから特定の情報を抽出して、抽出結果を記憶部１２０に格納する制御部である。取得データ解析部１１４は、例えば、図５に示す既存サーバ送信情報３１０、及び図６に示す既存サーバシーケンス情報３３０として抽出結果を記憶部１２０に格納する。
【００５８】
図５は、既存サーバ送信情報３１０の一例を示す図である。図５に示される既存サーバ送信情報３１０は、識別番号列３１１、送信元アドレス列３１２、送信元ポート列３１３、クライアント側シーケンス番号（Ｃｓｅｑ）列３１４、送信先アドレス列３１５、送信先ポート列３１６、及びサーバ側シーケンス番号（Ｓｓｅｑ）列３１７を含む。既存サーバ送信情報３１０はさらに、コネクション状態列３１８、送信開始時刻列３１９、及びデータ内容列３２０を含む。
【００５９】
識別番号列３１１の識別番号は、送信データを送信開始時刻の昇順で並べた各エントリを識別する番号である。送信元アドレス列３１２及び送信元ポート列３１３には、接続要求元であるクライアント２００のアドレス、及びクライアント２００のポート番号がそれぞれ登録される。送信先アドレス列３１５及び送信先ポート列３１６には、接続要求先である既存サーバ３００のアドレス及び既存サーバ３００のポート番号がそれぞれ登録される。なお、本明細書及び図では、送信元アドレス及び送信先アドレスは参照符号で示す。
【００６０】
クライアント側シーケンス番号列３１４には、クライアント２００から送信されるシーケンス番号が登録され、サーバ側シーケンス番号列３１７には、既存サーバ３００から送信されるシーケンス番号が登録される。クライアント２００とサーバ間でコネクションを確立すると、それらの間には通信路が形成される。例えば、ＴＣＰでは、通信路におけるバイト単位のストリーム型通信を実現するため、通信路内を流れるバイトデータに対して、バイト位置を決める「シーケンス番号」を送信する。ＴＣＰの例では、シーケンス番号は、例えば、３２ｂｉｔの符号なしの整数値である。図５〜図８に示す例では、１０進数表記でシーケンス番号を示す。
【００６１】
コネクション状態列３１８には、例えば、コネクション確立要求である「ＳＹＮ」、確認応答である「ＡＣＫ」、コネクション切断要求である「ＦＩＮ」等が登録される。「送信開始時刻列３１９には、データを送信した時刻が登録される。データ内容列３２０には、送受信で送信されるデータの内容が登録される。
【００６２】
図６は、既存サーバシーケンス情報の一例を示す図である。既存サーバシーケンス情報３３０は、既存サーバ送信情報３１０のうち、コネクションの確立と切断を行なう制御コネクションのデータ送信を除き、１つのコネクションの開始又は終了時刻を管理する情報を抽出した情報である。既存サーバシーケンス情報３３０は、データ送信制御部１１７が、試験サーバ４００にデータを送信する際に、既存サーバ３００とクライアント２００との間のデータ送信シーケンスを確認するために使用される。
【００６３】
図６に示される既存サーバシーケンス情報３３０は、送信元アドレス列３３１、送信元ポート列３３２、クライアント側シーケンス番号（Ｃｓｅｑ）列３３３、送信先アドレス列３３４、送信先ポート列３３５を含む。既存サーバシーケンス情報３３０はさらに、サーバ側シーケンス番号（Ｓｓｅｑ）列３３６、コネクション状態列３３７、送信開始時刻列３３８、送信終了時刻列３３９、及び、関連データ列３４０を含む。既存サーバシーケンス情報３３０に含まれる列において、既存サーバ送信情報３１０に含まれる列と同一名称の列に関しては、下記に記載する内容を除き、説明を省略する。
【００６４】
送信開始時刻列３３８には、コネクション確立後、コネクションの送信元がデータを送信開始した時刻が記録され、送信終了時刻列３３９には、コネクション切断直前に、コネクションの送信元が送信開始した時刻が記録される。関連データ列３４０には、コネクションにおいて送信されたデータの識別番号が登録される。
【００６５】
サーバ出力解析部１１６は、記憶部１２０に格納される試験サーバ４００とデータ変換装置１００との間で送信されるデータから特定の情報を抽出して、抽出結果を記憶部１２０に格納する制御部である。サーバ出力解析部１１６は、例えば、図７に示す試験サーバ送信情報３５０、及び図８に示す試験サーバシーケンス情報３７０として抽出結果を記憶部１２０に格納する。
【００６６】
図７は、試験サーバ送信情報３５０の一例を示す図である。図７に示される試験サーバ送信情報３５０は、識別番号列３５１、送信元アドレス列３５２、送信元ポート列３５３、クライアント側シーケンス番号（Ｃｓｅｑ）列３５４、送信先アドレス列３５５、送信先ポート列３５６を含む。試験サーバ送信情報３５０はさらに、サーバ側シーケンス番号（Ｓｓｅｑ）列３５７、コネクション状態列３５８、送信開始時刻列３５９、及びデータ内容列３６０を含む。
【００６７】
試験サーバ送信情報３５０は、試験サーバ４００が受信するデータは、既存サーバ送信情報３１０を用いる。このように、既存サーバ３００送信情報を用いる理由の１つは、例えば、試験サーバ４００が既存サーバ３００と同様の性能を発揮し得るか否かを判断するためである。ただし、データの送信元とデータの送信先が変わるため、データ変換装置１００は、下記に示すアドレス変換部１１８により、既存サーバ３００のアドレスを試験サーバ４００のアドレスに、既存サーバ３００のアドレスを試験サーバ４００のアドレスに変換する。また、送信開始時刻は、データ変換装置１００又は試験サーバ４００が実際にデータ送信した時刻が入力される。なお、試験サーバ送信情報３５０に含まれる送信元アドレス、送信先アドレス、送信開始時刻以外の列において、既存サーバ送信情報３１０に含まれる列と同一名称の列に関しては、同じデータが登録されるため、説明を省略する。
【００６８】
サーバ出力解析部１１６は、既存サーバ送信情報３１０の送信元アドレス列３１２又は送信先アドレス列３１５に登録されるクライアント２００アドレスの代わりに、データ変換装置１００を、送信元アドレス列３５２又は送信先アドレス列３５５に登録する。
【００６９】
サーバ出力解析部１１６は、既存サーバ送信情報３１０の送信先アドレス列３１５に登録される既存サーバ３００のアドレスの代わりに試験サーバ４００のアドレスを送信先アドレス列３５５に登録する。
【００７０】
図８は、試験サーバシーケンス情報の一例を示す図である。試験サーバシーケンス情報３７０は、試験サーバ送信情報３５０のうち、コネクションの確立と切断を行なう制御コネクションのデータ送信を除き、１つのコネクションの開始又は終了時刻を管理する情報を抽出した情報である。試験サーバシーケンス情報３７０は、データ送信制御部１１７が、試験サーバ４００にデータを送信する際に、既存サーバ３００とクライアント２００との間のデータ送信シーケンスを確認するために使用される。
【００７１】
試験サーバシーケンス情報３７０は、送信元アドレス列３７１、送信元ポート列３７２、クライアント側シーケンス番号（Ｃｓｅｑ）列３７３、送信先アドレス列３７４、送信先ポート列３７５を含む。試験サーバシーケンス情報３７０はさらに、サーバ側シーケンス番号（Ｓｓｅｑ）列３７６、送信開始フラグ３７７、送信開始時刻列３７８、送信終了時刻列３７９、関連データ列３８０、及び送信終了フラグ列３８１を含む。試験サーバシーケンス情報３７０に含まれる列において、試験サーバ送信情報３５０に含まれる列と同一名称の列に関しては、下記に記載する内容を除き、説明を省略する。
【００７２】
送信開始時刻列３７８には、コネクション確立後、コネクションの送信元がデータを送信開始した時刻が記録され、送信終了時刻列３７９には、コネクション切断直前に、コネクションの送信元が送信開始した時刻が記録される。関連データ列３８０には、コネクションにおいて送信されたデータの識別番号が登録される。
【００７３】
送信終了フラグ列３８１は、コネクションにおける通信が終了したか否かが登録される。送信終了フラグ値「１」が登録される場合、コネクション切断前の最後のデータ送信が終了したことを示し、送信終了フラグ値「０」が登録される場合、コネクション切断前の最後のデータ送信が終了していないことを示す。
【００７４】
データ送信制御部１１７は、既存サーバ３００とクライアント２００との間のデータシーケンスを維持するように、クライアント２００から既存サーバ３００に送信されたデータを試験サーバ４００に送信する制御部である。データ送信制御部１１７は、既存サーバシーケンス情報３３０及び試験サーバシーケンス情報３７０内のコネクションの開始時刻と終了時刻とを参照して、既存サーバ３００とクライアント２００との間のデータシーケンスを維持するように、データを試験サーバ４００に送信する。データ送信制御部１１７は、試験サーバ４００へ送信したデータが送信完了しているか否かを判断するために、送信終了フラグを使用する。
【００７５】
アドレス変換部１１８は、データ送信制御部１１７から指示のあった試験サーバ送信情報３５０のエントリにおいて、既存サーバ３００のアドレスを試験サーバ４００のアドレスに変換する。
【００７６】
図９は、既存サーバ３００に対応する試験サーバ４００を登録したアドレス変換テーブルである。アドレス変換テーブル３９０は、既存サーバアドレス列３９１と、試験サーバアドレス３９２とを有し、既存サーバアドレス列３９１の既存サーバ３００と、試験サーバアドレス３９２の試験サーバ４００は、例えば、同じアプリケーションを実行するか否かで対応付けられる。アドレス変換部１１８は、アドレス変換テーブル３９０を参照することで、既存サーバ送信情報３１０の送信先アドレス列３１５に登録される既存サーバ３００のアドレスの代わりに試験サーバ４００のアドレスを、送信先アドレス列３５５に登録することができる。
【００７７】
アドレス変換部１１８は、試験サーバ送信情報３５０の対象エントリのアドレスを変換すると、対象エントリのデータを送信部１７１ｂに渡すことにより、対象エントリのデータは試験サーバ４００に送信される。アドレス変換部１１８は、記憶部１２０に格納される試験サーバ送信情報３５０を、アドレス変換後のデータで更新する。
【００７８】
［データ変換装置のハードウェア構成］
図１０は、データ変換装置１００のハードウェア構成の一例を示す図である。図１０に示すデータ変換装置１００は、演算処理部２１２、記憶部２２２、メモリコントローラ２２６、バスインタフェース２２８、ドライブ部２３２、外部記憶部２３４、及び通信部２７０を有する。
【００７９】
演算処理部２１２は、プロセッサコア２１４、Ｌ２キャッシュ（２次キャッシュ）ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１６、Ｌ２キャッシュＲＡＭ２１６の制御を行うＬ２キャッシュコントローラ２１８を有する。演算処理部２１２は、メモリコントローラ２２６を介して記憶部２２２に接続する。また、演算処理部２１２は、バスインタフェース２２８を介してドライブ部２３２、外部記憶部２３４、通信部２７０と接続する。
【００８０】
Ｌ２キャッシュＲＡＭ２１６は、プロセッサコア２１４からの命令に従って記憶部２２２に格納される内容の一部を記憶する。Ｌ２キャッシュＲＡＭ２１６は、例えば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００８１】
プロセッサコア２１４は、Ｌ２キャッシュＲＡＭ２１６からデータ又は命令を読み出し、命令に従ってデータに対して演算を行うと共に、演算結果をＬ２キャッシュＲＡＭ２１６又は記憶部２２２に格納する。命令又はデータは、プログラム９００として記憶部２２２に格納される。演算処理部２１２は、プロセッサコア２１４を複数搭載するマルチコアプロセッサであっても良い。演算処理部２１２は、例えば、ＣＰＵである。
【００８２】
演算処理部２１２はプログラム９００を実行することで、図２で説明した制御部１１０の機能や、図４で説明したデータ取得部１１２、取得データ解析部１１４、データ送信制御部１１７、サーバ出力解析部１１６及びアドレス変換部１１８として動作することもできる。
【００８３】
メモリコントローラ２２６は、演算処理部２１２又はバスインタフェース２２８からロード命令を受け取り、記憶部２２２からデータ又は命令をロードして、演算処理部２１２又はバスインタフェース２２８に出力する。メモリコントローラ２２６はさらに、演算処理部２１２又はバスインタフェース２２８からストア命令並びに対象となるデータを受け取り、受け取ったデータを記憶部２２２に格納する。
【００８４】
記憶部２２２は、半導体素子により構成される記憶装置であり、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。外部記憶部１３６は、記憶部２２２より、記憶容量が大きく、電源を供給しなくても記録が消えない記憶装置であり、例えば、磁気ディスクを有するディスクアレイ、又はフラッシュメモリを用いたＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。外部記憶部１３６は、記憶部２２２に格納される命令、データ、及びプログラムを記憶することができる。
【００８５】
バスインタフェース２２８は、演算処理部２１２と、他の接続装置とを繋ぐバスである。バスインタフェース１３４は、例えば、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）又はＰＣＩ  Ｅｘｐｒｅｓｓ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）などの規格に従って機能する回路である。
【００８６】
ドライブ部２３２は、例えば、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭ、ＤＶＤなどの記憶媒体２３６を読み書きする装置である。ドライブ部２３２は、記憶媒体２３６を回転させるモータや記憶媒体２３６上でデータを読み書きするヘッド等を含む。なお、記憶媒体２３６は、プログラム９００を格納することができる。ドライブ部２３２は、ドライブ部２３２にセットされた記憶媒体２３６からプログラム９００を読み出す。演算処理部２１２は、ドライブ部２３２により読み出されたプログラム９００を、記憶部２２２及び／又は外部記憶部２３６に格納する。
【００８７】
通信部２７０は、ネットワークに接続され、ネットワークに接続される情報処理装置と通信を行うために使用される装置である。図１に示されるように、通信部２７０は、通信装置５００とネットワーク接続する。通信部２７０は、例えば、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ）である。
【００８８】
通信部２７０は、例えば、図２に示す受信部１７０ａ及び送信部１７１ａ、又は、図４に示す受信部１７０ｂ及び送信部１７１ｂとして動作することができる。
【００８９】
［通信部：データ変換装置が通信装置と別装置であるケース］
図１１Ａは、データ変換装置１００が通信装置５００と別装置である場合のデータ変換装置１００の通信部の一例を示す図である。図１１Ａに示す通信部２７０ａは、データ変換装置１００に含まれる通信部２７０の一例である。通信部２７０ａは、メモリ２７１Ａ、ＣＰＵ２７３Ａ、コマンドキュー２７５Ａ、及び送受信キュー２７７Ａ、物理ポート２７９Ａを有する。コマンドキュー２７５Ａは、演算処理部２１２から転送されたコマンドを保持する。コマンドには、データ転送の転送先のＩＰアドレス、又はＭＡＣアドレス等が特定される。
【００９０】
ＣＰＵ２７３Ａは、メモリ２７１Ａに格納された通信プログラムを実行して、所定のプロトコルに従う通信処理機能を実現する。所定のプロトコルとは、例えば、イーサネット（登録商標）や、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）である。ＣＰＵ２７３Ａが実現する通信処理機能は、コマンドキュー２７５Ａに保持されるコマンドを読み取り、ＣＰＵ２７３Ａは、コマンドに含まれるメモリアドレスで特定される記憶部２２２の位置からデータを取得し、試験サーバ４００に取得データを転送する。または、ＣＰＵ２７３Ａは、送受信キュー２７７Ａに保持されるデータとデータを特定するコマンドを取得して、コマンドに含まれるメモリアドレスで特定される記憶部２２２の位置にデータを格納する。
【００９１】
物理ポート２７９Ａは、ネットワークケーブルに接続され、ネットワークケーブルに対してデータの入出力を行う。送受信キュー２７７Ａは、試験サーバ４００から物理ポート２７９Ａに送信されたデータを保持し、又は、試験サーバ４００が送信するデータを保持するとともに物理ポート２７９Ａに出力する。
【００９２】
［通信部：データ変換装置が通信装置と同じ装置であるケース］
図１１Ｂは、データ変換装置１００が通信装置５００と同じ装置である場合のデータ変換装置１００の通信部の一例を示す図である。図１１Ｂに示す通信部２７０ａは、データ変換装置１００に含まれる通信部２７０の一例である。図１１Ｂに示す通信部２７０ｂは、データ変換装置１００が通信装置５００を含むため、データ変換装置１００に含まれる通信部２７０が通信装置５００として動作するときの構成を示す。通信部２７０ｂは、メモリ２７１Ｂ、ＣＰＵ２７３Ｂ、コマンドキュー２７４Ｂ、送信キュー２７５Ｂ、受信キュー２７６Ｂ、及び物理ポート２７９Ｂを有する。メモリ２７１Ｂ及びコマンドキュー２７４Ｂは、図１１Ａに示す通信部２７０ａに含まれるメモリ２７１Ａ及びコマンドキュー２７５Ａと同じように動作するため、それら装置の説明は省略する。
【００９３】
物理ポート２７９Ｂは、各々が、複数のネットワークケーブルに接続される複数の物理ポートであり、ネットワークに対してデータの入出力を行う。例えば、物理ポート２７９Ｂ−１は、受信用物理ポートとして動作し、クライアント２００から送信されるデータが入力される。物理ポート２７９Ｂ−１は、受信用物理ポートとして動作し、既存サーバ３００、及び試験サーバ４００から送信されるデータが入力される。
【００９４】
メモリ２７１Ｂは、物理ポートとＩＰアドレス及び／又はＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  ａｄｄｒｅｓ）アドレスとを関係付けた情報を含むルーティングテーブルを格納する。ＣＰＵ２７３Ｂは、ＣＰＵ２７３Ａ同様に、メモリ２７１Ｂに格納された通信プログラムを実行して、所定のプロトコルに従う通信処理機能を実現すると共に、ルーティングテーブルを参照してルーティング処理を実行する。ルーティング処理とは、例えば、ルーティングテーブルを参照して、ある受信用物理ポート２７９Ｂ−１から受信したデータのあて先アドレスを調べて、対応する送信用物理ポート２７９Ｂ−２へ送り出すことである。
【００９５】
［クライアントと、既存サーバ又は試験サーバとのデータシーケンス］
図１２は、クライアント２００と、既存サーバ３００又は試験サーバ４００とのデータシーケンスの一例を示す図である。なお、図１２に示すデータ送信は、ＴＣＰのようにコネクションの確立を行った後に行うものであっても良いし、ＵＤＰのようにコネクションを確立せずにデータ通信を行うものであってもよい。
【００９６】
ＴＣＰによるコネクションを確立する場合、例えば、以下のように、データ送信がなされる。
１）クライアント２００がサーバに対してＳＹＮパケットを送信し、２）サーバは、クライアント２００による接続を許可するＳＹＮ／ＡＣＫパケットを送信し、３）クライアント２００は、接続開始をあらわすＡＣＫパケットを送信する。なお、コネクションの確立を要するデータ通信がなされる場合、図１２に示すデータシーケンスは、コネクションの確立完了後のデータ送信を示し、図１２では、コネクションの確立又は切断に関するデータ送信は省略する。
【００９７】
クライアント２００は、既存サーバ３００に対してデータを送信する（Ｓ４０１）。ステップＳ４０１で送信されるデータは、例えば、ＴＣＰにおける最大セグメント長を有する１つ以上のパケットでもよいし、ウィンドウサイズに分割された複数のパケットであってもよい。なお、図１２における他の送信されるデータも同様に、最大セグメント長を有する１つ以上のパケットでもよいし、ウィンドウサイズに分割された複数のパケットでもよい。ステップＳ４０１で送信されるデータは、例えば、既存サーバ送信情報３１０の識別番号１００４で識別されるデータに相当する。
【００９８】
既存サーバ３００は、クライアント２００から送信されたデータに対する応答となるデータを送信する（Ｓ４０２）。ステップＳ４０２で送信されるデータは、例えば、既存サーバ送信情報３１０に示す識別番号１００５で特定されるデータに相当する。
【００９９】
同様に、クライアント２００は、既存サーバ３００に対してデータを送信する（Ｓ４０３）。ステップＳ４０３で送信されるデータは、例えば、既存サーバ送信情報３１０に示す識別番号１００６で特定されるデータに相当する。既存サーバ３００は、クライアント２００から送信されたデータに対する応答となるデータを送信する（Ｓ４０４）。ステップＳ４０４で送信されるデータは、例えば、既存サーバ送信情報３１０に示す識別番号１００７で特定されるデータに相当する。
【０１００】
データ変換装置１００の制御部１１０は、通信装置５００を介してステップＳ４０１〜Ｓ４０３で送信されるデータを受け取るとともに、記憶部１２０に記憶する（Ｓ４０５）。制御部１１０は、記憶部１２０に格納されたデータを用いて試験サーバ送信情報３５０を生成する。
【０１０１】
ΔＴ時間経過後、制御部１１０は、試験サーバ４００に送信するデータを生成する（Ｓ４０６）。ステップＳ４０６では、制御部１１０は、未送信のデータを検索し、未送信データに含まれる宛先アドレスを、未送信データの宛先アドレスとなっている既存サーバ３００と対応する試験サーバ４００のアドレスに変換する。ステップＳ４０６で行われるアドレスの変換は、例えば、制御部１１０が図９に示すアドレス変換テーブル２９０を参照して行われる。
【０１０２】
データ変換装置１００は、試験サーバ４００に対して生成したデータを送信する（Ｓ４０７）。ステップＳ４０７で送信されるデータは、例えば、試験サーバ送信情報３５０に示す識別番号２００４で特定されるデータに相当する。試験サーバ４００は、クライアント２００から送信されたデータへの応答であるデータを送信する（Ｓ４０８）。ステップＳ４０８で送信されるデータは、例えば、試験サーバ送信情報３５０に示す識別番号２００５で特定されるデータに相当する。
【０１０３】
図１２に示すデータ送信（Ｓ４０７）とデータ送信（Ｓ４０８）は、図３に示したデータ送信Ｃ３に相当する。
【０１０４】
制御部１１０は、試験サーバ４００から応答データを受け取ると、データ送信制御処理により、後続データの送信タイミングを決定する（Ｓ４０９）。なお、ステップＳ４０９に示す後続データの送信タイミングの詳細例は、図１３及び図１４を用いて後述する。
【０１０５】
データ送信が決定されると、制御部１１０は、試験サーバ４００に送信するデータを生成する（Ｓ４１０）。ステップＳ４１０では、データ変換装置１００は、ステップＳ４０５で生成したデータの元となったクライアント２００が送信したデータの後続データを選択する。制御部１１０はさらに、選択したデータの宛先ＩＰアドレスを、試験サーバ４００のＩＰアドレスに変えると共に、シーケンス番号（Ｓｓｅｑ）を、試験サーバ４００から送信されたデータに含まれるシーケンス番号（Ｓｓｅｑ）に変える。
【０１０６】
データ変換装置１００は、試験サーバ４００に対して生成したデータを送信する（Ｓ４１１）。ステップＳ４１１で送信されるデータは、例えば、試験サーバ送信情報３５０に示す識別番号２００６で特定されるデータに相当する。試験サーバ４００は、データ変換装置１００から送信されたデータへの応答であるデータを送信する（Ｓ４１２）。ステップＳ４１２で送信されるデータは、例えば、試験サーバ送信情報３５０に示す識別番号２００７で特定されるデータに相当する。
【０１０７】
図１２に示すデータ送信（Ｓ４１１）とデータ送信（Ｓ４１２）は、図３に示したデータ送信Ｃ４ｂ、及びＣ６ｂに対応する。
【０１０８】
このようにして、データ変換装置１００は、クライアント２００と既存サーバ３００との間で送信されたデータを取得し、取得したデータを変換して、適切な送信タイミングを取りながら、試験サーバ４００に送信する処理を実行する。
【０１０９】
［後続データの送信決定処理のフロー］
図１３は、後続データの送信決定処理のフローの一例を示す図である。制御部１１０は、試験サーバ４００に対して未送信のデータのうち、最も時刻が古いデータを選択する（Ｓ５０１）。ステップＳ５０１では、例えば、制御部１１０は、試験サーバシーケンス情報３７０の送信終了フラグが「１」ではないデータのうち、送信開始時刻が最も古いデータを選択する。なお、図３のデータ送信Ｃ８ｂに関するデータ送信制御処理を行うために、このとき選択するデータは、同一サーバに対するものであれば、異なるクライアントが送信したデータであっても良い。
【０１１０】
制御部１１０は、選択データの先行送信データは送信終了しているか否かを判断する（Ｓ５０２）。ステップＳ５０２では、例えば、制御部１１０は、選択データの次に送信開始時刻が新しいデータの送信終了フラグが「１」になっているか否かを判断することにより行うことができる。
【０１１１】
選択データの先行送信データが送信終了していない場合（Ｓ５０２  ＮＯ）、制御部１１０は、選択データの送信を延期して（Ｓ５０３）、ステップＳ５０２に戻る。制御部１１０は、選択データの先行送信データが送信終了している場合（Ｓ５０２  Ｙｅｓ）、図１２に示すステップＳ４１０に進んで、後続データの送信決定処理フローを終了する。
【０１１２】
以上の実施形態に関し、更に以下の付記を開示する。
［付記１］
第１の装置から第２の装置へ送信される第１のデータと、前記第１のデータの第１の送信時刻とを取得すると共に、前記第１のデータ送信開始後に、前記第１の装置から前記第２の装置へ送信された第２のデータと、前記第２のデータの第２の送信時刻とを受信する受信部と、
受信した前記第１のデータ及び前記第２のデータを第３の装置へ送信する送信部と、
前記送信部による前記第１のデータの送信時刻と前記第１のデータに対する返信データの受信時刻との間の第１の時間間隔が、前記第１の送信時刻と、前記第２の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第１のデータ送信の送信時刻と前記送信部による前記第２のデータの送信時刻との間の時間間隔が、前記第１の時間間隔より長くなるように、前記送信部に対する前記第２のデータの送信タイミングの制御を行う制御部と、を有することを特徴とするデータ変換装置。
［付記２］
前記受信部が、前記第２のデータ送信の開始後に、前記第１の装置から前記第２の装置へ送信された第３のデータと、前記第３のデータの第３の送信時刻と、前記第３の装置から前記第２のデータに対する返信データを受信し、
前記送信部が、前記第２のデータを前記第３の装置へ送信し、
前記送信部による前記第２のデータの送信時刻との前記第２のデータに対する返信データの受信時刻との第２の時間間隔が、前記第２のデータ送信時刻と、前記第３の送信時刻との間の時間間隔より長い場合に、前記制御部が、前記送信部による前記第２のデータのデータ送信時刻と前記送信部による前記第３のデータの送信時刻との時間間隔が、前記第２の時間間隔より長くなるように、前記送信部に対する前記第３のデータの送信タイミングの制御を行うことを特徴とする付記１に記載のデータ変換装置。
［付記３］
前記受信部が、前記第１のデータ送信開始後に開始される前記第１の装置から前記第２の装置へ送信された第４のデータと、前記第４のデータの第４の送信時刻とを受信し、前記第２のデータ及び前記第４のデータは、前記第３の装置が前記第３の装置に格納されるソフトウェアを実行するときに、使用されるデータであり、
前記制御部は、前記送信部による前記第１のデータの送信時刻と前記第４の送信時刻との時間間隔が、前記第１の時間間隔より長くなるように、前記送信部に対する前記第４のデータの送信タイミングの制御を行うことを特徴とする付記１又は２に記載のデータ変換装置。
［付記４］
受信部、送信部、及び制御部を有するデータ変換装置を用いてデータ変換方法であって、
前記受信部が、第１の装置から第２の装置へ送信された第１のデータと、前記第１のデータの第１の送信時刻と、前記第１のデータ送信開始後に、前記第１の装置から前記第２の装置へ送信された第２のデータと、前記第２のデータの第２の送信時刻と、を受信し、
前記送信部が、前記第１のデータを前記第３の装置へ送信し、
前記第１のデータの送信時刻と前記第１のデータに対する返信データの受信時刻との第１の時間間隔が、前記第１の送信時刻と、前記第２の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第１のデータ送信の送信時刻と前記送信部による前記第２のデータの送信時刻との時間間隔が記第１の時間間隔より長くなるように、前記制御部が、前記送信部に対する前記第２のデータの送信タイミングの制御を行い、
前記送信部が、前記制御部の指示に従って前記第２のデータを前記第３の装置へ送信することを特徴とするデータ変換方法。
［付記５］
前記受信部が、前記第２のデータ送信の開始後に、前記第１の装置から前記第２の装置へ送信された第３のデータと、前記第３のデータの第３の送信時刻と、前記第３の装置から前記第２のデータに対する返信データを受信し、
前記送信部が、前記第２のデータを前記第３の装置へ送信し、
前記送信部による前記第２のデータの送信時刻との前記第２のデータに対する返信データの受信時刻との第２の時間間隔が、前記第２のデータ送信時刻と、前記第３の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第２のデータのデータ送信時刻と前記送信部による前記第３のデータの送信時刻との時間間隔が、前記第２の時間間隔より長くなるように、前記制御部が、前記送信部に対する前記第３のデータの送信タイミングの制御を行うことを特徴とする付記４に記載のデータ変換方法。
［付記６］
前記受信部が、前記第１のデータ送信開始後に開始される前記第１の装置から前記第２の装置へ送信された第４のデータと、前記第４のデータの第４の送信時刻とを受信し、前記第２のデータ及び前記第４のデータは、前記第３の装置が前記第３の装置に格納されるソフトウェアを実行するときに、使用されるデータであり、
前記送信部による前記第１のデータの送信時刻と前記第４の送信時刻との時間間隔が、前記第１の時間間隔より長くなるように、前記制御部が、前記送信部に対する前記第４のデータの送信タイミングの制御を行うことを特徴とする付記４又は５に記載のデータ変換方法。
［付記７］
受信部、送信部、記憶部、及び制御部を有するデータ変換装置にデータ変換を実行させるプログラムであって、
前記記憶部に、第１の装置から第２の装置へ送信された第１のデータと、前記第１のデータの第１の送信時刻と、前記第１のデータ送信開始後に、前記第１の装置から前記第２の装置へ送信された第２のデータと、前記第２のデータの第２の送信時刻と、とを記憶させる手順、
前記送信部に、前記第１のデータを前記第３の装置へ送信させる手順と、
前記第１のデータの送信時刻と前記第１のデータに対する返信データの受信時刻との第１の時間間隔が、前記第１の送信時刻と、前記第２の送信時刻との間の時間間隔より長い場合に、前記送信部による前記第１のデータ送信の送信時刻と前記送信部による前記第２のデータの送信時刻との時間間隔が前記第１の時間間隔より長くなるように、前記制御部に、前記送信部に対する前記第２のデータの送信タイミングの制御を行わせる手順、及び、
前記送信部に、前記制御部の指示に従って前記第２のデータを前記第３の装置へ送信させる手順を実行させるためのプログラム。
［付記８］
前記記憶部に、前記受信部で受信された、前記第２のデータ送信の開始後に、前記第１の装置から前記第２の装置へ送信された第３のデータと、前記第３のデータの第３の送信時刻と、前記第３の装置から前記第２のデータに対する返信データを記憶させる手順、
前記送信部に、前記第２のデータを前記第３の装置へ送信させる手順、
前記送信部による前記第２のデータの送信時間との前記第２のデータに対する返信データの受信時刻との第２の時間間隔が、前記第２のデータ送信時刻と、前記第３の送信時刻との間の時間間隔より長い場合に、前記制御部に、前記送信部による前記第２のデータのデータ送信時刻と前記送信部による前記第３のデータの送信時刻との時間間隔が、前記第２の時間間隔より長くなるように、前記送信部に対する前記第３のデータの送信タイミングの制御を行うことを特徴とする付記７に記載のプログラム。
［付記９］
前記記憶部に、前記受信部で受信された、前記第１のデータ送信開始後に開始される前記第１の装置から前記第２の装置へ送信された第４のデータと、前記第４のデータの第４の送信時刻とを記憶させる手順であって、前記第２のデータ及び前記第４のデータは、前記第３の装置が前記第３の装置に格納されるソフトウェアを実行するときに、使用されるデータであり、
前記制御部に、前記送信部による前記第１のデータの送信時刻と前記第４の送信時刻との時間間隔が、前記第１の時間間隔より長くなるように、前記送信部に対する前記第４のデータの送信タイミングの制御を行わせる手順を実行させることを特徴とする付記７又は８に記載のプログラム。
【符号の説明】
【０１１３】
１００、１００ａ、１００ｂ    データ変換装置
１１０    制御部
１１２    データ取得部
１１４    取得データ解析部
１１６    サーバ出力解析部
１１７    データ送信制御部
１１８    アドレス変換部
１２０    記憶部
１７０ａ、１７０ｂ    受信部
１７１ａ、１７０ｂ    送信部
【図１】
2011159168.tif 000003
【図２】
2011159168.tif 000004
【図３】
2011159168.tif 000005
【図４】
2011159168.tif 000006
【図５】
2011159168.tif 000007
【図６】
2011159168.tif 000008
【図７】
2011159168.tif 000009
【図８】
2011159168.tif 000010
【図９】
2011159168.tif 000011
【図１０】
2011159168.tif 000012
【図１１Ａ】
2011159168.tif 000013
【図１１Ｂ】
2011159168.tif 000014
【図１２】
2011159168.tif 000015
【図１３】
2011159168.tif 000016