"データ処理システムにより受け取られた1又は複数のデバイスからの複数のログエントリをマージするための方法であって、複数のログエントリを受け取るステップと、前記受け取った複数のログエントリのそれぞれに対し、マージプロパティに従って当該ログエントリがいずれかの潜在的な被マージイベントに共通するIDを含んでいるかを判定することと、前記マージプロパティに従って或る被マージイベントの開始を示すログエントリであるかどうかを判定することと、当該ログエントリが前記被マージイベントの開始のログエントリである場合、新たな被マージイベントの作成を開始することと、前記マージプロパティに従って既存の被マージイベントの終了を示すログエントリであるかどうかを判定することと、当該ログエントリが前記既存の被マージイベントの終了のログエントリである場合、該既存の被マージイベントの作成を終了すること、を行うステップと、ここで、前記受け取った複数のログエントリには、複数の異なる被マージイベントに対応するログエントリが分散的に混在して含まれており、或る既存の被マージイベントに共通なIDを含む各ログエントリを、前記被マージイベントのためのマッピングプロパティに従って当該被マージイベントにマッピングするステップとを備える方法。或る既存の被マージイベントのためのマージプロパティに規定されたタイムアウトが発生した場合、当該被マージイベントの作成を終了するステップを更に備える請求項1の方法。前記被マージイベントに対して或るログエントリをマッピングする際に、該被マージイベントの作成が開始したがまだその作成が終了していないときには該被マージイベントがそれまでと同様に存在しているとみなす機能を更に備える請求項2の方法。前記機能はマッピング動作で使用される、請求項3に記載の方法。受け取られたログエントリのそれぞれが、前記マージプロパティに従って、マージの対象として考慮されるべきであるかどうかを判定するステップを更に備える請求項1乃至4のいずれかの方法。前記ログエントリを被マージイベントにマッピングする前記ステップは、前記被マージイベントにおける前記開始のログイベントの時間を判定することを更に含む、請求項1乃至5のいずれかの方法。前記ログエントリを被マージイベントにマッピングする前記ステップは、前記被マージイベントにおける前記終了のログイベントの時間を判定することを更に含む、請求項1乃至6のいずれかの方法。前記ログエントリを被マージイベントにマッピングする前記ステップは、前記マッピングプロパティに従ってイベントIDをマッピングすることを更に含む請求項1乃至7のいずれかの方法。前記ログエントリを被マージイベントにマッピングする前記ステップは、前記マッピングプロパティに従ってイベント名をマッピングすることを更に含む請求項1乃至8のいずれかの方法。前記ログエントリを被マージイベントにマッピングする前記ステップは、前記ログエントリから構文解析された名前をマッピングすることを更に含み、前記マッピングは前記マッピングプロパティのoneOf関数に従って実行される、請求項1乃至9のいずれかの方法。前記ログエントリを被マージイベントにマッピングする前記ステップは、前記マッピングプロパティに従って前記被マージイベントのデバイスアクションフィールドに前記ログエントリのデバイスアクションの値をマッピングする、ことを更に含む請求項1乃至10のいずれかの方法。前記受け取られた複数のログエントリは、複数の被マージイベントに対応するログエントリを含んでおり、該複数の被マージイベントに対応する該ログエントリが該複数の各被マージイベント内にそれぞれ混合される、請求項1乃至11のいずれかの方法。1つの受け取られたログエントリは複数の被マージイベントを構築するのに使用される、請求項1乃至11のいずれかの方法。1つのIDが1つの前記ログエントリ内の複数フィールドを構成し、前記複数フィールドは、1つの被マージイベントに貢献する複数ログエントリを識別するように動作する、請求項1乃至13のいずれかの方法。前記受け取った複数のログエントリには、前記複数の異なる被マージイベントに対応するログエントリに加えて更に被マージイベントに対応していないログエントリが分散的に混在して含まれており、前記受け取ったログエントリが被マージイベントに対応していないと判定した場合、該被マージイベントに対応していないログエントリをシングルイベントとして出力する、請求項1乃至14のいずれかの方法。データ処理システムで受け取られた1又は複数のデバイスからの複数ログエントリをマージするためのシステムにおいて、複数のログエントリを受け取るためのモジュールと、前記ログエントリをトークンに構文解析する構文解析手段と、前記受け取った複数のログエントリのそれぞれに対して、マージプロパティに従って当該ログエントリがいずれかの潜在的な被マージイベントに共通するIDを含んでいるかを判定し、前記マージプロパティに従って或る被マージイベントの開始を示すログエントリであるかどうかを判定し、前記ログエントリが前記被マージイベントの開始のログエントリである場合、新たな被マージイベントの作成を開始し、前記マージプロパティに従って既存の被マージイベントの終了を示すログエントリであるかどうかを判定し、前記ログエントリが前記既存の被マージイベントの終了のログエントリである場合、当該既存の被マージイベントの作成を終了する、グループ化手段と、ここで、前記受け取った複数のログエントリには、複数の異なる被マージイベントに対応するログエントリが分散的に混在して含まれており、或る既存の被マージイベントに共通なIDを含む各ログエントリを、前記被マージイベントのためのマッピングプロパティに従って当該被マージイベントにマッピングするマッピング手段とを備えるシステム。コンピュータに、1又は複数のデバイスからの複数のログエントリを受け取る手順と、前記受け取った複数のログエントリのそれぞれに対し、マージプロパティに従って当該ログエントリがいずれかの潜在的な被マージイベントに共通するIDを含んでいるかを判定することと、前記マージプロパティに従って或る被マージイベントの開始を示すログエントリであるかどうかを判定することと、当該ログエントリが前記被マージイベントの開始のログエントリである場合、新たな被マージイベントの作成を開始することと、前記マージプロパティに従って既存の被マージイベントの終了を示すログエントリであるかどうかを判定することと、当該ログエントリが前記既存の被マージイベントの終了のログエントリである場合、該既存の被マージイベントの作成を終了すること、を行う手順と、ここで、前記受け取った複数のログエントリには、複数の異なる被マージイベントに対応するログエントリが分散的に混在して含まれており、或る既存の被マージイベントに共通なIDを含む各ログエントリを、前記被マージイベントのためのマッピングプロパティに従って当該被マージイベントにマッピングする手順とを実行させるためのコンピュータプログラム。ここで本発明の一実施形態を、類似の参照符号が同一のまたは機能的に同等の要素を示している図面を参照しながら説明する。図1は、本発明の一実施形態に従ってシステム100のブロック図を示す。システム100は好ましくは、ネットワーク上の一つ以上のセントラルポイントでエージェント104を含む。ネットワーク、例えば、インターネット、LAN、WAN、無線ネットワーク、移動式ネットワーク、または、リモートデバイスがエージェント104にログエントリを送信可能な他の何らかの適切な機構上で、エージェント104は複数デバイスおよびいくつかのソフトウェアからログエントリを受け取る。ログエントリはパーサ102によって受け取られ、当業者に周知の手法でトークンに構文解析される。他の実施形態では、パーシング構文解析の実行は、HectorAguilarMacias他による2005年3月1日付け出願の米国特許出願番号11/070,024、ネットワークセキュリティシステムにおけるメッセージパーシングで説明されており、参照することによって本明細書に組み込まれている。受け取られたログエントリは、パーサ102が構文解析することのできる何らかの適切なフォーマットであってよい。パーサ102は受け取られたログエントリに基づいたトークンを出力する。これらのトークンはグルーピングトラッカーモジュール110で受け取られる。グルーピングトラッカーモジュール110は、メモリ、もしくは他の記憶モジュールまたはデバイス112からマージプロパティmergepropertyマージの特性若しくは属性を受け取るように接続される。マージプロパティは、被マージイベントmergedevent複数のログエントリを合併したイベントの意を構築する際に使用され、受け取られたログエントリがどのように解釈されるべきかを指定する。グルーピングトラッカーモジュールは特定の被マージイベントに関連するログエントリをマッピングモジュール内に出力する。マッピングモジュールにおいて、ログエントリは、受け取られたログエントリから構築されつつある被マージイベント内にマッピングされる配置される。このマッピングはマッピングプロパティ122に従って行われる。マッピングモジュール120の出力は、複数ログエントリに起因する一つ以上の被マージイベントである。図1に概ね示されているこの工程につき、一例に関連して、以下、より詳細に説明する。[例]この例は、本発明の一実施形態において、どのようにイベントマージングが動作するのかの例である。以下のようにログエントリを仮定するまた、これらは時としてメッセージと呼ばれる。18Jul20051230200400conn8op0msgId82BINDuidadmin18Jul20051230250400conn7op1msgId1LDAPconnectionfrom10020122to1002012218Jul20051230300400conn8op0msgId82RESULTerror0パーサ102はこれら受け取られたログエントリをキーバリューペアに構文解析する。各ログエントリに対するこういった処理はトークンの1セットを生成する。例えば、ログエントリ18Jul20051230200400conn8op0msgId82BINDuidadminは以下のキーバリューペアを有するトークンを生成する。Date18Jul2005123020Connection8Operation0MessageId82OperationNameBINDUserIdadmin同様に、他の2つのログエントリは自身のキーバリューペアを生成する。18Jul20051230250400conn7op1msgId1LDAPconnectionfrom10020122to1002012Date18Jul2005123025Connection7Operation1MessageId1OperationNameLDAPSource10020122Destination100201218Jul20051230300400conn8op0msgId82RESULTerr0Date18Jul2005123030Connection8Operation0MessageId82OperationNameRESULTResultCode0図2はマージプロパティ112に従って受け取られたログエントリを処理するために行われる方法の一実施形態のフローチャート200である。好適な実施形態では、この方法はグルーパgrouper/トラッカー110によって実行される。タイムアウトが、構築中の被マージイベントに到達した場合202、被マージイベントは終了して204、制御は要素202に戻る。よって、明らかな終了のログエントリが一つも検出されなかったとしても、被マージイベントのタイムアウトが発生すれば、その被マージイベントは閉じられるはずである。タイムアウト値は、ログするデバイスの種類毎に異なってもよく、単一デバイスからの被マージイベント毎に異なってもよい。以下に説明されるように、タイムアウト値はマージプロパティに含まれている。要素206では、次のログエントリが処理のために受け取られる。そのログエントリがマージングマージプロパティ112に定義されているようにのためのものであると考えられるはずである場合208には処理が継続され、そうでない場合にはシングルイベントが送出され209要素202に処理が戻る。ログエントリが或る新しい被マージイベント210マージプロパティ112に定義されているようにについての開始のログエントリである場合、当該新しい被マージイベントが開かれる212、構築中の処理における複数の被マージイベントの例として図5参照。いくつかの実施形態では、その被マージイベントのタイムアウトクロックがスタートされる212。ログエントリが、開始のログエントリではなく、構築中の既存の被マージイベントのIDを含んでいる場合214、イクセプションがログ記録され、シングルのイベントが送出される215。そうでない場合、処理は継続されてトークンおよびログエントリがマッピングモジュールに送られ220、この結果、その情報を被マージイベントに付加することができる。一実施形態では、IDはログエントリのシングルフィールドであってもよく、被マージイベントの全てのログエントリに共通の値を持つログエントリの複数フィールドであってもよい。ログエントリが或る既存の被マージイベントマージプロパティ112に定義されているようにについての終了のログエントリである場合216、既存の被マージイベントは終了され、グルーパ/トラッカーから取り除かれる218、構築中の処理における複数の被マージイベントの例として図5参照。ログエントリがイベント終了を示している場合、対応する被マージイベントは終了され、図5に示される構造から取り除かれなければならない。例の説明を続けると、この例のマージプロパティ112は以下のように定義される。mergecount1merge0patterncount1merge0pattern0tokenOperationNamemerge0pattern0regexmerge0startscount1merge0starts0tokenOperationNamemerge0starts0regexBINDmerge0endscount1merge0ends0tokenOperationNamemerge0ends0regexRESULTmerge0idtokensConnectionOperationMessageIdmerge0timeout60000先ず、我々はただ一つの被マージオペレーションを有することを示す。mergecount1それから、マージングのために考えられるべき、BINDまたはRESULTに設定されているOperationNameを有する全てのメッセージを求めることを我々は定義する。merge0patterncount1merge0pattern0tokenOperationNamemerge0pattern0regex今や、BINDに設定されているOperationNameを有するメッセージがマージ処理を開始することを指定する。merge0startscount1merge0starts0tokenOperationNamemerge0starts0regexBINDそして、OperationNameがRESULTにセットされているメッセージを検出すると、マージ処理を終了することにすると指定する。merge0endscount1merge0ends0tokenOperationNamemerge0ends0regexRESULT我々はまた、イベントが同じグループに属することをどのように識別するかを定義する必要があり、Connection接続、OperationオペレーションおよびMessageIdメッセージIDの値が同一でなければならないということを指定することでこれを行う被マージイベントのためのIDを形成すること。merge0idtokensConnectionOperationMessageId最後に、タイムアウトを定義して、もし60秒後にOperationNameがRESULTにセットされているメッセージを得られなかった場合、そのイベントはそのまま送出する。merge0timeout60000図3は、マッピングプロパティに従ってログエントリを被マージイベントに加えるために行われる方法の一実施形態のフローチャートである。受け取られたログエントリおよびそれらのトークンは、構築された被マージイベントの少なくとも一つと関連しているとして既に識別されている。マッピングモジュール120はログエントリの情報を構築された一つ以上の被マージイベントにマップする構築された複数の被マージイベントの例として図5参照、被マージイベントのためのフォーマット例として図6参照。この例では、マッピングプロパティ122は以下のように定義される。eventdeviceReceiptTimeDateeventnameoneOfeventdeviceActionResultCodeeventdestinationUserIdUserIdこれらプロパティは、イベントのためのタイムスタンプとしてDateを、デバイスアクションとしてResultCodeを、そして、出力先ユーザIDとしてUserIDを使用するつもりであることを示す。名前は以下のように定義される。eventnameoneOfこういったフレーム構造なので、最終データを格納するために使用することができるトラッキングイベントを参照することができる。この場合、OperationNameまたはトラッキングイベントの名前もしあればのいずれかを使用すべきであるということを、オペレーションは意味する。例えば、最初のイベントは以下のキーバリューを含んでいるであろう。18Jul20051230200400conn8op0msgId82BINDuidadminDate18Jul2005123020Connection8Operation0MessageId82OperationNameBINDUserIdadminそして新たなトラッキングイベントが生成されて、以下のマッピングで終了するであろう。mergedeventnameBINDmergedeventdeviceReceiptTime18Jul2005123020mergedeventdestinationUserIdadmin被マージイベントの名前は新しい被マージイベントであるためBINDとなり、mergedeventnameは一つも存在せず、OperationNameの値は使用されるBIND。ここで、マージンググループのための第2のイベントが処理されると以下になる。18Jul20051230300400conn8op0msgId82RESULTerr0Date18Jul2005123030Connection8Operation0MessageId82OperationNameRESULTResultCode0被マージイベントは以下のようにマップされるであろう。mergedeventnameBINDmergedeventdeviceReceiptTime18Jul2005123030mergedeventdestinationUserIdadminmergedeventdeviceAction0このイベントが処理されるとき、BINDにセットされた名前でトラック化されたイベントmergedeventが既にあるため、mergedeventnameがBINDにセットされることに注目されたい。そこで、この場合、OperationNameは使用されず、mergedeventは値BINDを維持する。mergedeventの値はデフォルトによって置き換えられるであろうから、今はどのようにmergedeventdeviceReceiptTimeが18Jul2005123030にセットされたかに注目されたい。そこで、deviceReceiptTimeは最新の値と見なされるであろう。図4は、本発明の一実施形態におけるマッピングプロパティで用いられるoneOf関数402を示すフローチャート400である。例えば、イベント名のためにoneOf関数を実行するためには、イベント名が現在ブランクである場合404、現在のトークン名が使用される406。名前がブランクであない場合、非ブランク名が維持される408。oneOfはマッピングコンポーネントで使用することができるオペレーションの一例にすぎないということが理解されるはずである。マッピングコンポーネントは、被マージイベントのフィールドを参照することができる他のオペレーションを含んでもよい。oneOf関数は、実際のマッピングフレーム構造における一例にすぎない。オペレーションの他の例は連結、タイプ変換オペレーションおよびその他を含む。図5は、各種の被マージイベントのためのログエントリが分散的に受け取られる場合に、複数の被マージイベントが構築されつつある例500を示す。図6は一つの被マージイベントのフォーマット例550を示す。例えば、図5の各種被マージイベントそれぞれでは、全ての値を各被マージイベントのそれぞれに満たすことができないが、このフォーマットを有する。本願発明の各種具体例は、連結、タイプ変換、カウンティング、およびその他を含んだ被マージオペレーションの他の例を含むことができる。他の実施形態は、被マージイベントの各種タイプの数を統計が維持することができるようにするために、被マージイベントの集合体を含む。これら統計されたデータを、単体でまたは他の送信データとの組み合わせでモニタに送信することができる。以下の段落では本発明の一実施形態に含まれるマージプロパティ112例が簡単に記述される。mergecount定義されるはずのマージオペレーションの数を定義。mergemergeindexpatterncount定義されるであろうパターンがいくつあるかを定義する。マージオペレーションはマージオペレーションで考慮されるであろうイベントを定義するためのパターンを必要とする。もしパターンが一つも与えられていなければ全てのイベントが考慮されるであろう。mergemergeindexpatternpatternindextokenこのパターンのために使用されるであろうトークンを定義する。mergemergeindexpatternpatternindexregexこのパターンで使用するための正規表現を定義する。mergemergeindexstartscount定義されるであろうスタートパターンがいくつあるかを定義する。マージオペレーションはマージオペレーションを開始するはずのイベントを定義するためのスタートパターンを必要とする、もしパターンが一つも与えられていなければ全てのイベントがマージオペレーションを開始する。オペレーションが一旦開始されると、タイムアウトまたはエンドパターンマッチを介した終了のみすることができる。mergemergeindexstartspatternindextokenこのスタートパターンのために使用されるはずのトークンを定義。mergemergeindexstartspatternindexregexこのスタートパターンで使用するための正規表現を定義する。mergemergeindexendscount定義されるであろうエンドパターンがいくつあるかを定義する。マージオペレーションはマージオペレーションを終了するはずのイベントを定義するためのエンドパターンを必要とする、もしパターンが一つも与えられていなければ一つのイベントもマージオペレーションを終了せず、そのオペレーションはタイムアウトを介した終了のみができる。mergemergeindexendspatternindextokenこのエンドパターンのために使用されるであろうトークンを定義する。mergemergeindexendspatternindexregexこのエンドパターンで使用するための正規表現を定義する。mergemergeindextimeoutマージングオペレーションのためにタイムアウトをミリ秒単位で定義する。タイムアウトが到達した場合、マージオペレーションは終了するはずであり、イベントは送出されるはずである。これらイベントは異なるスレッドを介して送出されるはずであり、イベントの順番は保証されないということに留意する。mergemergeindexiddelimiter前述のリストに使用するためのオプションのデリミタを定義する。もし定義されていないのであれば、デリミタはコンマである。mergemergeindexsendpartialeventsこのプロパティはオプショナルであり、デフォルトでフォールスにセットされている。基本的にこのプロパティは、他のイベントとマージされているとしてマージオペレーションの各イベントが個別に送出されなければならないかどうかを指定する。mergemergeindexcapacityこのプロパティはオプショナルであり、デフォルトで1000にセットされている。イベントマージングオペレーションは被マージ結果を維持するイベントのキャッシュを必要とする。これはどれだけキャッシュが大きくあるはずかを定義し、キャッシュがオーバーフローするとイベントはそのまま送出されるはずでありエラーがログ記録されるはずである。本明細書内の一実施形態または実施形態の参照は、その実施形態に関連して記述された特別な機能、構成または特徴が本発明の少なくとも1つの実施形態に含まれていることを意味する。本明細書の各所の一実施形態ではといった句の出現は必ずしも同じ実施形態を参照することが全てであるということではない。詳細な説明のいくつかの箇所は、コンピュータメモリ内のデータビット上で稼働するアルゴリズムおよび象徴の用語で記述されている。これらのアルゴリズム記述や表示は、データ処理分野の熟練者が他の当業者に自身の仕事の本質を最も効果的に伝達する手段である。アルゴリズムはここでは、しかも一般的に、所望の結果を導き出す工程命令の首尾一貫した順序であると考える。これら工程は物理的な量の物理的な操作を必要とするものである。通常、必ずというわけではないが、これらの量は、記憶、転送、組み合わせ、比較、および他の操作が可能な電気的または磁気的な信号といった形態をとる。大部分は共通使用の理由で、これらの信号はビット、値、要素、シンボル、キャラクタ、ターム、番号またはこれに類するもので呼ばれることは都合のいい時々に証明されている。しかし、これらおよび類似のタームの全ては適切な物理量に関連し、これらの量に適用される便利な表示に過ぎないといったことを心にとどめておくべきである。詳細に述べられてない限り、そうでなければ解説から明らかではない限り、例えば処理するprocessingやコンピュータで計算するcomputingや計算するcalculatingや判定するdeterminingや表示するdisplayingや同様のタームを使用する解説はコンピュータシステムや類似の電子計算装置の操作および作業を参照する、ということは説明全体を通して正しく理解され、コンピュータシステムは、そのレジスタおよびメモリ内の物理電子量として表されるデータを操作して、コンピュータシステムメモリやレジスタ、もしくはその他の情報記憶装置、伝送または表示装置内で物理量として同様に表される他のデータに変換する。本発明のある局面は、アルゴリズムの形式でここで説明される、処理工程および命令を含む。注意すべきは、本発明の処理工程および命令を、ソフトウェア、ファームウェア、または、ハードウェアで具体化することができるということであり、ソフトウェアで具体化される場合、これらは常駐するようにダウンロードできたり、リアルタイムネットワークオペレーティングシステムを用いて異なるプラットフォームから操作できたりする。本発明はまた、ここでの動作を実行するための装置に関連する。この装置は必要な目的のために特別に構築してもよく、コンピュータによりアクセスできるコンピュータ読み取り可能な媒体に格納されたコンピュータプログラムによって、選択的に稼働または再構築される汎用コンピュータを備えてもよい。こういったコンピュータプログラムは、例えば、ただし限定されるわけではなく、フロッピー登録商標ディスクを含んだあらゆるタイプのディスク、光ディスク、CD-ROM、光磁気ディスク、リードオンリーメモリROM、ランダムアクセスメモリRAM、EPROM、EEPROM、磁気または光カード、特定用途向けICASIC、または、電子命令を格納するのに好適なあらゆるタイプの媒体であるコンピュータ読み取り可能な記憶媒体に格納してもよく、これら媒体のそれぞれはコンピュータのシステムバスに接続される。さらに、この明細書で参照されるコンピュータは、シングルプロセッサを含んでもよく、または、計算能力を向上するために設計されたマルチプロセッサを採用したアーキテクチャであってもよい。ここで提示されるアルゴリズムおよび動作は、何らかの特別なコンピュータや他の装置に本質的に関連しているわけではない。各種汎用システムをここでの教示に従ってプログラムと共に使用することができ、または、必要な方法工程を実行するより専門的な装置を構築することが便利であることも証明できる。これらシステムの多様性のための必要な構成は、等価の変化と共に当業者とって明らかである。加えて、本発明は何らかの特別なプログラミング言語を参照して説明されてはいない。プログラミング言語の多様性は、ここで説明されるように、本発明の教示を実現するために使用することができ、特定言語の何らかの参照は本発明の使用可能性および本発明のベストモードのために提供される。好適な実施形態およびいくつかの代替の実施形態を参照して、本発明は詳細に示し、説明されている一方、形や詳細の各種変更が本発明の気質や範囲から乖離することなくここで可能であることは関連分野の当業者に理解されるはずである。最後に、注意すべきは、本明細書で使用される言語は、可読性および教示用目的のために主として選択され、発明的主題を線引きまたは範囲を定めるために選択されたわけではない、ということである。従って、本発明の開示は、本発明の範囲の実例となるように意図されており、限定されず、特許請求の範囲に示される。"