InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

複合イベント処理とEDA

作者 Steven Robbins , 翻訳者 編集部 投稿日 2008年8月28日

セクション
設計/アーキテクチャ,
エンタープライズ・アーキテクチャ
トピック
SOA ,
Loose Coupling ,
Composition ,
Architecture
タグ
CEP ,
SOA Adoption ,
Service Component Architecture ,
Event Stream Processing

複合イベント処理(CEP)システムとイベント駆動型アーキテクチャ(EDA)は、現在および将来の高性能システムにおいて重要な役割を果たすものとして認識されており、その役割と適用方法が議論されている。David LuckhamとRoy SchulteがCEPおよび EDAで使用される用語の概要(リンク)と解説をまとめている。

LuckhamとSchulteは、インプリメンテーションの特性とは別個に各用語を定義して、次のように語っている。

最も基本的な用語、「イベント」には問題があります。本来、明確に異なる 2 つの意味があり、(1) 発生するアクティビティ、および (2) あるコンピュータシステム内のアクティビティを表すものを示します。そのため、「イベント」と「イベントオブジェクト」など、2つを区別する用語が導入される傾向があります。しかし、論議が1つまたは2つのパラグラフより長くなると、わかりにくくなり、2つを混同したり、用語の忘却、脱落が起きることになります。たとえば、2つの異なる用語を使用すると、(下記に示すとおり)「イベント処理」を「イベントオブジェクト処理」と記述する必要があるでしょう。最適の解決策は、「イベント」という語にさまざまな意味を持たせることです。それぞれが使用される文脈は、意図する意味の指標となります。

LuckhamとShulteは、複合イベントを「メンバを呼び出す他のイベントの抽象であるイベント」として定義した。複合イベントは、不正な格付けの割当てが発生した Moody’s Investors Service のシステムの問題(リンク)に言及したときにJoe McKendrick(リンク)が選択したトピックである。McKendrickは、「何億ドルと言わないまでも、何百万ドルもの資金が、システムによって生成された不正なデータに基づいて投資決定されることを意味する」と言っている。彼は、複雑なSense and Respondシステムには、問題やエラーを防止するために依然として人手の介入が必要であるという立場を取っていた(リンク)

McKendrickは、Sense and Respond (S&R)システム周辺の研究を行っているカリフォルニア工科大学コンピュータサイエンス科教授K. Mani Chandy博士が(リンク)、複合イベントに基づいて意思決定を行う際にループ内に人手を介在させる必要性について語ったことを指摘した。Chandyは、武器を使用するための意思決定が行われる戦術的な軍事作戦などの状況下では、「最終的な行動に責任を持つのは、常に人間である」と述べている。

ChandyはMicahel Olson(リンク)とともに、イベント処理およびSense and Respondアプリケーション(リンク) (PDF・英語)が、ビジネスアクティビティ監視およびビジネスダッシュボードの領域に定着する(ユビキタスになる)までの過程について語った。ChandyとOlsonは、さらにWeb S&Rアプリケーションの領域に踏み込み、これらはWebデータソースからイベントおよびデータを取得するS&Rアプリケーションであると述べている。

Webデータソースは、活動的にすることも受動的にすることもできます。クライアントは、情報を抽出するために要求応答プロトコルを使用して、サーバをポーリングすることができます。あるいは、RSSまたはATOMストリーム、その他のデータプロトコルを使用してクライアントに情報を送信することができます。受動的データソースにアクティブなインターフェイスを連携させて、エージェントにより、定期的にポーリングして後続のポーリングでの変更に関する情報をアクティブに送信することができます。

しかし、CEPには、完全に異なるタイプのアーキテクチャが必要だろうか?


Brenda Michelson(リンク)は、イベント処理の関連においてイベント駆動型アーキテクチャの概要(リンク)を示している。Michelsonは、EDAのコンポーネントを次の5つのカテゴリに分類している。

  • イベントメタデータ: イベントメタデータには、イベント仕様とイベント処理ルールが含まれている。
  • イベント処理: イベント処理の中核は、エンジンとイベントオカレンスデータである。
  • イベントツーリング: イベント開発ツールは、イベント仕様と処理ルールの定義、予約管理のために必要となる。イベント管理ツールは、イベント処理インフラストラクチャの管理および監視、イベントフローの監視、イベント生成および処理統計の可視性を提供する。
  • エンタープライズ統合: エンタープライズ統合バックボーンは、イベント駆動型アーキテクチャにおいて重要な役割を果たす。必要な統合サービスには、イベント処理(フィルタ、ルート、変換)、イベントチャネルトランスポート、サービス呼出し、ビジネスプロセス呼出し、発行および予約、エンタープライズ情報アクセスなどがある。
  • ソースおよびターゲット: アプリケーション、サービス、ビジネスプロセス、データストア、人員、自動化されたエージェントなど、イベントを生成し、イベント駆動型アクションを実行するエンタープライズのリソース。

Michelsonは、EDAとSOAの関係についても論じている。

わたしは、SOA と EDA は同格(ピア)であり補完する関係にあると考えています。ですから、EDA は SOA のたんなるサブセット(子)にすぎないとする SOA 信奉者には賛成できません。広義のイベント駆動型アーキテクチャは、イベント駆動型 SOA を超えて、リアルタイム情報フローおよび分析、複合イベント処理を含みます。

Ivar Jacobson博士は(リンク) 、EDAについて異なる見方を示している。Jacobsonは、「イベント駆動型アーキテクチャは必要か?(リンク)」という問いを投げかけている。Jacobsonは自身の問いかけに、EDAではシステムの最重要エレメントとしてイベントを重視するが、「コンポーネントまたはサービスと、これら一部のコンポーネント間のある種の "チャネル" を重視した方がよい」と回答している。イベントは、このようにシステム内で生成、伝達、消費、ブロードキャストされる。このタイプのシステムの大きな利点の1つは、次のとおりである。

最も興味深いコンポーネントはサービスです。同時にサービス指向アーキテクチャ(SOA)と、それ以上のものが得られます。

いずれの場合も、EDAとSOAは他方を妨害または排除しない。この2つは、企業に自動的または実用的成果をもたらす複合イベント処理システムを提供するために使用できる。

原文はこちらです:http://www.infoq.com/news/2008/08/cep-and-eda

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。