(57)【要約】ルール分配器を分散配置したイベント処理システムにおいて、イベントの複製に伴うディスパッチャの処理負荷の増大を抑制する。  イベント処理システムは、イベント２０１をローカルシステム１００に転送する複数のディスパッチャ１４０と、アプリケーションサーバ１６０へイベント処理結果２０５を送信する複数のローカルシステム１００とを備える。ディスパッチャ１４０において、ローカルシステム１００（ＬＳ１）の処理ルール２０２に基づくディスパッチルール２０４と、ローカルシステム１００（ＬＳ２）の処理ルール２０２に基づくディスパッチルール２０４の両方に、イベント２０１が合致した回数が所定の閾値を超過した場合、ローカルシステム１００（ＬＳ１）の処理ルール２０２をローカルシステム１００（ＬＳ２）へ移動、または、ローカルシステム１００（ＬＳ２）の処理ルール２０２をローカルシステム１００（ＬＳ１）へ移動する。
2010107103.tif 000002
【特許請求の範囲】
【請求項１】
イベント発生源からイベントを受信する複数のディスパッチャとアプリケーションサーバへイベントの処理結果を送信する複数のローカルシステムとを備え、
前記複数のローカルシステムのそれぞれは、
前記アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、当該処理ルールを自ローカルシステムに設定し、自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールを前記ディスパッチャに設定し、
前記イベントを前記ディスパッチャから受信した場合、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、
前記複数のディスパッチャのそれぞれは、
前記イベントを前記イベント発生源から受信した場合、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先のローカルシステムに当該イベントを転送し、
前記複数のディスパッチャのいずれかにおいて、前記複数のローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、前記複数のローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動することを特徴とするイベント処理システム。
【請求項２】
前記第二のローカルシステムは、
前記第一の処理ルールを当該第二のローカルシステムへ移動する場合、当該第一の処理ルールを自ローカルシステムに設定し、自ローカルシステムを当該第一の処理ルールの前記イベント条件に合致する前記イベントの転送先とした前記ディスパッチルールを生成し、当該ディスパッチルールを前記ディスパッチャに設定することを特徴とする請求項１記載のイベント処理システム。
【請求項３】
前記複数のローカルシステムのそれぞれは、
前記アプリケーションサーバから受信した前記処理ルールを自ローカルシステムのいずれか１つの処理サーバに設定し、前記ディスパッチルールを生成し、前記ディスパッチャに設定するルール分配部と、
前記処理ルールに従って、当該処理ルールに含まれる前記イベント条件に合致する前記イベントを処理する少なくとも１つの前記処理サーバとを備え、
前記第二のローカルシステムの前記ルール分配部は、
前記第一の処理ルールを当該第二のローカルシステムへ移動する場合、前記第二の処理ルールが設定されている前記処理サーバに当該第一の処理ルールを設定し、自ローカルシステムを当該第一の処理ルールの前記イベント条件に合致する前記イベントの転送先とした前記ディスパッチルールを生成し、当該ディスパッチルールを前記ディスパッチャに設定することを特徴とする請求項２記載のイベント処理システム。
【請求項４】
前記複数のディスパッチャのそれぞれは、
前記第一の処理ルールに基づき設定した前記イベント条件と前記第二の処理ルールに基づき設定した前記イベント条件の両方に前記イベントが合致した回数が所定の閾値を超過した場合、処理ルール移動要求を前記第一のローカルシステムと前記第二のローカルシステムの少なくとも一方に送信し、
前記第一のローカルシステムと前記第二のローカルシステムの少なくとも一方が前記処理ルール移動要求を受信した場合、前記第一のローカルシステムと前記第二のローカルシステムの少なくとも一方の前記ルール分配部は、前記第一の処理ルールの前記第二のローカルシステムへの移動が可能かどうかを判断し、
前記第二のローカルシステムの前記ルール分配部は、
前記第一の処理ルールの当該第二のローカルシステムへの移動が可能な場合、前記第二の処理ルールが設定されている前記処理サーバに当該第一の処理ルールを設定し、自ローカルシステムを当該第一の処理ルールの前記イベント条件に合致する前記イベントの転送先とした前記ディスパッチルールを生成し、当該ディスパッチルールを前記ディスパッチャに設定することを特徴とする請求項３記載のイベント処理システム。
【請求項５】
前記第一の処理ルールの前記第二のローカルシステムへの移動が可能なかどうかの判断は、前記第一のローカルシステムにおいて前記第一の処理ルールを設定した前記処理サーバの負荷情報と、前記第二のローカルシステムにおいて前記第二の処理ルールを設定した前記処理サーバの負荷情報とをもとに行うことを特徴とする請求項４記載のイベント処理システム。
【請求項６】
前記第一の処理ルールの前記第二のローカルシステムへの移動が可能なかどうかの判断は、前記第一のローカルシステムにおいて前記第一の処理ルールを設定した前記処理サーバにおける当該第一の処理ルールに関するイベント処理結果の送信頻度と、前記第二のローカルシステムにおいて前記第二の処理ルールを設定した前記処理サーバにおける当該第二の処理ルールに関するイベント処理結果の送信頻度とをもとに行うことを特徴とする請求項４記載のイベント処理システム。
【請求項７】
ローカルシステムが、アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、前記ローカルシステムは、当該処理ルールを自ローカルシステムに設定し、
前記ローカルシステムが、自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールをディスパッチャに設定し、
前記ディスパッチャが、前記イベントをイベント発生源から受信した場合、前記ディスパッチャは、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先のローカルシステムに当該イベントを転送し、
前記ローカルシステムが、前記イベントを前記ディスパッチャから受信した場合、前記ローカルシステムは、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、
前記ディスパッチャのいずれかにおいて、複数の前記ローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、複数の前記ローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動することを特徴とするイベント処理方法。
【請求項８】
前記ディスパッチャによる前記第一の処理ルールの前記第二のローカルシステムへの移動において、
前記第二のローカルシステムが、前記第一の処理ルールを自ローカルシステムに設定し、さらに
前記第二のローカルシステムが、自ローカルシステムを当該第一の処理ルールの前記イベント条件に合致する前記イベントの転送先とした前記ディスパッチルールを生成し、当該ディスパッチルールを前記ディスパッチャに設定することを特徴とする請求項７記載のイベント処理方法。
【請求項９】
前記ローカルシステムが前記処理ルールを自ローカルシステムに設定する場合、前記ローカルシステムのルール分配部が、前記アプリケーションサーバから受信した前記処理ルールを自ローカルシステムのいずれか１つの処理サーバに設定し、
前記イベント処理において、前記処理サーバが、前記処理ルールに従って、当該処理ルールに含まれる前記イベント条件に合致する前記イベントを処理し、
前記第二のローカルシステムが、前記第一の処理ルールを自ローカルシステムに設定する場合、前記第二のローカルシステムの前記ルール分配部が、前記第二の処理ルールが設定されている前記処理サーバに当該第一の処理ルールを設定することを特徴とする請求項８記載のイベント処理方法。
【請求項１０】
前記ディスパッチャによる前記第一の処理ルールの前記第二のローカルシステムへの移動において、
前記ディスパッチャが、前記第一の処理ルールに基づき設定した前記イベント条件と前記第二の処理ルールに基づき設定した前記イベント条件の両方に前記イベントが合致した回数が所定の閾値を超過した場合、処理ルール移動要求を前記第一のローカルシステムと前記第二のローカルシステムの少なくとも一方に送信し、さらに
前記第一のローカルシステムと前記第二のローカルシステムの少なくとも一方が前記処理ルール移動要求を受信した場合、前記第一のローカルシステムと前記第二のローカルシステムの少なくとも一方の前記ルール分配部が、前記第一の処理ルールの前記第二のローカルシステムへの移動が可能かどうかを判断することを特徴とする請求項９記載のイベント処理方法。
【請求項１１】
前記第一の処理ルールの前記第二のローカルシステムへの移動が可能なかどうかの判断は、前記第一のローカルシステムにおいて前記第一の処理ルールを設定した前記処理サーバの負荷情報と、前記第二のローカルシステムにおいて前記第二の処理ルールを設定した前記処理サーバの負荷情報とをもとに行うことを特徴とする請求項１０記載のイベント処理方法。
【請求項１２】
前記第一の処理ルールの前記第二のローカルシステムへの移動が可能なかどうかの判断は、前記第一のローカルシステムにおいて前記第一の処理ルールを設定した前記処理サーバにおける当該第一の処理ルールに関するイベント処理結果の送信頻度と、前記第二のローカルシステムにおいて前記第二の処理ルールを設定した前記処理サーバにおける当該第二の処理ルールに関するイベント処理結果の送信頻度とをもとに行うことを特徴とする請求項１０記載のイベント処理方法。
【請求項１３】
アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、当該処理ルールを自ローカルシステムに設定し、自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールをディスパッチャに設定し、
前記イベントを前記ディスパッチャから受信した場合、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、
前記ディスパッチャにおいて、自ローカルシステムが当該自ローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、他のローカルシステムが当該他のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記他のローカルシステムに移動する
ことを特徴とするローカルシステム。
【請求項１４】
複数のローカルシステムのそれぞれから、当該ローカルシステムをイベント条件に合致するイベントの転送先としたディスパッチルールを受信し、
前記イベントをイベント発生源から受信した場合、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先の前記ローカルシステムに当該イベントを転送し、
前記複数のローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、前記複数のローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動することを特徴とするディスパッチャ。
【請求項１５】
コンピュータに、
アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、当該処理ルールを自ローカルシステムに設定し、
自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールをディスパッチャに設定し、
前記イベントを前記ディスパッチャから受信した場合、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、
前記ディスパッチャにおいて、自ローカルシステムが当該自ローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、他のローカルシステムが当該他のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記他のローカルシステムに移動する
処理を実行させるローカルシステム用プログラムを記録したプログラム記録媒体。
【請求項１６】
コンピュータに、
複数のローカルシステムのそれぞれから、当該ローカルシステムをイベント条件に合致するイベントの転送先としたディスパッチルールを受信し、
前記イベントをイベント発生源から受信した場合、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先の前記ローカルシステムに当該イベントを転送し、
前記複数のローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、前記複数のローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動する
処理を実行させるディスパッチャ用プログラムを記録したプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イベント処理システム、イベント処理方法、ローカルシステム、ディスパッチャ、及びプログラム記憶媒体に関し、特にＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、センサのようなデバイス等から大量に発生するイベントの処理を行うイベント処理システム、イベント処理方法、ローカルシステム、ディスパッチャ、及びプログラム記憶媒体に関する。
【背景技術】
【０００２】
デバイスなどから大量に発生するイベントを処理するシステムの一例が特許第４１６１９９８号公報に記載されている。図３１に特許第４１６１９９８号公報の負荷分散振り分けシステムを示す。図３１を参照すると、負荷分散振り分けシステムは、イベント処理分散器５０１（ルール分配器）、コンテキスト非依存振り分け器５０２、複数のコンテキスト依存振り分け器（ディスパッチャ）５０３ａ、５０３ｂ（以下、５０３と略称）、及び複数のイベント処理サーバ５０４ａ、５０４ｂ（以下、５０４と略称）により構成される。イベント処理を求めるアプリケーション５０６ａ、５０６ｂ（以下、５０６と略称）は、イベントの処理ルールをイベント処理分散器５０１に送信する（矢印５１１）。処理ルールを受信したイベント処理分散器５０１は、イベント処理サーバ５０４の負荷が均等になるように、かつ同じイベントに関するイベント処理は同じサーバで行われるように、処理ルールをイベント処理サーバ５０４に設定する（矢印５１２）。
例えば、ＲＦＩＤシステムにおいて、アプリケーション５０６が、ある製品を製造するために必要な全ての部材のＲＦＩＤタグを全て検出したい場合、アプリケーション５０６は、「ある製品の全ての部材のＲＦＩＤタグを全て検出したらアプリケーションに通知する」という処理ルールを生成し、イベント処理分散器５０１に送信する。イベント処理分散器５０１は、この処理ルールを、例えば、イベント処理サーバ５０４ａに設定する。
イベント処理分散器５０１は、処理されるイベントがそのイベントに関する処理ルールを設定された処理サーバに転送されるように、全てのコンテキスト依存振り分け器５０３にイベント振り分けルール（ディスパッチルール）を設定する（矢印５１３ａ、５１３ｂ）。
上記に示した例の場合、イベント処理分散器５０１は、「その製品に関する部材のＲＦＩＤタグの検出イベントは、イベント処理サーバ５０４ａに転送する」というイベント振り分けルールをコンテキスト依存振り分け器５０３に設定する。
これにより、デバイス等のイベント発生源５０５ａ、５０５ｂ（以下、５０５と略称）から発生したイベントは、コンテキスト依存イベント振り分け器５０３により、そのイベントに関する処理ルールが設定されたイベント処理サーバ５０４に転送される（矢印５１４ａ、５１４ｂ、５１５ａ、５１５ｂ、５１６ａ、５１６ｂ、５１６ｃ、５１６ｄ）。イベント処理サーバ５０４は、処理ルールに基づきイベントを処理し、処理結果をアプリケーション５０６に通知する（矢印５１７ａ、５１７ｂ）。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許第４１６１９９８号公報記載の負荷分散振り分けシステムでは、ルール分配器が複数のアプリケーションから処理要求を受け付け、イベント処理サーバへのイベント処理ルールの設定、ディスパッチルールの生成とディスパッチャへの設定を行う必要があった。このため、大規模なシステムでは、ルール分配器の処理負荷が高くなり、システムの処理性能に影響を与えるという問題がある。
この問題を解決するために、ルール分配器をローカルシステム毎に分散配置し、イベント処理ルールの設定、イベント振り分けルールの生成・設定を、ローカルシステム毎に独立して行う方法がある。しかしながら、ルール分配器をローカルシステム毎に分散配置した場合、複数の異なるアプリケーションサーバが、異なるローカルシステムに対して、同じイベント条件の処理要求を行う可能性がある。この場合、複数のローカルシステムが、同じイベント条件のディスパッチルールをディスパッチャに設定するため、ディスパッチャは、１つのイベントを複数のローカルシステムに複製（コピー）して転送する必要があり、ディスパッチャの処理負荷が増大するという課題がある。
本発明の目的は、上述した課題を解決し、ルール分配器を分散配置したイベント処理システムにおいて、イベントの複製に伴うディスパッチャの処理負荷の増大を抑制することができるイベント処理システム、イベント処理方法、ローカルシステム、ディスパッチャ、及びプログラム記憶媒体を提供することにある。
【課題を解決するための手段】
【０００４】
本発明のイベント処理システムは、イベント発生源からイベントを受信する複数のディスパッチャとアプリケーションサーバへイベントの処理結果を送信する複数のローカルシステムとを備え、前記複数のローカルシステムのそれぞれは、前記アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、当該処理ルールを自ローカルシステムに設定し、自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールを前記ディスパッチャに設定し、前記イベントを前記ディスパッチャから受信した場合、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、前記複数のディスパッチャのそれぞれは、前記イベントを前記イベント発生源から受信した場合、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先のローカルシステムに当該イベントを転送し、前記複数のディスパッチャのいずれかにおいて、前記複数のローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、前記複数のローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動することを特徴とする。
本発明のイベント処理方法は、ローカルシステムが、アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、前記ローカルシステムは、当該処理ルールを自ローカルシステムに設定し、前記ローカルシステムが、自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールをディスパッチャに設定し、前記ディスパッチャが、前記イベントをイベント発生源から受信した場合、前記ディスパッチャは、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先のローカルシステムに当該イベントを転送し、前記ローカルシステムが、前記イベントを前記ディスパッチャから受信した場合、前記ローカルシステムは、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、前記ディスパッチャのいずれかにおいて、複数の前記ローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、複数の前記ローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動することを特徴とする。
本発明のローカルシステムは、アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、当該処理ルールを自ローカルシステムに設定し、自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールをディスパッチャに設定し、前記イベントを前記ディスパッチャから受信した場合、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、前記ディスパッチャにおいて、自ローカルシステムが当該自ローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、他のローカルシステムが当該他のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記他のローカルシステムに移動することを特徴とする。
本発明のディスパッチャは、複数のローカルシステムのそれぞれから、当該ローカルシステムをイベント条件に合致するイベントの転送先としたディスパッチルールを受信し、前記イベントをイベント発生源から受信した場合、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先の前記ローカルシステムに当該イベントを転送し、前記複数のローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、前記複数のローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動することを特徴とする。
本発明の第一のプログラム記録媒体は、コンピュータに、アプリケーションサーバから処理するイベントの条件を示すイベント条件を含む処理ルールを受信した場合、当該処理ルールを自ローカルシステムに設定し、自ローカルシステムを当該イベント条件に合致する前記イベントの転送先としたディスパッチルールを生成し、当該ディスパッチルールをディスパッチャに設定し、前記イベントを前記ディスパッチャから受信した場合、前記処理ルールに従って当該イベントを処理し、当該イベントの処理結果を、当該処理ルールの送信元の前記アプリケーションサーバに通知し、前記ディスパッチャにおいて、自ローカルシステムが当該自ローカルシステムの前記処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、他のローカルシステムが当該他のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記他のローカルシステムに移動する処理を実行させる。
本発明の第二のプログラム記録媒体は、コンピュータに、複数のローカルシステムのそれぞれから、当該ローカルシステムをイベント条件に合致するイベントの転送先としたディスパッチルールを受信し、前記イベントをイベント発生源から受信した場合、前記ディスパッチルールを参照し、当該イベントに合致する前記イベント条件に対応した転送先の前記ローカルシステムに当該イベントを転送し、前記複数のローカルシステムのうちの第一のローカルシステムが当該第一のローカルシステムの処理ルールのうちの第一の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件と、前記複数のローカルシステムのうちの第二のローカルシステムが当該第二のローカルシステムの前記処理ルールのうちの第二の処理ルールに基づき設定した前記ディスパッチルールの前記イベント条件との両方に、前記イベントが合致した回数が所定の閾値を超過した場合、当該第一の処理ルールを前記第二のローカルシステムに移動する処理を実行させる。
【発明の効果】
【０００５】
本発明の効果は、ルール分配器を分散配置したイベント処理システムにおいて、イベントの複製に伴うディスパッチャの処理負荷の増大を抑制することができることである。
【図面の簡単な説明】
【０００６】
【図１】本発明の第一の実施の形態におけるイベント処理システム全体の構成を示す図である。
【図２】本発明の第一の実施の形態におけるローカルシステム１００の構成を示す図である。
【図３】本発明の第一の実施の形態におけるディスパッチャ１４０の構成を示す図である。
【図４】本発明の第一の実施の形態におけるディスパッチルール設定処理の動作を示すシーケンス図である。
【図５】本発明の第一の実施の形態におけるイベント処理（処理ルール移動前）の動作を示すシーケンス図である。
【図６】本発明の第一の実施の形態における処理ルール移動処理の動作を示すシーケンス図である。
【図７】本発明の第一の実施の形態におけるイベント処理（処理ルール移動後）の動作を示すシーケンス図である。
【図８】本発明の第一の実施の形態における処理ルール２０２（処理ルール移動前）の例を示す図である。
【図９】本発明の第一の実施の形態における処理ルール設定情報２１１（処理ルール移動前）の例を示す図である。
【図１０】本発明の第一の実施の形態におけるローカルディスパッチルール２０３（処理ルール移動前）の例を示す図である。
【図１１】本発明の第一の実施の形態における、ローカルシステム１００で生成されるディスパッチルール２０４（処理ルール移動前）の例を示す図である。
【図１２】本発明の第一の実施の形態における、ディスパッチャに設定されたディスパッチルール２０４（処理ルール移動前）の例を示す図である。
【図１３】本発明の第一の実施の形態におけるイベント２０１の例を示す図である。
【図１４】本発明の第一の実施の形態における複製回数カウンタ２２１の例を示す図である。
【図１５】本発明の第一の実施の形態における処理ルール移動要求２０６の例を示す図である。
【図１６】本発明の第一の実施の形態における負荷情報２１２の例を示す図である。
【図１７】本発明の第一の実施の形態における処理ルール受入要求２０７の例を示す図である。
【図１８】本発明の第一の実施の形態における処理ルール受入応答２０８の例を示す図である。
【図１９】本発明の第一の実施の形態における処理ルール受入要求２０７の他の例を示す図である。
【図２０】本発明の第一の実施の形態における処理ルール受入応答２０８の他の例を示す図である。
【図２１】本発明の第一の実施の形態における処理ルール２０２（処理ルール移動後）の例を示す図である。
【図２２】本発明の第一の実施の形態における処理ルール設定情報２１１（処理ルール移動後）の例を示す図である。
【図２３】本発明の第一の実施の形態におけるローカルディスパッチルール２０３（処理ルール移動後）の例を示す図である。
【図２４】本発明の第一の実施の形態における、ローカルシステム１００で生成されるディスパッチルール２０４（処理ルール移動後）の例を示す図である。
【図２５】本発明の第一の実施の形態における、ディスパッチャに設定されたディスパッチルール２０４（処理ルール移動後）の例を示す図である。
【図２６】本発明の第一の実施の形態の特徴的な構成を示す図である。
【図２７】本発明の第二の実施の形態におけるローカルシステム１００の構成を示す図である。
【図２８】本発明の第一の実施の形態における処理結果送信情報２１３の例を示す図である。
【図２９】本発明の第二の実施の形態における処理ルール受入要求２０７の例を示す図である。
【図３０】本発明の第二の実施の形態における処理ルール受入要求２０７の他の例を示す図である。
【図３１】特許第４１６１９９８号公報の負荷分散振り分けシステムの構成を示す図である。
【符号の説明】
【０００７】
１００  ローカルシステム
１１０  ルール分配部
１１１  処理ルール設定部
１１２  処理ルール分配アルゴリズム記憶部
１１３  処理ルール設定情報記憶部
１１４  ディスパッチルール設定部
１２０  処理サーバ
１３０  ローカルディスパッチャ
１４０  ディスパッチャ
１５０  イベント発生源
１６０  アプリケーションサーバ
２０１  イベント
２０２  処理ルール
２０３  ローカルディスパッチルール
２０４  ディスパッチルール
２０５  イベント処理結果
２０６  処理ルール移動要求
２０７  処理ルール受入要求
２０８  処理ルール受入応答
２１１  処理ルール設定情報
２１２  負荷情報
２１３  処理結果送信情報
２２１  複製回数カウンタ
【発明を実施するための最良の形態】
【０００８】
（第一の実施の形態）
次に、本発明の第一の実施の形態について図面を参照して詳細に説明する。
図１は、本発明の第一の実施の形態におけるイベント処理システム全体の構成図である。図１を参照すると、本発明のイベント処理システムの第一の実施の形態は、ネットワーク（図示せず）上に設置される複数のローカルシステム１００、複数のディスパッチャ１４０、イベント発生源１５０、及びアプリケーションサーバ１６０を備える。
ここで、ローカルシステム１００は、それぞれ識別子ＬＳ１、ＬＳ２の２つのローカルシステムを有する。また、複数のディスパッチャ１４０は、それぞれ識別子ＧＤ１〜ＧＤ４の４つのディスパッチャを有する。イベント発生源１５０は、それぞれ識別子Ｇ１〜Ｇ８の８つのイベント発生源を有する。また、アプリケーションサーバ１６０は、それぞれ識別子ＡＳ１１、ＡＳ１２、ＡＳ１３、ＡＳ２１、ＡＳ２２、ＡＳ２３の６つのアプリケーションサーバを有する。
なお、各図面および以下の説明において、引用番号に続く（）内の符号は、識別子を示すものとする。たとえば、ローカルシステム１００（ＬＳ１）は、識別子ＬＳ１のローカルシステムを示し、アプリケーションサーバ１６０（ＡＳ１１）は、識別子ＡＳ１１のアプリケーションサーバを示す。このような表記は、処理ルールにおいても同様とする。
イベント発生源１５０は、検出した情報をイベント２０１としてローカルシステム１００に送信する。イベント発生源１５０は、情報を検出してローカルシステム１００に送信できるものであれば、どのようなものでもよい。
イベント発生源１５０としては、例えば、ＲＦＩＤリーダや磁気カードリーダ等、非接触あるいは接触型の情報読み取り装置や、温度、気圧、加速度等を検出する各種センサ等がある。
イベント発生源１５０が送信するイベント２０１には、「ある時刻でイベント発生源１５０が検出した情報（例えば、ある時刻において検出されたＲＦＩＤタグの識別子や、温度、気圧、加速度等）」に加え、「当該イベント発生源が検出する情報の種別（イベント発生源種別）」、「当該イベント発生源の識別子（イベント発生源識別子）」、「検出された情報の検出時刻等の関連情報」等が属性情報（イベント属性情報）として含まれる。
ディスパッチャ１４０は、イベント２０１をイベント発生源１５０から受信した場合、ディスパッチルール２０４を参照し、当該イベント２０１をローカルシステム１００へ転送する。
アプリケーションサーバ１６０は、イベント発生源１５０において検出されたイベント２０１に対して各種情報処理を行うアプリケーションが動作するサーバである。アプリケーションサーバ１６０は、イベント発生源１５０により検出されたイベント２０１に対してローカルシステム１００において行われた処理の結果に対して各種情報処理を行う。また、アプリケーションサーバ１６０は、ローカルシステム１００が処理するイベント２０１の条件を指定したイベント条件と、当該イベント条件に合致したイベント２０１に対してローカルシステム１００が行う処理内容を含む処理ルール２０２とをローカルシステム１００に送信する。
ローカルシステム１００は、アプリケーションサーバ１６０から受信した処理ルール２０２をもとにディスパッチルール２０４を生成し、当該ディスパッチルール２０４をディスパッチャ１４０に設定する。また、ローカルシステム１００は、ディスパッチャ１４０からイベント２０１を受信した場合、処理ルール２０２に従ってイベント２０１を処理し、当該イベント２０１の処理結果（イベント処理結果２０５）をアプリケーションサーバ１６０に送信する。
ローカルシステム１００は、更に、ルール分配部１１０、少なくとも１つの処理サーバ１２０、及び少なくとも１つのローカルディスパッチャ１３０より構成される。図１は、ローカルシステム１００が、複数の処理サーバ１２０と１つのローカルディスパッチャ１３０とを有する場合を示している。ここで、処理サーバ１０２は、それぞれ識別子ＰＳ１１、ＰＳ１２、ＰＳ１３、ＰＳ２１、ＰＳ２２、ＰＳ２３の６つの処理サーバを有する。処理サーバ２０２（ＰＳ１１、ＰＳ１２、ＰＳ１３）は、ローカルシステム１００（ＬＳ１）に配置され、処理サーバ２０２（ＰＳ２１、ＰＳ２２、ＰＳ２３）は、ローカルシステム１００（ＬＳ２）に配置されている。
ローカルシステム１００のルール分配部１１０は、処理ルール２０２の処理サーバ１２０への設定、ローカルディスパッチルール２０３の生成、及びディスパッチルール２０４の生成を行う。処理サーバ１２０は、処理ルール２０２に従って、イベント２０１を処理する。ローカルディスパッチャ１３０は、イベント２０１をディスパッチャ１４０から受信した場合、ローカルディスパッチルール２０３を参照し、当該イベント２０１を自ローカルシステム１００の処理サーバ１２０へ転送する。
図２に本発明の第一の実施の形態におけるローカルシステム１００の構成を示す。ローカルシステム１００のルール分配部１１０は、更に、処理ルール設定部１１１、処理ルール分配アルゴリズム記憶部１１２、処理ルール設定情報記憶部１１３、及びディスパッチルール設定部１１４により構成される。
処理ルール設定部１１１は、アプリケーションサーバ１６０から処理ルール２０２を受信した場合、当該処理ルール２０２を処理する処理サーバ１２０を決定し、当該処理ルール２０２を設定する。また、処理ルール設定部１１１は、ディスパッチャ１４０から処理ルール移動要求２０６を受信すると、他のローカルシステム１００に処理ルール受入要求２０７を送信し、当該他のローカルシステム１００へ処理ルール２０２の移動（受け入れ）を要求する。また、処理ルール設定部１１１は、他のローカルシステム１００から処理ルール受入要求２０７を受信すると、自ローカルシステム１００への処理ルール２０２の移動（受け入れ）の可否を判断する。処理ルール分配アルゴリズム記憶部１１２は、処理ルール２０２を処理する処理サーバ１２０を決定するための処理ルール分配アルゴリズム（図示せず）を記憶管理する。処理ルール設定情報記憶部１１３は、処理ルール２０２の設定結果を処理ルール設定情報２１１として記憶管理する。ディスパッチルール設定部１１４は、ローカルディスパッチルール２０３を生成し、ローカルディスパッチャ１３０に設定する。また、ディスパッチルール設定部１１４は、ディスパッチルール２０４を生成し、ディスパッチャ１４０に設定する。
ローカルシステム１００の処理サーバ１２０は、処理ルール２０２に加え、自処理サーバ１２０の処理負荷の状態を表す負荷情報２１２を記憶管理する。負荷情報２１２は、例えば、図１６に示すように、処理サーバ１２０のＣＰＵ使用率（％）でもよい。
図１６の例では、処理ルール２０２（Ｒ１２）を処理する処理サーバ１２０（ＰＳ１２）の負荷情報２１２として、ＣＰＵ使用率２０％が設定され、処理ルール２０２（Ｒ２１）を処理する処理サーバ１２０（ＰＳ２１）の負荷情報２１２として、ＣＰＵ使用率７０％が設定されている。
図３に本発明の第一の実施の形態におけるディスパッチャ１４０の構成を示す。ディスパッチャ１４０は、ディスパッチルール２０４に加え、イベント２０１の複製の回数を記憶管理する複製回数カウンタ２２１を含む。ディスパッチャ１４０は、１つのイベント２０１を複数のローカルシステム１００に転送する場合に行われるイベント２０１の複製の回数が、所定の閾値を超過した場合、処理ルール移動要求２０６を当該イベント２０１の転送先のローカルシステム１００に送信する。
なお、ルール分配部１１０、処理サーバ１２０、ローカルディスパッチャ１３０、ディスパッチャ１４０、イベント発生源１５０、及びアプリケーションサーバ１６０は、それぞれプログラム制御によって動作する情報処理装置であってもよい。また、これらのうちのいくつかを一つの装置として構成してもよい。
次に、本発明の第一の実施の形態の動作について図面を参照して説明する。
はじめに、本発明の第一の実施の形態におけるディスパッチルール設定処理の動作について説明する。図４は、本発明の第一の実施の形態におけるディスパッチルール設定処理の動作を示すシーケンス図である。
ここで、各アプリケーションサーバ１６０がイベント２０１の処理を要求するローカルシステム１００は予め決められており、各アプリケーションサーバ１６０に設定されているものとする。同様に、各イベント発生源１５０がイベント２０１を送信するディスパッチャ１４０も予め決められており、各イベント発生源１５０に設定されているものとする。アプリケーションサーバ１６０におけるローカルシステム１００に関する上記の設定は、管理者が直接ローカルシステム１００を指定することにより設定してもよいし、各アプリケーションサーバ１６０が、ネットワーク上の距離に基づいて、近くのローカルシステム１００を検出して設定してもよい。同様に、イベント発生源１５０におけるディスパッチャ１４０に関する上記の設定は、管理者が直接ディスパッチャ１４０を指定することにより設定してもよいし、各イベント発生源１５０が、ネットワーク上の距離に基づいて、近くのディスパッチャ１４０を検出して設定してもよい。
イベント２０１の処理を要求するアプリケーションサーバ１６０は、処理ルール２０２をローカルシステム１００に送信する（ステップＳ１０１）。
ここで、処理ルール２０２は、図８に示すように、ルール識別子Ｒ１１、Ｒ１２、Ｒ２１、Ｒ２２と、各ルール識別子と関連付けた、ローカルシステム１００が処理するイベント２０１の条件を指定したイベント条件、及び当該イベント条件に合致したイベント２０１に対してローカルシステム１００が行う処理内容とを含む。
図８は、ローカルシステム１００（ＬＳ１）が処理ルール２０２（Ｒ１１、Ｒ１２）、ローカルシステム１００（ＬＳ２）が処理ルール２０２（Ｒ２１、Ｒ２２）を受信した場合の例を示している。図８の例では、ローカルシステム１００（ＬＳ１）の処理ルール２０２（Ｒ１２）に、イベント条件としてイベント発生源種別（ここではＲＦＩＤ）と検出情報（ＲＦＩＤタグのＴａｇＩＤ＝６）とが指定されている。また、このイベント条件に対する処理サーバ１２０の処理内容として、「アプリケーションサーバＡＳ１２へ通知」が指定されている。
ローカルシステム１００が処理ルール２０２を受信すると、ルール分配部１１０の処理ルール設定部１１１は、処理ルール分配アルゴリズム記憶部１１２に記憶された処理ルール分配アルゴリズムと処理ルール設定情報記憶部１１３に記憶された処理ルール設定情報２１１とを参照し、当該処理ルール２０２を処理する処理サーバ１２０を決定する（ステップＳ１０２）。ローカルシステム１００は決定した処理サーバ１２０に処理ルール２０２を設定する（ステップＳ１０３）。処理ルール設定部１１１は、処理ルール設定情報２１１を更新し、更新された処理ルール設定情報２１１を処理ルール設定情報記憶部１１３に保存する（ステップＳ１０４）。
ここで、処理ルール分配アルゴリズムとしては、例えば、処理内容に応じて処理サーバ１２０の負荷が均等となるように処理ルール２０２を振り分ける方法や、特許第４１６１９９８号公報に記載されているように、イベント条件が同一の処理ルール２０２を同一の処理サーバ１２０に振り分ける方法がある。
また、処理ルール設定情報２１１は、図９に示すように、処理サーバ識別子と設定された処理ルール２０２のルール識別子とを含む。
図９は、ローカルシステム１００（ＬＳ１）の処理サーバ（ＰＳ１１、ＰＳ１２）、及びローカルシステム１００（ＬＳ２）の処理サーバ（ＰＳ２１、ＰＳ２２）に設定された処理ルール２０２の例を示している。図９の例では、ローカルシステム１００（ＬＳ１）の処理サーバ１２０（ＰＳ１２）に処理ルール２０２（Ｒ１２）が設定されている。この設定により、処理サーバ１２０（ＰＳ１２）は、処理ルール２０２（Ｒ１２）を処理することになる。
ディスパッチルール設定部１１４は、処理ルール２０２を設定した処理サーバ１２０を当該処理ルール２０２のイベント条件に合致するイベント２０１の転送先としたローカルディスパッチルール２０３を生成する（ステップＳ１０５）。
ローカルディスパッチルール２０３は、図１０に示すように、ルール識別子Ｒ１１、Ｒ１２、Ｒ２１、Ｒ２２と、各ルール識別子と関連付けた、イベント条件、及び転送先の処理サーバ１２０の識別子とを含む。
図１０は、ローカルシステム１００（ＬＳ１）が生成するローカルディスパッチルール２０３（Ｒ１１、Ｒ１２）、及びローカルシステム１００（ＬＳ２）が生成するローカルディスパッチルール２０３（Ｒ２１、Ｒ２２）の例を示している。図１０の例では、ローカルシステム１００（ＬＳ１）のローカルディスパッチルール２０３（Ｒ１２）として、イベント条件に処理ルール２０２（Ｒ１２）のイベント条件（イベント発生源種別：ＲＦＩＤ、検出情報：ＴａｇＩＤ＝６）、転送先に処理ルール２０２（Ｒ１２）を処理する処理サーバ１２０の識別子（ＰＳ１２）が設定されている。
ディスパッチルール設定部１１４は、生成したローカルディスパッチルール２０３をローカルディスパッチャ１３０に設定する（ステップＳ１０６）。
ディスパッチルール設定部１１４は、自ローカルシステム１００を処理ルール２０２のイベント条件に合致するイベント２０１の転送先としたディスパッチルール２０４を生成する（ステップＳ１０７）。
ディスパッチルール２０４は、図１１に示すように、ルール識別子Ｒ１１、Ｒ１２、Ｒ２１、Ｒ２２と、各ルール識別子と関連付けた、イベント条件、及びイベント２０１の転送先となるローカルシステム１００の識別子とを含む。
図１１は、ローカルシステム１００（ＬＳ１）が生成するディスパッチルール２０４（Ｒ１１、Ｒ１２）、及びローカルシステム１００（ＬＳ２）が生成するディスパッチルール２０４（Ｒ２１、Ｒ２２）の例を示している。図１１の例では、ローカルシステム１００（ＬＳ１）が生成するディスパッチルール２０４（Ｒ１２）のイベント条件には、図８の処理ルール２０２（Ｒ１２）のイベント条件（ＲＦＩＤ、ＴａｇＩＤ＝６）が設定され、転送先には、ローカルシステム１００（ＬＳ１）の識別子が設定されている。
ディスパッチルール設定部１１４は、生成したディスパッチルール２０４をディスパッチャ１４０に設定する（ステップＳ１０８）。
例えば、ローカルシステム１００（ＬＳ１、ＬＳ２）が、図１１のディスパッチルール２０４をディスパッチャ１４０にそれぞれ設定した場合、各ディスパッチャ１４０には、図１２のようなディスパッチルール２０４が設定される。
次に、本発明の第一の実施の形態におけるイベント処理（処理ルール移動前）の動作について説明する。図５は、本発明の第一の実施の形態におけるイベント処理（処理ルール移動前）の動作を示すシーケンス図である。
イベント発生源１５０が検出対象の情報を検出すると、イベント発生源１５０は検出した情報をイベント２０１としてディスパッチャ１４０に送信する（ステップＳ２０１）。
イベント２０１は、図１３に示すように、イベント識別子Ｉ３１、イベント発生源種別、イベント発生源識別子、検出時刻、検出情報等のイベント属性情報を含む。図１３の例では、イベント２０１（Ｉ３１）のイベント属性情報として、イベント発生源種別：ＲＦＩＤ、イベント発生源識別子：Ｇ３、検出情報：ＴａｇＩＤ＝６が設定されている。
ディスパッチャ１４０は、イベント２０１を受信すると、イベント２０１に含まれるイベント属性情報がディスパッチルール２０４のイベント条件のいずれかに合致するかどうかを検索する（ステップＳ２０２）。合致するイベント条件がある場合、ディスパッチャ１４０は、ディスパッチルール２０４を参照し、当該イベント条件に対応するローカルシステム１００にイベント２０１を転送する。ここで、合致するイベント条件が複数存在する場合、ディスパッチャ１４０は、イベント２０１を複製（コピー）し（ステップＳ２０３）、合致するそれぞれのイベント条件に対応するローカルシステム１００にイベント２０１を転送する（ステップＳ２０４、Ｓ２０５）。このとき、ディスパッチャ１４０は、複製回数カウンタ２２１によりイベント２０１の複製の回数、すなわち、イベント２０１が複数のイベント条件に合致した回数をカウントする（ステップＳ２０３）。
複製回数カウンタ２２１は、図１４に示すように、イベント２０１が合致する複数のイベント条件に対応するルール識別子の組み合わせ、当該ルール識別子の組み合わせに関してイベント２０１を複製した回数（複製回数）を含む。
例えば、ディスパッチャ１４０（ＧＤ２）がイベント２０１（Ｉ３１）を受信した場合、イベント２０１（Ｉ３１）のイベント属性情報（イベント発生源種別：ＲＦＩＤ、検出情報：ＴａｇＩＤ＝６）は、図１２のディスパッチルール２０４（Ｒ１２、Ｒ２１）のイベント条件に合致する。ディスパッチャ１４０（ＧＤ２）は、イベント２０１（Ｉ３１）を複製し、ローカルシステム１００（ＬＳ１）とローカルシステム１００（ＬＳ２）とに転送する。このとき、ディスパッチャ１４０（ＧＤ２）は、図１４の複製回数カウンタ２２１により、ルール識別子Ｒ１２、Ｒ２１の組み合わせに対して、複製回数をカウントする。
なお、複製回数カウンタ２２１の複製回数は、定期的に０にリセットされるものとする。
ローカルシステム１００がイベント２０１を受信すると、ローカルディスパッチャ１３０は、イベント２０１に含まれるイベント属性情報がローカルディスパッチルール２０３のイベント条件のいずれかに合致するかどうかを検索する（ステップＳ２１１、Ｓ２２１）。合致するイベント条件がある場合、ローカルディスパッチャ１３０は、ローカルディスパッチルール２０３を参照し、当該イベント条件に対応する処理サーバ１２０にイベント２０１を転送する（ステップＳ２１２、Ｓ２２２）。
例えば、ローカルシステム１００（ＬＳ１）がイベント２０１（Ｉ３１）を受信した場合、イベント２０１（Ｉ３１）のイベント属性情報（イベント発生源種別：ＲＦＩＤ、検出情報：ＴａｇＩＤ＝６）は、ローカルディスパッチルール２０３（Ｒ１２）のイベント条件に合致するため、ローカルシステム１００（ＬＳ１）のローカルディスパッチャ１３０は、イベント２０１（Ｉ３１）を処理サーバ１２０（ＰＳ１２）に転送する。同様に、ローカルシステム１００（ＬＳ２）がイベント２０１（Ｉ３１）を受信した場合、イベント２０１（Ｉ３１）のイベント属性情報（イベント発生源種別：ＲＦＩＤ、検出情報：ＴａｇＩＤ＝６）は、ローカルディスパッチルール２０３（Ｒ２１）のイベント条件に合致するため、ローカルシステム１００（ＬＳ２）のローカルディスパッチャ１３０は、イベント２０１（Ｉ３１）を処理サーバ１２０（ＰＳ２１）に転送する。
ローカルシステム１００の処理サーバ１２０がイベント２０１を受信すると、処理サーバ１２０は、処理ルール２０２に従ってイベント２０１を処理し（ステップＳ２１３、Ｓ２２３）、アプリケーションサーバ１６０へイベント処理結果２０５を送信する（ステップＳ２１４、Ｓ２２４）。
例えば、ローカルシステム１００（ＬＳ１）の処理サーバ１２０（ＰＳ１２）は、イベント処理結果２０５として、イベント２０１（Ｉ３１）をアプリケーションサーバ１６０（ＡＳ１２）に送信する。また、ローカルシステム１００（ＬＳ２）の処理サーバ１２０（ＰＳ２１）は、イベント処理結果２０５として、イベント２０１（Ｉ３１）をアプリケーションサーバ１６０（ＡＳ２１）に送信する。
次に、本発明の第一の実施の形態における処理ルール移動処理の動作について説明する。図６は、本発明の第一の実施の形態における処理ルール移動処理の動作を示すシーケンス図である。
ステップＳ２０３において、複製回数カウンタ２２１の複製回数が複製回数閾値を超えた場合、ディスパッチャ１４０は、当該複製回数が所定の閾値を超えたルール識別子の組み合わせに含まれる各ルール識別子に関し、ディスパッチルール２０４を参照し、各ルール識別子に対応する転送先のローカルシステム１００、すなわち、各ルール識別子のディスパッチルール２０４を設定したローカルシステム１００に、処理ルール移動要求２０６を送信する（ステップＳ３０１、Ｓ３０２）。ここで、複製回数閾値は、予め、ディスパッチャ１４０に設定されているものとする。
処理ルール移動要求２０６は、図１５に示すように、当該ルール識別子の組み合わせに含まれる各ルール識別子、及び当該ルール識別子に対応する転送先のローカルシステム１００の識別子を含む。
例えば、図１４の複製回数カウンタ２２１の複製回数が複製回数閾値を超えた場合、ディスパッチャ１４０は、図１５に示すように、ローカルシステム識別子とルール識別子として、（ＬＳ１、Ｒ１２）、（ＬＳ２、Ｒ２１）を含む処理ルール移動要求２０６を、ローカルシステム１００（ＬＳ１、ＬＳ２）に送信する。
ローカルシステム１００の処理ルール設定部１１１は、処理ルール移動要求２０６を受信すると、処理ルール移動要求２０６に含まれるローカルシステム識別子を参照し、他のローカルシステム１００に、処理ルール受入要求２０７を送信する（ステップＳ３０３、Ｓ３０６）。
処理ルール受入要求２０７は、図１７に示すように、ルール識別子、イベント条件、処理内容、負荷情報、及び関連ルール識別子を含む。ここで、ルール識別子は、他のローカルシステム１００に移動（受け入れ）を要求する自ローカルシステム１００の処理ルール２０２のルール識別子であり、処理ルール移動要求２０６に含まれる自ローカルシステム１００の処理ルール２０２のルール識別子が設定される。イベント条件と処理内容とには、当該処理ルール２０２のイベント条件と処理内容とが設定される。負荷情報には、当該処理ルール２０２を処理する処理サーバ１２０の負荷情報２１２が設定される。関連ルール識別子には、処理ルール移動要求２０６に含まれる他ローカルシステム１００の処理ルール２０２のルール識別子が設定される。
例えば、ローカルシステム１００（ＬＳ１）の処理ルール設定部１１１は、ディスパッチャ１４０（ＧＤ３）から図１５の処理ルール移動要求２０６を受信した場合、図１７のような処理ルール受入要求２０７を処理ルール移動要求２０６に含まれる他のローカルシステム１００（ＬＳ２）に送信する。この場合、処理ルール受入要求２０７のルール識別子には、処理ルール移動要求２０６に含まれる自ローカルシステム１００（ＬＳ１）の処理ルール２０２のルール識別子（Ｒ１２）が設定される。イベント条件と処理内容とには、処理ルール２０２（Ｒ１２）のイベント条件（ＲＦＩＤ、ＴａｇＩＤ＝６）と処理内容（ＡＳ１２へ通知）とが設定される。負荷情報には、処理ルール２０２（Ｒ１２）を処理する処理サーバ１２０（ＰＳ１２）の負荷情報２１２（２０％）が設定される。関連ルール識別子には、処理ルール移動要求２０６に含まれる他ローカルシステム１００（ＬＳ２）の処理ルール２０２のルール識別子（Ｒ２１）が設定される。同様に、ローカルシステム１００（ＬＳ２）の処理ルール設定部１１１は、ディスパッチャ１４０（ＧＤ３）から図１５の処理ルール移動要求２０６を受信した場合、図１９のような処理ルール受入要求２０７を処理ルール移動要求２０６に含まれる他のローカルシステム１００（ＬＳ１）に送信する。
ローカルシステム１００の処理ルール設定部１１１は、処理ルール受入要求２０７を受信すると、処理ルール受入要求２０７に含まれる処理ルール２０２を自ローカルシステム１００の処理サーバ１２０に移動する（受け入れる）ことが可能かどうか判断する（ステップＳ３０４、Ｓ３０７）。ここで、処理ルール設定部１１１は、処理ルール受入要求２０７に含まれる関連ルール識別子の処理ルール２０２を処理する処理サーバ１２０の負荷情報２１２と処理ルール受入要求２０７に含まれる負荷情報２１２とを比較し、処理ルール受入要求２０７に含まれる負荷情報２１２が大きい場合、当該処理ルール２０２を移動可能と判断する。
処理ルール設定部１１１は、当該処理ルール２０２を移動可能と判断した場合、図２０のような、処理ルール受入応答２０８（ＯＫ：受入ＯＫを示す識別子）を処理ルール受入要求２０７の送信元のローカルシステム１００に送信する（ステップＳ３０８）。一方、処理ルール設定部１１１は、当該処理ルール２０２を移動不可能と判断した場合、図１８のような、処理ルール受入応答２０８（ＮＧ：受入不可を示す識別子）を処理ルール受入要求２０７の送信元のローカルシステム１００に送信する（ステップＳ３０５）。
例えば、ローカルシステム１００（ＬＳ２）の処理ルール設定部１１１は、ローカルシステム１００（ＬＳ１）から図１７の処理ルール受入要求２０７を受信した場合、関連ルール識別子の処理ルール２０２（Ｒ２１）を処理する処理サーバ１２０（ＰＳ２１）の負荷情報２１２（７０％）と処理ルール受入要求２０７に含まれる負荷情報２１２（２０％）とを比較する。この場合、処理ルール受入要求２０７に含まれる負荷情報２１２が小さいため、ローカルシステム１００（ＬＳ２）の処理ルール設定部１１１は、処理ルール２０２（Ｒ１２）を移動不可能と判断する。ローカルシステム１００（ＬＳ２）の処理ルール設定部１１１は、図１８の処理ルール受入応答２０８（ＮＧ）をローカルシステム１００（ＬＳ１）に送信する。
また、ローカルシステム１００（ＬＳ１）の処理ルール設定部１１１は、ローカルシステム１００（ＬＳ２）から図１９の処理ルール受入要求２０７を受信した場合、関連ルール識別子の処理ルール２０２（Ｒ１２）を処理する処理サーバ１２０（ＰＳ１２）の負荷情報２１２（２０％）と処理ルール受入要求２０７に含まれる負荷情報２１２（７０％）とを比較する。この場合、処理ルール受入要求２０７に含まれる負荷情報２１２が大きいため、ローカルシステム１００（ＬＳ１）の処理ルール設定部１１１は、処理ルール２０２（Ｒ２１）を移動可能と判断する。ローカルシステム１００（ＬＳ１）の処理ルール設定部１１１は、図２０の処理ルール受入応答２０８（ＯＫ）をローカルシステム１００（ＬＳ２）に送信する。
ローカルシステム１００の処理ルール設定部１１１は、処理ルール受入要求２０７に含まれる処理ルール２０２を移動可能と判断した場合、当該処理ルール２０２を処理ルール受入要求２０７に含まれる関連ルール識別子の処理ルール２０２を処理する処理サーバ１２０に設定する（ステップＳ３１０）。処理ルール設定部１１１は、処理ルール設定情報２１１を更新し、処理ルール設定情報記憶部１１３に保存する（ステップＳ３１１）。ディスパッチルール設定部１１４は、処理ルール２０２を設定した処理サーバ１２０を当該処理ルール２０２のイベント条件に合致するイベント２０１の転送先としたローカルディスパッチルール２０３を生成し、ローカルディスパッチャ１３０に設定する（ステップＳ３１２、３１３）。更に、ディスパッチルール設定部１１４は、自ローカルシステム１００を当該処理ルール２０２のイベント条件に合致するイベント２０１の転送先としたディスパッチルール２０４を生成し、ディスパッチャ１４０に設定する（ステップＳ３１４、Ｓ３１５）。
一方、ローカルシステム１００の処理ルール設定部１１１は、処理ルール受入要求２０７に対して処理ルール受入応答２０８（ＯＫ）を受信した場合、処理ルール受入要求２０７に含まれる処理ルール２０２を処理する処理サーバ１２０から当該処理ルール２０２を削除する（ステップＳ３２０）。処理ルール設定部１１１は、処理ルール設定情報２１１を更新し、処理ルール設定情報記憶部１１３に保存する（ステップＳ３２１）。ディスパッチルール設定部１１４は、当該処理ルール２０２に関するローカルディスパッチルール２０３をローカルディスパッチャ１３０から削除する（ステップＳ３２２）。更に、ディスパッチルール設定部１１４は、当該処理ルール２０２に関するディスパッチルール２０４をディスパッチャ１４０から削除する（ステップＳ３２３）。
例えば、ローカルシステム１００（ＬＳ２）が図１９の処理ルール受入要求２０７をローカルシステム１００（ＬＳ１）に送信し、ローカルシステム１００（ＬＳ１）が処理ルール２０２（Ｒ２１）を移動可能と判断し、図２０の処理ルール受入応答２０８（ＯＫ）をローカルシステム１００（ＬＳ２）に送信した場合、処理ルール２０２（Ｒ２１）は、ローカルシステム１００（ＬＳ２）からローカルシステム１００（ＬＳ１）へ移動される。この結果、図２１のように、処理ルール２０２（Ｒ１１、Ｒ１２、Ｒ２１）がローカルシステム１００（ＬＳ１）に、処理ルール２０２（Ｒ２２）がローカルシステム１００（ＬＳ２）にそれぞれ設定される。また、ローカルシステム１００（ＬＳ１、ＬＳ２）の処理ルール設定情報２１１は図２２のようになる。この場合、処理ルール２０２（Ｒ１２、Ｒ２１）が、ローカルシステム１００（ＬＳ１）の処理サーバ１２０（ＰＳ１２）に設定される。
また、ローカルシステム１００（ＬＳ１）が生成するローカルディスパッチルール２０３（Ｒ１１、Ｒ１２、Ｒ２１）、及びローカルシステム１００（ＬＳ２）が生成するローカルディスパッチルール２０３（Ｒ２２）は、それぞれ図２３のようになる。この場合、処理ルール２０２（Ｒ１２、Ｒ２１）のイベント条件（ＲＦＩＤ、ＴａｇＩＤ＝６）の転送先は、処理サーバ１２０（ＰＳ１２）となる。
更に、ローカルシステム１００（ＬＳ１）が生成するディスパッチルール２０４（Ｒ１１、Ｒ１２、Ｒ２１）、及びローカルシステム１００（ＬＳ２）が生成するディスパッチルール２０４（Ｒ２２）は、それぞれ図２４のようになる。また、各ディスパッチャ１４０に設定されるディスパッチルール２０４は、図２５のようになる。この場合、処理ルール２０２（Ｒ１２、Ｒ２１）のイベント条件（ＲＦＩＤ、ＴａｇＩＤ＝６）の転送先は、ローカルシステム１００（ＬＳ１）となる。
次に、本発明の第一の実施の形態におけるイベント処理（処理ルール移動後）の動作について説明する。図７は、本発明の第一の実施の形態におけるイベント処理（処理ルール移動後）の動作を示すシーケンス図である。
ディスパッチャ１４０は、イベント２０１を受信すると、ディスパッチルール２０４を検索し、合致するイベント条件がある場合、当該イベント条件に対応するローカルシステム１００にイベント２０１を転送する（ステップＳ４０２、Ｓ４０３）。ここで、処理ルール移動後は、合致するイベント条件が１つとなるため、イベント２０１の複製は行われない。
例えば、ディスパッチャ１４０（ＧＤ２）が、図２５のディスパッチルール２０４に対して、イベント２０１（Ｉ３１）を受信した場合、イベント２０１（Ｉ３１）をローカルシステム１００（ＬＳ１）に転送する。
ローカルシステム１００のローカルディスパッチャ１３０は、イベント２０１を受信すると、ローカルディスパッチルール２０３を検索し、合致するイベント条件がある場合、当該イベント条件に対応する処理サーバ１２０にイベント２０１を転送する（ステップＳ４０４、Ｓ４０５）。
例えば、ローカルシステム１００（ＬＳ１）のローカルディスパッチャ１３０が、図２３のローカルディスパッチルール２０３に対して、イベント２０１（Ｉ３１）を受信した場合、イベント２０１（Ｉ３１）を処理サーバ１２０（ＰＳ１２）に転送する。
ローカルシステム１００の処理サーバ１２０がイベント２０１を受信すると、処理サーバ１２０は、処理ルール２０２に従ってイベント２０１を処理し（ステップＳ４０６、Ｓ４０８）、アプリケーションサーバ１６０へイベント処理結果２０５を送信する（ステップＳ４０７、Ｓ４０９）。このとき、処理サーバ１２０は、イベント２０１が設定されている複数の処理ルール２０２のイベント条件に合致する場合、イベント２０１をそれぞれの処理ルール２０２に従って処理し、イベント処理結果２０５を送信する。
例えば、ローカルシステム１００（ＬＳ１）の処理サーバ１２０（ＰＳ１２）は、イベント２０１（Ｉ３１）を受信すると、処理ルール２０２（Ｒ１２）に従って、イベント２０１（Ｉ３１）をイベント処理結果２０５としてアプリケーションサーバ１６０（ＡＳ１２）に送信する。更に、処理サーバ１２０（ＰＳ１２）は、処理ルール２０２（Ｒ２１）に従って、イベント２０１（Ｉ３１）をイベント処理結果２０５としてアプリケーションサーバ１６０（ＡＳ２１）に送信する。
以上、図１に示したように、処理ルール移動後は、ローカルシステム１００配下のイベント発生源１５０から送信されたイベント２０１（Ｉ３１）（ＴａｇＩＤ＝６）は、ローカルシステム１００（ＬＳ１）に転送され、ローカルシステム１００（ＬＳ１）にて処理ルール２０２（Ｒ１２、Ｒ２１）に従った処理が行われ、イベント処理結果２０５がアプリケーションサーバ１６０（ＡＳ１２、ＡＳ２１）へ送信される。
以上により、本発明の第一の実施の形態の動作が完了する。
次に、図２６に第一の実施の形態の特徴的な構成を示す。
イベント処理システムは、イベント発生源１５０からイベント２０１を受信する複数のディスパッチャ１４０とアプリケーションサーバ１６０へイベント処理結果２０５を送信する複数のローカルシステム１００とを備える。
ここで、ローカルシステム１００は、アプリケーションサーバ１６０から処理するイベント２０１の条件を示すイベント条件を含む処理ルール２０２を受信した場合、当該処理ルール２０２を自ローカルシステム１００に設定し、自ローカルシステム１００を当該イベント条件に合致するイベント２０１の転送先としたディスパッチルール２０４を生成し、当該ディスパッチルール２０４をディスパッチャ１４０に設定する。そして、ローカルシステム１００は、イベント２０１をディスパッチャ１４０から受信した場合、処理ルール２０２に従ってイベント２０１を処理し、イベント処理結果２０５を、当該処理ルール２０２の送信元のアプリケーションサーバ１６０に通知する。
ディスパッチャ１４０は、イベント２０１をイベント発生源１５０から受信した場合、ディスパッチルール２０４を参照し、当該イベント２０１に合致する前記イベント条件に対応した転送先のローカルシステム１００に当該イベント２０１を転送する。
ここで、ディスパッチャ１４０において、ローカルシステム１００（ＬＳ１）の処理ルール２０２に基づき設定したディスパッチルール２０４のイベント条件と、ローカルシステム１００（ＬＳ２）の処理ルール２０２に基づき設定したディスパッチルール２０４のイベント条件との両方に、イベント２０１が合致した回数が所定の閾値を超過した場合、ローカルシステム１００（ＬＳ１）の処理ルール２０２をローカルシステム１００（ＬＳ２）へ移動、または、ローカルシステム１００（ＬＳ２）の処理ルール２０２をローカルシステム１００（ＬＳ１）へ移動する。
本発明の第一の実施の形態によれば、ルール分配器を複数のローカルシステムに分散配置したイベント処理システムにおいて、イベントの複製に伴うディスパッチャの処理負荷の増大を抑制することができる。その理由は、ディスパッチャ１４０において、イベント２０１が第一のローカルシステム１００の第一の処理ルール２０２に基づき設定したディスパッチルール２０４のイベント条件と第二のローカルシステム１００の第二の処理ルール２０２に基づき設定したディスパッチルール２０４のイベント条件との両方に合致した回数が所定の閾値を超過した場合、第一の処理ルール２０２の第二のローカルシステム１００への移動、または、第二の処理ルール２０２の第一のローカルシステム１００への移動が行われるためである。
また、本発明の第一の実施の形態によれば、ルール分配器を分散配置したイベント処理システムにおいて、ローカルシステム間で処理ルールを移動する場合に、処理サーバの負荷に偏りが生じないように処理ルールを配置できる。その理由は、第一または第二のローカルシステム１００が、第一の処理ルール２０２を設定した処理サーバ１２０の負荷情報２１２と、第二の処理ルール２０２を設定した処理サーバ１２０の負荷情報２１２とをもとに、第一の処理ルール２０２または第二の処理ルール２０２の移動の可否を判断するためである。
（第二の実施の形態）
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。
本発明の第一の実施の形態では、ローカルシステム１００の処理ルール設定部１１１が、処理ルール受入要求２０７を受信した場合、処理サーバ１２０の負荷情報２１２をもとに処理ルール２０２の移動可否を判断していた。本発明の第二の実施の形態では、処理ルール設定部１１１は、処理サーバ１２０がイベント処理結果２０５を送信する頻度をもとに処理ルール２０２の移動可否を判断する。
なお、本発明の第二の実施の形態において、第一の実施の形態と同一の符号を有する構成要素については、特に説明の無い限り、第一の実施の形態と同一であるものとする。
また、本発明の第二の実施の形態においては、アプリケーションサーバ１６０は、ネットワーク上の距離に基づいて、近くのローカルシステム１００に処理ルール２０２を送信するものとする。
図２７に本発明の第二の実施の形態におけるローカルシステム１００の構成を示す。図２７を参照すると、ローカルシステム１００の処理サーバ１２０は、第二の実施の形態（図２）の負荷情報２１２の代わりに、イベント処理結果２０５の送信頻度を表す処理結果送信情報２１３を記憶管理する。処理結果送信情報２１３は、図２８に示すように、処理ルール２０２のルール識別子とイベント処理結果２０５の送信頻度（処理結果送信頻度）とを含む。処理結果送信頻度は、例えば、単位時間あたりのイベント処理結果２０５の送信数でもよい。なお、処理結果送信頻度は、処理サーバ１２０が計測を行い、所定の周期で、更新するものとする。
図２８の例では、処理サーバ１２０（ＰＳ１２）における処理ルール２０２（Ｒ１２）に関する処理結果送信頻度として５０が設定され、処理サーバ１２０（ＰＳ２１）における処理ルール２０２（Ｒ２１）に関する処理結果送信頻度として１０が設定されている。
次に、本発明の第二の実施の形態における処理ルール移動処理の動作について説明する。
本発明の第二の実施の形態における処理ルール移動処理の動作は、第二の実施の形態の処理ルール移動処理の動作（図６）において、処理ルール設定部１１１が処理結果送信情報２１３の処理結果送信頻度をもとに処理ルール２０２の移動可否を判断することを除き、第一の実施の形態（図６）と同様となる。
ローカルシステム１００の処理ルール設定部１１１は、処理ルール移動要求２０６を受信すると、処理ルール移動要求２０６に含まれるローカルシステム識別子を参照し、他のローカルシステム１００に、処理ルール受入要求２０７を送信する（ステップＳ３０３、Ｓ３０６）。
処理ルール受入要求２０７は、図２９に示すように、ルール識別子、イベント条件、処理内容、処理結果送信頻度、関連ルール識別子を含む。ここで、処理結果送信頻度には、当該ルール識別子の処理ルール２０２を処理する処理サーバ１２０から取得した、当該処理ルール２０２に関する処理結果送信情報２１３の処理結果送信頻度が設定される。
例えば、ローカルシステム１００（ＬＳ１）の処理ルール設定部１１１は、図２９のような処理ルール受入要求２０７をローカルシステム１００（ＬＳ２）に送信する。この場合、処理結果送信頻度には、処理ルール２０２（Ｒ１２）を処理する処理サーバ１２０（ＰＳ１２）から取得した、処理ルール２０２（Ｒ１２）に関する処理結果送信情報２１３の処理結果送信頻度（５０）が設定される。同様に、ローカルシステム１００（ＬＳ２）の処理ルール設定部１１１は、図３０のような処理ルール受入要求２０７をローカルシステム１００（ＬＳ１）に送信する。
ローカルシステム１００の処理ルール設定部１１１は、処理ルール受入要求２０７を受信すると、処理ルール受入要求２０７に含まれる処理ルール２０２を自ローカルシステム１００の処理サーバ１２０に移動する（受け入れる）ことが可能かどうか判断する（ステップＳ３０４、Ｓ３０７）。ここで、処理ルール設定部１１１は、処理ルール受入要求２０７に含まれる関連ルール識別子の処理ルール２０２を処理する処理サーバ１２０から、当該処理ルール２０２に関する処理結果送信情報２１３を取得する。処理ルール設定部１１１は、取得した処理結果送信情報２１３内の処理結果送信頻度と処理ルール受入要求２０７に含まれる処理結果送信頻度とを比較し、処理ルール受入要求２０７に含まれる処理結果送信頻度が小さい場合、当該処理ルール２０２を移動可能と判断する。
例えば、ローカルシステム１００（ＬＳ２）の処理ルール設定部１１１は、ローカルシステム１００（ＬＳ１）から図２９の処理ルール受入要求２０７を受信した場合、関連ルール識別子の処理ルール２０２（Ｒ２１）を処理する処理サーバ１２０（ＰＳ２１）から取得した処理結果送信情報２１３（Ｒ２１）の処理結果送信頻度（１０）と処理ルール受入要求２０７に含まれる処理結果送信頻度（５０）とを比較する。この場合、処理ルール受入要求２０７に含まれる処理結果送信頻度が大きいため、ローカルシステム１００（ＬＳ２）の処理ルール設定部１１１は、処理ルール２０２（Ｒ１２）を移動不可能と判断する。
また、ローカルシステム１００（ＬＳ１）の処理ルール設定部１１１は、ローカルシステム１００（ＬＳ２）から図３０の処理ルール受入要求２０７を受信した場合、関連ルール識別子の処理ルール２０２（Ｒ１２）を処理する処理サーバ１２０（ＰＳ１２）から取得した処理結果送信情報２１３（Ｒ１２）の処理結果送信頻度（５０）と処理ルール受入要求２０７に含まれる処理結果送信頻度（１０）とを比較する。この場合、処理ルール受入要求２０７に含まれる処理結果送信頻度が小さいため、ローカルシステム１００（ＬＳ１）の処理ルール設定部１１１は、処理ルール２０２（Ｒ２１）を移動可能と判断する。
以下、処理ルール受入応答２０８の送信、処理ルール２０２の設定、ローカルディスパッチルール２０３の設定、及びディスパッチルール２０４の設定については、第一の実施の形態（図６のステップＳ３０５、Ｓ３０８、Ｓ３１０〜Ｓ３１５、Ｓ３２０〜Ｓ３２３）と同様となる。
以上により、本発明の第二の実施の形態の動作が完了する。
本発明の第二の実施の形態によれば、ルール分配器を複数のローカルシステムに分散配置したイベント処理システムにおいて、ローカルシステム間で処理ルールを移動する場合に、ネットワークの使用効率の低下を抑えることができる。その理由は、第一または第二のローカルシステム１００が、第一の処理ルール２０２のイベント処理結果２０５の送信頻度と、第二の処理ルール２０２のイベント処理結果２０５の送信頻度とをもとに、第一の処理ルール２０２または第二の処理ルール２０２の移動の可否を判断するため、アプリケーションサーバ１６０が近距離のローカルシステム１００に処理ルール２０２を登録する場合、ローカルシステム１００からアプリケーションサーバ１６０への高頻度のイベント処理結果２０５の送信は近距離で行われたまま、低頻度のイベント処理結果２０５の送信は遠距離で行われるようになるためである。
なお、上述の本発明の実施の形態においては、ディスパッチャ１４０がローカルシステム１００に処理ルール移動要求２０６を送信し、当該処理ルール移動要求２０６を受信したローカルシステム１００が処理ルール２０２の移動可否の判断、及び移動を行った。しかしながら、処理ルール２０２の移動を行うためのサーバを設け、ディスパッチャ１４０が、当該サーバに処理ルール移動要求２０６を送信し、当該サーバが、各ローカルシステム１００の負荷情報２１２や処理結果送信情報２１３を収集し、処理ルール２０２の移動可否の判断、及び移動の指示を行うようにしてもよい。
また、上述の本発明の実施の形態においては、ローカルシステム１００が、処理ルール移動要求２０６を受信した他のローカルシステム１００から処理ルール受入要求２０７を受信した場合、「他のローカルシステム１００」の処理ルール２０２の「自ローカルシステム１００」への移動可否の判断を行った。しかしながら、処理ルール受入要求２０７を受信したローカルシステム１００が、更に、「自ローカルシステム１００」の処理ルール２０２の「他のローカルシステム１００」への移動可否を判断するようにしてもよい。また、処理ルール移動要求２０６を受信したローカルシステム１００が、他のローカルシステム１００から負荷情報２１２や処理結果送信情報２１３を収集し、「他のローカルシステム１００」の処理ルール２０２の「自ローカルシステム１００」への移動可否、「自ローカルシステム１００」の処理ルール２０２の「他のローカルシステム１００」への移動可否を判断するようにしてもよい。
また、上述の本発明の実施の形態においては、ディスパッチャ１４０が、複製したイベント２０１の転送先である２つのローカルシステム１００の両方に処理ルール移動要求２０６を送信していた。しかしながら、上述のように、当該２つのローカルシステム１００のいずれかが処理ルール移動要求２０６を受信することにより、当該２つのローカルシステム１００のどちらの処理ルール２０２を他方のローカルシステム１００に移動するかを判断できる場合、ディスパッチャ１４０は、当該２つのローカルシステム１００の少なくとも一方に処理ルール移動要求２０６を送信するようにしてもよい。
また、上述の本発明の実施の形態においては、ディスパッチャ１４０において複製したイベント２０１の転送先となるローカルシステム１００が２つの場合について説明した。複製したイベント２０１の転送先となるローカルシステム１００が２を超える場合は、当該複数のローカルシステム１００が、相互に負荷情報２１２や処理結果送信情報２１３を交換し、これらの情報をもとに、当該複数のローカルシステム１００のどのローカルシステム１００処理ルール２０２をどのローカルシステム１００に集約するかを判断するようにしてもよい。
また、上述の本発明の実施の形態においては、１つのディスパッチャ１４０においてイベント２０１の複製が発生する場合について説明した。複数のディスパッチャ１４０においてイベント２０１の複製が発生する場合、ローカルシステム１００が処理ルール移動要求２０６の受信回数を各処理ルール移動要求２０６に関係する処理ルール２０２の組み合わせ毎にカウントし、処理ルール移動要求２０６の受信回数が所定の閾値を超過した処理ルール２０２の組み合わせについて、処理ルール２０２の移動を行うようにしてもよい。
本発明の効果は、ルール分配器を分散配置したイベント処理システムにおいて、イベントの複製に伴うディスパッチャの処理負荷の増大を抑制することができることである。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２００９年３月１７日に出願された日本出願特願２００９−０６３７２１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
本発明は、ＲＦＩＤ、センサのようなデバイス等から大量に発生するイベントの処理を行うイベント処理システムに適用できる。例えば、本発明は、ＲＦＩＤやセンサからのイベントを利用した物流トレーサビリティシステム、ＳＣＥＭ（Ｓｕｐｐｌｙ  Ｃｈａｉｎ  Ｅｖｅｎｔ  Ｍａｎａｇｅｍｅｎｔ）システム、天候や災害等の環境管理システムに適用できる。
【図１】
2010107103.tif 000003
【図２】
2010107103.tif 000004
【図３】
2010107103.tif 000005
【図４】
2010107103.tif 000006
【図５】
2010107103.tif 000007
【図６】
2010107103.tif 000008
【図７】
2010107103.tif 000009
【図８】
2010107103.tif 000010
【図９】
2010107103.tif 000011
【図１０】
2010107103.tif 000012
【図１１】
2010107103.tif 000013
【図１２】
2010107103.tif 000014
【図１３】
2010107103.tif 000015
【図１４】
2010107103.tif 000016
【図１５】
2010107103.tif 000017
【図１６】
2010107103.tif 000018
【図１７】
2010107103.tif 000019
【図１８】
2010107103.tif 000020
【図１９】
2010107103.tif 000021
【図２０】
2010107103.tif 000022
【図２１】
2010107103.tif 000023
【図２２】
2010107103.tif 000024
【図２３】
2010107103.tif 000025
【図２４】
2010107103.tif 000026
【図２５】
2010107103.tif 000027
【図２６】
2010107103.tif 000028
【図２７】
2010107103.tif 000029
【図２８】
2010107103.tif 000030
【図２９】
2010107103.tif 000031
【図３０】
2010107103.tif 000032
【図３１】
2010107103.tif 000033
【国際調査報告】
2010107103.tif 000034
2010107103.tif 000035
2010107103.tif 000036
2010107103.tif 000037