JP2012212227A - イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム - Google Patents
イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム Download PDFInfo
- Publication number
- JP2012212227A JP2012212227A JP2011076391A JP2011076391A JP2012212227A JP 2012212227 A JP2012212227 A JP 2012212227A JP 2011076391 A JP2011076391 A JP 2011076391A JP 2011076391 A JP2011076391 A JP 2011076391A JP 2012212227 A JP2012212227 A JP 2012212227A
- Authority
- JP
- Japan
- Prior art keywords
- event
- rule
- rule storage
- event processing
- attribute
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】イベント処理システムでのイベント合致処理の処理時間を短くする。
【解決手段】ルール格納手段(ルール格納部11)は、複数のルール格納リストを有し、イベントパターン、及び、1つ以上のイベントパターンに合致したイベントの通知先(イベント受信者24)である1つ以上の通知先を含んで構成されているルールを複数のルール格納リストに分散して格納する。ルール登録手段(ルール登録・削除部12)は、ルール登録者21からデータ転送部14を経て与えられたルール登録要求データに含まれているルールを、ルール格納部11内の適切なルール格納リストに登録する。イベント合致判定手段(イベント処理部13)は、イベント配信者23からデータ転送部14を経てイベント処理要求データが与えられたとき、1つのルール格納リストに格納されているルールに対してのみ合致判定を行う。
【選択図】図2
【解決手段】ルール格納手段(ルール格納部11)は、複数のルール格納リストを有し、イベントパターン、及び、1つ以上のイベントパターンに合致したイベントの通知先(イベント受信者24)である1つ以上の通知先を含んで構成されているルールを複数のルール格納リストに分散して格納する。ルール登録手段(ルール登録・削除部12)は、ルール登録者21からデータ転送部14を経て与えられたルール登録要求データに含まれているルールを、ルール格納部11内の適切なルール格納リストに登録する。イベント合致判定手段(イベント処理部13)は、イベント配信者23からデータ転送部14を経てイベント処理要求データが与えられたとき、1つのルール格納リストに格納されているルールに対してのみ合致判定を行う。
【選択図】図2
Description
この発明は、イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラムに係り、特に、大量のイベントデータの処理を行う場合に用いて好適なイベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラムに関する。
イベントは、人及びモノに対する事象を表し、1個以上の属性から構成されている。属性は、人及びモノの状態情報であり、属性名と属性値とから構成されている。たとえば、図9に示すように、イベントev1は、属性d1,d2,d3,d4から構成されている。属性d1は、人及びモノの状態情報を検出した装置やセンサなどを示すデータ(たとえば、「装置ID」)、属性d2は、同装置やセンサが取得したデータ(たとえば、「温度」)、属性d3は、データの取得場所(たとえば、「場所」)、及び属性d4が、データの取得時刻(たとえば、「時刻」)で構成されている。属性名は、「装置ID」、「温度」、「場所」、及び「時刻」などの各属性の名称、及び、属性値が、属性名に対するデータ値(“ID1”、“30℃”、“東京都港区”、“10:10:25”など)である。
図10は、イベントパターンの構成例を示す図である。
イベントパターン(event pattern )とは、イベント受信者に通知するためのイベントの条件である。なお、ここでは、1個以上の属性条件(属性名と属性値)を指定したものとして説明する。属性条件には、1つの属性値を指定する属性値一致条件と、属性値の範囲を指定する属性値範囲指定条件とがある。図10では、イベントパターン、及び属性条件(属性値一致条件、及び属性値範囲指定条件)の例が示されている。イベントパターンep1では、属性条件e11 (属性値一致条件)は(装置ID=“ID1”)、及び、属性条件e12 (属性値一致条件)が(温度=“30℃”)である。イベントパターンep2では、属性条件e21 (属性値一致条件)は(装置ID=“ID1”)、及び、属性条件e22 (属性値範囲指定条件)が(“10℃”≦温度≦“30℃”)である。
イベントパターン(event pattern )とは、イベント受信者に通知するためのイベントの条件である。なお、ここでは、1個以上の属性条件(属性名と属性値)を指定したものとして説明する。属性条件には、1つの属性値を指定する属性値一致条件と、属性値の範囲を指定する属性値範囲指定条件とがある。図10では、イベントパターン、及び属性条件(属性値一致条件、及び属性値範囲指定条件)の例が示されている。イベントパターンep1では、属性条件e11 (属性値一致条件)は(装置ID=“ID1”)、及び、属性条件e12 (属性値一致条件)が(温度=“30℃”)である。イベントパターンep2では、属性条件e21 (属性値一致条件)は(装置ID=“ID1”)、及び、属性条件e22 (属性値範囲指定条件)が(“10℃”≦温度≦“30℃”)である。
イベント合致判定では、イベント配信装置により、イベントとイベントパターンとが合致(以下、マッチ(match)ともいう)するか否かが判定され、イベントがイベントパターンに合致するとき、同イベントがイベント受信者に通知される。このイベント合致判定では、イベントパターンで指定された全ての属性条件とイベントの属性とが合致か否かが判定される。この属性条件の合致とは、属性値一致条件の場合、属性値一致条件の属性名に対する属性値が、イベントの同じ属性名に対する属性値と合致することであり、また、属性値範囲指定条件の場合、属性値範囲指定条件の属性名に対する属性範囲に、イベントの同じ属性名に対する属性値が含まれることである。
属性条件の合致について、たとえば、図9に示すイベントev1、及び、図10に示すイベントパターンep1を使用して説明する。
まず、イベントパターンep1で指定されている属性名「装置ID」に対する属性値“ID1”が、イベントev1の属性名「装置ID」に対する属性値“ID1”と合致している。また、イベントパターンep1で指定されている属性名「温度」に対する属性値“30℃”が、イベントev1の属性名「温度」に対する属性値“30℃”と合致している。従って、「図9中のイベントev1が図10中のイベントパターンep1に合致する」との判定結果となる。なお、図10に示すイベントパターンep1では、図9に示すイベントev1に記述される属性のうち、属性名「場所」及び「時刻」に対する属性値は指定されていない。このように、属性値が指定されていない場合は、指定されていない属性値(この場合、属性名「場所」、「時刻」など)が、どのような値でも良いことになる。
まず、イベントパターンep1で指定されている属性名「装置ID」に対する属性値“ID1”が、イベントev1の属性名「装置ID」に対する属性値“ID1”と合致している。また、イベントパターンep1で指定されている属性名「温度」に対する属性値“30℃”が、イベントev1の属性名「温度」に対する属性値“30℃”と合致している。従って、「図9中のイベントev1が図10中のイベントパターンep1に合致する」との判定結果となる。なお、図10に示すイベントパターンep1では、図9に示すイベントev1に記述される属性のうち、属性名「場所」及び「時刻」に対する属性値は指定されていない。このように、属性値が指定されていない場合は、指定されていない属性値(この場合、属性名「場所」、「時刻」など)が、どのような値でも良いことになる。
この種の関連技術としては、たとえば、非特許文献1に記載されたものがある。
この非特許文献1では、ルールの管理方法及びイベント合致方法を説明するための区間木(Interval Tree )について記載されている。すなわち、区間木における範囲指定ルールの管理方法では、範囲指定ルール内のある1又は複数の属性(属性名を「属性名A」とする)の属性値を使用して区間木を構築するものとする。また、範囲指定ルールに属性名Aをもつ属性条件がない場合、属性名Aの属性値は属性名Aの属性値が取り得る任意の値で良いことになるため、属性名Aの属性値範囲指定条件は、「(属性名Aの取り得る属性値の最小値≦属性名A≦属性名Aの属性値の取り得る属性値の最大値)」と指定されていることになる。以下の説明では、ルールに属性名Aをもつ属性値範囲指定条件がない場合、属性名Aの属性値範囲指定条件は、このように指定されているものとする。
この非特許文献1では、ルールの管理方法及びイベント合致方法を説明するための区間木(Interval Tree )について記載されている。すなわち、区間木における範囲指定ルールの管理方法では、範囲指定ルール内のある1又は複数の属性(属性名を「属性名A」とする)の属性値を使用して区間木を構築するものとする。また、範囲指定ルールに属性名Aをもつ属性条件がない場合、属性名Aの属性値は属性名Aの属性値が取り得る任意の値で良いことになるため、属性名Aの属性値範囲指定条件は、「(属性名Aの取り得る属性値の最小値≦属性名A≦属性名Aの属性値の取り得る属性値の最大値)」と指定されていることになる。以下の説明では、ルールに属性名Aをもつ属性値範囲指定条件がない場合、属性名Aの属性値範囲指定条件は、このように指定されているものとする。
範囲指定ルールがn個ある場合、各ルールの属性名Aをもつ属性値範囲指定条件で指定されている属性値(合計2n個)を取得し、2n個の中央の値をx centerとする。次に、x centerによって、ルールを、S center、S left、及びS right に分類する。S centerは、属性名Aをもつ属性値範囲指定条件の属性値の範囲(以降の説明では、「属性値(小)≦属性名A≦属性値(大)」とする)の区間にx centerを含むルールの集合である(すなわち、属性値(小)≦x center≦属性値(大))。S leftは、属性名Aをもつ属性値範囲指定条件の属性値(大)がx centerよりも小さいルールの集合である(すなわち、属性値(小)≦属性値(大)<x center)。S right は、属性名Aをもつ属性値範囲指定条件の属性値(小)がx centerよりも大きいルールの集合である(すなわち、x center<属性値(小)≦属性値(大))。S leftとS right とに属するルール集合は、同様の方式で再帰的に分割していき、S left及びS right がなくなるまで分割を続ける。
このとき、一番初めに生成されたS centerをルートノードとして、再帰的に作成されたx centerを子ノードとして、2分木にしたものが区間木である。各ノードは、(1)x centerの値、(2)S leftから再帰的に作成したS centerに対応するノードへのポインタ、(3)S right から再帰的に作成したS centerに対応するノードへのポインタ、(4)S centerに属するルールを属性値(小)で昇順にソートしたリスト、及び、(5)S centerに属するルールを属性値(大)で昇順にソートしたリストを情報としてもつ。
区間木におけるイベントの合致判定方法では、イベントが発生したとき、同イベントから属性名Aを含む属性の属性値を取得し、区間木のルートノードに対して、以降の探索処理を行う。属性値がルートノードの保持する(1)の値より小さいとき、(4)のリストを順に調べていき、属性値を含むルールに対して合致判定を行い、合致するルールを全て報告する。属性値を含まないルールに到達すれば直ちに終了し、(2)で指すノードに対して探索処理を行う。属性値が区間木のルートノードの保持する(1)の値以上のとき、(5)のリストを順に調べていき、属性値を含むルールに対して合致判定を行い、合致するルールを全て報告する。属性値を含まないルールに到達すれば直ちに終了し、(3)で指すノードに対して探索処理を行う。また、nをイベント処理システムに登録されているルール数、及び、mをイベントに合致するルール数とすると、上記区間木を使用した合致判定の処理時間は、O(logn+m)(O記法)となる。また、区間木を使用したルール登録・削除の処理時間は、O(nlogn)(O記法)となる。
また、非特許文献2では、ルールの管理方法及びイベント合致方法を説明するためのデータベースが記載されている。すなわち、リレーショナルデータベース(RDB)などのデータベース(DB)は、データ(ここでは、ルール)をテーブルに登録するとき、データから作成したインデックスをもとに登録する。データを検索するときは、インデックスを使用することにより、検索速度が向上する。このデータベースに登録できるデータは、たとえば「“10℃”≦温度」のように、1つの属性名に対して1つの属性値である。
ウィキペディア、ホームページ「区間木」
ウィキペディア、ホームページ「データベース」
しかしながら、上記関連技術では、次のような課題があった。
すなわち、非特許文献1では、イベント処理システムに登録されているルール数をn、及び、イベントに合致するルール数をmとすると、区間木を使用した合致判定の処理時間は、O(logn+m)となり、処理時間がかかるので、合致判定の処理時間を短くする必要があるという課題がある。また、区間木を使用したルール登録・削除の処理時間は、O(nlogn)となり、処理時間がかかるので、ルール登録・削除の処理時間を短くする必要があるという課題がある。
すなわち、非特許文献1では、イベント処理システムに登録されているルール数をn、及び、イベントに合致するルール数をmとすると、区間木を使用した合致判定の処理時間は、O(logn+m)となり、処理時間がかかるので、合致判定の処理時間を短くする必要があるという課題がある。また、区間木を使用したルール登録・削除の処理時間は、O(nlogn)となり、処理時間がかかるので、ルール登録・削除の処理時間を短くする必要があるという課題がある。
また、特許文献2に記載されたデータベースでは、同データベースに登録できるデータは、「“10℃”≦温度」のように、1つの属性名に対して1つの属性値であり、この発明における「“10℃”≦温度、温度≦“30℃”」のように、1つの属性名に対して2つ以上の属性値を指定することができず、処理方法が異なっている。
この発明は、上述の事情に鑑みてなされたもので、イベント合致判定の処理時間が短くなるイベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラムを提供することを目的としている。
上記課題を解決するために、この発明の第1の構成は、人及びモノの状態情報を表すイベントと、前記イベントの通知先に通知するためのイベントの条件を表すイベントパターンとの合致判定を行い、合致した前記イベントを前記通知先に送信するイベント処理システムに係り、複数のルール格納リストを有し、前記イベントパターン、及び、1つ以上の前記イベントパターンに合致したイベントの通知先を含んで構成されているルールを前記複数のルール格納リストに分散して格納するためのルール格納手段と、与えられたルール登録要求データに含まれている前記ルールを、前記ルール格納手段内の前記ルール格納リストに登録するルール登録手段と、イベント処理要求データが与えられたとき、1つの前記ルール格納リストに格納されている前記ルールに対してのみ前記合致判定を行うイベント合致判定手段とから構成されていることを特徴としている。
この発明の第2の構成は、イベント処理プログラムがコンピュータに、人及びモノの状態情報を表すイベントと、前記イベントの通知先に通知するためのイベントの条件を表すイベントパターンとの合致判定を行わせ、合致した前記イベントを前記通知先に送信させるイベント処理方法に係り、前記コンピュータに、複数のルール格納リストを有し、前記イベントパターン、及び、1つ以上の前記イベントパターンに合致したイベントの通知先を含んで構成されているルールを前記複数のルール格納リストに分散して格納するためのルール格納手段を設け、与えられたルール登録要求データに含まれている前記ルールを、前記ルール格納手段内の適切な前記ルール格納リストに登録するルール登録処理と、イベント処理要求データが与えられたとき、1つの前記ルール格納リストに格納されている前記ルールに対してのみ前記合致判定を行うイベント合致判定処理とを行わせることを特徴としている。
この発明の構成によれば、イベント合致判定のための処理時間を短縮することができる。
上記ルール格納部は、上記ルール格納リストに対するポインタを保持するポインタ保持手段(ポインタ保持テーブル)を有するイベント処理システムを実現する。
また、上記ポインタ保持手段(ポインタ保持テーブル)は、所定のキー集合が分割されてできた部分キー集合が当該ポインタ保持手段(ポインタ保持テーブル)の各要素にあらかじめ割り当てられ、上記ルール登録手段(ルール登録・削除部)は、上記ルールを受信したときに該ルールから1つ以上のキーを生成し、生成したキーを管理する上記ポインタ保持手段(ポインタ保持テーブル)の上記要素が指す上記ルール格納リストにルールを登録する構成とされ、上記イベント合致判定手段(イベント処理部)は、上記イベントを受信したときに該イベントから上記キーを生成し、該キーを管理するポインタ保持テーブルの要素が指す上記ルール格納リスト内の上記ルールと合致判定を行う構成とされている。
また、上記キー集合は、上記ルール又は上記イベントを構成する特定の属性名の属性値が取り得る値から生成されている。また、上記ルール登録手段(ルール登録・削除部)は、与えられたルール削除要求データに含まれているルールを、上記ルール格納手段(ルール格納部)内のルール格納リストから削除する機能も有している。
この発明のイベント処理システムでは、イベント配信者が配信したイベントと、ルール登録者が登録したルールに含まれるイベントパターンとの合致判定が行われ、合致したイベントがイベント受信者に送信される。この場合、イベント配信者とは、検出したイベントを、イベント処理システムに配信する装置、システム、プログラムなどである。また、イベント配信者とは、起きた事象(イベント)を検出する装置(たとえば、携帯端末、RFタグ、センサなど)であり、また、このような装置からイベントに関する情報を受け取って、イベント処理システムにパブリッシュ(publish )する装置(たとえば、サーバなど)でも良い。
ルールとは、ルール登録者がイベントの通知を要求するときに、イベント処理システムに登録するデータである。この場合、ルールは、上記イベントパターン、及び、1つ以上のイベントパターンに合致したイベントの通知先(イベント受信者)である1つ以上の通知先を含んで構成されている。ルールの中のイベントパターンに1つ以上の属性値範囲指定条件を含むルールを「範囲指定ルール」、及び、含まないルールを「一致ルール」という。なお、ルールでは、イベント処理システムで使用される全属性名の中で指定されていない属性名がある場合、その属性名の属性値は、この属性名が取り得る全属性値を指定することになるため、範囲指定ルールとなる。
図1は、ルールの例を示す図である。
イベント処理システムで使用する属性名を、たとえば、「装置ID」、「温度」、「場所」、及び「時刻」の4つとすると、図10に示すように、ルールr1は、一致ルールであり、イベントパターンは属性値範囲指定条件を含まない。また、ルールr2は、範囲指定ルールであり、イベントパターンが属性値範囲指定条件(“10℃”≦温度≦“30℃”)を含み、また、属性名「場所」及び「時刻」が指定されていない。なお、ルールとイベントとの合致判定も、イベント合致判定という。このような合致(マッチ)の場合には、たとえば、「イベントがルールのイベントパターンにマッチする」、「イベントがルールに合致する」などともいう。
イベント処理システムで使用する属性名を、たとえば、「装置ID」、「温度」、「場所」、及び「時刻」の4つとすると、図10に示すように、ルールr1は、一致ルールであり、イベントパターンは属性値範囲指定条件を含まない。また、ルールr2は、範囲指定ルールであり、イベントパターンが属性値範囲指定条件(“10℃”≦温度≦“30℃”)を含み、また、属性名「場所」及び「時刻」が指定されていない。なお、ルールとイベントとの合致判定も、イベント合致判定という。このような合致(マッチ)の場合には、たとえば、「イベントがルールのイベントパターンにマッチする」、「イベントがルールに合致する」などともいう。
ルール登録者は、ルールを指定する装置、システム、プログラムなどであり、イベント処理システムにルールを登録する。イベント受信者(recv1,recv2)は、イベント処理システムから、イベントを受信する装置、システム、プログラムなどである。また、範囲指定ルールで指定される範囲は、ルールで指定される範囲のごく一部であることを想定している。イベント処理システムを使用する例を、モバイル広告アプリケーションとすると、同イベント処理システムは、ルールで指定されている位置情報に基づいて、ルールを分散管理するものとする。このとき、「任意の範囲」として、たとえば、あるレストランを中心とした直径500mの正方形(0.25km2 )などが指定されると予想され、指定できる範囲が、たとえば関東領域(32,423/km2 )とすると、ルールで指定される範囲は、全体の(0.25/32,423=)0.8×10(-5) となり、ごく一部である。
図2は、この発明の一実施形態であるイベント処理システムの要部の構成を示すブロック図である。
この形態のイベント処理システムは、同図に示すように、1つのイベント処理ノード10から構成され、ルール登録者21、ルール削除者22、イベント配信者23及びイベント受信者24との間でデータのやりとりを行う。また、イベント処理ノード10内で処理されるデータは、図3に示すように、ルール登録要求データ、ルール削除要求データ、イベント処理要求データ及びイベント通知要求データの4種類あり、サービス識別子と、イベント又はルールとから構成されている。たとえば、ルール登録要求データは、サービス識別子「ルール登録要求」と、ルールとから構成されている。ルール登録要求データはルール登録者21から、ルール削除要求データはルール削除者22から、及び、イベント処理要求データはイベント配信者23から、それぞれ送出される。また、イベント通知要求データは、イベント受信者24へ送出される。
この形態のイベント処理システムは、同図に示すように、1つのイベント処理ノード10から構成され、ルール登録者21、ルール削除者22、イベント配信者23及びイベント受信者24との間でデータのやりとりを行う。また、イベント処理ノード10内で処理されるデータは、図3に示すように、ルール登録要求データ、ルール削除要求データ、イベント処理要求データ及びイベント通知要求データの4種類あり、サービス識別子と、イベント又はルールとから構成されている。たとえば、ルール登録要求データは、サービス識別子「ルール登録要求」と、ルールとから構成されている。ルール登録要求データはルール登録者21から、ルール削除要求データはルール削除者22から、及び、イベント処理要求データはイベント配信者23から、それぞれ送出される。また、イベント通知要求データは、イベント受信者24へ送出される。
このイベント処理システムでは、イベント配信者23から配信され、人及びモノの状態情報を表すイベントと、ルール登録者21により登録されたルールに含まれ、上記イベントの通知先であるイベント受信者24に通知するためのイベントの条件を表すイベントパターンとの合致判定を行い、合致したイベントを上記通知先(イベント受信者24)に送信する。また、このイベント処理システムは、イベント処理プログラムに基づいて機能するコンピュータで構成されている。
イベント処理ノード10は、特に、この実施形態では、ルール格納部11と、ルール登録・削除部12と、イベント処理部13と、データ転送部14とから構成されている。ルール格納部11は、図示しない複数のルール格納リストを有し、上記イベントパターン、及び、1つ以上のイベントパターンに合致したイベントの通知先(イベント受信者24)である1つ以上の通知先を含んで構成されているルールを上記複数のルール格納リストに分散して格納するためのものである。ルール登録・削除部12は、ルール登録者21からデータ転送部14を経て与えられたルール登録要求データに含まれているルールを、ルール格納部11内の適切なルール格納リストに登録する。また、ルール登録・削除部12は、ルール削除者22からデータ転送部14を経て与えられたルール削除要求データに含まれているルールを、ルール格納部11内のルール格納リストから削除する。イベント処理部13は、イベント配信者23からデータ転送部14を経てイベント処理要求データが与えられたとき、1つの上記ルール格納リストに格納されているルールに対してのみ上記合致判定を行う。
図4は、図2中のルール格納部11の構成を示す図である。
このルール格納部11は、図4に示すように、ポインタ保持テーブル111 (各要素;pt[0],pt[1],pt[2],pt[3])と、ルール格納リスト112 (112a,112b,112c,112d)とから構成されている。ルール格納リスト112 は、複数のルール格納リスト112a,112b,112c,112dを有し、上記イベントパターン、及び、1つ以上の同イベントパターンに合致したイベントの通知先(イベント受信者24)である1つ以上の通知先を含んで構成されているルールを上記複数のルール格納リスト112a,112b,112c,112dに分散して格納するためのものである。
このルール格納部11は、図4に示すように、ポインタ保持テーブル111 (各要素;pt[0],pt[1],pt[2],pt[3])と、ルール格納リスト112 (112a,112b,112c,112d)とから構成されている。ルール格納リスト112 は、複数のルール格納リスト112a,112b,112c,112dを有し、上記イベントパターン、及び、1つ以上の同イベントパターンに合致したイベントの通知先(イベント受信者24)である1つ以上の通知先を含んで構成されているルールを上記複数のルール格納リスト112a,112b,112c,112dに分散して格納するためのものである。
ポインタ保持テーブル111 は、ルール格納リスト112a,112b,112c,112dに対するポインタpt[0],pt[1],pt[2],pt[3]を保持する。また、ポインタ保持テーブル111 は、所定のキー集合が分割されてできた部分キー集合が同ポインタ保持テーブル111 のポインタpt[0],pt[1],pt[2],pt[3]にあらかじめ割り当てられている。この場合、ルール登録・削除部12は、上記ルールを受信したときに同ルールから1つ以上のキーを生成し、生成したキーを管理するポインタ保持テーブル111 のポインタpt[0],pt[1],pt[2],pt[3]が指すルール格納リスト112a,112b,112c,112dに同ルールを登録する。また、イベント処理部13は、上記イベントを受信したときに同イベントから上記キーを生成し、同キーを管理するポインタ保持テーブル111 のポインタpt[0],pt[1],pt[2],pt[3]が指すルール格納リスト112a,112b,112c,112d内のルールと合致判定を行う。上記キー集合は、上記ルール又はイベントを構成する特定の属性名の属性値が取り得る値から生成されている。
ルール格納リスト112a,112b,112c,112dからルールを格納するルール格納リストを決定する場合、まず、連続した数値や文字列の集合である「キー空間」を用意する。ここでは、キー空間として、数値を使用することとし、たとえば、キー空間{0,1,…,39}とすると共に、各数値を「キー」とする。このキー空間を、ポインタ保持テーブル111 の要素数で等分割し(これを「キー部分空間」という)、ポインタ保持テーブル111 の各要素に、キー部分空間をキーの値が小さい順に割り当てる。たとえば、キー空間{0,1,…,39}を図4中のポインタ保持テーブル111 の要素数(4)で等分割すると、各要素のpt[0]はキー部分空間{0,1,…,9}、pt[1]はキー部分空間{10,11,…,19}、pt[2]はキー部分空間{20,21,…,29}、及び、pt[3]には、キー部分空間{30,31,…,39}が割り当てられる。
次に、ある属性名(たとえば、「属性名A」とする)の属性値を、ルールを格納するルール格納リスト112 の決定に使用し、この属性値が取り得る値の集合をキー空間にマッピングする。たとえば、属性名Aに対する属性値が{0,1,…,79}を取り得るときに、k=f(v)=v/2(k;キー、v;属性値)で属性値をキー空間のキーにマッピングする。マッピングする関数(例では、f(v))を用いて、ルールの属性名Aに対する属性値からキーを求め、このキーを管理するポインタ保持テーブル111 が指すルール格納リスト112 (112a,112b,112c,112d)にルールを登録する。
図5は、ルール登録・削除部12のルール登録処理を説明するフローチャート、図6は、ルール登録処理後のルール格納部11の状態を示す図、図7は、イベント処理部13のイベント処理を説明するフローチャート、及び図8が、データ転送部14の動作を説明するフローチャートである。
これらの図を参照して、この形態のイベント処理システムに用いられるイベント処理方法の処理内容について説明する。
このイベント処理システムでは、イベント処理プログラムがコンピュータに、イベント配信者23から配信され、人及びモノの状態情報を表すイベントと、ルール登録者21により登録されたルールに含まれ、イベント受信者24(イベントの通知先)に通知するためのイベントの条件を表すイベントパターンとの合致判定を行わせ、合致した上記イベントをイベント受信者24に送信させる。
これらの図を参照して、この形態のイベント処理システムに用いられるイベント処理方法の処理内容について説明する。
このイベント処理システムでは、イベント処理プログラムがコンピュータに、イベント配信者23から配信され、人及びモノの状態情報を表すイベントと、ルール登録者21により登録されたルールに含まれ、イベント受信者24(イベントの通知先)に通知するためのイベントの条件を表すイベントパターンとの合致判定を行わせ、合致した上記イベントをイベント受信者24に送信させる。
特に、この実施形態では、上記コンピュータに、上記イベントパターン、及び、1つ以上の上記イベントパターンに合致したイベント受信者24(イベントの通知先)である1つ以上の「通知先」を含んで構成されているルールを上記複数のルール格納リスト112 (112a,112b,112c,112d)に分散して格納するためのルール格納部11を設ける。そして、上記コンピュータに、ルール登録者21からデータ転送部14を経て与えられたルール登録要求データに含まれている上記ルールを、ルール格納部11内の適切なルール格納リスト112 (112a,112b,112c,112d)に登録するルール登録処理と、イベント配信者23からデータ転送部14を経てイベント処理要求データが与えられたとき、1つの上記ルール格納リストに格納されている上記ルールに対してのみ上記合致判定を行うイベント合致判定処理とを行わせる。
すなわち、ルール登録・削除部12では、たとえば、ポインタ保持テーブル111 の要素数は4、キー空間は{0,1,…,39}、各キーを管理するポインタ保持テーブル111 を算出する関数は、t=g(k)=k/10(k;キー、t;キー「k」を管理するポインタ保持テーブル111 の要素番号)、キーを作成する属性の属性名をA、キーは、属性名Aを含む属性条件の属性値から作成され、属性名Aに対応する属性値のとり得る値は{0,1,…,79}、及び、属性値からキー空間へのマッピングが、k=f(v)=v/2(k;キー、v;属性値)とする。そして、図5に示すように、ルール登録・削除部12は、データ転送部14からルール登録要求データを受信したとき(ステップA1)、同ルール登録要求データ内のルールからキー範囲[k l,k u]を作成する(ステップA2)。具体的には、キー範囲は、属性名Aをもつ属性条件が「(v l≦属性名A≦v u)」のとき(「≦」は「<」でも良い)、k l=f(v l),k u=f(v u)とする。
次に、ルール登録・削除部12では、k lを管理するポインタ保持テーブル111 のインデックスiをi=g(k l)により算出し(ステップA3)、pt[i]が指すルール格納リスト112 にルールを登録する(ステップA4)。次に、ルール登録・削除部12は、インデックスiの値をインクリメントし(ステップA5)、pt[i]≦k uのとき(ステップA6でYes)、すなわち、ルールをpt[i]が管理する場合、pt[i]が指すルール格納リスト112 にルールを登録する(ステップA4)一方、pt[i]>k uのとき(ステップA6でNo)、ルール登録処理を終了する。
より具体的な例を用いて説明すると、ルール登録・削除部12が受信したルール登録要求データのルール(「ルールr1」とする)のイベントパターンを、たとえば{(5≦属性名A≦25),(4≦属性名B≦10)}とする(ステップA1)。そして、ルール登録・削除部12は、属性名Aを含む属性条件の属性値「6」と「25」とから、キー範囲[k l,l u]=[f(6),f(25)]=[6/2,25/2]=[3,12]を作成し(ステップA2)、キーk lからインデックスi=g(3)=0を算出し(ステップA3)、pt[0]が指すルール格納リスト112aにルールを登録する(ステップA4)。
この後、ルール登録・削除部12は、インデックスi=1とし(ステップA5)、pt[1]が管理するキーの最小値=10がk u(=12)より小さいので(ステップA6でYes)、pt[1]が指すルール格納リスト112bにルールを登録する(ステップA4)。次に、ルール登録・削除部12は、インデックスi=2とし(ステップA5)、pt[2]が管理するキーの最小値=20がk u(=12)より大きいので(ステップA6でNo)、処理を終了する。この結果、ルール格納部11では、図6に示すように、ルール格納リスト112aにルールr1、及びルール格納リスト112bにルールr1が格納された状態となる。なお、ルール登録・削除部12によるルール削除処理は、ルール登録処理に対して逆の処理である。
イベント処理部13では、図7に示すように、データ転送部14からイベント処理要求データを受信し(ステップB1)、イベント処理要求データのイベントから属性名Aに対応する属性値vを取得して、キーk=f(v)を作成する(ステップB2)。次に、イベント処理部13では、キーkを管理するポインタ保持テーブル111 のインデックスi=g(k)を算出し(ステップB3)、pt[i]が指すルール格納リスト112 を取得する(ステップB4)。そして、イベント処理部13は、取得したルール格納リスト112 内の各ルールに対して合致判定を行い(ステップB5)、合致したルール毎にイベント通知要求データを作成してデータ転送部14に送信する(ステップB6)。
より具体的には、ルール格納部11が、たとえば図6に示す状態とすると、イベント処理部13は、たとえばイベント{(属性名A、10),(属性名B、5)}を含むイベント処理要求データを受信したとき(ステップB1)、イベントからキーk=f(10)=5を生成し(ステップB2)、キーkからインデックスi=g(5)=0を算出する(ステップB3)。イベント処理部13は、pt[0]が指すルール格納リスト112aを取得し(ステップB4)、同ルール格納リスト112aに格納されているルールr1と合致判定を行い、同ルールr1がイベントに合致するので、イベント通知要求データを作成してデータ転送部14に送信する(ステップB6)。
データ転送部14では、図8に示すように、データを受信したとき(ステップC1)、データからサービス識別子(サービスID)を取得し(ステップC2)、同サービス識別子(サービスID)がルール登録要求又はルール削除要求のとき(ステップC3がYes)、データをルール登録・削除部12に転送する(ステップC4)。また、データ転送部14は、サービス識別子(サービスID)がイベント処理要求のとき(ステップC5、Yes)、データをイベント処理部13に転送する(ステップC6)。また、データ転送部14は、サービス識別子(サービスID)がイベント通知要求のとき(ステップC7がYes)、データのルール中の通知先を取得し、該当する通知先(イベント受信者24)にデータを転送する(ステップC8)。
このイベント処理システムでは、イベント合致判定処理は、ルール格納リスト112 の1つのルール格納リストに格納されているルールに対してのみ行えば良いため、ルール格納リスト112 に格納されているルール数をqとすると、イベント合致判定の処理時間がO(q)(O記法)となり、処理時間が短くなる。また、ルールは、同ルールを管理すべきルール格納リスト112 に追加するだけで良く、区間木のように木を作り直す必要がないので、ルール登録の処理時間がO(p)(O記法)(p;ルールが登録されるルール格納リストの数)となり、処理時間が短くなる。この場合、1つのルールは、1つもしくはそれに近い数のルール格納リストにのみ登録されているため、上記pは、1もしくはそれに近い数となる。
以上のように、この実施形態では、ルール登録の処理時間及びイベント合致判定の処理時間が短くなるので、最終的にイベント合致判定のための処理時間が短縮される。
以上、この発明の実施形態を図面により詳述してきたが、具体的な構成は同実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更などがあっても、この発明に含まれる。
たとえば、ルール格納リスト112 が保持するルールは、ルールに対応するポインタでも良い。また、ルール登録・削除部12では、図5中のステップA2において、ルールからキー範囲[k l,k u]を生成しているが、複数のキー範囲{[k l1 ,k u1 ],[k l2 ,k u2 ],…,[k lx ,l ux ]}を生成しても良い。この場合、ステップA3からステップA6の処理を、各キー範囲に対して行う。また、この発明のイベント処理システムは、イベント処理ノード10と同様のイベント処理ノードが複数設けられていても良い。
たとえば、ルール格納リスト112 が保持するルールは、ルールに対応するポインタでも良い。また、ルール登録・削除部12では、図5中のステップA2において、ルールからキー範囲[k l,k u]を生成しているが、複数のキー範囲{[k l1 ,k u1 ],[k l2 ,k u2 ],…,[k lx ,l ux ]}を生成しても良い。この場合、ステップA3からステップA6の処理を、各キー範囲に対して行う。また、この発明のイベント処理システムは、イベント処理ノード10と同様のイベント処理ノードが複数設けられていても良い。
この発明は、イベントデータの処理を行うイベント処理システム全般に適用できる。
10 イベント処理ノード(イベント処理システム)
11 ルール格納部(ルール格納手段)
111 ポインタ保持テーブル(ポインタ保持手段)
112 ルール格納リスト(ルール格納手段)
112a,112b,112c,112d ルール格納リスト
12 ルール登録・削除部(ルール登録手段)
13 イベント処理部(イベント合致判定手段)
14 データ転送部(イベント処理システムの一部)
pt[0],pt[1],pt[2],pt[3] ポインタ保持手段の各要素
11 ルール格納部(ルール格納手段)
111 ポインタ保持テーブル(ポインタ保持手段)
112 ルール格納リスト(ルール格納手段)
112a,112b,112c,112d ルール格納リスト
12 ルール登録・削除部(ルール登録手段)
13 イベント処理部(イベント合致判定手段)
14 データ転送部(イベント処理システムの一部)
pt[0],pt[1],pt[2],pt[3] ポインタ保持手段の各要素
Claims (7)
- 人及びモノの状態情報を表すイベントと、前記イベントの通知先に通知するためのイベントの条件を表すイベントパターンとの合致判定を行い、合致した前記イベントを前記通知先に送信するイベント処理システムであって、
複数のルール格納リストを有し、前記イベントパターン、及び、1つ以上の前記イベントパターンに合致したイベントの通知先を含んで構成されているルールを前記複数のルール格納リストに分散して格納するためのルール格納手段と、
与えられたルール登録要求データに含まれている前記ルールを、前記ルール格納手段内の前記ルール格納リストに登録するルール登録手段と、
イベント処理要求データが与えられたとき、1つの前記ルール格納リストに格納されている前記ルールに対してのみ前記合致判定を行うイベント合致判定手段とから構成されていることを特徴とするイベント処理システム。 - 前記ルール格納手段は、
前記ルール格納リストに対するポインタを保持するポインタ保持手段を有することを特徴とする請求項1記載のイベント処理システム。 - 前記ポインタ保持手段は、
所定のキー集合が分割されてできた部分キー集合が当該ポインタ保持手段の各要素にあらかじめ割り当てられ、
前記ルール登録手段は、
前記ルールを受信したときに該ルールから1つ以上のキーを生成し、生成したキーを管理する前記ポインタ保持手段の前記要素が指す前記ルール格納リストにルールを登録する構成とされ、
前記イベント合致判定手段は、
前記イベントを受信したときに該イベントから前記キーを生成し、該キーを管理するポインタ保持テーブルの要素が指す前記ルール格納リスト内の前記ルールと合致判定を行う構成とされていることを特徴とする請求項2記載のイベント処理システム。 - 前記キー集合は、
前記ルール又は前記イベントを構成する特定の属性名の属性値が取り得る値から生成されていることを特徴とする請求項3記載のイベント処理システム。 - 前記ルール登録手段は、
与えられたルール削除要求データに含まれているルールを、前記ルール格納手段の前記ルール格納リストから削除する機能も有していることを特徴とする請求項1、2、3又は4記載のイベント処理システム。 - イベント処理プログラムがコンピュータに、人及びモノの状態情報を表すイベントと、前記イベントの通知先に通知するためのイベントの条件を表すイベントパターンとの合致判定を行わせ、合致した前記イベントを前記通知先に送信させるイベント処理方法であって、
前記コンピュータに、複数のルール格納リストを有し、前記イベントパターン、及び、1つ以上の前記イベントパターンに合致したイベントの通知先を含んで構成されているルールを前記複数のルール格納リストに分散して格納するためのルール格納手段を設け、
与えられたルール登録要求データに含まれている前記ルールを、前記ルール格納手段内の前記ルール格納リストに登録するルール登録処理と、
イベント処理要求データが与えられたとき、1つの前記ルール格納リストに格納されている前記ルールに対してのみ前記合致判定を行うイベント合致判定処理とを行わせることを特徴とするイベント処理方法。 - コンピュータを、請求項1乃至5のいずれか一に記載のイベント処理システムとして機能させることを特徴とするイベント処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011076391A JP2012212227A (ja) | 2011-03-30 | 2011-03-30 | イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011076391A JP2012212227A (ja) | 2011-03-30 | 2011-03-30 | イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012212227A true JP2012212227A (ja) | 2012-11-01 |
Family
ID=47266141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011076391A Pending JP2012212227A (ja) | 2011-03-30 | 2011-03-30 | イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012212227A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734240B2 (en) | 2013-10-28 | 2017-08-15 | Fujitsu Limited | Medium, method, and apparatus |
CN111611193A (zh) * | 2019-02-22 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 事件处理方法、装置和设备 |
KR102286272B1 (ko) * | 2021-02-02 | 2021-08-06 | 주식회사 파트리지시스템즈 | 이벤트 검출 장치 및 그 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11266248A (ja) * | 1997-12-10 | 1999-09-28 | Matsushita Electric Ind Co Ltd | イベント通知制御装置 |
JP2005108221A (ja) * | 2003-09-29 | 2005-04-21 | Internatl Business Mach Corp <Ibm> | クエリ、ルール、および購読を索引付けするためのシステムおよび方法 |
WO2010107107A1 (ja) * | 2009-03-17 | 2010-09-23 | 日本電気株式会社 | イベント処理システム、イベント処理方法、ルール分配装置、及びプログラム記憶媒体 |
-
2011
- 2011-03-30 JP JP2011076391A patent/JP2012212227A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11266248A (ja) * | 1997-12-10 | 1999-09-28 | Matsushita Electric Ind Co Ltd | イベント通知制御装置 |
JP2005108221A (ja) * | 2003-09-29 | 2005-04-21 | Internatl Business Mach Corp <Ibm> | クエリ、ルール、および購読を索引付けするためのシステムおよび方法 |
WO2010107107A1 (ja) * | 2009-03-17 | 2010-09-23 | 日本電気株式会社 | イベント処理システム、イベント処理方法、ルール分配装置、及びプログラム記憶媒体 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734240B2 (en) | 2013-10-28 | 2017-08-15 | Fujitsu Limited | Medium, method, and apparatus |
CN111611193A (zh) * | 2019-02-22 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 事件处理方法、装置和设备 |
CN111611193B (zh) * | 2019-02-22 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 事件处理方法、装置和设备 |
KR102286272B1 (ko) * | 2021-02-02 | 2021-08-06 | 주식회사 파트리지시스템즈 | 이벤트 검출 장치 및 그 방법 |
WO2022169076A1 (ko) * | 2021-02-02 | 2022-08-11 | 주식회사 파트리지시스템즈 | 이벤트 검출 장치 및 그 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269834B2 (en) | Detecting quasi-identifiers in datasets | |
US7523130B1 (en) | Storing and retrieving objects on a computer network in a distributed database | |
KR101753766B1 (ko) | 그래프 데이터용 분산형 캐시 | |
US9990430B2 (en) | Graph server querying for managing social network information flow | |
US9413702B2 (en) | Method and apparatus for distributing published messages | |
US20160292171A1 (en) | Shard aware near real time indexing | |
EP3532949A1 (en) | Change monitoring spanning graph queries | |
US10320937B2 (en) | Community notification based on profile update | |
CN109417567A (zh) | 用于内容中心网络中的兴趣组的方法和系统 | |
WO2019001223A1 (zh) | 极速地理GeoHash聚类方法 | |
US20210109925A1 (en) | Information management device, information management method, and information management program | |
CN106973021A (zh) | 网络系统中负载均衡的方法和节点 | |
JP6067714B2 (ja) | イベントデータを取得するスケールアウトシステム | |
KR20210048425A (ko) | 데이터 매핑을 위한 방법, 장치 및 시스템 | |
CN116701330A (zh) | 物流信息共享方法、装置、设备及存储介质 | |
JP2013058108A (ja) | タグ管理装置およびタグ管理プログラム | |
JP2012212227A (ja) | イベント処理システム、該システムに用いられるイベント処理方法及びイベント処理プログラム | |
CN111400301B (zh) | 一种数据查询方法、装置及设备 | |
CN108696418B (zh) | 一种社交网络中隐私保护方法及装置 | |
EP2972970A2 (en) | Locale-based sorting on mobile devices | |
US20150100545A1 (en) | Distributed database system and a non-transitory computer readable medium | |
CN115952471B (zh) | 融合不同数据源的数据的方法、装置、计算设备和介质 | |
CN112702390A (zh) | 基于区块链的智能合约资源的组网方法和装置 | |
US20200081875A1 (en) | Information Association And Suggestion | |
Bhat et al. | A MapReduce-Based Approach for Fast Connected Components Detection from Large-Scale Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140924 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20150203 |