(57)【要約】【課題】簡易な構成で適切な負荷テストを行なうことが可能なクライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムを提供する。【解決手段】クライアント−サーバシステム３０１において、端末装置１１は、複数の処理要求を生成するための処理要求生成部２１と、処理要求、および端末装置１１の識別情報とは別に処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成してサーバ１２へ送信するための通信データ送信部２１とを含む。サーバ１２は、端末装置１１から受信した各通信データに含まれる識別情報ごとに異なる端末装置１１からの通信データであるとして通信データを処理し、処理要求に伴って生成される通信データを、端末装置１１から受信した各通信データに含まれる識別情報に基づいて端末装置１１へ送信するための通信制御部２３を含む。【選択図】図１
2012174119.tif 000002
【特許請求の範囲】
【請求項１】
端末装置と、
サーバとを備えるクライアント−サーバシステムであって、
前記端末装置は、
複数の処理要求を生成するための処理要求生成部と、
前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するための通信データ送信部とを含み、
前記サーバは、
前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理し、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するための通信制御部を含む、クライアント−サーバシステム。
【請求項２】
前記端末装置は、さらに、
前記通信データ送信部が前記通信データに含めるための複数の前記識別情報を記憶するための端末側記憶部を含み、
前記サーバは、さらに、
前記サーバの識別情報とは別に設定され、かつ前記端末側記憶部における各前記識別情報に対応して設定された複数の識別情報を記憶するためのサーバ側記憶部を含み、
前記通信制御部は、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、請求項１に記載のクライアント−サーバシステム。
【請求項３】
前記クライアント−サーバシステムは、さらに、
前記端末装置とは異なる他の端末装置を備え、
前記他の端末装置は、
処理要求を生成するための処理要求生成部と、
前記端末側記憶部によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するための通信データ送信部とを含み、
前記通信制御部は、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、請求項２に記載のクライアント−サーバシステム。
【請求項４】
前記通信制御部は、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立する、請求項１から３のいずれかに記載のクライアント−サーバシステム。
【請求項５】
前記端末装置は、さらに、
前記処理要求部が生成する前記処理要求の数、１種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するための設定部を備える、請求項１から４のいずれかに記載のクライアント−サーバシステム。
【請求項６】
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テスト方法であって、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを含む、負荷テスト方法。
【請求項７】
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テストプログラムであって、コンピュータに、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを実行させるための、負荷テストプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムに関し、特に、サーバのオンライン処理の評価を行なうクライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムに関する。
【背景技術】
【０００２】
クライアント−サーバシステムにおけるオンライン処理の負荷評価および性能評価を行なうための技術として、たとえば、特開２００１−０２８５８６号公報（特許文献１）には、以下のような技術が開示されている。すなわち、各々が１つの物理アドレスおよび通信先アドレスを持つ１または複数の仮想端末を任意の１台のネットワーク装置内で構成する。そして、該仮想端末を用いたデータ転送および通信により、ネットワークシステム内の１または複数の被試験ネットワーク装置の試験を行なう。
【０００３】
また、特開２００３−０４６５６９号公報（特許文献２）には、以下のような技術が開示されている。すなわち、ネットワーク上のサーバに対するクライアントによるアクセスの負荷をテストする負荷テスト実行装置であって、上記サーバにアクセスする複数のクライアント処理を同時に動作させるクライアント処理管理手段と、上記複数のクライアント処理のそれぞれに異なる仮想ネットワークアドレスを設定する仮想ネットワークアドレス設定手段と、上記クライアント処理のそれぞれにより上記サーバにアクセスする時に、生成されたネットワークパケット内の情報をチェックして、当該パケット内の送信元ネットワークアドレス情報を、当該装置の持つ実際のネットワークアドレスから、上記仮想ネットワークアドレス設定手段によって当該クライアント処理に設定された仮想ネットワークアドレスに書き換える送信パケット書き換え手段と、上記サーバから受信したネットワークパケット内の宛先ネットワークアドレス情報をチェックして、当該装置内で管理されている仮想ネットワークアドレスであれば、当該パケット内の宛先ネットワークアドレス情報を、当該装置の実際のネットワークアドレスに書き換えて、当該パケットを当該仮想ネットワークアドレスが設定されたクライアント処理に渡す受信パケット書き換え手段とを備える。
【０００４】
また、特開２０１０−１２８８６６号公報（特許文献３）には、以下のような技術が開示されている。すなわち、仮想マシンで実行される評価対象アプリケーションとともに他の仮想マシンで実行される関係にあるアプリケーションを事前に物理サーバが実行した際に物理サーバのハードウェア資源にかかった負荷が示される負荷データと、物理サーバと仮想環境サーバとのハードウェア構成が示される構成データとをデータ記憶部に格納しておく。仮想マシンオーバヘッド算出部が、負荷データおよび構成データから仮想マシンオーバヘッドを算出する。負荷再生部が、評価対象アプリケーションの負荷評価の際に、仮想マシンオーバヘッドを反映させながら、負荷データに示される負荷を再生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０２８５８６号公報
【特許文献２】特開２００３−０４６５６９号公報
【特許文献３】特開２０１０−１２８８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
オンライン系サーバの性能検証として、同一内容の大量電文を用いた負荷テストを行なうことが考えられる。しかしながら、このような方法では、サーバはこれらの電文を複数の端末からの電文とはみなさない。このため、単一スレッドすなわち単一の通信コネクションを用いた処理の負荷テストにしかならないことから、マルチスレッド環境における性能検証を行なうことはできない。
【０００７】
そして、このような方法で、より現実的なマルチスレッド環境における性能検証を行なうためには、電文を送信するための複数の端末が必要となり、テスト環境が複雑になってしまう。
【０００８】
この発明は、上述の課題を解決するためになされたもので、その目的は、簡易な構成で適切な負荷テストを行なうことが可能なクライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムを提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、この発明のある局面に係わるクライアント−サーバシステムは、端末装置と、サーバとを備えるクライアント−サーバシステムであって、上記端末装置は、複数の処理要求を生成するための処理要求生成部と、上記処理要求、および上記端末装置の識別情報とは別に上記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して上記サーバへ送信するための通信データ送信部とを含み、上記サーバは、上記端末装置から受信した各上記通信データに含まれる上記識別情報ごとに異なる端末装置からの上記通信データであるとして上記通信データを処理し、上記処理要求に伴って生成される通信データを、上記端末装置から受信した各上記通信データに含まれる上記識別情報に基づいて上記端末装置へ送信するための通信制御部を含む。
【００１０】
上記課題を解決するために、この発明のある局面に係わる負荷テスト方法は、端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テスト方法であって、上記端末装置が、複数の処理要求を生成するステップと、上記端末装置が、上記処理要求、および上記端末装置の識別情報とは別に上記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して上記サーバへ送信するステップと、上記サーバが、上記端末装置から受信した各上記通信データに含まれる上記識別情報ごとに異なる端末装置からの上記通信データであるとして上記通信データを処理するステップと、上記サーバが、上記処理要求に伴って生成される通信データを、上記端末装置から受信した各上記通信データに含まれる上記識別情報に基づいて上記端末装置へ送信するステップとを含む。
【００１１】
上記課題を解決するために、この発明のある局面に係わる負荷テストプログラムは、端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テストプログラムであって、コンピュータに、上記端末装置が、複数の処理要求を生成するステップと、上記端末装置が、上記処理要求、および上記端末装置の識別情報とは別に上記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して上記サーバへ送信するステップと、上記サーバが、上記端末装置から受信した各上記通信データに含まれる上記識別情報ごとに異なる端末装置からの上記通信データであるとして上記通信データを処理するステップと、上記サーバが、上記処理要求に伴って生成される通信データを、上記端末装置から受信した各上記通信データに含まれる上記識別情報に基づいて上記端末装置へ送信するステップとを実行させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、簡易な構成で適切な負荷テストを行なうことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係るクライアント−サーバシステムの構成を示す図である。
【図２】本発明の実施の形態に係る端末装置の概略構成図である。
【図３】本発明の実施の形態に係る端末装置における負荷テスト部の機能ブロック図である。
【図４】本発明の実施の形態に係るクライアント−サーバシステムが負荷テストを行なう際の動作手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【００１５】
［構成および基本動作］
図１は、本発明の実施の形態に係るクライアント−サーバシステムの構成を示す図である。
【００１６】
図１を参照して、クライアント−サーバシステム３０１は、情報処理装置の一例である端末装置（クライアント）１１と、情報処理装置の一例であるサーバ１２と、データベース（ＤＢ）２５とを備える。データベース２５は、サーバ１２に含まれてもよいし、サーバ１２の外部に設けられてもよい。
【００１７】
端末装置１１は、サーバ１２へ複数の電文を送信することにより、サーバ１２の負荷テストを行なう。
【００１８】
サーバ１２は、端末装置１１から受信した複数の電文を処理し、処理結果を端末装置１１へ送信する。
【００１９】
本発明の実施の形態に係る情報処理装置である端末装置１１およびサーバ１２は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク（Flexible Disk）およびＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
【００２０】
本発明の実施の形態に係るプログラムは、ＯＳ等の他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【００２１】
なお、代替的に、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【００２２】
図２は、本発明の実施の形態に係る端末装置の概略構成図である。サーバ１２の構成は、たとえば端末装置１１と同様である。
【００２３】
図２を参照して、端末装置１１は、演算処理部であるＣＰＵ（Central Processing Unit）１０１と、メインメモリ１０２と、ハードディスク１０３と、入力インタフェース１０４と、表示コントローラ１０５と、データリーダ／ライタ１０６と、通信インタフェース１０７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００２４】
ＣＰＵ１０１は、ハードディスク１０３に格納されたプログラム（コード）をメインメモリ１０２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１０２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置であり、ハードディスク１０３から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク１０３は不揮発性の磁気記憶装置であり、ＣＰＵ１０１で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク１０３にインストールされるプログラムは、後述するように、記録媒体１１１に格納された状態で流通する。なお、ハードディスク１０３に加えて、あるいはハードディスク１０３に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【００２５】
入力インタフェース１０４は、ＣＰＵ１０１とキーボード１０８、マウス１０９および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インタフェース１０４は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受付ける。
【００２６】
表示コントローラ１０５は、表示部の典型例であるディスプレイ１１０と接続され、ディスプレイ１１０での表示を制御する。すなわち、表示コントローラ１０５は、ＣＰＵ１０１による画像処理の結果などをユーザに対して表示する。ディスプレイ１１０は、たとえばＬＣＤ（Liquid Crystal Display）またはＣＲＴ（Cathode Ray Tube）である。
【００２７】
データリーダ／ライタ１０６は、ＣＰＵ１０１と記録媒体１１１の間のデータ伝送を仲介する。すなわち、記録媒体１１１は、端末装置１１で実行されるプログラムなどが格納された状態で流通し、データリーダ／ライタ１０６は、この記録媒体１１１からプログラムを読み出す。また、データリーダ／ライタ１０６は、ＣＰＵ１０１の内部指令に応答して、端末装置１１における処理結果などを記録媒体１１１へ書き込む。なお、記録媒体１１１は、たとえば、ＣＦ（Compact Flash）およびＳＤ（Secure Digital）などの汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）などの磁気記憶媒体、またはＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体である。
【００２８】
通信インタフェース１０７は、ＣＰＵ１０１と他のパーソナルコンピュータおよびサーバ装置などの間のデータ伝送を仲介する。通信インタフェース１０７は、典型的には、イーサネット（登録商標）またはＵＳＢ（Universal Serial Bus）の通信機能を有する。なお、記録媒体１１１に格納されたプログラムを端末装置１１にインストールする形態に代えて、通信インタフェース１０７を介して配信サーバなどからダウンロードしたプログラムを端末装置１１にインストールしてもよい。
【００２９】
また、端末装置１１には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。
【００３０】
［制御構造］
次に、端末装置１１およびサーバ１２における負荷テスト機能を提供するための制御構造について説明する。
【００３１】
図１は、本発明の実施の形態に係る端末装置およびサーバが提供する制御構造も示している。図１に示す端末装置１１およびサーバ１２における各ブロックは、ハードディスク１０３に格納されたプログラム（コード）などをメインメモリ１０２に展開して、ＣＰＵ１０１に実行させることで提供される。なお、図１に示す端末装置１１およびサーバ１２の制御構造の一部もしくは全部を専用ハードウェアおよび／または配線回路によって実現してもよい。
【００３２】
図１を参照して、端末装置１１は、その制御構造として、負荷テスト部２１を備える。サーバ１２は、その制御構造として、通信制御部２３を備える。また、端末装置１１は、ＩＰアドレス一覧記憶部（端末側記憶部）２２を備える。サーバ１２は、ＩＰアドレス一覧記憶部（サーバ側記憶部）２６を備える。また、サーバ１２は、１または複数のアプリケーション２４を実行する。アプリケーション２４は、データベース２５の更新処理等を行なう。
【００３３】
負荷テスト部２１は、負荷テストに使用する電文の設定、およびスレッドすなわち通信コネクションの設定を行なう。この電文の設定項目としては、たとえば、実績系／要求系等の電文区分、電文内容の指定および送信回数といった項目がある。
【００３４】
ＩＰアドレス一覧記憶部２２および２６は、負荷テストに使用する電文のヘッダ、すなわちＩＰパケット自体のヘッダではなく、ＩＰパケットのデータ部分に含まれる電文ヘッダに設定するＩＰアドレスの一覧を記憶する。
【００３５】
通信制御部２３は、端末装置１１およびサーバ１２間のスレッドの確立、スレッドの廃棄および電文の振分け等を行なう。
【００３６】
図３は、本発明の実施の形態に係る端末装置における負荷テスト部の機能ブロック図である。
【００３７】
図３を参照して、負荷テスト部２１は、端末数入力部（設定部）３１と、電文設定部（処理要求生成部および設定部）３２と、接続確立部３３と、電文送信部（通信データ送信部）３４とを含む。
【００３８】
端末数入力部３１は、たとえばユーザからの指示に従い、負荷テストにおいてサーバ１２に対して負荷をかける仮想的な端末の数を指定する。
【００３９】
電文設定部３２は、たとえばユーザからの指示に従い、負荷テストで使用する電文の指定を行なう。
【００４０】
接続確立部３３は、サーバ１２との接続すなわち通信コネクションを確立する。
【００４１】
電文送信部３４は、電文設定部３２によって指定された電文をサーバ１２へ送信する。この電文は、端末数入力部３１によって指定された端末数分送信される。
【００４２】
すなわち、クライアント−サーバシステム３０１では、端末装置１１において、電文設定部３２は、複数の処理要求を示す電文を生成する。
【００４３】
電文送信部３４は、処理要求を示す電文、および端末装置１１のＩＰアドレス（識別情報）とは別に処理要求ごとに設定されたＩＰアドレスを含むＩＰパケット（通信データ）をそれぞれ生成してサーバ１２へ送信する。
【００４４】
また、端末数入力部３１および電文設定部３２は、電文設定部３２が生成する処理要求の数、１種類の処理要求を含むＩＰパケットの送信回数、および処理要求の種類の少なくとも一方を設定する。
【００４５】
サーバ１２において、通信制御部２３は、端末装置１１との間でＩＰパケットを送受信するためのスレッド（通信コネクション）を処理要求ごとに確立する。
【００４６】
また、通信制御部２３は、端末装置１１から受信した各ＩＰパケットに含まれるＩＰアドレスごとに異なる端末装置１１からのＩＰパケットであるとして当該ＩＰパケットを処理する。そして、通信制御部２３は、当該処理要求に伴って生成されるＩＰパケットを、端末装置１１から受信した各ＩＰパケットに含まれるＩＰアドレスに基づいて端末装置１１へ送信する。
【００４７】
たとえば、端末装置１１において、ＩＰアドレス一覧記憶部２２は、端末装置１１のＩＰアドレスとは別に設定され、かつ電文送信部３４がＩＰパケットの電文ヘッダに含めるための複数のＩＰアドレスを記憶する。
【００４８】
サーバ１２において、ＩＰアドレス一覧記憶部２６は、サーバ１２のＩＰアドレスとは別に設定され、かつＩＰアドレス一覧記憶部２２における各ＩＰアドレスに対応して設定された複数のＩＰアドレスを記憶する。
【００４９】
そして、通信制御部２３は、端末装置１１からのＩＰパケットに含まれるＩＰアドレスに対応するＩＰアドレスをＩＰアドレス一覧記憶部２６から取得し、取得したＩＰアドレスを、処理要求に伴って生成されるＩＰパケットに含めて端末装置１１へ送信する。
【００５０】
［動作］
次に、本発明の実施の形態に係るクライアント−サーバシステムの動作について図面を用いて説明する。本発明の実施の形態では、端末装置１１およびサーバ１２を動作させることによって、本発明の実施の形態に係る負荷テスト方法が実施される。よって、本発明の実施の形態に係る負荷テスト方法の説明は、以下の端末装置１１およびサーバ１２の動作説明に代える。なお、以下の説明においては、適宜図１を参照する。
【００５１】
図４は、本発明の実施の形態に係るクライアント−サーバシステムが負荷テストを行なう際の動作手順を示すフローチャートである。
【００５２】
図４を参照して、端末装置１１は、負荷テスト部２１において指定されたスレッドごと、すなわち仮想的な端末ごとに、通信制御部２３との間のスレッドを作成する要求であるスレッド確立要求をサーバ１２へ送信する（ステップＳ１）。
【００５３】
ここで、サーバ１２において、通信制御部２３は、通常、端末（クライアント）からスレッド確立要求（接続要求）を示すＩＰパケットを受信すると、ＩＰパケットのヘッダに含まれる送信元ＩＰアドレスを参照する。そして、通信制御部２３は、送信元ＩＰアドレスが、サーバ１２の内部に保持されているＩＰアドレス一覧に存在するか否かのチェックを行なう。通信制御部２３は、送信元ＩＰアドレスがＩＰアドレス一覧に存在する場合には、端末装置１１から受信したＩＰパケットに含まれる電文の内容をチェックし、端末との間に上り通信および下り通信のためのスレッドを確立する。
【００５４】
すなわち、クライアント−サーバシステムにおけるサーバでは、通常、ＩＰパケットのヘッダで端末を判別することから、１つの端末からの接続要求はすべて同一の端末からの接続要求として扱ってしまう。
【００５５】
これに対して、本発明の実施の形態に係るサーバでは、通信制御部２３は、負荷テスト時、端末装置１１からのＩＰパケットのヘッダに含まれるＩＰアドレスをチェックしない。すなわち、通信制御部２３は、接続順、すなわちスレッド確立要求を受信した順にＩＰアドレス一覧記憶部２６におけるＩＰアドレス一覧からＩＰアドレスを割り振り、スレッドを確立する。これにより、１つの端末装置１１を用いるだけで複数のスレッドを作成することができる（ステップＳ２）。
【００５６】
次に、端末装置１１は、負荷テスト部２１において処理要求として電文を生成し（ステップＳ３）、確立されたスレッドを使用して、生成された電文のサーバ１２に対する送信処理を、指定された回数分行なう（ステップＳ４）。
【００５７】
次に、サーバ１２において、通信制御部２３は、受信した電文を各アプリケーション２４に渡す。各アプリケーション２４は、この電文に基づいて、データベース２５に対する更新等の処理を行なう（ステップＳ５）。
【００５８】
次に、各アプリケーション２４の処理実行後、通信制御部２３は、アプリケーション２４からの回答電文をクライアントである端末装置１１へ送信する。この回答電文における電文ヘッダに、ＩＰアドレス一覧記憶部２６から割り振ったテスト用のＩＰアドレスが格納される（ステップＳ６）。
【００５９】
負荷テスト部２１は、サーバ１２から送信された回答電文を受信し、各スレッドにおいて処理が正常に行なわれたか否かを画面に表示する（ステップＳ７）。
【００６０】
次に、負荷テスト部２１における各プロセスの役割および設定項目について詳細に説明する。
【００６１】
再び図３を参照して、端末数入力部３１により、ＩＰアドレス一覧記憶部２２において設定されているアドレス数を上限に、サーバ１２との間でスレッドの確立を行なう仮想的な端末数を設定することができる。
【００６２】
電文設定部３２により、サーバ１２へ送信する電文のデータファイルパスの指定、接続要求先であるサーバのＩＰアドレスの指定、電文の種類（実績系／要求系）、ならびに電文の送信回数および送信間隔を指定することができる。
【００６３】
接続確立部３３は、端末数入力部３１で指定された端末数分、通信制御部２３に対してスレッドの確立要求を行なう。接続確立部３３は、指定された端末数分、ＩＰアドレス一覧記憶部２２からＩＰアドレスを取得し、取得したＩＰアドレスを電文ヘッダに含めた電文を用いて、通信制御部２３に対してスレッドの確立要求を行なう。ここで、電文をデータ部分に含むＩＰパケットのヘッダには、ＩＰパケット通信で実際に使用する端末装置１１のＩＰアドレスが設定されている。
【００６４】
また、ＩＰアドレス一覧記憶部２２では、１６進数を用いて必要端末数分の定義が行なわれる。この場合、１行につき１アドレスを定義する。定義するＩＰアドレスの順番は、通信制御部２３のＩＰアドレスの管理順すなわちＩＰアドレス一覧記憶部２６におけるＩＰアドレス一覧の順番と同じである。
【００６５】
通信制御部２３は、負荷テスト時、端末装置１１からスレッドの確立要求を受信すると、確立要求ごとにスレッドを確立する。このため、負荷テスト部２１と通信制御部２３との間でＩＰアドレスごとにスレッドが確立されることとなる。
【００６６】
電文送信部３４は、負荷テスト部２１における端末数入力部３１および電文設定部３２によって指定された内容に基づき、電文を通信制御部２３へ送信する。電文送信部３４は、電文を送信する際、電文設定部３２によって指定された電文のヘッダに含まれるＩＰアドレスを、接続確立部３３が用いた各スレッド用のＩＰアドレスに変換し、各スレッドを用いて電文の送信処理を行なう。
【００６７】
また、電文送信部３４は、電文設定部３２によって指定された回数、および指定された間隔で電文を送信するように、各スレッドに対して送信処理を行なう。
【００６８】
なお、本発明の実施の形態に係るクライアント−サーバシステムでは、１つの端末装置を用いてサーバ１２の負荷テストを行なう構成であるとしたが、これに限定するものではない。
【００６９】
ｎ個の端末分の電文をサーバ１２に送信する負荷テスト部２１に加えて、通常の端末をたとえば１台使用して、（ｎ＋１）台分の負荷テストを行なう構成であってもよい。
【００７０】
すなわち、この通常端末は、図３に示す各ユニットのうち、少なくとも電文設定部３２および電文送信部３４を備える。
【００７１】
より詳細には、通常端末において、電文設定部３２は、処理要求を示す電文を生成する。
【００７２】
また、電文送信部３４は、ＩＰアドレス一覧記憶部２２によって記憶されている各ＩＰアドレスのうち、端末装置１１において未使用のＩＰアドレスを取得し、取得したＩＰアドレス、および処理要求を含むＩＰパケットを生成してサーバ１２へ送信する。
【００７３】
サーバ１２において、通信制御部２３は、端末装置１１および他の端末装置１１からのＩＰパケットに含まれるＩＰアドレスに対応するＩＰアドレスをＩＰアドレス一覧記憶部２６から取得し、取得したＩＰアドレスを、処理要求に伴って生成されるＩＰパケットに含めて端末装置１１および他の端末装置１１へ送信する。
【００７４】
１つの端末装置１１のみを用いた負荷テストの場合には、負荷テスト部２１は、指定された電文しか送信できないのに対し、通常の端末は、実際の業務実行に伴う電文をサーバ１２へ送信することができる。このため、サーバ１２の高負荷状態における業務処理を、端末の処理および画面遷移確認も含めて評価することができる。
【００７５】
ところで、同一内容の大量電文を用いた負荷テストでは、サーバはこれらの電文を複数の端末からの電文とはみなさない。このため、単一スレッドすなわち単一の通信コネクションを用いた処理の負荷テストにしかならないことから、マルチスレッド環境における性能検証を行なうことはできない。そして、このような負荷テストで、より現実的なマルチスレッド環境における性能検証を行なうためには、電文を送信するための複数の端末が必要となり、テスト環境が複雑になってしまう。
【００７６】
これに対して、本発明の実施の形態に係るクライアント−サーバシステムでは、電文設定部３２は、複数の処理要求を生成する。電文送信部３４は、処理要求、および端末装置１１の識別情報とは別に処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成してサーバ１２へ送信する。そして、通信制御部２３は、端末装置１１から受信した各通信データに含まれる識別情報ごとに異なる端末装置１１からの通信データであるとして当該通信データを処理し、処理要求に伴って生成される通信データを、端末装置１１から受信した各通信データに含まれる識別情報に基づいて端末装置１１へ送信する。
【００７７】
このように、本発明の実施の形態に係るクライアント−サーバシステムでは、サーバのオンライン処理の負荷評価および性能評価において、１台の端末装置を用いて、スレッドの大量作成、電文のヘッダの置き換え、および大量電文の送信を行なう。
【００７８】
具体的には、通信制御部２３は、端末装置１１との間で通信データを送受信するための通信コネクションを処理要求ごとに確立する。
【００７９】
すなわち、通常のサーバにおいて、ＩＰパケットのヘッダを用いた相互接続確認によってスレッドの作成および使用の有無を判断していた部分を変更し、端末からの接続要求ごとにスレッドの領域を確保する仕組みを採用する。これにより、１つの端末からの優先的な多端末分の電文による通信すなわちマルチスレッドの通信が可能となる。
【００８０】
なお、このような機能変更は、たとえばサーバ１２における通信制御部２３を実現するためのプログラムを、通常用からテスト用に変更することで実現することができる。このようなプログラム変更を行っても、各アプリケーション２４は変更されていないため、負荷テストを適切に行なうことが可能である。
【００８１】
これにより、サーバ１２において各電文が別の端末から送信されたものとして処理することができるため、クライアント−サーバシステムにおいて、従来、シングルスレッド環境での負荷テストしか行なえなかったところを、多端末によるマルチスレッド環境での負荷テストを行なうことが可能となる。
【００８２】
すなわち、サーバの処理において接続要求が同時多発的に発生する多端末の環境において、より現実に近い高負荷テストを１台の端末を使用するだけで実行し、サーバ性能の検証を行なうことができる。
【００８３】
ここで、特許文献１〜３に記載の技術と本発明の実施の形態に係るクライアント−サーバシステムとの具体的な相違としては、たとえば、以下のような点がある。
【００８４】
すなわち、特許文献１に記載の技術では、ＩＰパケットのヘッダにおけるＩＰアドレスを変換している。
【００８５】
これに対して、本発明の実施の形態に係るクライアント−サーバシステムでは、端末装置１１からのスレッド確立要求を受信すると、サーバ１２において定義しているＩＰアドレス一覧の順番で電文ヘッダ用のＩＰアドレスを割り当て、スレッドを作成する。これにより、仮想的に複数の端末との通信コネクションを実現することができる。ＩＰパケットのヘッダには、実際に使用している端末のＩＰアドレスが設定されており、通常動作と同様の通信が可能である。
【００８６】
また、特許文献２に記載の技術では、テスト実行端末およびテストマネージャ端末を用いる構成である。
【００８７】
これに対して、本発明の実施の形態に係るクライアント−サーバシステムでは、テスト実施端末および対象サーバのみで負荷テストを実施することが可能である。また、ＩＰアドレスの処理構成についても、上記特許文献１と同様の相違がある。
【００８８】
また、特許文献３に記載の技術に対して、本発明の実施の形態に係るクライアント−サーバシステムは、負荷データが端末からサーバへ送信される点で異なり、また、スレッドを複数作成し、仮想端末−サーバ間の通信データの送受信を可能にしている点で異なる。
【００８９】
また、本発明の実施の形態に係るクライアント−サーバシステムは、「ネットワークに対する負荷性能を評価する」という目的というよりも、どちらかと言えば、「サーバの業務アプリケーションに対する負荷性能を評価する」という目的を実現するためのものである。すなわち、仮想的に複数の端末から同時に電文を送信することにより、スレッドを複数作成し、それぞれの要求に対してデータベースにアクセス等を行ない、処理した結果を仮想端末へ回答する、という高負荷状態におけるサーバの一連の流れを検証することを目的とするものである。
【００９０】
以上のように、特許文献１〜３に記載の技術と本発明の実施の形態に係るクライアント−サーバシステムとは、種々の点で相違がある。
【００９１】
すなわち、本発明の実施の形態に係るクライアント−サーバシステムにおける各構成要素のうち、電文設定部３２、電文送信部３４および通信制御部２３からなる最小構成により、簡易な構成で適切な負荷テストを行なう、という本発明の目的を達成することが可能となる。
【００９２】
また、本発明の実施の形態に係るクライアント−サーバシステムでは、ＩＰアドレス一覧記憶部２２は、端末装置１１の識別情報とは別に設定され、かつ電文送信部３４が通信データに含めるための複数の識別情報を記憶する。ＩＰアドレス一覧記憶部２６は、サーバ１２の識別情報とは別に設定され、かつＩＰアドレス一覧記憶部２２における各識別情報に対応して設定された複数の識別情報を記憶する。そして、通信制御部２３は、端末装置１１からの通信データに含まれる識別情報に対応する識別情報をＩＰアドレス一覧記憶部２６から取得し、取得した識別情報を、処理要求に伴って生成される通信データに含めて端末装置１１へ送信する。
【００９３】
このような構成により、サーバ１２から送信される回答電文を、端末装置１１においてスレッドごとに判別することができるため、サーバ１２の性能評価を適切に行なうことができる。
【００９４】
また、本発明の実施の形態に係るクライアント−サーバシステムでは、端末装置１１と異なる端末装置において、電文設定部は、処理要求を生成する。電文送信部は、ＩＰアドレス一覧記憶部２２によって記憶されている各識別情報のうち、端末装置１１において未使用の識別情報を取得し、取得した識別情報、および処理要求を含む通信データを生成してサーバ１２へ送信する。そして、サーバ１２において、通信制御部２３は、端末装置１１および他の端末装置１１からの通信データに含まれる識別情報に対応する識別情報をＩＰアドレス一覧記憶部２６から取得し、取得した識別情報を、処理要求に伴って生成される通信データに含めて端末装置１１および他の端末装置へ送信する。
【００９５】
このような構成により、実際の業務実行に伴う電文をサーバ１２へ送信することができるため、サーバ１２の高負荷状態における業務処理を、端末の処理および画面遷移確認も含めて評価することができる。
【００９６】
また、本発明の実施の形態に係るクライアント−サーバシステムでは、端末数入力部３１および電文設定部３２は、処理要求部が生成する処理要求の数、１種類の処理要求を含む通信データの送信回数、および処理要求の種類の少なくとも一方を設定する。
【００９７】
このように、負荷テスト部２１において、スレッド数、電文に設定するＩＰアドレス、同一電文の送信回数、および電文の種類等を設定可能とする構成により、より現実的な負荷テストを行なうことができる。
【００９８】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００９９】
［付記１］
端末装置と、
サーバとを備えるクライアント−サーバシステムであって、
前記端末装置は、
複数の処理要求を生成するための処理要求生成部と、
前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するための通信データ送信部とを含み、
前記サーバは、
前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理し、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するための通信制御部を含む、クライアント−サーバシステム。
【０１００】
［付記２］
前記端末装置は、さらに、
前記通信データ送信部が前記通信データに含めるための複数の前記識別情報を記憶するための端末側記憶部を含み、
前記サーバは、さらに、
前記サーバの識別情報とは別に設定され、かつ前記端末側記憶部における各前記識別情報に対応して設定された複数の識別情報を記憶するためのサーバ側記憶部を含み、
前記通信制御部は、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、付記１に記載のクライアント−サーバシステム。
【０１０１】
［付記３］
前記クライアント−サーバシステムは、さらに、
前記端末装置とは異なる他の端末装置を備え、
前記他の端末装置は、
処理要求を生成するための処理要求生成部と、
前記端末側記憶部によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するための通信データ送信部とを含み、
前記通信制御部は、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、付記２に記載のクライアント−サーバシステム。
【０１０２】
［付記４］
前記通信制御部は、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立する、付記１から３のいずれかに記載のクライアント−サーバシステム。
【０１０３】
［付記５］
前記端末装置は、さらに、
前記処理要求部が生成する前記処理要求の数、１種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するための設定部を備える、付記１から４のいずれかに記載のクライアント−サーバシステム。
【０１０４】
［付記６］
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テスト方法であって、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを含む、負荷テスト方法。
【０１０５】
［付記７］
前記負荷テスト方法は、さらに、
前記端末装置が、前記通信データに含めるための複数の前記識別情報を記憶するステップと、
前記サーバが、前記サーバの識別情報とは別に設定され、かつ前記端末装置が記憶する各前記識別情報に対応して設定された複数の識別情報を記憶するステップとを含み、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、付記６に記載の負荷テスト方法。
【０１０６】
［付記８］
前記負荷テスト方法は、さらに、
前記端末装置とは異なる他の端末装置が、処理要求を生成するステップと、
前記他の端末装置が、前記端末装置によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するステップとを含み、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、付記７に記載の負荷テスト方法。
【０１０７】
［付記９］
前記負荷テスト方法は、さらに、
前記サーバが、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立するステップを含む、付記６から８のいずれかに記載の負荷テスト方法。
【０１０８】
［付記１０］
前記負荷テスト方法は、さらに、
前記端末装置が、生成する前記処理要求の数、１種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するステップを含む、付記６から９のいずれかに記載の負荷テスト方法。
【０１０９】
［付記１１］
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テストプログラムであって、コンピュータに、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを実行させるための、負荷テストプログラム。
【０１１０】
［付記１２］
前記負荷テストプログラムは、さらに、コンピュータに、
前記端末装置が、前記通信データに含めるための複数の前記識別情報を記憶するステップと、
前記サーバが、前記サーバの識別情報とは別に設定され、かつ前記端末装置が記憶する各前記識別情報に対応して設定された複数の識別情報を記憶するステップとを実行させ、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、付記１１に記載の負荷テストプログラム。
【０１１１】
［付記１３］
前記負荷テストプログラムは、さらに、コンピュータに、
前記端末装置とは異なる他の端末装置が、処理要求を生成するステップと、
前記他の端末装置が、前記端末装置によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するステップとを実行させ、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、付記１２に記載の負荷テストプログラム。
【０１１２】
［付記１４］
前記負荷テストプログラムは、さらに、コンピュータに、
前記サーバが、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立するステップを実行させる、付記１１から１３のいずれかに記載の負荷テストプログラム。
【０１１３】
［付記１５］
前記負荷テストプログラムは、さらに、コンピュータに、
前記端末装置が、生成する前記処理要求の数、１種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するステップを実行させる、付記１１から１４のいずれかに記載の負荷テストプログラム。
【産業上の利用可能性】
【０１１４】
本発明によれば、クライアント−サーバシステムにおけるソフトウェア評価および性能検証を行なうことができる。したがって、本発明は、産業上の利用可能性を有している。
【符号の説明】
【０１１５】
１１  端末装置
１２  サーバ
２１  負荷テスト部
２２  ＩＰアドレス一覧記憶部（端末側記憶部）
２３  通信制御部
２４  アプリケーション
２５  データベース
２６  ＩＰアドレス一覧記憶部（サーバ側記憶部）
３１  端末数入力部（設定部）
３２  電文設定部（処理要求生成部および設定部）
３３  接続確立部
３４  電文送信部（通信データ送信部）
１０１  ＣＰＵ
１０２  メインメモリ
１０３  ハードディスク
１０４  入力インタフェース
１０５  表示コントローラ
１０６  データリーダ／ライタ
１０７  通信インタフェース
１０８  キーボード
１０９  マウス
１１０  ディスプレイ
１１１  記録媒体
１２１  バス
３０１  クライアント−サーバシステム
【図１】
2012174119.tif 000003
【図２】
2012174119.tif 000004
【図３】
2012174119.tif 000005
【図４】
2012174119.tif 000006