cep(複合イベント処理)製品 - アーキテクチャ
DESCRIPTION
複合イベント処理システムで必要なこと ■メンテナンス性:継続的な要件の変化に対応しやすい開発基盤が必要 ・多様なオブジェクトの関連付 ⇒ if-elseの連続をハードコード ・遅延の検知が困難 ⇒ e.g.) ポーリングの多用 ⇒ スクラッチ開発ではパターン検知のために複雑なハードコーディングが発生 ■高スループットとリアルタイム性の両立:連続的なデータストリームをリアルタイムに扱えることが重要 ・高度なマルチスレッドプログラミングが必要 ・JEEアプリケーションサーバでは重厚すぎるケースも… 複合イベント処理を実現するには専用の基盤が必要!TRANSCRIPT
<Insert Picture Here>
CEP(複合イベント処理)製品 - アーキテクチャ
日本オラクル株式会社Fusion Middleware事業統拢本部
Copyright© 2011, Oracle. All rights reserved.2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2011, Oracle. All rights reserved. 3
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28
Oracle Direct 検索
あなたにいちばん近いオラクル
Oracle Directまずはお問合せください
Web問い合わせフォーム フリーダイヤル
専用お問い合わせフォームにてご相談内容を承ります。
※フォームの入力には、Oracle Direct Seminar申込時と同じログインが必要となります。
※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。
0120-155-096
※月曜~金曜 9:00~12:00、13:00~18:00
(祝日および年末年始除く)
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Copyright© 2011, Oracle. All rights reserved.
複合イベント処理システムで必要なこと
複合イベント処理を実現するには専用の基盤が必要!
• メンテナンス性• 継続的な要件の変化に対応しやすい開発基盤が必要
• 多様なオブジェクトの関連付 ⇒ if-elseの連続をハードコード
• 遅延の検知が困難 ⇒ e.g.) ポーリングの多用
⇒ スクラッチ開発ではパターン検知のために複雑なハードコーディングが発生
• 高スループットとリアルタイム性の両立• 連続的なデータストリームをリアルタイムに扱えることが重要
• 高度なマルチスレッドプログラミングが必要
• JEEアプリケーションサーバでは重厚すぎるケースも…
4
Copyright© 2011, Oracle. All rights reserved.
Data Grid
Oracle CEPData Grid
イベントソースから収集
• DBテーブル
• Coherence
• アダプタ経由
ルールに基づく判定
• フィルタ、集約
• CQLによる記述
• イベント判定のチェイン構造化も可
アクション
• 任意のアクション- メール通知、 BAM配信- データグリッド経由で
パラレル処理
Complex Event Processingで行う処理
5
Copyright© 2011, Oracle. All rights reserved.
Data Grid
Oracle CEPData Grid
イベントソースから収集
• DBテーブル
• Coherence
• アダプタ経由
ルールに基づく判定
• フィルタ、集約
• CQLによる記述
• イベント判定のチェイン構造化も可
アクション
• 任意のアクション- メール通知、 BAM配信- データグリッド経由で
パラレル処理
6
Event Driven型アーキテクチャを構成するコンポーネント
ルールに基づいたイベントハンドリング
Oracle CEP
データフィード/マスターデータの格納先
Oracle Coherence
ルールベースでのシステム処理実行
OracleSOA
業務ユーザインターフェース
Oracle BAM
Copyright© 2011, Oracle. All rights reserved.
“Situational Awareness”
Ticketing Reservations
bag-tracking
bag-in-container
container-on-plane
Gate OperationsFlight Operations
Baggage Handling
missing-bag
flight-delay
statistics
BAM
flight-open
flight-boarding
flight-closed
flight-push-back
flight-wheels-up
BPM/ BPEL
passenger-on
passenger-off
Dynamic lost-bag rebooking
Oracle CEP
CoherenceJRockit Real Time
CEP
check-in
bag-check
SOA Message
Event
Legend
Service Bus
Edge Device (RFID)
アーキテクチャ例:空港でのLost Baggage管理
7
Copyright© 2011, Oracle. All rights reserved.
Processors
• データストリームに適用するクエリーをセット
Listeners
• Processorにより実行されるトリガーを制御
Events
• Java Bearとして実装される
Enriched Streams
• データストリーム, webサービス, Java, Database
Adaptor
• 外部イベントやデータを処理できるようにJavaオブジェクトに変換する
Oracleの複合イベント処理ソリューションアーキテクチャ
Data/Msg.Feeds Listener/SINK:
User Code(Plain Java)
Data Feed Adapters
ProcessEvents(CEP)
データストリームの入力1,000,000+ メッセージ/秒
継続的なデータストリーム処理
Java言語により処理結果の供給、ビジネス機会の拡大低レイテンシでの処理
Java Application Container
Oracle Complex Event Processing
8
Copyright© 2011, Oracle. All rights reserved.
開発ツールの種類直観的に利用可能な2種類のGUIツールで、開発ライフサイクルをトータルにサポート
項目 Oracle CEP IDE for Eclipse Oracle CEP Visualizer
画面イメージ
実装 Eclipse IDEのプラグイン ブラウザ・ベース (Adobe FlashベースのRIA)
主な対象者 システム開発者向け アルゴリズム開発者、管理者向け
主な作業内容
•開発作業: アダプタ開発、イベント型定義、EPNフロー開発 等
•開発作業: CQLアルゴリズム開発•管理作業: モニタリング、クエリ修正、クエリ停止/再開、シミュレーション等
特長 •Java開発との親和性•Eclipseユーザーが慣れ親しんだ操作性
•インストール丌要のため多ユーザーが利用可能•直観的な操作性•オンライン変更管理、監視
9
Copyright© 2011, Oracle. All rights reserved.
アルゴリズム実装言語 –EPN / CQLCQLとEPNの2階層の組合せにより、アルゴリズムを実装
10
項目 EPN: Event Processing Language CQL: Continuous Query Language
実装イメージ
実装対象 ハイレベルのイベント・フロー 詳細なアルゴリズム・ロジック
実装内容 •イベント・データ型の定義•フィード・ハンドラ、ライン・ハンドラ、ヒストリカル・データ (キャッシュ)、POJO等との連係•処理フローの定義
•イベント・ストリームの定義•タイム・ウィンドウに基づく複雑な演算
特長 •イベント・フローの可視性•Spring Frameworkに準拠
•アルゴリズム・ロジックの可読性•SQL構文に類似
標準仕様への対応
OSGiおよびSpringに基づくモジュラー・アーキテクチャ
ANSI99 SQL拡張 (申請中)
(VWAP計算の例 (前半のみ))
SELECT market.symbol, SUM(market.price * market.quantity) AS n, SUM(market.quantity) AS d
FROM MarketDataEvent market RETAIN ALL EVENTS, …
Copyright© 2011, Oracle. All rights reserved.
CEP
アルゴリズム実装モデル・イメージ可読性/可視性の高いアルゴリズム開発フレームワーク
11
フィード・ハンドラ
銘柄マスタ
注文データ
ウェイブ分割操作
発注
ウェイブ
ウェイブ注文
銘柄銘柄
注文ウェイブウェイブ
ウェイブ
SELECT … SELECT …CQL(アルゴ・ロジック)
EPN(イベント・
フロー)
Coherence(データ・グリッド)
Streaming VWAP計算アルゴリズム
ウェイブ分割アルゴリズム
ウェイブ執行
アルゴリズム
SELECT market.symbol, SUM(market.price * market.quantity) AS n, SUM(market.quantity) AS d
FROM MarketDataEvent market RETAIN ALL EVENTS, …
相場情報相場情報
*上記図はイメージであり、実際の実装手法とは異なる可能性があります
Copyright© 2011, Oracle. All rights reserved.
CEPにおけるイベント処理のタイプ
ルール設定 : CQL(Continuous Query Language) : 例えば…
関心のあるイベントのみを通す
Filtering(フィルタリング)
イベントの合成、加工
Aggregation(合成)
(複数の)イベントからパターンを検出
Correlation(相関)
・災害があった地域に本社を置く企業の株価
・20代前半の女性ユーザーによるアクセス
Oracle
CEP
Examples
Oracle
CEP
・30分毎の株価平均
・時間単位ごとに訪問するユーザーの平均年齢
Examples
Oracle
CEP
・過去の変動パターンに基づく、近い将来の
株価上昇の検知
・位置情報の変化と天候からユーザーニーズを予測
Examples
SELECT A.time, B.time FROM ticker
MATCH_RECOGNIZE(PATTERN (A W+ X+ Y+ Z* B)DEFINE A as A.c1 = A.c1,
W as W.c1< prev(W.c1),X as X.c1 > prev(X.c1),Y as Y.c1 < prev(Y.c1),Z as Z.c1 > prev(Z.c1),B as B.c1 > prev(B.c1) )
•右図のような推移を検知
SELECT SUM(amount) FROM OrderEvent
[RANGE 60 SECONDS,SLIDE 20 SECONDS]
WHERE amount > 2000
• OrderEvent というデータを60秒ぶんウィンドウに保持しながら、amountが2000以上のデータの合計を算出
• 20秒ごとにウィンドウをスライディングさせて結果を再評価
A
WX
Y Z
B
20秒毎に
スライド
20秒毎に
スライド
20秒毎に
スライド
60秒
ぶんの
イベント
12
Copyright© 2011, Oracle. All rights reserved. 13
• 幅広い業種にてCEPを利用した新規サービス提供に注目が集まっています
• オラクル社ではワールドワイドの事例において、幅広いインダストリで数百社のお客様にCEP製品をご利用頂いております
• オラクルのCEP製品では、Oracle CoherenceやWebLogic Serverのテクノロジを利用することで、ハイパフォーマンス、高可用性を担保したインフラを提供しています
市況変化の活用
RFIDの浸透
監査、ログ情報
ポイントカードの進化
機密情報
企業情報の肥大化
まとめ
Copyright© 2011, Oracle. All rights reserved. 14
http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28
Oracle Direct 検索
あなたにいちばん近いオラクル
Oracle Directまずはお問合せください
Web問い合わせフォーム フリーダイヤル
専用お問い合わせフォームにてご相談内容を承ります。
※フォームの入力には、Oracle Direct Seminar申込時と同じログインが必要となります。
※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録されている連絡先が最新のものになっているか、ご確認下さい。
0120-155-096
※月曜~金曜 9:00~12:00、13:00~18:00
(祝日および年末年始除く)
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。
システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Copyright© 2011, Oracle. All rights reserved.
Copyright© 2011, Oracle. All rights reserved. 16