データストリーム処理アーキテクチャ(複合イベント処理:CEP)
イベント処理は、発生した事象(イベント)に関する情報(データ)のストリームを追跡して分析(処理)し、何らかの結論を得る手法である。[1] 複合イベント処理(CEP:Complex Event Procesing)は、複数のソースからのデータを組み合わせ、[2]より複雑な状況を示唆するイベントやパターンを推論するイベント処理である。複合イベント処理のゴールは、意味のあるイベント(例えば何らかの機会または脅威)を明らかにして、[3] できるだけ速やかに対処することである。
これらのイベントは営業の引き合いや受注、お客様からの問い合わせ電話など、組織のさまざまな層で発生している。また、それらはニュース記事[4] やテキストメッセージ、SNSへの投稿、株式市況、交通情報、天気予報やその他の種類のデータかもしれない。 イベントは測定値が時刻や温度その他の、あらかじめ定義されていたしきい値を超えた「状態の変化」として定義されることもある。CEPは組織にリアルタイムでパターンを分析する新たな手法を与え、ビジネスサイドがITとサービス部門とのより良いコュミニケーションを実現するとアナリストは提唱している。
CEPは次のような技術に依存している。[7]
- イベントのパターン検知
- イベント抽出
- イベントフィルタリング
- イベントの集約と変換
- イベント階層のモデル化
- イベント間の関連の検知(例えば因果関係、メンバーシップ、タイミングなど)
- イベント駆動処理の抽象化
CEPは離散イベントシミュレーションや、アクティブデータベースとその他のプログラミング言語をルーツに持つ。この業界での活動に先立って1990年代に一連の研究プロジェクトがあった。資料[9] によると、一般的なCEP言語と実行モデルに道を開いた最初のプロジェクトはスタンフォード大学のRapideプロジェクトである。並行して次の三つの研究プロジェクトがあった。それらはK. Mani Cahandyが率いたカリフォルニア工科大学のInfosphere、John Batesが率いたケンブリッジ大学のApama、Opher Etzionが率いたIBMハイファ研究所のAmitである。商用製品はこれらのプロジェクトとその後の研究プロジェクトからの概念に依存している。Event Processing Technial Societyによって組織されたイベント処理シンポジウムが開催され、これは後にACM DEBSカンファレンスとなった。組織活動からの結果の一つとしてエベント処理宣言がある。
CEPはオペレーショナルインテリジェンス(OI)ソリューションで使用され、ライブな入力データやイベントデータに対するクエリを実行し、ビジネスオペレーションへの知見を提供する。OIソリューションはリアルタイムデータを収集し、ヒストリカルデータと相関をとることで、現在の状況に対する知見や分析を提供する。異なる組織サイロからの複数のソースからのデータは集約され、現在の情報を使用した共通のオペレーティングピクチャを提供する。リアルタイムの知識が重要な場面では、OIソリューションが必要な情報を引き出すために使用される。
CEPのよりシステム的な例として、いくつかのセンサーや各種のイベントとリアクターからなる自動車がある。タイヤの空気圧センサー、速度センサー、シートに人が座っているかどうかを検知するセンサーを想像してみてほしい。
最初の状況では、自動車は走行中であり15分の間にタイヤの空気圧が45PSIから41PSIに落ちたとする。タイヤの空気圧が下がるとタイヤ空気圧に関するいくつかのイベントが生成される。自動車のイベントプロセッサーは、比較的長い時間にタイヤ空気圧が失われた状況を検知し、”LossOfTirePressure”イベントを生成する。この新たなイベントは自動車のメンテナンスログに空気圧の喪失を記録するプロセスを発生させ、ダッシュボードを通じて運転者にタイヤの空気圧が失われたことを通知する。
多くのCEPソリューションと概念は次の二つのカテゴリーに分類することができる。
- 集計指向のCEP
- 検知指向のCEP
集計指向のCEPはシステムに入力されるイベントデータへの反応として、オンラインのアルゴリズムを実行することに焦点を当てている。入ってくるイベントにあるデータの平均を計算し続けるというのが簡単な例である。
検知指向のCEPではイベントパターンや状況と呼ばれるイベントの組み合わせを検知することに焦点を当てている。イベントが特定の順番で並んでいる状況を検知するというのが簡単な例である。
両方が交じり合ったアプローチもある。
CEPの商用システムとしては、Infosphere Stream (2009〜)、TIBCO Business Event (2009〜)、Drools Fusion (2009〜)等がある。
CEPの参考図書として以下のものがある。
Introductionより。
「過去20年間のインターネットの急速な普及に伴い、イベントベースの分散システムは、企業経営、環境モニタリング、情報発信、金融、パーベイシブ・システム、オートノミック・コンピューティング、協調作業・学習、地理空間システムなど、幅広い応用分野でますます重要な役割を果たしています。イベントベースの分散システムを実装するために、さまざまなアーキテクチャ、言語、技術が使用されており、その開発の多くは異なるコミュニティによって独自に行われてきました。
開発の多くは、異なるコミュニティによって独立して行われています。しかし、共通しているのは、複雑さが増していることです。 ユーザーや開発者は、このようなシステムが大量の単純なイベントを処理できるだけでなく、空間的に分散している可能性があり、長期間にわたるイベントの複雑なパターンを検出できることを期待しています。知的で論理的なアプローチは、直面する多くの研究課題に対処するための健全な基盤を提供します。本書は、この分野の主要な専門家が寄稿した最近の進歩を幅広くカバーしています。本書は、イベントベースの分散システムにおける推論について、最新技術のレビュー、新しい研究成果、豊富な参考文献をまとめた包括的な見解を示しています。この本は、学生、教員、研究者だけでなく、新しいシステムの開発を担当している産業界の実務者にとっても貴重なリソースとなるでしょう。」
目次としては以下のようになる。
(1) Introduction to Reasoning in Event-Based Distributed Systems
(イベントベースの分散システムにおける推論の概要)
(2) Distributed Architectures for Event-Based Systems
(イベントベースのシステムのための分散型アーキテクチャ)
(3) A CEP Babelfish: Languages for Complex Event Processing and Querying Surveyed
(A CEP バベルフィッシュ 複雑なイベント処理とクエリーのための言語が調査される)
(4) Two Semantics for CEP, no Double Talk: Complex Event Relational Algebra (CERA) and Its Application to XChang
(CEPのための2つのセマンティクス、ダブルトークなし。複雑事象関係代数(CERA)とそのXChangへの応用)
(5) ETALIS: Rule-Based Reasoning in Event Processing
(ETALIS: イベント処理におけるルールベースの推論)
(6) GINSENG Data Processing Framework
(GINSENGデータ処理フレームワーク)
(7) Security Policy and Information Sharing in Distributed Event-Based Systems
(分散型イベントベースドシステムにおけるセキュリティポリシーと情報共有)
(8) Generalization of Events and Rules to Support Advanced Applications
(高度なアプリケーションをサポートするイベントとルールの一般化)
(9) Pattern Detection in Extremely Resource-Constrained Devices
(極めてリソースに制約のあるデバイスでのパターン検出)
(10) The Principle of Immanence in Event-Based Distributed Systems
(イベントベースの分散システムにおける即時性の原理)
(11) Context-Based Event Processing Systems
(コンテキストベースのイベント処理システム)
(12) Event Processing over Uncertain Data
(不確かなデータに対するイベント処理)
コメント
[…] データストリーム処理アーキテクチャ(複合イベント処理:CEP) […]
[…] CEPは複数のソースからなるデータを組み合わせてより複雑な状況を示唆するイベントやパターンを推論するイベント処理となり、上記の例では、1分以内に煙と高温のイベントを受信すると、そのエリアで火災アラートイベントが生成されるようなシステムとなる。(詳細はリンク先参照) […]
[…] このシステムの従来のDSMS/CEPシステムの相違点は、クエリに対する柔軟性にある。例えばここで登場する情報ソースはセンサータグと、チェックインを見るセンサー、及びフェイスブックの3つとなるが、従来のDSMS/CEPシステムでも、それぞれのセンサーのスキーマを固定すれば、決まった(固定した)クエリに対する答えを得ることはできる。しかしながら現実世界では、必要となるシチュエーション/コンテキストには様々なバリエーションがあり、その場その場でそれぞれに合わせた切り口でデータを利用する必要がある。 […]