説明

クライアント−サーバシステム、負荷テスト方法、および負荷テストプログラム

【課題】簡易な構成で適切な負荷テストを行なうことが可能なクライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムを提供する。
【解決手段】クライアント−サーバシステム301において、端末装置11は、複数の処理要求を生成するための処理要求生成部21と、処理要求、および端末装置11の識別情報とは別に処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成してサーバ12へ送信するための通信データ送信部21とを含む。サーバ12は、端末装置11から受信した各通信データに含まれる識別情報ごとに異なる端末装置11からの通信データであるとして通信データを処理し、処理要求に伴って生成される通信データを、端末装置11から受信した各通信データに含まれる識別情報に基づいて端末装置11へ送信するための通信制御部23を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムに関し、特に、サーバのオンライン処理の評価を行なうクライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムに関する。
【背景技術】
【0002】
クライアント−サーバシステムにおけるオンライン処理の負荷評価および性能評価を行なうための技術として、たとえば、特開2001−028586号公報(特許文献1)には、以下のような技術が開示されている。すなわち、各々が1つの物理アドレスおよび通信先アドレスを持つ1または複数の仮想端末を任意の1台のネットワーク装置内で構成する。そして、該仮想端末を用いたデータ転送および通信により、ネットワークシステム内の1または複数の被試験ネットワーク装置の試験を行なう。
【0003】
また、特開2003−046569号公報(特許文献2)には、以下のような技術が開示されている。すなわち、ネットワーク上のサーバに対するクライアントによるアクセスの負荷をテストする負荷テスト実行装置であって、上記サーバにアクセスする複数のクライアント処理を同時に動作させるクライアント処理管理手段と、上記複数のクライアント処理のそれぞれに異なる仮想ネットワークアドレスを設定する仮想ネットワークアドレス設定手段と、上記クライアント処理のそれぞれにより上記サーバにアクセスする時に、生成されたネットワークパケット内の情報をチェックして、当該パケット内の送信元ネットワークアドレス情報を、当該装置の持つ実際のネットワークアドレスから、上記仮想ネットワークアドレス設定手段によって当該クライアント処理に設定された仮想ネットワークアドレスに書き換える送信パケット書き換え手段と、上記サーバから受信したネットワークパケット内の宛先ネットワークアドレス情報をチェックして、当該装置内で管理されている仮想ネットワークアドレスであれば、当該パケット内の宛先ネットワークアドレス情報を、当該装置の実際のネットワークアドレスに書き換えて、当該パケットを当該仮想ネットワークアドレスが設定されたクライアント処理に渡す受信パケット書き換え手段とを備える。
【0004】
また、特開2010−128866号公報(特許文献3)には、以下のような技術が開示されている。すなわち、仮想マシンで実行される評価対象アプリケーションとともに他の仮想マシンで実行される関係にあるアプリケーションを事前に物理サーバが実行した際に物理サーバのハードウェア資源にかかった負荷が示される負荷データと、物理サーバと仮想環境サーバとのハードウェア構成が示される構成データとをデータ記憶部に格納しておく。仮想マシンオーバヘッド算出部が、負荷データおよび構成データから仮想マシンオーバヘッドを算出する。負荷再生部が、評価対象アプリケーションの負荷評価の際に、仮想マシンオーバヘッドを反映させながら、負荷データに示される負荷を再生する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−028586号公報
【特許文献2】特開2003−046569号公報
【特許文献3】特開2010−128866号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
オンライン系サーバの性能検証として、同一内容の大量電文を用いた負荷テストを行なうことが考えられる。しかしながら、このような方法では、サーバはこれらの電文を複数の端末からの電文とはみなさない。このため、単一スレッドすなわち単一の通信コネクションを用いた処理の負荷テストにしかならないことから、マルチスレッド環境における性能検証を行なうことはできない。
【0007】
そして、このような方法で、より現実的なマルチスレッド環境における性能検証を行なうためには、電文を送信するための複数の端末が必要となり、テスト環境が複雑になってしまう。
【0008】
この発明は、上述の課題を解決するためになされたもので、その目的は、簡易な構成で適切な負荷テストを行なうことが可能なクライアント−サーバシステム、負荷テスト方法、および負荷テストプログラムを提供することである。
【課題を解決するための手段】
【0009】
上記課題を解決するために、この発明のある局面に係わるクライアント−サーバシステムは、端末装置と、サーバとを備えるクライアント−サーバシステムであって、上記端末装置は、複数の処理要求を生成するための処理要求生成部と、上記処理要求、および上記端末装置の識別情報とは別に上記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して上記サーバへ送信するための通信データ送信部とを含み、上記サーバは、上記端末装置から受信した各上記通信データに含まれる上記識別情報ごとに異なる端末装置からの上記通信データであるとして上記通信データを処理し、上記処理要求に伴って生成される通信データを、上記端末装置から受信した各上記通信データに含まれる上記識別情報に基づいて上記端末装置へ送信するための通信制御部を含む。
【0010】
上記課題を解決するために、この発明のある局面に係わる負荷テスト方法は、端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テスト方法であって、上記端末装置が、複数の処理要求を生成するステップと、上記端末装置が、上記処理要求、および上記端末装置の識別情報とは別に上記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して上記サーバへ送信するステップと、上記サーバが、上記端末装置から受信した各上記通信データに含まれる上記識別情報ごとに異なる端末装置からの上記通信データであるとして上記通信データを処理するステップと、上記サーバが、上記処理要求に伴って生成される通信データを、上記端末装置から受信した各上記通信データに含まれる上記識別情報に基づいて上記端末装置へ送信するステップとを含む。
【0011】
上記課題を解決するために、この発明のある局面に係わる負荷テストプログラムは、端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テストプログラムであって、コンピュータに、上記端末装置が、複数の処理要求を生成するステップと、上記端末装置が、上記処理要求、および上記端末装置の識別情報とは別に上記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して上記サーバへ送信するステップと、上記サーバが、上記端末装置から受信した各上記通信データに含まれる上記識別情報ごとに異なる端末装置からの上記通信データであるとして上記通信データを処理するステップと、上記サーバが、上記処理要求に伴って生成される通信データを、上記端末装置から受信した各上記通信データに含まれる上記識別情報に基づいて上記端末装置へ送信するステップとを実行させるためのプログラムである。
【発明の効果】
【0012】
本発明によれば、簡易な構成で適切な負荷テストを行なうことができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態に係るクライアント−サーバシステムの構成を示す図である。
【図2】本発明の実施の形態に係る端末装置の概略構成図である。
【図3】本発明の実施の形態に係る端末装置における負荷テスト部の機能ブロック図である。
【図4】本発明の実施の形態に係るクライアント−サーバシステムが負荷テストを行なう際の動作手順を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
【0015】
[構成および基本動作]
図1は、本発明の実施の形態に係るクライアント−サーバシステムの構成を示す図である。
【0016】
図1を参照して、クライアント−サーバシステム301は、情報処理装置の一例である端末装置(クライアント)11と、情報処理装置の一例であるサーバ12と、データベース(DB)25とを備える。データベース25は、サーバ12に含まれてもよいし、サーバ12の外部に設けられてもよい。
【0017】
端末装置11は、サーバ12へ複数の電文を送信することにより、サーバ12の負荷テストを行なう。
【0018】
サーバ12は、端末装置11から受信した複数の電文を処理し、処理結果を端末装置11へ送信する。
【0019】
本発明の実施の形態に係る情報処理装置である端末装置11およびサーバ12は、典型的には、汎用的なアーキテクチャを有するコンピュータを基本構造としており、予めインストールされたプログラムを実行することで、後述するような各種機能を提供する。一般的に、このようなプログラムは、フレキシブルディスク(Flexible Disk)およびCD−ROM(Compact Disk Read Only Memory)などの記録媒体に格納されて、あるいはネットワークなどを介して流通する。
【0020】
本発明の実施の形態に係るプログラムは、OS等の他のプログラムの一部に組み込まれて提供されるものであってもよい。この場合でも、本発明の実施の形態に係るプログラム自体は、上記のような組み込み先の他のプログラムが有するモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本発明の実施の形態に係るプログラムとしては、このような他のプログラムに組み込まれた形態であってもよい。
【0021】
なお、代替的に、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
【0022】
図2は、本発明の実施の形態に係る端末装置の概略構成図である。サーバ12の構成は、たとえば端末装置11と同様である。
【0023】
図2を参照して、端末装置11は、演算処理部であるCPU(Central Processing Unit)101と、メインメモリ102と、ハードディスク103と、入力インタフェース104と、表示コントローラ105と、データリーダ/ライタ106と、通信インタフェース107とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
【0024】
CPU101は、ハードディスク103に格納されたプログラム(コード)をメインメモリ102に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ102は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク103から読み出されたプログラムに加えて、各種の演算処理結果を示すデータなどを保持する。また、ハードディスク103は不揮発性の磁気記憶装置であり、CPU101で実行されるプログラムに加えて、各種設定値などが格納される。このハードディスク103にインストールされるプログラムは、後述するように、記録媒体111に格納された状態で流通する。なお、ハードディスク103に加えて、あるいはハードディスク103に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
【0025】
入力インタフェース104は、CPU101とキーボード108、マウス109および図示しないタッチパネルなどの入力部との間のデータ伝送を仲介する。すなわち、入力インタフェース104は、ユーザが入力部を操作することで与えられる操作指令などの外部からの入力を受付ける。
【0026】
表示コントローラ105は、表示部の典型例であるディスプレイ110と接続され、ディスプレイ110での表示を制御する。すなわち、表示コントローラ105は、CPU101による画像処理の結果などをユーザに対して表示する。ディスプレイ110は、たとえばLCD(Liquid Crystal Display)またはCRT(Cathode Ray Tube)である。
【0027】
データリーダ/ライタ106は、CPU101と記録媒体111の間のデータ伝送を仲介する。すなわち、記録媒体111は、端末装置11で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ106は、この記録媒体111からプログラムを読み出す。また、データリーダ/ライタ106は、CPU101の内部指令に応答して、端末装置11における処理結果などを記録媒体111へ書き込む。なお、記録媒体111は、たとえば、CF(Compact Flash)およびSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体、またはCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体である。
【0028】
通信インタフェース107は、CPU101と他のパーソナルコンピュータおよびサーバ装置などの間のデータ伝送を仲介する。通信インタフェース107は、典型的には、イーサネット(登録商標)またはUSB(Universal Serial Bus)の通信機能を有する。なお、記録媒体111に格納されたプログラムを端末装置11にインストールする形態に代えて、通信インタフェース107を介して配信サーバなどからダウンロードしたプログラムを端末装置11にインストールしてもよい。
【0029】
また、端末装置11には、必要に応じてプリンタなどの他の出力装置が接続されてもよい。
【0030】
[制御構造]
次に、端末装置11およびサーバ12における負荷テスト機能を提供するための制御構造について説明する。
【0031】
図1は、本発明の実施の形態に係る端末装置およびサーバが提供する制御構造も示している。図1に示す端末装置11およびサーバ12における各ブロックは、ハードディスク103に格納されたプログラム(コード)などをメインメモリ102に展開して、CPU101に実行させることで提供される。なお、図1に示す端末装置11およびサーバ12の制御構造の一部もしくは全部を専用ハードウェアおよび/または配線回路によって実現してもよい。
【0032】
図1を参照して、端末装置11は、その制御構造として、負荷テスト部21を備える。サーバ12は、その制御構造として、通信制御部23を備える。また、端末装置11は、IPアドレス一覧記憶部(端末側記憶部)22を備える。サーバ12は、IPアドレス一覧記憶部(サーバ側記憶部)26を備える。また、サーバ12は、1または複数のアプリケーション24を実行する。アプリケーション24は、データベース25の更新処理等を行なう。
【0033】
負荷テスト部21は、負荷テストに使用する電文の設定、およびスレッドすなわち通信コネクションの設定を行なう。この電文の設定項目としては、たとえば、実績系/要求系等の電文区分、電文内容の指定および送信回数といった項目がある。
【0034】
IPアドレス一覧記憶部22および26は、負荷テストに使用する電文のヘッダ、すなわちIPパケット自体のヘッダではなく、IPパケットのデータ部分に含まれる電文ヘッダに設定するIPアドレスの一覧を記憶する。
【0035】
通信制御部23は、端末装置11およびサーバ12間のスレッドの確立、スレッドの廃棄および電文の振分け等を行なう。
【0036】
図3は、本発明の実施の形態に係る端末装置における負荷テスト部の機能ブロック図である。
【0037】
図3を参照して、負荷テスト部21は、端末数入力部(設定部)31と、電文設定部(処理要求生成部および設定部)32と、接続確立部33と、電文送信部(通信データ送信部)34とを含む。
【0038】
端末数入力部31は、たとえばユーザからの指示に従い、負荷テストにおいてサーバ12に対して負荷をかける仮想的な端末の数を指定する。
【0039】
電文設定部32は、たとえばユーザからの指示に従い、負荷テストで使用する電文の指定を行なう。
【0040】
接続確立部33は、サーバ12との接続すなわち通信コネクションを確立する。
【0041】
電文送信部34は、電文設定部32によって指定された電文をサーバ12へ送信する。この電文は、端末数入力部31によって指定された端末数分送信される。
【0042】
すなわち、クライアント−サーバシステム301では、端末装置11において、電文設定部32は、複数の処理要求を示す電文を生成する。
【0043】
電文送信部34は、処理要求を示す電文、および端末装置11のIPアドレス(識別情報)とは別に処理要求ごとに設定されたIPアドレスを含むIPパケット(通信データ)をそれぞれ生成してサーバ12へ送信する。
【0044】
また、端末数入力部31および電文設定部32は、電文設定部32が生成する処理要求の数、1種類の処理要求を含むIPパケットの送信回数、および処理要求の種類の少なくとも一方を設定する。
【0045】
サーバ12において、通信制御部23は、端末装置11との間でIPパケットを送受信するためのスレッド(通信コネクション)を処理要求ごとに確立する。
【0046】
また、通信制御部23は、端末装置11から受信した各IPパケットに含まれるIPアドレスごとに異なる端末装置11からのIPパケットであるとして当該IPパケットを処理する。そして、通信制御部23は、当該処理要求に伴って生成されるIPパケットを、端末装置11から受信した各IPパケットに含まれるIPアドレスに基づいて端末装置11へ送信する。
【0047】
たとえば、端末装置11において、IPアドレス一覧記憶部22は、端末装置11のIPアドレスとは別に設定され、かつ電文送信部34がIPパケットの電文ヘッダに含めるための複数のIPアドレスを記憶する。
【0048】
サーバ12において、IPアドレス一覧記憶部26は、サーバ12のIPアドレスとは別に設定され、かつIPアドレス一覧記憶部22における各IPアドレスに対応して設定された複数のIPアドレスを記憶する。
【0049】
そして、通信制御部23は、端末装置11からのIPパケットに含まれるIPアドレスに対応するIPアドレスをIPアドレス一覧記憶部26から取得し、取得したIPアドレスを、処理要求に伴って生成されるIPパケットに含めて端末装置11へ送信する。
【0050】
[動作]
次に、本発明の実施の形態に係るクライアント−サーバシステムの動作について図面を用いて説明する。本発明の実施の形態では、端末装置11およびサーバ12を動作させることによって、本発明の実施の形態に係る負荷テスト方法が実施される。よって、本発明の実施の形態に係る負荷テスト方法の説明は、以下の端末装置11およびサーバ12の動作説明に代える。なお、以下の説明においては、適宜図1を参照する。
【0051】
図4は、本発明の実施の形態に係るクライアント−サーバシステムが負荷テストを行なう際の動作手順を示すフローチャートである。
【0052】
図4を参照して、端末装置11は、負荷テスト部21において指定されたスレッドごと、すなわち仮想的な端末ごとに、通信制御部23との間のスレッドを作成する要求であるスレッド確立要求をサーバ12へ送信する(ステップS1)。
【0053】
ここで、サーバ12において、通信制御部23は、通常、端末(クライアント)からスレッド確立要求(接続要求)を示すIPパケットを受信すると、IPパケットのヘッダに含まれる送信元IPアドレスを参照する。そして、通信制御部23は、送信元IPアドレスが、サーバ12の内部に保持されているIPアドレス一覧に存在するか否かのチェックを行なう。通信制御部23は、送信元IPアドレスがIPアドレス一覧に存在する場合には、端末装置11から受信したIPパケットに含まれる電文の内容をチェックし、端末との間に上り通信および下り通信のためのスレッドを確立する。
【0054】
すなわち、クライアント−サーバシステムにおけるサーバでは、通常、IPパケットのヘッダで端末を判別することから、1つの端末からの接続要求はすべて同一の端末からの接続要求として扱ってしまう。
【0055】
これに対して、本発明の実施の形態に係るサーバでは、通信制御部23は、負荷テスト時、端末装置11からのIPパケットのヘッダに含まれるIPアドレスをチェックしない。すなわち、通信制御部23は、接続順、すなわちスレッド確立要求を受信した順にIPアドレス一覧記憶部26におけるIPアドレス一覧からIPアドレスを割り振り、スレッドを確立する。これにより、1つの端末装置11を用いるだけで複数のスレッドを作成することができる(ステップS2)。
【0056】
次に、端末装置11は、負荷テスト部21において処理要求として電文を生成し(ステップS3)、確立されたスレッドを使用して、生成された電文のサーバ12に対する送信処理を、指定された回数分行なう(ステップS4)。
【0057】
次に、サーバ12において、通信制御部23は、受信した電文を各アプリケーション24に渡す。各アプリケーション24は、この電文に基づいて、データベース25に対する更新等の処理を行なう(ステップS5)。
【0058】
次に、各アプリケーション24の処理実行後、通信制御部23は、アプリケーション24からの回答電文をクライアントである端末装置11へ送信する。この回答電文における電文ヘッダに、IPアドレス一覧記憶部26から割り振ったテスト用のIPアドレスが格納される(ステップS6)。
【0059】
負荷テスト部21は、サーバ12から送信された回答電文を受信し、各スレッドにおいて処理が正常に行なわれたか否かを画面に表示する(ステップS7)。
【0060】
次に、負荷テスト部21における各プロセスの役割および設定項目について詳細に説明する。
【0061】
再び図3を参照して、端末数入力部31により、IPアドレス一覧記憶部22において設定されているアドレス数を上限に、サーバ12との間でスレッドの確立を行なう仮想的な端末数を設定することができる。
【0062】
電文設定部32により、サーバ12へ送信する電文のデータファイルパスの指定、接続要求先であるサーバのIPアドレスの指定、電文の種類(実績系/要求系)、ならびに電文の送信回数および送信間隔を指定することができる。
【0063】
接続確立部33は、端末数入力部31で指定された端末数分、通信制御部23に対してスレッドの確立要求を行なう。接続確立部33は、指定された端末数分、IPアドレス一覧記憶部22からIPアドレスを取得し、取得したIPアドレスを電文ヘッダに含めた電文を用いて、通信制御部23に対してスレッドの確立要求を行なう。ここで、電文をデータ部分に含むIPパケットのヘッダには、IPパケット通信で実際に使用する端末装置11のIPアドレスが設定されている。
【0064】
また、IPアドレス一覧記憶部22では、16進数を用いて必要端末数分の定義が行なわれる。この場合、1行につき1アドレスを定義する。定義するIPアドレスの順番は、通信制御部23のIPアドレスの管理順すなわちIPアドレス一覧記憶部26におけるIPアドレス一覧の順番と同じである。
【0065】
通信制御部23は、負荷テスト時、端末装置11からスレッドの確立要求を受信すると、確立要求ごとにスレッドを確立する。このため、負荷テスト部21と通信制御部23との間でIPアドレスごとにスレッドが確立されることとなる。
【0066】
電文送信部34は、負荷テスト部21における端末数入力部31および電文設定部32によって指定された内容に基づき、電文を通信制御部23へ送信する。電文送信部34は、電文を送信する際、電文設定部32によって指定された電文のヘッダに含まれるIPアドレスを、接続確立部33が用いた各スレッド用のIPアドレスに変換し、各スレッドを用いて電文の送信処理を行なう。
【0067】
また、電文送信部34は、電文設定部32によって指定された回数、および指定された間隔で電文を送信するように、各スレッドに対して送信処理を行なう。
【0068】
なお、本発明の実施の形態に係るクライアント−サーバシステムでは、1つの端末装置を用いてサーバ12の負荷テストを行なう構成であるとしたが、これに限定するものではない。
【0069】
n個の端末分の電文をサーバ12に送信する負荷テスト部21に加えて、通常の端末をたとえば1台使用して、(n+1)台分の負荷テストを行なう構成であってもよい。
【0070】
すなわち、この通常端末は、図3に示す各ユニットのうち、少なくとも電文設定部32および電文送信部34を備える。
【0071】
より詳細には、通常端末において、電文設定部32は、処理要求を示す電文を生成する。
【0072】
また、電文送信部34は、IPアドレス一覧記憶部22によって記憶されている各IPアドレスのうち、端末装置11において未使用のIPアドレスを取得し、取得したIPアドレス、および処理要求を含むIPパケットを生成してサーバ12へ送信する。
【0073】
サーバ12において、通信制御部23は、端末装置11および他の端末装置11からのIPパケットに含まれるIPアドレスに対応するIPアドレスをIPアドレス一覧記憶部26から取得し、取得したIPアドレスを、処理要求に伴って生成されるIPパケットに含めて端末装置11および他の端末装置11へ送信する。
【0074】
1つの端末装置11のみを用いた負荷テストの場合には、負荷テスト部21は、指定された電文しか送信できないのに対し、通常の端末は、実際の業務実行に伴う電文をサーバ12へ送信することができる。このため、サーバ12の高負荷状態における業務処理を、端末の処理および画面遷移確認も含めて評価することができる。
【0075】
ところで、同一内容の大量電文を用いた負荷テストでは、サーバはこれらの電文を複数の端末からの電文とはみなさない。このため、単一スレッドすなわち単一の通信コネクションを用いた処理の負荷テストにしかならないことから、マルチスレッド環境における性能検証を行なうことはできない。そして、このような負荷テストで、より現実的なマルチスレッド環境における性能検証を行なうためには、電文を送信するための複数の端末が必要となり、テスト環境が複雑になってしまう。
【0076】
これに対して、本発明の実施の形態に係るクライアント−サーバシステムでは、電文設定部32は、複数の処理要求を生成する。電文送信部34は、処理要求、および端末装置11の識別情報とは別に処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成してサーバ12へ送信する。そして、通信制御部23は、端末装置11から受信した各通信データに含まれる識別情報ごとに異なる端末装置11からの通信データであるとして当該通信データを処理し、処理要求に伴って生成される通信データを、端末装置11から受信した各通信データに含まれる識別情報に基づいて端末装置11へ送信する。
【0077】
このように、本発明の実施の形態に係るクライアント−サーバシステムでは、サーバのオンライン処理の負荷評価および性能評価において、1台の端末装置を用いて、スレッドの大量作成、電文のヘッダの置き換え、および大量電文の送信を行なう。
【0078】
具体的には、通信制御部23は、端末装置11との間で通信データを送受信するための通信コネクションを処理要求ごとに確立する。
【0079】
すなわち、通常のサーバにおいて、IPパケットのヘッダを用いた相互接続確認によってスレッドの作成および使用の有無を判断していた部分を変更し、端末からの接続要求ごとにスレッドの領域を確保する仕組みを採用する。これにより、1つの端末からの優先的な多端末分の電文による通信すなわちマルチスレッドの通信が可能となる。
【0080】
なお、このような機能変更は、たとえばサーバ12における通信制御部23を実現するためのプログラムを、通常用からテスト用に変更することで実現することができる。このようなプログラム変更を行っても、各アプリケーション24は変更されていないため、負荷テストを適切に行なうことが可能である。
【0081】
これにより、サーバ12において各電文が別の端末から送信されたものとして処理することができるため、クライアント−サーバシステムにおいて、従来、シングルスレッド環境での負荷テストしか行なえなかったところを、多端末によるマルチスレッド環境での負荷テストを行なうことが可能となる。
【0082】
すなわち、サーバの処理において接続要求が同時多発的に発生する多端末の環境において、より現実に近い高負荷テストを1台の端末を使用するだけで実行し、サーバ性能の検証を行なうことができる。
【0083】
ここで、特許文献1〜3に記載の技術と本発明の実施の形態に係るクライアント−サーバシステムとの具体的な相違としては、たとえば、以下のような点がある。
【0084】
すなわち、特許文献1に記載の技術では、IPパケットのヘッダにおけるIPアドレスを変換している。
【0085】
これに対して、本発明の実施の形態に係るクライアント−サーバシステムでは、端末装置11からのスレッド確立要求を受信すると、サーバ12において定義しているIPアドレス一覧の順番で電文ヘッダ用のIPアドレスを割り当て、スレッドを作成する。これにより、仮想的に複数の端末との通信コネクションを実現することができる。IPパケットのヘッダには、実際に使用している端末のIPアドレスが設定されており、通常動作と同様の通信が可能である。
【0086】
また、特許文献2に記載の技術では、テスト実行端末およびテストマネージャ端末を用いる構成である。
【0087】
これに対して、本発明の実施の形態に係るクライアント−サーバシステムでは、テスト実施端末および対象サーバのみで負荷テストを実施することが可能である。また、IPアドレスの処理構成についても、上記特許文献1と同様の相違がある。
【0088】
また、特許文献3に記載の技術に対して、本発明の実施の形態に係るクライアント−サーバシステムは、負荷データが端末からサーバへ送信される点で異なり、また、スレッドを複数作成し、仮想端末−サーバ間の通信データの送受信を可能にしている点で異なる。
【0089】
また、本発明の実施の形態に係るクライアント−サーバシステムは、「ネットワークに対する負荷性能を評価する」という目的というよりも、どちらかと言えば、「サーバの業務アプリケーションに対する負荷性能を評価する」という目的を実現するためのものである。すなわち、仮想的に複数の端末から同時に電文を送信することにより、スレッドを複数作成し、それぞれの要求に対してデータベースにアクセス等を行ない、処理した結果を仮想端末へ回答する、という高負荷状態におけるサーバの一連の流れを検証することを目的とするものである。
【0090】
以上のように、特許文献1〜3に記載の技術と本発明の実施の形態に係るクライアント−サーバシステムとは、種々の点で相違がある。
【0091】
すなわち、本発明の実施の形態に係るクライアント−サーバシステムにおける各構成要素のうち、電文設定部32、電文送信部34および通信制御部23からなる最小構成により、簡易な構成で適切な負荷テストを行なう、という本発明の目的を達成することが可能となる。
【0092】
また、本発明の実施の形態に係るクライアント−サーバシステムでは、IPアドレス一覧記憶部22は、端末装置11の識別情報とは別に設定され、かつ電文送信部34が通信データに含めるための複数の識別情報を記憶する。IPアドレス一覧記憶部26は、サーバ12の識別情報とは別に設定され、かつIPアドレス一覧記憶部22における各識別情報に対応して設定された複数の識別情報を記憶する。そして、通信制御部23は、端末装置11からの通信データに含まれる識別情報に対応する識別情報をIPアドレス一覧記憶部26から取得し、取得した識別情報を、処理要求に伴って生成される通信データに含めて端末装置11へ送信する。
【0093】
このような構成により、サーバ12から送信される回答電文を、端末装置11においてスレッドごとに判別することができるため、サーバ12の性能評価を適切に行なうことができる。
【0094】
また、本発明の実施の形態に係るクライアント−サーバシステムでは、端末装置11と異なる端末装置において、電文設定部は、処理要求を生成する。電文送信部は、IPアドレス一覧記憶部22によって記憶されている各識別情報のうち、端末装置11において未使用の識別情報を取得し、取得した識別情報、および処理要求を含む通信データを生成してサーバ12へ送信する。そして、サーバ12において、通信制御部23は、端末装置11および他の端末装置11からの通信データに含まれる識別情報に対応する識別情報をIPアドレス一覧記憶部26から取得し、取得した識別情報を、処理要求に伴って生成される通信データに含めて端末装置11および他の端末装置へ送信する。
【0095】
このような構成により、実際の業務実行に伴う電文をサーバ12へ送信することができるため、サーバ12の高負荷状態における業務処理を、端末の処理および画面遷移確認も含めて評価することができる。
【0096】
また、本発明の実施の形態に係るクライアント−サーバシステムでは、端末数入力部31および電文設定部32は、処理要求部が生成する処理要求の数、1種類の処理要求を含む通信データの送信回数、および処理要求の種類の少なくとも一方を設定する。
【0097】
このように、負荷テスト部21において、スレッド数、電文に設定するIPアドレス、同一電文の送信回数、および電文の種類等を設定可能とする構成により、より現実的な負荷テストを行なうことができる。
【0098】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0099】
[付記1]
端末装置と、
サーバとを備えるクライアント−サーバシステムであって、
前記端末装置は、
複数の処理要求を生成するための処理要求生成部と、
前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するための通信データ送信部とを含み、
前記サーバは、
前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理し、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するための通信制御部を含む、クライアント−サーバシステム。
【0100】
[付記2]
前記端末装置は、さらに、
前記通信データ送信部が前記通信データに含めるための複数の前記識別情報を記憶するための端末側記憶部を含み、
前記サーバは、さらに、
前記サーバの識別情報とは別に設定され、かつ前記端末側記憶部における各前記識別情報に対応して設定された複数の識別情報を記憶するためのサーバ側記憶部を含み、
前記通信制御部は、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、付記1に記載のクライアント−サーバシステム。
【0101】
[付記3]
前記クライアント−サーバシステムは、さらに、
前記端末装置とは異なる他の端末装置を備え、
前記他の端末装置は、
処理要求を生成するための処理要求生成部と、
前記端末側記憶部によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するための通信データ送信部とを含み、
前記通信制御部は、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、付記2に記載のクライアント−サーバシステム。
【0102】
[付記4]
前記通信制御部は、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立する、付記1から3のいずれかに記載のクライアント−サーバシステム。
【0103】
[付記5]
前記端末装置は、さらに、
前記処理要求部が生成する前記処理要求の数、1種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するための設定部を備える、付記1から4のいずれかに記載のクライアント−サーバシステム。
【0104】
[付記6]
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テスト方法であって、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを含む、負荷テスト方法。
【0105】
[付記7]
前記負荷テスト方法は、さらに、
前記端末装置が、前記通信データに含めるための複数の前記識別情報を記憶するステップと、
前記サーバが、前記サーバの識別情報とは別に設定され、かつ前記端末装置が記憶する各前記識別情報に対応して設定された複数の識別情報を記憶するステップとを含み、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、付記6に記載の負荷テスト方法。
【0106】
[付記8]
前記負荷テスト方法は、さらに、
前記端末装置とは異なる他の端末装置が、処理要求を生成するステップと、
前記他の端末装置が、前記端末装置によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するステップとを含み、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、付記7に記載の負荷テスト方法。
【0107】
[付記9]
前記負荷テスト方法は、さらに、
前記サーバが、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立するステップを含む、付記6から8のいずれかに記載の負荷テスト方法。
【0108】
[付記10]
前記負荷テスト方法は、さらに、
前記端末装置が、生成する前記処理要求の数、1種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するステップを含む、付記6から9のいずれかに記載の負荷テスト方法。
【0109】
[付記11]
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テストプログラムであって、コンピュータに、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを実行させるための、負荷テストプログラム。
【0110】
[付記12]
前記負荷テストプログラムは、さらに、コンピュータに、
前記端末装置が、前記通信データに含めるための複数の前記識別情報を記憶するステップと、
前記サーバが、前記サーバの識別情報とは別に設定され、かつ前記端末装置が記憶する各前記識別情報に対応して設定された複数の識別情報を記憶するステップとを実行させ、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、付記11に記載の負荷テストプログラム。
【0111】
[付記13]
前記負荷テストプログラムは、さらに、コンピュータに、
前記端末装置とは異なる他の端末装置が、処理要求を生成するステップと、
前記他の端末装置が、前記端末装置によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するステップとを実行させ、
前記通信データを前記端末装置へ送信するステップにおいては、前記サーバは、記憶した各前記識別情報のうち、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、付記12に記載の負荷テストプログラム。
【0112】
[付記14]
前記負荷テストプログラムは、さらに、コンピュータに、
前記サーバが、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立するステップを実行させる、付記11から13のいずれかに記載の負荷テストプログラム。
【0113】
[付記15]
前記負荷テストプログラムは、さらに、コンピュータに、
前記端末装置が、生成する前記処理要求の数、1種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するステップを実行させる、付記11から14のいずれかに記載の負荷テストプログラム。
【産業上の利用可能性】
【0114】
本発明によれば、クライアント−サーバシステムにおけるソフトウェア評価および性能検証を行なうことができる。したがって、本発明は、産業上の利用可能性を有している。
【符号の説明】
【0115】
11 端末装置
12 サーバ
21 負荷テスト部
22 IPアドレス一覧記憶部(端末側記憶部)
23 通信制御部
24 アプリケーション
25 データベース
26 IPアドレス一覧記憶部(サーバ側記憶部)
31 端末数入力部(設定部)
32 電文設定部(処理要求生成部および設定部)
33 接続確立部
34 電文送信部(通信データ送信部)
101 CPU
102 メインメモリ
103 ハードディスク
104 入力インタフェース
105 表示コントローラ
106 データリーダ/ライタ
107 通信インタフェース
108 キーボード
109 マウス
110 ディスプレイ
111 記録媒体
121 バス
301 クライアント−サーバシステム

【特許請求の範囲】
【請求項1】
端末装置と、
サーバとを備えるクライアント−サーバシステムであって、
前記端末装置は、
複数の処理要求を生成するための処理要求生成部と、
前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するための通信データ送信部とを含み、
前記サーバは、
前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理し、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するための通信制御部を含む、クライアント−サーバシステム。
【請求項2】
前記端末装置は、さらに、
前記通信データ送信部が前記通信データに含めるための複数の前記識別情報を記憶するための端末側記憶部を含み、
前記サーバは、さらに、
前記サーバの識別情報とは別に設定され、かつ前記端末側記憶部における各前記識別情報に対応して設定された複数の識別情報を記憶するためのサーバ側記憶部を含み、
前記通信制御部は、前記端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置へ送信する、請求項1に記載のクライアント−サーバシステム。
【請求項3】
前記クライアント−サーバシステムは、さらに、
前記端末装置とは異なる他の端末装置を備え、
前記他の端末装置は、
処理要求を生成するための処理要求生成部と、
前記端末側記憶部によって記憶されている各前記識別情報のうち、前記端末装置において未使用の前記識別情報を取得し、取得した前記識別情報、および前記処理要求を含む前記通信データを生成して前記サーバへ送信するための通信データ送信部とを含み、
前記通信制御部は、前記端末装置および前記他の端末装置からの前記通信データに含まれる前記識別情報に対応する識別情報を前記サーバ側記憶部から取得し、取得した前記識別情報を、前記処理要求に伴って生成される通信データに含めて前記端末装置および前記他の端末装置へ送信する、請求項2に記載のクライアント−サーバシステム。
【請求項4】
前記通信制御部は、前記端末装置との間で前記通信データを送受信するための通信コネクションを前記処理要求ごとに確立する、請求項1から3のいずれかに記載のクライアント−サーバシステム。
【請求項5】
前記端末装置は、さらに、
前記処理要求部が生成する前記処理要求の数、1種類の前記処理要求を含む前記通信データの送信回数、および前記処理要求の種類の少なくとも一方を設定するための設定部を備える、請求項1から4のいずれかに記載のクライアント−サーバシステム。
【請求項6】
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テスト方法であって、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを含む、負荷テスト方法。
【請求項7】
端末装置と、サーバとを備えるクライアント−サーバシステムにおける負荷テストプログラムであって、コンピュータに、
前記端末装置が、複数の処理要求を生成するステップと、
前記端末装置が、前記処理要求、および前記端末装置の識別情報とは別に前記処理要求ごとに設定された識別情報を含む通信データをそれぞれ生成して前記サーバへ送信するステップと、
前記サーバが、前記端末装置から受信した各前記通信データに含まれる前記識別情報ごとに異なる端末装置からの前記通信データであるとして前記通信データを処理するステップと、
前記サーバが、前記処理要求に伴って生成される通信データを、前記端末装置から受信した各前記通信データに含まれる前記識別情報に基づいて前記端末装置へ送信するステップとを実行させるための、負荷テストプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−174119(P2012−174119A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−37254(P2011−37254)
【出願日】平成23年2月23日(2011.2.23)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.COMPACTFLASH
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】