JP5317017B2 - 複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラム - Google Patents
複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラム Download PDFInfo
- Publication number
- JP5317017B2 JP5317017B2 JP2009152740A JP2009152740A JP5317017B2 JP 5317017 B2 JP5317017 B2 JP 5317017B2 JP 2009152740 A JP2009152740 A JP 2009152740A JP 2009152740 A JP2009152740 A JP 2009152740A JP 5317017 B2 JP5317017 B2 JP 5317017B2
- Authority
- JP
- Japan
- Prior art keywords
- event
- composite
- node
- received
- storage area
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は、ある観測対象の状態変化が発生した時に、その状態変化を情報化するとともに、その情報の配信を希望する受信者へ状態変化を通知する複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラムに関する。
近年、アプリケーションはリアルタイム性が求められようになり、これまでのようにDBMS(Data Base Management System)に蓄えられた大量のデータから、ユーザの意思や決められた時刻に必要なデータを問い合わせるといった構造のアプレケーションではなく、データが生じた時点でその内容を検査し、必要なデータのみを取得して処理するアプリケーションが求められている。
この時々刻々と生じるデータの中から必要なデータが見つかることをイベントが発生したという。そして、これらのイベントは、単一で意味のあるものもあるが、複雑なアプリケーションの中では複数のイベントが同時に起こること、又はあるイベントが別のイベントの後に起こるといった複数のイベントの組み合わせに意味のあることが多い。以下に説明する複合イベント処理とは、このように複数のイベントの組み合わせ自体を一つのイベントとして処理を行うことをいう。
イベント検出の際に使用されるストリーミングデータのXPathクエリであるXSQ(例えば、非特許文献1参照)において、複合イベントを検出するための条件式はオートマトンによって表現される。例えば、図8に示されるように、イベントAが発生し、イベントBが発生したという順序表現である。
図8に示す複合イベント検出器によれば、初期状態がS0にあり、最初にイベントAを受信すると、そのイベントAを保持した上で状態S1に遷移する。しかし、イベントBを受信した場合、状態S0を維持する。状態S1では、イベントAを受信すると、状態遷移が発生しない。なぜなら、状態S1は、既にイベントAの受信を検出した状態を示すからである。しかし、イベントBを受信すると、終了状態であるS2へ遷移する。その結果、保持してあるイベントAと、受信したイベントBとを組み合わせることで複合イベント(A;B)を検出する。
また、上述した複合イベント処理装置あるいはシステムにおいて、メモリ資源を有効活用するために、イベント通知をチャンネルという概念で行なう方法(例えば、特許文献1参照)、システムを階層構造で定義した場合に、上位ノードが隣接した階層でなければ冗長なノードを設け隣接関係にしてイベント格納領域の無駄な空きをなくする方法も知られている(例えば、特許文献2参照)。
XPath Queries on Streaming Data.Feng Peng and Sudarshan S.Chawathe.In Proceedings of the ACM SIGMOD International Conferece Management of Data.june9−12,2003.San Diego,California
ところで、上述した複合イベント処理装置では、1ノードあたりの記憶容量、例えば、メモリやストレージ容量を事前に設計することは難しく、このため、イベント情報を柔軟に保持することが望まれていた。
その理由は、メモリ使用量は、登録されたサブクリブション数によって変化し、また発生周期が長いイベントを使って、複合イベント検出を行う場合、先に発生したイベント情報が、複合イベント式を満足するまで登録されてしまい、その結果、記憶容量を圧迫するからである。
(発明の目的)
本発明の目的は、イベント情報を柔軟に保持可能な、複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラムを提供することにある。
本発明の目的は、イベント情報を柔軟に保持可能な、複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラムを提供することにある。
本発明の第1の複合イベント配信システムは、イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークと、イベント配信ネットワークに接続される端末装置とからなる複合イベント配信システムであって、ノードの少なくとも一つは、端末装置から複合イベント条件式の要素に含まれるイベントを受信した場合、受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す複合イベント検出部と、複合イベント検出部に対し、第1のアプリケーションインタフェースを提供するとともに、受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す受信イベント履歴管理部とを備え、他ノードは、受信イベント履歴管理部に対し、第2のアプリケーションインタフェースを提供するとともに、受信イベント履歴管理部からの呼び出しに応じて、指定されたイベントを保持する記憶領域の確保を行う仮想記憶管理部を備え、受信イベント履歴管理部は、他ノードに確保された記憶領域を用いて受信したイベントの保持、読み出し、又は置換を行う。
本発明の第2の複合イベント処理装置は、イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークに接続される複合イベント処理装置であって、受信したイベントが複合イベント条件式の要素に含まれる場合、受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す複合イベント検出部と、複合イベント検出部に対し、第1のアプリケーションインタフェースを提供するとともに、受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す受信イベント履歴管理部と、受信イベント履歴管理部に対し、第2のアプリケーションインタフェースを提供するとともに、受信イベント履歴管理部からの呼び出しに応じて、指定されたイベントを保持する記憶領域の確保を行う仮想記憶管理部とを含む。
本発明の第3の複合イベント処理方法は、イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークと、イベント配信ネットワークに接続される端末装置とからなる複合イベント配信システムにおける複合イベント処理方法であって、端末装置から複合イベント条件式の要素に含まれるイベントを受信した場合、受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す第1のステップと、呼び出しに基づき提供される第1のアプリケーションインタフェースに基づき、受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す第2のステップと、呼び出しに基づき第2のアプリケーションインタフェースを提供するとともに、呼び出しに応じて、他ノードに、指定されたイベントを保持する記憶領域の確保を行う第3のステップと、提供された第2のアプリケーションインタフェースに基づき、他ノードに確保された記憶領域を用いて受信したイベントの保持、読み出し、又は置換を行う第4のステップとを有する。
本発明の第4の複合イベント処理プログラムは、コンピュータ上で実行され、イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークに接続される複合イベント処理装置の複合イベント処理プログラムであって、コンピュータに、受信したイベントが複合イベント条件式の要素に含まれる場合、受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す複合イベント検出処理と、第1のアプリケーションインタフェースを提供するとともに、受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す受信イベント履歴処理と、第2のアプリケーションインタフェースを提供するとともに、呼び出しに応じて、指定されたイベントを保持する記憶領域の確保を行う仮想記憶管理処理と、を実行させる。
本発明によれば、イベント情報を柔軟に保持可能な、複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラムを提供することができる。
その理由は、イベント処理装置が、受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換するからである。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態による複合イベント配信システム1の構成を示すブロック図である。
図1は、本発明の第1の実施の形態による複合イベント配信システム1の構成を示すブロック図である。
ここでは、バブリッシュ/サブスクライブ通信方式による複合イベント配信システム1が例示されている。図1を参照すると、本発明の第1の実施の形態による複合配信システム1は、イベント配信ネットワーク10と、それに接続された端末群で構成される。イベント配信ネットワーク10は、イベント情報をルーティングするブローカノードB1、B2、およびランデブーノードRを含む。イベント配信ネットワーク10は、例えば、端末群を裾とし、ランデブーノードRを頂点としたマルチキャストツリー状のネットワークである。端末群は、イベント情報(s1、s2)および広告情報(a1、a2)を発信するパブリッシャノードP1、P2、およびイベント情報(s1、s2)を受信するサブスクライバノードS1、S2を含む。
パブリッシャノードP1、P2、およびサブスクライバノードS1、S2は、例えば、インターネットに接続される端末上で動作するアブリケーションプログラムである。端末としては、PC(Personal Computer)やインターネット接続環境(Webブラウザ)内蔵の携帯電話、あるいはセンネットワークとする。なお、パブリッシャノードP1、P2は、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いてイベント配信ネットワーク10を構成するブローカノードB1、B3に接続する。なお、TCP/IPに限らず、UDP(User Datagram Protocol)やHTTP(Hyper Text Transfer Protocol)でもよい。
例えば、イベントを発信しようとするパブリッシャノードP1は、最初にイベントの広告を行う。図1に示されるように、この広告処理は、パブリッシャノートP1が広告情報a1を、ランデブーノードRへ送信することで実行される。ブローカノードB1は、パプリッシャノードP1から広告情報を受信したときに、広告用のルーティングテーブルを作成する。すなわち、送信元(パブリッシャノードP1)−転送先(ランデブーノードR)という設定を作成する。ここで、作成したイベント配信パスのルートRt1(パブリッシャノードP1)−ブローカノードB1)−(ランデブーノードR)は、パブリッシャノードP1がイベント情報p1を発信する場合に使用される。
イベントを発信しようとするパプリッシャノードP2も同様の処理、つまり、広告情報a2をランデブーノードRへ広告する。この広告情報a2は、ブローカノードB2においてランデブーノードRへの送信が終端されている。これは広告情報a1と広告情報a2が既に、(ブローカノードB1)−(ランデブーノードR)への配信ルートを広告していることから、広告情報a2のためのブローカノードB1からランデブーノードRへの配信ルートは、広告情報a1で設定した配信ルートが利用される。
一方、広告されたイベントを受信しようとするサブスクライバノードS1は、イベントを受信するために要求情報s1をランデブーノードRへ送信する。この要求情報s1は、図1のルートRt2(サブスクライバノードS1)−(ブローカノードB3)−(ブローカノードB1)を通ってランデブーノードRへ到達する。また、この要求情報s1は、ブローカノードB2へも転送されている。これは、イベント情報p1を広告しようとしている広告情報a2とイベント情報p1を受信使用としている要求情報s1の条件とが一致したことで発生している。
より詳細に説明すると、この要求情報s1が転送される経路上にあるブローカノードB1では、広告情報a1をランデブーノードRへ転送する際に構築したルーティングテーブルを参照する。この参照において、広告しようとしているイベントと受信しようとするイベントの条件が一致すれば、要求情報S1は、広告情報a1で構築したルートを逆に辿って転送される。つまり、図1の例では、要求情報s1は、ブローカノードB1からブローカノードB2へ転送されている。図1に記載は無いが、この処理に基づき、広告情報a2で広告されたイベントは、パブリッシャノードP2において状態変化が発生したときに、イベント情報p2として、(パブリッシャノードP2)−(ブローカノードB2)−(ブローカノードB1)−(サブスクライバノードS1)という配信ルートを通って配信される。
上述したイベント配信ネットワーク10を構成する任意のノードに本発明の複合イベント処理装置11が接続され、本発明の複合イベント配信システム10が構築される。以下、図2を参照しながら本発明の第1の実施形態による複合イベント処理装置11について説明する。
図2を参照すると、複合イベント処理装置11は、主制御部110と、複合イベント検出部111と、受信イベント履歴管理部112と、仮想記憶管理部113と、記憶部114とを含む。
複合イベント検出部111は、複合イベントを検出するための条件式を保持し、到着するイベントに対して、条件式との一致判定を行う。この一致判定は、上述したXSQ等の技術が適用可能である。そしてその条件式に含まれるイベントが到着した場合に、受信イベント履歴管理部112が提供するAPI(Application Programming Interface)を呼び出す。
受信イベント履歴管理部112は、到着したイベントの記憶、読み出し、書き換え処理を行う。その処理を実行するためのAPIとして、Enqueue(),Dequeu(),Replace()を複合イベント検出部111に提供する。Enqueue()は、自ノードが管理する記憶領域で、指示されたイベントの保持を行うためのAPIである。また、Dequeue()は、指示された条件に一致するイベントを、自ノードが管理する記憶部114(記憶領域)から読み出すためのAPIである。また、Replace()は、自ノードが管理する記憶部114に記憶されたイベントを到着したイベントで置換するAPIである。
受信イベント履歴管理部112はまた、自ノードの記憶部114(記憶領域)、及び隣接するノードに確保される仮想記憶領域に保持された個々の種別のイベント数を管理する。
仮想記憶管理部113は、受信イベント履歴管理部112が管理する記憶領域とは別に確保された記憶領域を管理する。その処理を実行するためのAPIとして、Venqueue(),Vdequeue(),Vreplace()を受信イベント履歴管理部112に提供する。Venqueue()は、自ノードが管理する記憶領域で、指示されたイベントの保持を行うためのAPIである。Vdequeue()は、指示された条件に一致するイベントを、自ノードの管理する記憶領域から読み出すためのAPIである。Vreplace()は、自ノードが管理する記憶領域で、記憶されたイベントを、到着したイベントで置換するAPIである。
なお、主制御部110は、上述した複合イベント検出部111、受信イベント履歴管理部112、仮想記憶管理部113を用い、(1)受信したイベントが複合イベント条件式の要素に含まれる場合、前記受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェース(Enqueue(),Dequeu(),Replace())を呼び出し、(2)第1のアプリケーションインタフェースを提供するとともに、受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース(Venqueue(),Vdequeue(),Vreplace())を呼び出し、(3)第2のアプリケーションインタフェースを提供するとともに、呼び出しに応じて、指定されたイベントを保持する記憶領域の確保を行うためのシーケンス制御を司る。また、記憶部114には、上述した受信イベントの他に、後述するルーティングテーブルが格納される。
上述した複合イベント処理装置11は、単体で複合イベント検出部111と、受信イベント履歴管理部112と、仮想記憶管理部113とを含むが、複合イベント配信システム1を構築するにあたり、図3に示されるように、少なくとも2つの複合イベント処理装置11、12を用いて運用される。ここでは、複合イベント処理装置11では、受信イベント履歴管理部111と、複合イベント検出部112が、複合イベント処理装置12では、仮想記憶管理部123が連携して動作することにより複合イベントを検出する。なお、複合イベント検出部111は、図8を引用して説明したXSQを含む複数のイベント検出器によって構成される。
(第1の実施の形態の動作の説明)
図3では、複合イベント検出装置11に、複合イベント処理装置12経由でイベントAとイベントBが入力されている。ここでは、順序型の複合イベント条件式A;B(Aが発生し、次にBが発生する)というモデルを用いる。
図3では、複合イベント検出装置11に、複合イベント処理装置12経由でイベントAとイベントBが入力されている。ここでは、順序型の複合イベント条件式A;B(Aが発生し、次にBが発生する)というモデルを用いる。
複合イベント(A;B)は、複合イベント検出部111の複合イベント検出器で検出される。つまり、複合イベント(A;B)は、複合イベント処理装置11がイベントAを受信し、次にイベントBを受信したときに検出される。図4に、本発明の第1の実施の形態による複合イベント処理装置11の動作がフローチャートで示されている。
図4を参照すると、複合イベント検出装置11で受信されたイベントAは(ステップS401“YES”)、複合イベント検出部111で条件式との一致判定が行われる(ステップS402)。実際には、イベントAが、複合イベント検出器の最初の入力となる。この時、複合イベント検出器は初期状態にあるが、イベントAが入力されたことから状態遷移を起こしてイベントAを保持する処理を行う。その結果、複合イベント検出部111が、受信イベント履歴管理部112が提供するEnqueue()を呼び出す(ステップS403)。
複合イベント検出部111によりイベント呼び出された受信イベント履歴管理部112は、自ノード内に空き記憶領域がある場合(ステップS404“YES”)、受信したイベントAを自ノードで保持する(ステップS405)。一方、自ノード内に空き記憶領域が残っていない場合、受信イベント履歴管理部112は、Venqueue()を用いて(ステップS406)、複合イベント処理装置12の仮想記憶管理部123に新たな記憶領域を確保させ、イベントA300を保持させる(ステップS407)。
次に、新たにイベントAが到来した場合、複合イベント検出器111aの状態が変化しないため、同様のシーケンスが繰り返し実行され、複合イベント検出装置11が受信したイベントAが、複合イベント検出装置11、または複合イベント検出装置12に保持されていく。
次に、複合イベント処理装置11がイベントBを受信したとする(ステップS308“YES”)。この場合、複合イベント検出部111の複合イベント検出器は、状態遷移を起こして終了状態へと遷移する。そこで、複合イベント検出器は、複合イベント生成のために、保持したイベントAを読み出す必要がある。そのため、複合イベント検出部111は、受信イベント履歴管理部112が提供するDequeue()を呼び出す(ステップS409)。Dequeue()によって呼び出された受信イベント履歴管理部112は、自ノード内にイベントAが保持されていれば(ステップS410“YES”)、そのイベントAを読み出し、複合イベント検出部111へ転送する(ステップS411)。
一方、複合イベント処理装置11内にイベントAが保持されておらず、複合イベント処理装置12上の仮想記憶管理部123にイベントAが保持されている場合(ステップS410“NO”)、受信イベント履歴管理部112は、Vdequeue()を用いて(ステップS412)、複合イベント処理装置12の仮想記憶管理部113からイベントAを読み出し、複合イベント検出部111へ転送する(ステップS413)。このことにより、複合イベント処理装置11で順序型の複合イベント(A;B)が検出される。
(第1の実施の形態による効果)
本実施の形態による複合イベント処理装置1では、自ノードの記憶容量が不足すれば、前段に位置するノードに記憶領域を確保し、さらに、前段のノードの記憶容量が不足すれば、さらにその前段に位置するノードに記憶領域を確保する動作を繰り返すことで、柔軟な記憶領域の確保が可能になる。ここで、新たに記憶領域を確保するノードは、各イベントの配信パスにおいて、複合イベント処理装置11の前段に位置するノードに実装された複合イベント処理装置12が選択される。これによって、複合イベント処理装置11は、他の複合イベント処理装置12との間で確保した記憶領域を共有することが可能になる。
本実施の形態による複合イベント処理装置1では、自ノードの記憶容量が不足すれば、前段に位置するノードに記憶領域を確保し、さらに、前段のノードの記憶容量が不足すれば、さらにその前段に位置するノードに記憶領域を確保する動作を繰り返すことで、柔軟な記憶領域の確保が可能になる。ここで、新たに記憶領域を確保するノードは、各イベントの配信パスにおいて、複合イベント処理装置11の前段に位置するノードに実装された複合イベント処理装置12が選択される。これによって、複合イベント処理装置11は、他の複合イベント処理装置12との間で確保した記憶領域を共有することが可能になる。
なお、図2の複合イベント処理装置11が有する機能は、全てをソフトウェアによって実現しても、あるいはその少なくとも一部をハードウェアで実現してもよい。例えば、複合イベント検出部111が、受信したイベントが複合イベント条件式の要素に含まれる場合、受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出すデータ処理、受信イベント履歴管理部112が、複合イベント検出部111に対し、第1のアプリケーションインタフェースを提供するとともに、受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出すデータ処理、仮想記憶管理部123が、受信イベント履歴管理部112に対し、第2のアプリケーションインタフェースを提供するとともに、受信イベント履歴管理部112からの呼び出しに応じて、指定されたイベントを保持する記憶領域の確保を行うデータ処理は、1または複数のプログラムによりコンピュータ上で実現してもよく、また、その少なくとも一部をハードウェアで実現してもよい。
(第2の実施の形態)
以下に説明する第2の実施の形態では、DHT(Distributed Hash Table)を用いたオーバレイネットワーク100上に、上述したスベント配信ネットワーク10を構築したモデルを使用して説明する。オーバレイネットワーク100は、例えば、PastryやChord等の技術で構成される周知の技術である。
図5を参照すると、オーバレイネットワーク100は、オーバレイネットワークノード50〜54で構成され、図1に示すパブリッシュ/サブスクライブ通信方式におけるサブスクライブノード55がオーバレイネットワークノード54に接続されている。このうち、オーバレイネットワークノード50と、51には、図3に示した複合イベント検出装置11、12が同一の装置として、例えばコンピュータ上のソフトウェア(イベント処理プログラム)として、アドオン実装されているものとする。
(第2の実施の形態の動作の説明)
以下、図6に示す動作シーケンス図を参照しながら第2の実施の形態に係る複合イベント配信システム1の動作について説明するが、第1の実施の形態同様、複合イベントを検出するための条件式として、順序型の複合イベント(A;B)の検出を例示して説明を行う。
以下、図6に示す動作シーケンス図を参照しながら第2の実施の形態に係る複合イベント配信システム1の動作について説明するが、第1の実施の形態同様、複合イベントを検出するための条件式として、順序型の複合イベント(A;B)の検出を例示して説明を行う。
まず、複合イベントの条件式(A;B)は、サブスクライブノード55により生成され(ステップS601)、オーバレイネットワークノード54、53、50の経路で登録される(ステップS602)。
ここで、複合イベントを構成する一方のイベントAは、オーバレイネットワークノード51からオーバレイネットワークノード50へ転送されてきている(ステップS603)。また、他方のイベントBは、オーバレイネットワークノード52から50へ転送されてきている(ステップS610)。このように、イベントAがオーバレイネットワークノード50(複合イベント処理装置11)に到来し、次に、イペントBがオーバレイネットワークノード50(複合イベント処理装置11)に到来した場合に複合イベント(A;B)が検出される。
図7に、オーバレイネットワークノード50と51との接続関係が模式的に示されている。オーバレイネットワークノード50には、図3に示す複合イベント処理装置11が、オーバレイネットワークノード51には複合イベント検出装置12がイベント処理プログラムとして実装されていることは上述したとおりである。つまり、オーバレイネットワークノード50は、複合イベント処理装置11として、複合イベント検出部111と受信イベント履歴管理部112とを含む。また、複合イベント検出部111は、周知のオートマトン型のXSQ検出器で構成される。なお、オーバレイネットワークノード51は、複合イベント処理装置12として仮想記憶管理部123を含む。
上記構成において、オーバレイネットワークノード50が受信したイベントAは、複合イベント処理装置11に転送され、複合イベント検出部11で複合イベント条件式との合致処理が行われる。ここでは、複合イベント条件式(A;B)が、複合イベント検出部111に保持されているため、複合イベント検出部111は、受信イベント履歴管理部112が提供するEnqueue()を呼び出す(ステップS604)。
ここで、呼び出された受信イベント履歴管理部112は、自ノードで有する記憶部114に空き記憶領域がある場合(ステップS605“YES”)、受信したイベントAを受信イベント履歴管理部112で保持する(ステップS606)。一方、自ノード内に空き記憶容量の空きが無い場合(ステップS605“NO”)、Venqueue()を用い、イベントAの配信パスとして前段に位置するオーバレイネットワークノード51上の複合イベント検出装置12(仮想記憶管理部123)に、新たな記憶領域の確保を行わせ、受信したイベントAを保持させる(ステプS607〜609)。
ここで、オーバレイネットワーク100中にオーバレイネットワークノード51〜54が存在する中で、オーバレイネットワーク51が選ばれる理由は、イベントAのルーティング経路が、「オーバレイネットワークノード51→オーバレイネットワークノード50」に設定されているからである。つまり、オーバレイネットワークノード50の受信イベント履歴管理部112は、ステップS608でAPIであるVenqueue()を呼び出す前に、自身が有するルーティングテーブル500を参照することによってイベントAの配信経路を判定している(ステップS607)。最後に、Venqueue()によって呼び出された仮想記憶管理部123は、転送されたイベントAのための記憶領域を確保し、取得したイベントAを保持する。
この状況において、新たにイベントAが到来した場合も同様のシーケンスが繰り返される。つまり、新たなイベントAは、受信イベント経歴管理部112、または仮想記憶管理部123に保持されていく。
次に、オーバレイネットワークノード52からイベントBが到着し、これをオーバレイネットワークノード50で受信したとする(ステップS610)。このとき、複合イベント検出部111は、既にイベントAが到着した状態に遷移している。そのため、複合イベント検出部111は、Dequeue()を用いて受信イベント履歴管理部112の読み出しを行う。Dequeue()によって呼び出された受信イベント履歴管理部112は、自ノードの記憶領域にイベントAが保持されているか否かを判定し(ステップS611)、保持されている場合(ステップS611“YES”)、イベントAを読み出し、複合イベント検出部111へ転送する(ステップS612)。
一方、受信イベント履歴管理部112内にイベントAが保持されておらず、仮想記憶管理部123が管理する仮想記憶領域にイベントAが保持されている場合(ステップS611“NO”)、受信イベント履歴管理部112は、Vdrqueue()を用いて(ステップS613)、仮想記憶管理部123上の仮想記憶領域からイベントAを読み出し、複合イベント検出部112へ転送する(ステップS614)。以上のようにして複合イベント検出装置11、12がオーバレイネットワーク100上で動作する。
(第2の実施の形態による効果)
本実施の形態による複合イベント配信システム1では、柔軟なイベント保持機能が提供されることにより、長周期のイベントを活用した状態監視を行うことができる。例えば、オーバレイネットワーク100全体の状態変化を、複合イベント配信システム1に反映させ、複合イベント検出装置11、12によって、多様な複合イベント条件式に対応したイベント情報を生成することも可能である。本実施の形態による複合イベント配信システム1によれば、これまでの集中サーバの形態とは異なり、分散配置された記憶領域を有効に活用することが可能となり、このことにより、ストレージ容量の事前設計の難易度を軽減することができる。
本実施の形態による複合イベント配信システム1では、柔軟なイベント保持機能が提供されることにより、長周期のイベントを活用した状態監視を行うことができる。例えば、オーバレイネットワーク100全体の状態変化を、複合イベント配信システム1に反映させ、複合イベント検出装置11、12によって、多様な複合イベント条件式に対応したイベント情報を生成することも可能である。本実施の形態による複合イベント配信システム1によれば、これまでの集中サーバの形態とは異なり、分散配置された記憶領域を有効に活用することが可能となり、このことにより、ストレージ容量の事前設計の難易度を軽減することができる。
以上好ましい実施の形態と実施例をあげて本発明を説明したが、本発明は必ずしも、上述実施の形態及び実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
1:複合イベント配信システム
10:イベント配信ネットワーク
11、12:複合イベント処理装置
50〜55:オーバレイノード
56:サブスクライブ端末
100:オーバレイネットワーク
110:主制御部
111:複合イベント検出部
112:複合イベント履歴管理部
113、123:仮想記憶管理部
500:ルーティングテーブル
10:イベント配信ネットワーク
11、12:複合イベント処理装置
50〜55:オーバレイノード
56:サブスクライブ端末
100:オーバレイネットワーク
110:主制御部
111:複合イベント検出部
112:複合イベント履歴管理部
113、123:仮想記憶管理部
500:ルーティングテーブル
Claims (8)
- イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークと、前記イベント配信ネットワークに接続される端末装置とからなる複合イベント配信システムであって、
前記ノードの少なくとも一つは、
前記端末装置から複合イベント条件式の要素に含まれるイベントを受信した場合、前記受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す複合イベント検出部と、前記複合イベント検出部に対し、前記第1のアプリケーションインタフェースを提供するとともに、前記受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、前記配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す受信イベント履歴管理部とを備え、
前記他ノードは、
前記受信イベント履歴管理部に対し、前記第2のアプリケーションインタフェースを提供するとともに、前記受信イベント履歴管理部からの呼び出しに応じて、指定されたイベントを保持する前記記憶領域の確保を行う仮想記憶管理部を備え、
前記受信イベント履歴管理部は、
前記他ノードに確保された記憶領域を用いて前記受信したイベントの保持し、読み出し、又は置換を行う
ことを特徴とする複合イベント配信システム。 - 前記イベント配信ネットワークを、前記受信イベントの配信パスが定義されたルーティングテーブルを持つオーバレイノードを含むオーバレイネットワーク上に構築し、
前記受信イベント履歴管理部は、
前記他ノードの仮想記憶管理部が提供する第2のアプリケーションインタフェースを呼び出し、前記オーバレイネットワークを介して受信したイベントを保持し、読み出し、又は置換することを特徴とする請求項1記載の複合イベント配信システム。 - 前記受信イベント履歴管理部は、
前記他ノードの仮想記憶管理部に転送されたイベントを保持し、読み出し、置換する際に、前記オーバレイノードにあるルーティンクテーブルの配信パスを参照し、前記複合イベントの送信元となるオーバレイネットワークノードの仮想記憶管理部が管理する記憶領域を対象に、前記受信したイベントを保持し、読み出し、又は置換することを特徴とする請求項2記載の複合イベント配信システム。 - イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークに接続される複合イベント処理装置であって、
受信したイベントが複合イベント条件式の要素に含まれる場合、前記受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す複合イベント検出部と、
前記複合イベント検出部に対し、前記第1のアプリケーションインタフェースを提供するとともに、前記受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、前記配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す受信イベント履歴管理部と、
前記受信イベント履歴管理部に対し、前記第2のアプリケーションインタフェースを提供するとともに、前記受信イベント履歴管理部からの呼び出しに応じて、指定されたイベントを保持する前記記憶領域の確保を行う仮想記憶管理部と
を備えたことを特徴とする複合イベント処理装置。 - イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークと、前記イベント配信ネットワークに接続される端末装置とからなる複合イベント配信システムにおける複合イベント処理方法であって、
前記端末装置から複合イベント条件式の要素に含まれるイベントを受信した場合、前記受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す第1のステップと、
前記呼び出しに基づき提供される前記第1のアプリケーションインタフェースに基づき、前記受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、前記配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す第2のステップと、
前記呼び出しに基づき前記第2のアプリケーションインタフェースを提供するとともに、前記呼び出しに応じて、前記他ノードに、指定されたイベントを保持する前記記憶領域の確保を行う第3のステップと、
前記提供された第2のアプリケーションインタフェースに基づき、前記他ノードに確保された記憶領域を用いて前記受信したイベントの保持し、読み出し、又は置換を行う第4のステップと
を有することを特徴とする複合イベント処理方法。 - 前記イベント配信システムが、前記イベント配信ネットワークを、前記受信イベントの配信パスが定義されたルーティングテーブルを有するオーバレイノードを含むオーバレイネットワーク上に構築したイベント配信システムであり、
前記第2のステップは、
前記他ノードが提供するアプリケーションインタフェースを呼び出し、前記オーバレイネットワークを介して受信したイベントを保持し、読み出し、又は置換することを特徴とする請求項5記載の複合イベント検出方法。 - 前記第2のステップは、
前記他ノードに転送されたイベントを保持し、読み出し、置換する際に、前記オーバレイノードにあるルーティングテーブルの配信パスを参照し、前記受信したイベントの送信元となるオーバレイネットワークノードが管理する記憶領域を対象に、前記受信イベントを保持し、読み出し、又は置換することを特徴とする請求項6記載の複合イベント処理方法。 - コンピュータ上で実行され、イベント情報の配信パスになる複数のノードを含むイベント配信ネットワークに接続される複合イベント処理装置の複合イベント処理プログラムであって、
前記コンピュータに、
受信したイベントが複合イベント条件式の要素に含まれる場合、前記受信したイベントを保持し、読み出し、又は置換する第1のアプリケーションインタフェースを呼び出す複合イベント検出処理と、
前記第1のアプリケーションインタフェースを提供するとともに、前記受信したイベントを自ノード内に確保された記憶領域に保持し、読み出し、又は置換するか、前記配信パスの前段に位置する他ノードに確保される記憶領域に保持し、読み出し、又は置換する第2のアプリケーションインタフェース呼び出す受信イベント履歴処理と、
前記第2のアプリケーションインタフェースを提供するとともに、前記呼び出しに応じて、指定されたイベントを保持する前記記憶領域の確保を行う仮想記憶管理処理と
を実行させることを特徴とする複合イベント処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009152740A JP5317017B2 (ja) | 2009-06-26 | 2009-06-26 | 複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009152740A JP5317017B2 (ja) | 2009-06-26 | 2009-06-26 | 複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011008614A JP2011008614A (ja) | 2011-01-13 |
JP5317017B2 true JP5317017B2 (ja) | 2013-10-16 |
Family
ID=43565171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009152740A Expired - Fee Related JP5317017B2 (ja) | 2009-06-26 | 2009-06-26 | 複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5317017B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3029581B1 (en) * | 2013-07-30 | 2019-10-09 | Fujitsu Limited | Processing program, processing system, and processing method |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08314875A (ja) * | 1995-03-14 | 1996-11-29 | Mitsubishi Electric Corp | 協調分散処理方法、および分散共有メモリ監視装置、分散共有メモリネットワーク追跡装置、分散共有メモリネットワーク設定支援装置 |
JPH11259310A (ja) * | 1998-03-09 | 1999-09-24 | Hitachi Ltd | 階層化管理におけるイベント格納領域の有効利用方法 |
-
2009
- 2009-06-26 JP JP2009152740A patent/JP5317017B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011008614A (ja) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109618005B (zh) | 调用服务器的方法和代理服务器 | |
US11888794B2 (en) | Method and system for resolving producer and consumer affinities in interaction servicing | |
AU2007286155B2 (en) | Distributing services in graph-based computations | |
CN107431664B (zh) | 消息传递系统和方法 | |
US8122427B2 (en) | Decentralized system services | |
US8914804B2 (en) | Handling queues associated with web services of business processes | |
US8719780B2 (en) | Application server with a protocol-neutral programming model for developing telecommunications-based applications | |
CN108270818B (zh) | 一种微服务架构系统及其访问方法 | |
WO2016115735A1 (en) | Processing high volume network data | |
US20070013948A1 (en) | Dynamic and distributed queueing and processing system | |
JP5104489B2 (ja) | 分散イベント検出システム、分散イベント検出方法、及び分散イベント検出用プログラム | |
CA2847749A1 (en) | Marketplace for timely event data distribution | |
CN104205756A (zh) | 并发进程执行 | |
EP2756475A2 (en) | Distributing multi-source push notifications to multiple targets | |
Da et al. | Kalimucho: middleware for mobile applications | |
US20130066980A1 (en) | Mapping raw event data to customized notifications | |
JP2010009380A (ja) | バスシステム | |
US8694462B2 (en) | Scale-out system to acquire event data | |
CN109558239A (zh) | 一种任务调度方法、装置、系统、计算机设备和存储介质 | |
JP5317017B2 (ja) | 複合イベント配信システム、複合イベント処理装置、複合イベント処理方法、及び複合イベント処理プログラム | |
Wang et al. | A chemistry-inspired middleware for self-adaptive service orchestration and choreography | |
Aziz et al. | Data integration models for heterogeneous industrial systems: A conceptual analysis | |
Hernández et al. | A reliable and scalable service bus based on Amazon SQS | |
Kaur et al. | Event Driven Micro-services based Information Bot | |
Morales Dominguez et al. | A rendezvous mobile broker for pub/sub networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120511 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130612 |
|
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: 20130617 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130630 |
|
LAPS | Cancellation because of no payment of annual fees |