(57)【特許請求の範囲】
【請求項１】
アプリケーション性能試験の並列作業負荷シミュレーションのための方法であって、
ホスト・コンピュータの少なくとも１つのプロセッサによってメモリ内で実行されている作業負荷シミュレータにおいて、試験中のコンピュータ・アプリケーションの異なるタスクについての記録された作業負荷のリストを読み込むことと、
前記記録された作業負荷を共通タスクによって対応するブロックにグループ化することであって、グループ化した各ブロックにはそれぞれ異なるタスクが対応している、グループ化することと、
前記各ブロック内の作業負荷を前記各ブロックにおける出現順に直列実行することを必要とするが、異なるブロック内の作業負荷の並列実行を可能にするように、前記グループ化された作業負荷から、試験中の前記コンピュータ・アプリケーションの性能をシミュレートするための負荷を生成することと、
を含み、
前記グループ化することは、別の作業負荷に依存する作業負荷の各々を同じブロック内に配置することを含む、
方法。
【請求項２】
前記ブロック間で同期点を設定することと、
前記同期点より前のブロック内のそれぞれのタスクについての作業負荷の全てが完了するように、前記同期点の順序付け制約を強制することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記記録された作業負荷は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項１に記載の方法。
【請求項４】
前記記録された作業負荷を共通タスクによって対応するブロックにグループ化することは、
前記異なるタスクの各々について、前記ＨＴＴＰ要求間の対応する異なる文字列を識別することと、
前記異なる文字列のうちの共通する文字列を共有する前記ＨＴＴＰ要求の各々を１つの共通ブロック内に配置することと、
を含む、請求項３に記載の方法。
【請求項５】
以前に実行されたＨＴＴＰ要求からの結果に依存する各々のＨＴＴＰ要求を共通ブロック内に配置することをさらに含む、請求項４に記載の方法。
【請求項６】
選択されたブロックを、異なるブロックからの作業負荷が並列に実行される共通コンテナ内にグループ化することをさらに含む、請求項１に記載の方法。
【請求項７】
並列作業負荷シミュレーションのために構成された性能試験データ処理システムであって、
メモリ及び少なくとも１つのプロセッサを有するホスト・コンピュータと、
前記ホスト・コンピュータにおいて実行されるオペレーティング・システムと、
前記オペレーティング・システムによってホストされる作業負荷シミュレータであって、負荷レコーダ、負荷エディタ及び負荷ジェネレータの各々を含む、作業負荷シミュレータと、
前記負荷エディタに接続されたブロック識別モジュールであって、前記作業負荷シミュレータにおいて試験中のコンピュータ・アプリケーションの異なるタスクについて、前記負荷レコーダによって記録された作業負荷のリストを読み込むことと、前記記録された作業負荷を共通タスクによって対応するブロックにグループ化することであって、グループ化した各ブロックにはそれぞれ異なるタスクが対応している、グループ化することとを可能にするプログラム・コードを含む、ブロック識別モジュールと、
を含み、
前記負荷ジェネレータは、前記各ブロック内の作業負荷を前記各ブロックにおける出現順に直列実行することを必要とするが、異なるブロック内の作業負荷の並列実行を可能にするように、前記グループ化された作業負荷から、試験中の前記コンピュータ・アプリケーションの性能をシミュレートするための負荷を生成し、
前記ブロック識別モジュールは、別の作業負荷に依存する作業負荷の各々を同じブロック内に配置する、
性能試験データ処理システム。
【請求項８】
前記記録された作業負荷は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項７に記載のシステム。
【請求項９】
アプリケーション性能試験の並列作業負荷シミュレーションのためのコンピュータ・プログラムであって、コンピュータに、
ホスト・コンピュータの少なくとも１つのプロセッサによってメモリ内で実行されている作業負荷シミュレータにおいて、試験中のコンピュータ・アプリケーションの異なるタスクについての記録された作業負荷のリストを読み込む機能と、
前記記録された作業負荷を共通タスクによって対応するブロックにグループ化する機能であって、グループ化した各ブロックにはそれぞれ異なるタスクが対応している、グループ化する機能と、
前記各ブロック内の作業負荷を前記各ブロックにおける出現順に直列実行することを必要とするが、異なるブロック内の作業負荷の並列実行を可能にするように、前記グループ化された作業負荷から、試験中の前記コンピュータ・アプリケーションの性能をシミュレートするための負荷を生成する機能と、
を実行させ、
前記グループ化する機能は、別の作業負荷に依存する作業負荷の各々を同じブロック内に配置する機能を含む、
コンピュータ・プログラム。
【請求項１０】
前記ブロック間で同期点を設定する機能と、
前記同期点より前のブロック内のそれぞれのタスクについての作業負荷の全てが完了するように、前記同期点の順序付け制約を強制する機能と、
をさらに含む、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
前記記録された作業負荷は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である、請求項１０に記載のコンピュータ・プログラム。
【請求項１２】
前記記録された作業負荷を共通タスクによって対応するブロックにグループ化する機能は、
前記異なるタスクの各々について、前記ＨＴＴＰ要求間の対応する異なる文字列を識別する機能と、
前記異なる文字列のうちの共通する文字列を共有する前記ＨＴＴＰ要求の各々を１つの共通ブロック内に配置する機能と、
を含む、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
以前に実行されたＨＴＴＰ要求からの結果に依存する各々のＨＴＴＰ要求を共通ブロック内に配置する機能をさらに含む、請求項１２に記載のコンピュータ・プログラム。
【請求項１４】
選択されたブロックを、異なるブロックからの作業負荷が並列に実行される共通コンテナ内にグループ化する機能をさらに含む、請求項９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション性能試験に関し、より具体的には、アプリケーション性能試験のための作業負荷シミュレーションに関する。
【背景技術】
【０００２】
ソフトウェア工学においては、性能試験は、特定のまとまった作業負荷の存在下でコンピュータ・システムのいくつかの態様がどの程度速く行われるかを判定するものである。性能試験はまた、コンピュータ・システムの他の属性、例えば、コンピュータ・システムの拡張性、信頼性及びリソース使用量を確認し、検証する。重要なこととして、いくつかの状況においては、コンピュータ・システムの性能試験は、コンピュータ・システムが、エンド・ユーザによって指定されることが多い特定の性能基準を満たすことの証明を目的とする。他の状況においては、性能試験は、コンピュータ・システムの性能低下を引き起こしているコンピュータ・システムのセグメントを評価する。後者の状況においては、プロファイリング・ツールが、性能低下の最大の要因となっているコンピュータ・システムの部分を識別する。
【０００３】
作業負荷シミュレーションは、性能試験の必要不可欠な一部を形成するものである。作業負荷シミュレーションにおいては、コンピュータ・システムが動作する状況をシミュレートするために、異なる作業負荷が生成され、コンピュータ・システムに与えられる。シミュレーションの精度を保証するために、作業負荷シミュレーションは、静的に構築されることが多い。作業負荷シミュレーションのシナリオの構築を容易にするために、アプリケーションに対する予め規定された刺激のセットによるコンピュータ・アプリケーションの動作を記録することができる。その後、コンピュータ・アプリケーションの記録された動作を再生して、コンピュータ・アプリケーションの性能を評価することができる。注目すべき点は、作業負荷シミュレーションにおいて作業負荷の図形編集を使用できるようにするために、図形ツールが開発されてきたことである。
【０００４】
作業負荷シミュレーションは、分散型アプリケーション、特にシン・ウェブ・クライアントを含むウェブ・アプリケーションの性能試験にとって極めて有効であることが証明されてきた。しかしながら、リッチ・クライアントの復活により、今ではより複雑な作業負荷の処理が実質的に可能になり、従来の記録−再生（record-and-playback）方法を用いた作業負荷シミュレーションが複雑なものとなってきた。この点に関して、リッチ・クライアントは、多数の異なるタスクを同時に扱うことが可能であり、各々のタスクは、極めて多くの要求を順次生成することができる。タスクは、互いに無関係に実行することも、互いに協働して実行することもできる。タスクは、並列に実行することもできる。しかしながら、作業負荷シミュレーションの観点からみると、異なるタスクの要求は、発生元のタスクを考慮せずに単に互いに混合されているに過ぎない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、クライアントにおいて異なるタスクからの要求の混合を処理するために、クライアントにおいて次の要求が発生することが許可される前に、選択された要求を確実に満足するように、選択された要求を含むループが生成される。しかしながら、作業負荷シミュレーションの間にループを確立することは、要求の生成の順序を人工的に生成することである。当然のことながら、作業負荷シミュレーションの間にループを用いることによって、クライアントにおいてタスクが並列に実行されることが必然的に妨げられ、その結果、作業負荷シミュレーションの完全性が損なわれる。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、作業負荷シミュレーションに関する技術の欠点に対処するものであり、アプリケーション性能試験の並列作業負荷シミュレーションのための、新規且つ非自明な方法、システム及びコンピュータ・プログラムを提供する。本発明の一実施形態においては、アプリケーション性能試験の並列作業負荷シミュレーションのための方法が提供される。本発明は、ホスト・コンピュータの少なくとも１つのプロセッサによってメモリ内で実行されている作業負荷シミュレータにおいて、試験中のコンピュータ・アプリケーションの異なるタスクについての記録された作業負荷のリストを読み込むことを含む。本方法はまた、記録された作業負荷を共通タスクによって対応するブロックにグループ化することを含む。最後に、本方法は、共通ブロック内の作業負荷を共通ブロックにおける出現順に直列実行することを必要とするが、異なるブロック内の作業負荷の並列実行を可能にするように、グループ化された作業負荷から、試験中のコンピュータ・アプリケーションの性能をシミュレートするための負荷を生成することを含む。
【０００７】
実施形態の一態様においては、ブロック間で同期点を確立することができる。その後、負荷の生成の間に、同期点の後に現れるブロックの作業負荷の実行を許可する前に実行するために、同期点の前に現れるブロック内の全ての作業負荷を要求することができる。実施形態の別の態様においては、記録された作業負荷は、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求である。したがって、記録された作業負荷を共通タスクによって対応するブロックにグループ化することは、異なるタスクの各々について、ＨＴＴＰ要求間の対応する異なる文字列を識別することと、異なる文字列のうちの共通する文字列を共有するＨＴＴＰ要求の各々を１つの共通ブロック内に配置することとを含むことができる。さらに、以前に実行されたＨＴＴＰ要求からの結果に依存する各々のＨＴＴＰ要求を共通ブロック内に配置することができる。
【０００８】
本発明の別の実施形態においては、並列作業負荷シミュレーションのための性能試験データ処理システムを構成することができる。本システムは、メモリ及び少なくとも１つのプロセッサを有するホスト・コンピュータと、ホスト・コンピュータにおいて実行されるオペレーティング・システムとを含むことができる。本システムはまた、オペレーティング・システムによってホストされる作業負荷シミュレータを含むことができる。作業負荷シミュレータは、負荷レコーダ、負荷エディタ及び負荷ジェネレータの各々を含むことができる。最後に、負荷エディタには、ブロック識別モジュールを接続することができる。このモジュールは、作業負荷シミュレータにおいて試験中のコンピュータ・アプリケーションの異なるタスクについて負荷レコーダによって記録されたＨＴＴＰ要求などの作業負荷のリストを読み込むことと、前記記録された作業負荷を共通タスクによって対応するブロックにグループ化することとを可能にするプログラム・コードを含むことができる。
【０００９】
本発明のさらなる態様は、一部は以下の詳細な説明において示され、一部は詳細な説明から明らかとなるか、又は本発明の実施によって知ることができる。本発明の態様は、特許請求の範囲において特に挙げられた要素及び組み合わせによって実現され、達成される。上記の一般的な説明及び以下の詳細な説明はいずれも、単なる例示及び説明のためのものであり、本発明を限定するものではないことを理解されたい。
【図面の簡単な説明】
【００１０】
【図１】アプリケーション性能試験の並列作業負荷シミュレーションのための処理の説明図である。
【図２】並列作業負荷シミュレーションのために構成された性能試験データ処理システムの概略図である。
【図３】アプリケーション性能試験の並列作業負荷シミュレーションのための処理を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
この明細書に組み込まれ、この明細書の一部である添付の図面は、本発明の実施形態を説明するものであり、詳細な説明と共に本発明の原理を説明するのに役立つものである。ここで示される実施形態は、現時点で好ましいものであるが、本発明は、示される構成及び手段そのものに限定されないことを理解されたい。
【００１２】
本発明の実施形態は、アプリケーション性能試験のための並列作業負荷シミュレーションを提供する。本発明の実施形態によれば、異なるタスクについての異なる要求を作業負荷シミュレータに蓄積することができる。シングル・タスクに共通している要求は、受信された順にブロックにグループ化することができる。その後、負荷ジェネレータが、共通ブロック内の要求は共通ブロックによって予め規定された順に実行されるが、異なるブロックの要求は並列に実行されるように、異なるブロックの要求と一致する負荷を生成することができる。このようにして、単一のコンピュータ・デバイス内における異なるタスクからの要求の並列作業負荷シミュレーションの際に、異なるタスクからの要求の恣意的で人工的な順序付けを避けることができる。
【００１３】
さらに説明すると、図１は、アプリケーション性能試験の並列作業負荷シミュレーションのための処理を示す説明図である。図１に示されるように、性能試験システム１１０が、コンピュータ・アプリケーションにおいて並列に実行されている異なるタスクについての一連の作業負荷１３０を記録することができる。並列タスク・グループ化論理１２０が、作業負荷１３０を処理して、共通タスクについての作業負荷を並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃにグループ化することができる。さらに、並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃのうちの選択されたブロックは、共通コンテナ１６０にグループ化することができる。並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃの対応するブロック内では、各々のタスクについての作業負荷１３０が記録された順序を保持することができる。しかしながら、共通コンテナ１６０内では並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃのうちの選択されたブロックの順序付けは特に行われないが、多数の異なるコンテナ１６０の順序づけは保持することができる。注目すべきは、並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃの間に同期点１５０が設けられ、並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃのうち同期点１５０より前のブロック内のそれぞれのタスクについての作業負荷１３０の全てが確実に完了することである。
【００１４】
作業負荷１３０が並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃのそれぞれのブロックに自動的に並列グループ化された後で、負荷ジェネレータ１７０が、並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃにおける作業負荷１３０のグループ化に従って、コンピュータ・アプリケーションの性能をシミュレートするための負荷を性能試験システム１１０内に生成することができる。負荷の生成によって、並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃのうちの同じコンテナ１６０内の異なるブロックにおける異なるタスクの作業負荷１３０の並列実行を可能にしながら、並列ブロック１４０Ａ、１４０Ｂ、１４０Ｃ及びいずれかの同期点１５０の順序付け制約を強制することができる。
【００１５】
性能試験データ処理システム内に、図１に関連して説明された処理を実装することができる。さらに説明すると、図２は、並列作業負荷シミュレーションのために構成された性能試験データ処理システムの概略図である。システムは、メモリ２２０と少なくとも１つのプロセッサ２３０（説明を容易にするために単一のプロセッサのみが示されている）との両方を有するホスト・コンピュータ２１０を含むことができる。ホスト・コンピュータ２１０のメモリ内ではプロセッサ２３０の１つ又は複数によってオペレーティング・システム２４０を実行することができる。オペレーティング・システム２４０は、試験中のコンピュータ・アプリケーションが動作する条件をシミュレートするために、異なる作業負荷を生成し、生成された作業負荷を試験中のコンピュータ・アプリケーションに与えるように構成された作業負荷シミュレータ２５０の動作を、ホストすることができる。
【００１６】
そのために、作業負荷シミュレータ２５０には、負荷レコーダ２６０、負荷エディタ２７０及び負荷ジェネレータ２８０を接続することができる。負荷レコーダ２６０は、試験中のコンピュータ・アプリケーションの実行の間に、試験中のコンピュータ・アプリケーションによって作られた作業負荷を記録することができる。例えば、作業負荷は、ＳＯＡ環境におけるサービスの要求を含むことができる。従って、これらの要求は、固有のネットワーク・アドレスでアクセス可能なＳＯＡ環境における異なる遠隔実行サービスを処理するために、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求とすることができる。次に、負荷エディタ２７０は、負荷ジェネレータ２８０による処理のために、記録された負荷を閲覧し、編集し、格納することができるグラフィカル・ユーザ・インターフェース（ＧＵＩ）を提供することができる。負荷ジェネレータ２８０は、記録され編集された負荷の格納済みセットを処理して、試験中のコンピュータ・アプリケーションの性能をシミュレートするために試験中のコンピュータ・アプリケーションに与えられることになる負荷のセットを生成することができる。
【００１７】
注目すべきことは、負荷エディタ２７０にブロック識別モジュール３００を接続できることである。ブロック識別モジュール３００は、対応する並列ブロック内の共通タスクに従って、試験中のコンピュータ・アプリケーションの異なるタスクについて、記録されたＨＴＴＰ要求のような試験中のコンピュータ・アプリケーションの異なるタスクについての負荷をグループ化することを可能にするプログラム・コードを含むことができる。グループ化は、作業負荷の各々を他の作業負荷と比較して共通の要素を識別することによって、行うことができる。例えば、ＨＴＴＰ要求の場合には、同じタスクについての要求は、共通識別子のようなＨＴＴＰ要求の共通部分を共有することがある。必要に応じて、別の作業負荷に依存する作業負荷の各々を同じ並列ブロック内に一緒に配置することによって、付加的なグループ化を行うことができる。作業負荷が、対応するタスクのための並列ブロックにグループ化されると、グループ化された作業負荷は、負荷シミュレータ２５０における試験中のコンピュータ・アプリケーションのシミュレーションのための作業負荷を負荷ジェネレータ２８０が生成するのに使用できるように、負荷ジェネレータ２８０に渡すことができる。
【００１８】
さらにブロック識別モジュール３００の動作を説明すると、図３は、アプリケーション性能試験の並列作業負荷シミュレーションの処理を説明するフローチャートである。ブロック３１０で開始され、試験中のコンピュータ・アプリケーションの異なるタスクについての記録されたＨＴＴＰ要求のリストを読み込むことができ、ブロック３２０において、タスクのうちの異なるタスクに各々が対応する異なる文字列識別子を読み込むことができる。ブロック３３０においては、異なる文字列識別子のうち固有の識別子ごとに、並列ブロックを生成することができる。最後に、ブロック３４０において、各々の並列ブロックが同じ文字列識別子を共有する要求のみを含むように、対応する文字列識別子に従って、記録されたＨＴＴＰ要求を異なる並列ブロックにソートすることができる。
【００１９】
当業者であれば分かるように、本発明の態様は、システム、方法又はコンピュータ・プログラムとして具体化することができる。従って、本発明の態様は、全体がハードウェアの実施形態、（ファームウェア、常駐ソフトウェア、マイクロ・コードなどを含む）全体がソフトウェアの実施形態、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、本明細書においてはこれらの全てを一般に、「回路」、「モジュール」又は「システム」と呼ぶことできる。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み入れられた１つ又は複数のコンピュータ可読媒体内で具体化されたコンピュータ・プログラムの形を取ることができる。
【００２０】
１つ又は複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム、装置若しくはデバイス、又は上記のいずれかの適切な組合せとすることができるが、これらに限定されるものではない。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）として、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶デバイス、磁気記憶デバイス、又は上記のいずれかの適切な組合せが挙げられる。本明細書の文脈では、コンピュータ可読ストレージ媒体とは、命令実行システム、装置又はデバイスによって又はこれらと関連して用いるためのプログラムを収容し又は格納することができるいずれかの有形媒体である。
【００２１】
コンピュータ可読信号媒体は、例えばベースバンド又は搬送波の一部にコンピュータ可読プログラム・コードを組み入れた搬送データ信号を含むことができる。こうした搬送データ信号は、電磁気、光、又はこれらのいずれかの適切な組合せを含むがこれらに限定されない、種々の形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置又はデバイスによって又はこれらと関連して用いるためのプログラムを通信し、伝搬し、又は転送することができる、いずれかのコンピュータ可読媒体とすることができる。
【００２２】
コンピュータ可読媒体に組み入れられたプログラム・コードは、無線、有線、光ファイバ・ケーブル、無線周波数など、又はこれらのいずれかの適切な組合せを含むがこれらに限定されない、いずれかの適切な媒体を用いて伝送することができる。本発明の態様についての動作を実行するためのコンピュータ・プログラム・コードは、オブジェクト指向型プログラミング言語及び従来の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語のいずれかの組合せで記述することができる。プログラム・コードは、全体をユーザのコンピュータ上で実行するか、スタンドアロン型のソフトウェア・パッケージとして部分的にユーザのコンピュータ上で実行するか、一部をユーザのコンピュータ上で実行し、一部を遠隔コンピュータ上で実行するか、又は、全体を遠隔コンピュータ若しくはサーバ上で実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域エリア・ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続することができ、又は（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）外部コンピュータに接続することもできる。
【００２３】
本発明の態様は、本発明の実施形態による方法、装置（システム）、及びコンピュータ・プログラムのフローチャート図及び／又はブロック図を参照して、上述された。この点について、図面におけるフローチャート及び／又はブロック図は、本発明の様々な実施形態による、システム、方法及びコンピュータ・プログラムの可能な実装形態のアーキテクチャ、機能及び動作を示すものである。例えば、フローチャート又はブロック図における各々のブロックは、モジュール、セグメント又はコードの一部を表すことができ、これらは、１つ又は複数の指定された論理機能を実装するための１つ又は複数の実行可能命令を含む。幾つかの代替的な実装形態においては、ブロックに記された機能が図面に記された順序通りに行われない場合があることにも留意されたい。例えば、連続して示された２つのブロックが、実際には実質的に同時に実行されることがあり、これらのブロックが、関与する機能に応じて、ときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図における各々のブロック、並びにブロック図及び／又はフローチャート図におけるブロックの組合せは、指定された機能若しくは動作を行う専用ハードウェア・ベースのシステム又は専用のハードウェアとコンピュータ命令との組合せによって実装できることにも留意されたい。
【００２４】
フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図におけるブロックの組合せは、コンピュータ・プログラム命令によって実装できることが理解されよう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを生産し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための手段を生成するようにすることができる。
【００２５】
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納して、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装する命令を含む製品を製造するようにすることもできる。コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスにロードし、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で一連の動作ステップを行わせてコンピュータ実装処理を生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実装するための処理を提供するようすることもできる。
【００２６】
最後に、本明細書で用いられる用語は、特定の実施形態を説明する目的のためのものに過ぎず、本発明を限定することを意図するものではない。本明細書で用いられるとき、単数形「１つの（ａ）」、「１つの（ａｎ）」及び「その（ｔｈｅ）」は、そうでないことが示されていない限り、複数形も含むことが意図されている。本明細書で用いられるとき、「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」という用語は、提示された特徴、整数、ステップ、動作、要素、及び／又はコンポーネントの存在を特定するものであるが、１つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント、及び／又はそれらのグループの存在又は追加を排除するものではないことをさらに理解されたい。
【００２７】
特許請求の範囲における全ての「手段又はステップと機能との組合せ（ミーンズ又はステップ・プラス・ファンクション）」要素の対応する構造、材料、行為及び均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料又は行為をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかである。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に適したものとして理解することを可能にするために、選択及び記載された。
【００２８】
本出願の発明を、詳細に、本発明の実施形態を参照することによって説明してきたが、特許請求の範囲において定められる本発明の範囲から逸脱することのない変更及び変形が可能であることが明らかであろう。
【図１】
0006045134.tif 000002
【図２】
0006045134.tif 000003
【図３】
0006045134.tif 000004