(57)【要約】【課題】テストツールを用いることなく、実稼働環境のような公衆に利用可能な環境においてサーバが受けるｈｔｔｐリクエストのトラフィックを、テスト環境において忠実に再現することができるサーバおよびプログラムを提供すること。【解決手段】通信ネットワーク上で一般ユーザへのサービスを実施しているサーバにおいて、クエリ情報を含むｈｔｔｐリクエストを受信するｈｔｔｐリクエスト受信手段２０２と、ｈｔｔｐリクエストからクエリ情報を抽出するクエリ情報抽出手段２０３と、クエリ情報に基づいた処理を行う他のサーバに、抽出したクエリ情報を送信するクエリ情報送信手段２０４と、を備える公衆に利用可能なサーバ（実稼働Ｗｅｂサーバ２０）が、所定の指示を受け付けたことに応じて、テスト用サーバに前記ｈｔｔｐリクエストを送信するｈｔｔｐリクエスト送信手段２０７を更に備える。【選択図】図２
2010205232.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク上で一般ユーザへのサービスを実施しているサーバにおいて、クエリ情報を含むｈｔｔｐリクエストを受信するｈｔｔｐリクエスト受信手段と、前記ｈｔｔｐリクエストからクエリ情報を抽出するクエリ情報抽出手段と、前記クエリ情報に基づいた処理を行う他のサーバに、抽出した前記クエリ情報を送信するクエリ情報送信手段と、を備える公衆に利用可能なサーバであって、
所定の指示を受け付けたことに応じて、テスト用サーバに前記ｈｔｔｐリクエストを送信するｈｔｔｐリクエスト送信手段を更に備えるサーバ。
【請求項２】
前記所定の指示は、前記公衆に利用可能なサーバの設定ファイルの変更または追加を前記サーバが受け付けることにより行うものである請求項１に記載のサーバ。
【請求項３】
通信ネットワーク上で一般ユーザへのサービスを実施しているサーバであって、クエリ情報を含むｈｔｔｐリクエストを受信する受信手段と、前記ｈｔｔｐリクエストからクエリ情報を抽出するクエリ情報抽出手段と、前記クエリ情報に基づいた処理を行う他のサーバに、抽出した前記クエリ情報を送信するクエリ情報送信手段と、を備える公衆に利用可能なサーバに、
所定の指示を受け付けたことに応じて、テスト用サーバに前記ｈｔｔｐリクエストを送信するステップを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公衆に利用可能な環境で生じたトラフィックを別の環境に生成するサーバおよびプログラムに関する。
【背景技術】
【０００２】
今日、インターネットを介して様々なサービスが提供されている。特に、Ｗｅｂブラウザを備えたＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）や携帯端末からインターネット等の公衆回線を介して、ｈｔｔｐリクエストを受けて様々な内容のコンテンツをＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）に基づくＷｅｂページ等として返すＷｅｂサーバは、その中心的な役割を担っている。
【０００３】
このようなＷｅｂサーバは、ユーザの端末から短期間に膨大なｈｔｔｐリクエストを受けることにより高負荷になることもあり、そのような高負荷にも耐えられるように設計しておく必要がある。そのために、Ｗｅｂサーバを公衆に対してリリースする際には、事前に、テスト環境において負荷テストと呼ばれる高負荷に対する安全性、安定性、可用性等を確認するテストをＷｅｂサーバに行うことがある。
【０００４】
このような負荷テストにおいては、ｈｔｔｐリクエストを擬似的に発生させるプログラム（テストツール）を用いたり、実際にテスターが複数の端末から同時期にｈｔｔｐリクエストを発生させることが行われている。
【０００５】
より具体的には、次のようなテストツールが提案されている。テストデータのうち可変である項目それぞれの数値を予め決められた範囲で増減させて様々な種類のテストデータを作成するテストツール（特許文献１）や、テストデータにおける可変である項目それぞれについて予めデータを用意しておき各項目のデータを組合わせることにより様々な種類のテストデータを作成するテストツールの技術が開示されている（特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−３３２１３９公報
【特許文献２】特開２０００−２２２４９０公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１および２に記載のテストツールを用いても、Ｗｅｂサーバが実稼働環境にて稼働した場合に実際に受信するトラフィックを忠実に再現することはできない。すなわち、このようなテストツールは、人工的にトラフィックを生成する以上、刻々と変化する実稼働環境において発生しているｈｔｔｐリクエストのトラフィックに“近い”トラフィックを発生することはできても、そっくりそのまま再現することは原理的に限界がある。更に、負荷テスト等のためのテストデータ（トラフィック）を作成するには、テスト環境のＷｅｂサーバ等にテストツールをインストールするか、テストツールをインストールしたサーバを別途用意しなければならない。また、可変である項目について予めデータを用意する等の準備が必要であり、テストツールに人工的にトラフィックを発生させるために手間がかかる、という問題もある。
【０００８】
そこで本発明は、このようなテストツールを用いることなく、実稼働環境のような公衆に利用可能な環境においてサーバが受けるｈｔｔｐリクエストのトラフィックを、テスト環境において忠実に再現することができるサーバおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では、以下のような解決手段を提供する。
【００１０】
（１）通信ネットワーク上で一般ユーザへのサービスを実施しているサーバにおいて、クエリ情報を含むｈｔｔｐリクエストを受信するｈｔｔｐリクエスト受信手段と、前記ｈｔｔｐリクエストからクエリ情報を抽出するクエリ情報抽出手段と、前記クエリ情報に基づいた処理を行う他のサーバに、抽出した前記クエリ情報を送信するクエリ情報送信手段と、を備える公衆に利用可能なサーバであって、所定の指示を受け付けたことに応じて、テスト用サーバに前記ｈｔｔｐリクエストを送信するｈｔｔｐリクエスト送信手段を更に備えるサーバ。
【００１１】
（１）の構成によれば、通信ネットワーク上で一般ユーザへのサービスを実施しているサーバにおいて、クエリ情報を含むｈｔｔｐリクエストを受信するｈｔｔｐリクエスト受信手段と、ｈｔｔｐリクエストからクエリ情報を抽出するクエリ情報抽出手段と、クエリ情報に基づいた処理を行う他のサーバに、抽出したクエリ情報を送信するクエリ情報送信手段と、を備える公衆に利用可能なサーバが、受信したクエリ情報を含むｈｔｔｐリクエストを、所定の指示を受け付けたことに応じて、テスト用サーバにｈｔｔｐリクエストを送信するｈｔｔｐリクエスト送信手段を更に備える。
【００１２】
ここで、通信ネットワーク上で一般ユーザへのサービスを実施している、公衆に利用可能なサーバとは、当該通信ネットワークを介して一般のユーザ端末がアクセスすることができるサーバであり、例えば、いわゆる実稼働環境にあるＷｅｂサーバである。一方、テスト用サーバとは、公衆ネットワークを介して一般のユーザ端末がアクセスすることができないサーバであり、例えば、いわゆるテスト環境にあるＷｅｂサーバである。また、所定の指示は、例えば、Ｗｅｂサーバが設定ファイルを読み込むことにより受け付けることができる。具体的には、公衆に利用可能なサーバは、自身が受信したｈｔｔｐリクエストを、テスト用サーバにそっくりそのまま送信することができる。すなわち、実際にユーザが送信したｈｔｔｐリクエストを受信した公衆に利用可能なサーバは、他のサーバにクエリ情報を送信すると共に、テスト用サーバに当該ｈｔｔｐリクエストをそっくりそのまま送信することができる。その結果、公衆に利用可能なサーバ上でサーバが受けるｈｔｔｐリクエストのトラフィックを、テスト環境において忠実に再現することができる。
【００１３】
（２）前記所定の指示は、前記公衆に利用可能なサーバの設定ファイルの変更または追加を前記サーバが受け付けることにより行うものである（１）に記載のサーバ。
【００１４】
（２）の構成によれば、公衆に利用可能なサーバの設定ファイルの変更または追加をサーバが受け付けることにより、テスト用サーバにｈｔｔｐリクエストを送信する。
【００１５】
このことにより、設定ファイルの変更または追加に応じて、公衆に利用可能なサーバは、テスト用サーバ、例えば、いわゆるテスト環境のＷｅｂサーバにｈｔｔｐリクエストをそっくりそのまま送信することができる。その結果、負荷テストを行う管理者等は、設定ファイルの変更または追加を行うだけで、テスト用サーバに実稼働環境にあるサーバが受けたｈｔｔｐリクエストをそっくりそのまま送信してトラフィックを忠実に再現し、負荷テスト等を行うことができる。
【００１６】
（３）通信ネットワーク上で一般ユーザへのサービスを実施しているサーバであって、クエリ情報を含むｈｔｔｐリクエストを受信する受信手段と、前記ｈｔｔｐリクエストからクエリ情報を抽出するクエリ情報抽出手段と、前記クエリ情報に基づいた処理を行う他のサーバに、抽出した前記クエリ情報を送信するクエリ情報送信手段と、を備える公衆に利用可能なサーバに、所定の指示を受け付けたことに応じて、テスト用サーバに前記ｈｔｔｐリクエストを送信するステップを実行させるプログラム。
【発明の効果】
【００１７】
本発明によれば、テストツールを用いることなく、実稼働環境のような公衆に利用可能な環境においてサーバが受けるｈｔｔｐリクエストのトラフィックを、テスト環境において忠実に再現することができるサーバおよびプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の好適な実施形態に係るシステムの全体構成を示す図である。
【図２】本発明の好適な実施形態に係る実稼働Ｗｅｂサーバの機能構成を示す図である。
【図３】本発明の好適な実施形態に係るｈｔｔｐリクエスト処理のフローチャートである。
【図４】実稼働Ｗｅｂサーバ、テスト用Ｗｅｂサーバ、実稼働プロバイダ・サーバ、およびテスト用プロバイダ・サーバのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図を参照しながら説明する。
【００２０】
［サーバ構成］
図１は、本発明の好適な実施形態に係るシステムの全体構成１を示す図である。システムの全体構成１は、公衆に利用可能である環境と、テスト環境３とを含む。ここで、公衆に利用可能である環境は、通信ネットワークを介して一般のユーザ端末１０がアクセスすることができるＷｅｂサーバを含む。公衆に利用可能である環境は、実際に稼働していることから実稼働環境と呼ばれたり、本番として使用されていることから本番環境と呼ばれたりする。以下、公衆に利用可能である環境を実稼働環境２とする。
【００２１】
一方、テスト環境３は、通信ネットワークを介して一般のユーザ端末１０がアクセスすることができないＷｅｂサーバを含む。テスト環境３とは、具体的には例えば、負荷テスト等を行うためのテスト環境である。
【００２２】
実稼働環境２は、通信ネットワーク上で一般ユーザへのサービスを実施しているサーバとしての、公衆に利用可能であるサーバと、クエリ情報に基づいた処理を行う他のサーバとしての２台のプロバイダ・サーバとが通信ネットワークを介して接続され、構成されている。また、公衆に利用可能であるサーバは、一般のユーザ端末１０と通信ネットワークを介して接続されている。以下、実稼働環境２にあり、公衆に利用可能であるサーバを実稼働Ｗｅｂサーバ２０、公衆に利用可能であるプロバイダ・サーバを実稼働プロバイダ・サーバ２１および２２とする。
【００２３】
実稼働Ｗｅｂサーバ２０は、ユーザ端末１０からｈｔｔｐリクエストを受け付け、ｈｔｔｐリクエストに含まれるクエリ情報を送信して実稼働プロバイダ・サーバ２１、２２に処理を依頼する。そして、実稼働Ｗｅｂサーバ２０は、実稼働プロバイダ・サーバ２１、２２から処理結果を受信し、処理結果に基づいて作成したｈｔｔｐレスポンスをユーザ端末１０へ送信する。
【００２４】
ここで、ｈｔｔｐリクエストとは、Ｗｅｂを用いた場合の標準的な通信プロトコルであるｈｔｔｐ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）を通じてユーザ端末からＷｅｂサーバに送信される要求である。一方、ｈｔｔｐレスポンスとは、ユーザ端末から受信したｈｔｔｐリクエストに対する、Ｗｅｂサーバからユーザ端末へ送信される応答である。ｈｔｔｐリクエストの中身については後述する。
【００２５】
実稼働Ｗｅｂサーバ２０は、具体的には、Ａｐａｃｈｅ（商標）  ＨＴＴＰ  Ｓｅｒｖｅｒ（Ａｐａｃｈｅ（商標）  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎ）等のＷｅｂサーバである。また、実稼働Ｗｅｂサーバ２０は、テキストまたは画像等の各種のオブジェクトが含まれるＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）方式またはＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）方式等の静的なコンテンツを提供する。静的なコンテンツとは、例えば、Ｗｅｂページのデータである。
【００２６】
実稼働Ｗｅｂサーバ２０の処理を、インターネット上で商品を購入した場合における代金の決済処理を例に用いて、具体的に説明する。商品を購入したユーザ端末１０から決済指示と決済情報とがｈｔｔｐリクエストにて送信された場合、実稼働Ｗｅｂサーバ２０はｈｔｔｐリクエストの処理を実行できるが、決済処理を実行することはできない。そのため、実稼働Ｗｅｂサーバ２０は決済処理の機能を備える実稼働プロバイダ・サーバ２１、２２に決済情報を送信し、処理を実行させる。
【００２７】
実稼働プロバイダ・サーバ２１、２２は、実稼働Ｗｅｂサーバ２０からｈｔｔｐリクエストに含まれるクエリ情報を受信して処理の依頼を受け付けた場合、依頼された処理を実行し、処理結果を実稼働Ｗｅｂサーバ２０へ送信する。実稼働プロバイダ・サーバ２１、２２は、業務処理やデータ処理等の機能を備える。
【００２８】
上述した例においては、実稼働プロバイダ・サーバ２１、２２は、決済処理の機能を備え、実稼働Ｗｅｂサーバ２０から決済情報を受信し、決済処理を行う。そして、決済結果、例えば、決済金額や決済日付、を実稼働Ｗｅｂサーバ２０へ送信する。
【００２９】
このように、実稼働環境２において、実稼働Ｗｅｂサーバ２０は実稼働プロバイダ・サーバ２１、２２と連携して、ユーザ端末１０からのｈｔｔｐリクエストに対して処理を実行し、ｈｔｔｐレスポンスを返信する。
【００３０】
図１に戻って、テスト環境３は、公衆に利用可能でないテスト用サーバと、２台のプロバイダ・サーバが通信ネットワークを介して接続され、構成されている。なお、テスト環境３は公衆に利用可能でないので、公衆に利用可能でないテスト用サーバ等を接続する通信ネットワークはイントラネット等のアクセスが限られたネットワークであるのが望ましい。以下、テスト環境３にあり、公衆に利用可能でないテスト用サーバをテスト用Ｗｅｂサーバ３０、公衆に利用可能でないプロバイダ・サーバをテスト用プロバイダ・サーバ３１および３２とする。
【００３１】
テスト用Ｗｅｂサーバ３０は、実稼働Ｗｅｂサーバ２０と接続される。それにより、テスト用Ｗｅｂサーバ３０はユーザ端末１０から送信されるｈｔｔｐリクエストを実稼働Ｗｅｂサーバ２０を介してそっくりそのまま受信することができる。
【００３２】
テスト用Ｗｅｂサーバ３０は、実稼働Ｗｅｂサーバ２０を介してユーザ端末１０からｈｔｔｐリクエストを受信し、テスト用プロバイダ・サーバ３１、３２に処理を依頼してもよい。
【００３３】
テスト用プロバイダ・サーバ３１、３２は、テスト用Ｗｅｂサーバ３０から依頼された処理を実行してもよい。
【００３４】
［実稼働Ｗｅｂサーバの機能構成］
図２は、本発明の好適な実施形態に係る実稼働Ｗｅｂサーバ２０の機能構成を示す図である。実稼働Ｗｅｂサーバ２０は、設定ファイル読込手段２０１と、ｈｔｔｐリクエスト受信手段２０２と、クエリ情報抽出手段２０３と、クエリ情報送信手段２０４と、結果受信手段２０５と、ｈｔｔｐリクエスト応答手段２０６と、ｈｔｔｐリクエスト送信手段２０７と、を備える。以下、実稼働Ｗｅｂサーバ２０の各手段について説明する。
【００３５】
設定ファイル読込手段２０１は、所定の記憶領域に記憶した設定ファイル２１０を読み込んで実稼働Ｗｅｂサーバ２０の動作を設定する。実稼働Ｗｅｂサーバ２０は、この設定ファイル２１０を読み込むことにより、クエリ情報を送信すべき実稼働プロバイダ・サーバ２１、２２を特定したり、必要に応じてｈｔｔｐリクエストを送信すべきテスト用Ｗｅｂサーバ３０を特定したりすることができる。
【００３６】
具体的には、まず、設定ファイル読込手段２０１は、設定ファイル２１０を読み込んで、クエリ情報を送信する実稼働プロバイダ・サーバ２１、２２やｈｔｔｐリクエストを送信するテスト用Ｗｅｂサーバ３０を特定する。
【００３７】
ｈｔｔｐリクエスト受信手段２０２は、ユーザ端末１０からｈｔｔｐリクエストを受信する。ここで、ｈｔｔｐリクエストの中身について説明する。次式［Ｉ］に、ｈｔｔｐリクエスト例を示す。
【００３８】
【数１】
2010205232.tif 000003
【００３９】
ｈｔｔｐリクエストは、リクエスト・ライン、リクエスト・ヘッダ、およびメッセージ・ボディから構成される。リクエスト・ラインは、上述の式［Ｉ］の１行目であって、ｈｔｔｐリクエストの必須部分であり、メソッド、リソースのＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）、およびｈｔｔｐバージョン情報で構成される。メソッドとは、ユーザ端末がＷｅｂサーバに実行を要求するアクション指定であって、サーバに対し情報の取得を要求するＧＥＴ、サーバに対して情報を送信し、処理の実行を要求するＰＯＳＴ等がある。
【００４０】
なお、リクエスト・ラインのメソッドにＰＯＳＴではなく、ＧＥＴを用いてもＷｅｂサーバに情報を送信することができる。その場合、情報はメッセージ・ボディに記述されず、情報をＵＲＩの一部として扱う。次式［ＩＩ］に、Ｇｅｔメソッドを用いてＷｅｂサーバに情報を送信する場合のリクエスト・ラインを示す。
【００４１】
【数２】
2010205232.tif 000004
【００４２】
クエリ情報抽出手段２０３は、ｈｔｔｐリクエスト受信手段２０２で受信したｈｔｔｐリクエストからクエリ情報を抽出する。具体的には、クエリ情報抽出手段２０３は、ｈｔｔｐリクエストからクエリ情報を抽出するスクリプトを実行することにより、ｈｔｔｐリクエスト受信手段２０２で受信したｈｔｔｐリクエストからクエリ情報を抽出する。このスクリプトは、ＰＨＰ（Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｃｅｓｓｏｒ）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＡＳＰ（Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ）等のスクリプト言語で記述することができる。
【００４３】
ここで、クエリ情報はユーザ端末からＷｅｂサーバへ送信された情報であって、ＰＯＳＴメソッドのｈｔｔｐリクエストの場合にはメッセージ・ボディに記述された情報であり、ＧＥＴメソッドのｈｔｔｐリクエストの場合には、リクエスト・ラインにＵＲＬの一部として記述された情報である。
【００４４】
上述した式［Ｉ］に示したｈｔｔｐリクエスト例においては、クエリ情報抽出手段２０３は、６〜７行目のメッセージ・ボディに記述された情報「name=myname  password=mypasssword」をクエリ情報として抽出する。一方、上述した式［ＩＩ］に示したｈｔｔｐリクエストのリクエスト・ライン例においては、クエリ情報抽出手段２０３は、ＵＲＩの一部として記述された情報「name=myname&password=mypasssword」をクエリ情報として抽出する。
【００４５】
クエリ情報送信手段２０４は、クエリ情報抽出手段２０３で抽出したクエリ情報を実稼働プロバイダ・サーバ２１、２２へ送信してもよい。クエリ情報を送信する実稼働プロバイダ・サーバを特定する情報（例えば、ホスト名）は実稼働Ｗｅｂサーバ２０が有する設定ファイル（ｃｏｎｆ．ファイル等）２１０に定義してもよい。その場合、実稼働Ｗｅｂサーバ２０の設定ファイル読込手段２０１が設定ファイル２１０を読み込むことにより、クエリ情報送信手段２０４は設定ファイル２１０に定義された実稼働プロバイダ・サーバ２１、２２にクエリ情報を送信することができる。次式［ＩＩＩ］にクエリ情報を送信する実稼働プロバイダ・サーバの設定が記述されている設定ファイル例を示す。
【００４６】
【数３】
2010205232.tif 000005
【００４７】
上式［ＩＩＩ］に示すように、クエリ情報を送信する実稼働プロバイダ・サーバ２１、２２を特定する情報としてホスト名「'hostname' => 'aaa.co.jp'」、クエリ情報を渡すプログラムを特定する情報としてポート番号「'port' => 80,」等が、設定ファイルには記述される。
【００４８】
また、本発明の好適な実施形態に係る実稼働Ｗｅｂサーバ２０は、テスト用Ｗｅｂサーバ３０を特定する情報（例えば、ホスト名）を定義した設定ファイル２１０を有する。次式［ＩＶ］にｈｔｔｐリクエストを送信するテスト用Ｗｅｂサーバ３０の設定が記述されている設定ファイル例を示す。
【００４９】
【数４】
2010205232.tif 000006
【００５０】
上式［ＩＩＩ］、［ＩＶ］に示すように、テスト用Ｗｅｂサーバ３０の設定が記述されている設定ファイルも、クエリ情報を送信する実稼働プロバイダ・サーバの設定が記述されている設定ファイルとほぼ同様の構成となっている。上式［ＩＶ］は、テスト用Ｗｅｂサーバ３０の設定が記述されている設定ファイル例であるので、ホスト名「'hostname' => test.aaa.co.jp '」とテスト用Ｗｅｂサーバ３０を特定する情報が記述される。なお、ポート番号等もテスト用Ｗｅｂサーバ３０用に記述される。また、上式［ＩＶ］には上式［ＩＩＩ］には記述されていない「'output'   => /dev/null,」が記述されている。これは、実稼働Ｗｅｂサーバ２０に負荷をかけないために、出力を捨てることを指示する記述であり、この記述により、テスト用Ｗｅｂサーバ３０へのｈｔｔｐリクエストの送信による負荷を実稼働Ｗｅｂサーバ２０はほとんど受けずにすむ。
【００５１】
なお、テスト用Ｗｅｂサーバ３０を特定する情報を、クエリ情報を送信する実稼働プロバイダ・サーバ２１、２２を特定する情報と同じ設定ファイルに記述してもよい。その場合、設定ファイルには、実稼働プロバイダ・サーバの設定が記述されている上式［ＩＩＩ］と、テスト用Ｗｅｂサーバ３０の設定が記述されている上式［ＩＶ］とが合わせて記述される。
【００５２】
クエリ情報を送信する実稼働プロバイダ・サーバ２１、２２を特定する情報が複数の設定ファイル（ｃｏｎｆ．ファイル）に分かれている場合には、クエリ情報を送信する実稼働プロバイダ・サーバ２１、２２を特定する情報が設定されている全ての設定ファイルに基づいてクエリ情報を送信する実稼働プロバイダ・サーバ２１、２２を特定する。テスト用Ｗｅｂサーバ３０を特定する情報が複数の設定ファイル（ｃｏｎｆ．ファイル）に分かれている場合も同様である。
【００５３】
クエリ情報送信手段２０４は、クエリ情報を実稼働プロバイダ・サーバ２１、２２へ送信する。具体的には、まず、クエリ情報送信手段２０４は、実稼働プロバイダ・サーバ２１、２２にクエリ情報を送信し、送信したクエリ情報に対する実稼働プロバイダ・サーバ２１、２２の処理結果を受信するプロセスを複製する。このプロセスは、複製により、設定ファイル２１０に定義されている実稼働プロバイダ・サーバの数、生成される。プロセスの複製には、例えば、ｆｏｒｋ命令を用いる。そして、クエリ情報送信手段２０４は、複製したプロセスそれぞれを実行する。図１に示す例においては、実稼働プロバイダ・サーバ２１、２２が設定ファイル２１０に定義されており、実稼働プロバイダ・サーバ２１、２２それぞれとやりとりを行うプロセスが２つ生成され、実行される。このようにして、クエリ情報送信手段２０４は複数の実稼働プロバイダ・サーバ２１、２２とのやり取りを並列して行うことができる。
【００５４】
結果受信手段２０５は、クエリ情報が送信された実稼働プロバイダ・サーバ２１、２２から処理結果を受信する。具体的には、結果受信手段２０５は、クエリ情報送信手段２０４で生成された複数のプロセスそれぞれがクエリ情報を送信した実稼働プロバイダ・サーバ２１、２２から受信した結果を取得し、処理結果を受信したプロセスを終了する。プロセスの終了には、例えば、ｊｏｉｎ命令を用いる。
【００５５】
ｈｔｔｐリクエスト応答手段２０６は、結果受信手段２０５で実稼働プロバイダ・サーバ２１、２２から受信した処理結果を格納したｈｔｔｐレスポンスを作成し、ユーザ端末１０に送信する。
【００５６】
ｈｔｔｐリクエスト送信手段２０７は、設定ファイル２１０の内容に応じて、ｈｔｔｐリクエスト受信手段２０２にて受信したｈｔｔｐリクエストをテスト用Ｗｅｂサーバ３０へ送信する。具体的には、ｈｔｔｐリクエスト送信手段２０７は、設定ファイル読込手段２０１で読み込んだ設定ファイル２１０に記載された情報に基づいて、ｈｔｔｐリクエストをテスト用Ｗｅｂサーバ３０へ送信する。なお、図２においては、ｈｔｔｐリクエスト送信手段２０７は、クエリ情報抽出手段２０３がクエリ情報を抽出した後、ｈｔｔｐリクエストをテスト用Ｗｅｂサーバ３０へ送信している。しかし、これに限られず、ｈｔｔｐリクエスト受信手段２０２がｈｔｔｐリクエストを受信した後であればいつでも、当該受信したｈｔｔｐリクエストをそっくりそのままテスト用Ｗｅｂサーバ３０へ送信することができる。
【００５７】
ｈｔｔｐリクエスト送信手段２０７は、設定ファイル２１０に基づいて設定ファイル読込手段２０１が特定したテスト用Ｗｅｂサーバ３０にｈｔｔｐリクエストを送信する。設定ファイル２１０には、どのテスト用Ｗｅｂサーバ３０に送信するかが定義されている。
【００５８】
ｈｔｔｐリクエスト送信手段２０７によりｈｔｔｐリクエストをテスト用Ｗｅｂサーバ３０へ送信することにより、実稼働Ｗｅｂサーバが受け付けたｈｔｔｐリクエストのトラフィックをテスト環境３のテスト用Ｗｅｂサーバ３０にそっくりそのまま送信することができる。その結果、実稼働Ｗｅｂサーバ２０は、実稼働Ｗｅｂサーバ２０が受け付けたトラフィックをテスト環境３において忠実に再現することができる。
【００５９】
ｈｔｔｐリクエストを受信したテスト用Ｗｅｂサーバ３０は、例えば、ｈｔｔｐリクエストからクエリ情報を抽出し、テスト用プロバイダ・サーバ３１、３２に送信する。このようにして、テスト環境３にある各種サーバは、実稼働Ｗｅｂサーバ２０が受け付けたｈｔｔｐリクエストのトラフィックをそっくりそのまま用いて、負荷テストを実施することができる。
【００６０】
図３は、本発明の好適な実施形態に係るｈｔｔｐリクエスト処理のフローチャートである。実稼働Ｗｅｂサーバ２０が、ユーザ端末１０からｈｔｔｐリクエストを受け付けると処理が開始する。
【００６１】
Ｓ１０：設定ファイル読込手段２０１は、設定ファイル２１０を読み込んで実稼働Ｗｅｂサーバ２０の動作を設定する。具体的には、設定ファイル読込手段２０１は、設定ファイル２１０を読み込んでクエリ情報を送信する実稼働プロバイダ・サーバ２１、２２や、ｈｔｔｐリクエストを送信するテスト用Ｗｅｂサーバ３０を特定する。
【００６２】
Ｓ２０：ｈｔｔｐリクエスト受信手段２０２は、ユーザ端末１０からｈｔｔｐリクエストを受信する。
Ｓ３０：クエリ情報抽出手段２０３は、ｈｔｔｐリクエストからクエリ情報を抽出するスクリプトを実行して、ステップＳ２０で受信したｈｔｔｐリクエストからクエリ情報を抽出する。
Ｓ４０：クエリ情報送信手段２０４は、ステップＳ１０で設定ファイル２１０に基づいて特定された実稼働プロバイダ・サーバ２１、２２にステップＳ３０で抽出したクエリ情報を送信する。
【００６３】
Ｓ５０：実稼働Ｗｅｂサーバ２０は、読み込んだ設定ファイル２１０に基づいて、テスト用Ｗｅｂサーバ３０にｈｔｔｐリクエストを送信するか否かを決定する。具体的には、ｈｔｔｐリクエスト送信手段２０７は、ステップＳ１０で設定ファイル２１０に基づいてテスト用Ｗｅｂサーバ３０が特定されたか否か判断する。判断結果がＹＥＳの場合にはステップＳ６０に移り、ＮＯの場合にはステップＳ７０へ移る。
【００６４】
Ｓ６０：ｈｔｔｐリクエスト送信手段２０７は、ステップＳ１０で設定ファイル２１０に基づいて特定されたテスト用Ｗｅｂサーバ３０に、ステップＳ２０で受信したｈｔｔｐリクエストを送信する。
Ｓ７０：結果受信手段２０５は、ステップＳ４０で送信したクエリ情報の処理結果を実稼働プロバイダ・サーバ２１、２２から受信する。
Ｓ８０：ｈｔｔｐリクエスト応答手段２０６は、ステップＳ７０にて受信した処理結果に基づいて、ｈｔｔｐレスポンスを作成し、ステップＳ２０で受信したｈｔｔｐリクエストに対する応答としてｈｔｔｐレスポンスをユーザ端末１０に送信する。
【００６５】
［サーバのハードウェア構成］
図４は、実稼働Ｗｅｂサーバ２０、テスト用Ｗｅｂサーバ３０、実稼働プロバイダ・サーバ２１、２２、およびテスト用プロバイダ・サーバ３１、３２のハードウェア構成を示す図である。本発明が実施される装置は標準的なものでよく、以下に構成の一例を示す。なお、実稼働Ｗｅｂサーバ２０、テスト用Ｗｅｂサーバ３０、実稼働プロバイダ・サーバ２１、２２、およびテスト用プロバイダ・サーバ３１、３２を、コンピュータを典型とする情報処理装置１０００として全般的な構成を説明する。
【００６６】
情報処理装置１０００は、制御部１３００を構成するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３１０（マルチプロセッサ構成ではＣＰＵ１３２０等複数のＣＰＵが追加されてもよい）、バスライン１２００、通信Ｉ／Ｆ（Ｉ／Ｆ：インターフェイス）１３３０、メインメモリ１３４０、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）１３５０、表示装置１３６０、Ｉ／Ｏコントローラ１３７０、キーボードおよびマウス等の入力装置１３８０、ハードディスク１３９０、光ディスクドライブ１４００、並びに半導体メモリ１４２０を備える。なお、ハードディスク１３９０、光ディスクドライブ１４００、並びに半導体メモリ１４２０はまとめて記憶装置１４３０と呼ぶ。
【００６７】
制御部１３００は、情報処理装置１０００を統括的に制御する部分であり、ハードディスク１３９０（後述）に記憶された各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。
【００６８】
通信Ｉ／Ｆ１３３０は、情報処理装置１０００が、通信ネットワークを介してユーザ端末１０等と情報を送受信する場合のネットワーク・アダプタである。通信Ｉ／Ｆ１３３０は、モデム、ケーブル・モデムおよびイーサネット（登録商標）・アダプタを含んでよい。
【００６９】
メインメモリ１３４０は、ＣＰＵ１３１０により各種プログラムを実行する際に生成されるデータを一時的に記憶する。
【００７０】
ＢＩＯＳ１３５０は、情報処理装置１０００の起動時にＣＰＵ１３１０が実行するブートプログラムや、情報処理装置１０００のハードウェアに依存するプログラム等を記録する。
【００７１】
表示装置１３６０は、ブラウン管表示装置（ＣＲＴ）、液晶表示装置（ＬＣＤ）等のディスプレイ装置を含む。
【００７２】
Ｉ／Ｏコントローラ１３７０には、ハードディスク１３９０、光ディスクドライブ１４００、および半導体メモリ１４２０等の記憶装置１４３０を接続することができる。
【００７３】
入力装置１３８０は、情報処理装置１０００のユーザによる入力の受け付けを行うものである。
【００７４】
ハードディスク１３９０は、本ハードウェアを情報処理装置１０００として機能させるための各種プログラム、本発明の機能を実行するプログラムおよび前述したテーブルおよびレコードを記憶する。なお、情報処理装置１０００は、外部に別途設けたハードディスク（図示せず）を外部記憶装置として利用することもできる。
【００７５】
光ディスクドライブ１４００としては、例えば、ＤＶＤ−ＲＯＭドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤ−ＲＡＭドライブ、ブルーレイディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ：登録商標）ドライブを使用することができる。この場合は各ドライブに対応した光ディスク１４１０を使用する。光ディスク１４１０から光ディスクドライブ１４００によりプログラムまたはデータを読み取り、Ｉ／Ｏコントローラ１３７０を介してメインメモリ１３４０またはハードディスク１３９０に提供することもできる。
【００７６】
なお、本発明でいうコンピュータとは、記憶装置、制御部等を備えた情報処理装置をいい、情報処理装置１０００は、記憶装置１４３０、制御部１３００等を備えた情報処理装置により構成され、この情報処理装置は、本発明のコンピュータの概念に含まれる。
【００７７】
実稼働Ｗｅｂサーバ２０等の各手段は、制御部１３００によってプログラムが実行されることで実現される。但し、設定ファイル２１０を記憶する記憶領域は、主としてハードディスク１３９０に実装されるが、既に述べたように、他の記憶装置を用いてもよい。
【００７８】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００７９】
２０    実稼働Ｗｅｂサーバ
２０１  設定ファイル読込手段
２０２  ｈｔｔｐリクエスト受信手段
２０３  クエリ情報抽出手段
２０４  クエリ情報送信手段
２０５  結果受信手段
２０６  ｈｔｔｐリクエスト応答手段
２０７  ｈｔｔｐリクエスト送信手段
２１０  設定ファイル
【図１】
2010205232.tif 000007
【図２】
2010205232.tif 000008
【図３】
2010205232.tif 000009
【図４】
2010205232.tif 000010