(57)【要約】      （修正有）【課題】イベント発生源からイベント通知先までのイベント処理ネットワークの使用効率を向上させる。【解決手段】イベント処理制御装置１０１Ｃは、イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、イベントに対する処理を表すイベント処理ルールを、イベント発生源からイベント通知先までの複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部である。２台のネットワーク機器によって表される部分木に関連付けられた、処理の少なくとも一部を表す部分ルールに分解するルール分解手段２２３と、部分ルールを、部分ルールに関連付けられた部分木が表すネットワーク装置から選択されたネットワーク装置に接続されているイベント処理装置に配置するルール配置手段２２６と、を備える。【選択図】図１６
2015179980.tif 000002
【特許請求の範囲】
【請求項１】
イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解するルール分解手段と、
前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置手段と、
を備えるイベント処理制御装置。
【請求項２】
前記ルール分解手段は、前記リバースマルチキャストツリーの前記イベント発生源側から順に、前記リバースマルチキャストツリーから前記部分木を選択し、前記イベント処理ルールから、選択された前記部分木に送信されるイベントのみに関する部分を、前記部分木に割り当てる部分ルールとして抽出する
請求項１に記載のイベント処理制御装置。
【請求項３】
前記部分ルールの処理の対象である入力イベントのデータ量（以下、「入力イベント量」）と、前記部分ルールに基づく処理の結果出力される出力イベントのデータ量（以下、「出力イベント量」）とを導出する入出力比計算手段と、
前記部分木に割り当てられた前記部分ルールにおいて導出された、前記入力イベント量が前記出力イベント量より多い場合、前記部分木が含む前記イベント発生源側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択し、前記出力イベント量が前記入力イベント量より多い場合、前記部分木が含む前記イベント通知先側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択するルール配置計算手段と、
を含む請求項１又は２に記載のイベント処理制御装置。
【請求項４】
前記入出力比計算手段は、前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分ルールに基づき算出する
請求項３に記載のイベント処理制御装置。
【請求項５】
前記部分ルールに基づく処理の結果における、前記入力イベント量と前記出力イベント量とを受信し、受信した前記入力イベント量と前記出力イベント量とを、前記部分ルールに関連付けて、処理履歴として集計情報記憶部に格納する集計情報処理手段を含み、
前記入出力比計算手段は、前記集計情報記憶部に格納されている前記処理履歴に基づき、前記部分木に割り当てられた前記部分ルールの前記入力イベント量と前記出力イベント量とを算出する
請求項３に記載のイベント処理制御装置。
【請求項６】
複数の前記イベント処理装置が前記ネットワーク装置に接続され、
前記ルール配置手段は、前記部分木に含まれる前記ネットワーク装置に接続されている前記複数のイベント処理装置における負荷が偏らないように、前記複数のイベント処理装置のいずれかに、前記部分木に割り当てられた前記部分ルールを配置する
請求項１乃至５のいずれかに記載のイベント処理制御装置。
【請求項７】
前記イベント処理システムに含まれる前記複数のネットワーク装置、前記イベント発生源、及び前記イベント通知先の中で、通信が可能な組み合わせを表すトポロジ情報を記憶するトポロジ情報記憶手段と、
前記トポロジ情報に基づき、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する最短経路を表す前記リバースマルチキャストツリーを計算するツリー計算手段と、
を備える請求項１乃至６のいずれかに記載のイベント処理制御装置。
【請求項８】
請求項１乃至７のいずれかに記載のイベント処理制御装置を含む前記イベント処理システム。
【請求項９】
イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解し、
前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置する、
イベント処理制御方法。
【請求項１０】
コンピュータを、
イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解するルール分解手段と、
前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置手段と、
して動作させるイベント処理制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イベント処理を制御する技術に関する。
【背景技術】
【０００２】
近年、電力消費量や交通情報などの様々な情報を収集するセンサや、通信ネットワーク（以下、「ネットワーク」）を介して遠隔操作を行えるデバイス（アクチュエータ）が、ネットワークに繋がれるケースが増加している。ネットワークを介して遠隔操作を行えるデバイスは、アクチュエータとも呼ばれる。ネットワーク越しに遠隔操作を行えるデバイスは、例えば、ネットワークカメラやスマート家電（家庭用電気機械器具）などである。それに伴い、Ｍ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）の技術が注目を集めている。Ｍ２Ｍの技術は、デバイスからのイベントを基に状況を自動的に判断し、人手を介することなくデバイスを制御する技術である。このように、センサ等のデバイスが発するイベントを基に、状況を推定したり、アクションを実行したりする処理はイベント処理と呼ばれている。
【０００３】
特に、複数のイベントのパターンを検出し、それらイベントの情報に基づいて処理を行う技術は、複合イベント処理（ＣＥＰ；Ｃｏｍｐｌｅｘ  Ｅｖｅｎｔ  Ｐｒｏｃｅｓｓｉｎｇ）と呼ばれる。
【０００４】
ＣＥＰでは、検出するイベントのパターンと処理内容は、ＣＥＰルールとして記述される。例えば、「IF event（DevID=11） and event（DevID=21） THEN 温度値の平均を算出する」のような記述が、ＣＥＰルールの例である。この記述の意味は、「DevID=11のイベントと、DevID=21のイベントとを検出した場合、それらのイベントに含まれる温度値の平均を算出する」である。なお、DevIDはデバイスＩＤ（Ｉｄｅｎｔｉｆｉｅｒ）である。
【０００５】
今後、ネットワークに接続されるこのようなデバイスは急増し、そこから発生するイベントの量は膨大になり、M２Mサービスは大規模化していくことが予想される。そのため、サービスの大規模化に対応できるシステムが必要になると考えられる。
【０００６】
そのような、デバイスなどから大量に発生するイベントを処理するシステムが、特許文献１に開示されている。
【０００７】
図１１は、特許文献１に記載されているシステムの構成を表す図である。特許文献１に記載されているシステムは、ルール分配サーバと、複数のイベント振り分け器と、複数のイベントプロセッサとを含む。ルール分配サーバは、複数のイベント振り分け器及び複数のイベントプロセッサと通信可能に接続されている。各イベント振り分け器は、各イベントプロセッサと通信可能に接続されている。各イベント振り分け器には、１つ以上のイベント発生源が接続されている。
【０００８】
イベント処理を求めるそれぞれのイベント消費者は、イベント処理ルールをルール分配サーバに通知する。イベント処理ルールを受信したルール分配サーバは、各イベントプロセッサ負荷が均等になるように、かつ、同じイベントに関するイベント処理は同じプロセッサで行われるように、イベント処理ルールを最適なイベントプロセッサに設定する。同時に、ルール分配サーバは、処理されるイベントが、そのイベントに関する処理ルールが設定されたイベントプロセッサに送られるように、イベント振り分け器にイベント振り分けルールを設定する。デバイス等のイベント発生源において発生したイベントは、イベント振り分け器に送信される。イベント振り分け器は、受信したイベントを、そのイベントに関する処理ルールが設定されたイベントプロセッサに転送する。イベントプロセッサは、イベント処理ルールに基づきイベントに対する処理を行う。イベントプロセッサは、処理結果を、イベント消費者に通知する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４１６１９９８号
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１において開示されている方法では、イベントプロセッサの負荷は平準化されるが、ネットワークの使用効率やイベントの転送経路の最適化は考慮されていない。
【００１１】
例えば、イベント処理ルールは、イベント発生源、イベントプロセッサ、及びイベント消費者の位置に関係なく、イベントプロセッサに配置される。そのため、イベント処理ルールが配置されたイベントプロセッサが、イベント発生源又はイベント消費者から遠い位置に存在する場合、イベントの転送のために大きなネットワーク資源が消費される可能性がある。また、イベントの転送に時間がかかり、そのためにレスポンスが遅れる可能性がある。
【００１２】
本発明の目的の一つは、イベント発生源からイベント通知先までのイベント処理ネットワークにおいて、ネットワークの使用効率を向上させることができるイベント処理制御装置を提供することにある。
【課題を解決するための手段】
【００１３】
本発明のイベント処理制御装置は、イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解するルール分解手段と、前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置手段と、を備える。
【００１４】
本発明のイベント処理制御方法は、イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解し、前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置する。
【００１５】
本発明のイベント処理制御プログラムは、コンピュータを、イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解するルール分解手段と、前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置手段と、して動作させる。
【発明の効果】
【００１６】
本発明には、イベント発生源からイベント通知先までのイベント処理ネットワークにおいて、ネットワークの使用効率を向上させることができるという効果がある。
【図面の簡単な説明】
【００１７】
【図１】図１は、第１の実施形態に係るイベント処理システムの全体を模式的に表すブロック図である。
【図２】図２は、第１の実施形態のルール分配サーバ１０１の構成の例を表すブロック図である。
【図３】図３は、第１、第２の実施形態に係るルール分配サーバが行うルール分解処理の動作の例を表すフローチャートである。
【図４】図４は、第１、第２の実施形態に係るルール分配サーバの、マルチキャストツリー計算処理の動作の例を表すフローチャートである。
【図５】図５は、イベントプロセッサが接続されているＮＥのトポロジ情報の例を表す図である。
【図６】図６は、第１、第２の実施形態に係るルール分配サーバの、入出力イベント量比計算処理の動作の例を表すフローチャートである。
【図７】図７は、第１、第２の実施形態に係るルール分配サーバの、ルール配置計算処理の動作の例を表すフローチャートである。
【図８】図８は、第２の実施形態のルール分配サーバ１０１Ａの構成の例を表すブロック図である。
【図９】図９は、部分ルール毎のイベント量の集計結果の例を表す。
【図１０】図１０は、第３の実施形態に係るイベント処理システムの全体を模式的に表すブロック図である。
【図１１】図１１は、特許文献１に記載されているシステムの構成を表す図である。
【図１２】図１２は、第１、第２の実施形態のルール分配サーバ１０１の動作の例を表すフローチャートである。
【図１３】図１３は、第２の実施形態に係るイベント処理システムの全体を模式的に表すブロック図である。
【図１４】図１４は、第２の実施形態のルール分配サーバ１０１Ａの、初期状態でない状態における動作の例を表すブロック図である。
【図１５】図１５は、第３の実施形態のイベント処理制御装置１Ｂの構成の例を表す図である。
【図１６】図１６は、第４の実施形態のイベント処理制御装置１Ｃの構成の例を表す図である。
【図１７】図１７は、ルール分配サーバ１０１、ルール分配サーバ１０１Ａ、ルール分配サーバ１０１Ｂ、及びイベント処理制御装置１０１Ｃを実現することができる、コンピュータ１０００の構成の一例を表す図である。
【発明を実施するための形態】
【００１８】
次に、本発明の実施の形態について、図面を参照して詳細に説明する。
【００１９】
＜第１の実施形態＞
まず、本発明の第１の実施形態に係るイベント処理システムについて、図面を参照して詳細に説明する。
【００２０】
［構成の説明］
図１は、本実施形態に係るイベント処理システムの全体を模式的に表すブロック図である。図１を参照すると、本実施形態のイベント処理システムは、ルール分配サーバ１０１と、複数のイベントプロセッサ（すなわちイベントプロセッサ１０２ａ〜１０２ｄ）を含む。本発明の各実施形態の説明において、イベントプロセッサは、イベント処理装置とも表記される。複数のイベントプロセッサは、複数のネットワークエレメント（ＮＥ；Ｎｅｔｗｏｒｋ  Ｅｌｅｍｅｎｔ）を介して接続されている。複数のネットワークエレメントは、図１に示すＮＥ１０３ａ〜ＮＥ１０３ｄである。ネットワークエレメントは、例えば、ルータ、レイヤ３スイッチ、ＯｐｅｎＦｌｏｗ（登録商標）スイッチなどである。
【００２１】
本実施形態のイベント処理システムには、ルール設定者端末１０４と、イベント発生源１０５ａ及び１０５ｂと、イベント通知先１０６とが接続されている。ルール設定者端末１０４は、例えば、オペレータが使用する端末装置である。イベント発生源１０５ａ及び１０５ｂは、例えば、イベントを発生する、センサやデバイスなどである。イベント通知先１０６は、例えば、アプリケーションプログラムによって制御される情報処理装置や、アクチュエータなどである。図１に示す例では、イベント処理システムに接続されているイベント通知先１０６の個数は１である。しかし、複数のイベント通知先１０６がイベント処理システムに接続されていてもよい。
【００２２】
ルール分配サーバ１０１は、ルール設定者端末１０４からイベント処理ルールを受信する。そして、ルール分配サーバ１０１、受信したイベント処理ルールを部分ルールに分解する。ルール分配サーバ１０１は、イベントプロセッサ１０２ａ〜１０２ｄに部分ルールを分配することにより、イベントプロセッサ１０２ａ〜１０２ｄにその部分ルールを設定する。本発明の各実施形態の説明において、ルール分配サーバ１０１を、イベント処理制御装置とも表記することにする。
【００２３】
イベントプロセッサ１０２ａ〜１０２ｄは、設定されたルールに従って、イベント発生源又は前段のイベントプロセッサから入力されたイベントを処理する。前述のように、各イベントプロセッサには、ルール分配サーバ１０１によって、前述の部分ルールがルールとして設定されている。イベントプロセッサ１０２ａ〜１０２ｄは、イベントを処理した結果を、出力イベントとして後段のイベントプロセッサ又はイベント通知先１０６へ送出する。
【００２４】
図２は、ルール分配サーバ１０１の構成の例を表すブロック図である。
【００２５】
図２を参照すると、ルール分配サーバ１０１は、ルール分解部２２３、ツリー計算部２２１、トポロジ情報記憶部２２２、入出力比計算部２２４、ルール配置計算部２２５、及びルール配置部２２６を含む。
【００２６】
トポロジ情報記憶部２２２は、イベントプロセッサトポロジ情報を記憶する。イベントプロセッサトポロジ情報は、例えば、イベントプロセッサが接続されている複数のＮＥ、複数のイベント発生源、及びイベント通知先１０６の中で、通信が可能な全ての組み合わせを表す。以下の説明において、イベントプロセッサトポロジ情報は、単に、トポロジ情報とも表記される。
【００２７】
ルール分解部２２３は、ルール設定者端末１０４からイベント処理ルールを受信する。ルール分解部２２３は、ルール設定者端末１０４から受信したイベント処理ルールを分解することにより、部分ルールを生成する。加えて、ルール分解部２２３は、そのイベント処理ルールに関するイベントの発生源を、イベント発生源１０５ａ及び１０５ｂの中から特定する。ルール分解部２２３は、受信したイベント処理ルールと、各部分ルールとを、例えば、ルール記憶部２２０に格納する。
【００２８】
ルール記憶部２２０は、イベント処理ルールと、各部分ルールとを記憶する。入出力比計算部２２４、ルール配置計算部２２５、及びルール配置部２２６は、各部分ルールを、ルール記憶部２２０から読み出す。
【００２９】
ツリー計算部２２１は、トポロジ情報記憶部２２２が記憶するイベントプロセッサトポロジ情報に基づき、リバースマルチキャストツリーを計算する。リバースマルチキャストツリーは、ルール分解部２２３によって得られたイベント発生源１０５ａ及び１０５ｂと、イベント通知先１０６とを結ぶマルチキャストツリーの逆向きの経路である。リバースマルチキャストツリーは、それぞれのイベント発生源から、イベント通知先１０６までの最短の経路を表す。経路は、例えば、各イベント発生源と、イベント通知先１０６と、それらを接続するＮＥとの間の接続によって表される。
【００３０】
入出力比計算部２２４は、ルール分解部２２３が生成した各部分ルールの、入出力イベント量比を計算する。入出力イベント量比は、入力イベント量と出力イベント量との比である。入力イベント量は、入力イベントのデータ量である。入力イベントは、部分ルールに基づくイベント処理の対象であるイベントである。出力イベント量は、出力イベントのデータ量である。出力イベントは、部分ルールに基づくイベント処理の結果として出力されるイベントである。入出力比計算部２２４は、入出力イベント量比として、入力イベント量と、入力イベントのデータ量がその入力イベント量である場合における出力イベント量とを算出してもよい。部分ルールの入力イベント量は、その部分ルールが割り当てられているセグメントに送信され、その部分ルールによって処理されるイベントのデータ量である。部分ルールの出力イベント量は、その部分ルールによって処理され、その部分ルールが割り当てられているセグメントから出力されるイベントのデータ量である。
【００３１】
ルール配置計算部２２５は、リバースマルチキャストツリーと、各部分ルールの入出力イベント量比とに基づき、各部分ルールをリバースマルチキャストツリー上にあるイベントプロセッサ１０２ａ〜１０２ｄのどれに配置するかを計算する。前述のように、リバースマルチキャストツリーは、ツリー計算部２２１によって計算される。さらに、各部分ルールの入出力イベント量比は、入出力比計算部２２４によって計算される。
【００３２】
ルール配置部２２６は、ルール配置計算部２２５による計算の結果に従って、各部分ルールをイベントプロセッサ１０２ａ〜１０２ｄのいずれかに分配する。
【００３３】
［動作の説明］
次に、本実施形態のルール分配サーバ１０１の動作について、図面を参照して詳細に説明する。以下の説明において、オペレータによって設定され、ルール設定者端末１０４からルール分配サーバ１０１に送信されるイベント処理ルールは、以下に示すルール１である。
【００３４】
IF （event_a = [A1..A2]） and （f（event_b） = event_a） THEN send event_a  …（ルール１）。
【００３５】
ルール１の意味は、『「event_aの値がA1からA2の間」で、かつ、「event_bをf（ ） というイベント処理をした結果」が「event_aと等しい」場合、「イベント消費者にevent_aを通知する」』である。
【００３６】
図１２は、本実施形態のルール分配サーバ１０１の動作の例を表すフローチャートである。ルール設定者端末１０４からイベント処理ルールを受信した場合、ルール分配サーバ１０１は、図１２に示す動作を開始する。
【００３７】
まず、ルール分解部２２３が、ルール分解処理を行う（ステップＳ１２０１）。
【００３８】
図３は、本実施形態のルール分配サーバ１０１が行うルール分解処理の動作の例を表すフローチャートである。まず、ルール分解部２２３が、ルール設定者端末１０４からイベント処理ルールを受信する。図３において、「ルール」は、ルール分解部２２３がルール設定者端末１０４から受信したイベント処理ルールを表す。
【００３９】
ルール分解部２２３は、ルール設定者端末１０４からイベント処理ルールを受信した場合、受信したイベント処理ルールに含まれるイベント条件の各項から、イベント発生源を抽出する（ステップＳ３０１）。本実施形態の説明では、ルール設定者端末１０４から受信したイベント処理ルールは、上述のルール１である。ルール１がイベント処理ルールである場合、ルール分解部２２３は、イベント発生源として、event_a及びevent_bを抽出する。
【００４０】
次に、ルール分解部２２３は、ツリー計算部２２１に、イベント通知先１０６が根であり、イベント発生源が葉であるリバースマルチキャストツリーの計算を依頼する。ツリー計算部２２１は、マルチキャストツリー計算処理を実行する（ステップＳ３０２）。マルチキャストツリー計算処理については、後で詳細に説明する。計算の結果、例えば、図１に示すような、リバースマルチキャストツリーが計算される。以下では、図１に示すリバースマルチキャストツリーが計算され、イベント発生源１０５ａがevent_aを生成し、イベント発生源１０５ｂがevent_bを生成する場合について説明する。
【００４１】
次に、ルール分解部２２３は、リバースマルチキャストツリーの葉（すなわちイベント発生源の側）から順に、全ての部分木（すなわちセグメント）が選択されるまで、以下の動作を繰り返す（ステップＳ３０３）。ルール分解部２２３は、まず、まだ選択されていないセグメントから、セグメントを選択する（ステップＳ３０４）。そして、ルール分解部２２３は、選択したセグメントにおいてイベント処理ルールを分解可能か検査する（ステップＳ３０５）。部分木（すなわち、セグメント）は、例えば、互いに接続されている２台のＮＥを表す。イベント処理ルールが分解可能である場合（ステップＳ３０５においてＹｅｓ）、ルール分解部２２３は、イベント処理ルールを分解する（ステップＳ３０６）。イベント処理ルールが分解可能でない場合（ステップＳ３０５においてＮｏ）、ルール分解部２２３は、イベント処理ルールを分解しない。
【００４２】
判断の対象である部分木を、以下の説明において対象部分木と表記することにする。対象部分木においてルールが分解可能か検査する際、ルール分解部２２３は、例えば、まず、対象部分木に、リバースマルチキャストツリーにおいて葉側の部分木又は葉から送信されるイベントを特定する。対象部分木に、葉であるイベント発生源が直接接続されている場合、対象部分木に送信されるイベントは、そのイベント発生源が発生するイベントである。次に、ルール分解部２２３は、例えば、分解の対象であるルールの条件文の各項から、対象部分木に送信されるイベントのみに基づく項を抽出可能か検査する。対象部分木に送信されるイベントのみに基づく項は、例えば、対象部分木に送信されるイベントのみに対する条件文や、対象部分木に送信されるイベントのみに対するイベント処理である。そして、検査の結果、抽出が可能である場合、ルール分解部２２３は、抽出された項における条件文の判定の結果やイベント処理の結果を、次の部分木に送信する部分ルールを生成する。ルール分解部２２３は、生成した部分ルールを、対象部分木に割り当てる。次に、ルール分解部２２３は、例えば、対象部分木が送信するイベントを使用してルールを書き換えることによって、イベントが対象部分木から送信される次の部分木において分解可能か検査されるルールを生成する。なお、ルール分解部２２３は、部分木において分解可能か検査されるルールの、その部分木に送信されるイベントを使用した書き換えを、その部分木の前段の全ての部分木に割り当てられる部分ルールが生成された後に行えばよい。以上で説明したイベント処理ルールの分解方法は、単なる一例である。ルール分解部２２３は、以上で説明した分解方法ではない方法によって、イベント処理ルールを分解してもよい。
【００４３】
図１に示すリバースマルチキャストツリーは、図１において破線によって囲まれている、セグメントＡ、セグメントＢ、及びセグメントＣに分解できる。ルール分解部２２３は、これらのセグメント毎に、イベント処理ルールが分解可能か検査する。
【００４４】
セグメントＡの部分には、イベント発生源１０５ａが生成したevent_aのみが流れる。従って、セグメントＡにおいて、イベント処理ルールのevent_a=[A1..A2]の部分が分解可能である。そして、イベント処理ルールのこの部分は、セグメントＡに割り当て可能である。また、セグメントＢの部分には、イベント発生源１０５ｂが生成したevent_bのみが流れる。従って、セグメントＢにおいて、イベント処理ルールのf（event_b）の部分が分解可能である。そして、イベント処理ルールのこの部分は、セグメントＢに割り当て可能である。セグメントＣの部分には、event_a及びevent_bの両方が流れる。従って、イベント処理ルールの残りの部分は、セグメントＣに割り当て可能である。
【００４５】
以上の分解の結果、イベント処理ルールは、以下の３つの部分ルールに分解される。
【００４６】
IF event_a = [A1..A2] THEN send event_a  …（部分ルール２）、
IF event_b THEN event_c = f（event_b） , send event_c  …（部分ルール３）、
IF event_c = event_a THEN send event_a  …（部分ルール４）。
【００４７】
次に、本実施形態のルール分配サーバ１０１の、マルチキャストツリー計算処理を行う動作について説明する。
【００４８】
図４は、本実施形態のルール分配サーバ１０１の、マルチキャストツリー計算処理の動作の例を表すフローチャートである。
【００４９】
トポロジ情報記憶部２２２は、イベントプロセッサが接続されているＮＥに関する、前述のトポロジ情報を記憶する。トポロジ情報記憶部２２２には、トポロジ情報が登録されているイベントプロセッサトポロジ情報データベースが格納されていてもよい。トポロジ情報は、ツリー計算部２２１が解釈することができるデータ形式で格納されていればよい。
【００５０】
図５は、イベントプロセッサが接続されているＮＥのトポロジ情報の例を表す図である。以下では、図１に示すイベント処理システムにおける、イベントプロセッサが接続されているＮＥのトポロジ情報として、図５に示すトポロジ情報が、トポロジ情報記憶部２２２に格納されている場合について説明する。なお、図５に示す四角形がＮＥを表す。ａからｄまでの符号が付与されている四角形は、それぞれ、図１に示すＮＥ１０３ａからＮＥ１０３ｄに対応する。図１には、図５においてｅからｇまでの符号が付与されている四角形に対応するＮＥは描かれていない。
【００５１】
ツリー計算部２２１は、図５に示す例のような、イベント処理システムにおけるＮＥのトポロジ情報を読み出す。そして、ツリー計算部２２１は、読み出したトポロジ情報を使用して、全てのイベント発生源が選択されるまで（ステップＳ４０１）、ステップＳ４０２からステップＳ４０８までの動作を繰り返す。まず、ツリー計算部２２１は、まだ選択されていないイベント発生源から、イベント発生源を選択する（ステップＳ４０２）。次に、ツリー計算部２２１は、読み出したトポロジ情報に基づき、イベント生成者からイベント消費者までの最短ルートを計算する（ステップＳ４０３）。そして、ツリー計算部２２１は、計算された最短ルート上の全てのノードが選択されるまで（ステップＳ４０４）、ステップＳ４０５からステップＳ４０８までの動作を繰り返す。ツリー計算部２２１は、計算された最短ルート上にある、まだ選択されていないノードから、一つのノードを選択する（ステップＳ４０５）。ツリー計算部２２１は、計算された最短ルートが、そのノードで他のイベント発生源からのルートと重なるかチェックする（ステップＳ４０６）。チェックの結果、最短ルートが、そのノードで他のイベント発生源からのルートと重なる場合（ステップＳ４０６においてＹｅｓ）、ツリー計算部２２１は、そのノードをリバースマルチキャストツリーの分岐点（枝）にする（ステップＳ４０７）。すなわち、ツリー計算部２２１は、そのノードにおいて、リバースマルチキャストツリーの枝を分岐させる。チェックの結果、最短ルートが、そのノードで他のイベント発生源からのルートと重ならない場合（ステップＳ４０６においてＮｏ）、ツリー計算部２２１は、そのノードをリバースマルチキャストツリーの分岐点（枝）にしない。ツリー計算部２２１は、そのノードにおいて、リバースマルチキャストツリーの枝を分岐させない。
【００５２】
具体的には、ツリー計算部２２１が図５に示すトポロジ情報を使用する場合、ツリー計算部２２１は、まず、イベント発生源１０５ａが接続されているＮＥ１０３ａから、イベント通知先１０６が接続されているＮＥ１０３ｄまでの最短ルートを計算する。図５に示すトポロジ情報が与えられている場合、ＮＥ１０３ａからＮＥ１０３ｄまでのルートとして可能なルートは、ルート１からルート４までのルートである。ルート１からルート４までのルートのうち最もホップ数が少ないルートはルート４である。従って、ツリー計算部２２１は、ＮＥ１０３ａからＮＥ１０３ｄまでの最短ルートとして、ルート４を算出する。
【００５３】
次に、ツリー計算部２２１は、イベント発生源１０５ｂが接続されているＮＥ１０３ｂから、イベント通知先１０６が接続されているＮＥ１０３ｄまでの最短ルートを計算する。ＮＥ１０３ｂからＮＥ１０３ｄまでのルートとして可能なルートは、ルート５及びルート６である。ルート５及びルート６のうち、ホップ数が少ないルートはルート５である。従って、ツリー計算部２２１は、ＮＥ１０３ｂからＮＥ１０３ｄまでの最短ルートとして、ルート５を算出する。
【００５４】
次に、ツリー計算部２２１は、ルート５上で、他の葉からのルートであるルート４と重なる部分を検索する。その結果、ツリー計算部２２１は、ＮＥ１０３ｃを枝にする。
【００５５】
図１２に示す動作において、ルール分配サーバ１０１は、ルール分解処理（ステップＳ１２０１）の次に、入出力イベント量比計算処理（ステップＳ１２０２）を行う。
【００５６】
図６は、本実施形態のルール分配サーバ１０１の、入出力イベント量比計算処理の動作の例を表すフローチャートである。
【００５７】
入出力比計算部２２４は、リバースマルチキャストツリーの全てのセグメントが選択されるまで（ステップＳ６０１）、ステップＳ６０２〜ステップＳ６０４の動作を繰り返す。入出力比計算部２２４は、リバースマルチキャストツリーに含まれるセグメントから、一つのセグメントを選択する（ステップＳ６０２）。入出力比計算部２２４は、選択されたセグメントに割り当てられている部分ルールの入力イベント量と出力イベント量を計算する（ステップＳ６０３）。入出力比計算部２２４は、例えば、入力イベント量が所定量（例えば１）である場合における、出力イベント量を計算すればよい。セグメントに、２つ以上の入力イベントが入力される場合、入出力比計算部２２４は、それぞれ算出された２つ以上の入力イベントの入力イベント量を集計する（ステップＳ６０４）。２つ以上の入力イベントが入力される場合、入出力比計算部２２４は、例えば、２つ以上の入力イベントの入力イベント量を合計すればよい。また、セグメントに部分ルールが割り当てられていなければ、入出力比計算部２２４は、ステップＳ６０３及びステップＳ６０４の動作を行わなくてよい。
【００５８】
例えば、セグメントＡに割り当てられている部分ルール２では、入力イベント量が１であると仮定すると、出力イベント量は、入力イベントenvent_aの値が範囲[A1..A2]に含まれる確率である。入力イベントenvent_aの値が範囲[A1..A2]に含まれる確率が、例えば０．１である場合、入出力比計算部２２４は、入力イベント量が１である場合の出力イベント量を、０．１にする。
【００５９】
また、例えば、セグメントＢに割り当てられている部分ルール３では、入力イベント量が１であると仮定すると、出力イベント量は、イベント処理f( )による、イベント量の増加率である。イベント処理f( )の結果、入力イベントの２倍のサイズのイベントが出力される場合、入力イベント量が１である場合における、出力イベント量は２である。
【００６０】
例えば、セグメントＣに割り当てられる部分ルール４では、入力イベントのうちevent_aのイベント量が１であり、event_cのイベント量が１である場合、入力イベント量は、envent_aとevent_cの合計イベント量である２である。そして、出力イベント量は、event_aのイベント量である１である。
【００６１】
図１２に示す動作において、入出力イベント量比計算処理（ステップＳ１２０２）の次に、ルール配置計算処理（ステップＳ１２０３）を行う。
【００６２】
図７は、本実施形態のルール分配サーバ１０１の、ルール配置計算処理の動作の例を表すフローチャートである。
【００６３】
ルール配置計算部２２５は、リバースマルチキャストツリーに含まれる全てのセグメントが選択されるまで（ステップＳ７０１）、ステップＳ７０２からステップＳ７０６までの動作を繰り返す。ルール配置計算部２２５は、リバースマルチキャストツリーに含まれる、まだ選択されていないセグメントから、一つのセグメントを選択する（ステップＳ７０２）。ルール配置計算部２２５は、選択されたセグメントに関連付けられている部分ルールの、入力イベント量と出力イベント量を比較する（ステップＳ７０３）。そして、入力イベント量の方が出力イベント量より多い場合（ステップＳ７０４においてＹｅｓ）、ルール配置計算部２２５は、その部分ルールを、そのセグメントのイベント発生源側のイベントプロセッサに配置することを決定する（ステップＳ７０５）。イベント発生源側のイベントプロセッサは、セグメントが表す２台のＮＥのうち、リバースマルチキャストツリーにおいて葉側のＮＥに接続されているイベントプロセッサである。一方、出力イベント量の方が入力イベント量より多い場合（ステップＳ７０４においてＮｏ）、ルール配置計算部２２５は、その部分ルールをそのセグメントのイベント通知先１０６側のイベントプロセッサに配置することを決定する（ステップＳ７０６）。イベント通知先１０６側のイベントプロセッサは、セグメントが表す２台のＮＥのうち、リバースマルチキャストツリーにおいて根側のＮＥに接続されているイベントプロセッサである。なお、ステップＳ７０５において、ルール配置計算部２２５は、セグメントの葉側のＮＥを選択すればよい。同様に、ステップＳ７０６において、ルール配置計算部２２５は、セグメントの根側のＮＥを選択すればよい。本実施形態では、ＮＥに接続されているイベントプロセッサは１台なので、ＮＥを選択することによって、イベントプロセッサが選択される。
【００６４】
例えば、部分ルール２の場合、入力イベント量の方が出力イベント量より多い。従って、ルール配置計算部２２５は、部分ルール２を、セグメントＡのイベント発生源１０５ａ側にあるイベントプロセッサである、イベントプロセッサ１０２ｃに配置することを決定する。
【００６５】
また、部分ルール３の場合、出力イベント量の方が入力イベント量より多い。従って、ルール配置計算部２２５は、部分ルール３を、セグメントＢのイベント通知先１０６側にあるイベントプロセッサである、イベントプロセッサ１０２ｃに配置することを決定する。
【００６６】
また、部分ルール４の場合、入力イベント量の方が出力イベント量より多い。従って、ルール配置計算部２２５は、部分ルール４を、セグメントＣのイベント発生源１０５ａ及び１０５ｂ側にあるイベントプロセッサである、イベントプロセッサ１０２ｃに配置することを決定する。
【００６７】
図１２に示す動作において、最後に、ルール配置部２２６は、ルール配置計算部２２５による計算結果の通りに部分ルールを配置する（ステップＳ１２０４）。部分ルールを配置する前に、ルール配置部２２６は、部分ルールの処理結果の宛先が次の部分ルールを配置するイベントプロセッサになるように、部分ルールにおけるアクション部分を書き換える。アクション部分は、例えば、イベントを送信する指示の部分である。
【００６８】
例えば、部分ルール２の場合、アクション部分はsend event_aの部分である。ルール配置部２２６は、部分ルール２におけるアクション部分の宛先を、イベントプロセッサ１０２ｃに設定する。そして、ルール配置部２２６は、部分ルール２をイベントプロセッサ１０２ａに配置する。
【００６９】
部分ルール３の場合、アクション部分のsend event_cである。ルール配置部２２６は、部分ルール３におけるアクション部分の宛先を、イベントプロセッサ１０２ｃに設定する。そして、ルール配置部２２６は、部分ルール３をイベントプロセッサ１０２ｃに配置する。
【００７０】
以上で説明した本実施形態には、イベント発生源からイベント通知先１０６までのネットワークの使用効率を向上させることができるという第１の効果がある。
【００７１】
その理由は、ルール分解部２２３が、リバースマルチキャストツリーに含まれるセグメントに、イベント処理ルールから分割された、そのセグメントを通るイベントのみに関する処理を表す部分ルールを割り当てるからである。そして、ルール配置部２２６が、部分ルールが割り当てられたセグメントのＮＥに接続されているイベントプロセッサに、その部分ルールを配置するからである。部分ルールが配置されたイベントプロセッサは、その部分ルールに従って、受信するイベントに対する処理を行い、その処理の結果を次のセグメントに送信する。例えば複数のイベントが送信されるセグメントに、それらのイベントに対する処理を表す部分ルールが配置された場合、そのセグメントの次のセグメントには、それらの複数のイベントに対する処理結果を表すイベントが送信される。複数のイベントに対する処理結果を表すイベントが、一つのイベントであるなら、そのセグメントに入力されるイベントは複数であるのに対し、そのセグメントから出力されるイベントは１個である。従って、ネットワークの使用効率を向上させることができる。
【００７２】
本実施形態には、イベント処理ネットワークにおいて、イベント発生源からイベント通知先１０６までの距離を短縮することができるという第２の効果がある。
【００７３】
その理由は、ツリー計算部２２１が、イベント発生源からイベント通知先までの最短ルートを計算するからである。そして、ツリー計算部２２１は、計算された最短ルートを表すリバースマルチキャストツリーを生成するからである。
【００７４】
本実施形態には、イベント発生源からイベント通知先１０６までのネットワークの使用効率をさらに向上させることができるという第３の効果がある。
【００７５】
その理由は、ルール配置計算部２２５が、部分ルールにおける入力イベント量と出力イベント量の比に基づき、ＮＥ間で転送されるイベント量が少なくなるよう、部分ルールを割り当てるイベントプロセッサを選択するからである。
【００７６】
＜第２の実施形態＞
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【００７７】
図１３は、第２の実施形態に係るイベント処理システムの全体を模式的に表すブロック図である。図１３と図１とを比較すると、第２の実施形態に係るイベント処理システムは、ルール分配サーバ１０１の代わりにルール分配サーバ１０１Ａを含む。
【００７８】
図８は、第２の実施形態のルール分配サーバ１０１Ａの構成の例を表すブロック図である。図８と図２とを比較すると、ルール分配サーバ１０１Ａは、第１の実施形態のルール分配サーバ１０１の各構成要素に加えて、集計情報記憶部２２７と、集計情報処理部２２８とを含む。なお、ルール分配サーバ１０１Ａは、ルール分配サーバ１０１と同様に、ルール記憶部２２０を含む。図８では、ルール記憶部２２０は省略されている。
【００７９】
集計情報記憶部２２７は、例えば、イベント入出力量集計情報を含む、イベント入出力情報集計情報データベースを記憶していてもよい。イベント入出力量集計情報は、部分ルールが配置されたイベントプロセッサが測定した、部分ルール毎の、入力イベント量及び出力イベント量の測定結果を集計した集計結果を表す値を含んでいればよい。
【００８０】
集計情報処理部２２８は、例えば、部分ルールが配置された各イベントプロセッサから、例えばイベント毎の、入力イベント量と出力イベント量とを受信すればよい。そして、集計情報処理部２２８は、例えばイベント毎に、入力イベント量と出力イベント量とを含むイベント量の履歴を、集計情報記憶部２２７に格納してもよい。
【００８１】
集計情報処理部２２８は、例えば所定のタイミングで、各イベントプロセッサから受信した、入力イベント量及び出力イベント量の集計値を算出してもよい。あるいは、各イベントプロセッサが、イベント毎の入力イベント量及び出力イベント量の履歴を記憶し、記憶されている履歴に基づき集計値を算出してもよい。そして、各イベントプロセッサは、算出した集計値を集計情報処理部２２８に送信してもよい。そして、集計情報処理部２２８は、算出した入力イベント量及び出力イベント量の集計値を、部分ルール毎に集計情報記憶部２２７に格納してもよい。その場合、入出力比計算部２２４は、部分ルール毎に記憶されている、入力イベント量及び出力イベント量の集計値を読み出せばよい。
【００８２】
あるいは、入出力比計算部２２４が、集計情報記憶部２２７に格納されているイベント毎のイベント量の履歴に基づき、部分ルール毎の入力イベント量及び出力イベント量の集計値を算出してもよい。
【００８３】
集計値は、例えば、合計データ量、単位時間当たりのデータ量、イベント１回当たりの平均データ量、あるいは、他の統計量である。
【００８４】
図９は、部分ルール毎のイベント量の集計結果の例を表す。図９に示す例では、上から、ルール２、ルール３、ルール４の入力イベント量及び出力イベント量の集計結果である。図９に示す例では、入力イベント量及び出力イベント量は、１秒当たりのバイト数によって表されている。例えば、部分ルール２の場合、入力イベント量が１００バイト／秒であるのに対し、出力イベント量は、１０バイト／秒である。
【００８５】
本実施形態において、ルール分配サーバ１０１Ａが入力イベント量及び出力イベント量の集計を行うためには、あらかじめ部分ルールがイベントプロセッサに配置されている必要がある。そのため、ルール分配サーバ１０１Ａは、部分ルールがどのイベントプロセッサに配置されていない初期状態において、第１の実施形態のルール分配サーバ１０１と同じ動作を行ってもよい。あるいは、初期状態において、ルール分配サーバ１０１Ａのルール分解部２２３は、まず、図３に示すルール分解処理を行ってもよい。そして、例えば、ルール分配サーバ１０１Ａのルール配置部２２６が、セグメントの両端のＮＥに接続されているイベントプロセッサのうち、例えば所定の基準によって定まるイベントプロセッサに、そのセグメントに割り当てられた部分ルールを配置してもよい。ルール配置部２２６は、初期状態において、例えば、全てのセグメントにおいて、セグメントに割り当てられた部分ルールを、イベント発生源に近いＮＥに接続されたイベントプロセッサに配置してもよい。あるいは、ルール配置部２２６は、初期状態において、例えば、全てのセグメントにおいて、セグメントに割り当てられた部分ルールを、イベント通知先１０６に近いＮＥに接続されたイベントプロセッサに配置してもよい。ルール配置部２２６は、初期状態において、セグメントに割り当てられた部分ルールを、そのセグメントの両端のいずれかに接続されているイベントプロセッサのうち、他の方法によって定まるイベントプロセッサに配置してもよい。
【００８６】
本実施形態の入出力比計算部２２４は、部分ルールがどのイベントプロセッサに配置されていない初期状態において、第１の実施形態の入出力比計算部２２４と同様に動作してもよい。
【００８７】
本実施形態のルール配置計算部２２５は、初期状態において、第１の実施形態のルール配置計算部２２５と同様に、ルールの配置を計算してもよい。
【００８８】
本実施形態の入出力比計算部２２４は、入力イベント量及び出力イベント量の測定結果を集計した集計値に基づき、部分ルールの入力イベント量と出力イベント量とを計算する。
本実施形態のルール配置計算部２２５は、さらに、入力イベント量及び出力イベント量の集計値が得られている、初期状態以外の状態において、入力イベント量及び出力イベント量の集計値に基づいて、ルールの配置を計算する。
【００８９】
次に、本実施形態のルール分配サーバ１０１Ａの動作について、図面を参照して詳細に説明する。
【００９０】
図１２は、本実施形態のルール分配サーバ１０１Ａの、初期状態における動作の例を表すブロック図である。図１２は、本実施形態のルール分配サーバ１０１Ａが、初期状態において、第１の実施形態のルール分配サーバ１０１と同じ動作を行う場合における、ルール分配サーバ１０１Ａの初期状態における動作を表す。前述のように、初期状態は、どのイベントプロセッサにも部分ルールが配置されていない状態である。初期状態において、ルール分配サーバ１０１Ａは、第１の実施形態のルール分配サーバ１０１と同じ動作を行う。
【００９１】
図１４は、本実施形態のルール分配サーバ１０１Ａの、初期状態でない状態における動作の例を表すブロック図である。以下の説明において、初期状態でない状態を、定常状態と表記する。ルール分配サーバ１０１Ａは、どのイベントプロセッサにも部分ルールが配置されていない場合を除き、例えば定期的に、図１４に示す動作を行えばよい。
【００９２】
図１４を参照すると、ルール分配サーバ１０１Ａは、まず、入出力イベント量比計算処理（ステップＳ１２０２）を行う。
【００９３】
図６は、本実施形態のルール分配サーバ１０１Ａの、定常状態における入出力イベント量比計算処理の動作を表すフローチャートである。本実施形態の入出力比計算部２２４は、実測値に基づき算出された集計値に基づく入力イベント量と出力イベント量とを使用して、図６に示す入出力イベント量比計算処理を行う。本実施形態の定常状態における入出力イベント量比計算処理は、使用される入力イベント量と出力イベント量とを除き、第１の実施形態における入出力イベント量比計算処理と同じである。
【００９４】
図１４を参照すると、次に、ルール分配サーバ１０１Ａは、ルール配置計算処理（ステップＳ１２０３）を行う。
【００９５】
図７は、本実施形態のルール分配サーバ１０１Ａの、定常状態におけるルール配置計算処理の動作を表すフローチャートである。本実施形態の定常状態におけるルール配置計算処理は、使用される入力イベント量と出力イベント量とを除き、第１の実施形態におけるルール配置計算処理と同じである。
【００９６】
また、図１４におけるステップＳ１２０４の動作は、図１２に示す、第１の実施形態のルール分配サーバ１０１のステップＳ１２０４の動作と同じである。ただし、ルール配置部２２６は、部分ルールの配置先であるイベントプロセッサに、配置される部分ルールと同じ部分ルールが既に配置されているか判定してもよい。そして、ルール配置部２２６は、場合、部分ルールの配置先であるイベントプロセッサに、配置される部分ルールと同じ部分ルールが既に配置されている場合、そのイベントプロセッサに部分ルールを配置しなくてよい。
【００９７】
以上で説明した本実施形態には、第１の実施形態のそれぞれの効果と同じ効果がある。その理由は、第１の実施形態のそれぞれの効果が生じる理由と同じである。
【００９８】
本実施形態には、さらに、ネットワークの使用効率を向上させることができるという効果がある。その理由は、本実施形態のルール配置計算部２２５が、入力イベント量及び出力イベント量の測定結果に基づき、
＜第３の実施形態＞
次に、本発明の第３の実施形態について、図面を参照して詳細に説明する。
【００９９】
図１０は、第３の実施形態に係るイベント処理システムの全体を模式的に表すブロック図である。図１０に示す例では、各ＮＥに複数のイベントプロセッサが接続されている。しかし、必ずしも全てのＮＥに複数のイベントプロセッサが接続されていなくてよい。
【０１００】
図１５は、本実施形態のルール分配サーバ１０１Ｂの構成を表す図である。本実施形態のルール分配サーバ１０１Ｂは、第１の実施形態のルール分配サーバ１０１の各構成要素に加えて、負荷検出部２２９と、対象イベント記憶部２３０とを含んでいてもよい。その場合、本実施形態のルール分配サーバ１０１の構成要素は、ルール配置部２２６を除き、第１の実施形態のルール分配サーバ１０１の同じ番号が付与された構成要素と同じ動作を行う。そして、その場合、本実施形態のルール分配サーバ１０１は、以下の点を除き、第１の実施形態のルール分配サーバ１０１と同じである。なお、ルール分配サーバ１０１Ｂは、ルール分配サーバ１０１と同様に、ルール記憶部２２０を含む。図１５では、ルール記憶部２２０は省略されている。
【０１０１】
本実施形態のルール分配サーバ１０１Ｂは、さらに、集計情報記憶部２２７と、集計情報処理部２２８とを含んでいてもよい。すなわち、本実施形態のルール分配サーバ１０１Ｂは、第２の実施形態のルール分配サーバ１０１Ａの各構成要素に加えて、負荷検出部２２９を含んでいてもよい。その場合、本実施形態のルール分配サーバ１０１の構成要素は、ルール配置部２２６を除き、第２の実施形態のルール分配サーバ１０１Ａの同じ番号が付与された構成要素と同じ動作を行う。そして、その場合、本実施形態のルール分配サーバ１０１は、以下の点を除き、第２の実施形態のルール分配サーバ１０１Ａと同じである。
【０１０２】
負荷検出部２２９は、イベントプロセッサの負荷を検出する。そして、負荷検出部２２９は、イベントプロセッサの負荷を表す値を、ルール配置部２２６に送信する。
【０１０３】
ルール配置計算部２２５は、セグメントに割り当てられた部分ルールの配置先として、前述のように、そのセグメントが表す２台のＮＥのうちの一方を選択すればよい。ただし、本実施形態では、複数のイベントプロセッサが接続されているＮＥが存在する。ルール配置計算部２２５が選択したＮＥに複数のイベントプロセッサが接続されている場合、ルール配置計算部２２５がＮＥを選択することによって、複数のイベントプロセッサが選択される。
【０１０４】
本実施形態のルール配置部２２６は、選択されたＮＥに複数のイベントプロセッサが接続されている場合、それらの複数のイベントプロセッサが行うイベント処理の負荷が偏らないように、セグメントに割り当てられた部分ルールを配置してもよい。言い換えると、ルール配置部２２６は、選択されたＮＥに接続されている複数のイベントプロセッサから、それらの複数のイベントプロセッサが行うイベント処理の負荷の偏りが少なくなるように、部分ルールを配置する１台のイベントプロセッサを選択してもよい。そして、ルール配置部２２６は、選択したイベントプロセッサに、そのセグメントに割り当てられた部分ルールを配置してもよい。同じＮＥに接続されている複数のイベントプロセッサにおけるイベント処理の負荷の偏りが少なくなるように部分ルールを配置する方法として、さまざまな方法が適用可能である。
【０１０５】
例えば、ルール配置部２２６は、負荷検出部２２９から受信した負荷に基づき、ルール配置計算部２２５によって選択されたＮＥに接続されているイベントプロセッサから、負荷が最も小さいイベントプロセッサを選択すればよい。そして、ルール配置部２２６は、選択したイベントプロセッサに、そのＮＥが配置先として選択された部分ルールを配置すればよい。
【０１０６】
負荷は、例えば、イベントプロセッサのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）使用率であってもよい。負荷は、イベントプロセッサのＣＰＵの負荷を表す他の指標であってもよい。その場合、イベントプロセッサは、負荷を表す値を、負荷検出部２２９に送信すればよい。負荷検出部２２９は、負荷を表す値を、各イベントプロセッサから受信すればよい。
【０１０７】
負荷は、例えば、イベントプロセッサに割り当てられている部分ルールの数であってもよい。その場合、ルール配置部２２６は、例えば、部分ルールを割り当てるのに応じて、部分ルールを割り当てたイベントプロセッサの識別子を、負荷検出部２２９に送信すればよい。負荷検出部２２９は、ルール配置部２２６から、部分ルールが割り当てられたイベントプロセッサの識別子を受信すればよい。そして、負荷検出部２２９は、イベントプロセッサ毎に、割り当てられている部分ルールの数をカウントすればよい。
【０１０８】
ルール配置部２２６は、選択されたＮＥに接続されているイベントプロセッサにおいて、同じイベントに対する処理を表す部分ルールが、同じイベントプロセッサに割り当てられるよう、部分ルールを配置してもよい。
【０１０９】
その場合、対象イベント記憶部２３０は、ＮＥ毎に、部分ルールが表す処理の対象であるイベントと、その部分ルールを配置したイベントプロセッサとを関連付けて記憶していればよい。そして、新しく部分ルールを配置する際、ルール配置部２２６は、新しく配置される部分ルールが表す処理の対象であるイベントを特定すればよい。そして、ルール配置部２２６は、新しく配置される部分ルールに対して選択されたＮＥにおいて、特定されたイベントに関連付けられているイベントプロセッサに、その新しく配置される部分ルールを配置すればよい。新しく配置される部分ルールが表す処理の対象であるイベントに関連付けられているイベントプロセッサが存在しない場合、ルール配置部２２６は、例えば上述のように、負荷が小さいイベントプロセッサに新しく配置される部分ルールを配置すればよい。そして、ルール配置部２２６は、配置した部分ルールが表す処理の対象であるイベントと、その部分ルールが配置されたイベントプロセッサとを関連付けて、対象イベント記憶部２３０に格納すればよい。
【０１１０】
次に、本実施形態の動作について説明する。本実施形態の動作は、図１２に示すステップＳ１２０４の動作を除き、第１の実施形態の動作と同じである。
【０１１１】
ステップＳ１２０４において、ルール配置部２２６は、上述のように、ＮＥに接続されているイベントプロセッサが行うイベント処理の負荷が偏らないように、部分ルールを配置するイベントプロセッサを選択する。そして、ルール配置部２２６は、選択されたイベントプロセッサに部分ルールを配置する。
【０１１２】
以上で説明した本実施形態には、第１の実施形態のそれぞれの効果と同じ効果がある。その理由は、第１の実施形態のそれぞれの効果が生じる理由と同じである。
【０１１３】
本実施形態には、さらに、各イベントプロセッサの負荷を軽減することができるという効果がある。
【０１１４】
その理由は、ルール配置部２２６は、上述のように、ＮＥに接続されているイベントプロセッサが行うイベント処理の負荷が、そのＮＥに接続されている複数のイベントプロセッサに分散されるよう、部分ルールを配置するからである。
【０１１５】
なお、本実施形態のルール配置部２２６以外の各構成要素は、第２の実施形態のルール分配サーバ１０１Ａの、同じ番号が付与されている構成要素と同じ動作を行ってもよい。
【０１１６】
その場合、本実施形態には、第２の実施形態と同じ効果がある。その理由は、第２の実施形態の効果が生じる理由と同じである。そして、本実施形態には、上述の理由により、さらに、各イベントプロセッサの負荷を軽減することができるという効果がある。
【０１１７】
＜第４の実施形態＞
次に、本発明の第４の実施形態について、図面を参照して詳細に説明する。
【０１１８】
図１６は、本実施形態のイベント処理制御装置１０１Ｃの構成の例を表す図である。
【０１１９】
図１６を参照すると、本実施形態のイベント処理制御装置１０１Ｃは、イベント発生源とイベント通知先１０６とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先１０６までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解するルール分解部２２３と、前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置部２２６と、を備える。
【０１２０】
以上で説明した本実施形態には、第１の実施形態の第１の効果と同じ効果がある。その理由は、第１の実施形態の第１の効果が生じる理由と同じである。
【０１２１】
ルール分配サーバ１０１、ルール分配サーバ１０１Ａ、ルール分配サーバ１０１Ｂ、及びイベント処理制御装置１０１Ｃは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【０１２２】
図１７は、ルール分配サーバ１０１、ルール分配サーバ１０１Ａ、ルール分配サーバ１０１Ｂ、及びイベント処理制御装置１０１Ｃを実現することができる、コンピュータ１０００の構成の一例を表す図である。図１７を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、各イベントプロセッサにアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を、ルール分配サーバ１０１、ルール分配サーバ１０１Ａ、ルール分配サーバ１０１Ｂ、又はイベント処理制御装置１０１Ｃとして動作させるプログラムが格納されている。
【０１２３】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００を、コンピュータ１０００を、ルール分配サーバ１０１、ルール分配サーバ１０１Ａ、ルール分配サーバ１０１Ｂ、又はイベント処理制御装置１０１Ｃとして動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は、コンピュータ１０００を、ルール分配サーバ１０１、ルール分配サーバ１０１Ａ、ルール分配サーバ１０１Ｂ、又はイベント処理制御装置１０１Ｃとして動作する。
【０１２４】
ツリー計算部２２１、ルール分解部２２３、入出力比計算部２２４、ルール配置計算部２２５、ルール配置部２２６、集計情報処理部２２８、負荷検出部２２９は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、各部の機能を実現することができる専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。また、トポロジ情報記憶部２２２、集計情報記憶部２２７、対象イベント記憶部２３０は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。あるいは、ツリー計算部２２１、トポロジ情報記憶部２２２、ルール分解部２２３、入出力比計算部２２４、ルール配置計算部２２５、ルール配置部２２６、集計情報記憶部２２７、集計情報処理部２２８、負荷検出部２２９、対象イベント記憶部２３０の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０１２５】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１２６】
（付記１）
イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解するルール分解手段と、
前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置手段と、
を備えるイベント処理制御装置。
【０１２７】
（付記２）
前記ルール分解手段は、前記リバースマルチキャストツリーの前記イベント発生源側から順に、前記リバースマルチキャストツリーから前記部分木を選択し、前記イベント処理ルールから、選択された前記部分木に送信されるイベントのみに関する部分を、前記部分木に割り当てる部分ルールとして抽出する
付記１に記載のイベント処理制御装置。
【０１２８】
（付記３）
前記部分ルールの処理の対象である入力イベントのデータ量（以下、「入力イベント量」）と、前記部分ルールに基づく処理の結果出力される出力イベントのデータ量（以下、「出力イベント量」）とを導出する入出力比計算手段と、
前記部分木に割り当てられた前記部分ルールにおいて導出された、前記入力イベント量が前記出力イベント量より多い場合、前記部分木が含む前記イベント発生源側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択し、前記出力イベント量が前記入力イベント量より多い場合、前記部分木が含む前記イベント通知先側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択するルール配置計算手段と、
を含む付記１又は２に記載のイベント処理制御装置。
【０１２９】
（付記４）
前記入出力比計算手段は、前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分ルールに基づき算出する
付記３に記載のイベント処理制御装置。
【０１３０】
（付記５）
前記部分ルールに基づく処理の結果における、前記入力イベント量と前記出力イベント量とを受信し、受信した前記入力イベント量と前記出力イベント量とを、前記部分ルールに関連付けて、処理履歴として集計情報記憶部に格納する集計情報処理手段を備え、
前記入出力比計算手段は、前記部分木に割り当てられた前記部分ルールに関連付けられている前記処理履歴が前記集計情報記憶部に格納されている場合、前記部分木に割り当てられた前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分木に関連付けられている前記処理履歴に基づき算出し、前記部分木に割り当てられた前記部分ルールに関連付けられている前記処理履歴が前記集計情報記憶部に格納されていない場合、前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分ルールに基づき算出する
付記４に記載のイベント処理制御装置。
【０１３１】
（付記６）
前記部分ルールに基づく処理の結果における、前記入力イベント量と前記出力イベント量とを受信し、受信した前記入力イベント量と前記出力イベント量とを、前記部分ルールに関連付けて、処理履歴として集計情報記憶部に格納する集計情報処理手段を含み、
前記入出力比計算手段は、前記集計情報記憶部に格納されている前記処理履歴に基づき、前記部分木に割り当てられた前記部分ルールの前記入力イベント量と前記出力イベント量とを算出する
付記３に記載のイベント処理制御装置。
【０１３２】
（付記７）
複数の前記イベント処理装置が前記ネットワーク装置に接続され、
前記ルール配置手段は、前記部分木に含まれる前記ネットワーク装置に接続されている前記複数のイベント処理装置における負荷が偏らないように、前記複数のイベント処理装置のいずれかに、前記部分木に割り当てられた前記部分ルールを配置する
付記１乃至６のいずれかに記載のイベント処理制御装置。
【０１３３】
（付記８）
前記複数のイベント処理装置の負荷を検出する負荷検出手段を含み、
前記ルール配置手段は、前記複数のイベント処理装置のうち、検出された前記負荷が最も小さい前記イベント処理装置に、前記部分ルールを配置する
付記７に記載のイベント処理制御装置。
【０１３４】
（付記９）
前記負荷は、前記イベント処理装置に配置されている部分ルールの数である
付記８に記載のイベント処理実行装置。
【０１３５】
（付記１０）
前記複数のイベント処理装置に配置されている部分ルールが表す処理の対象である前記イベントを前記イベント処理装置毎に記憶する対象イベント記憶部を備え、
前記ルールルール配置手段は、前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている前記複数のイベント処理装置から、前記部分木に割り当てられた前記部分ルールが表す処理の対象である前記イベントに関連付けられている前記イベント処理装置を選択し、選択された前記イベント処理装置に前記部分ルールを配置する
付記７に記載のイベント処理制御装置
（付記１１）
前記イベント処理システムに含まれる前記複数のネットワーク装置、前記イベント発生源、及び前記イベント通知先の中で、通信が可能な組み合わせを表すトポロジ情報を記憶するトポロジ情報記憶手段と、
前記トポロジ情報に基づき、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する最短経路を表す前記リバースマルチキャストツリーを計算するツリー計算手段と、
を備える付記１乃至１０のいずれかに記載のイベント処理制御装置。
【０１３６】
（付記１２）
付記１乃至１１のいずれかに記載のイベント処理制御装置を含む前記イベント処理システム。
【０１３７】
（付記１３）
イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解ルール分解手段し、
前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置手段、
イベント処理制御方法。
【０１３８】
（付記１４）
ルール分解手段前記リバースマルチキャストツリーの前記イベント発生源側から順に、前記リバースマルチキャストツリーから前記部分木を選択し、前記イベント処理ルールから、選択された前記部分木に送信されるイベントのみに関する部分を、前記部分木に割り当てる部分ルールとして抽出する
付記１３に記載のイベント処理制御方法。
【０１３９】
（付記１５）
前記部分ルールの処理の対象である入力イベントのデータ量（以下、「入力イベント量」）と、前記部分ルールに基づく処理の結果出力される出力イベントのデータ量（以下、「出力イベント量」）とを導出し、
前記部分木に割り当てられた前記部分ルールにおいて導出された、前記入力イベント量が前記出力イベント量より多い場合、前記部分木が含む前記イベント発生源側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択し、前記出力イベント量が前記入力イベント量より多い場合、前記部分木が含む前記イベント通知先側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択するルール配置計算手段、
付記１３又は１４に記載のイベント処理制御方法。
【０１４０】
（付記１６）
前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分ルールに基づき算出する
付記１５に記載のイベント処理制御方法。
【０１４１】
（付記１７）
前記部分ルールに基づく処理の結果における、前記入力イベント量と前記出力イベント量とを受信し、受信した前記入力イベント量と前記出力イベント量とを、前記部分ルールに関連付けて、処理履歴として集計情報記憶部に格納し、
前記部分木に割り当てられた前記部分ルールに関連付けられている前記処理履歴が前記集計情報記憶部に格納されている場合、前記部分木に割り当てられた前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分木に関連付けられている前記処理履歴に基づき算出し、前記部分木に割り当てられた前記部分ルールに関連付けられている前記処理履歴が前記集計情報記憶部に格納されていない場合、前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分ルールに基づき算出する
付記１６に記載のイベント処理制御方法。
【０１４２】
（付記１８）
前記部分ルールに基づく処理の結果における、前記入力イベント量と前記出力イベント量とを受信し、受信した前記入力イベント量と前記出力イベント量とを、前記部分ルールに関連付けて、処理履歴として集計情報記憶部に格納し、
前記集計情報記憶部に格納されている前記処理履歴に基づき、前記部分木に割り当てられた前記部分ルールの前記入力イベント量と前記出力イベント量とを算出する
付記１５に記載のイベント処理制御方法。
【０１４３】
（付記１９）
複数の前記イベント処理装置を前記ネットワーク装置に接続し、
ルール配置手段前記部分木に含まれる前記ネットワーク装置に接続されている前記複数のイベント処理装置における負荷が偏らないように、前記複数のイベント処理装置のいずれかに、前記部分木に割り当てられた前記部分ルールを配置する
付記１３乃至１８のいずれかに記載のイベント処理制御方法。
【０１４４】
（付記２０）
前記複数のイベント処理装置の負荷を検し、
前記ルール配置手段は、前記複数のイベント処理装置のうち、検出された前記負荷が最も小さい前記イベント処理装置に、前記部分ルールを配置する
付記１９に記載のイベント処理制御方法。
【０１４５】
（付記２１）
前記負荷は、前記イベント処理装置に配置されている部分ルールの数である
付記２０に記載のイベント処理実行方法。
【０１４６】
（付記２２）
前記複数のイベント処理装置に配置されている部分ルールが表す処理の対象である前記イベントを前記イベント処理装置毎に対象イベント記憶部に記憶し、
ルール配置手段前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている前記複数のイベント処理装置から、前記部分木に割り当てられた前記部分ルールが表す処理の対象である前記イベントに関連付けられている前記イベント処理装置を選択し、選択された前記イベント処理装置に前記部分ルールを配置する
付記１９に記載のイベント処理制御方法
（付記２３）
前記イベント処理システムに含まれる前記複数のネットワーク装置、前記イベント発生源、及び前記イベント通知先の中で、通信が可能な組み合わせを表すトポロジ情報をトポロジ情報記憶手段記憶し、
前記トポロジ情報に基づき、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する最短経路を表す前記リバースマルチキャストツリーを計算する、
付記１３乃至２２のいずれかに記載のイベント処理制御方法。
【０１４７】
（付記２４）
コンピュータを、
イベント発生源とイベント通知先とを接続する複数のネットワーク機器と、前記複数のネットワーク機器のいずれかに接続されたイベント情報処理装置とを含むイベント処理システムが行う、前記イベント発生源が発生するイベントに対する処理を表すイベント処理ルールを、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する経路を表すリバースマルチキャストツリーの一部であり、２台の前記ネットワーク機器によって表される部分木に関連付けられた、前記処理の少なくとも一部を表す部分ルールに分解するルール分解手段と、
前記部分ルールを、当該部分ルールに関連付けられた前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている、前記部分ルールが配置された場合当該部分ルールに従ってイベント処理を実行するイベント処理装置に配置するルール配置手段と、
して動作させるイベント処理制御プログラム。
【０１４８】
（付記２５）
コンピュータを、
ルール分解手段前記リバースマルチキャストツリーの前記イベント発生源側から順に、前記リバースマルチキャストツリーから前記部分木を選択し、前記イベント処理ルールから、選択された前記部分木に送信されるイベントのみに関する部分を、前記部分木に割り当てる部分ルールとして抽出する前記ルール分解手段と、
して動作させる付記２４に記載のイベント処理制御プログラム。
【０１４９】
（付記２６）
コンピュータを、
前記部分ルールの処理の対象である入力イベントのデータ量（以下、「入力イベント量」）と、前記部分ルールに基づく処理の結果出力される出力イベントのデータ量（以下、「出力イベント量」）とを導出する入出力比計算手段と、
前記部分木に割り当てられた前記部分ルールにおいて導出された、前記入力イベント量が前記出力イベント量より多い場合、前記部分木が含む前記イベント発生源側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択し、前記出力イベント量が前記入力イベント量より多い場合、前記部分木が含む前記イベント通知先側のネットワーク装置に接続されている前記イベント処理装置を前記部分ルールの配置先として選択するルール配置計算手段と、
して動作させる付記２４又は２５に記載のイベント処理制御プログラム。
【０１５０】
（付記２７）
コンピュータを、
前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分ルールに基づき算出する前記入出力比計算手段と、
して動作させる付記２６に記載のイベント処理制御プログラム。
【０１５１】
（付記２８）
コンピュータを、
前記部分ルールに基づく処理の結果における、前記入力イベント量と前記出力イベント量とを受信し、受信した前記入力イベント量と前記出力イベント量とを、前記部分ルールに関連付けて、処理履歴として集計情報記憶部に格納する集計情報処理手段と、
前記部分木に割り当てられた前記部分ルールに関連付けられている前記処理履歴が前記集計情報記憶部に格納されている場合、前記部分木に割り当てられた前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分木に関連付けられている前記処理履歴に基づき算出し、前記部分木に割り当てられた前記部分ルールに関連付けられている前記処理履歴が前記集計情報記憶部に格納されていない場合、前記部分ルールの前記入力イベント量と前記出力イベント量とを、前記部分ルールに基づき算出する前記入出力比計算手段と、
して動作させる付記２７に記載のイベント処理制御プログラム。
【０１５２】
（付記２９）
コンピュータを、
前記部分ルールに基づく処理の結果における、前記入力イベント量と前記出力イベント量とを受信し、受信した前記入力イベント量と前記出力イベント量とを、前記部分ルールに関連付けて、処理履歴として集計情報記憶部に格納する集計情報処理手段と、
前記集計情報記憶部に格納されている前記処理履歴に基づき、前記部分木に割り当てられた前記部分ルールの前記入力イベント量と前記出力イベント量とを算出する前記入出力比計算手段と、
して動作させる付記２６に記載のイベント処理制御プログラム。
【０１５３】
（付記３０）
複数の前記イベント処理装置が前記ネットワーク装置に接続され、
コンピュータを、
ルール配置手段前記部分木に含まれる前記ネットワーク装置に接続されている前記複数のイベント処理装置における負荷が偏らないように、前記複数のイベント処理装置のいずれかに、前記部分木に割り当てられた前記部分ルールを配置する前記ルール配置手段と、
して動作させる付記２４乃至２９のいずれかに記載のイベント処理制御プログラム。
【０１５４】
（付記３１）
コンピュータを、
前記複数のイベント処理装置の負荷を検出する負荷検出手段と、
ルール配置手段前記複数のイベント処理装置のうち、検出された前記負荷が最も小さい前記イベント処理装置に、前記部分ルールを配置する前記ルール配置手段と、
して動作させる付記３０に記載のイベント処理制御プログラム。
【０１５５】
（付記３２）
前記負荷は、前記イベント処理装置に配置されている部分ルールの数である
付記３１に記載のイベント処理実行プログラム。
【０１５６】
（付記３３）
コンピュータを、
前記複数のイベント処理装置に配置されている部分ルールが表す処理の対象である前記イベントを前記イベント処理装置毎に記憶する対象イベント記憶部と、
ルール配置手段前記部分木が表す前記ネットワーク装置から選択された前記ネットワーク装置に接続されている前記複数のイベント処理装置から、前記部分木に割り当てられた前記部分ルールが表す処理の対象である前記イベントに関連付けられている前記イベント処理装置を選択し、選択された前記イベント処理装置に前記部分ルールを配置する前記ルールルール配置手段と、
して動作させる付記３０に記載のイベント処理制御プログラム
（付記３４）
コンピュータを、
前記イベント処理システムに含まれる前記複数のネットワーク装置、前記イベント発生源、及び前記イベント通知先の中で、通信が可能な組み合わせを表すトポロジ情報を記憶するトポロジ情報記憶手段と、
前記トポロジ情報に基づき、前記イベント発生源から前記イベント通知先までの前記複数のネットワーク機器を経由する最短経路を表す前記リバースマルチキャストツリーを計算するツリー計算手段と、
して動作させる付記２４乃至３３のいずれかに記載のイベント処理制御プログラム。
【０１５７】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１５８】
１０１、１０１Ａ、１０１Ｂ    ルール分配サーバ
１０１Ｃ    イベント処理制御装置
１０２ａ、１０２ｂ、１０２ｃ、１０２ｄ、１０２ｅ、１０２ａａ、１０２ａｂ、１０２ａｃ、１０２ｂａ、１０２ｂｂ、１０２ｂｃ、１０２ｃａ、１０２ｃｂ、１０２ｃｃ、１０２ｄａ、１０２ｄｂ、１０２ｄｃ、１０２ｅａ、１０２ｅｂ、１０２ｅｃ    イベントプロセッサ
１０３ａ、１０３ｂ、１０３ｃ、１０３ｄ    ＮＥ
１０４    ルール設定者端末
１０５ａ、１０５ｂ    イベント発生源
１０６    イベント通知先
２２０    ルール記憶部
２２１    ツリー計算部
２２２    トポロジ情報記憶部
２２３    ルール分解部
２２４    入出力比計算部
２２５    ルール配置計算部
２２６    ルール配置部
２２７    集計情報記憶部
２２８    集計情報処理部
２２９    負荷検出部
２３０    対象イベント記憶部
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
2015179980.tif 000003
【図２】
2015179980.tif 000004
【図３】
2015179980.tif 000005
【図４】
2015179980.tif 000006
【図５】
2015179980.tif 000007
【図６】
2015179980.tif 000008
【図７】
2015179980.tif 000009
【図８】
2015179980.tif 000010
【図９】
2015179980.tif 000011
【図１０】
2015179980.tif 000012
【図１１】
2015179980.tif 000013
【図１２】
2015179980.tif 000014
【図１３】
2015179980.tif 000015
【図１４】
2015179980.tif 000016
【図１５】
2015179980.tif 000017
【図１６】
2015179980.tif 000018
【図１７】
2015179980.tif 000019