(57)【特許請求の範囲】
【請求項１】
機械によって生成されたログを分析する方法であって、
ログを分析し、ログのトークン化のためのデリミタを表す１つまたは複数の抽象的なランドマークデリミタ（ＡＬＤ）を識別し、
前記ログおよびＡＬＤから、前記ログをトークン化し、前記ＡＬＤで前記パターンを分離して中間のトークン化されたログを形成することによって次第にトークン化されたフォーマットを生成し、
最後の中間のトークン化されたログが最終的なトークン化されたログとして処理されるまで、前記ログのトークン化を反復して繰り返し、
アプリケーションに前記トークン化されたログを適用する、方法。
【請求項２】
それぞれのトークンを抽象的な表現に変換することを含む、請求項１に記載の方法。
【請求項３】
１つまたは複数の隣接するアルファベットは１文字のアルファベット「Ａ」に置換し、１つまたは複数の隣接する数は１文字のアルファベット「Ｄ」に置換する、請求項２に記載の方法。
【請求項４】
アルファベットおよびディジット以外の特殊文字が使用され、隣接する文字が単一の文字に変換される、請求項２に記載の方法。
【請求項５】
抽象的な形式のトークンの頻度を決定することを含み、それぞれの変換されたトークンに対して、どれだけのラインが前記トークンを含んでいるかを追跡する、請求項１に記載の方法。
【請求項６】
前記ＡＬＤの候補を選択することを含む、請求項５に記載の方法。
【請求項７】
データ品質に応じて、特定の条件に関するポリシをＡＬＤの選択に可変的に適用することを含む、請求項５に記載の方法。
【請求項８】
単語のパターンが１ライン毎に現れる場合、前記単語のパターンが候補として選択される、請求項５に記載の方法。
【請求項９】
コンスタントのパターンを決定することを含み、前記ＡＬＤが空でないとき、それぞれのログは、前記ＡＬＤを使用することによって、トークン化され、別のログに変換される、請求項１に記載の方法。
【請求項１０】
異なる３つの分析でＡＬＤを生成し、特殊文字のＡＬＤ、単語のＡＬＤ、およびコンスタントのＡＬＤの３つの結果のセットを生成することを含む、請求項１に記載の方法。
【請求項１１】
ログを取り扱うシステムであって、
プロセッサと、
前記ログを分析し、ログのトークン化のためのデリミタを表す１つまたは複数の抽象的なランドマークデリミタ（ＡＬＤ）を識別し、
前記ログおよびＡＬＤから、前記ログをトークン化し、前記ＡＬＤで前記パターンを分離して中間のトークン化されたログを形成することによって次第にトークン化されたフォーマットを生成し、
最後の中間のトークン化されたログが最終的なトークン化されたログとして処理されるまで、前記ログのトークン化を反復して繰り返し、
アプリケーションに前記トークン化されたログを適用する
コードで前記ログを処理するモジュールと、
を含む、システム。
【請求項１２】
それぞれのトークンを抽象的な表現に変換するコードを含む、請求項１１に記載のシステム。
【請求項１３】
１つまたは複数の隣接するアルファベットは１文字のアルファベット「Ａ」に置換し、１つまたは複数の隣接する数は１文字のアルファベット「Ｄ」に置換する、請求項１２に記載のシステム。
【請求項１４】
アルファベットおよびディジット以外の特殊文字が使用され、隣接する文字が単一の文字に変換される、請求項１２に記載のシステム。
【請求項１５】
抽象的な形式のトークンの頻度を決定するコードを含み、それぞれの変換されたトークンに対して、どれだけのラインが前記トークンを含んでいるかを追跡する、請求項１１に記載のシステム。
【請求項１６】
抽象的なランドマークデリミタ（ＡＬＤ）になるべき候補を選択するコードを含む、請求項１５に記載のシステム。
【請求項１７】
データ品質に応じて、特定の条件に関するポリシをＡＬＤの選択に可変的に適用するコードを含む、請求項１５に記載のシステム。
【請求項１８】
単語のパターンが１ライン毎に現れる場合、前記単語のパターンが候補として選択される、請求項１５に記載のシステム。
【請求項１９】
コンスタントのパターンを決定するコードを含み、前記ＡＬＤが空でないとき、それぞれのログは、前記ＡＬＤを使用することによって、トークン化され、別のログに変換される、請求項１１に記載のシステム。
【請求項２０】
異なる３つの分析でＡＬＤを生成し、特殊文字のＡＬＤ、単語のＡＬＤ、およびコンスタントのＡＬＤの３つの結果のセットを生成するコードを含む、請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの機械ロギングおよびその分析に関する。
【背景技術】
【０００２】
多くのシステムおよびプログラムは、ログを使用して、エラー、デバッギングの内部状態、またはそれらの動作を記録する。ログ情報を理解するために、セパレータ（すなわち、デリミタ）を使用して入力ログデータを一連のより小さなデータチャンク（すなわち、トークン）に分けることは、必須ステップである。この処理はトークン化と呼ばれる。しかし、このログフォーマットは標準化されておらず、プログラムは、それ自体のカスタマイズされたフォーマットおよびデリミタを使用する。したがって、特に、プログラムコードが利用可能ではなく、したがってログに関して利用可能な領域知識がないときに、可能なフォーマットおよびデリミタを決定することが、ログ分析にとって重大な課題となる。
【０００３】
ログ情報のトークン化に関して、デリミタの選択肢は重要である。例えば、ＣＳＶフォーマットで書かれたいくつかのログは、デリミタとしてコンマを使用する十分に確立されたフォーマット標準に従う。しかし、このようなフォーマットに従わないログは、決定するのが簡単でないカスタムのデリミタを使用する。やみくもにデリミタを選択することは、トークン化されたログに混乱を引き起こすことがある。例えば、いくつかのパスワードまたはハッシュ値は、コンマ、＄、＊、＃などの、非数字及び非アルファベットの文字を意味する特殊文字を含んでいることがある。ａ＄ｊ，ｓ＆＊，ｓｆ２といった文字列の例において、コンマはデリミタとして使用されない。それどころか、コンマは、＄、＆、および＊と同様の特殊文字の１つにすぎない。しかし、コンマをデリミタとして使用することは、この例の文字列を３つのトークン（例えば、ａ＄ｊ  ｓ＆＊  ｓｆ２）にトークン化し、混乱を引き起こす。このトークンの不正確な決定は、異常検出、障害診断、およびパフォーマンスなどのログを使用するアプリケーションの品質に影響を及ぼすことがある。
【０００４】
ログ分析におけるＬｏｇｓｔａｓｈおよびＳｐｌｕｎｋなどの従来のアプローチは、デリミタを含むログフォーマットを明示する手動のアプローチを主に適用している。そのようなアプローチにおいて、人間は、所与のログフォーマットに対する解析ルールを定義する必要がある。未知のフォーマットに対して、解析ルールを正確に決定できない。
【発明の概要】
【０００５】
１つの態様において、ログを分析し、ログのトークン化のためのデリミタを表す１つまたは複数の抽象的なランドマークデリミタ（ＡＬＤ：ａｂｓｔｒａｃｔ  ｌａｎｄｍａｒｋ  ｄｅｌｉｍｉｔｅｒ）を識別することで、機械によって生成されたログを分析し；ログおよびＡＬＤから、ログをトークン化し、ＡＬＤでパターンを分離して中間のトークン化されたログを形成することによって次第にトークン化されたフォーマットを生成し；最後の中間のトークン化されたログが最終的なトークン化されたログとして処理されるまで、ログをトークン化することを反復して繰り返し；アプリケーションにトークン化されたログを適用する、システムおよび方法が開示される。
【０００６】
別の態様において、ログを処理するシステムは、ログを分析し、ログのトークン化のためのデリミタを表す１つまたは複数の抽象的なランドマークデリミタを識別し；ログおよびＡＬＤから、ログをトークン化し、かつ、ＡＬＤでパターンを分離して中間のトークン化されたログを形成することによって次第にトークン化されたフォーマットを生成し；最後の中間のトークン化されたログが最終的なトークン化されたログとして処理されるまで、ログをトークン化することを反復して繰り返し；アプリケーションにトークン化されたログを適用するために、コードでログを処理するモジュールを含む。
【０００７】
別の態様において、自動の方法は、信頼できるデリミタとして使用されるパターンを、全ログファイルにおけるそれらの一貫した、かつ信頼できる出現に基づいて推定するために、開示される。これらのデリミタは、３つの異なるタイプのパターンで決定され、抽象的なランドマークデリミタ（ＡＬＤ）と呼ばれる。用語「ランドマーク」は、ログの全体を通じて一貫して現れるデリミタの特徴を指す。さらに我々は、複数回反復させる中で段階的に、選択的かつ保守的に、ログをよりトークン化されたフォーマットに次第にトークン化させるＡＬＤを使用する方法を提示する。この方法は、これ以上のさらなる変化がトークン化に起こりえない場合に停止する。
【０００８】
本システムの利点は、以下の１つまたは複数を含んでよい。本方法は、信頼できるデリミタを選択することによって、より高い品質のログのトークン化を可能にする。このように、ログの理解を改善し、ソフトウェアの異常検出、障害診断、およびパフォーマンス診断などのログ分析に基づく高品質ソリューションを提供する。
【図面の簡単な説明】
【０００９】
【図１】図１は、ランドマークログ処理システムの例示的なアーキテクチャを示す。
【図２】図２は、例示的なランドマーク分析モジュールを示す。
【図３】図３は、例示的な特殊文字パターン分析モジュールを示す。
【図４】図４は、例示的な単語のパターン分析モジュールを示す。
【図５】図５は、例示的なコンスタントのパターン分析モジュールを示す。
【図６】図６は、例示的な増分トークン化モジュールを示す。
【図７】図７は、モノのインターネットシステムなどの、アクチュエータ／センサを有する例示的なハードウェアを示す。
【発明を実施するための形態】
【００１０】
図１は、例示的なランドマークログ処理システムのアーキテクチャを提示する。その入力、出力、および処理ユニットまたはモジュールは、番号でラベル付けされている。
【００１１】
このシステム（１とラベル付けされている）に入力ログファイルを与え、ランドマーク分析（２とラベル付けされている）は、ログを分析し、ログのトークン化でデリミタとして使用されるログパターンである、モジュール３として示された抽象的なランドマークデリミタ（ＡＬＤ）を計算する。
【００１２】
モジュール４（増加トークン化）は、２つの入力、つまりオリジナルログと、ランドマーク分析から計算された抽象的なランドマークデリミタを取得する。モジュール４は、入力ログをトークン化し、ＡＬＤを使用してパターンを分離することによって次第にトークン化されたフォーマットを生成する。トークン化された出力ログは、中間のトークン化されたログ（モジュール５）として示されている。
【００１３】
ランドマークログ処理は、反復的であり、さらなる処理が必要なくなるまで、上記の処理を繰り返すことを意味する。上記の処理は１回目の反復であった。その後、中間のトークン化は、ＡＬＤのさらなる識別および変換のためにモジュール２に供給される。
【００１４】
モジュール２、３、４、５を通過する処理は、新しいＡＬＤが発見される限り、繰り返される。これ以上利用可能な新しいＡＬＤがないとき、最後の中間のトークン化されたログは、モジュール６として示される最終的なトークン化されたログとしてラベル付けされ、ログ処理は終了する。
【００１５】
これらのトークン化されたログは、モジュール７として示されたアプリケーションに使用される。我々が構築するこれらのアプリケーションは、異常検出、障害診断、およびパフォーマンス診断を含む。作業の範囲のために、これらのデザインは本発明において提示されない。本発明は、データの品質を向上させることによってアプリケーションの利益になるであろう。本発明は、他のタイプのアプリケーションにも適用可能である。
【００１６】
図２は、本発明が抽象的なランドマークデリミタ（ＡＬＤ）を決定する方法に関する手順であるランドマーク分析を提示する。用語ランドマークは、ログに一貫して現れるＡＬＤの特徴を参照する。このランドマーク分析（モジュール２）は、次に１つずつ解説される、３つのサブモジュール２１、２２、および２３からなる。これらの３つのサブモジュールは、ＡＬＤを生成する。
【００１７】
図３は、特殊文字パターン分析の機能図を提示する。ここで、４つステップので機能の簡単な説明をする。特殊文字は、＃、＄、＠、！、“、”などの、非数字および非アルファベットの文字として定義される。
【００１８】
ステップ１：トークン化およびフィルタリング：この機能は、特殊文字だけが分析に使用されるようにアルファベットまたは数字の文字を除去する。
【００１９】
ステップ２：空白の抽象化：結合されたスペース文字は、これらの長さに応じて様々に処理される。このようにスペース文字は、長さＸのスペースを表す特殊なメタ文字「スペース＿Ｘ」に変換される。
【００２０】
ステップ３：頻度分析：方法は、各ラインにおける特殊文字の頻度を計算し、その分布を算出し、それらがログに現れるラインの数も計算する。
【００２１】
ステップ４：候補選択：頻度分析において計算されたデータに基づいて、ＡＬＤになるべき候補が選択される。選択のための特定の条件に関するポリシは、データ品質に応じて変わる。我々が使用する１つの厳格なポリシは、以下のようなものである。すなわち、特殊文字が１ライン毎に現れ、かつ特殊文字が１ライン毎に同じ回数現れる場合、それは候補として選択される。
【００２２】
具体的な方法は、擬似コードとして以下に提示される。
【００２３】
・Ｆｕｎｃｔｉｏｎ  Ｍａｉｎは、全体的な処理を表す。
【００２４】
・Ｆｕｎｃｔｉｏｎ  ＴｏｋｅｎＡｎｄＦｉｌｔｅｒは、ステップ１である。
【００２５】
・Ｆｕｎｃｔｉｏｎ  ＷｈｉｔｅＳｐａｃｅＡｂｓｔｒａｃｔｉｏｎは、ステップ２である。
【００２６】
・Ｆｕｎｃｔｉｏｎ  ＦｒｅｑｕｅｎｃｙＡｎａｌｙｓｉｓは、ステップ３である。
【００２７】
・Ｆｕｎｃｔｉｏｎ  ＣａｎｄｉｄａｔｅＳｅｌｅｃｔｉｏｎは、ステップ４である。
【００２８】
【数１】
0006630840.tif 000002
【００２９】
【数２】
0006630840.tif 000003
【００３０】
【数３】
0006630840.tif 000004
【００３１】
図４は、単語のパターン分析の機能図を提示する。ここで、４つのステップとして、それぞれの機能を簡単に解説する。
【００３２】
ステップ１：トークン化：ログステートメントは、この分析においてスペースでトークン化される。
【００３３】
ステップ２：単語の抽象化：同様の単語のパターンを認識するために、この機能は、それぞれのトークンを抽象的な形式に変換する。ここで、具体的な変換ルールを挙げる。
【００３４】
１）１つ以上の隣接アルファベットは１文字のアルファベット「Ａ」に置換する。
【００３５】
２）１つ以上の隣接する数は１文字のアルファベット「Ｄ」に置換する。
【００３６】
３）アルファベットおよびディジット以外の特殊文字は直接に使用されるが、２つ以上の隣接する文字は、単一の文字に変換される。
【００３７】
例えば、「Ａｌｂｅｒｔ０２３４−Ｎｕｍｂｅｒ＄３２」は、これらのルールに関連して「ＡＤ−Ａ＄Ｄ」になる。
【００３８】
ステップ３：頻度分析：その方法は、抽象的な形式のトークンの頻度を計算する。各変換されたトークンに対して、その方法は、どれだけのラインがトークンを含んでいるかを追跡する。
【００３９】
ステップ４：候補選択：頻度分析で計算されたデータに基づいて、ＡＬＤになるべき候補が選択される。選択のための具体的な条件に関するポリシは、データ品質に応じて可変である。我々が使用する１つの厳格なポリシは、以下のようなものである。すなわち、単語のパターンが１ライン毎に現れる場合、候補として選択される。
【００４０】
具体的な方法は、擬似コードとして以下に提示される。
【００４１】
・Ｆｕｎｃｔｉｏｎ  Ｍａｉｎは、全体的な処理を表す。
【００４２】
・Ｆｕｎｃｔｉｏｎ  Ｔｏｋｅｎｉｚｅは、ステップ１である。
【００４３】
・Ｆｕｎｃｔｉｏｎ  ＷｏｒｄＡｂｓｔｒａｃｔｉｏｎは、ステップ２である。
【００４４】
・Ｆｕｎｃｔｉｏｎ  ＦｒｅｑｕｅｎｃｙＡｎａｌｙｓｉｓは、ステップ３である。
【００４５】
・Ｆｕｎｃｔｉｏｎ  ＣａｎｄｉｄａｔｅＳｅｌｅｃｔｉｏｎは、ステップである。
【００４６】
【数４】
0006630840.tif 000005
【００４７】
【数５】
0006630840.tif 000006
【００４８】
【数６】
0006630840.tif 000007
【００４９】
図５は、コンスタントのパターン分析の機能図を提示する。ここに、３つのステップとして、それぞれの機能の簡単な解説がある。
【００５０】
ステップ１：トークン化：ログステートメントは、この分析においてスペースでトークン化される。
【００５１】
ステップ２：頻度分析：その方法はトークンの頻度を計算する。それぞれのトークンに対して、本方法は、どれだけのラインがトークンを含んでいるかを追跡する。
【００５２】
ステップ３：候補選択：頻度分析で計算されたデータに基づいて、ＡＬＤになるべき候補が選択される。選択のための具体的な条件に関するポリシは、データ品質に応じて変わり得る。我々が使用する１つの厳格なポリシは、以下のようなものである。すなわち、コンスタントのパターンが１ライン毎にに現れる場合、これは候補として選択される。
【００５３】
具体的な方法は、擬似コードとして以下に提示される。
【００５４】
・Ｆｕｎｃｔｉｏｎ  Ｍａｉｎは、全体的な処理を表す。
【００５５】
・Ｆｕｎｃｔｉｏｎ  Ｔｏｋｅｎｉｚｅは、ステップ１である。
【００５６】
・Ｆｕｎｃｔｉｏｎ  ＦｒｅｑｕｅｎｃｙＡｎａｌｙｓｉｓは、ステップ２である。
【００５７】
・Ｆｕｎｃｔｉｏｎ  ＣａｎｄｉｄａｔｅＳｅｌｅｃｔｉｏｎは、ステップ３である。
【００５８】
【数７】
0006630840.tif 000008
【００５９】
【数８】
0006630840.tif 000009
【００６０】
図６は、増分トークン化処理の機能図を提示する。このモジュールは、２つの入力を得る：一方は、（入力ログまたは中間のトークン化されたログのどちらかである）ログであり、他方は、ランドマーク分析において生み出される抽象的なランドマークデリミタ（ＡＬＤ）である。ＡＬＤが空である場合、増分トークン化処理は終了し、最終的なトークン化されたログとしてログを返す。本質的に、図１に示された反復処理において、最後の変換されたログは、最終的な変換されたログになる。
【００６１】
ＡＬＤが空でないとき、各ログは、ＡＬＤを使用することによって、トークン化され、別のログに変換される。ＡＬＤは、特殊文字のＡＬＤ、単語のＡＬＤ、およびコンスタントのＡＬＤの、３つの結果のセットをもたらす、異なる３つの分析から生み出される。これらのＡＬＤは、相応して、図６のモジュール４３、４２、および４１に示された３つの変換で使用される。
【００６２】
ここで、３つのＡＬＤのセットは、変換におけるトークンのカバレッジ内で重複してよい。例えば、コンスタントのＡＬＤ「Ａ＠Ｂ」および特殊文字のＡＬＤ「＠」には、共通の特殊文字「＠」がある。混乱を回避するために、変換処理は、異なる優先度でＡＬＤを適用する。
【００６３】
一般に、３つのＡＬＤには、それぞれのパターンがどれほど具体的であってよいかという程度に相違がある。典型的には、コンスタントのＡＬＤは、通常使用されるオリジナルトークンを表すが、単語のＡＬＤは抽象的な形式であり、特殊文字のＡＬＤを任意のトークンで使用できる。この相違のために、我々は、単語のＡＬＤおよび特殊キャラクタのＡＬＤに続くコンスタントのＡＬＤを使用する変換に、より高い優先度を与える。
【００６４】
具体的には、入力ログからのそれぞれのトークンに関して、トークンは、任意のコンスタントのＡＬＤに最初に一致する場合、モジュール４１（コンスタントのＡＬＤ変換）で変換される。一致しない場合、トークンは、任意の単語のＡＬＤに一致するかどうかをチェックし、モジュール４２（単語のＡＬＤ変換）で変換される。ＡＬＤのどちらも所与のトークンに一致しない場合、特殊文字のＡＬＤがチェックされる。いずれかの一致がある場合、トークンは、モジュール４３（特殊文字のＡＬＤ変換）で変換される。一致が発見されない場合、方法は、オリジナルトークンを使用し、次のトークンの処理を継続する。
【００６５】
具体的な方法は、擬似コードとして以下に提示される。
【００６６】
・関数ＣｏｎｓｔａｎｔＡＬＤＣｏｎｖｅｒｓｉｏｎは、モジュール４１を表す。トークンがコンスタントのＡＬＤの１つに一致する場合、ＣｏｎｖｅｒｓｉｏｎＦｕｌｌによって処理された、変換されたトークンが返される。
【００６７】
・関数ＷｏｒｄＡＬＤＣｏｎｖｅｒｓｉｏｎは、モジュール４２を表す。入力トークンは、最初に、抽象的なトークンＡＴｏｋｅｎに変換される。これが、任意の単語のＡＬＤに一致する場合、ＣｏｎｖｅｒｓｉｏｎＦｕｌｌによって処理された、変換されたトークンが返される。
【００６８】
・関数ＳｐｅｃｉａｌＣｈａｒＡＬＤＣｏｎｖｅｒｓｉｏｎは、モジュール４３を表す。トークン内の各文字は、それが特殊文字のＡＬＤに属すかどうかをチェックされる。属す場合、変換されたトークンが返される。
【００６９】
【数９】
0006630840.tif 000010
【００７０】
【数１０】
0006630840.tif 000011
【００７１】
【数１１】
0006630840.tif 000012
【００７２】
類似の数字が同じまたは同様の要素を表す図面を参照し、初めに図７を参照すると、本原理の実施形態による、本原理が適用されることがある例示的な処理システム１００を説明するブロック図が示される。処理システム１００は、システムバス１０２を介して他の構成要素に動作可能なように連結された、少なくとも１つのプロセッサ（ＣＰＵ）１０４を含む。キャッシュ１０６、リードオンリメモリ（ＲＯＭ）１０８、ランダムアクセスメモリ（ＲＡＭ）１１０、入力／出力（Ｉ／Ｏ）アダプタ１２０、サウンドアダプタ１３０、ネットワークアダプタ１４０、ユーザインターフェースアダプタ１５０、およびディスプレイアダプタ１６０は、システムバス１０２に動作可能なように連結されている。
【００７３】
第１のストレージデバイス１２２および第２のストレージデバイス１２４は、Ｉ／Ｏアダプタ１２０によってシステムバス１０２に動作可能なように連結されている。ストレージデバイス１２２および１２４は、ディスクストレージデバイス（例えば、磁気または光ディスクストレージデバイス）、ソリッドステートの磁気デバイス、などのいずれかであってよい。ストレージデバイス１２２および１２４は、同じタイプのストレージデバイスまたは異なるタイプのストレージデバイスであってよい。
【００７４】
スピーカ１３２は、サウンドアダプタ１３０によって本システムバス１０２に動作可能なように連結されている。送受信機１４２は、ネットワークアダプタ１４０によってシステムバス１０２に動作可能なように連結されている。ディスプレイデバイス１６２は、ディスプレイアダプタ１６０によってシステムバス１０２に動作可能なように連結されている。第１のユーザ入力デバイス１５２、第２のユーザ入力デバイス１５４、および第３のユーザ入力デバイス１５６は、ユーザインターフェースアダプタ１５０によってシステムバス１０２に動作可能なように連結されている。ユーザ入力デバイス１５２、１５４、および１５６は、キーボード、マウス、キーパッド、画像キャプチャデバイス、動作検知デバイス、マイクロフォン、先述のデバイスの少なくとも２つの機能性を組み込んでいるデバイス、などのいずれかであってよい。当然、他のタイプの入力デバイスが、本原理の趣旨を維持しながら使用されてもよい。ユーザ入力デバイス１５２、１５４、および１５６は、同じタイプのユーザ入力デバイス、または、異なるタイプのユーザ入力デバイスであってよい。ユーザ入力デバイス１５２、１５４、および１５６は、システム１００に情報を入力し、システム１００から情報を出力するために使用される。
【００７５】
当然、処理システム１００は、当業者によって容易に想定されるように、他の要素（図示せず）を含んでもよく、一定の要素を省略してもよい。例えば、他の様々な入力デバイスおよび／または出力デバイスは、当業者によって容易に理解されるように、同じものの特定の実装形態に依存する、処理システム１００に含まれてよい。例えば、様々なタイプのワイヤレスおよび／または有線の入力および／または出力デバイスが使用されてよい。また、様々な構成における、追加のプロセッサ、コントローラ、メモリ、などが、当業者によって容易に理解できるように利用されてもよい。処理システム１００のこれらおよび他の変形形態は、本明細書で提供された本原理の教示を与えられる当業者によって容易に想定される。
【００７６】
本明細書で説明された実施形態は、全面的にハードウェアであってよく、またはハードウェア要素と、ファームウェア、常駐ソフトウェアおよびマイクロコードなどを含むが、これらに限定されない、ソフトウェア要素との両方を含んでよいことを理解されたい。
【００７７】
実施形態は、コンピュータまたは任意の命令実行システムによる、または関連する、使用のためにプログラムコードを提供する、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品を含んでよい。コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによる、または関連した、使用のためにプログラムを格納、通信、伝搬、または運搬する、任意の装置を含んでよい。媒体は、磁気、光学、電子、電磁気、赤外線、または半導体のシステム（もしくは装置もしくはデバイス）または伝搬媒体であってよい。媒体は、半導体またはソリッドステートメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、固定磁気ディスク、および光ディスク、他などの、コンピュータ可読ストレージ媒体を含んでよい。
【００７８】
プログラムコードを格納および／または実行するのに適切なデータ処理システムは、システムバスを通じてメモリ要素に直接的または間接的に連結されている少なくとも１つのプロセッサ、例えば、ハードウェアプロセッサを含んでよい。メモリ要素は、プログラムコードの実際の実行中に用いられるローカルメモリ、大容量ストレージ、および実行中にコードが大容量ストレージから取り出される回数を減らすために、少なくともいくつかのプログラムコードの一時的なストレージを提供するキャッシュメモリを含んでよい。（キーボード、ディスプレイ、ポインティングデバイス、他を含むが、これらに限定されない）入力／出力、すなわち、Ｉ／Ｏデバイスは、直接に、または、介在するＩ／Ｏコントローラを通じて、システムに連結されていてよい。
【００７９】
上記は、あらゆる点で例証的かつ例示的なものとして理解されることになるが、限定的ではなく、本明細書で開示された本発明の範囲は、詳細な説明から決定されるべきではなく、むしろ特許法によって許可された十分な広がりに従って解釈されるものとして、特許請求の範囲から決定されるべきである。本明細書で示され、説明された本実施形態は、本発明の諸原理に関する単に例証的なものであること、および当業者は、本発明の範囲および趣旨から逸脱することなく、様々な変更形態を実装してよいことを理解されたい。当業者は、本発明の範囲および趣旨から逸脱することなく、他の様々な特性の組合せを実装してよい。
【図１】
0006630840.tif 000013
【図２】
0006630840.tif 000014
【図３】
0006630840.tif 000015
【図４】
0006630840.tif 000016
【図５】
0006630840.tif 000017
【図６】
0006630840.tif 000018
【図７】
0006630840.tif 000019