イリーガルパターンとターゲットメソッドを有するコンピュータプログラムとをプロセッサによって受け取るステップであって、前記ターゲットメソッドは1つ又は複数個のリターンステートメント及び複数個の基本ブロックを有する、ステップと、前記イリーガルパターンに関連する前記ターゲットメソッドの各リターンステートメントが一定のブール値を返送するように、前記ターゲットメソッドを前記プロセッサによって正規化するステップと、1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように、正規化されたターゲットメソッドの1つ又は複数個の対応するパスに対する第1のパス条件を前記プロセッサによって決定するステップと、単項2階ロジックM2L技法を使って前記第1のパス条件の不充足可能性を前記プロセッサによって決定するステップと、前記第1のパス条件の不充足可能性が偽である場合、前記ターゲットメソッドが有益なバリデータではないということを前記プロセッサによって報告するステップと、を含む方法。バリデータは、入力ストリングが前記コンピュータプログラムにおけるセキュリティセンシティブなオペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項1に記載の方法。前記第1のパス条件の不充足可能性が真である場合、前記ターゲットメソッドが有益なバリデータであるということを前記プロセッサによって報告するステップを更に含む、請求項1に記載の方法。前記1つ又は複数個の対応する基本ブロックが偽の一定のブール値を返送するように、前記正規化されたターゲットメソッドの1つ又は複数個の対応するパスに対する第2のパス条件を前記プロセッサによって決定するステップと、前記M2L技法を使って前記第2のパス条件の不充足可能性を前記プロセッサによって決定するステップと、を更に含む、請求項1に記載の方法。前記第2のパス条件の不充足可能性が偽である場合、前記ターゲットメソッドが無益なバリデータでないということを前記プロセッサによって報告するステップを更に含む、請求項4に記載の方法。前記第2のパス条件の不充足可能性が真である場合、前記ターゲットメソッドが無益なバリデータであるということを前記プロセッサによって報告するステップを更に含む、請求項5に記載の方法。前記第1のパス条件の不充足可能性を決定するステップは、前記1つ又は複数個の対応するパスにおける変数に対して可能なストリングのセットを決定するステップであって、前記変数は前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑制され、前記ターゲットメソッドの入力パラメータは前記イリーガルパターンにマッチするストリングであると仮定される、ステップを含む、請求項1に記載の方法。前記第1のパス条件の不充足可能性を決定するステップは、前記1つ又は複数個のパス条件を使って前記変数を抑制するステップを更に含む、請求項7に記載の方法。前記第1のパス条件の不充足可能性を決定するステップは、抑制された変数及び前記変数に対する決定された可能なストリングのセットに対応するM2L式を使って前記第1のパス条件の不充足可能性を決定するステップを更に含む、請求項8に記載の方法。コンピュータ可読記憶媒体に格納され、プロセッサによって実行されることにより1つの方法を遂行するコンピュータプログラムであって、前記方法は、イリーガルパターンとターゲットメソッドを有するターゲットコンピュータプログラムとを受け取るステップであって、前記ターゲットメソッドは複数個の基本ブロックを有する、ステップと、前記イリーガルパターンに関連する前記ターゲットメソッドの各リターンステートメントが一定のブール値を返送するように、前記ターゲットメソッドを正規化するステップと、正規化された前記ターゲットメソッドの1つ又は複数個の対応する第1のパス条件及び第2のパス条件を、1つ又は複数個の対応する基本ブロックが前記第1のパス条件に対して真の一定のブール値を返送するように及び前記第2のパス条件に対して偽の一定のブール値を返送するように、決定するステップと、単項2階ロジックM2L技法を使って前記第1のパス条件の不充足可能性及び前記第2のパス条件の不充足可能性を決定するステップと、前記第1のパス条件の不充足可能性が偽である場合、前記ターゲットメソッドが有益なバリデータではないということを報告するステップと、前記第1のパス条件の不充足可能性が真である場合、前記ターゲットメソッドが有益なバリデータであるということを報告するステップと、前記第2のパス条件の不充足可能性が偽である場合、前記ターゲットメソッドが無益なバリデータでないということを報告するステップと、前記第2のパス条件の不充足可能性が真である場合、前記ターゲットメソッドが無益なバリデータであるということを報告するステップと、を含む、コンピュータプログラム。前記バリデータは、入力ストリングが前記コンピュータプログラムにおけるセキュリティセンシティブなオペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項10に記載のコンピュータプログラム。前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、前記1つ又は複数個の対応するパスにおける変数に対して可能なストリングのセットを決定するステップであって、前記変数は前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑制され、前記ターゲットメソッドの入力パラメータは前記イリーガルパターンにマッチするストリングであると仮定される、ステップを含む、請求項10に記載のコンピュータプログラム。前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、前記パス条件を使って前記変数を抑制するステップを更に含む、請求項12に記載のコンピュータプログラム。前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、抑制された変数及び前記変数に対する決定された可能なストリングのセットに対応するパス条件の不充足可能性を、M2L式を使って決定するステップを更に含む、請求項13に記載のコンピュータプログラム。プロセッサと、イリーガルパターンと、複数個の基本ブロックを有するターゲットメソッドを持ったターゲットコンピュータプログラムとを格納するコンピュータ可読データ記憶装置と、少なくともハードウェアによって具現化されたバリデータ決定コンポーネントであって、a前記イリーガルパターンに関連するターゲットメソッドの各リターンステートメントが一定のブール値を返送するように、前記ターゲットメソッドを正規化し、b1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように、正規化されたターゲットメソッドの1つ又は複数個の対応するパスに対して第1のパス条件を決定し、c単項2階ロジックM2L技法を使って前記第1のパス条件の不充足可能性を決定し、d前記第1のパス条件の不充足可能性が偽である場合、前記ターゲットメソッドが有益なバリデータでないということを報告する、バリデータ決定コンポーネントと、を含むシステム。前記バリデータは、入力ストリングが前記コンピュータプログラムにおけるセキュリティセンシティブオペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項15に記載のシステム。前記バリデータ決定コンポーネントは、前記第1のパス条件の不充足可能性が真である場合、前記ターゲットメソッドが有益なバリデータであるということを報告するものである、請求項15に記載のシステム。前記バリデータ決定コンポーネントは、前記1つ又は複数個の対応するパスにおける変数に対する可能なストリングのセットを決定することによって前記第1のパス条件の不充足可能性を決定するものであり、前記変数は前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑止され、前記ターゲットメソッドの入力パラメータは前記イリーガルパターンにマッチするストリングであると仮定される、請求項15に記載のシステム。前記バリデータ決定コンポーネントは、前記第1パス条件を使って前記変数を抑制することによって前記第1のパス条件の不充足可能性を決定するものである、請求項18に記載のシステム。前記バリデータ決定コンポーネントは、抑制された変数及び前記変数に対する決定された可能なストリングのセットに対応するM2L式を使って前記第1のパス条件の不充足可能性を決定することにより、前記パス条件の不充足可能性を決定するものである、請求項19に記載のシステム。従って、バリデータ及びサニタイザは、ウェブアプリケーションおよびそれの基礎となるデータのセキュリティを危険に曝すことによりウェブアプリケーションを誤って遂行させるような悪質な入力ストリングにそのウェブアプリケーションが曝されないことを保証するために使用される。本発明の実施例の方法は、或るイリーガルパターン不正なパターンを受け取るプロセッサ及びターゲットメソッドを有するコンピュータプログラムを含む。ターゲットメソッドは、多くの基本ブロック及び1つ又は複数個のリターンステートメントを有する。ターゲットメソッドは、イリーガルパターンに関係のあるそのターゲットメソッドの各リターンステートメントが一定のブール値を返送するようにプロセッサにより正規化される。1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように、その正規化されたターゲットメソッドの1つ又は複数個の対応するパスに対する第1のパス条件がプロセッサによって決定される。第1のパス条件の不充足可能性unsatisfiabilityが、単項2階ロジックM2L技法を使ってプロセッサにより決定される。第1のパス条件の不充足可能性が真である場合、プロセッサは、ターゲットメソッドが有益なバリデータであるということを報告する。第1のパス条件の不充足可能性が偽である場合、プロセッサは、ターゲットメソッドが有益なpositiveバリデータではないということを報告する。本発明の実施例のコンピュータ可読データ非一時的記憶媒体は、その上にコンピュータプログラムを格納される。プロセッサによるコンピュータプログラムの実行は1つのメソッドを遂行させる。そのメソッドは、ターゲットメソッドが1つのイリーガルパターンとターゲットメソッドを有するターゲットコンピュータプログラムとを受け取るステップを含む。ターゲットメソッドは、1つ又は複数個のリターンステートメント及び多くの基本ブロックを有する。ターゲットメソッドは、イリーガルパターンに関連するそのターゲットメソッドの各リターンステートメントが一定のブール値を返送するように正規化される。1つ又は複数個の対応する基本ブロックが第1のパス条件にとっては真である一定のブール値を返送し、第2のパス条件にとっては偽である一定のブール値を返送するというような、その正規化されたターゲットメソッドの1つ又は複数個の対応するパスに対する第1のパス条件及び第2のパス条件が決定される。第1のパス条件の不充足可能性及び第2のパス条件の不充足可能性は、単項2階ロジックM2L技法を使用して決定される。第1のパス条件の不充足可能性が偽である場合、ターゲットメソッドは有益なバリデータではないとして報告される。第1のパス条件の不充足可能性が真である場合、ターゲットメソッドは有益なバリデータとして報告される。第2のパス条件の不充足可能性が偽である場合、ターゲットメソッドは無益なnegativeバリデータではないとして報告される。第2のパス条件の不充足可能性が真である場合、ターゲットメソッドは無益なバリデータとして報告される。本発明の実施例のシステムは、プロセッサ、コンピュータ可読データ記憶媒体、及びバリデータ決定コンポーネントを含む。コンピュータ可読データ記憶媒体は、イリーガルパターンと、ターゲットメソッドを有するターゲットコンピュータプログラムとを格納する。ターゲットメソッドは多くの基本ブロックを有する。バリデータ決定コンポーネントは、少なくともハードウェアによって具現化される。コンポーネントは、イリーガルパターンに関連するターゲットメソッドの各リターンステートメントが一定のブール値を返送するように、そのターゲットメソッドを正規化するためのものである。コンポーネントは、1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するような、その正規化されたターゲットメソッドの1つ又は複数個の対応するパスに対する第1のパス条件を決定するためのものである。コンポーネントは、単項2階ロジックM2L技法を使用して、第1のパス条件の不充足可能性を決定するためのものであり、第1のパス条件の不充足可能性が真である場合、ターゲットメソッドは有益なバリデータである。本発明の実施例に関する以下の詳細な説明では、添付図面を参照して、本発明を実施し得る特定の実施例が一例として示される。これらの実施例は、当業者が本発明を実行することを可能にするために十分詳細に説明される。本発明の主旨及び技法的範囲から逸脱することなく、他の実施例を利用することが可能であり、論理的、機械的、及び他の変更を施すことも可能である。従って、以下の詳細な説明の記述は限定的な意味に解釈されるべきではなく、本発明の実施例の範囲は請求項の記述によってのみ定義される。背景技術の項において述べたように、バリデータは、バリデータは、入力ストリングがセキュリティセンシティブなオペレーションにおいて安全に使用され得るかどうかを確認するコンピュータプログラムのメソッドである。簡単なバリデータの一例は、例えば、Validというコンピュータプログラムである。このコンピュータプログラムは、入力ストリングsが文字を含むか否かを判断する。それが肯定される場合、入力ストリングは、セキュリティセンシティブなオペレーションの範囲内では安全に使用され得ない。バリデータがその機能を正確に遂行するためには、バリデータが正確に且つ適切に機能を遂行するということを決定するために、そのバリデータ自体が確認されなければならない。正しくない簡単なバリデータの一例は、例えば、publicstaticBooleanisValidcontainsというコンピュータプログラムである。このコンピュータプログラムは、入力ストリングsの一部分が文字<を含むか否かをまさに判断する。そのコンピュータプログラムはストリングs全体をチェックするのではないので、そのコンピュータプログラムはその機能を適切に遂行するものではない。バリデータが有益なバリデータ及び/又は無益なバリデータであり得るということに留意されたい。バリデータが有益なバリデータおよび無益なバリデータの両方である場合、そのバリデータは、完全なバリデータ又は単にバリデータと呼ばれ得る。有益なバリデータは、入力ストリングが不正文字を含むときには常に真のブール値を返送しないバリデータである。無益なバリデータは、入力ストリングが不正文字を含むときには常に偽のブール値を返送しないバリデータである。バリデータは、厳密には、それが有益なバリデータ、無益なバリデータ、又は、有益なバリデータ及び無益なバリデータの両方即ち、完全なバリデータであるかどうかに関して検証され得る。既存のストリング検証技法は、バリデータの検証に十分には適していない。それに比べて、本明細書にはバリデータを検証するための方策が示される。特に、図1は、本発明の実施例に従って、ターゲットコンピュータプログラムのターゲットメソッドがバリデータであるかどうかを判断するための方法100を示す。その方法100は、非一時的なコンピュータ可読データ記憶媒体に格納されたコンピュータプログラムとして具現化することが可能である。コンピューティング装置のプロセッサのようなプロセッサによるそのコンピュータプログラムの実行は、方法100が遂行されるという結果に帰着する。このコンピュータプログラムと、方法100を遂行するコンピュータプログラムに関連するターゲットコンピュータプログラムとを混同してはならない。同様に、方法100と、その方法を遂行するメソッドに関連するターゲットメソッドとを混同してはならない。イリーガルパターンと、ターゲットメソッドを有するターゲットコンピュータプログラムとが受け取られるステップ102。イリーガルパターンは、ターゲットコンピュータプログラムのターゲットメソッドが1つのパターンに関連したバリデータであることに関してテストされる、そのパターンである。例えば、ターゲットメソッドは、ストリング<が入力ストリング内にあるか否かを検証するためのものである場合、そのストリング<は、このターゲットメソッドがテストされるパターンに関連したイリーガルパターンである。ターゲットメソッドは1つ又は複数個のリターンステートメントを有する。リターンステートメントは、入力ストリングがイリーガルパターンを含んでいるか否かを返送する、そのターゲットメソッド内の1つの又は一連の命令である。ターゲットメソッド内には2つ以上のリターンステートメントがあってもよい。ターゲットメソッドは、更に、多くの基本ブロックを有する。基本ブロックは、単に、ターゲットメソッドのリターンステートメントに通じる1つ又は一連の命令である。ターゲットメソッドは、イリーガルパターンに関連する各リターンステートメントが一定のブール値を返送するために正規化されるステップ104。一定のブール値は真または偽である。そのようなブール値は、イリーガルパターンを含む入力ストリングに対してリターンステートメントが常に真を返送する又は、常に偽を返送するという点で一定であると言える。ターゲットメソッド内のリターンステートメントは、本来、一定のブール値以外の値を返送し得る。従って、ターゲットメソッドを正規化することは、イリーガルパターンに関連する各リターンステートメントが代わりに真又は偽を返送するよう、ターゲットメソッドを修正することを意味する。ターゲットメソッド正規化されたの1つ又は複数個の対応するパスに関する第1のパス条件は、その第1のパス条件の1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように決定されるステップ106。パス条件は、2つのパスのうちのどちらのパスがフォローされるべきかを決定するために評価される、ターゲットメソッド内のステートメントである。例えば、パス条件は、IF/THEN/ELSEシリーズの命令の一部分であってもよい。パス条件の1つ又は複数個の対応する基本ブロックは、ターゲットメソッド内のパス条件を評価する1つの命令又は一連の命令である。第1のパス条件の不充足可能性は、単項2階ロジックM2L技法を使って決定されるステップ108。第1のパス条件の不充足可能性は、第1のパス条件が、イリーガルパターンを含む入力ストリングに関して真のその一定のブール値を常に返送するかどうかを判断する。第1のパス条件の不充足可能性が偽である場合、これは、第1のパス条件が、イリーガルパターンを含む入力ストリングに関して真の、その関連する一定のブール値を必ずしも返送するとは限らないということを意味する。それに比べて、この不充足可能性が真である場合、これは、第1のパス条件が、イリーガルパターンを含む入力ストリングに関して真の、その関連する一定のブール値を返送しないということを意味する。第1のパス条件の不充足可能性が偽である場合、ターゲットメソッドが有益なバリデータ即ち、真の関連する一定のブール値に対するバリデータではあり得ないということがわかり、方法100は、ターゲットメソッドが有益なバリデータではないということを報告するステップ110。これに比べて、第1のパス条件の不充足可能性が真である場合、ターゲットメソッドが有益なバリデータであるということがわかり、方法100は、ターゲットメソッドが有益なバリデータであるということを報告するステップ112。同様に、ターゲットメソッドが有益なバリデータであるか否かは、方法100では、これまでのところ第1のパス条件の不充足可能性に基づいて評価され、報告されていた。ステップ110及び112の報告は、グラフィカルユーザインターフェースGUI上に表示されたメッセージ、電子メールのような電子メッセージ等のごとき1つ又は複数個の様々な形式を取り得る。次に、ターゲットメソッド正規化されたの同じ1つまたは複数個のパスに対する第2のパス条件が決定され、従って、同じ1つ又は複数個の対応する基本ブロックが偽の一定のブール値を返送するステップ114。第2のパス条件は、第1のパス条件に対する結果として生じるパス条件である。第1のパス条件は真の一定のブール値を返送するが、それに対応して第2のパス条件は偽の一定のブール値を返送する。第2のパス条件の不充足可能性も、M2L技法を使用して決定されるステップ116。第2のパス条件の不充足可能性は、第2のパス条件が、イリーガルパターンを含む入力ストリングに関する偽の、その一定のブール値を常に返送するかどうかを判断する。第2のパス条件の不充足可能性が偽である場合、これは、第2のパス条件が、イリーガルパターンを含む入力ストリングに関して偽の、その関連する一定のブール値を必ずしも常に返送するとは限らないということを意味する。これに比べて、この不充足可能性が真である場合、これは、第2のパス条件が、イリーガルパターンを含む入力ストリングに関して偽のその関連する一定のブール値を返送しない、ということを意味する。第2のパス条件の不充足可能性が偽である場合、ターゲットメソッドは無益なバリデータ即ち、偽の関連するブール値に対するバリデータではあり得ないということがわかり、方法100は、ターゲットメソッドが無益なバリデータではないということを報告するステップ118。これに比べて、第2のパス条件の不充足可能性が真である場合、ターゲットメソッドが無益なバリデータであることがわかり、方法100は、ターゲットメソッドが無益なバリデータであるということを報告するステップ120。同様に、ターゲットメソッドがバリデータであるか否かは、第2のパス条件の不充足可能性に基づいて、評価及び報告されている。ステップ118及び120の報告も、GUI上に表示されたメッセージ、電子メールのような電子メッセージ等のごとき1つ又は複数個の様々な形式を取り得る。図2は、本発明の実施例に従ってパス条件の不充足可能性を決定する方法200を示す。その方法200は、方法100のステップ108及び116を具現化するために使用することが可能である。パス条件の1つ又は複数個の対応するパスにおける変数に関して1セットの可能なストリングが決定されるステップ202。その変数は、1つ又は複数個の対応するパスにおけるブランチ条件によって抑制される。ターゲットメソッドの入力パラメータは、前述のように、イリーガルパターンと一致するストリングであると仮定される。ブランチ条件は、1つ又は複数個の対応するパスが後続することを指示する。そのため、そのストリングのセットは、1つ又は複数個の対応するパスが後続することを指示するブランチ条件をその変数が受け入れそして実現し得るストリングの全部とはいえなくても多数を含む。変数は、パス条件自体によって更に抑制されるステップ204。例えば、パス条件自体がブランチ条件よりももっと特殊な制約を有する場合、変数はこれらの制約によって更に抑制される。結局、パス条件の不充足可能性は、抑制された変数及びこの変数に対して決定された可能なストリングのセットに対応するM2L式を使用して決定されるステップ206。方法200のM2L技法ベースの提案は、下記の2つの米国特許出願に記述された一般的な提案に従って具現化することが可能である。第1の特許出願は、2010年6月29日に申請され、米国特許出願12825610を割り当てられたストリングの有効性を決定するためのシステム、方法、及びプログラムSystemmethodandprogramfordeterminingvalidityofstringと題するものである。第2の特許出願は、2010年10月19日に申請され、米国特許出願番号12907974を割り当てられたコンピュータプログラムのモジュラ及び/又は需要主導型ストリング分析Modularandordemanddrivenstringanalysisofacomputerprogramと題するものである。これらの特許出願の両方とも、方法200を具現化するために使用することができるM2Lベースの近似方法を開示している。しかし、どちらの特許出願も、バリデータの検証に関連して不充足可能性を決定することを開示していない。図3のA乃至Eは、原始的バリデータに関連して方法100及び200の例示的な動作を示す。図3のAは、本発明の実施例に従って、ターゲットコンピュータプログラムのターゲットメソッドを示す。方法100は、図3のAのターゲットメソッドが適切なバリデータであるか否かを、方法200を使って決定するためのものである。そのため、方法100は、それのステップ102において図3のAのターゲットメソッドを受け取る。図3のBは、本発明の実施例に従って、方法100のステップ104の正規化が行われた後の図3のAのターゲットメソッドを示す。図3のCは、方法100のステップ106のパス条件の決定が行われた後の図3のBの正規化されたターゲットメソッドを示す。図3のDは、方法200のステップ202が行なわれた後の図3のCの正規化されたターゲットメソッドを示す。図3のEは、方法200のステップ204が行なわれた後の図3のDの正規化されたターゲットメソッドを示す。そのため、方法200のステップ206は、図3のEに示されたターゲットメソッドに関連して行われ得る。要するに、図4は、本発明の実施例に従って代表的なシステム400を示す。システム400は、デスクトップコンピュータのような1つ又は複数個のコンピューティング装置において具現化することが可能である。システム400は、プロセッサ402、コンピュータ可読データ記憶媒体404、及びバリデータ決定コンポーネント406を含む。コンピュータ可読データ記憶媒体404はイリーガルパターン408及びターゲットコンピュータプログラム410を格納し、ターゲットコンピュータプログラム410はターゲットメソッド412を有し、ターゲットメソッド412自体は多くの基本ブロック414を有する。バリデータ決定コンポーネント406は、プロセッサ402を使用して具現化される。例えば、1つの実施例では、コンポーネント406は、媒体404のようなコンピュータ可読データ記憶媒体又は別のコンピュータ可読データ記憶媒体404上に格納された1つ又は複数個のコンピュータプログラムであってもよい。従って、プロセッサ402によるこれらのコンピュータプログラムの実行は、その結果として、コンポーネント406の機能が実現されることになる。バリデータ決定コンポーネント406は、特にターゲットメソッド412がイリーガルパターン408に関連したバリデータであるかどうかを判断するために、ターゲットメソッド412に関連して方法100及び200を遂行する。当業者には明らかなように、本発明の態様は、システム、メソッド、又はコンピュータプログラムとして具現化され得る。従って、本発明の実施例の態様は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例ファームウェア、駐在ソフトウェア、マイクロコード等を含む、又は、一般に回路、モジュール、又はシステムと呼ばれるソフトウェア及びハードウェア態様を結合した実施例の形式を取り得る。更に、本発明の態様は、コンピュータ可読プログラムコードを組み込まれた1つ又は複数個のコンピュータ可読媒体において具現化されるコンピュータプログラムの形式を取り得る。1つ又は複数個のコンピュータ可読媒体の任意の組み合わせを利用することも可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であってもよい。例えば、コンピュータ可読記憶媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線、又は半導体システム、装置、もしくはデバイス、或いは上記のものの任意の適切な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体の更なる特殊な例限定的なリストは、下記の装置、即ち、1つ又は複数個のワイヤを有する電気的接続体、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリーRAM、読取り専用メモリROM、消去可能プログラマブル読取り専用メモリEPROM又はフラッシュメモリ、光ファイバ、ポータブルコンパクトディスク読取り専用メモリCD-ROM、光学的記憶装置置、磁気的記憶装置、又はこれらの装置の任意の適切な組み合わせを含む。本明細書との関連では、コンピュータ可読記憶媒体は、命令実行システム、装置、又はデバイスによる使用、或いはそれに関連した使用のために、プログラムを内蔵又は格納することができる任意の実体的な媒体であってもよい。コンピュータ可読信号媒体は、例えば、搬送波のベースバンドにおいて、又はそれの一部として、そこに組み込まれたコンピュータ可読プログラムコードと共に、伝播されたデータ信号を含み得る。そのような伝播された信号は、電磁気的、光学的、又はそれらの任意の適切な組み合わせを含むが、それに限定されない任意の種々の形式を取り得る。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、命令実行システム、装置、又はデバイスによる使用或いはそのシステム等に関連する使用のためにプログラムを伝送、伝播、又は搬送することができる、任意のコンピュータ可読媒体であってもよい。コンピュータ可読媒体上に具現化されたプログラムコードは、無線、有線、光ファイバケーブル、RF等、又は前述のものの任意の適切な組み合わせを含むが、それらに限定されない任意の適切な媒体を使って送信され得る。一般に、コンピュータプログラムは、1つ又は複数個のコンピュータプログラムが格納されるコンピュータ可読媒体に格納される。1つ又は複数個のハードウェア装置における1つ又は複数個のプロセッサによるコンピュータ可読媒体からのコンピュータプログラムの実行は、1つのメソッドを遂行させる。例えば、遂行されるべきメソッドは、上述のメソッドのうちの1つ又は複数個であってもよい。コンピュータプログラム自体はコンピュータプログラムコードを含む。本発明の実施態様に関するオペレーションを実行するためのコンピュータプログラムコードは、Java、Smalltalk、C等ようなオブジェクト指向プログラミング言語、及び、Cプログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む1つ又は複数個のプログラミング言語の任意の組み合わせで書かれてもよい。プログラムコードは、ユーザのコンピュータ上で全体的に実行されたり、ユーザのコンピュータ上で部分的に実行されたり、独立型ソフトウェアパッケージとしてユーザのコンピュータ上で部分的に又はリモートコンピュータ上で部分的に実行されたり、或いはリモートコンピュータまたはサーバ上で全体的に実行されたりし得る。後者の場合、リモートコンピュータは、ローカルエリアネットワークLAN又は広域ネットワークWANを含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、或いは、例えば、インターネットサービスプロバイダを利用してインターネットを介して外部コンピュータへの接続が行われてもよい。本発明の実施例に従って、本発明の態様が、方法、装置システム、およびコンピュータプログラムのフローチャート及び/又はブロック図を参照して説明された。そのフローチャート及び/又はブロック図の各ブロック、並びにフローチャート及び/又はブロック図におけるブロックの組み合わせがコンピュータプログラム命令によって具現化され得るということは当然である。これらのコンピュータプログラム命令は、汎用コンピュータ、特殊目的コンピュータ、又は、マシンを製造するための他のプログラマブルデータ処理装置のプロセッサに提供され得る。従って、そのコンピュータ又は他のプログラマブルデータ処理装置のプロセッサによって実行される命令は、そのフローチャート、ブロック図において指定された機能/行為を具現化するための手段を創出し得る。コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスを指示するコンピュータプログラム命令はコンピュータ可読媒体に格納され、そのコンピュータ可読媒体に格納された命令は、フローチャート及び/又はブロック図において指定された機能/行為を具現化する命令を含む製品を作り出すというように特定の態様で機能し得る。コンピュータプログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上にもロードされ、そのコンピュータ、他のプログラマブル装置、又は他のデバイスにおいて実行される命令が、フローチャート及び/又はブロック図のブロックにおいて指定された機能/行為を具現化するためのプロセスを提供するよう、コンピュータ活用のプロセスを生じさせるためにそのコンピュータ、他のプログラマブル装置、又は他のデバイスにおいて一連の動作ステップを遂行させる。添付図面におけるフローチャート及びブロック図は、本発明の様々な実施例に従って、システム、方法、及びコンピュータプログラムの可能な実施態様のアーキテクチャ、機能、及びオペレーションを示す。この点に関して、フローチャート又はブロック図における各ブロックは、指定された論理的機能を具現化するための1つ又は複数個の実行可能な命令を含むコードのモジュール、セグメント、又は部分を表わし得る。或る代替の実施態様では、ブロックに記された機能が図面に記された順序から外れて生じ得るということに留意されたい。例えば、連続して示された2つのブロックが実際には実質的に同時に実行されることもあり、或いは、時には、それらのブロックが関連の機能に依存して逆の順序で実行されることもある。更に、ブロック図及び/又はフローチャートの各ブロック、並びにブロック図及び/又はフローチャートのブロックの結合が、指定の機能又は行為を遂行する特別目的のハードウェアベースのシステムによって、又は特別目的のハードウェア及びコンピュータ命令の組み合わせによって具現化されることも可能である、ということにも留意されたい。結局、特定の実施例が本明細書において図示され、説明されたが、同じ目的を達成すると判断される任意の構成がその示された特定の実施例に代わって置き換え可能であるということは当業者には明らかであろう。従って、本願は、本発明の実施例の如何なるアダプテーションまたは変更もカバーすることを意図される。従って、本発明が特許請求の範囲の記載およびそれにおける均等物によってのみ限定されるということは当然である。