(57)【要約】【課題】  ピアを実際に動作させることによりスケーラビリティをテストするスケーラビリティテストシステムを提供すること。【解決手段】  多数のピアを１つの端末で集中制御することを最も主要な特徴とし、集中コントローラおよび分散コントローラおよびテストサーバの３層から構成され、集中コントローラにＸＭＬで書かれたテスト命令を設定し、設定されたテスト命令に対する同期信号を集中コントローラが分散コントローラに対して送信し、分散コントローラはテストサーバに対して必要な命令のみを送信する。【選択図】図１
2005202534.tif 000002
【特許請求の範囲】
【請求項１】
テスト対象プログラムと１対１で通信するテストサーバと、
１つ以上のテストサーバを制御する分散コントローラと、
ネットワークを介して１つ以上の分散コントローラを制御する集中コントローラから構成され、
集中コントローラに対してテスト条件を設定する手段と、
設定したテスト条件を条件に応じて分割して分散コントローラに送信する手段と、
集中コントローラの指定により分散コントローラに保持されるテスト条件を分割しテストサーバに送信する手段と、
テストサーバが受信したテスト条件に即した処理を行う手段と、
を有することを特徴とするテストシステム。
【請求項２】
請求項１に記載のテストシステムであって、
前記テスト条件は同一の時間に実行される単位に纏められており、該実行単位に纏められたテスト条件は番号付けされ、該番号を集中コントローラが指定することにより分散コントローラは該当する処理をテストサーバに送信し、テストサーバは該当する処理を実行する手段を有することを特徴とするテストシステム。
【請求項３】
請求項１に記載のテストシステムであって、
前記テスト条件は階層構造で記述され、階層にはテストプログラム、同一の時間に実行される単位、を含む構成であることを特徴とするテストシステム。
【請求項４】
テスト対象プログラムと１対１で通信するテストサーバと、１つ以上のテストサーバを制御する分散コントローラと、ネットワークを介して１つ以上の分散コントローラを制御する集中コントローラから構成されるテストシステムに用いられるプログラムにおいて、
集中コントローラに対して設定されたテスト条件を条件に応じて分割して分散コントローラに送信するステップと、
集中コントローラの指定により分散コントローラに保持されるテスト条件を分割しテストサーバに送信し、テストサーバが受信したテスト条件に即した処理を行なわせるようにするステップとを有し、
前記テスト条件は同一の時間に実行される単位に纏められており、該実行単位に纏められたテスト条件は番号付けされ、該番号を集中コントローラが指定することにより分散コントローラが該当する処理をテストサーバに送信することを特徴とするテストシステムに用いられるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのスケーラビリティをテストするシステムに関するものである。
【背景技術】
【０００２】
ネットワーク技術の進歩とユーザの拡大により、ネットワークを介した様々なアプリケーションが誕生している。ネットワークを介したアプリケーションは、一般にサーバ／クライアントモデルで動作し、多数のユーザを同時に相手にする場合は、通常集中型のサーバを使用することで、様々なサービスを提供している。
しかし、ファイル交換型アプリケーションの登場と成功により、ピアツーピア型アプリケーションが近年注目されている。ピアツーピア型アプリケーションは、サーバ／クライアントの両方の機能を有する端末（以下、ピアと呼ぶ）が、それぞれ協調的に動作することにより、一体化したシステムとして動作する。これは、集中型サーバの対極として実現されているモデルであり、純粋なピアツーピアでは全体を統括する端末は存在しない。
【０００３】
このようなピアツーピア型アプリケーションは、従来の集中型サーバに比べ、ピアや共有する情報の管理コストがピア数に応じて劇的に増加することが知られている。例えば、３つのピアが存在するシステムでは、通信相手のピアは高々２つである。しかし、１００００ピアが存在するシステムでは、通信相手のピアは９９９９ピア存在する。通信相手としてピアを保持する際に、１ピアあたりの情報量とピア数の積が小さい場合は、管理コストは問題とはならないが、情報量もしくはピア数が大きい場合は、ピア管理は破綻する。近年の携帯電話のユーザ数は千万単位であり、携帯電話にピアツーピアを適用した場合は、ピア管理が機能しないことは容易に想像できる。
【０００４】
一方、情報共有はピア管理に比べさらに制約が大きい。これは、情報量がピアの情報に比較して大きく、さらには１つのピアが複数の情報を投入するからである。
このような管理コストの増大に対して、１つのピアが保持するピアの情報や共有情報を制限すると、必要に応じて他のピアに質問を行う必要がある。これは、一般的な分散システムと同様な構成であり、分散システムでは複数の端末がある端末への質問を必要に応じて他の端末に振り分けるような処理を行っている。
しかし、このような質問処理もピア数に応じて増加するため、ピア数が増加すると質問処理のコストが増加し、効率的なシステムとしては機能しなくなる。
【０００５】
このような、ピア数が増加した場合の性能をスケーラビリティといい、ピア数が増加した場合に対応できることをスケーラビリティがあると言う。ピアツーピアに関して検討が進んでいるJXTAでは様々なスケーラビリティ対策が取られている。スケーラビリティの評価方法については、以下の非特許文献に示されるように、少数のピア間での性能測定を行うことにより、ピア数が増加した場合を予測する方法が採られている。
【０００６】
【非特許文献１】"Jxta Pipes Performance", Jean-Marc Seigneur, www.jxta.org
【０００７】
【非特許文献２】"Building a P2P Forum System with JXTA", Emir Halepovic and Ralph Deters, The Second IEEE International Conference on P2P Computing
【非特許文献３】"JXTA Performance Study", Emir Halepovic and Ralph Deters, PACRIM'03 Conference
【非特許文献４】"The Cost of Using JXTA", Emir Halepovic and Ralph Deters, The Third IEEE International Conference on P2P Computing
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記非特許文献１から非特許文献４の測定方法は、性能測定の結果からスケーラビリティを予測する方法であり、多数のピアを実際に動作させた場合の結果と必ずしも等しいとは言えない。
本発明の課題は、その点を考慮し、ピアを実際に動作させることによりスケーラビリティをテストするスケーラビリティテストシステム及びそれに用いられるプログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明は、多数のピアを１つの端末で集中制御することを主要な特徴とするもので、上記課題を解決するため、本発明では以下のようなテストシステム及びそれに用いられるプログラムを提供する。
本発明のテストシステムは、集中コントローラおよび分散コントローラおよびテストサーバの３層から構成され、集中コントローラにＸＭＬ(eXtensible Markup Language)で書かれたテスト命令を設定し、設定されたテスト命令に対する同期信号を集中コントローラが分散コントローラに対して送信し、分散コントローラはテストサーバに対して必要な命令のみを送信するように構成される。なお、請求項におけるテスト対象プログラムとはテストのターゲットであるプログラムであり、本テストシステムを適用するプログラムを指す。テスト対象プログラムは、後述するテストピアに相当する。
【発明の効果】
【００１０】
本発明のスケーラビリティテストシステムは、１つの端末で多数のピアを集中制御するため、様々な条件を設定し、容易にテストを行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例につき、図面を用いて説明する。
図１は、本発明のシステム構成図である。１０１はテストを集中制御する集中コントローラである。１０２から１０４はテストＰＣ(Personal Computer)であり、１０５および１０６はテストＰＤＡ(Personal Digital Assistant)である。これらのテスト端末は、分散コントローラ、テストサーバ、テストピアから構成される。１０１から１０６はすべてネットワークを介して接続される。なお、本例では端末として１０２から１０４ではＰＣを、ＰＣに比較して低性能の端末として１０５および１０６のＰＤＡを用いているが、１０５および１０６は携帯電話などでも良い。また、端末の数はテスト規模に応じて増やしても良い。
次に、図２を用いてテスト端末の構成について説明する。例としてテスト端末である１０２を用いる。テスト端末は、分散コントローラ２０１およびテストサーバ２１１およびテストピア２２１から構成される。分散コントローラ２０１はテスト端末１０２に１つ存在し、端末内のすべてのテストサーバを制御する。テストサーバ２１１はテストピア２２１を制御する。テストサーバはテストピアと同数存在し、テストピアを１対１で制御する。また、テストサーバおよびテストピアは、テスト規模に応じて増やしても良い。分散コントローラおよびテストサーバの通信、テストサーバおよびテストピアの通信は、端末内で使用可能な通信方法であれば良く、例えばパイプやソケットなどを用いる。
【００１２】
次に、図３を用いてテストピアの記述方法について説明する。図において３０１から３０６はそれぞれ異なるテストピアである。テストを開始した直後のタイミングですべてのテストピアが同一の動作を実行したいとする。本発明では、同一のテストの実行タイミングをテストステージと呼ぶ。例えば、３１１はテストステージ１である。このようにステージで分け、テスト内容をステージ単位で記述すると、テストステージを指定することにより、種々の組み合わせのテストを指定することができる。また、テストステージはすべてのテストピアで共通の番号を有するので、すべてのテストピアに対するテストの実行内容の指示は、テストステージの番号により行うことができる。このような構成では、テストの実行は同期的に行うことができる。図において、３１１はテストピア１から６すべてが実行するが、３１２はテストピア１のみが実行する。３１３はテストピア２から６のみが実行する。
【００１３】
次に、集中コントローラに設定するテストの内容について、図４を用いて説明する。なお、テスト内容を記述した文書をテストスクリプトと呼ぶ。４０１はルートタグであり、全テストピア数について示している。４１１ではテストピア１、４１２ではテストピア２、４１３ではテストピア３から５０、４１４の要素内では上記以外のテストピアについて記述する。なお、４１１から４１４において、どのテスト端末もしくは分散コントローラを使用するかを記述しても良い。例えば、４１１の属性に分散コントローラのＩＰアドレスを記述するなどにより、テストピアと、テストピアが所属する分散コントローラを明確に指定することができる。４２１から４５３はそれぞれステージを示している。このような記述方法を用いることにより、分割が容易であり、かつ視覚的にも読みやすく、改変が容易であり、またタグの拡張によりテスト内容の拡張が容易となる効果がある。
【００１４】
次に、図５を用いてテストシステムの実行フローについて説明する。５０１から５０６は集中コントローラの動作のフローを、５１１から５１４は分散コントローラの動作のフローを、５２４および５２５はテストサーバの動作のフローを、５３５はテストピアの動作のフローを示している。また、５０３、５１３、５１４、５２４、５２５、５３５から構成されるブロック５５０は、１つのステージを実行する際の一連の処理であり、複数のステージを実行する場合には５５０が続けて実行される。テストが開始されると、集中コントローラにテストスクリプトを設定する（５０１）。テストスクリプトを設定する作業とは、ユーザがテキストエディタなどで編集したテストスクリプトのファイルを集中コントローラに読み込ませる作業などである。集中コントローラはテストスクリプトが設定されると、分散コントローラに対してテストスクリプトを送信する（５１１）。テストスクリプトは各分散コントローラに分割して送信しても良い。例えば、分散コントローラ３はピア１００１からピア２０００を制御するとテストスクリプトに記述されている場合、集中コントローラはテストスクリプトから該当するピア１００１から２０００に対応するテストスクリプトを分割して取り出し分散コントローラ３に送信する。分散コントローラはテストスクリプトを受信し解析する（５１２）。５１２は、該当するテストサーバにテスト命令を送信する直前の状態まで準備するステップである。次に、ステージ部分５５０を開始する。ステージ部分は、集中コントローラの実行命令に基づき、繰り返し実行される部分である。集中コントローラは実行ステージの開始を、ステージ番号を指定して分散コントローラに送信する（５０３）。分散コントローラはステージ番号を含む情報を受信する（５１３）。次に、分散コントローラは、受信したステージ番号に記述される実行するテスト内容を各テストサーバに送信する（５１４）。テストサーバはテスト内容を受信し（５２４）、該当するメソッドをテストピアから呼び出す（５２５）。テストピアは、テストサーバのメソッドの呼び出しに対応したメソッドを実行する（５３５）。
【００１５】
これらにより、多数のピアを制御してテストを行うことができる。また、テストスクリプトを用いたことにより、テスト内容の作成や変更が容易であるという効果がある。また、ステージ方式により制御したことにより、簡単に同期をとったテストが可能であるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態の説明図である。
【図２】テスト端末の構成を示した説明図である。
【図３】テストの同期を示した説明図である。
【図４】テストスクリプトを示した説明図である。
【図５】テストを行う場合のフローチャートである。
【符号の説明】
【００１７】
１０１    集中コントローラ
１０２    テストＰＣ１
１０３    テストＰＣ２
１０４    テストＰＣ３
１０５    テストＰＤＡ１
１０６    テストＰＤＡ２
【図１】
2005202534.tif 000003
【図２】
2005202534.tif 000004
【図３】
2005202534.tif 000005
【図４】
2005202534.tif 000006
【図５】
2005202534.tif 000007