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