JP5785385B2 - イベント処理ネットワークならびに関連する方法および記憶媒体(イベント処理ネットワーク) - Google Patents

イベント処理ネットワークならびに関連する方法および記憶媒体(イベント処理ネットワーク) Download PDF

Info

Publication number
JP5785385B2
JP5785385B2 JP2010260175A JP2010260175A JP5785385B2 JP 5785385 B2 JP5785385 B2 JP 5785385B2 JP 2010260175 A JP2010260175 A JP 2010260175A JP 2010260175 A JP2010260175 A JP 2010260175A JP 5785385 B2 JP5785385 B2 JP 5785385B2
Authority
JP
Japan
Prior art keywords
event
event processing
processing network
network
agents
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.)
Active
Application number
JP2010260175A
Other languages
English (en)
Other versions
JP2011113566A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2011113566A publication Critical patent/JP2011113566A/ja
Application granted granted Critical
Publication of JP5785385B2 publication Critical patent/JP5785385B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
本願は、2009年11月23日出願の「Event Processing」という名称の出願第12/623595号、整理番号IN920080177US1に関連する。
イベント・ドリブン(ED)システムは、分離・アーキテクチャに従うことにより、イベントを感知し、イベントに応答することができる。イベント処理ネットワーク(EPN)は、EDシステムの実行の代表的なものである。EPNは、いくつかのイベントの複雑なパターン、イベント相関および抽象化、イベント階層、および因果関係、メンバーシップ、タイミングなどのイベント間の関係、およびイベント・ドリブン・プロセスの検出などの技法を使用する。
通常、EPNは、通信チャネルによって相互接続された1組のイベント処理エージェント(EPA)またはノードからなる。EPNは、こうしたビジネスの必要に基づいてEPA間の動的経路を作成および選択することによってイベント処理を実行する。イベントのプロデューサが1つだけあり、イベントのレシーバが1つだけある場合、EPA間の経路の識別は自明である。イベント処理要件に基づいて、EPNを動的に修正する必要がある場合、問題がより多く伴う。所与のノードでのルーティング決定は、イベント情報、ノードでの処理結果、または詳細について例えばイベント・レジストリやリポジトリなどの外部リソースを調べること、あるいはそれらの組合せに基づいて行われる。
典型的なEDシステムの分離・アーキテクチャでは、イベント・プロデューサは、イベント処理エージェントまたはイベント・コンシューマについての事前の知識を持たない。通常、1組のEPAからなるEPNの動的関連付けは、イベントがEPNに到着するか或いはイベントがEPNで受信されたことに応じて、行うことができる。何らかの特定のイベントによって取得されるルートは、イベントのタイプ、イベントに対応するコンテンツ、およびその関連メタデータに依存する。EPNに関与する各EPAは、実行時にEPAがEPN内部で起動されるシーケンスを変更することができる。
米国特許出願第12/623595号
本発明の実施形態は、ハイブリッド・イベント処理ネットワーク(ハイブリッドEPN)を構築する方法、システム、およびコンピュータ・プログラムに関する。
本発明の一実施形態によれば、ハイブリッドEPNを構築する方法が開示される。ハイブリッドEPNは、少なくとも1つのイベント処理エージェント(EPA)を有する。
ハイブリッドEPNでは、第1の組のEPAが宣言により定義され、第2の組のEPAがインターフェースを介して実行時に動的に定義される。
別の実施形態によれば、イベント・ルータ(ER)が定義され、ERはERインターフェースも含む。
さらに別の実施形態によれば、イベント処理コンテキスト(EPC)が定義される。EPCは、ハイブリッドEPNのEPAへのポインタを含む。
本発明の別の実施形態によれば、ハイブリッドEPNの少なくとも1つのEPAについてEPAインターフェースが定義される。
本発明の別の実施形態による、ハイブリッドEPNをデプロイする方法は、ハイブリッドEPNをロードするステップと、EPN構造を構築するステップと、EPN構造のノードの索引を作成するステップとを含む。当該方法は、イベント・ソースでのイベント発生に応答してハイブリッドEPN内のイベントを表現するステップと、イベントに基づいてハイブリッドEPNから通知を受信するステップと、イベント・チャネル内に通知を発行するステップとをさらに含む。ハイブリッドEPNをデプロイする方法は、ハイブリッドEPN内で受信されたイベントを伝播するステップと、ハイブリッドEPN内のイベントに関連する後続のEPAを求めるステップと、ハイブリッドEPNの最後の要素に達するまで、ハイブリッドEPN内の後続のEPAにイベントを伝播するステップとをさらに含む。
本発明のさらに別の実施形態によれば、イベント処理ネットワーク(EPN)は、宣言により構成された第1の組のEPAと、実行時に動的に修正されるように構成された第2の組のEPAとを含み、得られる第1の組のEPAと第2の組のEPAの組合せが、ハイブリッドEPNを形成する。
本発明の別の実施形態によれば、ハイブリッドEPNは、イベント・ルータ(ER)と、第2の組のEPAを実行時に動的に修正するように構成されたERインターフェースと、EPAへのポインタを含むように構成されたイベント処理コンテキスト(EPC)と、ハイブリッドEPNの少なくとも1つのEPAのためのEPAインターフェースとをさらに含む。
本発明の別の態様は、ハイブリッド・イベント処理ネットワーク(EPN)を構築するコンピュータ・プログラムを開示する。ハイブリッドEPNは少なくとも1つのイベント処理エージェント(EPA)を有し、ハイブリッドEPNは、宣言により定義される第1の組のEPAと、インターフェースを介して実行時に動的に定義される第2の組のEPAとからなる。
本発明のさらに別の態様は、イベント処理のためのハイブリッドEPNの配置を開示する。他の態様および実施形態も開示される。
以下の略図を参照しながら、本発明の実施形態を以下で例として詳細に説明する。
イベント処理ネットワーク(EPN)の概略の例示的実施形態を示す図である。 図1で記述されるEPNのツリー構造の例示的実施形態を示す図である。 図1で記述されるEPNに対応するXML定義の例示的実施形態を示す図である。 図1で記述されるEPNに対応するXML定義の例示的実施形態を示す図である。 ハイブリッドEPNを使用するイベント処理システムの詳細な概略の例示的実施形態を示す図である。 ハイブリッドEPNの作成の流れ図の例示的実施形態を示す図である。 イベントを実行時に動的にルーティングするようにハイブリッドEPNを配置する流れ図の例示的実施形態を示す図であり、例示的ハイブリッドEPNが図5に従って構築されている。
本発明の実施形態は、分離され、分散された方式で、イベント処理のためにハイブリッドEPNを構築および配置する方法およびシステムを開示する。ハイブリッドEPNは、EDシステムのためのイベント処理を実施するように構成される。
イベント処理は、イベントに関して実施されるコンピューティングのプロセスである。イベント処理は、イベントの読取り、アクションを実施することによってイベントに応答すること、イベントの修正、イベントの作成、イベントの破棄などの操作を含むことができる。イベントの処理は、様々なカテゴリに分類することができる。イベント処理の例示的実施形態は「単純イベント処理」でよく、単純イベント処理は、イベント変換、集約、スプリッタ、情報付与(enrichment)、フィルタリングなどを含む。イベント処理の別の例示的実施形態は「複合イベント処理」でよく、イベント間の関係、例えばイベント集約(イベントのパターンが上位レベルのイベントを示唆する)、因果関係(あるイベントが別のイベントによって引き起こされる)、およびパターン検出を含む。イベント処理のさらに別の例示的実施形態は、インタイム意思決定を可能にする、企業内の情報および企業を取り巻く情報のリアル・タイム・フローに関する「ストリーム・イベント処理」である。「インテリジェント・イベント処理」と呼ばれるイベント処理のタイプは通常、イベント履歴および確率に基づいて様々なタイプの推論および予測に対処する。
例えば限定はしないが金融市場、電気通信、医療、自動車、化学および石油、エネルギー、国防、ならびに小売および流通を含む複数の産業分野からのイベント処理要件の分析によれば、典型的な解決策として、さまざまなタイプのイベントを混合処理する能力が必要とされることが示される。こうした処理能力は、さまざまなソフトウェア・コンポーネントのセットによって提供され、各コンポーネントは情報技術(IT)環境内で分散していても良い。
ハイブリッドEPNは、部分的に静的に(宣言によって)、部分的に動的に(プログラムされることにより)定義することができ、その中で、ノードは、あるイベントの処理経路を、当該イベント関する処理要件に基づいて、実行時に変更することができる。
静的EPNでは、実行時にフローを変更することに関し柔軟性が低い。一方、動的EPNで構築されたEDシステムでは、開発者は実行時にプログラムによってEPAを関連付けることができるが、その結果、最も基本的なネットワークであっても開発者は関連付けのためのコードを実装する必要があり、開発者にとってプログラミングの複雑さが増すだろう。必要に応じて実行時に修正することができ、プログラミング負荷を最適化することもできる、静的でも動的でもあるハイブリッドEPNを構築する周知の方法はない。
プログラミング負荷を最適化するために、本発明のいくつかの実施形態は、開発者が宣言によりEPNを定義することを可能にし、次いでユーザがインターフェースを介して実行時にEPNを変更することを可能にする。インターフェースの一例は、アプリケーション・プログラミング・インターフェース(API)でよい。この機構は汎用的であり、特定のタイプのイベント・モデリングに縛られないので、本発明のいくつかの実施形態は、イベントに対処し、複数の製品にわたって普及している複数の処理能力を活用するために、業界に依存しないイベント・モデリング(industry agnostic event modeling)および実行環境(イベント・ミドルウェア)を生み出す。システムは、複数のイベント・ソース/ストリーム、複数のイベント・タイプ表現、さらにはイベントに対するルール・ドリブン反応をサポートすることができる。
本発明のいくつかの実施形態は、複数の処理エージェントにわたるイベント処理の決定性完了(deterministic completion)を実装することができる。また、実行時に、関与するノードによって、イベント処理ネットワークを変更することもできる。イベントを任意の処理エージェントにルーティングする、このような動的ルーティング能力は、イベント情報、ノードでの処理結果、または詳細に関しイベント・レジストリやリポジトリのような外部リソース(メタデータ)への問い合わせ、あるいはそれらの組合せに基づく。
本発明のある実施形態の様々な構成要素が、以下で定義される。
イベント処理ネットワーク(EPN)−EPNがイベント処理エージェントのネットワークを定義する。EPNは、正式にはノードおよびエッジの接続されたグラフとして、EPN:={N,E}と表現される。ただし「N」は、グラフ内のノード(頂点)を表し、「E」はグラフ内のエッジを表す。さらに、グラフ内のノードNは、N:={P,A,C}と表すことができる。ただし「P」はイベント・プロデューサ(ソース)であり、「A」はイベント処理エージェントであり、「C」はイベント・コンシューマ(シンク)である。グラフ内のエッジEは、ソースまたは処理エージェントをコンシューマまたは別の処理エージェントに接続する順序付き対である、E:={(x,y)|x χ S,P;y χ P,C}と表すことができる。
イベント・プロデューサ(ソース)−イベント・プロデューサは、現実世界の実体、例えばイベントを生成するイベント・ソースを表す。
イベント処理エージェント(EPA)−EPAは、イベントをそれと共に処理すべきであるビジネスロジックを定義する。EPAは通常、指定された論理/規則に基づいてイベントを処理し、新しいイベントを生成することもできる。
イベント・コンシューマ−イベント・コンシューマは、イベントを消費し、イベントに対するアクションを実施する現実世界の実体をモデル化する。
イベント・チャネル−イベント・チャネル(イベント・トピックとも呼ばれる)は、イベント・プロデューサから種々のEPAへ、最終的にはイベント・コンシューマへの、特定のタイプのイベントのためのトランスポートである。
イベント処理コンテキスト(EPC)−EPCは、その中でイベントが処理されるべきコンテキストである。EPCはコンテナによって維持され、使用される。各イベントについて、固有のEPCを作成することができ、イベントの全ライフ・サイクルを通じてこの固有のEPCをイベントと関連付けることができる。任意の処理ノードは、イベント処理コンテキスト内に情報を格納することができ、イベント処理コンテキスト内の情報にアクセスすることができる。
イベント・メタデータ−イベント・メタデータは、イベント・プロデューサ、処理エージェント、および加入者に対して利用可能にされるイベント・タイプ指定およびイベント処理規則からなる。
イベント・ルータ(ER)−イベント・ルータは通常、EPN定義をロードし、EPN定義に従ってイベントをルーティングする任を担うソフトウェア・コンポーネントである。イベント・ルータ(ERインターフェース)のインターフェースが、イベントのルーティングのために使用される。
図1は、イベント処理ネットワーク(EPN)の全体的概略100の例示的実施形態を示す。EPNは、イベント・プロデューサP 102、イベント・コンシューマC 122、およびこの場合はブロック103内に表されている9個のEPA A104からA120として例示的に示されているいつかの例示的イベント処理エージェントEPAからなる。EPAの数が例示的実施形態に示されるような9個だけに制限されないことは当業者には明らかであるはずである。P102からC122への矢印の向きは、イベントの流れを示す。ノードAの後に複数のEPAがあるとき、例えばA104の後にA106およびA118があるとき、Aの後に実行されるガード条件がある可能性があり、この評価の結果に基づいて、イベントが後続のノードのうちの1つにルーティングされることを意味する。図1のA116からA118の間の点線は、ユーザが実行時に条件付きでA116からA118にイベントをルーティングすることを必要としていることを示す。イベントのこのルーティングは通常、ERインターフェースでサポートされる。
図2は、図1に記述されるEPN100のツリー構造200を示すEPN構造の例示的実施形態を示す。ツリー構造200は、図1で定義されるEPNの静的部分に対応する。ツリー構造200は、ルート・ノード(R)202、無条件実行ノード(U)204、212、および条件付き実行ノード(C)208、218からなることができる。図1のEPN100のEPAに対応する9個のノードA(206、216、214、224、226、228、220、222、210)が、円で表される。ツリー構造200を横断する例示的方法では、標準レフト・ファースト・アルゴリズム(modified standard left first algorithm)を変形して使用することができる。ツリー横断のためのアルゴリズムは、条件の評価に基づいて、ツリー構造内の単一の子ノードだけを訪問し、EPNで指定されるEPAのシーケンスを得ることができるような方式で、条件付きノードで修正することができる。本明細書で定義されるツリー構造200は図1のEPN100と同等であることを当業者は理解されよう。
図3及び図4は、図1で記述されるEPNに対応する例示的XML定義を示す。開発者がEPNを手動で、または適切なツールを使用することによって定義するのを援助するために、XMLスキーマが作成される。スキーマは、イベント・タイプ、ルーティング条件、処理エージェント、必要なアクションなどのパラメータをはっきりと示す。
図5は、前述の本発明の様々な実施形態を実装するのに使用することのできるコンピュータ・システム400のブロック図の例示的実施形態である。ある実施形態では、コンピュータ・システム400を図1のハイブリッドEPN100として使用することができる。コンピュータ・システム400はプロセッサ404を含む。図4は単一のプロセッサを示すが、必要に応じて複数のプロセッサを含めることができることを当業者は理解されよう。プロセッサ404が通信インフラストラクチャ402(例えば、通信バス、クロスオーバ・バー、またはネットワーク)に接続される。様々なソフトウェア実施形態がこの例示的コンピュータ・システムに関して説明される。この説明を読んだ後に、他のコンピュータ・システムまたはコンピュータ・アーキテクチャ、あるいはその両方を使用して本発明をどのように実装するかが当業者には明らかとなるであろう。
例示的コンピュータ・システム400は、ディスプレイ・ユニット410上に表示するために通信インフラストラクチャ402(またはフレーム・バッファ、図示せず)からグラフィックス、テキスト、および他のデータを転送するように構成されたディスプレイ・インターフェース408を含むことができる。コンピュータ・システム400はまた、ランダム・アクセス・メモリ(RAM)でよいメイン・メモリ406をも含み、二次メモリ412をも含むことができる。二次メモリ412は、例えばハード・ディスク・ドライブ414、またはフロッピィ・ディスク・ドライブ、磁気テープ・ドライブ、光ディスク・ドライブなどを表す取外し可能ストレージ・ドライブ416、あるいはその両方を含むことができる。取外し可能ストレージ・ドライブ416は、当業者には周知の方式で、取外し可能ストレージ・ユニット418から読み取り、または取外し可能ストレージ・ユニット418に書き込み、あるいはその両方を行う。取外し可能ストレージ・ユニット418は、取外し可能ストレージ・ドライブ416で読み取られ、書き込まれる、例えばフロッピィ・ディスク、磁気テープ、光ディスクなどを表す。理解するであろうが、取外し可能ストレージ・ユニット418は、コンピュータ・ソフトウェアまたはデータあるいはその両方が格納されたコンピュータ使用可能記憶媒体を含む。
例示的実施形態では、二次メモリ412は、コンピュータ・プログラムまたは他の命令をコンピュータ・システムにロードすることを可能にする他の類似の手段を含むことができる。そのような手段は、例えば取外し可能ストレージ・ユニット422およびインターフェース420を含むことができる。そのようなものの例は、(ビデオ・ゲーム装置で見られるような)プログラム・カートリッジおよびカートリッジ・インターフェース、取外し可能メモリ・チップ(EPROM、PROMなど)および関連ソケット、ならびに取外し可能ストレージ・ユニット422からコンピュータ・システム400にソフトウェアおよびデータを転送することを可能にする他の取外し可能ストレージ・ユニット422およびインターフェース420を含むことができる。
コンピュータ・システム400はまた、通信インターフェース424をも含むことができる。通信インターフェース424は、コンピュータ・システムと外部装置との間でソフトウェアおよびデータを転送することを可能にする。通信インターフェース424の例は、モデム、ネットワーク・インターフェース(イーサネット(R)・カードなど)、通信ポート、PCMCIAスロットおよびカードなどを含むことができる。通信インターフェース424を介して転送されるソフトウェアおよびデータは信号の形態であり、信号は、例えば電子信号、電磁信号、光信号、または通信インターフェース424で受信することのできる他の信号でよい。こうした信号は、通信経路(すなわちチャネル)426を介して通信インターフェース424に供給される。チャネル426は信号を搬送し、ワイヤもしくはケーブル、光ファイバ、電話線、携帯電話リンク、RFリンク、または他の通信チャネル、あるいはそれらの組合せを使用して実装することができる。
本文書では、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」という用語が、メイン・メモリ406および二次メモリ412、取外し可能ストレージ・ドライブ416、ハード・ディスク・ドライブ414内に設置されたハード・ディスクなどの媒体を全般的に指すのに用いられる。こうしたコンピュータ・プログラム製品は、コンピュータ・システムにソフトウェアを提供する手段である。コンピュータ可読媒体は、コンピュータ・システムがコンピュータ可読媒体からデータ、命令、メッセージまたはメッセージ・パケット、および他のコンピュータ可読情報を読み取ることを可能にする。コンピュータ可読媒体は、例えば、フロッピィ、ROM、フラッシュ・メモリ、ディスク・ドライブ・メモリ、CD−ROM、他の永続ストレージなどの不揮発性メモリを含むことができる。コンピュータ可読媒体を使用して、例えば、コンピュータ・システム間でデータやコンピュータ命令などの情報を移送することができる。さらに、コンピュータ可読媒体は、コンピュータがそのようなコンピュータ可読情報を読み取ることを可能にすることができる。
コンピュータ・プログラム(本明細書ではコンピュータ制御論理とも呼ばれる)が、メイン・メモリ406または二次メモリ412あるいはその両方に格納される。コンピュータ・プログラムは、通信インターフェース424を介して受け取ることもできる。そのようなコンピュータ・プログラムは、実行されたときに、コンピュータ・システムが本明細書で論じられる本発明の例示的実施形態の特徴を実施することを可能にすることができる。具体的には、コンピュータ・プログラムは、実行されたときに、プロセッサ404がコンピュータ・システム400の特徴を実施することを可能にする。したがって、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラを表す。
図6は、図1に示されるハイブリッドEPN100の作成の流れ図500の例示的実施形態を示す。ステップ502では、第1の組のEPAが宣言によりに定義され、第2の組のEPAが動的に定義される。ハイブリッドEPN100の作成はまた、実行時に第2の組のEPAを動的に変更するインターフェースを作成することもさらに含む。ハイブリッドEPNの静的部分(宣言により定義)および動的部分(プログラムにより定義)が識別されると、ステップ504では、ハイブリッドEPNがイベント・ルータ(ER)によってロードされる。ステップ506では、ERがハイブリッドEPNのEPN構造、例えばツリー構造をさらに構築し、一実施形態では、ハイブリッドEPNのEPAに関する索引を作成することを含む。ステップ508では、ERインターフェースを使用して、第2の組のEPAが実行時に動的に定義される。ステップ510では、EPCが定義される。このEPCは、ハイブリッドEPNのEPAへのポインタを含む。ステップ512では、ハイブリッドEPNの少なくとも1つのEPAに関するEPAインターフェースが定義される。EPAインターフェースは、ハイブリッドEPNのイベント・フローを変更するように構成される。ステップ512では、ハイブリッドEPNをイベント処理のために使用する準備ができている。
図7は、図6のステップ512の終わりに構築されたハイブリッドEPNを、具体的には一実施形態においてはそのハイブリッドEPNをイベント処理のために使用する準備ができた時点でデプロイする流れ図600の例示的実施形態を示す。ハイブリッドEPNは、イベントを実行時に動的にルーティングするのに使用される。例えばEPNを定義中にユーザによって指定される固有識別子による任意のノードの識別を容易にし、その特定のノードにイベントをルーティングするために、ERは、EPAの固有識別子に基づいてツリー内のノードの索引も作成し、EPAの固有識別子は、EPNをロードし、EPNをツリー構造に変換している間にERによって準備される。この索引は、ERと共に利用可能である。
ステップ601は、ハイブリッドEPNを使用する準備ができていることを示す。物理イベントがイベント・ソースで生じたとき、ステップ602では、イベント・プロデューサがイベント・ソースでのイベント発生を検出し、抽象化する。ステップ604では、イベント・プロデューサがイベントを表現し、603を介してイベントをイベント・ファクトリ606に通信する。さらにステップ604では、イベント・プロデューサが、605を介してイベント・ファクトリ606からイベント通知607を受信する。イベント通知607は、それ自体の中にイベント情報を包む。イベント・ファクトリ606はEPCも生成する。EPCは、所与のイベントについて固有であり、イベントのライフ・サイクル全体の間、イベントと関連付けられたままとなる。EPCはまた、イベントを処理するのに必要な次のEPA(後続のEPA)へのポインタをも有する。
当初、ポインタは設定されない。EPCが作成されるとき、このポインタの値がヌルに設定される。ステップ608では、イベント・プロデューサが、所与のイベント・タイプについてイベント通知607をイベント・チャネル内に発行する。次いで、イベント・チャネルは、関連するERにイベントを転送する。ステップ610では、イベントがハイブリッドEPN内で伝播される。ステップ612では、ハイブリッドEPN内のイベントに関連する後続のEPAが求められる。ERは、EPCと共にチェックし、現ステージでイベントを処理するための後続のEPAを見つける。
例示的実施形態では、ステップ612でのいくつかの条件の処理が以下のように記述される。
A.後続のEPAへのポインタがヌルである場合、ツリー構造のルート要素へのポインタが設定され、次いでイベントがチャネルにプッシュされる。そうでない場合、
B.後続のEPAへのポインタがヌルではない場合、ツリー構造内のノードのタイプをチェックする。
i.前のEPAがコンテキスト中のポインタを(上書きAPIを使用して)上書きした場合、任意のループを中断し、イベントをチャネルにプッシュする。そうでない場合、
ii.ノードがツリー構造の非リーフ・ノードである場合、この非リーフ・ノードが条件付きノードであるか、それとも無条件ノードであるかを判定する。
a.非リーフ・ノードが条件付きノードである場合、条件を実行し、得られるEPAへのポインタを設定し、チャネルにイベントをプッシュする。
b.非リーフ・ノードが無条件ノードである場合、左から右への各子要素について、子要素へのポインタを設定し、イベントをチャネルにプッシュする。そうでない場合、
iii.ノードがリーフ・ノードである場合、そのEPAにイベントをルーティングする。EPAがルーティング経路を修正する必要がある場合、EPAは、ERの上書きAPIを起動することができる。
ステップ612の論理を使用して後続のEPAを識別したので、ステップ614では、チェックが行われ、EPN内の最後の要素(イベント・コンシューマ)に達したかどうかが判定される。ステップ612での後続のEPAがEPN内の最後の要素(イベント・コンシューマ)である場合、ステップ616は、図1のイベント・コンシューマ122がイベントを消費し、イベントに関するアクションを実施することを示す。後続のEPAが図1のイベント・コンシューマ122ではない場合、ステップ610で記述されるように、イベントがさらにハイブリッドEPNの後続のEPAに伝播される。
本発明の一実施形態はさらに、上記で示され詳細に説明された様々な実施形態で説明された、EPAを含むEPNを構築する方法を実施する機械可読命令のプログラムを有形に具体化する記憶媒体を提供する。
本発明の一実施形態では、2つのEPAまたはノードが互いに直接的に通信しない。イベントがイベント・チャネルを介してプッシュされ、EPAが、注目するイベントを受信する。システムのデカップルされた挙動を保持する特定のチャネルから注目のイベントをプルするのは、次のイベントEPAの責任である。本発明の1つまたは複数の実施形態では、構築される初期ツリー構造は、各EPAの索引として働くことができ、他の利用可能なEPAに関して照会し、したがって必要を満たすために必要な動的ルーティングを決定する。
本明細書で使用される用語は、例示的実施形態を説明するためのものであり、本発明を限定するものではない。本明細書では、単数形「a」、「an」、および「the」は、文脈がそうでないことをはっきりと示すのでない限り、複数形も含むものとする。「含む」または「備える」という用語は、本明細書で使用されるとき、述べられる特徴、完全体、ステップ、操作、要素、または構成要素、あるいはそれらの組合せの存在を指定するが、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、またはそれらのグループ、あるいはそれらの組合せの存在または追加を除外するものではないことをさらに理解されよう。
本発明の例示的実施形態を説明したが、現在の当業者と将来の当業者がどちらも、以下の特許請求の範囲内に包含される様々な改良および拡張を行えることを理解されよう。こうした特許請求の範囲は、最初に述べた本発明に関する適切な保護を維持するように解釈されるべきである。
100 イベント処理ネットワーク(EPN)
102 イベント・プロデューサP
122 イベント・コンシューマC
200 ツリー構造
202 ルート・ノード(R)
204 無条件実行ノード(U)
212 無条件実行ノード(U)
208 条件付き実行ノード(C)
218 条件付き実行ノード(C)
400 コンピュータ・システム
402 通信インフラストラクチャ
404 プロセッサ
406 メイン・メモリ
408 ディスプレイ・インターフェース
410 ディスプレイ・ユニット
412 二次メモリ
414 ハード・ディスク・ドライブ
416 取外し可能ストレージ・ドライブ
418 取外し可能ストレージ・ユニット
420 インターフェース
422 取外し可能ストレージ・ユニット
424 通信インターフェース
426 通信経路

Claims (8)

  1. イベント処理エージェントを含むイベント処理ネットワークを構築する方法であって、コンピュータ・システムが、
    第1の組のイベント処理エージェントを宣言的に定義するステップと、
    第2の組のイベント処理エージェントを動的に定義するステップと
    前記第1の組のイベント処理エージェントと前記第2の組のイベント処理エージェントの組み合わせによって形成されるイベント処理ネットワークをロードするステップと、
    前記イベント処理ネットワークのイベント処理ネットワーク構造を構築するステップと、
    前記イベント処理ネットワークのイベント処理エージェントについて索引を作成するステップと、
    実行時に前記第2の組のイベント処理エージェントの組み合わせを動的に定義するイベント・ルータ・インターフェースを構成するステップと、
    前記イベント処理ネットワークの少なくとも1つのイベント処理エージェントについて、前記イベント処理ネットワークのイベント・フローを変更するイベント処理エージェント・インターフェースを定義するステップと
    を含む、方法。
  2. イベント処理コンテキストを定義するステップであって、前記イベント処理コンテキストが、前記イベント処理ネットワークの前記イベント処理エージェントへのポインタを含むステップをさらに含む請求項1に記載の方法。
  3. イベント処理エージェントを含むイベント処理ネットワーク内のイベント処理のための方法であって、コンピュータ・システムが、
    第1の組のイベント処理エージェントを宣言的に定義するステップと、
    第2の組のイベント処理エージェントを動的に定義するステップと、
    前記第1の組のイベント処理エージェントと前記第2の組のイベント処理エージェントの組み合わせによって形成されるイベント処理ネットワークをロードするステップと、
    前記イベント処理ネットワークのイベント処理ネットワーク構造を構築するステップと、
    前記イベント処理ネットワークのイベント処理エージェントについて索引を作成するステップと、
    実行時に前記第2の組のイベント処理エージェントの組み合わせを動的に定義するイベント・ルータ・インターフェースを構成するステップと、
    前記イベント処理ネットワークの少なくとも1つのイベント処理エージェントについて、前記イベント処理ネットワークのイベント・フローを変更するイベント処理エージェント・インターフェースを定義するステップと、
    イベント・ソースでのイベント発生に応答して、イベント処理ネットワーク内の前記イベントをイベント・ファクトリに通信するステップと、
    前記イベント・ファクトリから前記イベントに基づく通知を受信するステップと、
    イベント・チャネル内に前記通知を発行するステップと
    を含む方法。
  4. 前記通知が、イベント通知およびイベント処理コンテキストのうちの少なくとも1つを含む請求項に記載の方法。
  5. 前記イベント処理コンテキストが、前記イベント処理ネットワークのイベント処理エージェントへのポインタを有する請求項に記載の方法。
  6. 前記イベント処理ネットワーク内で受信される前記イベントを伝播するステップと、
    前記イベント処理ネットワーク内の前記イベントに関連する後続のイベント処理エージェントを求めるステップと、
    前記イベント処理ネットワークの最後の要素に達するまで、前記イベント処理ネットワーク内の前記後続のイベント処理エージェントに前記イベントを伝播するステップと
    をさらに含む請求項3〜5のいずれか1項に記載の方法。
  7. イベント処理エージェントを含むイベント処理ネットワークを構築する方法を実施するためにデジタル処理機器で実行可能な機械可読命令を含むプログラムが記憶された記憶媒体であって、前記機械可読命令が、前記デジタル処理機器に対し、
    第1の組のイベント処理エージェントを宣言的に定義するステップと
    第2の組のイベント処理エージェントを動的に定義するステップと、
    前記第1の組のイベント処理エージェントと前記第2の組のイベント処理エージェントの組み合わせによって形成されるイベント処理ネットワークをロードするステップと、
    前記イベント処理ネットワークのイベント処理ネットワーク構造を構築するステップと、
    前記イベント処理ネットワークのイベント処理エージェントについて索引を作成するステップと、
    実行時に前記第2の組のイベント処理エージェントの組み合わせを動的に定義するイベント・ルータ・インターフェースを構成するステップと、
    前記イベント処理ネットワークの少なくとも1つのイベント処理エージェントについて、前記イベント処理ネットワークのイベント・フローを変更するイベント処理エージェント・インターフェースを定義するステップと
    を実行させる、記憶媒体。
  8. イベント・ソースでのイベント発生に応答して、イベント処理ネットワーク内の前記イベントをイベント・ファクトリに通信し、
    前記イベント・ファクトリから前記イベントに基づく通知を受信し、
    イベント・チャネル内に前記通知を発行し、
    前記イベント処理ネットワーク内で受信される前記イベントを伝播し、
    前記イベント処理ネットワーク内の前記イベントに関連する後続のイベント処理エージェントを求め、
    前記イベント処理ネットワークの最後の要素に達するまで、前記イベント処理ネットワーク内の前記後続のイベント処理エージェントに前記イベントを伝播するように構成された機械可読命令をさらに含む請求項に記載の記憶媒体。
JP2010260175A 2009-11-23 2010-11-22 イベント処理ネットワークならびに関連する方法および記憶媒体(イベント処理ネットワーク) Active JP5785385B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/623,673 US9977702B2 (en) 2009-11-23 2009-11-23 Event processing networks
US12/623673 2009-11-23

Publications (2)

Publication Number Publication Date
JP2011113566A JP2011113566A (ja) 2011-06-09
JP5785385B2 true JP5785385B2 (ja) 2015-09-30

Family

ID=44063055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010260175A Active JP5785385B2 (ja) 2009-11-23 2010-11-22 イベント処理ネットワークならびに関連する方法および記憶媒体(イベント処理ネットワーク)

Country Status (3)

Country Link
US (1) US9977702B2 (ja)
JP (1) JP5785385B2 (ja)
KR (1) KR20110057070A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10687166B2 (en) 2004-09-30 2020-06-16 Uber Technologies, Inc. Obtaining user assistance
US10445799B2 (en) 2004-09-30 2019-10-15 Uber Technologies, Inc. Supply-chain side assistance
US8358976B2 (en) 2006-03-24 2013-01-22 The Invention Science Fund I, Llc Wireless device with an aggregate user interface for controlling other devices
US8234329B2 (en) 2009-11-23 2012-07-31 International Business Machines Corporation Event processing
US9977702B2 (en) 2009-11-23 2018-05-22 International Business Machines Corporation Event processing networks
US8838707B2 (en) * 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
US8533240B2 (en) * 2010-09-22 2013-09-10 International Business Machines Corporation Write behind cache with M-to-N referential integrity
US20130144814A1 (en) * 2011-12-05 2013-06-06 International Business Machines Corporation Conditional probability operator for event processing systems
KR101368173B1 (ko) * 2012-05-31 2014-02-28 주식회사 엘지씨엔에스 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 시스템
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US9552559B2 (en) 2014-05-06 2017-01-24 Elwha Llc System and methods for verifying that one or more directives that direct transport of a second end user does not conflict with one or more obligations to transport a first end user
WO2018053343A1 (en) 2016-09-15 2018-03-22 Oracle International Corporation Managing snapshots and state with micro-batching
US11573965B2 (en) 2016-09-15 2023-02-07 Oracle International Corporation Data partitioning and parallelism in a distributed event processing system
WO2018169430A1 (en) 2017-03-17 2018-09-20 Oracle International Corporation Integrating logic in micro batch based event processing systems
WO2018169429A1 (en) 2017-03-17 2018-09-20 Oracle International Corporation Framework for the deployment of event-based applications
US20230350735A1 (en) * 2022-04-28 2023-11-02 Twilio Inc. Data timeline event processing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694362B1 (en) * 2000-01-03 2004-02-17 Micromuse Inc. Method and system for network event impact analysis and correlation with network administrators, management policies and procedures
EP1120710A3 (en) * 2000-01-25 2005-04-27 Fujitsu Limited Method and apparatus for determining dynamic flow in a distributed system
US7143410B1 (en) * 2000-03-31 2006-11-28 Intel Corporation Synchronization mechanism and method for synchronizing multiple threads with a single thread
US20040128329A1 (en) * 2002-12-31 2004-07-01 International Business Machines Corporation Parallel incremental compaction
US7321908B2 (en) * 2003-07-23 2008-01-22 International Business Machines Corporational Mostly concurrent garbage collection
EP1763776B1 (en) 2004-05-21 2019-07-31 Oracle International Corporation Service oriented architecture
US20050273847A1 (en) 2004-05-21 2005-12-08 Bea Systems, Inc. Programmable message processing stage for a service oriented architecture
US7376684B2 (en) * 2004-06-04 2008-05-20 International Business Machines Corporation Efficient parallel bitwise sweep during garbage collection
US8122006B2 (en) * 2007-05-29 2012-02-21 Oracle International Corporation Event processing query language including retain clause
US20090070786A1 (en) * 2007-09-11 2009-03-12 Bea Systems, Inc. Xml-based event processing networks for event server
US8539511B2 (en) * 2009-10-14 2013-09-17 International Business Machines Corporation Retrospective event processing pattern language and execution model extension
US8234329B2 (en) * 2009-11-23 2012-07-31 International Business Machines Corporation Event processing
US9977702B2 (en) 2009-11-23 2018-05-22 International Business Machines Corporation Event processing networks

Also Published As

Publication number Publication date
KR20110057070A (ko) 2011-05-31
US20110126201A1 (en) 2011-05-26
US9977702B2 (en) 2018-05-22
JP2011113566A (ja) 2011-06-09

Similar Documents

Publication Publication Date Title
JP5785385B2 (ja) イベント処理ネットワークならびに関連する方法および記憶媒体(イベント処理ネットワーク)
US10430735B2 (en) Designer tool for managing cloud computing services
US8954370B2 (en) Policy processor for configuration management
US9558033B2 (en) Constructing and deploying patterns of flows
US10360523B2 (en) System and method for executing business services and enhancing business performance through a business process modeling notation
KR101730513B1 (ko) 태스크 실행 관리
US10320947B2 (en) Method of designing business logic, server performing the same and storage medium storing the same
KR101857510B1 (ko) 소팅
Groote et al. Modelling and analysing software in mCRL2
US10902060B2 (en) Unbounded list processing
CN112166429A (zh) 暴露的信息模型与应用的集成中具有降低复杂度的系统和方法
CA3080113A1 (en) Transforming a specification into a persistent computer program
US11295258B2 (en) Cross domain integration in product lifecycle management
CN117972732B (zh) 基于多特征融合的智能合约漏洞检测方法及系统
US11256486B2 (en) Method and computer program product for an UI software application
CN108710504A (zh) 数据库操作方法及装置
US20110066583A1 (en) Controlling forward chaining execution in a rules system
US20080163224A1 (en) Modeling interrupts in a business process
US8082527B1 (en) Representing the behaviors of a packet processor
Kwiatkowska et al. Symbolic verification and strategy synthesis for linearly-priced probabilistic timed automata
Abdenneji et al. The dynamic composition of independent adaptations including interferences management
WO2022253646A1 (en) Validation logic for opc ua connected devices
US20090055839A1 (en) Systems, methods, and computer products for data oriented aspect programming in message flow
Bresolin et al. Most general property-preserving updates
Vesterli et al. Logic in the Business Layer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141028

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20141114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150115

TRDD Decision of grant or rejection written
RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150724

R150 Certificate of patent or registration of utility model

Ref document number: 5785385

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150