この節では、以下の項目について説明します。
Oracle CEP (以前の WebLogic Event Server) は、高性能なイベント駆動型アプリケーションの開発およびデプロイメント用の Java サーバです。これは、Equinox OSGi に基づいた軽量な Java アプリケーション コンテナであり、ビジネス業務管理の効率性と有効性を向上するため、機能豊富な宣言の環境を提供する Oracle CEP サービス エンジンなどの共有サービスを使用します。このサービスは、データのストリーミングをサポートする構成体が追加された、SQL に基づくクエリ言語である Oracle Continuous Query Language (Oracle CQL) を基盤としています。Oracle CEP では、JRockit Real Time を使用して非常に高度なスループットとマイクロ秒のレイテンシがサポートされ、完全にリアルタイムなエンドツーエンドの Java イベント駆動アーキテクチャ (EDA) 開発プラットフォーム用の Oracle CEP Visualizer および Oracle CEP IDE for Eclipse 開発ツールが用意されています。
Oracle CEP には、ビジネス ロジックを含むユーザの Java コード (POJO) をデプロイする機能があります。Oracle CEP 内でビジネス ロジックを実行することにより、時間およびイベント駆動型アプリケーション向けの高度に調整されたフレームワークが提供されます。
図 1-1 にイベント駆動型システムの概要を示します。
イベント駆動型システムは、通常、複数のイベント ソース、リアルタイム イベント駆動型アプリケーション、およびイベント シンクで構成されています。デプロイする Oracle CEP サーバと Oracle CEP アプリケーションは、イベント駆動型アプリケーションで構成されます。イベント ソースは通常のイベント データのストリームを生成します。Oracle CEP アプリケーションはイベント ストリームをリスンし、これらのイベントを処理して特別なイベントを生成します。イベント シンクは特別なイベントを受信します。
イベント ソース、イベント駆動型アプリケーション、およびイベント シンクは互いに独立しているため、他のコンポーネントに変更を加えることなくこれらのコンポーネントを追加または削除できます。これはイベント駆動型アーキテクチャの特性です。
イベント駆動型アプリケーションはルールによって駆動されます。Oracle CEP では、Oracle Continuous Query Language (Oracle CQL) を使用して、ルールがクエリとして表現されます。これらのクエリはデータ ストアに永続化され、イベントの着信ストリームを処理し、イベントの発信ストリームを生成するために使用されます。通常、クエリはフィルタ処理と集約関数を実行して、着信イベント ストリームから重要なイベントを検出および抽出します。その結果、通常、発信イベント数は着信イベント数をはるかに下回ります。
Oracle CEP はイベント駆動型アプリケーション開発用のミドルウェアです。Oracle CEP アプリケーションは、本質的にイベント駆動型アプリケーションです。
次に、アプリケーション自体について説明します。アプリケーションは、図 1-2 に示すように Oracle CEP サーバによってホストされる軽量のコンテナです。
Oracle CEP アプリケーションは、通常、次の主要なコンポーネントで構成されます。
アダプタは、着信および発信ストリーム、リレーション ソースおよびリレーション シンクに直接インタフェース接続されます。アダプタは着信および発信プロトコルを認識し、イベント データをプロセッサで照会できる標準化された形式に変換します。アダプタは標準化されたイベント データをチャネルまたは発信ストリームとリレーション シンクに転送します。
チャネルは、イベント処理のエンドポイントです。特にストリームは、イベント処理エージェントがイベント データを処理できるようになるまで、イベント データをキューに保管する役割を果たします。
プロセッサ (イベント処理エージェント) はチャネルからの標準化されたイベント データをクエリを使用して処理し、出力チャネルに新しいイベントを生成します。
Bean は出力チャネルをリスンするために登録し、出力チャネルへの新しいイベントの挿入によってトリガされます。このユーザ コードは通常、plain-old-Java-object (POJO) です。ユーザ アプリケーションでは、JMS、Web サービス、ファイル ライタなどの一連の外部サービスを利用して、生成されたイベントを外部イベント シンクに転送します。
イベント Bean は出力チャネルをリスンするために登録し、出力チャネルへの新しいイベントの挿入によってトリガされます。このユーザ コードは Oracle CEP イベント Bean API を使用するため、Bean は Oracle CEP で管理できます。
アダプタ、チャネル、プロセッサ、およびビジネス ロジック POJO を任意に相互接続してイベント処理ネットワーク (EPN) を形成できます。EPN のトポロジの例を次に示します。
アダプタ - チャネル - ビジネス ロジック POJO
シナリオ : 処理が不要です。専用プロトコルから標準化されたモデルに適応させるだけです。
アダプタ - チャネル - プロセッサ - チャネル - ビジネス ロジック POJO
シナリオ : ユーザ コードに対する直接的な処理です。
アダプタ - チャネル - プロセッサ - チャネル - ビジネス ロジック POJO - チャネル - プロセッサ - チャネル - ビジネス ロジック POJO
シナリオ : 最初のプロセッサがイベント間の因果関係を作成し、2 番目のプロセッサがイベントを集約して複合 (特別) イベントを作成する 2 層のイベント処理です。
EPN には重要な特性が 2 つあります。
イベント処理ネットワークを使用して処理エージェントの階層を作成できるため、非常に複雑なイベント処理が実現されます。EPN の各層では、その層のイベントが集約されて複合イベントになります。複合イベントはその層の上位層の単純なイベントになります。
イベント処理ネットワークで積分可能性 (別々に開発されたコンポーネントを連携して正常に機能させる性質) が向上します。たとえば、ユーザ コードを追加して、ネットワーク内の複数の場所で外部サービスを参照することができます。
Oracle CEP はさまざまな業種やアプリケーションで使用することができます。いくつかの使用例を次に示します。
金融 : アルゴリズムによる取引
市場価格の変動に基づいた自動株取引。クエリの例 : 任意の 20 秒の時間枠内で、株式 B が 2% を上回る幅で上昇し、かつ株式 A が同様の上昇をしない場合は、自動的に株式 A を購入します。
例については、節 3.8「シグナル生成のサンプル」を参照してください。
運輸 : セキュリティと不正の検出
イベント内のパターンを検出することで不正行為を発見します。クエリの例 : 1 枚の ID カードを 5 秒未満の間に 2 回使用して都市地下鉄システムにアクセスした場合、ピギーバックのセキュリティ警告を発します。
エネルギーと電気通信 : 警報の相関関係
誤検出の警報を低減します。クエリの例 : 任意の 5 秒の時間枠内で 15 件の警報を受信しても、30 秒以内に検出した同様の警報が 5 件未満だった場合は、何もしません。
医療 : 患者の監視
患者のバイタル サインを監視し、特定のイベントが発生した場合に何らかのタスクを実行します。クエリの例 : 薬を変更した後に血圧が上昇し、任意の 10 秒の時間枠内での上昇率がこの患者に対する最大許容値の 20 % 以下だった場合に、最も近くの看護師に警告します。
Oracle CEP の主な機能の概要を以下に示します。
リリース 11gR1 (11.1.1) の新機能 : Oracle Continuous Query Language (Oracle CQL) は、データのストリーミングをサポートする構成体が追加された SQL に基づくクエリ言語です。Oracle CQL を使用すると、Oracle CEP を使用して複合イベント処理 (CEP) を行う、データ ストリームに対するクエリを表現できます。Oracle CQL はスケーラブルかつ包括的です。さまざまな演算子 (広範な枠演算子など)、関数 (組み込み、Colt、java.lang.Math
関数など)、および文が提供されています。Oracle CQL は EPL に取って代わります。
リリース 11gR1 (11.1.1) の新機能 : Coherence クラスタ化と分散キャッシュのサポート。
リリース 11gR1 (11.1.1) の新機能 : Oracle CEP Visualizer クエリ コンストラクタ、クエリ プラン ジェネレータ、および Coherence クラスタ化と分散キャッシュのサポート。
イベント キャッシング - アプリケーションでは、必要に応じてキャッシュにイベントをパブリッシュしたり、キャッシュのイベントを使用したりすることで、イベントの可用性を高め、イベント処理アプリケーションのパフォーマンスを向上させることができます。
イベントの記録と再生 - Oracle CEP のイベント リポジトリ機能を使用すると、EPN を通じて流れるイベントを記録、格納できるため、後からイベントを再生できます。
組み込み HTTP パブリッシュ/サブスクライブ アダプタ - アプリケーションでは、3 つの組み込み HTTP パブリッシュ/サブスクライブ アダプタを使用して、HTTP パブリッシュ/サブスクライブ サーバ チャネルに対するパブリッシュ (ローカルおよびリモート) とサブスクライブを簡単に行うことができます。
組み込み JMS アダプタ - 2 種類の JMS アダプタ (着信と発信) を使用して、Java コードを作成せずに、アプリケーションから JMS キューに対して個別にメッセージを送受信できます。
Oracle CEP Visualizer - Oracle CEP のデータを使用し、そのデータを便利で直感的な方法でシステム管理者やオペレータに表示し、さらに特定のタスクにおいてコンフィグレーションの変更を行うために受け入れたデータを再び Oracle CEP に返す Web 2.0 アプリケーションです。
マルチサーバ ドメイン (クラスタ化とも呼ばれる) - Oracle CEP で、管理上の目的から複数のサーバを論理的に接続したり、共有のユーザ データグラム プロトコル (UDP) マルチキャスト アドレスとポートを使用して物理的に接続したりできるようになりました。
低レイテンシが要求される大量のストリーミング データを処理するために、通常の従来型 Java アプリケーション (POJO) または Spring アプリケーションのデプロイメントをサポートするアプリケーション サーバ。
Oracle CEP アプリケーションは、イベント駆動型アプリケーションとして開発およびデプロイされます。つまり、EPN アセンブリ ファイルでカスタム Spring タグを使用してイベント処理ネットワークを定義し、それによってアプリケーションの標準 Spring コンテキスト ファイルを拡張します。
アプリケーション サーバは、複合イベント プロセッサ (CEP)、アダプタ、ストリームなどの一連のリアルタイム サービスを提供します。このサーバは、高いメッセージ スループット、低いレイテンシ、および確定的な動作を実現するように高度に調整されています。
複合イベント プロセッサは、大量のストリーミング データを処理するための高パフォーマンスで継続的なクエリ エンジンです。1 つまたは複数のストリームから受け取るストリーミング データのフィルタ処理、相関、および集約を完全にサポートしています。
イベント処理言語 (EPL) は、SQL に類似した言語であり、ストリームから受け取るイベント データを宣言によってフィルタ処理、相関、集約、およびマージできます。また、他のストリームに結果を挿入して、下流でさらに処理を行うことができます。EPL ルールは、複合イベント プロセッサをコンフィグレーションする XML ファイルで定義するか、または API を使用してプログラムで定義します。Oracle CQL は EPL に取って代わります。
アダプタ SDK は、着信データ フィードをリスンするアダプタの作成に必要なすべてのツールを提供します。
一連の製品サンプルには、入門用として簡単な Hello World のシナリオを示す例と、Oracle CEP のその他の機能を使用した複雑な外国為替取引やアルゴリズムによる取引のシナリオを示す例の両方があります。
データ フィードをシミュレートするロード ジェネレータ ユーティリティは、実際のデータ フィードに接続せずにアプリケーションをテストするのに役立ちます。
事前に組み込まれたインスツルメンテーションを含むモニタ サービスは、コンポーネント レベルでスループットとレイテンシを計測するためのサービスです。
静的および動的なコンフィグレーション フレームワーク。静的コンフィグレーションは、XML ファイルを使用して実行します。動的コンフィグレーションを実行するには、JMX とコマンドライン ユーティリティ wlevs.Admin
を使用してコンフィグレーション MBean およびランタイム MBean にアクセスします。
Oracle CEP は、Oracle microServices Architecture (mSA) を基盤として構築されています。Oracle mSA は、OSGi ベースのフレームワークを使用して、モジュールまたは機能セットで提供されるサービスを管理します。Oracle mSA が提供するサービスを次に示します。
Jetty (サーブレットを実行する HTTP コンテナ)
リレーショナル データベースにアクセスするための javax.sql.DataSource
の実装と JDBC シン ドライバ
ロギングとデバッグ
認証と承認のセキュリティ
表 1-1 に、Oracle CEP リリース 11gR1 (11.1.1) でサポートされるプラットフォームを示します。
表 1-1 Oracle CEP リリース 11gR1 (11.1.1) サポート対象プラットフォーム
オペレーティング システム | ハードウェア | JVM w/ JDK 1.5.x | リリース日 |
---|---|---|---|
Oracle Enterprise Linux 4 / OVM |
x86 |
JRockit 32 |
RTM |
Oracle Enterprise Linux 4 / OVM |
x86-64 |
JRockit 32 |
RTM |
Redhat Linux 4 |
x86 |
JRockit 32 |
RTM |
Redhat Linux 4 |
x86-64 |
JRockit 32 |
RTM |
Oracle Enterprise Linux 5.0 / OVM |
x86 |
JRockit 32 |
RTM |
Oracle Enterprise Linux 5.0 / OVM |
x86-64 |
JRockit 32 |
RTM |
Redhat Linux 5.1 |
x86 |
JRockit 32 |
RTM |
Redhat Linux 5.1 |
x86-64 |
JRockit 32 |
RTM |
SUSE Linux 9 |
x86 |
JRockit 32 |
RTM |
SUSE Linux 9 |
x86-64 |
JRockit 32 |
RTM |
SUSE Linux 10 |
x86 |
JRockit 32 |
RTM |
SUSE Linux 10 |
x86-64 |
JRockit 32 |
RTM |
Windows 2003 SP1+ |
x86 |
JRockit 32 |
RTM |
Windows 2003 SP1+ |
x86-64 |
JRockit 32 |
RTM |
Windows Vista (クライアントのみ) |
x86 |
JRockit 32 |
RTM |
Windows Vista (クライアントのみ) |
x86-64 |
JRockit 32 |
RTM |
Windows XP SP2 (クライアントのみ) |
x86 |
JRockit 32 |
RTM |
Windows XP SP2 (クライアントのみ) |
x86-64 |
JRockit 32 |
RTM |
Solaris 10 |
SPARC 64 |
JRockit 64 |
RTM 後 |
Oracle CEP IDE for Eclipse は、Oracle CEP アプリケーションを開発するプログラマを対象としています (図 1-3 を参照)。
Oracle CEP IDE for Eclipse は、Oracle CEP アプリケーションの開発、デプロイ、およびデバッグ用に設計された、Eclipse IDE のプラグインのセットです。
Oracle CEP IDE for Eclipse の主な機能は以下のとおりです。
イベント駆動型アプリケーションの作成を直ちに開始するためのプロジェクト作成ウィザードおよびテンプレート。
Java や XML ファイルなどの Oracle CEP アプリケーションに共通のソース ファイル用の高度なエディタ。
IDE から Oracle CEP サーバ インスタンスをシームレスに開始、停止およびデプロイするための統合化されたサーバ管理。
統合化されたデバッグ。
イベント処理アプリケーション内を参照および移動できる、イベント処理ネットワーク (EPN) のビジュアルなデザイン ビュー。
Oracle CEP Visualizer に対する統合サポート。IDE 内部から Oracle CEP Visualizer を使用することができます (節 1.8「Oracle CEP Visualizer」を参照)。
詳細については、以下を参照してください。
Oracle CEP Visualizer と呼ばれる高度な実行時管理コンソールが用意されています (図 1-4 を参照)。
Oracle CEP Visualizer を使用すると、Oracle CEP サーバ ドメインとそれらのドメインにデプロイする Oracle CEP アプリケーションをブラウザから管理、チューニング、および監視することができます。Oracle CEP Visualizer には、Oracle CQL または EPL ルールの管理および作成のサポートなどを含む、さまざまな高機能の実行時管理ツールが用意されています。
詳細については、『Oracle CEP Visualizer ユーザ ガイド』を参照してください。
このバージョンの Oracle CEP には、以下の新機能があります。
節 1.9.1「マルチサーバ ドメインとクラスタ化」
節 1.9.2「キャッシング」
節 1.9.3「イベントの記録と再生」
節 1.9.4「Visualizer 管理コンソール」
節 1.9.5「HTTP パブリッシュ/サブスクライブ アダプタ」
節 1.9.6「JMS アダプタ」
節 1.9.7「ドメイン作成の Configuration Wizard」
節 1.9.8「Oracle Continuous Query Language (Oracle CQL)」
節 1.9.9「イベント処理言語 (EPL)」
節 1.9.10「セキュリティ」
1 つの Oracle CEP ドメインに複数のサーバをコンフィグレーションし、Oracle Coherence を使用してサーバをクラスタ化することで高可用性を実現できるようになりました。
『Oracle CEP 管理者ガイド』の「Oracle CEP スタンドアロンサーバ ドメインの管理」を参照してください。
Oracle CEP アプリケーションでは、必要に応じてキャッシュにイベントをパブリッシュしたり、キャッシュのイベントを使用したりすることで、イベントの可用性を高め、イベント処理アプリケーションのパフォーマンスを向上させることができます。キャッシュは、アプリケーション全体のパフォーマンス向上という目的専用に作成された、イベント用の一時的なストレージ領域です。アプリケーションが正常に機能するためにキャッシュは必ずしも必要ではありません。
このリリースでは、Oracle CEP ローカル キャッシュまたは Oracle Coherence を使用してキャッシングをコンフィグレーションできます。
『Oracle CEP IDE Eclipse 開発者ガイド』の「Oracle CEP キャッシングのコンフィグレーション」を参照してください。
Oracle CEP のイベント リポジトリ機能を使用すると、イベント処理ネットワーク (EPN) を通じて流れるイベントを記録、格納できるため、後からイベントを再生できます。イベント リポジトリは、プロセッサやチャネルなど、ステージごとにコンフィグレーションされます。
このリリースでは、イベントの記録と再生をスケジュールすることもできます。
以下を参照してください。
『Oracle CEP Visualizer ユーザ ガイド』の「EPN を通じて流れるイベントの記録と再生」
『Oracle CEP 管理者ガイド』の「イベントの記録と再生を制御するためのコマンド」
Oracle CEP Visualizer は、Oracle CEP からのデータを使用し、そのデータを便利で直感的な方法でシステム管理者やオペレータに表示し、さらに特定のタスクにおいてコンフィグレーションの変更を行うために受け入れたデータを再び Oracle CEP に返す Web 2.0 アプリケーションです。
『Oracle CEP Visualizer ユーザ ガイド』の「Oracle CEP Visualizer の概要」を参照してください。
HTTP パブリッシュ/サブスクライブ サーバは、ブラウザ ベースのクライアントなどの Web クライアントが、すべて HTTP 上での非同期メッセージを使用して、チャネルをサブスクライブし、利用可能なメッセージを受信し、これらのチャネルにメッセージをパブリッシュするためのメカニズムです。Oracle CEP の各インスタンスには、アプリケーションに HTTP パブリッシュ/サブスクライブ機能を実装するためにプログラマが使用できる pub-sub サーバが含まれています。
『Oracle CEP IDE Eclipse 開発者ガイド』の「HTTP パブリッシュ/サブスクライブ サーバ アダプタのコンフィグレーション」を参照してください。
Oracle CEP では、Java コードを作成せずに、JMS キューとの間でメッセージを送受信するためにイベント アプリケーションで使用できる個別の着信と発信の JMS アダプタが提供されます。
『Oracle CEP IDE Eclipse 開発者ガイド』の「JMS アダプタのコンフィグレーション」を参照してください。
Configuration Wizard は、CEP ドメインを作成するための新しいツールです。
以下を参照してください。
『Oracle CEP 管理者ガイド』の「Oracle CEP スタンドアロンサーバ ドメインの作成」
『Oracle CEP 管理者ガイド』の「Oracle CEP マルチサーバ ドメインの作成」
Oracle Continuous Query Language (Oracle CQL) は、データのストリーミングをサポートする構成体が追加された SQL に基づくクエリ言語です。Oracle CQL を使用すると、Oracle CEP を使用して複合イベント処理 (CEP) を行う、データ ストリームに対するクエリを表現できます。
Oracle CEP リリース 11gR1 (11.1.1) では、Oracle CQL がイベント処理言語 (EPL) に取って代わります。Oracle CEP では下位互換性を保つために EPL がサポートされています。このリリースでは、すべての Oracle CEP サンプルが Oracle CQL で表現されています。
『Oracle CEP CQL 言語リファレンス』を参照してください。
Oracle CQL には以下の機能があります。
ストリームとリレーションの演算子 - ストリームとリレーションを使用して操作を実行します。
リレーションからリレーションへの演算子 - リレーションを生成します。
『Oracle CEP CQL 言語リファレンス』の「リレーションからリレーションへの演算子」を参照してください。
ストリームからリレーションへの演算子 - 以下のさまざまな枠演算子を使用して、ストリームからリレーションを生成します。
範囲 : 時間ベース
S[Range T]
またはオプションで、
S[Range T1 Slide T2]
範囲 : 時間ベース (無限)
S[Range Unbounded]
範囲 : 時間ベース (現在)
S[Now]
範囲 : 定数値
S[Range C on ID]
タプルベース :
S[Rows N]
またはオプションで、
S[Rows N1 Slide N2]
分割 :
S[Partition By A1 ... Ak Rows N]
またはオプションで、
S[Partition By A1 ... Ak Rows N Range T]
または
S[Partition By A1 ... Ak Rows N Range T1 Slide T2]
『Oracle CEP CQL 言語リファレンス』の「ストリームからリレーションへの演算子」を参照してください。
リレーションからストリームへの演算子 - 以下のように、リレーションからストリームを生成します。
IStream
: 挿入ストリームです。
T
の時点で r
が R
にあり、T-1
の時点で r
が R にない場合、IStream(R)
にはすべての (r,T)
が含まれます。
DSteam
: 削除ストリームです。
T-1
の時点で r
が R
にあり、T
の時点で r
が R
にない場合、DStream(R)
にはすべての (r,T)
が含まれます。
RStream
: リレーション ストリームです。
T
の時点で r
が R
にある場合、RStream(R)
にはすべての (r,T)
が含まれます。
『Oracle CEP CQL 言語リファレンス』の「リレーションからストリームへの演算子」を参照してください。
ストリームからストリームへの演算子 - 1 つ以上の他のストリームからストリームを生成します。
『Oracle CEP CQL 言語リファレンス』の「ストリームからストリームへの演算子」を参照してください。
クエリ、ビュー、および結合 :
Oracle CQL クエリは、1 つ以上のストリームまたはビューからデータを取得するため Oracle CEP サービス エンジンに対して実行される、Oracle CQL 構文で表現された操作です。[REGISTER|CREATE] QUERY
文を使用して作成した最上位の SELECT
文はクエリと呼ばれます。
特に、Oracle CQL MATCH_RECOGNIZE
条件とそのさまざまな句を使用してストリーム要素間の複雑な条件を簡潔に表現し、データ ストリームに最適化された高度な比較を実行できます。MATCH_RECOGNIZE
句は Oracle CQL でリレーション変数がサポートされる任意の場所で使用できます。
例 1-1 MATCH_RECOGNIZE クエリ
<query id="detectPerish"><![CDATA[ select its.itemId from ItemTempStream MATCH_RECOGNIZE ( PARTITION BY itemId MEASURES A.itemId as itemId PATTERN (A B* C) DEFINE A AS (A.temp >= 25), B AS ((B.temp >= 25) and (B.element_time - A.element_time < INTERVAL "0 00:00:05:00" DAY TO SECOND)), C AS (C.element_time - A.element_time >= INTERVAL "0 00:00:05:00" DAY TO SECOND) ) as its ]]></query>
Oracle CQL ビューは、ストリームまたはリレーションでの代替の選択項目を表します。Oracle CQL では、サブクエリの代わりにビューを使用します。[REGISTER|CREATE] VIEW
文を使用して作成した最上位の VIEW
文はビューと呼ばれます。
結合は、複数のストリーム、ビュー、またはリレーションから行を結合するクエリです。
『Oracle CEP CQL 言語リファレンス』の「クエリ、ビュー、および結合」を参照してください。
Oracle CQL 文 - クエリ、ビュー、関数、および枠を作成および使用する各種の文です。
『Oracle CEP CQL 言語リファレンス』の「Oracle CQL 文」を参照してください。
関数 - 各種の組み込み関数およびユーザ定義関数を作成するために拡張できる基本クラスです。以下が含まれています。
単一行
集約
高性能な科学技術計算のための Colt オープン ソース ライブラリに基づいた統計的かつ高度な算術演算
java.lang.Math
クラスに基づいた統計的かつ高度な算術演算
『Oracle CEP CQL 言語リファレンス』の「関数」を参照してください。
時間 - 以下を含む、タイムスタンプと高度なスケジュールに基づいた制御です。
アプリケーションまたはシステムのタイムスタンプを持つリレーション
アプリケーションまたはシステムのタイムスタンプを持つストリーム
継承されたタイムスタンプを持つストリーム
『Oracle CEP CQL 言語リファレンス』の「時間」を参照してください。
イベント処理言語 (EPL) 新しい機能は以下のとおりです。
注意 : Oracle CEP リリース 11gR1 (11.1.1) では、Oracle CQL がイベント処理言語 (EPL) に取って代わります。Oracle CEP では下位互換性を保つために EPL がサポートされています。詳細については、節 1.9.8「Oracle Continuous Query Language (Oracle CQL)」を参照してください。 |
パラメータ化されたクエリ - パラメータ化されたクエリを使用すると、EPL クエリの内部に疑問符の形式でプレースホルダを含めることができます。プレースホルダは実行時に値とバインドされ、通常の文にコンパイルされます。プロセスは JDBC の PreparedStatement
とほぼ同じです。
『Oracle CEP EPL 言語リファレンス』の「パラメータ化されたクエリ」を参照してください。
サブクエリ - EPL では、単純サブクエリと相関サブクエリの両方がサポートされています。単純サブクエリでは、内部クエリは外部クエリに相関していません。相関サブクエリでは、SELECT 句を別の SELECT 句または WHERE 句に埋め込むことができます。WHERE 句でサブクエリを使用する場合、IN および EXISTS の両方のキーワードを使用できます。以前は FROM 句でしか使用できず、内部クエリと外部クエリとの相関機能がありませんでした。
『Oracle CEP EPL 言語リファレンス』の「単純サブクエリと相関サブクエリ 」を参照してください。
動的なイベント プロパティ - 動的な (つまり、チェックされていない) プロパティは、文のコンパイル時に認識される必要のないイベント プロパティです。これらのプロパティは実行時に解決されます。動的プロパティの背景にある概念として、基になるイベント表現でプロパティが必ずしも事前に認識されないということがあります。基になるイベントには文のコンパイル時に認識されない追加のプロパティが含まれていることがありますが、このようなプロパティは EPL クエリでも必要な場合があります。この概念は、機能の豊富なオブジェクト指向のドメイン モデルを表現するイベントや、汎用コンテナ イベントを使用する場合に特に役立ちます。
このリリースでは動的イベント プロパティに関連して次の関数が追加されました : INSTANCEOF、CAST、および EXISTS。
『Oracle CEP EPL 言語リファレンス』の「動的なイベント プロパティ」を参照してください。
Oracle CEP には、データ ストリームとイベント ストリーム、コンフィグレーション、ユーザ名とパスワードのデータ、セキュリティ ポリシー情報、リモート資格、ネットワーク トラフィックなどのサーバ リソースを保護するさまざまなメカニズムが用意されています。
Oracle CEP では、認証、承認、ロール マッピング、および資格マッピング用のさまざまなセキュリティ プロバイダがサポートされています。初期インストールの時点では、Oracle CEP は認証および承認の両方にファイルベース プロバイダを使用するようにコンフィグレーションされています。LDAP または DBMS プロバイダを使用するようにシステムをコンフィグレーションすることもできます。
このリリースでは、カスタム ユーザやグループをコンフィグレーションし、それらを使用して Oracle CEP アプリケーションへのアクセスを制御できます。
このリリースでは、Oracle CEP は com.rsa.jsafe.provider.JsafeJCE
セキュリティ プロバイダを使用して、連邦情報処理規格 (FIPS) をサポートしています。このプロバイダを使用して、FIPS が認定する SSL 用の擬似乱数ジェネレータを使用するように Oracle CEP をコンフィグレーションできます。
『Oracle CEP 管理者ガイド』の「Oracle CEP のセキュリティのコンフィグレーション」を参照してください。
イベント Bean と呼ばれる新しいコンポーネントの種類があります。イベント Bean は基本の Spring Bean とほぼ同様ですが、モニタや記録/再生などの完全な Oracle CEP フレームワークを利用できます。イベント Bean はアダプタと同じ機能を持ちますが、アダプタが開始または終了ノードとして使用される EPN で、中間ノードとして使用する必要があります。
標準 Spring Bean を EPN のノードとして使用できますが、Oracle CEP フレームワークは利用できません。
イベント Bean の Spring タグに、EPN アセンブリ ファイルを通じてライフサイクル コールバック メソッドを設定する属性が含まれるようになりました。
スレッドで実行する必要のあるイベント Bean と Spring Bean では Java クラスで com.bea.wlevs.ede.api.RunnableBean
を実装する必要があります。
アプリケーションを停止および再開できます。
クラスタ化およびマルチサーバ環境をサポートするため、すぐに使用できるサンプル ドメインのディレクトリ構造が変更されました。
以前は、すべてのドメイン ファイルが ORACLE_CEP_HOME
/ocep_11.1/samples/domains/helloworld_domain
などのドメイン ディレクトリ直下にありました。ORACLE_CEP_HOME
は Oracle CEP の最上位インストール ディレクトリです。
このリリースでは、ドメイン ディレクトリには単一のサーバに対応する 1 つ以上のサブディレクトリが含まれています。このディレクトリには、該当するサーバのすべてのコンフィグレーション ファイルが含まれています。たとえば、HelloWorld ドメインには単一サーバが含まれており、そのコンフィグレーション ファイルは、ORACLE_CEP_HOME
/ocep_11.1/samples/domains/helloworld_domain/defaultserver
ディレクトリにあります。
ドメインを作成する新しい Configuration Wizard は、この更新されたディレクトリ構造に従っています。
以下を参照してください。
『Oracle CEP 管理者ガイド』の「Oracle CEP スタンドアロンサーバ ドメインの作成」
『Oracle CEP 管理者ガイド』の「Oracle CEP マルチサーバ ドメインの作成」
Oracle CEP リリース 11gR1 (11.1.1) をインストールします。
「第 2 章 Oracle CEP のインストール」を参照してください。
サンプルをそれぞれのドメインから実行します。
以下を参照してください。
ソースとコンフィグレーション ファイルを参照して、サンプル アプリケーションをそれぞれのソース ディレクトリからビルドすることで、サンプル アプリケーションがどのようにプログラミングされているかを理解します。
以下を参照してください。
独自の Oracle CEP ドメインを作成します。
以下を参照してください。
『Oracle CEP 管理者ガイド』の「Oracle CEP スタンドアロンサーバ ドメインの作成」
『Oracle CEP 管理者ガイド』の「Oracle CEP マルチサーバ ドメインの作成」
新しい Oracle CEP アプリケーションを作成して、新しいドメインにデプロイします。
『Oracle CEP IDE Eclipse 開発者ガイド』の「Oracle CEP アプリケーションの作成の概要」を参照してください。