(57)【要約】  任意の／未知のシステムまたはアプリケーションから異種混成ログを受信することと、機械学習を使用して異種混成ログソースから正規表現パターンを生成することと、正規表現パターンからログパターンを抽出することと、異なる条件に基づく訓練ログからモデルとプロファイルとを生成することと、経時的に生成されたすべてのモデルを記憶するグローバルモデルデータベースを更新することと、プロダクションシステムを稼働させる１つまたは複数のアプリケーション、センサ、または機器からの生のログメッセージをトークン化することと、入来するトークン化されたストリームを異常検出のためのデータオブジェクトに変換することと、様々な異常ディテクタにログメッセージを転送することと、プロダクションシステムを稼働させる１つまたは複数のアプリケーション、センサ、または機器からの異常警報を生成することとにより、１つまたは複数のアプリケーション、センサ、または機器からのログデータを取り扱うシステムおよび方法が開示される。
2019501448.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のアプリケーション、センサ、または機器からのログデータを取り扱う方法であって、
任意の／未知のシステムまたはアプリケーションから異種混成ログを受信することと、
機械学習を使用して異種混成ログソースから正規表現パターンを生成し、前記正規表現パターンからログパターンを抽出することと、
異なる条件に基づく訓練ログからモデルとプロファイルとを生成し、経時的に生成されたすべてのモデルを記憶するグローバルモデルデータベースを更新することと、
プロダクションシステムを稼働させる１つまたは複数のアプリケーション、センサ、または機器からの生のログメッセージをトークン化することと、
入来するトークン化されたストリームを異常検出のためのデータオブジェクトに変換し、様々な異常ディテクタにログメッセージを転送することと、
プロダクションシステムを稼働させる前記１つまたは複数のアプリケーション、センサ、または機器からの異常警報を生成することと、
を有する、方法。
【請求項２】
各ログメッセージが、タイムスタンプおよびテキストコンテンツを含んでいる、請求項１に記載の方法。
【請求項３】
データを訓練ログと試験ログとに分割することを有する、請求項１に記載の方法。
【請求項４】
異常な違反の各々が、意味上の、構文上の、または統計上の違反を含んでいる、請求項１に記載の方法。
【請求項５】
ユーザに対する視覚的な警報を生成することを有する、請求項１に記載の方法。
【請求項６】
前記ログパターン抽出が、教師なし学習を使用して、入来するログのための正規表現を生成する、請求項１に記載の方法。
【請求項７】
前記ログパターンは、ワイルドカードパターンを使用した変数フィールドを含んでおり、各フィールドが、既知のパターンに、および包括的な名称をもつ未知のフィールドに属するキー名称をもつ、請求項１に記載の方法。
【請求項８】
前記モデルを生成することが、構文および意味解析に基づいて訓練プロファイルを形成することを含む、請求項１に記載の方法。
【請求項９】
ログのカテゴリのパターンまたは正規表現における各キーに対する様々な値の頻度プロファイルを形成するために、コンテンツプロファイルモデルを生成することを有する、請求項１に記載の方法。
【請求項１０】
パターン間のシーケンシャルな順序関係を抽出するシーケンス順序モデルを生成することを有する、請求項１に記載の方法。
【請求項１１】
各パターンのログの頻度分布を保持するボリュームモデルを生成し、特定のパターンの普通でないスパイクを検出し、警報として前記スパイクを報告すること、を有する、請求項１に記載の方法。
【請求項１２】
前記モデルに応じて分散学習と漸次的学習とを実施すること、を有する、請求項１に記載の方法。
【請求項１３】
前記グローバルモデルデータベースが、訓練されたプロファイルをデータベースに保持し得る学習サービスを支援するための、および前記訓練されたプロファイルを前記データベースに保持し得る前記学習サービスを可能にするためのインターフェースを提供する、請求項１２に記載の方法。
【請求項１４】
タイムスタンプ、ソース、モデルカテゴリに基づいて、または、連結、グループ化、モデルカテゴリをグループ化するための収集、および異なる時間範囲にわたってモデルを収集することを含んでいる複雑なクエリに基づいて、モデルを選択することを有する、請求項１に記載の方法。
【請求項１５】
漸次的学習工程または分散学習工程をサポートするためにモデル更新を実施することを有し、前記モデルの更新が、学習アルゴリズムおよびモデルプロファイルに依存する、請求項１に記載の方法。
【請求項１６】
階層スキーマを含んでいるモデルデータベースを形成することを有し、各モデルが、＜タイムスタンプ、時間範囲、カテゴリ、ソース、モデル＞を含んでいる、請求項１に記載の方法。
【請求項１７】
入来するデータストリームを一般的な異常検出タスクのためのデータオブジェクトに変換することを有する、請求項１に記載の方法。
【請求項１８】
変換されたデータオブジェクトをパブリッシュ／サブスクライブモジュールにプッシュし、異常検出のための前記モジュールをサブスクライブすること、を有する、請求項１７に記載の方法。
【請求項１９】
入来する変換されたログストリームが前記システムにおける異常を示すか否かを確認するために違反または異常確認を適用することを有する、請求項１８に記載の方法。
【請求項２０】
プロセッサと、
前記プロセッサにデータを提供するモノのインターネット（ＩｏＴ）センサと、
コンピュータ可読コードであって、
任意の／未知のシステムまたはアプリケーションから異種混成ログを受信することと、
機械学習を使用して異種混成ログソースから正規表現パターンを生成し、前記正規表現パターンからログパターンを抽出することと、
異なる条件に基づく訓練ログからモデルとプロファイルとを生成し、経時的に生成されたすべてのモデルを記憶するグローバルモデルデータベースを更新することと、
プロダクションシステムを稼働させる１つまたは複数のアプリケーション、センサ、または機器からの生のログメッセージをトークン化することと、
入来するトークン化されたストリームを異常検出のためのデータオブジェクトに変換し、様々な異常ディテクタにログメッセージを転送することと、
プロダクションシステムを稼働させる１つまたは複数のアプリケーション、センサ、または機器からの異常警報を生成することと、
を行うように、前記プロセッサにより実行されるコンピュータ可読コードと、
を備えている、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は仮特許出願第６２２５６７５０号に基づく優先権を主張し、同出願の内容は参照により組み込まれる。
【背景技術】
【０００２】
本発明は、アプリケーション、センサ、または機器のためのログストリーム処理に関する。
【０００３】
ごく最近の自動化されたソフトウェアは、アプリケーションにおけるエラーの原因またはトランザクションの進行を開発者が理解し、認識できるように、人間が判読できるログを生成する。これは通常、実生活において発生し得る想定されるシナリオをデバッグするのを補助するための、アプリケーションの開発者自身による標準的な実務である。ごく最近のシステムにはログが存在するとはいえ、接続されたコンポーネントおよびデバイスの規模が、根本的な原因を発見することを非常に難しい探索問題とさせている。根本的な原因を手作業で見つけ出す現在の実務は、困難をともない、システムについてのオペレータの理解に依存し、数時間分の人時を消費し得る。
【０００４】
プロダクションバグを発見するためのＳｐｌｕｎｋ、Ｌｏｇｇｌｙ、およびＥＬＫなどの従来のシステムは、手作業による点検を必要とする。Ｓｐｌｕｎｋは、従来のログ入力のための検索エンジンである。これらのシステムは、プロダクションシステムから収集されたログ中のすべてのワードをインデックス処理して、Ｇｏｏｇｌｅに類似した検索能力を提供する。これは多くの場合、オペレータがキーワードを検索し、様々なソースにわたる原因を手作業で相関させることにより、根本的な原因を簡単に発見し得るので、単純であるが非常に強力である。ＬｏｇｇｌｙおよびＥＬＫはさらに一歩進んでおり、ユーザにより与えられるか、または、一般的なアプリケーションのために一般的に利用可能な正規表現の記憶場所から取得された正規表現に基づいて、ログのトークン化を提供する。トークン化されたログは、次に、インデックス処理されて、検索をサポートするデータベースに記憶される。これらの両方により、ユーザにリアルタイムの警報と可視化とがもたらされる。
【発明の概要】
【０００５】
任意の／未知のシステムまたはアプリケーションから異種混成ログを受信することと、機械学習を使用して異種混成ログソースから正規表現パターンを生成し、正規表現パターンからログパターンを抽出することと、異なる条件に基づく訓練ログからモデルとプロファイルとを生成し、経時的に生成されたすべてのモデルを記憶するグローバルモデルデータベースを更新することと、プロダクションシステムを稼働させる１つまたは複数のアプリケーション、センサ、または機器からの生のログメッセージをトークン化することと、入来するトークン化されたストリームを異常検出のためのデータオブジェクトに変換し、様々な異常ディテクタへのログメッセージを転送することと、プロダクションシステムを稼働させる１つまたは複数のアプリケーション、センサ、または機器からの異常警報を生成することとにより、１つまたは複数のアプリケーション、センサ、または機器からのログデータを取り扱うためのシステムおよび方法が開示される。
【０００６】
本システムの利点は、以下のうちの１つまたは複数を含み得る。本システムは、最近のデバイスにより生成された異種混成ログソースにおける異常を自動的に検出する。本システムは、センサ、コンピュータソフトウェア、またはモノのインターネットにより生成されたログを処理し得る。本システムは、人間によるいかなる入力も、以前の代表的かつ標準的で一般的なパターンも必要としない。本システムは、完全に自動化され、教師なし機械学習アルゴリズムに依存して、システムにおけるあらゆる異常についてユーザに警報を出す。警報を監視およびトリガーすることは、大規模プロダクションソフトウェアにおける問題を迅速に把握するための、本質的な「ファーストアタック」メカニズムである。さらに、兆候の位置と、兆候の想定される原因とをできる限り迅速に特定することが重要である。本システムは、データ分析とモデルとを組み込み得、高度な機械学習技術を使用して警報、警報の想定される原因をプッシュし得るプラットフォームを提供する。本システムは、構造についての予備知識なしで、任意の未修正ログに対して動作し得る。
【図面の簡単な説明】
【０００７】
本開示は、以下の図面を参照して好適な実施形態の詳細を以下の記述に示す。
【図１】ＮＧＬＡの例示的なワークフロー工程を示す図である。
【図２】例示的なパターン抽出の動作をより詳細に示す図である。
【図３】モデル抽出工程の例示的な図を示す図である。
【図４】例示的なＮＧＬＡグローバルモデルデータベースを示す図である。
【図５】例示的なデータ変換およびトークン化されたログストリームの異常検出を示す図である。
【図６】例示的なユーザインターフェースのスナップショットを示す図である。
【図７】ＮＧＬＡシステムを稼働させるハードウェアの一例を示すブロック図である。
【発明を実施するための形態】
【０００８】
ＮＧＬＡと呼ばれる例示的なログ管理、処理、および分析プラットフォームについて詳述する。ＮＧＬＡは、高度なログ分析のためのワークフローを提供する。本技術の１つの商業的な態様は、ユーザからのどのような入力も一切ともなわず、または、対象となるシステムのいかなる知識も使用しない、ユーザに対するリアルタイムの警報である。ＮＧＬＡからのリアルタイムの警報は、バグの存在をオペレータが迅速に発見することを可能にし、さらに高度な分析がバグの原因の半自動化された理解を可能にすることにより、根本的な原因を発見しやすくする。全体として、このことにより、より速いバグ修正、よりロバストなソフトウェアが可能になり、ログを読む際、および、エラーの原因を見つけ出す際に現在費やされる数時間分の人時にかかるコストを減らす。
【０００９】
図１は、ＮＧＬＡのための例示的なワークフロー工程を示す。本工程は、ログ処理ワークフローを互いと共に示すサービスレベルコンポーネントと、異種混成ログを扱うための、およびユーザのための有意義な警報を生成するための具体的なシステムとを提示する。
【００１０】
ログ分析プラットフォームは、異常検出モジュールおよびモデルを組み込むための、サービスに注目したアーキテクチャを提供する。ＮＧＬＡは、訓練ログプロファイルをモデル化して（１０２）、異常検出（２０３）のために必要とされるモデルを要求するようにクエリされ得るグローバルモデルデータベース（１０３）に、モデル化された訓練ログプロファイルを記憶するための包括的な手法を提供する。試験フェーズにおいて、正規表現（２０１）を要求するクエリをして、入来するログストリームをトークン化する。分析コンポーネント（２０３）は、入来するストリームのためのデータ変換を提供する。これらの変換の利点は、それらが、異なる異常検出アルゴリズムのために互換性を備えて使用され得ることである。異常検出アルゴリズムは、データ変換を簡単にサブスクライブし得る。動作（２０４）は、異常の協調分析を可能にする例示的なＵＩを示す。
【００１１】
異種混成ログ収集は、１００において実施される。この動作は、任意の／未知のシステムまたはアプリケーションから異種混成ログを取得する。ログメッセージは、タイムスタンプとテキストコンテンツとからなる。データは、「通常」事例とみなされる訓練ログと、試験ログとに分けられる。
【００１２】
まず、ログ−パターン抽出１０１が実施される。このステップは、教師なし機械学習を使用して異種混成ログソースから正規表現パターンを自動的に生成する。ログパターン抽出は、教師なし学習を使用して入来するログのための正規表現を生成する。ログパターンは、ワイルドカードパターンをともなう変数フィールドを含み、各フィールドはキー名称を含んでいる。キー名称は、よく知られたパターン、および、包括的な名称をもつ未知のフィールドに属し得る。例えば、
ａ．名前付きフィールド：タイムスタンプ、ログＩＤ、ＩＰアドレス
ｂ．未知：パターン１ストリング１、パターン１ナンバー１など
モデル生成１０２は、異なる条件に基づく訓練ログからモデルとプロファイルとを生成する。モデル生成は、構文および意味解析に基づいて訓練プロファイルを形成する工程である。１０１において生成された正規表現は、我々のモデルのうちの１つとみなされ得る。生成されたモデルのすべてが、グローバルモデルデータベースに記憶され（ステップ１０３）、生成されたモデルは、関連モデルを発見するために、期間に基づいて後でクエリされ得る。
【００１３】
グローバルモデルデータベース１０３ｉは、経時的に生成されたすべてのモデルを保持するグローバルモデルデータベースである。
【００１４】
ログトークン化２０１は、プロダクションシステムを稼働させる、ユーザに対面するアプリケーション／センサまたは他の機器から入来する生のログメッセージをトークン化するためのサービスを提供する。このステップにおいて、グローバルモデルデータベースにログパターンを要求するクエリをして、入来するログストリームをキー・値ペアにトークン化する。正規表現のマッチングは、メッセージ中の変数項目のための値を異なるキーに割り当てることを可能にする。これらのキーは、メッセージのフィールドとして使用され得、メッセージの非変数部分は、静的とみなされる。ＮＧＬＡにおける分析は、フィールド値の意味理解、またはパターン間の関係から導かれ得る。
【００１５】
ログ管理２０２層は、記憶装置を管理し、次のステップにおいて様々な異常ディテクタにログメッセージを転送することを管理する。このステップは、ログの転送、および各メッセージのＩＤ管理などにともなうトークン化されたストリームのストリーム伝送を管理する。このステップはここでは、本明細書の範囲外である。
【００１６】
異常検出２０３コンポーネントは、異常検出アルゴリズムのためのサービスを提供する。入来するトークン化されたストリームは、異常検出のために簡単に使用され得るデータオブジェクトに変換される。異常な違反は、意味上の／構文上の、または統計上のものであり得る。ＮＧＬＡにおける分析は、この分析コンポーネントにより駆動される。
【００１７】
異常可視化２０４層は、ＮＧＬＡのプレゼンテーション層であり、ユーザへの警報を可視化する。
【００１８】
図２は、動作１０１において行われる例示的なパターン抽出の動作をより詳細に示す。この例において、図２におけるサンプルログに示されるサンプルログは、正規表現に変換される。例示的なキー変数は、次のとおりである。
【００１９】
ｔｓｌ−＞ログのタイムスタンプ
Ｐ３Ｆ１−＞パターン３フィールド１
Ｐ３ＮＳ１−＞パターン３英数字フィールド１
この正規表現は、次に、関連する訓練期間とともにグローバルモデルデータベースに記憶され得る。正規表現は、ステップ２０１においてログをトークン化するために使用され得る。
【００２０】
図３は、モデル抽出工程（１０２）の例示的な図を示す。ＮＧＬＡフレームワークは、グローバルモデルデータベースに一緒に収集される様々なプロファイル／モデルを抽出するためのプラットフォームを含んでいる。これらのモデルは、関連する異常を発見してユーザに警報を出すために、異常検出サービスコンポーネントにより後で使用され得る。上述のワークフローは、入力として第１のステップ（１０１）におけるログトークン化を使用する。したがって、すべての訓練ログは、（１０１）において説明されるように、キー・値ペアへと分解される。
【００２１】
図３は、生成され得る３つの想定されるモデルを示す。これら３つは単に、生成され得る想定されるモデルの例として機能するが、本アーキテクチャはそれらの３つのモデルに限定されず、さらに別のこのようなモデルに対するサービスコンポーネントとして機能することが意図される。
【００２２】
ａ．コンテンツプロファイルモデル：このモデルは、ログのカテゴリのパターン／正規表現における各キーに対する様々な値の頻度プロファイルを形成する。
【００２３】
ｂ．シーケンス順序モデル：このモデルは、様々なパターン間のシーケンシャルな順序関係を抽出する。例えば、観測されたトランザクションは、パター１として規定され得、パター１の後にパターン２が続き、最大時間差が１０秒であり、このようなトランザクションは最大３つが同時に発生し得る。
【００２４】
ｃ．ボリュームモデル：このモデルは、各パターンのログの数の頻度分布を保持する。頻度分布は、次に、特定のパターンの普通でないスパイクを検出するために使用され、ユーザに対する警報としてそれらのスパイクを報告する。
【００２５】
図４は、例示的なＮＧＬＡグローバルモデルデータベースを示す。グローバルモデルデータベースは、ＮＧＬＡの重要なコンポーネントである。実際の現実の用途では、学習は継続的な工程である。変化する作業負荷、新しい構成、設定、または、さらにはソフトウェアに適用されるパッチが原因となり、システムの挙動が経時的に変化および進化する。これは、本質的には、学習されたモデルがさらに、頻繁に更新されなければならないことを意味する。
【００２６】
分散学習および漸次的学習はモデルに依存し、各モデルに対して独立して開発される。グローバルモデルデータベースは、データベースにその訓練されたプロファイルを保持し得る学習サービスを可能にするために、これらの技法の両方を支援および補完するインターフェースを提供する。
【００２７】
この課題に基づけば、ＮＧＬＡワークフローのコンポーネントは以下のとおりとなる。
【００２８】
モデル選択１０３１は、モデルを選択する、新しいモデルを形成する、モデルを削除するなどの単純なクエリをサポートするグローバルモデルデータベースコンポーネントである。モデル選択は、例えばタイムスタンプ、ソース、モデルカテゴリなどのクエリに基づき得る。さらに、モデルカテゴリをグループ化するための、および異なる時間範囲にわたってモデルを収集するための、連結、グループ化、収集などの複雑なクエリが存在し得る。
【００２９】
モデルコンソリデーション１０３２は、漸次的学習工程または分散学習工程をサポートするためにモデル更新を扱うコンポーネントである。モデル自体の更新は、学習アルゴリズムとモデルプロファイルとに依存する。例えば我々のボリュームモデルは、最小／最大を使用すること、および、より新しいモデルからの最小／最大とマージすることにより簡単に更新され得る。
【００３０】
モデルコンソリデーションのステップは、次のとおりである。
【００３１】
ａ．データベースにモデルをクエリする：データベースに関連モデルをクエリする。
【００３２】
ｂ．新しいモデルを形成する：現在の訓練データからの新しいモデルを使用してモデルを更新する。これにより、より新しい訓練ログを使用してモデルを改善する反復工程を可能にする。代替的に、モデルの更新は、非常に大きな訓練ログに対する分散学習も可能にする。
【００３３】
ｃ．データベースにモデルを保存する：新しいモデルは、更新される必要があるか、または、モデルデータベースに独立した行として追加される必要がある。
【００３４】
モデルデータベース１０３３は、階層スキーマを含んでいるモデルデータベースを使用し、各モデルは次のように保持される：
＜タイムスタンプ、時間範囲、カテゴリ、ソース、モデル＞
１．タイムスタンプ−モデルが生成された時刻
２．時間範囲−モデルが形成された訓練ログの時間範囲
３．カテゴリ−モデルのカテゴリ
４．モデル−モデルは、ＢＬＯＢエントリーとして、または独立したテーブルとして保存され得る。
【００３５】
サービスＡＰＩ１０３４は、以下のサービスＡＰＩをサポートする：
ａ．分散学習：大きな訓練ログセッションは、場合によっては、学習工程を高速化するために分散学習を必要とすることがある。これは、グローバルモデルデータベースに対する更新をロック／ロック解除し得る、および既存のモデルに対する更新クエリを可能にし得る新規なモデルコンソリデーション工程を必要とする。
【００３６】
ｂ．漸次的学習：分散学習と同様にモデルは、翌日から、より新しい訓練データにより反復して更新されることが必要とされてよい。
【００３７】
ｃ．モデルをクエリする：モデルをクエリすることが要件とされる試験時において、これは時間範囲、ソースなどに依存し得る。
【００３８】
ｄ．モデルデータベース：記憶データベースにおけるモデル管理のスキーマ。
【００３９】
図５は、例示的なデータ変換と、トークン化されたログストリームの異常検出とを示す。この例において、３つのデータ変換ストリームと、それらに対応する異常検出アルゴリズムとが、例として示される。これらは、説明のための例としてのみ機能し、アーキテクチャ自体は拡張性がある。分析エンジンの工程は、パブリッシュ−サブスクライブアーキテクチャと同様の２つの重要なフェーズに分割され得る：
ａ．データ変換：このフェーズにおいて、入来するデータストリームを一般的な異常検出タスクに有用なデータオブジェクトに変換する。図４において、いくつかの一般的なデータ変換について説明した。適用される必要のある異常検出に応じて、関連するデータ変換オブジェクトが選択され得る。これは、機能的に同様な変換の冗長な計算を大幅に削減し、全体的な複雑さと、異常検出のためにＮＧＬＡにより費やされる時間とをさらに短縮する。変換されたデータオブジェクトは、パブリッシュ／サブスクライブシステムにプッシュされ、パブリッシュ／サブスクライブシステムが次に、異常検出からサブスクライブされ得る。
【００４０】
ｂ．異常検出：異常検出フェーズは、変換されたデータ−ストリームをサブスクライブする。次に、入来する変換されたログストリームがシステムにおける異常を示すか否かを確認するために、違反／異常確認アルゴリズムを適用する。
【００４１】
図６は、例示的なユーザインターフェースのスナップショットを示す。ＮＧＬＡは、異常の横並びの表示を可能にする可視化インターフェースを含んでいる。スナップショットは、リアルタイムの警報のタイムスタンプ（図６のラベル１）、異常カテゴリ、および異常の理由とともに、様々な異なるカテゴリ（図６のラベル５）が並べて示され得ることを示す。上方のリアルタイムのタイムチャートは、異常なログにおけるスパイク（図６のラベル２）、および総数、ならびに異常なカテゴリの各々の異なる数（図６のラベル４）を示す。
【００４２】
単純な記憶および検索の代わりに、システムは、高度な分析および機械学習技術を使用する。ＮＧＬＡは、正規表現パターンをユーザに要求する代わりに、正規表現パターンを学習するための教師なし学習をしやすくする。ＮＧＬＡは、以下のことを伴う：
１．高度なログ分析のための全体的なワークフロー：本発明は、入力ログがどのように変換され得るか、および、様々な分析が様々な訓練および試験段階を経てどのように適用され得るかについてのワークフローを提供する。
【００４３】
２．拡縮可能な、および適応可能な高度なログ分析のためのプラットフォーム。ＮＧＬＡプラットフォームは、メカニズムが新しい分析を簡単に組み込むことを可能にする
３．ユーザが訓練されたモデルを保存、保持、クエリ、および更新することを可能にするグローバルモデルデータベース。
【００４４】
４．ログオブジェクト変換のためのパブリッシュ−サブスクライブワークフロー
５．並んだ視覚ユーザインターフェース
類似の数字が同一または類似の要素を表す図を参照するが、まずは図７を参照すると、本原理の実施形態に従った、本原理が適用されてよい例示的な処理システム１００を説明するブロック図が示される。処理システム１００は、システムバス１０２を介して他のコンポーネントに動作可能に結合されている少なくとも１つのプロセッサ（ＣＰＵ）１０４を含んでいる。キャッシュ１０６、読み取り専用メモリ（ＲＯＭ）１０８、ランダムアクセスメモリ（ＲＡＭ）１１０、入力／出力（Ｉ／Ｏ）アダプタ１２０、サウンドアダプタ１３０、ネットワークアダプタ１４０、ユーザインターフェースアダプタ１５０、およびディスプレイアダプタ１６０が、システムバス１０２に動作可能に結合されている。
【００４５】
第１の記憶デバイス１２２と第２の記憶デバイス１２４とが、Ｉ／Ｏアダプタ１２０によりシステムバス１０２に動作可能に結合されている。記憶デバイス１２２および１２４は、ディスク記憶デバイス（例えば、磁気または光ディスク記憶デバイス）、ソリッドステート磁気デバイスなどのうちの任意のものであり得る。記憶デバイス１２２および１２４は、同じ種類の記憶デバイスまたは異なる種類の記憶デバイスであり得る。
【００４６】
スピーカー１３２は、サウンドアダプタ１３０によりシステムバス１０２に動作可能に結合されている。送受信器１４２は、ネットワークアダプタ１４０によりシステムバス１０２に動作可能に結合されている。ディスプレイデバイス１６２は、ディスプレイアダプタ１６０によりシステムバス１０２に動作可能に結合されている。第１のユーザ入力デバイス１５２と第２のユーザ入力デバイス１５４と第３のユーザ入力デバイス１５６とが、ユーザインターフェースアダプタ１５０によりシステムバス１０２に動作可能に結合されている。ユーザ入力デバイス１５２、１５４、および１５６は、キーボード、マウス、キーパッド、画像取り込みデバイス、動き検出デバイス、マイクロホン、上述のデバイスのうちの少なくとも２つの機能を組み込むデバイスなどのうちの任意のものであり得る。もちろん、本原理の趣旨を維持しながら、他の種類の入力デバイスも使用され得る。ユーザ入力デバイス１５２、１５４、および１５６は、同じ種類のユーザ入力デバイスまたは異なる種類のユーザ入力デバイスであり得る。ユーザ入力デバイス１５２、１５４、および１５６は、システム１００に、およびシステム１００から情報を入力および出力するために使用される。
【００４７】
もちろん、処理システム１００は、当業者により容易に考えられるような他の要素（図示せず）をさらに含んでもよく、また、特定の要素を除外してもよい。例えば、当業者により容易に理解されるように、処理システム１００の特定の実装例に応じて、様々な他の入力デバイスおよび／または出力デバイスが処理システム１００に含まれ得る。例えば、様々な種類の無線および／または有線入力および／または出力デバイスが使用され得る。さらに、当業者により容易に理解されるように、追加的なプロセッサ、制御装置、メモリなども様々な構成で使用され得る。処理システム１００のこれらのおよび他の変形例が、本明細書において提供される本原理の教示を受けた当業者により容易に考えられる。
【００４８】
本明細書において説明される実施形態は、全体がハードウェアであってもよく、または、ハードウェア要素と、ファームウェア、常駐ソフトウェア、マイクロコードなどを含んでいるがこれらに限定はされないソフトウェア要素との両方を含んでもよいことが理解される。
【００４９】
実施形態は、コンピュータまたは任意の命令実行システムによる使用のための、または、コンピュータまたは任意の命令実行システムに関連した使用のためのプログラムコードを提供するコンピュータ可用またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品を含んでもよい。コンピュータ可用またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによる使用のための、または命令実行システム、装置、またはデバイスに関連した使用のためのプログラムを記憶、通信、伝搬、または伝送する任意の装置を含んでもよい。媒体は、磁気、光学、電子、電磁、赤外線、もしくは半導体システム（または、装置もしくはデバイス）または伝搬媒体であり得る。媒体は、例えば、半導体またはソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、剛性磁気ディスクおよび光ディスクなどのコンピュータ可読記憶媒体を含んでもよい。
【００５０】
プログラムコードを記憶および／または実行するのに適したデータ処理システムは、システムバスを介してメモリ素子に直接的または間接的に結合されている少なくとも１つのプロセッサ、例えばハードウェアプロセッサを含んでもよい。メモリ素子は、プログラムコードの実際の実行中に使用されるローカルメモリ、バルク記憶装置、および、実行中にバルク記憶装置からコードが入手される回数を減らすために少なくともいくつかのプログラムコードの一時的な記憶装置を提供するキャッシュメモリを含み得る。入力／出力またはＩ／Ｏデバイス（限定はされないがキーボード、ディスプレイ、ポインティングデバイスなどを含んでいる）は、システムに直接、または介在するＩ／Ｏ制御装置を介して結合されていてもよい。
【００５１】
前述の事項は、すべての点において説明のためのものであり例示的であるが限定するものではないと理解され、本明細書において開示される本発明の範囲は、発明を実施するための形態により特定されるのではなく、むしろ、特許法により認められる最大限の広さにしたがって解釈されるように、特許請求の範囲により特定される。本明細書において示される、および説明される実施形態が本発明の原理の例示にすぎないことと、当業者が本発明の範囲と趣旨とから逸脱することなく様々な変更を実施してもよいこととが理解される。当業者は、本発明の範囲と趣旨とから逸脱することなく様々な他の特徴の組み合わせを実施し得る。
【図１】
2019501448.tif 000003
【図２】
2019501448.tif 000004
【図３】
2019501448.tif 000005
【図４】
2019501448.tif 000006
【図５】
2019501448.tif 000007
【図６】
2019501448.tif 000008
【図７】
2019501448.tif 000009
【国際調査報告】
2019501448.tif 000010
2019501448.tif 000011