JPWO2013190770A1 - ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム - Google Patents

ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム Download PDF

Info

Publication number
JPWO2013190770A1
JPWO2013190770A1 JP2014520890A JP2014520890A JPWO2013190770A1 JP WO2013190770 A1 JPWO2013190770 A1 JP WO2013190770A1 JP 2014520890 A JP2014520890 A JP 2014520890A JP 2014520890 A JP2014520890 A JP 2014520890A JP WO2013190770 A1 JPWO2013190770 A1 JP WO2013190770A1
Authority
JP
Japan
Prior art keywords
event
processing
rule
distribution
event processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014520890A
Other languages
English (en)
Other versions
JP6222089B2 (ja
Inventor
和彦 磯山
和彦 磯山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014520890A priority Critical patent/JP6222089B2/ja
Publication of JPWO2013190770A1 publication Critical patent/JPWO2013190770A1/ja
Application granted granted Critical
Publication of JP6222089B2 publication Critical patent/JP6222089B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

複数のアプリケーションが要求するイベント処理を行う処理装置20−1〜20−nと、各処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置30とを含むイベント処理システムにおいて、アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを各処理装置に設定するルール分配装置10であって、複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みに応じて、アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定する処理ルール振り分け部11を含む。

Description

本発明は、ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラムに関する。
近年、電力消費量や交通情報など、様々な情報を収集するセンサや、ネットワークカメラやスマート家電などのようにネットワーク越しに遠隔操作を行えるデバイス(アクチュエータ)がネットワークに繋がれるようになってきている。それに伴い、デバイスからのイベントを基に状況を自動的に判断し、人手を介することなくデバイスを制御する、M2M(Machine to Machine)の技術が注目を集めている。このように、センサから発せられるイベントを基に状況を推定したり、アクションを実行したりする処理はイベント処理と呼ばれている。
特に複数のイベントのパターンを検出し、それらイベントの情報に基づいて処理を行う技術を複合イベント処理(CEP: Complex Event Processing)と呼ぶ。
CEPでは、検出するイベントのパターンと処理内容をCEPルールとして記述する。例えば、CEPルールは以下のようになる。
「IF event(DevID=11) and event(DevID=21) THEN 温度値の平均を算出」
上記の場合、DevID(デバイスID)=11のイベントとDevID=21のイベントを検出したら、それらのイベントに含まれる温度値の平均が算出される。
今後、このようなネットワークに接続されるデバイスは急増し、そこから発生するイベントの量は膨大になり、M2Mサービスは大規模化していくことが予想される。これに対処するため、サービスの大規模化に対応できるシステムが必要になると考えられる。このように、デバイスなどから大量に発生するイベントを処理するシステムとしては特許文献1に開示されている発明がある。図22は、特許文献1に記載されたシステムの構成を示すブロック図である。
図22に示すように、特許文献1に記載されたシステムは、ルール分配サーバ1101と、イベント振り分け器1103と、複数の処理サーバ1104a〜fとを含む。イベント処理を要求するアプリケーション106a〜hは、イベント処理ルールをルール分配サーバ1101に通知する。イベント処理ルールを受信したルール分配サーバ1101は、処理サーバ1104a〜fの負荷が均等になるように、かつ、同じイベントに関するイベント処理は同じサーバで行われるように、イベント処理ルールを最適なイベント処理サーバに設定する。同時に、ルール分配サーバ1101は、処理されるイベントがそのイベントに関する処理ルールを設定されたイベント処理サーバに送られるように、イベント振り分け器1103にイベント振り分けルール1107を設定する。これにより、デバイス等のイベント発生源105a〜hから発生したイベントは、イベント振り分け器1103によりそのイベントに関する処理ルールが設定された処理サーバ1104a〜fに転送される。処理サーバ1104a〜fは、イベント処理ルールに基づき処理を行い、処理結果をアプリケーション106a〜hに通知する。
特許第4161998号
特許文献1には、イベント処理サーバにCEPルールを分配する方法が示されている。特許文献1に記載されている方法は、既に処理サーバに設定されているルール数に基づいて、新しく受信したCEPルールの分配先を決定する。図23は、特許文献1におけるCEPルールの分配先を決定する処理を示すフローチャートである。
図23に示すように、ルール分配サーバ1101は、新規CEPルールが来ると、1)既存設定ルール数が少なく、2)新規CEPルールと既存設定ルールとで共通のイベント条件をより多くもつ、処理サーバを分配先として決定する。ステップS102,S103における選択条件が1)に示す条件に相当する。ステップS105における選択条件が2)に示す条件に相当する。
この方式は、イベントの発生量が一様なときは処理サーバの負荷を均等にすることができ有効である。しかし、イベント発生量に偏りがあるときは処理サーバの負荷を均等にすることができないという課題がある。
例えば、処理サーバが2台あり、「event_A and event_B」、「event_B and event_C」、「event_D and event_E」というルールがあったとする。この場合、event_Bが共通のため「event_A and event_B」と「event_B and event_C」が、あるひとつの処理サーバ#1に分配され、「event_D and event_E」が、別の処理サーバ#2に分配される。ここで、event_Bが他のイベントに比べ多量に送信される場合、処理サーバ#1の処理だけが重くなってしまう。
そこで、本発明は、イベントを処理するシステムにおいて、イベントの発生量に偏りがある場合でも、イベント処理の負荷を均等に分散できるルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラムを提供することを目的とする。
本発明によるルール分配装置は、複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置とを含むイベント処理システムにおいて、アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、イベント振り分け装置にイベント振り分けルールを設定するルール分配装置であって、新たなイベント処理ルールをどの処理装置に設定するかを決定する処理ルール振り分け部を含み、処理ルール振り分け部は、複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定することを特徴とする。
本発明によるイベント処理システムは、複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置と、アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、イベント振り分け装置にイベント振り分けルールを設定するルール分配装置とを含むイベント処理システムであって、ルール分配装置は、新たなイベント処理ルールをどの処理装置に設定するかを決定する処理ルール振り分け部を含み、処理ルール振り分け部は、複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、新たなイベント処理ルールを設定する処理装置を決定することを特徴とする。
本発明によるイベント処理方法は、複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置と、アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、イベント振り分け装置にイベント振り分けルールを設定するルール分配装置とを含むイベント処理システムにおけるイベント処理方法であって、ルール分配装置が、複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定することを特徴とする。
本発明によるイベント処理プログラムは、複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置と、アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、イベント振り分け装置にイベント振り分けルールを設定するルール分配装置とを含むイベント処理システムにおけるイベント処理プログラムであって、コンピュータに、複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定する処理を実行させることを特徴とする。
本発明によれば、イベントを処理するシステムにおいて、イベントの発生量に偏りがある場合でも、イベント処理の負荷を均等に分散できる。
本発明によるイベント処理システムの第1の実施形態の構成を示すブロック図である。 処理ルール振り分け記録部が保持する情報のフォーマットの一例を示す説明図である。 イベントレート管理部が保持する情報のフォーマットの一例を示す説明図である。 処理ルール振り分け部における処理サーバの決定処理を示すフローチャートである。 新規処理ルール設定直後のイベント管理テーブルの一例を示す説明図である。 新規処理ルール設定直後のルール管理テーブルの一例を示す説明図である。 第2の実施形態におけるイベント処理システムの動作を示すフローチャートである。 各イベントのイベントレート変化後のイベント管理テーブルの一例を示す説明図である。 各処理ルールの重みの再計算後のルール管理テーブルの一例を示す説明図である。 処理ルール振り分け部のルールの再配置処理を示すフローチャートである。 再配置後のルール管理テーブルの一例を示す説明図である。 本発明によるイベント処理システムの第3の実施形態の構成を示すブロック図である。 第3の実施形態におけるルール管理テーブルの一例を示す説明図である。 処理サーバ能力テーブルの一例を示す説明図である。 第4の実施形態におけるルール管理テーブルの一例を示す説明図である。 本発明によるイベント処理システムの第5の実施形態の構成を示すブロック図である。 第5の実施形態におけるルール管理テーブルの一例を示す説明図である。 実装メモリ量管理テーブルの一例を示す説明図である。 第6の実施形態におけるルール管理テーブルの一例を示す説明図である。 本発明によるルール分配装置の最小構成を示すブロック図である。 本発明によるルール分配装置の他の最小構成を示すブロック図である。 特許文献1に記載されたシステムの構成を示すブロック図である。 特許文献1におけるCEPルールの分配先を決定する処理を示すフローチャートである。
実施形態1.
以下、本発明の第1の実施形態を図面を参照して説明する。
図1は、本発明によるイベント処理システムの第1の実施形態の構成を示すブロック図である。図1に示すように、本発明によるイベント処理システムは、ルール分配サーバ101と、イベント振り分け器103と、処理サーバ104a〜bとを含む。ルール分配サーバ101は、処理サーバ104a〜bおよびイベント振り分け器103と通信可能に接続されている。また、イベント振り分け器103は、処理サーバ104a〜bと通信可能に接続されている。なお、図1には、2つの処理サーバ104a〜bが例示されているが、処理サーバはいくつあってもよい。また、図1には、1つのイベント振り分け器103が例示されているが、イベント振り分け器はいくつあってもよい。
処理サーバ104a〜bは、複数のアプリケーション(以下、アプリ群という)106が要求するイベント処理を行い、アプリ群106のうちの要求元のアプリケーションへイベント処理結果を通知する。
イベント振り分け器103は、複数の処理サーバ104a〜bへイベント発生源105で発生したイベントを振り分ける。イベント発生源105は、例えば、イベントを発生するデバイスなどである。
ルール分配サーバ101は、複数の処理サーバ104a〜bに個別にアプリ群106の各アプリケーションが要求するイベント処理ルール(以下、単に処理ルールともいう。)108a〜bを設定する。処理ルールは、各アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定した情報である。ルール分配サーバ101は、イベント振り分け器103がイベント処理ルール108a〜bを実行するために必要なイベントが、イベント処理ルール108a〜bを設定された処理サーバ104a〜bに分配されるように、イベント振り分けルール107を設定する。
処理サーバ104a〜bは、イベントカウンタ115a〜bを含む。
イベントカウンタ115a〜bは、イベント処理ルール108a〜bのイベント条件毎に到着イベント数、つまり、イベントの受信回数をカウントし、カウント結果を含むイベントカウント情報を定期的にルール分配サーバ101に通知する。
ルール分配サーバ101は、処理ルール受信部200と、処理ルール振り分け部201と、処理ルール送信部202と、処理ルール振り分け記録部205と、振り分けルール決定部203と、振り分けルール送信部204と、イベントレート管理部206と、イベントレート平均算出部207とを含む。
処理ルール受信部200は、アプリ群106の各アプリケーションからイベント処理ルールを受信する。
処理ルール振り分け部201は、イベント処理ルールをどの処理サーバ104a〜bに設定するかを決定する。
処理ルール送信部202は、処理ルール振り分け部201の決定に基づき、イベント処理ルールを処理サーバ104a〜bに設定する。
処理ルール振り分け記録部205は、設定したイベント処理ルール108a〜bに含まれる情報のうち、少なくとも処理するイベントのイベント条件と設定先の処理サーバとを記録する。
振り分けルール決定部203は、処理ルール振り分け部201の振り分け結果に基づきイベント振り分け器103に設定するイベント振り分けルール107を計算する。
振り分けルール送信部204は、計算したイベント振り分けルール107をイベント振り分け器103に設定する。
イベントレート管理部206は、イベントカウンタ115a〜bによって集計されたイベント数からイベントレートを算出し、管理する。
イベントレート平均算出部207は、イベントレート管理部206に保持されている情報から全てのイベントの平均レートを算出する。
図2は、処理ルール振り分け記録部205が保持する情報(以下、ルール管理テーブルという。)300のフォーマットの一例を示す説明図である。図2に示すように、処理ルール振り分け記録部205は、既に登録されている処理ルールごとに、ルールID301、ルール302、振り分け先処理サーバ303および重み304を記録する。重みに関しては後述する。
図3は、イベントレート管理部206が保持する情報(以下、イベント管理テーブルという。)400のフォーマットの一例を示す説明図である。図3に示すように、イベントレート管理部206は、既にイベント管理テーブル400に登録されている処理ルールに指定されているイベント条件ごとに、イベントID401、イベント条件402およびイベントレート403を管理する。
イベントレート403は、処理サーバ104a〜bのイベントカウンタ115a〜bから定期的に報告されるイベントカウント情報から算出される。本実施形態では、イベントレートの単位は、イベント/秒である。なお、イベントレートの単位は、イベント/秒以外であってもよい。
先述した処理ルール振り分け記録部205が管理する重み304は、処理ルールにもとづくイベント処理の重みであって、イベントレート管理部206が管理するイベントレート403を基に算出される。具体的には、処理ルール振り分け記録部205は、ルール302で指定されているイベント条件に相当するイベントのレートの合計を、重みとして算出する。
なお、処理ルール受信部200、処理ルール振り分け部201、処理ルール送信部202、振り分けルール決定部203、振り分けルール送信部204、処理ルール振り分け記録部205、イベントレート管理部206およびイベントレート平均算出部207は、ルール分配サーバ101が備えるCPUなどによって実現される。また、ルール管理テーブル300およびイベント管理テーブル400は、具体的には、ルール分配サーバ101が備えるメモリ等の記憶装置によって実現される。
次に、本実施形態の動作を説明する。
処理サーバ104a〜bには既に図2に示すような処理ルールが設定されているとする。すなわち、処理サーバ104a(以下、処理サーバ#1と表す。)には、「event_A(dev_ID=11) and event_B(dev_ID=21)」という処理ルール(以下、処理ルール(ID=1)と表す。)が設定されている。処理サーバ104b(以下、処理サーバ#2と表す。)には、「event_D(dev_ID=41) and event_E(dev_ID=51)」という処理ルール(以下、処理ルール(ID=2)と表す。)が設定されている。
処理サーバ104a〜bに処理ルールが設定されると、各処理サーバ104a〜bのイベントカウンタ115a〜bは、設定された処理ルールに指定されているイベント条件のイベントの受信レートを計測する。具体的には、処理サーバ#1のイベントカウンタ115aは、event_A(dev_ID=11)とevent_B(dev_ID=21)のイベントのレートを計測する。処理サーバ#2のイベントカウンタ115bは、event_D(dev_ID=41)とevent_E(dev_ID=51)のイベントのレートを計測する。
その結果、event_A(dev_ID=11)は1イベント/秒、event_B(dev_ID=21)は100イベント/秒、event_D(dev_ID=41)は1イベント/秒、event_E(dev_ID=51)は1イベント/秒であったとする。イベントカウンタ115a〜bは、計測した情報をルール分配サーバ101のイベントレート管理部206に送信する。その結果、イベント管理テーブル400は、図3に示すようになる。
イベント管理テーブル400が更新されると、処理ルール振り分け記録部205は、イベント管理テーブル400に格納されたイベント毎のイベントレートを基に、各処理ルールの重みを算出し、ルール管理テーブル300に格納する。具体的には、処理ルール振り分け記録部205は、各処理ルールに指定されているイベント条件のイベントに対応するイベントレートを合計して重みを算出する。
例えば、図2に示す処理ルール(ID=1)の重みは、1+100=101となる。処理ルール(ID=2)の重みは、1+1=2となる。
ここで、アプリ群106の各アプリケーションは、新しい処理ルール(以下、新規処理ルールという。)をルール分配サーバ101に送信する。本実施形態では、送信された新規処理ルールのイベント条件を「event_B(dev_ID=21) and event_C(dev_ID=31)」とする。新規処理ルールは、処理ルール受信部200によって受信され、処理ルール振り分け部201に転送される。
処理ルール振り分け部201は、受信した新規処理ルールの分配先の処理サーバを決定する。図4は、処理ルール振り分け部201における処理サーバの決定処理を示すフローチャートである。
処理ルール振り分け部201は、処理サーバの決定を、「重み付け処理ルール数」を基に行う。重み付け処理ルール数は、単純にルール数を数えるのではなく、重みを掛け合わせた上で数えたルール数である。
例えば、図2に示す処理ルール(ID=1)の重み付け処理ルール数は1ではなく、1×101=101となる。処理ルール(ID=2)の重み付け処理ルール数は、1×2=2となる。
まず、処理ルール振り分け部201は、各処理サーバ104a〜bに設定されている処理ルールの重み付け処理ルール数の最小値を求める(ステップS001)。
次に、処理ルール振り分け部201は、重み付け処理ルール数がステップS001において算出した最小値に対して一定数以下の差である処理サーバを選択する(ステップS002)。
次に、処理ルール振り分け部201は、ステップS002において選択された処理サーバの個数を確認する(ステップS003)。もし、ステップS002において選択された処理サーバが1個の場合、処理ルール振り分け部201は、その処理サーバを振り分け先として決定して、処理を終了する。
もし、ステップS002において選択された処理サーバが2個以上ある場合、処理ルール振り分け部201は、新規処理ルールのイベント条件と、選択された処理サーバに設定済みのイベント条件とを比較し、一致する処理サーバを選択する(ステップS004)。
次に、処理ルール振り分け部201は、ステップS004において選択された処理サーバの個数を確認する(ステップS005)。もし、ステップS004において選択された処理サーバが1個の場合、処理ルール振り分け部201は、その処理サーバを振り分け先として決定して、処理を終了する。
もし、ステップS004において選択された処理サーバが2個以上ある場合、処理ルール振り分け部201は、選択された各処理サーバの中で、設定されている処理ルールの重み付け処理ルール数が最小である処理サーバを選択する(ステップS006)。例えば、処理ルール振り分け部201は、ステップS004において選択された処理サーバごとに、新規イベント処理ルールとイベント条件が共通である既に設定されている処理ルールを検索する。そして、処理ルール振り分け部201は、共通のイベント条件のイベントのイベントレートの合計が最小である処理サーバを選択する。
処理ルール振り分け部201は、ステップS006において選択された処理サーバの個数を確認する(ステップS008)。もし、ステップS006において選択された処理サーバが1個の場合、処理ルール振り分け部201は、その処理サーバを振り分け先として決定して、処理を終了する。
もし、ステップS004において条件に合致する処理サーバが1つもない場合、処理ルール振り分け部201は、ステップS002において選択された各処理サーバの中で、設定されている処理ルールの重み付け処理ルール数が最小である処理サーバを選択する(ステップS007)。
処理ルール振り分け部201は、ステップS007において選択された処理サーバの個数を確認する(ステップS009)。もし、ステップS007において選択された処理サーバが1個の場合、処理ルール振り分け部201は、その処理サーバを振り分け先として決定して、処理を終了する。
もし、ステップS006、S007において選択された処理サーバが2個以上ある場合は、処理ルール振り分け部201は、定められた規則に基づいて処理サーバをひとつ選択し、その処理サーバを振り分け先として決定して(ステップS010)、処理を終了する。定められた規則としては、ラウンドロビンで選択するなどがある。また、乱数などを使用してランダムに処理サーバを選択するようにしてもよい。
本実施形態の場合、ステップS001において算出される重み付け処理ルール数の最小値は、処理サーバ#2の2となる。例えば、ステップS002における一定数が10であるとする。すると、処理サーバ#1の重み付け処理ルール数は101であり、最小値2との差が一定数10よりも大きい。そのため、ステップS002において処理サーバ#1は選択されず、処理サーバ#2のみが選択される。よって、ステップS003において処理サーバ#2が振り分け先として決定される。
振り分け先処理サーバとして処理サーバ#2が決定された後、処理ルール送信部202は、新規処理ルールを処理サーバ#2に設定する。
また、振り分けルール決定部203は、新規処理ルールに指定されているイベント条件のイベントが、新規処理ルールを設定された処理サーバ#2に転送されるように振り分けルールを生成する。そして、振り分けルール送信部204が、生成された振り分けルールをイベント振り分け器103に設定する。ここでは、新規処理ルールは「event_B(dev_ID=21) and event_C(dev_ID=31)」なので、振り分けルール決定部203は、event_B(dev_ID=21)とevent_C(dev_ID=31)とが処理サーバ#2に転送されるように、振り分けルールを生成する。
その後、イベント発生源105からevent_B(dev_ID=21)とevent_C(dev_ID=31)のイベントが送信されてくると、イベント振り分け器103は、それらのイベントを処理サーバ#2に転送する。処理サーバ#2は、該イベントを処理し処理結果をアプリ群106のうちの対象となるアプリケーションに通知する。
図5は、新規処理ルール設定直後のイベント管理テーブル400の一例を示す説明図である。図5に示すように、event_C(dev_ID=31)に関するレコードが追加されている。しかし、新規処理ルール設定直後なのでevent_C(dev_ID=31)のレートはまだ計測されていない。そのため、event_C(dev_ID=31)のレートの値は格納されていない。
図6は、新規処理ルール設定直後のルール管理テーブル300の一例を示す説明図である。図6に示すように、新規処理ルール「event_B(dev_ID=21) and event_C(dev_ID=31)」のレコードが追加されている。
処理ルール振り分け記録部205は、event_C(dev_ID=31)のレートが集計されていないため、重みを計算できない。そこで、イベントレート平均算出部207が他の既設定イベントのレートの平均を算出する。そして、処理ルール振り分け部201は、イベントレート平均算出部207が算出した値を新規イベントevent_C(dev_ID=31)のレートと見なす。図5に示す例では、既設定のイベントのレートの平均は25.75(=(1+100+1+1)/4)となる。従って、処理ルール振り分け部201は、event_C(dev_ID=31)のレートを仮に25.75とみなす。
それにより、新規処理ルールの重みは、event_B(dev_ID=21)の100とevent_C(dev_ID=31)の25.75とを足して、125.75となる。よって、処理サーバ#2の重み付け処理ルール数は、仮に2+125.75=127.75となる。この状態でさらに新規処理ルールを受信した場合は、処理ルール振り分け部201は、この値に基づいてルール振り分けを行う。
その後、event_C(dev_ID=31)が処理サーバ#2に転送されると、処理サーバ#2はevent_C(dev_ID=31)のカウント処理を開始する。そして、イベントレート管理部206においてイベントレートの計測が行われ、イベント管理テーブル400のレート情報とルール管理テーブル300の重みとが正しい値に更新される。
以上に説明したように、本実施形態によれば、各処理サーバ104a〜bが単位時間に処理するイベントの数を均一にすることができる。つまり、デバイスから発生するイベントの発生量に偏りがあるときでも、処理サーバ間の負荷を均等にするようにCEPルールを分配することができる。なぜなら、図4に示すステップS001、S002、S007における処理によって、重み付け処理ルール数が大きい、すなわち受信イベント数が多い処理サーバを新規処理ルールの設定先候補から外し、受信イベント数が少ない処理サーバにイベント処理ルールを設定するからである。また、ステップS004における選択処理の結果、複数の処理サーバが新規処理ルールの設定先候補に残った場合にも、受信イベント数が少ない処理サーバを設定先に選択することができる。これら動作によって次第に各サーバ間の受信イベント数の差が小さくなる。
よって、1イベントあたりの処理負荷が一定である場合には、各処理サーバの処理負荷を均一にすることができる。
実施形態2.
以下、本発明の第2の実施形態を図面を参照して説明する。
第1の実施形態では、イベント処理システムがアプリケーションから新規処理ルールを受信したときに、各処理サーバの処理負荷が均一になるように、新規処理ルールの設定先を決定する方法について説明した。
第1の実施形態におけるイベント処理システムは、時間が経過してもイベントの発生量の偏りが不変である場合は、各処理サーバの処理負荷を均一に保つことができる。しかし、イベントの発生量の偏りが時間とともに変化する場合は、時間が経過すると各処理サーバの処理負荷に偏りが発生し、処理負荷を均一に保つことができない。そこで、本実施形態におけるイベント処理システムは、定期的または処理負荷の偏りが一定値以上になったときに、イベント処理ルールの再配置を行う。
本実施形態のイベント処理システムの構成は、第1の実施形態と同様であるため、説明を省略する。
次に、本実施形態の動作を説明する。
図7は、第2の実施形態におけるイベント処理システムの動作を示すフローチャートである。図8は、各イベントのイベントレート変化後のイベント管理テーブル400の一例を示す説明図である。
図7に示すように、イベントレート管理部206は、定期的または間欠的に、処理サーバ104a〜bのイベントカウンタ115a〜bの情報を基に各イベント条件のレート情報を更新する(ステップS201)。本実施形態では、図8に示すようにevent_Bが1イベント/秒に、event_Eとevent_Cが50イベント/秒になった場合を例にする。
処理ルール振り分け記録部205は、更新されたレートの情報を基に、設定済みの各処理ルールの重みの情報を更新する(ステップS202)。図9は、各処理ルールの重みの再計算後のルール管理テーブル300の一例を示す説明図である。本実施形態では、各処理ルールの重みの再計算の結果、各処理ルールの重みは、図9に示すようになる。
処理ルール振り分け部201は、各処理サーバ104a〜bに設定されているイベント処理ルールの重みの合計を計算する(ステップS203)。本実施形態では、各処理ルールが図9に示すように重み付けされたため、処理サーバ#1の重み付け処理ルール数は2、処理サーバ#2の重み付け処理ルール数は102となる。
続いて、処理ルール振り分け部201は、重み付け処理ルール数が最小である処理サーバと最大である処理サーバを検索する(ステップS204)。処理ルール振り分け部201は、検索した処理サーバの重み付け処理ルール数の差が閾値以上である場合(ステップS205のyes)、ルール再配置を行う(ステップS206)。本実施形態において閾値を50とすると、処理サーバ#2と処理サーバ#1との重み付け処理ルール数の差は100であるので、ルール再配置が行われる。
次に、処理ルールの再配置の手順を説明する。
図10は、処理ルール振り分け部201の処理ルールの再配置処理を示すフローチャートである。
処理ルール振り分け部201は、処理ルール振り分け記録部205が保持する情報、つまり、ルール管理テーブル300の情報をクリアする(ステップS301)。具体的には、処理ルール振り分け部201は、ルール管理テーブル300の処理ルールの情報をクリアする。処理ルール振り分け部201は、ルールの分配先を計算するために、イベントレート管理部206が保持する情報、つまり、イベント管理テーブル400の情報をクリアせずに保持しておく。
次に、処理ルール振り分け部201は、全てのイベント処理ルールに対して(ステップS302)、図4に示す手順で処理ルールの分配先を再計算する(ステップS303)。処理ルール振り分け部201は、計算結果に基づき各処理サーバに対して処理ルールを再配置し(ステップS304)、処理ルール振り分け記録部205の情報を更新する(ステップS305)。
図11は、再配置後のルール管理テーブル300の一例を示す説明図である。本実施形態では、再配置の結果、処理ルール(ID=1)が処理サーバ#1へ、処理ルール(ID=2)が処理サーバ#2へ再配置される。また、処理ルール(ID=3)は既に設定されている重み付け処理ルール数が小さい処理サーバ、つまり、処理サーバ#1へ再配置される。その結果、処理ルールは図11に示すように再配置され、各処理サーバの負荷が均一化される。
以上に説明したように、本実施形態によれば、イベントの発生量の偏りが時間とともに変化し、各処理サーバの処理負荷に偏りが発生した場合であっても、処理負荷を均一に保つことができる。
実施形態3.
以下、本発明の第3の実施形態を図面を参照して説明する。
第1および第2の実施形態では、イベントの処理負荷がイベントごとに均一であるという前提で負荷分散を実現する。しかし、実際には処理ルールによっては処理負荷が異なる場合がある。本実施形態では、このような場合に対処するために、イベントのカウントではなく、実際にイベント処理ルールを処理したときの負荷の指標であるCPU使用時間をルール分配計算時のルール数の重みとして採用する。
図12は、本発明によるイベント処理システムの第3の実施形態の構成を示すブロック図である。
処理サーバ104a〜bは、イベントカウンタ115a〜bの代わりに、CPU時間カウンタ117a〜bを備える。
ルール分配サーバ101は、イベントレート管理部206の代わりに、CPU時間管理部208を備える。また、ルール分配サーバ101は、イベントレート平均算出部207の代わりに、CPU時間平均算出部209を備える。
CPU時間カウンタ117a〜bは、各処理サーバ104a〜bに設定されている処理ルールごとに、その処理ルールを処理するのにかかったCPU時間をカウントし、CPU時間管理部208に通知する。
CPU時間管理部208は、通知された処理ルールごとのCPU時間を基に、各処理ルールの単位時間あたりのCPU時間を計算する。CPU時間管理部208は、ルール管理テーブル300に、計算したCPU時間を処理ルールの重みとして格納する。
CPU時間平均算出部209は、CPU時間管理部208に通知された処理ルールごとのCPU時間を基に、全ての処理ルールのCPU時間の平均を算出する。
なお、CPU時間管理部208およびCPU時間平均算出部209は、ルール分配サーバ101が備えるCPUなどによって実現される。
図13は、第3の実施形態におけるルール管理テーブル300の一例を示す説明図である。図13に示すように、ルール管理テーブル300は、重み304の代わりに、CPU時間305を含む。本実施形態では、CPU時間305は、1秒あたりのCPU使用時間をミリ秒で表したものである。
処理ルール振り分け部201は、CPU時間305を第1および第2の実施形態における重み304と同様に用いて、処理ルールの分配を行う。
なお、処理ルール振り分け部201は、新規処理ルールのCPU時間が取得できない場合には、CPU時間平均算出部209が算出した他の既設定処理ルールのCPU時間の平均を、新規処理ルールのCPU時間とみなして、処理ルールの振り分けを行う。
第3の実施形態におけるイベント処理システムのその他の構成および動作は、第1および第2の実施形態と同様であるため、説明を省略する。
以上に説明したように、本実施形態によれば、処理サーバ104a〜b間でCPU負荷が均一になるように処理ルールを分配することができる。
実施形態4.
以下、本発明の第4の実施形態を図面を参照して説明する。
本実施形態では、各処理サーバの処理能力に違いがある場合を例に説明する。
ルール分配サーバ101は、各処理サーバ104a〜bの処理能力を管理する処理サーバ能力テーブル500を備える。処理サーバ能力テーブル500は、具体的には、ルール分配サーバ101が備えるメモリ等の記憶装置によって実現される。
図14は、処理サーバ能力テーブル500の一例を示す説明図である。図14に示すように、処理サーバ能力テーブル500は、処理サーバ104a〜bごとに処理能力のベンチマーク値を保持する。本実施形態では、ベンチマーク値が大きいほど処理能力が高いと定義する。ベンチマーク値を、例えば、ユーザが事前に手動で処理サーバ能力テーブル500に設定してもよい。また、処理サーバ104a〜b上でベンチマーク値を計測するベンチマークソフトが、計測結果を収集して自動でベンチマーク値を処理サーバ能力テーブル500に設定するようにしてもよい。
本実施形態では、上記の各実施形態における処理ルールの重みをベンチマーク値によって補正した値が、処理ルール分配計算に用いられる。
図15は、第4の実施形態におけるルール管理テーブル300の一例を示す説明図である。本実施形態におけるルール管理テーブル300は、第1および第2の実施形態の要素に加え、補正後の重み306を含む。補正後の重みは、重みの値を、その処理ルールが分配された処理サーバに対応するベンチマーク値で割ることにより算出される。処理ルール振り分け部201は、処理ルールの分配を、この補正後の重みに基づいて行う。
第4の実施形態におけるイベント処理システムのその他の構成および動作は、第1および第2の実施形態と同様であるため、説明を省略する。
以上に説明したように、本実施形態によれば、処理サーバ104a〜b間に処理能力の差があるときに、処理能力に応じて処理ルールを分配することができる。
実施形態5.
以下、本発明の第5の実施形態を図面を参照して説明する。
CEPでは過去のイベントを「保持」して現在受信したイベントとの組み合わせを見て処理を行うため、メモリを使用する。例えば、処理サーバ104a〜bは、メモリ等の記憶部(図示せず)を備え、過去に受信したイベントの種類や到着時刻を示す情報を記憶部に格納する。本実施形態では、処理サーバ104a〜bにおける処理ルールごとのメモリ使用量をルール分配の際の重みとして使用する。
図16は、本発明によるイベント処理システムの第5の実施形態の構成を示すブロック図である。
処理サーバ104a〜bは、メモリ監視部118a〜bを備える。
メモリ監視部118a〜bは、設定された処理ルールごとに、メモリ使用量を測る。メモリ監視部118a〜bは、計測結果を含む情報をルール分配サーバ101に通知する。
ルール分配サーバ101は、第1の実施形態におけるイベントレート管理部206の代わりに、メモリ使用量管理部210を備える。また、ルール分配サーバ101は、第1の実施形態におけるイベントレート平均算出部207の代わりに、メモリ使用量平均算出部211を備える。
本実施形態では、処理ルール振り分け記録部205は、処理ルールごとに重みの代わりに、その処理ルールが使用しているメモリ使用量を管理する。図17は、第5の実施形態におけるルール管理テーブル300の一例を示す説明図である。本実施形態におけるルール管理テーブル300は、重み304の代わりに、メモリ使用量307を含む。
メモリ使用量管理部210は、メモリ監視部118a〜bの情報を基に、ルール管理テーブル300の各処理ルールのメモリ使用量307を更新する。
メモリ使用量平均算出部211は、メモリ使用量管理部210に通知された処理ルールごとのメモリ使用量を基に、全ての処理ルールのメモリ使用量の平均を算出する。
なお、メモリ使用量管理部210およびメモリ使用量平均算出部211は、ルール分配サーバ101が備えるCPUなどによって実現される。
処理ルール振り分け部201は、メモリ使用量307を第1および第2の実施形態における重み304と同様に用いて、処理ルールの分配を行う。
なお、処理ルール振り分け部201は、新規処理ルールのメモリ使用量が取得できない場合には、メモリ使用量平均算出部211が算出した他の既設定処理ルールのメモリ使用量の平均を、新規処理ルールのメモリ使用量とみなして、処理ルールの振り分けを行う。
第5の実施形態におけるイベント処理システムのその他の構成および動作は、第1および第2の実施形態と同様であるため、説明を省略する。
以上に説明したように、本実施形態によれば、処理サーバ104a〜bのメモリ使用量が均一になるように、処理サーバ104a〜bに処理ルールを分配することができる。
実施形態6.
以下、本発明の第6の実施形態を図面を参照して説明する。
本実施形態では、第5の実施形態と同様に、処理サーバ104a〜bのメモリ使用量が均一になるように、処理サーバ104a〜bに処理ルールを分配する。しかし、本実施形態では、処理サーバ104a〜bごとに実装メモリ量が異なる場合を例にする。
ルール分配サーバ101は、図18に示す実装メモリ量管理テーブル600を備える。実装メモリ量管理テーブル600は、具体的には、ルール分配サーバ101が備えるメモリ等の記憶装置によって実現される。
図18は、実装メモリ量管理テーブル600の一例を示す説明図である。図18に示すように、実装メモリ量管理テーブル600は、処理サーバ104a〜bごとに実装メモリ量を保持する。本実施形態では、実装メモリ量の単位は、GB(ギガバイト)である。
ルール分配サーバ101は、実装メモリ量管理テーブル600を、第4の実施形態の処理サーバ能力テーブル500と同様に扱う。
図19は、第6の実施形態におけるルール管理テーブル300の一例を示す説明図である。図19に示すように、本実施形態におけるルール管理テーブル300は、第5の実施形態の要素に加えて、補正後のメモリ使用量308を含む。
補正後のメモリ使用量308は、メモリ使用量307を、振り分け先処理サーバ303に対応する実装メモリ量管理テーブル600の実装メモリ量602で割ったものである。
処理ルール振り分け部201は、補正後のメモリ使用量308を第1および第2の実施形態における重み304と同様に用いて、処理ルールの分配を行う。
第6の実施形態におけるイベント処理システムのその他の構成および動作は、第1および第2の実施形態と同様であるため、説明を省略する。
以上に説明したように、本実施形態によれば、処理サーバ104a〜bごとに実装メモリ量が異なる場合であっても、処理サーバ104a〜bのメモリ使用率が均一になるように、処理サーバ104a〜bに処理ルールを分配することができる。
なお、本発明によるイベント処理システムは、第1の実施形態から第6の実施形態のうちの複数の実施形態を組み合わせて実現することも可能である。
図20は、本発明によるルール分配装置の最小構成を示すブロック図である。図21は、本発明によるルール分配装置の他の最小構成を示すブロック図である。
図20に示すように、ルール分配装置10(図1に示すルール分配サーバ101に相当。)は、複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置20−1〜20−n(図1に示す処理サーバ104a〜104bに相当。)と、複数の処理装置20−1〜20−nへイベント発生源で発生したイベントを振り分けるイベント振り分け装置30(図1に示すイベント振り分け器103に相当。)とを含むイベント処理システムにおいて、アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを複数の処理装置20−1〜20−nに個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、イベント振り分け装置30にイベント振り分けルールを設定するルール分配装置10であって、新たなイベント処理ルールをどの処理装置に設定するかを決定する処理ルール振り分け部11(図1に示す処理サーバ104a〜104bにおける処理ルール振り分け部201に相当。)を含み、処理ルール振り分け部11は、複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定する。
上記の実施形態には、以下のようなルール分配装置も開示されている。
(1)処理ルール振り分け部11が、各処理装置20−1〜20−nに設定されているイベント処理ルールのイベント条件に指定されたイベントの各処理装置20−1〜20−nにおける受信回数をもとに各イベントのイベントレートを算出し、算出したイベントレートにもとづいて、該イベント処理ルールにもとづくイベント処理の重みを算出するルール分配装置。
そのような構成によれば、イベント処理ルールにもとづくイベント処理の負荷をより正確に算出することができる。
(2)処理ルール振り分け部11が、各処理装置20−1〜20−nに設定されているイベント処理ルールごとに、該イベント処理ルールの重みとして、該イベント処理ルールのイベント条件に指定されたイベントのイベントレートの和を算出し、算出したイベントレートの和を該イベント処理ルールにもとづくイベント処理の重みとするルール分配装置。
そのような構成によれば、処理装置に設定されているイベント処理ルールの数だけでなく、イベント処理ルールの重みを考慮して、各処理装置におけるイベント処理の負荷を判定することができる。
(3)図21に示すように、処理装置の各々に設定されているイベント処理ルールのイベント条件に指定されたイベントのイベントレートの平均を算出するイベントレート平均算出部12(図1に示す処理サーバ104a〜104bにおけるイベントレート平均算出部207に相当。)を備え、処理ルール振り分け部11が、イベント処理ルールのイベント条件に指定されたイベントのイベントレートが計測できない場合、該イベント以外のイベントについてのイベントレートの平均を、該イベントのイベントレートとするルール分配装置。
そのような構成によれば、新規処理ルール設定直後において、新規処理ルールのイベント条件に指定されているイベントのイベントレートが計測されていない場合でも、処理ルールをより正確に分配することができる。また、既設定イベントのレートの平均をイベントレートとして用いることにより、イベントレートの単位が変わった場合にも、処理ルールをより正確に分配することができる。例えば、定数などを用いる場合は、イベントレートの単位によって、定数が示すイベントレートの大きさが変わってしまう。それに対して、既設定イベントのレートの平均を用いる方法は、イベントレートの単位に影響されることがないので、処理ルールをより正確に分配することができる。
(4)処理ルール振り分け部11が、アプリケーションから新たにイベント処理ルールを受信すると、処理装置ごとに、既に設定されているイベント処理ルールにもとづくイベント処理の重みの和を求め、該重みの和の最小値を検索し、該重みの和と該最小値との差が予め定められている閾値よりも大きい処理装置を除外し、残った処理装置のうちのいずれかひとつに新たなイベント処理ルールを設定するルール分配装置。
そのような構成によれば、各処理装置が単位時間に処理するイベントの数を均一にすることができる。
(5)処理ルール振り分け部11が、残った処理装置が複数ある場合、残った処理装置ごとに、新たなイベント処理ルールとイベント条件が共通である既に設定されているイベント処理ルールを検索し、共通のイベント条件に指定されたイベントのイベントレートの合計を重みとして、該重みの最小の処理装置のいずれかひとつに新たなイベント処理ルールを設定するルール分配装置。
そのような構成によれば、複数の処理装置が新規処理ルールの設定先候補に残った場合にも、受信イベント数が少ない処理装置を設定先に選択することができる。
(6)処理ルール振り分け部11が、定期的または間欠的に、各処理装置20−1〜20−nに設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、既に設定されているイベント処理ルールにもとづくイベント処理の重みの和が最小である処理サーバと最大である処理サーバとを検索し、検索した処理サーバにおける該重みの和の差が、予め定められた閾値以上である場合には、処理ルールの再配置を行うルール分配装置。
そのような構成によれば、イベントの発生量の偏りが時間とともに変化し、各処理装置の処理負荷に偏りが発生した場合であっても、処理負荷を均一に保つことができる。
(7)処理ルール振り分け部11が、各処理装置20−1〜20−nに設定されているイベント処理ルールごとに、単位時間あたりのイベント処理ルールの処理時間を算出し、算出した処理時間を該イベント処理ルールにもとづくイベント処理の重みとして使用するルール分配装置。
そのような構成によれば、各処理装置のCPU負荷が均一になるように処理ルールを分配することができる。
(8)処理ルール振り分け部11が、各処理装置20−1〜20−nの処理能力を示すベンチマーク値をもとに、イベント処理ルールにもとづくイベント処理の重みを補正するルール分配装置。
そのような構成によれば、各処理装置間に処理能力の差があるときに、処理能力に応じて処理ルールを分配することができる。
(9)処理ルール振り分け部11が、各処理装置20−1〜20−nに設定されているイベント処理ルールごとのメモリ使用量を、該イベント処理ルールにもとづくイベント処理の重みとして使用するルール分配装置。
そのような構成によれば、各処理装置のメモリ使用量が均一になるように処理ルールを分配することができる。
(10)処理ルール振り分け部が、各処理装置の実装メモリ量をもとに、各処理装置に設定されているイベント処理ルールのメモリ使用量を補正し、補正後のメモリ使用量を該イベント処理ルールにもとづくイベント処理の重みとして使用するルール分配装置。
そのような構成によれば、処理装置ごとに実装メモリ量が異なる場合であっても、処理装置のメモリ使用率が均一になるように、処理装置に処理ルールを分配することができる。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下
に限られない。
(付記1)複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、前記複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置と、前記アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを前記複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、前記イベント振り分け装置にイベント振り分けルールを設定するルール分配装置とを含むイベント処理システムであって、前記ルール分配装置は、新たなイベント処理ルールをどの処理装置に設定するかを決定する処理ルール振り分け部を含み、前記処理ルール振り分け部は、前記複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、新たなイベント処理ルールを設定する処理装置を決定することを特徴とするイベント処理システム。
(付記2)処理装置は、処理装置に設定されているイベント処理ルールのイベント条件に指定されたイベントの受信回数を計測するイベントカウンタを含み、処理ルール振り分け部は、各処理装置のイベントカウンタの計測結果をもとに各イベントのイベントレートを算出し、算出したイベントレートにもとづいて、該イベント処理ルールにもとづくイベント処理の重みを算出する付記1に記載のイベント処理システム。
そのような構成によれば、イベント処理ルールにもとづくイベント処理の負荷をより正確に算出することができる。
(付記3)処理ルール振り分け部は、各処理装置に設定されているイベント処理ルールごとに、該イベント処理ルールの重みとして、該イベント処理ルールのイベント条件に指定されたイベントのイベントレートの和を算出し、算出したイベントレートの和を該イベント処理ルールにもとづくイベント処理の重みとする付記2に記載のイベント処理システム。
そのような構成によれば、処理装置に設定されているイベント処理ルールの数だけでなく、イベント処理ルールの重みを考慮して、各処理装置におけるイベント処理の負荷を判定することができる。
(付記4)ルール分配装置は、処理装置の各々に設定されているイベント処理ルールのイベント条件に指定されたイベントのイベントレートの平均を算出するイベントレート平均算出部を備え、処理ルール振り分け部は、イベント処理ルールのイベント条件に指定されたイベントのイベントレートが計測できない場合、該イベント以外のイベントについてのイベントレートの平均を、該イベントのイベントレートとする
付記2または付記3に記載のイベント処理システム。
そのような構成によれば、新規処理ルール設定直後において、新規処理ルールのイベント条件に指定されているイベントのイベントレートが計測されていない場合でも、処理ルールをより正確に分配することができる。また、既設定イベントのレートの平均をイベントレートとして用いることにより、イベントレートの単位が変わった場合にも、処理ルールをより正確に分配することができる。例えば、定数などを用いる場合は、イベントレートの単位によって、定数が示すイベントレートの大きさが変わってしまう。それに対して、既設定イベントのレートの平均を用いる方法は、イベントレートの単位に影響されることがないので、処理ルールをより正確に分配することができる。
(付記5)処理ルール振り分け部は、アプリケーションから新たにイベント処理ルールを受信すると、処理装置ごとに、既に設定されているイベント処理ルールにもとづくイベント処理の重みの和を求め、該重みの和の最小値を検索し、該重みの和と該最小値との差が予め定められている閾値よりも大きい処理装置を除外し、残った処理装置のうちのいずれかひとつに新たなイベント処理ルールを設定する付記1から付記4のうちのいずれか1つに記載のイベント処理システム。
そのような構成によれば、各処理装置が単位時間に処理するイベントの数を均一にすることができる。
(付記6)処理ルール振り分け部は、残った処理装置が複数ある場合、残った処理装置ごとに、新たなイベント処理ルールとイベント条件が共通である既に設定されているイベント処理ルールを検索し、共通のイベント条件に指定されたイベントのイベントレートの合計を重みとして、該重みの最小の処理装置のいずれかひとつに新たなイベント処理ルールを設定する付記1から付記5のうちのいずれか1つに記載のイベント処理システム。
そのような構成によれば、複数の処理サーバが新規処理ルールの設定先候補に残った場合にも、受信イベント数が少ない処理サーバを設定先に選択することができる。
(付記7)処理ルール振り分け部は、定期的または間欠的に、各処理装置に設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、既に設定されているイベント処理ルールにもとづくイベント処理の重みの和が最小である処理サーバと最大である処理サーバとを検索し、検索した処理サーバにおける該重みの和の差が、予め定められた閾値以上である場合には、処理ルールの再配置を行う付記1から付記6のうちのいずれか1つに記載のイベント処理システム。
そのような構成によれば、イベントの発生量の偏りが時間とともに変化し、各処理サーバの処理負荷に偏りが発生した場合であっても、処理負荷を均一に保つことができる。
(付記8)処理装置は、該処理装置に設定されているイベント処理ルールの処理に要する処理時間を計測するCPU時間カウンタを含み、処理ルール振り分け部は、各処理装置のCPU時間カウンタの計測結果をもとに、各処理装置に設定されているイベント処理ルールごとに、単位時間あたりのイベント処理ルールの処理時間を算出し、算出した処理時間を該イベント処理ルールにもとづくイベント処理の重みとして使用する処理装置を決定する付記1から付記7のうちのいずれか1つに記載のイベント処理システム。
そのような構成によれば、各処理装置のCPU負荷が均一になるように処理ルールを分配することができる。
(付記9)処理ルール振り分け部は、各処理装置の処理能力を示すベンチマーク値をもとに、イベント処理ルールにもとづくイベント処理の重みを補正する付記1から付記8のうちのいずれか1つに記載のイベント処理システム。
そのような構成によれば、各処理装置間に処理能力の差があるときに、処理能力に応じて処理ルールを分配することができる。
(付記10)処理装置は、該処理装置に設定されているイベント処理ルールの処理に要するメモリ使用量を計測するメモリ監視部を含み、処理ルール振り分け部は、各処理装置のメモリ監視部の計測結果をもとに算出した各処理装置のメモリ使用量を、該イベント処理ルールにもとづくイベント処理の重みとして使用する付記1から付記9のうちのいずれか1つに記載のイベント処理システム。
(付記11)処理ルール振り分け部は、各処理装置の実装メモリ量をもとに、各処理装置に設定されているイベント処理ルールのメモリ使用量を補正し、補正後のメモリ使用量を該イベント処理ルールにもとづくイベント処理の重みとして使用する付記10に記載のイベント処理システム。
そのような構成によれば、処理装置ごとに実装メモリ量が異なる場合であっても、処理装置のメモリ使用率が均一になるように、処理装置に処理ルールを分配することができる。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2012年6月19日に出願された日本特許出願2012−138032を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10 ルール分配装置
11、201 処理ルール振り分け部
12、207 イベントレート平均算出部
20−1〜20−n 処理装置
30 イベント振り分け装置
101、1101 ルール分配サーバ
103、1103 イベント振り分け器
104a〜b、1104a〜f 処理サーバ
105、105a〜h イベント発生原
106 アプリ群
106a〜h アプリケーション
107、1107 イベント振り分けルール
108a〜b、1108a〜f イベント処理ルール
115a〜b イベントカウンタ
117a〜b CPU時間カウンタ
118a〜b メモリ監視部
200 処理ルール受信部
202 処理ルール送信部
205処理ルール振り分け記録部
203 振り分けルール決定部
204 振り分けルール送信部
206 イベントレート管理部
208 CPU時間管理部
209 CPU時間平均算出部
210 メモリ使用量管理部
211 メモリ使用量平均算出部
300 ルール管理テーブル
400 イベント管理テーブル
500 処理サーバ能力テーブル
600 実装メモリ量監理テーブル

Claims (17)

  1. 複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、前記複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置とを含むイベント処理システムにおいて、前記アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを前記複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、前記イベント振り分け装置にイベント振り分けルールを設定するルール分配装置であって、
    新たなイベント処理ルールをどの処理装置に設定するかを決定する処理ルール振り分け部を含み、
    処理ルール振り分け部は、前記複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、前記アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定する
    ことを特徴とするルール分配装置。
  2. 処理ルール振り分け部は、処理装置に設定されているイベント処理ルールのイベント条件に指定されたイベントの該処理装置における受信回数をもとに各イベントのイベントレートを算出し、算出したイベントレートにもとづいて、該イベント処理ルールにもとづくイベント処理の重みを算出する
    請求項1に記載のルール分配装置。
  3. 処理ルール振り分け部は、各処理装置に設定されているイベント処理ルールごとに、該イベント処理ルールのイベント条件に指定されたイベントのイベントレートの和を算出し、算出したイベントレートの和を該イベント処理ルールにもとづくイベント処理の重みとする
    請求項2に記載のルール分配装置。
  4. 処理装置の各々に設定されているイベント処理ルールのイベント条件に指定されたイベントのイベントレートの平均を算出するイベントレート平均算出部を備え、
    処理ルール振り分け部は、イベント処理ルールのイベント条件に指定されたイベントのイベントレートが計測できない場合、該イベント以外のイベントについてのイベントレートの平均を該イベントのイベントレートとする
    請求項2または請求項3に記載のルール分配装置。
  5. 処理ルール振り分け部は、アプリケーションから新たにイベント処理ルールを受信すると、処理装置ごとに、既に設定されているイベント処理ルールにもとづくイベント処理の重みの和を求め、該重みの和の最小値を検索し、該重みの和と該最小値との差が予め定められている閾値よりも大きい処理装置を除外し、残った処理装置のうちのいずれかひとつに前記新たなイベント処理ルールを設定する
    請求項1から請求項4のうちのいずれか1項に記載のルール分配装置。
  6. 処理ルール振り分け部は、残った処理装置が複数ある場合、前記残った処理装置ごとに、新たなイベント処理ルールとイベント条件が共通である既に設定されているイベント処理ルールを検索し、共通のイベント条件に指定されたイベントのイベントレートの合計を重みとして、該重みの最小の処理装置のいずれかひとつに新たなイベント処理ルールを設定する
    請求項1から請求項5のうちのいずれか1項に記載のルール分配装置。
  7. 処理ルール振り分け部は、定期的または間欠的に、各処理装置に設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、既に設定されているイベント処理ルールにもとづくイベント処理の重みの和が最小である処理サーバと最大である処理サーバとを検索し、検索した処理サーバにおける該重みの和の差が、予め定められた閾値以上である場合には、処理ルールの再配置を行う
    請求項1から請求項6のうちのいずれか1項に記載のルール分配装置。
  8. 処理ルール振り分け部は、各処理装置に設定されているイベント処理ルールごとに、単位時間あたりのイベント処理ルールの処理時間を算出し、算出した処理時間を該イベント処理ルールにもとづくイベント処理の重みとして使用する
    請求項1から請求項7のうちのいずれか1項に記載のルール分配装置。
  9. 処理ルール振り分け部は、各処理装置の処理能力を示すベンチマーク値をもとに、イベント処理ルールにもとづくイベント処理の重みを補正する
    請求項1から請求項8のうちのいずれか1項に記載のイベント処理システム。
  10. 処理ルール振り分け部は、各処理装置に設定されているイベント処理ルールのメモリ使用量を、該イベント処理ルールにもとづくイベント処理の重みとして使用する
    請求項1から請求項9のうちのいずれか1項に記載のルール分配装置。
  11. 処理ルール振り分け部は、各処理装置の実装メモリ量をもとに、各処理装置に設定されているイベント処理ルールのメモリ使用量を補正し、補正後のメモリ使用量を該イベント処理ルールにもとづくイベント処理の重みとして使用する
    請求項10に記載のルール分配装置。
  12. 複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、
    前記複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置と、
    前記アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを前記複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、前記イベント振り分け装置にイベント振り分けルールを設定するルール分配装置とを含むイベント処理システムであって、
    前記ルール分配装置は、新たなイベント処理ルールをどの処理装置に設定するかを決定する処理ルール振り分け部を含み、
    前記処理ルール振り分け部は、前記複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、新たなイベント処理ルールを設定する処理装置を決定する
    ことを特徴とするイベント処理システム。
  13. 処理装置は、該処理装置に設定されているイベント処理ルールに指定されたイベントの受信回数を計測するイベントカウンタを含み、
    処理ルール振り分け部は、各処理装置のイベントカウンタの計測結果をもとに各イベントのイベントレートを算出し、算出したイベントレートにもとづいて、新たなイベント処理ルールを設定する処理装置を決定する
    請求項12に記載のイベント処理システム。
  14. 複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、前記複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置と、前記アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを前記複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、前記イベント振り分け装置にイベント振り分けルールを設定するルール分配装置とを含むイベント処理システムにおけるイベント処理方法であって、
    ルール分配装置が、前記複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、前記アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定する
    ことを特徴とするイベント処理方法。
  15. 処理装置が、処理装置に設定されているイベント処理ルールに指定されたイベントの受信回数を計測し、
    ルール分配装置が、各処理装置のイベントカウンタの計測結果をもとに各イベントのイベントレートを算出し、算出したイベントレートにもとづいて、新たなイベント処理ルールを設定する処理装置を決定する
    請求項14に記載のイベント処理方法。
  16. 複数のアプリケーションが要求するイベント処理を行い、該アプリケーションへイベント処理結果を通知する複数の処理装置と、前記複数の処理装置へイベント発生源で発生したイベントを振り分けるイベント振り分け装置と、前記アプリケーションが要求するイベント処理と該イベント処理を実行するためのイベント条件とを規定したイベント処理ルールを前記複数の処理装置に個別に設定し、該イベント条件で指定されたイベントが各処理装置に分配されるように、前記イベント振り分け装置にイベント振り分けルールを設定するルール分配装置とを含むイベント処理システムにおけるイベント処理プログラムであって、
    コンピュータに、
    前記複数の処理装置の各々について、設定されているイベント処理ルールにもとづくイベント処理の重みを算出し、算出した重みに応じて、アプリケーションが要求する新たなイベント処理ルールを設定する処理装置を決定する処理を実行させる
    ためのイベント処理プログラム。
  17. コンピュータに、
    各処理装置に設定されているイベント処理ルールに指定されたイベントの各処理装置における受信回数をもとに各イベントのイベントレートを算出し、算出したイベントレートにもとづいて、新たなイベント処理ルールを設定する処理装置を決定する処理を実行させる
    請求項16に記載のイベント処理プログラム。
JP2014520890A 2012-06-19 2013-05-21 ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム Active JP6222089B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014520890A JP6222089B2 (ja) 2012-06-19 2013-05-21 ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012138032 2012-06-19
JP2012138032 2012-06-19
JP2014520890A JP6222089B2 (ja) 2012-06-19 2013-05-21 ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム
PCT/JP2013/003224 WO2013190770A1 (ja) 2012-06-19 2013-05-21 ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2013190770A1 true JPWO2013190770A1 (ja) 2016-02-08
JP6222089B2 JP6222089B2 (ja) 2017-11-01

Family

ID=49768385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014520890A Active JP6222089B2 (ja) 2012-06-19 2013-05-21 ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム

Country Status (2)

Country Link
JP (1) JP6222089B2 (ja)
WO (1) WO2013190770A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6274007B2 (ja) * 2014-05-16 2018-02-07 富士通株式会社 ルール生成プログラム、情報処理装置、およびルール生成方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309701A (ja) * 2005-03-28 2006-11-09 Nec Corp 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム

Also Published As

Publication number Publication date
WO2013190770A1 (ja) 2013-12-27
JP6222089B2 (ja) 2017-11-01

Similar Documents

Publication Publication Date Title
CN103347259B (zh) 一种流量提示方法和系统
JP6687023B2 (ja) 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム
JP2013150134A5 (ja)
US20140258382A1 (en) Application congestion control
CN110311863B (zh) 一种路由路径确定方法及装置
CN103988179A (zh) 用于在地理分布数据中心中降低延迟和改善弹性的优化机制
WO2015154483A1 (zh) 网络流量均衡的方法及超级控制器
WO2017096837A1 (zh) 节点间距离的度量方法及系统
US20170163509A1 (en) Inter-node distance metric method and system
JP5710006B2 (ja) Atcaベースの機器において通信トラフィックをスケジュールするための方法および装置
JP6222089B2 (ja) ルール分配装置、イベント処理システム、イベント処理方法およびイベント処理プログラム
US20140019508A1 (en) Distributed processing system, distributed processing device, routing table creation method and program recording medium
JP2013246532A (ja) 情報処理装置、仮想マシン制御方法、仮想マシン制御プログラム
WO2012172588A1 (ja) リクエスト振分け計算機、リクエスト振分け方法及びプログラム
Zafar et al. PBCLR: Prediction-based control-plane load reduction in a software-defined IoT network
US9924520B2 (en) Bandwidth management in a wireless network
CN108989239B (zh) 过载保护方法及装置、控制器及存储介质
WO2014199606A1 (ja) 負荷分散装置、負荷分散方法および記憶媒体ならびにイベント処理システム
JP6070717B2 (ja) 分散データ処理システム、及び、分散データ処理方法
KR101826061B1 (ko) Sdn 상의 네트워크 상태 모니터링 시스템 및 방법
JP6433926B2 (ja) リバランス装置、リバランス方法、及びプログラム
JP5803655B2 (ja) データ転送のためのプログラム、情報処理方法及び転送装置、転送処理の割り当てを管理するためのプログラム、情報処理方法及び管理装置、並びに情報処理システム
JP2012018483A (ja) 情報処理制御システム、情報提供装置、処理頻度通知装置および情報処理制御方法
Mitici MDP for Query-Based Wireless Sensor Networks
JP2018026741A (ja) トラヒック観測装置、方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170918

R150 Certificate of patent or registration of utility model

Ref document number: 6222089

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150