大規模データ活 用のための CEP ソリューション レッドハット株式会社 JBoss サービス事業部 シニアソリューションアーキテクト梅野昌彦 1
Agenda Complex Processing (CEP) とは CEP の適 用事例例 BRMS について CEP について 2
Complex Processing (CEP) とは 3
Complex Processing とは 大量量の情報や沢 山の種類の情報があり それぞれの関連性を 見見つけ出し リアルタイムに検知して アクションを起こすトリガーとなるシステム 4
対応 震度度 6 以上ならば列列 車車の運 行行を即時に停 止させる 震度度計測値が来ない連絡が来ない? ブイからの潮位変動が警戒閾値超え海 方 面へ 走 行行する 車車の検知? 5
何故 DB ではなく CEP が必要なのか? 大量量のデータ ( ビッグデータ ) の扱い DB は 大量量のレコードから 1 件を抽出するのは得意 非構造化データは RDB に 入れにくい 大量量のデータは プログラム では扱いにくい全て DB に 入れるのか? データとデータの関連性の扱い DB は条件を絞り込む / 結合するのは得意レコード間の 比較はしにくい リアルタイムの処理理 DB はデータを格納してからでないと検索索ができないバッチ処理理には向いているが リアルタイム処理理には向いていない来るはずのデータが来ない場合にトリガーが掛けられない 6
CEP の適 用領領域 多種多様のデータ 1 種類の無限 大に発 生するデータ 大量量のデータ 非構造化データ データの相関 リアルタイム処理理 N 番 目と N+1 番 目 名簿の名前と受付票の名前が同じ 即時の対応 限られた時間内の対応 7
CEP 適 用事例例 8
CEP の適 用例例 製造業 製造実 行行システム 温度度情報 油圧情報 回転数情報 圧 力力情報 回転数情報 ルール : 回転数差異異 時刻の同じ回転数情報 < 時刻の同じ回転数情報 回転数を下げるように指 示 CEP ルール : 油圧低下 人的対応 過去 5 分間の油圧平均 - 最新の油圧 > 10MPa 9
CEP の適 用例例 ( 米国 Airlines) A Simple Example Kiosks & Monitoring およそ 2000 のキオスク端末 デバイスや周辺機器のモニタリングもアプリケーションの中に含まれる キオスクアプリケーションサーバーは 15 秒毎にキオスク端末をポーリングして監視する 各キオスク端末から 5 分毎にステータスのアップデートを受け取りたいという集中 IT サービスマネージメントの要求 10
JBoss SOA JBoss BRMS MRG - Messaging JBoss EAP JBoss Operations Network 11
CEP の適 用例例 ( 航空会社 ) お客様基本情報 CheckIn 情報 搭乗 手続情報 乗り継ぎ情報 お客様端末端末 MRG 手荷物情報 税関情報 セキュリティ情報 業務端末端末 JMS アプリ CEP へメッセージの送り込み DB への書き出し CEP の関連性のチェック異異常時のチェック正常イベントの消し込み 通知端末端末 注意喚起警告 DB 12
BRMS について 13
BRMS について Business Rule Management System ビジネスルールの可視化 日本語形式 エクセルによるルールの記述 変更更履履歴の管理理とルールガバナンス プロセス から ロジック を解放 ロジックの外出しによるアプリケーションの保守性の向上 RETE アルゴリズムにより 再帰的処理理などの複雑なロジックを簡素化 14
ルールエンジン /BRM とは? ルールエンジンとは ビジネスルールの実 行行をするフレームワーク またはライブラリアプリケーションとビジネスルールの分離離を実現ダイナミックにルールを変更更可能 : アプリケーションの柔軟性を究極に 高める多くのルールエンジンは Rete アルゴリズムをベースとする ビジネスルールとは ビジネスルール = ならば ( 条件 ) する ( アクション ) 例例 : もし 初めての顧客 ならば メンバー登録を勧誘 する もし 頭 金金が20% 以上 ならば 長期プランAを推奨 する もし 預貯 金金額が1000 万以上 ならば オプションBを推奨 する もし 勤続年年数が1 年年以下 ならば 課 長の承認を取得 する 15
ルールエンジン アーキテクチャ Application BPM 入 力力 WorkingMemory 評価する対象 Rule Agenda 出 力力 ルールエンジン 16 16
ルールの定義 DRL : Drools Rule Language JBoss Rules のネイティブ表記 デベロッパ向け DSL : Domain Specific Language 特定の業務に特化した表記 ビジネスエキスパート向け マッピングファイルを作成することで 自然 言語 ( 日本語 ) を組み替えてルールを作成 / 変更更可能 Decision Table 似たルールの繰り返しをスプレッドシート形式で表現 もっともビジネスエキスパートフレンドリな記法 Excel / Open Office Calc 書類を直接読み込み可能 DRL DSL rule " お得意様ルール "! when! customer: Customer( status > 50 )! order: Order(orderPriority == 3)! then! order.setorderdiscount(8.5);! end -- order.dsl # 注文関連 DSL [when] 注文数が { 数値 } を超えたオーダー = order: Order(count > { 数値 }) [then] 注文を受付 = order.setacceptted(true); [then] {cause} 注文を保留 = order.setaccepted(false);order.setcomment("{cause}"); -- order.dslr expander order.dsl rule 大量注文は保留 when 注文数が 100 を超えたオーダー then 大量注文のため注文を保留 end Decision Table DSL / Decision Table も内部的には DRL へ変換され 最終的には Java バイトコードにコンパイルされて実 行行 17
ルール適 用時の全体アーキテクチャ例例 ポータル Web 帳票 出 力力 Webサービス アクセス Webサービス データベースサービス アクセス データーベース ディシジョンサービス アクセス ルールエンジン 既存システム アクセス 既存システム メッセージサービス アクセス メッセージサービス アクセス JMS MQ email, EDI Web アプリケーションサーバー 18
Complex Processing 19
Complex Processingとは イベントドリブンであった従来のRule Engineに 時間 の概念念が追加されます イベントの 検知 が可能に 複数のイベントの開始時刻 終了了時刻の関係 が成り 立立つ時にアクションを実 行行 単位時間内にイベントが 来なかった こと をトリガーとしてルールを発 火など 20
CEP 動作概要 Window 7 分経ったら期限切切れ 時間 8 分前 7 分前 5 分前 現在 ある 一定時間内の各 の関連性を抽出して ルールを実 行行 には 有効時間 が設定できる が 来なかった 事を検知してルールを実 行行 21
動作モード 時間 Real- Time Clock: システム時間を利利 用 Pseudo- Clock: アプリケーションでコントロール可能な時間 プロセッシング Cloud Mode: イベントの順序は考慮しない Stream Mode:timestamp でイベントのソートが 行行われる Entry- point を使 用してイベントを投 入 アプリケーションとはステートフルセッション 22
CEP の適 用分野 証券 : 不不公正取引検知 銀 行行 : マネーロンダリングの検知 製造 : 製造 工程のタスクシミュレーション 運輸 : 運 行行確認 事故解析 医療療 : 検査順序確認 検査 工程の確認 見見回り確認 通信 : パケット監視 ネットワーク監視 交通 : 交通量量に応じた動的な信号制御 農業 : 日照時間や室温に応じた育成制御 ゲーム : ロールプレイング等での特異異なイベントの発 生 等々 23
ご清聴ありがとうございました 24