(57)【特許請求の範囲】
【請求項１】
ネットワークを介して相互に接続可能とされたデータ提供元の提供元装置とデータ配信先の配信先装置との各々に対して接続されるもので、前記提供元装置に接続されている第１接続状態において当該提供元装置から送信されたデータを取得し、当該取得したデータを、前記配信先装置に接続されている第２接続状態において当該配信先装置に対して送信することにより、前記提供元装置によるデータ提供環境を前記配信先装置に対して擬似提供するエミュレーション装置であって、
前記第１接続状態において、前記提供元装置からデータを受信する受信手段と、
前記受信手段にて受信されたデータと、当該データが受信された受信時刻を特定するための受信時刻情報とを、相互に関連付けて格納するデータ格納手段と、
前記第２接続状態において、前記データ格納手段に格納されたデータを前記配信先装置に送信する際の送信速度を特定するための送信速度情報を所定方法にて取得し、前記データ格納手段に格納されている前記送信するデータの前記受信時刻情報とその直前のデータの前記受信時刻情報とに基づいて当該２つのデータの受信間隔を算定し、当該算定された受信間隔と前記送信速度情報とに基づいてデータの送信間隔を算定し、当該算定した送信間隔と前回データを送信した時刻とに基づいて当該送信するデータの送信タイミングを決定し、当該決定した送信タイミングにて当該データを前記配信先装置に送信する送信手段と、
当該エミュレーション装置の動作モードを、前記第１接続状態における動作モードである第１モードと、前記第２接続状態における動作モードである第２モードとの、いずれのモードとするのかを特定するためのモード特定情報と、前記モード特定情報によって特定されるモードが第２モードである場合において、当該エミュレーション装置が模擬する前記提供元装置を識別するサービス名を特定するためのサービス名特定情報と、前記モード特定情報によって特定されるモードが第１モードである場合において、当該エミュレーション装置の接続先である前記提供元装置を特定するための接続先情報と、を少なくとも格納しているモード格納手段と、
当該エミュレーション装置の起動時に、前記モード格納手段に格納されたモード特定情報に基づいて、当該エミュレーション装置の動作モードを前記第１モードと前記第２モードのいずれのモードとするのかを決定するモード決定手段とを備え、
前記モード決定手段にて決定されたモードが前記第１モードである場合には、前記モード格納手段に格納されている前記接続先情報を参照し、前記データの送信要求を当該参照した接続先情報によって特定される前記提供元装置に送信し、当該送信要求に応じて前記提供元装置から送信されたデータを前記受信手段にて受信し、
前記モード決定手段にて決定されたモードが前記第２モードである場合において、前記配信先装置からの前記データの送信要求を受信した場合には、前記モード格納手段に格納されている前記サービス名特定情報を参照し、当該参照したサービス名特定情報によって特定されるサービス名を当該送信要求を行なった前記配信先装置に対して送信し、当該配信先装置から前記データの要求があった場合には、前記データ格納手段にて格納された前記データを前記送信手段にて送信すること、
を特徴とするエミュレーション装置。
【請求項２】
ネットワークを介して相互に接続可能とされたデータ提供元の提供元装置とデータ配信先の配信先装置との各々に対して接続されるもので、前記提供元装置に接続されている第１接続状態において当該提供元装置から送信されたデータを取得し、当該取得したデータを、前記配信先装置に接続されている第２接続状態において当該配信先装置に対して送信することにより、前記提供元装置によるデータ提供環境を前記配信先装置に対して擬似提供するエミュレーション装置であって、
前記第１接続状態において、前記提供元装置からデータを受信する受信手段と、
前記受信手段にて受信されたデータと、当該データが受信された受信時刻を特定するための受信時刻情報とを、相互に関連付けて格納するデータ格納手段と、
前記第２接続状態において、前記データ格納手段に格納されたデータを前記配信先装置に送信する際に前記受信時刻に応じて異なる複数の送信速度を特定するための送信速度情報を所定方法にて取得し、前記データ格納手段に格納されている前記送信するデータの前記受信時刻情報とその直前のデータの前記受信時刻情報とに基づいて当該２つのデータの受信間隔を算定し、当該算定された受信間隔と前記送信速度情報とに基づいて前記送信するデータの前記受信時刻に対応するデータの送信間隔を算定し、当該算定した送信間隔と前回データを送信した時刻とに基づいて当該送信するデータの送信タイミングを決定し、当該決定した送信タイミングにて当該データを前記配信先装置に送信する送信手段と、
を備えること特徴とするエミュレーション装置。
【請求項３】
ネットワークを介して相互に接続可能とされたデータ提供元の提供元装置とデータ配信先の配信先装置との各々に対して接続されるもので、前記提供元装置に接続されている第１接続状態において当該提供元装置から送信されたデータを取得し、当該取得したデータを、前記配信先装置に接続されている第２接続状態において当該配信先装置に対して送信することにより、前記提供元装置によるデータ提供環境を前記配信先装置に対して擬似提供するエミュレーション装置であって、
前記第１接続状態において、前記提供元装置からデータを受信する受信手段と、
前記受信手段にて受信されたデータと、当該データが受信された受信時刻を特定するための受信時刻情報とを、相互に関連付けて格納するデータ格納手段と、
前記第２接続状態において、前記データ格納手段に格納されたデータを前記配信先装置に送信する際に前記受信時刻が含まれる受信時刻帯に応じて異なる複数の送信速度を特定するための送信速度情報を所定方法にて取得し、前記データ格納手段に格納されている前記送信するデータの前記受信時刻情報と当該取得した送信速度情報とに基づいて、当該送信するデータの前記受信時刻が含まれる受信時刻帯に対応する送信速度で前記データが送信されるように前記送信タイミングを決定し、当該決定した送信タイミングにて当該データを前記配信先装置に送信する送信手段と、
を備えること特徴とするエミュレーション装置。
【請求項４】
前記送信速度情報は、前記配信先装置に前記データを複数回繰り返して送信する場合において、当該配信先装置に前記データを送信する各回に応じて異なる複数の送信速度を特定するための情報であり、
前記送信手段は、前記配信先装置にデータを送信する各回に対応する送信速度で前記データが送信されるように前記送信タイミングを決定すること、
を特徴とする請求項１から３のいずれか一項に記載のエミュレーション装置。
【請求項５】
前記送信速度情報は、前記配信先装置に応じて異なる複数の送信速度を特定するための情報であり、
前記送信手段は、データを送信する前記配信先装置に対応する送信速度で前記データが送信されるように前記送信タイミングを決定すること、
を特徴とする請求項１から４のいずれか一項に記載のエミュレーション装置。
【請求項６】
ネットワークを介して相互に接続可能とされたデータ提供元の提供元装置とデータ配信先の配信先装置との各々に対して当該ネットワークを介して接続可能とされたエミュレーション装置において、前記提供元装置に接続されている第１接続状態において当該提供元装置から送信されたデータを取得し、当該取得したデータを、前記配信先装置に接続されている第２接続状態において当該配信先装置に対して送信することにより、前記提供元装置によるデータ提供環境を前記配信先装置に対して擬似提供するエミュレーション方法を実行させるエミュレーションプログラムであって、
前記第１接続状態において、前記提供元装置からデータを受信する受信ステップと、
前記受信ステップにおいて受信されたデータと、当該データが受信された受信時刻を特定するための受信時刻情報とを、相互に関連付けて、前記エミュレーション装置に設けたデータ格納手段に格納するデータ格納ステップと、
前記第２接続状態において、前記データ格納ステップにおいて格納されたデータを前記配信先装置に送信する際の送信速度を特定するための送信速度情報を所定方法にて取得し、前記データ格納手段に格納されている前記送信するデータの前記受信時刻情報とその直前のデータの前記受信時刻情報とに基づいて当該２つのデータの受信間隔を算定し、当該算定された受信間隔と前記送信速度情報とに基づいてデータの送信間隔を算定し、当該算定した送信間隔と前回データを送信した時刻とに基づいて当該送信するデータの送信タイミングを決定し、当該決定した送信タイミングにて当該データを前記配信先装置に送信する送信ステップと、
当該エミュレーション装置の動作モードを、前記第１接続状態における動作モードである第１モードと、前記第２接続状態における動作モードである第２モードとの、いずれのモードとするのかを特定するためのモード特定情報と、前記モード特定情報によって特定されるモードが第２モードである場合において、当該エミュレーション装置が模擬する前記提供元装置を識別するサービス名を特定するためのサービス名特定情報と、前記モード特定情報によって特定されるモードが第１モードである場合において、当該エミュレーション装置の接続先である前記提供元装置を特定するための接続先情報とを、前記エミュレーション装置に設けたモード格納手段に格納するモード格納ステップと、
当該エミュレーション装置の起動時に、前記モード格納手段に格納されたモード特定情報に基づいて、当該エミュレーション装置の動作モードを前記第１モードと前記第２モードのいずれのモードとするのかを決定するモード決定ステップとを前記エミュレーション装置に実行させ、
前記エミュレーション装置に、
前記モード決定ステップにて決定されたモードが前記第１モードである場合には、前記モード格納手段に格納されている前記接続先情報を参照させ、前記データの送信要求を当該参照した接続先情報によって特定される前記提供元装置に送信させ、当該送信要求に応じて前記提供元装置から送信されたデータを前記受信手段にて受信させ、
前記モード決定ステップにて決定されたモードが前記第２モードである場合において、前記配信先装置からの前記データの送信要求を受信した場合には、前記モード格納手段に格納されている前記サービス名特定情報を参照させ、当該参照したサービス名特定情報によって特定されるサービス名を当該送信要求を行なった前記配信先装置に対して送信させ、当該配信先装置から前記データの要求があった場合には、前記データ格納手段に格納された前記データを前記送信手段にて送信させること、
を特徴とするエミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、提供元から提供されたデータを配信先に配信するデータ配信システムにおいて、提供元のデータ提供環境を擬似的に構築して配信先に提供するためのエミュレーション装置及びエミュレーションプログラムに関する。
【背景技術】
【０００２】
近年のインターネット技術の発達に伴い、このインターネット技術を利用して各種データの配信を行うためのデータ配信システムが広く普及してきている。例えば、証券取引所から提示された株式や債券の価格等に関する証券データを、インターネットを介して各証券会社に提示するためのデータ配信システムが提案されている（特許文献１参照）。
【０００３】
このようなデータ配信システムに接続される顧客サーバ（例えばデータ配信先である証券会社のサーバ）においてアプリケーション修正等の変更があった場合、変更後の顧客サーバの動作確認テストを行う必要がある。この動作確認テストでは、主としてデータ配信システム上に配信される配信データを顧客サーバが正常に処理できるか否かの確認を実施する。そのため、顧客サーバに入力するためのテストデータが必要となるが、実際に配信されている大量の配信データを模擬したテスト用データを新規に作成するには膨大なコストが要求される。このため従来から、実際の運用で用いられたデータをテスト用データとすることで、データ作成に要するコストを削減したテスト方法が提案されている。
【０００４】
例えば、ホスト装置に記憶された実際のトランザクションログをオンライン・トランザクションシステムのネットワーク過負荷テストに利用する方法が提案されている。この方法では、ホスト装置はログファイルから過去の実データの送信時間と休止時間とを読み出して時間に応じてテスト指示用送信データを生成し、クライアント装置に送信する。ここで、過負荷テストなどテスト時間を短縮したい場合には、あらかじめ決めたテスト時間に応じて各休止時間を圧縮してテスト指示用送信データを生成する。そして、送信されたテスト指示用送信データに従ってクライアント装置がテストデータを発生させホスト装置に送信し、ホスト装置がデータを処理することにより、実際の運用時間と同一のテスト時間、あるいは、短縮したテスト時間でのテストを行うことができる（特許文献２参照。特に休止時間の圧縮に関しては段落００２０参照）。
【０００５】
【特許文献１】特開２００１−２６５７２０号公報
【特許文献２】特開平６−１６４６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来のテスト方法では、テスト時間を実際の運用時間と比較して全体的に短縮することができるのみであり、テストの目的に応じた柔軟なタイミングでテストデータを提供することはできなかった。一方、実際の試験時には、テスト対象の装置の動作状態や不具合の発生状況に応じて、テストデータの提供タイミングを様々な形で変更したい場合があり、より柔軟性の高いエミュレーション環境が要望されていた。
【０００７】
本発明は、上記に鑑みてなされたものであって、実際の運用データに基づくテストデータを、テストの目的に応じた柔軟な送信タイミングで送信可能なエミュレーション装置及びエミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１、６に記載のエミュレーション装置は、第１接続状態において、提供元装置から受信したデータと当該データが受信された受信時刻を特定する受信時刻情報とを相互に関連付けて格納し、第２接続状態において、送信速度情報を取得し、データの受信時刻情報に基づいて送信するデータとその直前のデータの受信間隔を算定し、算定した受信間隔と送信速度情報とに基づいて送信するデータの送信タイミングを決定し、当該決定した送信タイミングにて当該データを配信先装置に送信し、モード決定手段によって決定されたモードが第１モードである場合には、接続先情報によって特定される提供元装置にデータの送信要求を送信し、決定されたモードが第２モードである場合には、サービス名特定情報によって特定されるサービス名をデータの送信要求を行なった配信先装置に対して送信し、当該配信先装置からデータの要求があった場合にデータを送信する。
【０００９】
請求項２に記載のエミュレーション装置は、第１接続状態において、提供元装置から受信したデータと当該データが受信された受信時刻を特定する受信時刻情報とを相互に関連付けて格納し、第２接続状態において、受信時刻に応じて異なる複数の送信速度を特定するための送信速度情報を取得し、データの受信時刻情報に基づいて送信するデータとその直前のデータの受信間隔を算定し、算定した受信間隔と送信速度情報とに基づいて送信するデータの受信時刻に対応する送信間隔を算定し、算定した送信間隔と前回データを送信した時刻とに基づいて送信タイミングを決定し、当該決定した送信タイミングにて当該データを配信先装置に送信する。
【００１０】
請求項３に記載のエミュレーション装置は、第１接続状態において、提供元装置から受信したデータと当該データが受信された受信時刻を特定する受信時刻情報とを相互に関連付けて格納し、第２接続状態において、受信時刻が含まれる受信時刻帯に応じて異なる複数の送信速度を特定するための送信速度情報を取得し、受信時刻情報と送信速度情報とに基づいて、送信するデータの受信時刻が含まれる受信時刻帯に対応する送信速度でデータが送信されるように送信タイミングを決定し、当該決定した送信タイミングにて当該データを配信先装置に送信する。
【００１１】
請求項４に記載のエミュレーション装置は、請求項１から３のいずれか一項に記載のエミュレーション装置において、配信先装置にデータを送信する各回に対応する送信速度でデータが送信されるように送信タイミングを決定する。
【００１２】
請求項５に記載のエミュレーション装置は、請求項１から４のいずれか一項に記載のエミュレーション装置において、データを送信する配信先装置に対応する送信速度でデータが送信されるように送信タイミングを決定する。
【発明の効果】
【００１３】
本発明によれば、実際の運用データに基づくテストデータを、テストの目的に応じた柔軟な送信タイミングで送信可能なエミュレーション装置及びエミュレーションプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明を実施するための最良の形態について説明する。ただし、各実施の形態によって本発明が限定されるものではない。まず各実施の形態を説明した後、各実施の形態に対する変形例について説明する。
【００１５】
〔実施の形態１〕
まず、実施の形態１について説明する。以下では、本実施の形態に係るエミュレーション装置が適用されるデータ配信システムを概説した後、エミュレーション装置の構成と処理について順次説明する。
【００１６】
（データ配信システムの概要）
まず、本実施の形態に係るエミュレーション装置が適用されるデータ配信システム（以下、「本システム」）について概説する。図１は本実施の形態に係るデータ配信システムを概念的に示すブロック図である。
【００１７】
本システム１は、複数の証券取引所（東証、大証、ＪＡＳＤＡＱ等）の各々から提示された株式や債券の価格等に関する証券データを、ネットワークを介して複数の証券会社の各々に提示するためのシステムである。本システム１は、複数の証券取引所の各々が保有する「取引所サーバ」２と、情報ベンダーが保有する「ベンダーサーバ」３と、各証券会社の各々が保有する「顧客サーバ」４とに対して、「データ配信サーバ」５を、インターネットやデータ専用回線の如きネットワーク６を介して通信可能に接続されている（なお、図１においては図示の便宜上、ネットワーク６を複数示しているが、実際には同一のネットワークを用いて通信を行うことができる）。
【００１８】
このような構成において、各取引所サーバ２やベンダーサーバ３から送信された情報がデータ配信サーバ５にて受信される。このデータ配信サーバ５は、各取引所サーバ２から異なる内容及び異なるフォーマットで送信された情報に基づいて、各証券会社が所望する内容及びフォーマットの情報を生成し、当該生成した情報を顧客サーバ４に送信する。
【００１９】
図１においてエミュレーション装置（エミュレーションサーバ）１０は、データ提供元の「上位サーバ」とデータ配信先の「下位サーバ」との各々に対してネットワーク６を介して同時に又は個別的に接続されるもので、上位サーバに接続されている状態において当該上位サーバから送信されたデータを取得し、取得したデータを、下位サーバに接続されている状態において当該下位サーバに対して送信することにより、上位サーバによるデータ提供環境を下位サーバに対して擬似提供することを目的とするものである。
【００２０】
具体的には、例えば、図１に示すように上位サーバは上述したデータ配信サーバ５であり、データ配信サーバ５にて生成された情報をエミュレーション装置１０が取得する。また、下位サーバは被テストサーバ７である。この被テストサーバ７は、エミュレーション装置１０によって提供されたデータを受信して所定処理を行なう被テストアプリケーションを備えるもので、エミュレーション装置１０によって提供された擬似環境下におけるテストの対象になるものであって、例えば、データ配信サーバ５と顧客サーバ４との相互間のデータ中継サーバ、あるいは、顧客サーバ４として使用されることを意図して開発されているものである。ただし、実際の運用下にある顧客サーバ４を被テストサーバ７として、エミュレーション装置１０を顧客サーバ４に接続してもよい。なお、データ配信サーバ５、被テストサーバ７はそれぞれ、特許請求の範囲における提供元装置、配信先装置に対応する。また、エミュレーション装置１０がデータ配信サーバ５に接続されている状態、エミュレーション装置１０が被テストサーバ７に接続されている状態は、それぞれ特許請求の範囲における第１接続状態、第２接続状態に対応する。
【００２１】
次に、本実施の形態の説明に使用する用語を以下のように定義する。ただし、各用語の意味は、以下の定義に必ずしも限定されず、以下の定義と矛盾しない限りにおいて、当該各用語が通常有する意味を含み得る。まず、取引所サーバ２やベンダーサーバ３からデータ配信サーバ５に送信されるデータ（電文データ）を「証券データ」と称する。この証券データには、例えば、株式データ、指数データ、先物データ等の如き各種のデータが含まれ得る。この証券データに基づいてデータ配信サーバ５によって生成され、顧客サーバ４に送信されるデータを「配信データ」と称する。また、配信データに基づいてエミュレーション装置１０の内部で生成され後述する受信データＤＢ１２に格納されるデータを「キャプチャファイル」、エミュレーション装置１０から被テストサーバ７に送信されるデータを「エミュレーションデータ」、と称する。また、エミュレーション装置１０の動作時に設定確認のために参照するデータを「設定ファイル」、エミュレーション装置１０がデータ配信サーバ５に対して所定銘柄の配信データの送信を要求する際に参照するデータを「銘柄リスト」と称する。また、各サーバの種類や属性等を識別するための識別情報を「サービス名」と称する。
【００２２】
（エミュレーション装置１０の構成）
次に、エミュレーション装置１０の構成を説明する。エミュレーション装置１０は、外部記憶部１１、受信データＤＢ１２、ネットワークインターフェース（以下「ネットワークＩＦ」）１３、及び、制御部１４をバス１５にて通信可能に接続して構成されている。
【００２３】
外部記憶部１１は、エミュレーション装置１０における各処理を実行するために必要なデータを記憶するための記憶手段であり、具体的には、ＨＤ（Hard Disk）の如き不揮発的な記憶装置により構成されている（受信データＤＢ１２において同じ）。この外部記憶部１１には、設定ファイル及び銘柄リストが任意のタイミングにおいて公知の方法で記憶されている。本実施例において、この外部記憶部１１は特許請求の範囲におけるモード格納手段に対応しており、特許請求の範囲におけるモード特定情報は設定ファイルに含まれている。
【００２４】
受信データＤＢ１２は、上位サーバから受信した配信データを格納するためのものであり、具体的にはキャプチャファイルが格納される。この受信データＤＢ１２は、特許請求の範囲におけるデータ格納手段に対応する。
【００２５】
ネットワークＩＦ１３は、エミュレーション装置１０がネットワークを介した通信を行うための通信制御インターフェースであり、例えばネットワークボードとして構成される。
【００２６】
制御部１４は、エミュレーション装置１０の各部を制御する制御手段であり、機能概念的に、要求ＡＰＩ（RAPI: Request API）１４ａ、モード判定部１４ｂ、キャプチャファイル生成部１４ｃ、エミュレーションデータ生成部１４ｄ、及び、発行ＡＰＩ（PAPI: Publication API）１４ｅを備える。
【００２７】
要求ＡＰＩ１４ａは、配信データをデータ配信サーバ５から受信するためのＡＰＩ（Application Program Interface）であり、必要に応じて制御部１４から呼び出されて起動される。モード判定部１４ｂは、外部記憶部１１に記憶されている設定ファイルを参照し、エミュレーション装置１０の動作モードを決定するもので、特許請求の範囲におけるモード決定手段に対応する。キャプチャファイル生成部１４ｃは、要求ＡＰＩ１４ａを介してデータ配信サーバ５から配信データを受信するもので、特許請求の範囲における受信手段に対応する。このキャプチャファイル生成部１４ｃは、配信データの受信時刻を特定するための受信時刻情報を受信した配信データに付加することでキャプチャファイルを生成し、当該生成したキャプチャファイルを受信データＤＢ１２に格納する。エミュレーションデータ生成部１４ｄは、受信データＤＢ１２に格納されたキャプチャファイルを参照し、キャプチャファイルに含まれているデータをエミュレーションデータとして発行ＡＰＩ１４ｅを介して被テストサーバ７に送信するもので、特許請求の範囲における送信手段に対応する。また、エミュレーションデータ生成部１４ｄは、キャプチャファイルに付加されている受信時刻情報と、所定の方法にて取得した送信速度情報とに基づいて、エミュレーションデータを被テストサーバ７に送信する送信タイミングを決定する。発行ＡＰＩ１４ｅは、エミュレーションデータを被テストサーバ７に送信するためのＡＰＩであり、必要に応じて制御部１４から呼び出されて起動される。この制御部１４は、具体的には、ＣＰＵ（Central Processing Unit）や、このＣＰＵ上で解釈実行される各種のプログラム（ＯＳなどの制御プログラムや、各種の処理手順などを規定したプログラム）、及び、所要プログラムや所要データを格納するための内部メモリを備えて構成される。
【００２８】
（データ構造）
次に、本実施の形態におけるエミュレーション装置１０が処理するデータの構造について説明する。ただし、これらデータはあくまで例示であり、以下に示す情報以外の情報を含むことができ、あるいは、以下に示す情報の一部を除外することもできる。
【００２９】
（データ構造−設定ファイル）
まず「設定ファイル」の構造について説明する。設定ファイルは、図２に例示するように、「起動モード」、「サービス名」、「接続先」、及び「速度」の４つの項目名と、各項目に対応するデータを含んで構成されている。
【００３０】
「起動モード」とは、エミュレーション装置１０の起動時に動作させるモードであり、モード判定部１４ｂから参照される情報である。起動モードには、第１接続状態においてデータ配信サーバ５から配信データを取得する「キャプチャモード」と、第２接続状態において被テストサーバ７にエミュレーションデータを送信する「エミュレーションモード」がある（これらキャプチャモードとエミュレーションモードは、それぞれ特許請求の範囲における第１モード、第２モードに対応する）。この項目名「起動モード」に対応するデータとしては、この起動モードを特定するための情報（モード特定情報）が格納されており、例えば、モード名を示すテキストデータや、モードを一意に特定する数値データが格納されている（図２はテキストデータの例を示す）。図２（ａ）には起動モードをキャプチャモードとする場合の設定ファイルの記述例を示し、図２（ｂ）には起動モードをエミュレーションモードとする場合のの設定ファイルの記述例を示す。設定ファイルは外部記憶部１１に格納されており、エミュレーション装置１０の起動時に当該設定ファイルを読み取ることで起動モードを設定するため、起動前にあらかじめ、起動したいモードに応じた内容を記述しておく。あるいは、起動したいモードに応じたいずれか一方の設定ファイルを作成し、あらかじめ外部記憶部１１に格納しておく。
【００３１】
「サービス名」とは、少なくともエミュレーションモードの場合に設定ファイルに格納され、発行ＡＰＩ１４ｅから参照されるもので、エミュレーションモードにおいて被テストサーバ７から接続された場合にエミュレーション装置１０が模擬するサーバ（すなわち、エミュレーション装置１０がデータをキャプチャする上位サーバとしてのデータ配信サーバ５）に予め付与された識別名称である。この項目名「サービス名」に対応するデータとしては、このサービス名を特定するための情報（サービス名特定情報）が格納されており、例えば、サービス名を示すテキストデータや、サービス名を一意に特定する数値データが格納されている（図２はテキストデータの例を示す）。
【００３２】
「接続先」とは、少なくともキャプチャモードの場合に設定ファイルに格納され、要求ＡＰＩ１４ａから参照されるもので、キャプチャモードにおける接続先（すなわち上位サーバとしてのデータ配信サーバ５）を特定するための情報又は当該接続先にネットワーク接続を行うために必要な情報である。この項目名「接続先」に対応するデータとしては、例えば、データ配信サーバ５のサービス名、ＩＰアドレス、及び、ポート番号等（図２においては、サービス名は「データ配信サーバ」、ＩＰアドレスは「ｘｘｘ．ｘｘｘ．．．」、ポート番号は「ｘｘｘｘ」）が格納されている。
【００３３】
「速度」とは、少なくともエミュレーションモードの場合に設定ファイルに格納され、エミュレーションデータ生成部１４ｄから参照されるもので、エミュレーションモードにおいて被テストサーバ７にエミュレーションデータを送信する際の送信速度である。この項目名「速度」に対応するデータとしては、送信速度を特定するための送信速度情報が格納されており、例えば、配信データを受信した際の受信速度に対する送信速度の比率をパーセントで表した数値（図２においては２００％）が格納されている。
【００３４】
（データ構造−銘柄リスト）
次に「銘柄リスト」の構造について説明する。銘柄リストは、キャプチャモードにおいてエミュレーション装置１０がデータ配信サーバ５に対して所定銘柄の配信データの送信を要求する際に参照するデータであり、図３に例示するように、「銘柄コード」を含んでいる。この「銘柄コード」は、データ配信サーバ５に対して配信データの送信を要求する銘柄に予め一意に付与された識別情報（例えば証券コード）であり、図３においては、「６５０１」、「３９０２」、「１００５」、「２６３９」等が格納されている。
【００３５】
（データ構造−キャプチャファイル）
次に「キャプチャファイル」の構造について説明する。このキャプチャファイルは、図４に例示するように、「相対時刻」及び「データ本体」の２種類のデータを相互に関連付けて格納されている。「データ本体」は、データ配信サーバ５から取得した配信データである（具体的な配信データの形式は任意であるため、図４においては配信データの内容を省略する）。「相対時刻」は、配信データを受信した受信時刻を特定するための受信時刻情報（タイムスタンプ）であり、具体的には、図４に示すように、起動後に最初に配信データを受信した時刻を「００：００：００：０００（ただし、時刻の形式＝ｈｈ：ｍｍ：ｓｓ：ｆｆｆとする。以下同じ）」とした場合において、当該時刻を基準とした各配信データの相対的な受信時刻（以降、相対時刻という）が格納されている。なお、エミュレーション装置１０をキャプチャモードで起動した時刻を基準時刻「００：００：００：０００」としてもよい。
【００３６】
（処理動作−ＡＰＩ）
次に、このように構成されたエミュレーション装置１０を用いて行われる処理について説明する。始めに、ＡＰＩを用いたデータの送受信について説明する。図５、６はこの送受信を概念的に説明するための説明図であり、図５はキャプチャモードにおける説明図、図６はエミュレーションモードにおける説明図である。これら図５、６に示すように、上述のようにエミュレーション装置１０には要求ＡＰＩ１４ａ及び発行ＡＰＩ１４ｅがそれぞれ設けられており、さらにデータ配信サーバ５には少なくとも発行ＡＰＩ、被テストサーバ７には少なくとも要求ＡＰＩが設けられている。
【００３７】
発行ＡＰＩはキャッシュ領域を確保して、そのサーバのアプリケーションで生成したデータを、該キャッシュに格納する。図５のキャプチャモードでは、データ配信サーバ５の発行ＡＰＩに当該データ配信サーバ５で生成されたデータが格納され、図６のエミュレーションモードでは、エミュレーション装置１０の発行ＡＰＩ１４ｅに当該エミュレーション装置１０で生成されたエミュレーションデータが格納される。
【００３８】
一方、要求ＡＰＩは、上述した設定ファイルの「接続先」を参照して、格納されているＩＰアドレス及びポート番号により接続先となるサーバの発行ＡＰＩ（隣接する発行ＡＰＩ）にログイン要求を送信することにより、当該サーバに接続する。エミュレーション装置１０においては、図５のキャプチャモードでは要求ＡＰＩ１４ａがデータ配信サーバ５の発行ＡＰＩにログイン要求を送信し、図６のエミュレーションモードでは被テストサーバ７の要求ＡＰＩがエミュレーション装置１０の発行ＡＰＩ１４ｅにログイン要求を送信する。
【００３９】
発行ＡＰＩは、隣接する要求ＡＰＩからのログイン要求があると、設定ファイルの「サービス名」を参照し、要求ＡＰＩに対して自分のサービス名を送信（宣言）する。例えば、図６のエミュレーションモードでは、発行ＡＰＩ１４ｅがエミュレーション装置１０が模擬しているサーバに対応するサービス名（図２（ｂ）の例では「データ配信サーバ」）を宣言することになる。要求ＡＰＩは、発行ＡＰＩによって宣言されたサービス名を、自己の設定ファイルの「接続先」に予め設定されているサービス名（図２（ａ）の例では「データ配信サーバ」）と照合し、サービス名が合致した場合には目的のサーバにログインしたものと判定して銘柄リストに格納されている銘柄のデータをリクエストすることにより配信データの受信を開始し、サービス名が合致しなかった場合には目的のサーバにログインしていないものと判定して配信データの受信を行うことなくサーバとの接続を遮断する。
【００４０】
サービス名が合致した場合には、各サーバは、隣接する要求ＡＰＩからのリクエストに応じて、その時点でキャッシュに記憶されているデータ（ここではリクエストされた銘柄のデータ）の全情報（全ての項目）を送信し、その後は、リクエストされている銘柄を記憶しておくことにより、キャッシュが更新される度に、更新された情報のみを自動的に送信する。例えば、図５のキャプチャモードにおいて、データ配信サーバ５の発行ＡＰＩは、顧客サーバ４の要求ＡＰＩやエミュレーション装置１０の要求ＡＰＩ１４ａに対してデータを送信し、図６のエミュレーションモードにおいて、エミュレーション装置１０の発行ＡＰＩ１４ｅは、被テストサーバ７の要求ＡＰＩに対して配信データを送信する。このように、隣接する発行ＡＰＩと要求ＡＰＩとで通信を行って、データを送受信する。
【００４１】
このような機能を持たせることで、エミュレーション装置１０の設定ファイルの「サービス名」項目に記述されているサービス名を書き換えることにより、エミュレーション装置１０に任意のサーバを模擬させることができる。特に、１台の顧客サーバ４を複数のデータ配信サーバ５に接続してデータ配信サーバ５の負荷分担を図る等、サーバの接続形態が多様な場合であっても、データ配信サーバ５の設定ファイルの「サービス名」と顧客サーバ４の設定ファイルの「接続先」を設定するだけで、各サーバの接続を多様に制御することができる。
【００４２】
また、設定ファイルの「接続先」は複数の接続先を設定できる。具体的には、例えば、図２（ａ）で示した「サービス名」「ＩＰアドレス」「ポート番号」を、全ての接続先について繰り返し設定ファイルに記述する。これにより、設定ファイルを書き換えるだけで複雑なテスト環境を容易に構築することができる。特に、複数の接続先を同じサービス名のサーバ（同じ役割であるサーバ）とする場合には負荷分散やフェールセーフを目的としたより安全な環境を構築することが可能となり、さらに接続先の設定順位等を「接続先」項目に持たせることで、より安定したシステムとすることもできる。
【００４３】
なお、本発明におけるデータの送受信は上述の方法に限定されない。また、これら各ＡＰＩの機能は、各サーバの制御部における通常のプログラム処理として記述することもできるが、本実施の形態のようにＡＰＩ形式として必要に応じて呼び出して起動することで、処理の高速化を図ることができるほか、各サーバのアプリケーションが接続先やデータの送受信について意識する必要がない。
【００４４】
（処理動作−起動時処理）
次に、エミュレーション装置１０にて行われる起動時処理を図７のフローチャートを参照しつつ説明する。エミュレーション装置１０が起動されると、モード判定部１４ｂは外部記憶部１１から設定ファイルを読み込み（ステップＳＡ−１）、設定ファイルに含まれている「起動モード」を参照する（ステップＳＡ−２）。起動モードがキャプチャモードである場合（ステップＳＡ−２、Ｙｅｓ）、モード判定部１４ｂはキャプチャファイル生成部１４ｃを起動し、キャプチャ処理を実行させる（ステップＳＡ−３）。一方、起動モードがエミュレーションモードである場合（ステップＳＡ−２、Ｎｏ）、モード判定部１４ｂはエミュレーションデータ生成部１４ｄを起動し、エミュレーション処理を実行させる（ステップＳＡ−４）。これにて起動時処理が終了する。
【００４５】
（処理動作−キャプチャ処理）
次に、上述のステップＳＡ−３においてキャプチャファイル生成部１４ｃが実行するキャプチャ処理を図８のフローチャートを参照しつつ説明する。キャプチャファイル生成部１４ｃは、モード判定部１４ｂにより起動されると、まず外部記憶部１１から銘柄リストを取得し（ステップＳＢ−１）、その銘柄リストに従って配信データをリクエストするように要求ＡＰＩ１４ａに指示する（ステップＳＢ−２）。要求ＡＰＩ１４ａは設定ファイルに含まれている「接続先」を参照し、取得した銘柄リストに含まれている銘柄コードの配信データの送信を当該「接続先」によって特定されるデータ配信サーバ５に対してリクエストする。そして、要求ＡＰＩ１４ａがデータ配信サーバ５から配信データを受信すると（ステップＳＢ−３、Ｙｅｓ）、キャプチャファイル生成部１４ｃはその配信データを要求ＡＰＩ１４ａから受け取る（ステップＳＢ−４）。
【００４６】
続いて、キャプチャファイル生成部１４ｃは、受信した配信データを受信データＤＢ１２に格納されているキャプチャファイルの「データ本体」に書き出すと共に、当該配信データの受信時点での相対時刻を当該キャプチャファイルの「相対時刻」に付加することで（ステップＳＢ−５）、キャプチャファイルを生成する（ステップＳＢ−６）。相対時刻は、例えば、最初の配信データが受信された時点（またはキャプチャ処理が起動された時点）で内部タイマーを起動し、その時点の時刻を００：００：００：０００として、以後の経過時間を相対時刻として当該内部タイマーから取得する。以降、所定の操作等によりキャプチャファイル生成部１４ｃに対して処理終了指示が与えられるまで、ステップＳＢ−３からＳＢ−６までの処理を繰り返す。そして、処理終了指示が与えられた時点で（ステップＳＢ−７、Ｙｅｓ）、キャプチャ処理が終了する。この処理終了指示は、例えば、処理終了時刻を設定ファイルに記述しておき、該時刻になると処理を終了するようにしてもよい。
【００４７】
（処理動作−エミュレーション処理）
次に、図７のステップＳＡ−４においてエミュレーションデータ生成部１４ｄが実行するエミュレーション処理を図９のフローチャートを参照しつつ説明する。エミュレーションデータ生成部１４ｄがモード判定部１４ｂにより起動された場合、エミュレーション装置１０の発行ＡＰＩ１４ｅは、当該エミュレーション装置１０に接続されている被テストサーバ７の要求ＡＰＩからのリクエストの受信の有無を監視する（ステップＳＣ−１）。そして、当該リクエストを受信した場合（ステップＳＣ−１、Ｙｅｓ）、エミュレーションデータ生成部１４ｄは受信データＤＢ１２に格納されているキャプチャファイルから「データ本体」及び「相対時刻」を一件ずつ読み込む（ステップＳＣ−２）。
【００４８】
続いて、エミュレーションデータ生成部１４ｄは設定ファイルに含まれている送信速度情報を参照し、この送信速度情報と、ステップＳＣ−２で読み込んだ相対時刻とに基づいて、エミュレーションデータを送信すべき時刻を計算する（ステップＳＣ−３）。具体的には、前回エミュレーションデータを送信した時刻を記憶しておくとともに、当該送信したエミュレーションデータを生成する際に読み込んだ相対時刻と今回読み込んだ相対時刻との間隔を求め、当該求めた間隔を、１００％に対する送信速度情報の「比率」（例えば送信速度情報が２００％の場合は比率＝２）で除し、これを前回エミュレーションデータを送信した時刻に加えることで、今回エミュレーションデータを送信すべき時刻を決定する。
【００４９】
例えば、前回送信したデータの相対時刻＝１０：５５：００：１００、前回送信したデータの送信時刻＝０５：２７：５０：０５０、今回読み込んだデータの相対時刻＝１０：５５：００：２００、送信速度情報＝２００％である場合には、間隔＝００：００：００：１００（＝１００ｍｓ）となり、除算結果＝１００ｍｓ／２＝５０ｍｓとなるから、今回エミュレーションデータを送信すべき時刻＝０５：２７：５０：０５０＋５０ｍｓ＝０５：２７：５０：１００となる。従って、この場合には、実際には１００ｍｓの送信間隔であるのを、半分の５０ｍｓでエミュレーションデータを送信することになり、半分の送信間隔（２倍の速度）でエミュレーションを行うことができて、被テストサーバ７の過負荷試験を行ったり、テスト時間を短縮することができる。当然のことながら、送信速度情報を１００％を下回る数値とすれば送信間隔を遅くすることができるので、充分に速度を落とすことによりデバッガを用いることなく目視によってテスト経過を監視できる。
【００５０】
そして、当該決定した時刻において、ステップＳＣ−２で読み込んだ「データ本体」をエミュレーションデータとして発行ＡＰＩ１４ｅに渡し、発行ＡＰＩ１４ｅから被テストサーバ７に対してエミュレーションデータを送信させる（ステップＳＣ−４）。以降、所定の操作等によりエミュレーションデータ生成部１４ｄに対して処理終了指示が与えられるまで、ステップＳＣ−２からＳＣ−４までの処理を繰り返す。そして、処理終了指示が与えられた時点で（ステップＳＣ−５、Ｙｅｓ）、エミュレーション処理が終了する。この処理終了指示についても、処理終了時刻を設定ファイルに記述しておき、該時刻になると処理を終了するようにしてもよい。
【００５１】
（実施の形態１の効果）
このように実施の形態１によれば、データ配信システム１における実際の運用データに基づくテストデータを、テストの目的に応じて生成した送信タイミングで送信することができる。例えば、送信タイミングを実運用時のタイミングよりも遅くしてテストデータを送信することで、デバッガ等を用いることなく、テストの実行中にテスト対象の動作等を確認することができ、効率的なテストの実施が可能となる。また、送信タイミングを実運用時のタイミングよりも早くすることで、全体的なテスト時間を短縮することができるほか、過負荷テストを行うこともできる。
【００５２】
また、第１接続状態で取得した配信データを、第２接続状態において提供することができ、同時に両方の接続状態を確立することは不要であるため、例えば被テストサーバ７がデータ配信サーバ５と接続していない環境においても、事前に取得したデータを被テストサーバ７に提供できる等、被テストサーバ７の総合テストを行うための擬似環境を容易に構築することができる。
【００５３】
また、設定ファイルの「速度」項目を参照して格納されている送信速度情報を取得し、取得した送信速度情報に基づいてエミュレーションデータの送信タイミングを決定するので、設定ファイルの「速度」項目を書き換えるだけで容易にテスト時間を変更することができ、様々なテスト目的にも柔軟に対応することができる。
【００５４】
また、連続して受信した配信データの受信間隔を、受信データＤＢ１２に格納されている受信時刻情報に基づいて算定し、算定した受信間隔に基づいてエミュレーションデータの送信タイミングを決定するので、実運用時の配信データの受信順序や受信間隔と関連性を保持しつつ、テスト目的に応じてテスト時間を変更することができる。このようなエミュレーション処理によれば、配信データの送信間隔を、実際の送信間隔よりも早めたり遅めたりすることができる。特に、送信速度情報を設定ファイルに持たせているので、設定ファイルを書き換えるだけで送信間隔を制御することができ、例えば異なる送信速度情報を格納した複数の設定ファイルを用意しておき、配信データを提供する被テストサーバ７に応じて異なる設定ファイルを適用することで、各被テストサーバ７に対して異なる速度で配信データを提供することもできる。
【００５５】
また、エミュレーション装置１０の起動時において、モード判定部１４ｂが外部記憶部１１に格納されている設定ファイルの「起動モード」項目を参照し、取得した起動モードでエミュレーション装置１０を動作させるので、設定ファイルの「起動モード」項目を書き換えるだけで容易に動作モードを変更することができる。その他、サービス名、接続先、速度といった各種設定についても設定ファイルに記述されているため、設定の変更は設定ファイルを書き換えるだけでよく、これらの情報を各サーバのアプリケーションや、キャプチャファイルなどに持つ必要がないため、柔軟性の高いエミュレーションを行うことができる。
【００５６】
〔実施の形態２〕
次に、実施の形態２について説明する。この形態は、データの受信時刻（時間帯）に応じて異なる送信速度でテストデータを送信する形態である。
【００５７】
なお、実施の形態２の構成は、特記する場合を除いて実施の形態１の構成と略同一であり、実施の形態１の構成と略同一の構成についてはこの実施の形態１で用いたのと同一の符号及び／又は名称を必要に応じて付して、その説明を省略する。
【００５８】
（データ構造−設定ファイル）
まず「設定ファイル」の構造について説明する。実施の形態２においては、図２（ｂ）に示した設定ファイルの「速度」項目に、配信データの受信時刻帯に対応付けた送信速度情報が格納されている。ここでは例えば、０８：００：００：０００〜１５：００：００：０００＝５０％、１５：００：００：０００〜０８：００：００：０００＝２００％と設定されているとする。
【００５９】
（データの構造−キャプチャファイル）
次に、「キャプチャファイル」の構造について説明する。実施の形態２においては、キャプチャファイル（図４）にはデータ本体、相対時刻とともに、図４に示した実際に配信データを受信した受信時刻（絶対時刻）である「受信時刻」も格納されている。
【００６０】
（処理動作）
次に、このように構成されたエミュレーション装置１０を用いて行われる処理について説明する。ＡＰＩを用いたデータの送受信、及び、起動時処理については、上述した実施の形態１と同様であるので説明を省略する。
【００６１】
（処理動作−キャプチャ処理）
まず、上述の図７のステップＳＡ−３においてキャプチャファイル生成部１４ｃが実行するキャプチャ処理について説明する。本実施の形態２におけるキャプチャ処理は、実施の形態１において図８を参照して説明したキャプチャ処理と基本的に同様であるが、ステップＳＢ−５における動作が異なる。すなわち、本実施の形態２では、キャプチャファイル生成部１４ｃは、受信した配信データに受信時点での相対時刻を付加すると共に、受信時刻も付加する。受信時刻は、例えば、エミュレーション装置１０に設けた内部時計から取得する。その他のステップにおける動作は実施の形態１と同様であるので説明を省略する。
【００６２】
（処理動作−エミュレーション処理）
次に、上述の図７のステップＳＡ−４においてエミュレーションデータ生成部１４ｄが実行するエミュレーション処理を説明する。本実施の形態２におけるエミュレーション処理は、実施の形態１において図９を参照して説明したエミュレーション処理と基本的に同様であるが、ステップＳＣ−２及びＳＣ−３における動作が異なる。
【００６３】
すなわち、本実施の形態２におけるステップＳＣ−２では、エミュレーションデータ生成部１４ｄは受信データＤＢ１２に格納されているキャプチャファイルから「データ本体」、「相対時刻」、及び「受信時刻」を一件ずつ読み込む。また、ステップＳＣ−３では、エミュレーションデータ生成部１４ｄは、設定ファイルに含まれている「速度」を参照し、格納されている送信速度情報及び受信時刻帯と、ステップＳＣ−２で読み込んだ相対時刻及び受信時刻とに基づいて、エミュレーションデータを送信すべき時刻を計算する。
【００６４】
具体的には、前回エミュレーションデータを送信した時刻を記憶しておくとともに、当該送信したエミュレーションデータを生成する際に読み込んだ相対時刻と今回読み込んだ相対時刻との間隔を求める。さらに、読み込んだ受信時刻が含まれる受信時刻帯に対応する送信速度情報を設定ファイルから取得する。そして、求めた相対時刻の間隔を、取得した送信速度情報の１００％に対する比率で除し、これを前回エミュレーションデータを送信した時刻に加えることで、エミュレーションデータを送信すべき時刻を決定する。例えば、前回送信したデータの相対時刻＝１０：５５：００：１００、前回送信したデータの送信時刻＝０５：２７：５０：０５０、今回読み込んだデータの相対時刻＝１０：５５：００：２００、今回読み込んだデータの受信時刻＝１２：００：００：０００である場合には、間隔＝００：００：００：１００（＝１００ｍｓ）となり、読み込んだ受信時刻が含まれる受信時刻帯に対応する送信速度情報＝５０％となり、除算結果＝１００ｍｓ／０．５＝２００ｍｓとなるから、今回エミュレーションデータを送信すべき時刻＝０５：２７：５０：０５０＋２００ｍｓ＝０５：２７：５０：２５０となる。すなわち、実際には１００ｍｓの送信間隔であるのを、倍の２００ｍｓでエミュレーションデータを送信することになり、当該受信時刻帯に対応するテスト時間においては、２倍の送信間隔（１／２の速度）でエミュレーションを行うことができる。その他のステップにおける動作は実施の形態１と同様であるので説明を省略する。
【００６５】
（実施の形態２の効果）
このように実施の形態２によれば、配信データの受信時刻に応じて、エミュレーションデータの送信速度を変更することができる。これにより、テストの目的とは関係のない時間帯に受信した配信データに基づいたエミュレーションデータを送信する場合には送信速度を速くすることでテスト時間を短縮し、テスト対象の動作確認を行いたい時間帯に受信した配信データに基づくエミュレーションデータを送信する場合には送信速度を遅くして確実なチェックを行うなど、目的に応じて非常に効率的にテストを行うことができる。
【００６６】
〔III〕各実施の形態に対する変形例
以上、本発明に係る各実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
【００６７】
（解決しようとする課題や発明の効果について）
まず、発明が解決しようとする課題や発明の効果は、前記した内容に限定されるものではなく、本発明によって、前記に記載されていない課題を解決したり、前記に記載されていない効果を奏することもでき、また、記載されている課題の一部のみを解決したり、記載されている効果の一部のみを奏することがある。
【００６８】
（エミュレーションデータの送信タイミングの決定方法について）
上述の各実施の形態では、送信タイミングの決定（図９のステップＳＣ−３）において、エミュレーションデータを送信すべき時刻を１件ずつ求め、システム時刻等と同期させて送信しているが、この方法に代えて次のような方法を採用してもよい。すなわち、前回データを送信した時点から、上述の方法により求めた、前回データと今回データの送信間隔（例えば上述の実施の形態１の例においては５０ｍｓであり，実施の形態２の例においては２００ｍｓである）をタイマにて計測し、その時間後（５０ｍｓ後，２００ｍｓ後）に今回のデータを送信してもよい。
【００６９】
あるいは、本発明のエミュレーション装置のエミュレーションモードでの起動後（あるいはリクエスト受信（図９のＳＣ−１）後）に、データ全件の相対時刻をあらかじめ設定ファイルの速度に応じて書き換えて（または、そのような時刻情報を追加して）から、書き換えられた時刻に従ってエミュレーションデータを送信するようにしてもよい。
【００７０】
（送信速度情報について）
上述の各実施の形態では、送信速度情報（設定ファイルの「速度」）を、配信データを受信した際の受信速度に対する送信速度の比率をパーセントで表した数値（図３においては２００％）として格納しているが、それ以外の数値で示してもよい。例えば、速度の倍率（２倍であれば２，１／２倍であれば０．５など）等としてもよい。
【００７１】
また、実施の形態２の送信速度情報（設定ファイル「速度」）における受信時刻帯は、「受信時刻」（実際の受信時刻）の代わりに、相対時刻で表現してもよい。例えば、「００：００：００：０００〜０３：００：００：０００＝５０％、０３：００：００：０００〜＝２００％と指定することで、キャプチャ開始から３時間の配信データは５０％の速度で、それ以降は２００％で送信という速度設定をする。
【００７２】
また、上述した速度の代わりに、送信間隔を持たせるシステムとしてもよい。すなわち、設定ファイルに送信間隔（例えば５０ｍｓ）を記述しておくことにより、受信時刻情報（相対時刻や絶対時刻）に関係なく、各エミュレーションデータが５０ｍｓ間隔で送信されるようにする。この場合、受信時刻情報は参照されないので、キャプチャデータは受信順序が特定可能なように（例えばシーケンス番号を付与するなど）格納されていれば充分である。一方、受信時刻情報も格納しておけば、受信時刻帯に応じた送信間隔の指定も可能である。
【００７３】
また、送信速度情報を持たないシステムとすることも可能である。この場合には、速度の変更はできないが、受信時刻に応じたタイミングでの（実際と同じ速度での）エミュレーションができる。
【００７４】
（キャプチャファイルに格納する受信時刻情報について）
上述の各実施の形態では、キャプチャファイルの受信時刻情報は「相対時刻」を用いる例で説明したが、実際の受信時刻である「受信時刻」（絶対時刻）を、「相対時刻」に代えて含めるように構成してもよい。この場合、エミュレーション処理においてエミュレーションデータの送信タイミングを決定する際には、相対時刻の間隔ではなく受信時刻の間隔を求め、これに基づいて送信タイミングを決定する。
【００７５】
また、実施の形態２では、キャプチャファイルには各キャプチャデータについて「受信時刻」項目が含まれていると説明したが、各データの相対時刻と実際の受信時刻（絶対時刻）とを対応付けることができればよいので、他の方法を採用してもよい。例えば、相対時刻＝００：００：００：０００に対応する絶対時刻（本発明ではキャプチャ処理において最初にデータが受信された時刻、あるいはキャプチャ処理が起動された起動時刻）のみを含めるようにしてもよい。この時刻は、キャプチャファイルあるいは設定ファイル、あるいはその他の既知の方法で格納する。この場合、エミュレーション処理においてデータ本体の受信時刻帯を特定する際には、当該絶対時刻に相対時刻を加えることで受信時刻を特定し、これに基づいて受信時刻帯を特定することができる。
【００７６】
また、送信タイミング（送信速度）を変化させる条件は、受信時刻帯（時間帯）に限られない。例えば、複数の配信先装置にデータを配信する場合において、各配信先に対応する速度を設定ファイルの「速度」項目に格納しておくことにより、配信先に応じて異なる速度でデータを送信することができ、配信先装置のデータ処理能力や必要なテスト項目等により異なるテストを行うことができる。また、同じ配信先装置に対してテストを複数回繰り返して行う場合において、各回に対応する速度を「速度」項目に格納しておくことにより、各回に対応する速度でデータを送信することができ、速度（負荷）の異なる複数通りのテストを行うことができる。このように様々な条件を用意することにより、より柔軟性の高いテストが可能となる。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施の形態１に係るデータ配信システムを概念的に示すブロック図である。
【図２】設定ファイルの構成例を示す図である。
【図３】銘柄リストの構成例を示す図である。
【図４】キャプチャファイルの構成例を示す図である。
【図５】キャプチャモードにおける送受信を概念的に説明するための説明図である。
【図６】エミュレーションモードにおける送受信を概念的に説明するための説明図である。
【図７】起動時処理のフローチャートである。
【図８】キャプチャ処理のフローチャートである。
【図９】エミュレーション処理のフローチャートである。
【符号の説明】
【００７８】
１  データ配信システム
２  取引所サーバ
３  ベンダーサーバ
４  顧客サーバ
５  データ配信サーバ
６  ネットワーク
７  被テストサーバ
１０  エミュレーション装置
１１  外部記憶部
１２  受信データＤＢ
１３  ネットワークインターフェース
１４  制御部
１４ａ  要求ＡＰＩ
１４ｂ  モード判定部
１４ｃ  キャプチャファイル生成部
１４ｄ  エミュレーションデータ生成部
１４ｅ  発行ＡＰＩ
１５  バス
【要約】
【課題】実際の運用データに基づくテストデータを、テストの目的に応じた柔軟な送信タイミングで送信可能なエミュレーション装置を提供することを課題とする。
【解決手段】データ配信サーバ５によるデータ提供環境を擬似提供するエミュレーション装置１０であって、第１接続状態において、データ配信サーバ５からデータを受信する要求ＡＰＩ１４ａと、受信されたデータと当該データが受信された受信時刻を特定するための受信時刻情報とを相互に関連付けて格納する受信データＤＢ１２と、第２接続状態において、受信データＤＢ１２に格納されたデータを被テストサーバ７に送信する送信タイミングを、当該データに関連付けて受信データＤＢ１２に格納された受信時刻情報に基づいて決定し、当該決定した送信タイミングにて当該データを被テストサーバ７に送信する発行ＡＰＩ１４ｅとを備える。
【選択図】図１【図１】
0004146502.tif 000002
【図２】
0004146502.tif 000003
【図３】
0004146502.tif 000004
【図４】
0004146502.tif 000005
【図５】
0004146502.tif 000006
【図６】
0004146502.tif 000007
【図７】
0004146502.tif 000008
【図８】
0004146502.tif 000009
【図９】
0004146502.tif 000010