プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Event Processingアプリケーションの開発
12c リリース1 (12.1.3)
E54312-04
目次へ移動
目次

前
前へ
次
次へ

1 アプリケーションの開発の概要

Oracle Event Processingアプリケーションは、ストリーミング・データをリアルタイムで監視および処理します。ストリーミング・データは、アプリケーションの内外にフローしたり、アプリケーションを通過してフローします。RAWデータはアプリケーション内へフローし、イベントに変換されます。イベントは、アプリケーションの要件に従って処理およびフィルタリングを行うために、アプリケーション・ステージを通過してフローします。最終的にアプリケーションは、宛先(格納、Webページでの表示、別のアプリケーションによる追加処理など)に適した形式のデータに戻るように、処理およびフィルタリング済のイベントを変換します。

Oracle Event Processingアプリケーションの開発経験がない場合は、『Oracle Event Processingスタート・ガイド』のEvent Processingの概要に関する項から始めてください。スタート・ガイドは、Oracle Event Processingの概要を示し、実践的なウォークスルーを提供し、サンプルのアプリケーションについて説明します。このガイドでは、プラットフォームで提供されているコンポーネントでOracle Event Processingアプリケーションを作成、構成およびデプロイする方法について説明します。カスタマイズされたアダプタまたはイベントBeanを使用してアプリケーションを構築する必要がある場合は、『Oracle Event Processingのカスタマイズ』のカスタム・アダプタに関する項を参照してください。

1.1 このリリースの新機能

12cリリースには、次の新機能が含まれます。

  • Oracle Event Processingプラグインおよび統合されたOracle WebLogic ServerをOracle JDeveloperに提供するQuickStartインストール。統合されたOracle WebLogic Serverを使用すると、Oracle SOA Suiteとイベント・データを交換するアプリケーションを作成できます。EDNアダプタを参照してください。

  • Oracle JDeveloperは、Oracle Event Processingアプリケーションの開発をサポートしています。Oracle JDeveloperをStudio開発者(すべての機能)ロールで起動すると、Oracle Event Processingアプリケーションを作成するためのフル機能セットが提供されます。Oracle Event Processingスタート・ガイドも参照してください。

  • Oracle CQLの機能。

    • Oracle JDeveloper内のOracle CQLパターン・コンポーネント。Oracle CQLパターン・コンポーネントには、欠落したイベントの検出、一連のイベントの平均化、イベント・パターンによるパーティション、その他様々な形式の選択肢を含む標準イベント問合せを構築できるテンプレートが用意されています。Oracle Event Processingスタート・ガイド

    • Oracle CQLフォルト・ハンドラを使用すると、固有のフォルト処理メカニズムを持たないコードで発生するフォルトを処理するコードを書き込むことができます。「Oracle CQLプロセッサ」を参照してください。

    • CQL集計により、イベントをJavaコレクションに集計すると、コレクションAPIを使用してイベントを操作できます。Oracle Event Processing Oracle CQL言語リファレンスを参照してください。

    • HadoopおよびOracle NoSQLDB Big Data拡張機能。Hadoopは、Hadoop Distributed File System (HDFS)内の大量のデータにアクセスするためのOracle CQLプロセッサのデータ・カートリッジ拡張機能です。HDFSは、非リレーショナル・データ・ストアです。NoSQLDBは、Oracle NoSQL Database内の大量のデータにアクセスするためのOracle CQLプロセッサのデータ・カートリッジ格納機能です。Oracle NoSQLDB Databaseには、キー/値のペアでデータが格納されます。Oracle CQLデータ・カートリッジによるアプリケーションの開発を参照してください。

    • EPNをパス・スルーする幾何学的形状をより効率的に監視するための空間カートリッジのパフォーマンスの向上。Oracle CQLデータ・カートリッジによるアプリケーションの開発を参照してください。

  • アダプタ。Oracle Event Processingには、CSV、イベント配信ネットワーク(EDN)、REST、RMI、Oracle Business Rules (OBR)、HTTPおよびJMSなどの各種タイプのデータを処理するために様々な種類のインバウンド・アダプタおよびアウトバウンド・アダプタが用意されています。アダプタを参照してください。

  • テスト・ツール。テスト・ツールには、データ・フィードをシミュレートするためのCSVインバウンド・アダプタを持つロード・ジェネレータ、Oracle CQL問合せをデバッグするためのイベント・インスペクタ・サービス、およびコマンド行からEPNをテストするためのEPNシェル・コマンドが含まれます。「テスト1-2-3」を参照してください。

  • パラメータ化されたアプリケーションには、アプリケーションを構成およびカスタマイズするために使用されるパラメータ内のアプリケーション・メタデータが含まれます。パラメータ化されたアプリケーションを参照してください。

  • Oracle Event ProcessingのJavaコードで使用するためにJava Persistence API (JPA)が用意されています。Oracle Event Processingのインストールには、アプリケーションでのJPAの使用をサポートするためにEclipseLinkのオープン・ソース・マッピングおよび永続性フレームワークが含まれます。「EclipseLink、JPAおよびOracle Coherence」を参照してください。

  • カスタム・データ・カートリッジ: データ・カートリッジSPIが公開され、Oracle CQLを拡張するためにOracle Event Processingにプラグインするカートリッジをユーザーおよびベンダーが作成できるようになりました。Oracle Event Processing Java APIリファレンスおよびOracle CQLデータ・カートリッジによるアプリケーションの開発を参照してください。

  • JAXBのサポート。Oracle Event Processingには、アダプタおよびイベントBeanでJava Architecture for XML Binding (JAXB)マッピング機能を使用するために簡易インタフェースが用意されています。「JAXBのサポート」を参照してください。

1.2 EPN図

イベント処理ネットワーク(EPN)アプリケーション・モデル上のOracle Event Processingアプリケーション開発センター。EPN図は、イベントがOracle Event Processingアプリケーション内にフローし、内部をフローし、アプリケーション外にフローする様子を表します。EPN図をOracle JDeveloper内でアセンブルするには、EPNコンポーネントを選択および構成し、必要に応じてロジックを指定します。EPN図では、イベント・データは左から右にフローします。

図は、TradeReportアプリケーションのEPN図を示します。データは、カンマ区切りの値(CSV)形式でデータを処理する、左側のStockTradeCSVAdapterを介してEPNに入ります。StockTradeCSVAdapterのロジックにより、着信CSVデータがOracle Event Processingイベントに変換されます。AdapterOutputChannelは、新しく生成されたイベントをOracle CQLプロセッサに送信します。

GetHighVolumeProcessorコンポーネントは、イベントがストリームする際に問合せを行い、4000を超えるボリュームがある株式の取引を選択します。ProcessorOutputChannelコンポーネントは、選択したイベントをListenerBeanコンポーネントに送信し、ListenerBeanコンポーネントは銘柄記号およびボリューム情報をコマンド行に出力します。

Oracle JDeveloperを使用してOracle Event Processingアプリケーションを作成する方法の詳細は、『Oracle Event Processingスタート・ガイド』Oracle Event Processingプロジェクトの作成に関する項を参照してください。TradeReportアプリケーションおよび不正検出アプリケーションのウォークスルーも含まれます。

1.3 コンポーネント構成

Oracle Event Processingアプリケーションを開発する場合、コンポーネントのネットワークをアセンブルしてEPNに構成します。

各コンポーネントには、データの処理におけるロールがあります。次の各項では、EPNコンポーネントとそれらのロールについて説明します。

イベントおよびイベント・タイプ

イベント・タイプは、イベントに含まれるデータを定義するデータ構造です。イベント・タイプにより、イベント・データがEPN内をフローする方法やそれに対して実行できる操作が決まるため、イベント・タイプはEPNの基礎です。アプリケーションを起動して最初に行うことは、EPNのイベント・タイプを作成することです(アダプタ、チャネル、リレーショナル・データベース表、ビッグ・データ・ストレージなどのコンポーネントを適切なイベント・タイプで構成する必要があるため)。

アダプタ

Oracle Event Processingには、EPNの内外にフローする可能性があるすべてのタイプのデータを収容するために様々な入力アダプタおよび出力アダプタが用意されています。たとえば、Java Message Service (JMS)オブジェクト、HTTPパブリッシュ/サブスクライブ・サーバーおよび金融市場フィードにアクセスできます。デフォルトでサポートされていないシステムを統合する固有のアダプタも開発できます。『Oracle Event Processingビジュアライザの使用』のイベント・タイプ・リポジトリの構成に関する項を参照してください。

アダプタは、イベント・タイプおよび他の関連構成情報を使用して構成します。特定の構成は、アダプタがイベントの入力または出力およびデータのソースを処理するかどうかに依存します。たとえば、TradeReportアプリケーションでは、入力CSVアダプタの構成により、CSVファイルの場所が指定されたり、CSVファイルの読取りを開始するタイミングや連続する読取り間で待機する時間をアダプタに伝える値が指定されます。

チャネル

イベント・タイプを使用してチャネルを構成することにより、そのタイプのイベントがその特定のイベント・タイプに適したEPN内の次のステージに転送できるようにします。チャネルは、ストリームまたはリレーションのいずれかを示します。

ストリームまたはリレーション・チャネルにより、イベントがコレクションに挿入され、結果のストリームは次のEPNステージに送信されます。ストリーム内のイベントをこのストリームから削除することはできません。リレーション内のイベントは、リレーションに挿入、リレーションから削除、およびリレーションで更新することができます。挿入、削除および更新の各操作では、リレーション内のイベントは常に特定の時点に関連付けられている必要があります。詳細は、ストリームとリレーションを参照してください。

Oracle CQLプロセッサ

Oracle CQL問合せコードを使用してOracle CQLプロセッサを構成することにより、通過するイベントを調査します。Oracle JDeveloperのコンポーネント・ウィンドウには、Oracle CQL問合せを作成しやすくするためのCQLパターンが用意されています。各CQLパターンのウィザードでは、有効なOracle CQL問合せを確実に構築するために正しい構成データを指定するよう求められます。

Bean

Beanは、標準のSpringベースのBeanに準拠するJavaプログラミング言語で書かれたアプリケーション・イベント・ロジックを定義します。

イベントBeanは、イベントをリスニングまたは操作するロジックを実装するJavaクラスです。このタイプのJavaクラスはリスナーJavaクラスと呼ばれます。イベントを受信するリスナー(イベント・シンク)は、特定のタイプのデータを検出したときに新しいイベントを作成したり、この新しいイベントをさらに処理するために次のステージに送信できます。また、リスナー・イベント・シンクは、イベント・データに基づいて同じアプリケーションや別のアプリケーションで他のプロセスを開始することもできます。

Spring Beanは、Springフレームワークで管理され、Beanを既存のSpringデプロイメントに統合する場合に適切な選択肢です。イベントBeanは、Oracle Event Processingサーバーで管理するよう、Beanを構成するOracle Event Processing規則を使用します。たとえば、イベントBeanを使用して、監視やイベントの記録および再生などのOracle Event Processingサーバー機能のサポートを取得します。イベントの記録と再生は、アプリケーションのデバッグに使用できます。

キャッシング

アプリケーションで使用するデータおよびイベント・データのソースまたは宛先としてキャッシュを使用できるよう、キャッシュ・システムとOracle Event Processingアプリケーションを統合できます。キャッシュを統合すると、ストリーミング・データを処理するアプリケーションに適切な速度で比較的に静的なデータにアクセスできます。

キャッシュは、イベントを格納する一時記憶域で、Oracle Event Processingアプリケーションの全体的なパフォーマンスを改善することを目的として作成できます。キャッシュは、アプリケーションが正常に機能するためには必要ありません。イベントの可用性を高め、アプリケーションのパフォーマンスを向上するために、Oracle Event Processingアプリケーションでは、イベントをキャッシュにパブリッシュしたり、キャッシュにあるイベントを使用したりできます。

キャッシング・システムは、構成済キャッシュの名前付きセットを定義します。Oracle Event Processingは、複数のサーバーにリモート・キャッシュ通信用の構成を配分します。Springコンテキスト・ファイルは、キャッシング構成をサポートしています。Springコンテキスト・ファイルを使用して構成されたリスナーは、キャッシュからイベントを受信します。

データ関連コンポーネント

: 表コンポーネントは、リレーショナル・データベースへのアクセスを提供します。ID、イベント・タイプおよびデータ・ソースを使用して表コンポーネントを構成することにより、特定のイベントをリレーショナル・データベース表にフィードします。Oracle Event Processingには、ビッグ・データ・ストレージにアクセスするためにHadoopおよびNoSQLDBデータ・カートリッジが用意されています。

Hadoop: Hadoop Distributed File System (HDFS)内の大量のデータにアクセスするためのOracle CQLプロセッサのデータ・カートリッジ拡張機能です。HDFSは、非リレーショナル・データ・ストアです。Oracle CQLプロセッサには、ビッグ・データにアクセスするためのOracle CQL問合せコードが用意されています。Hadoopは、ID、イベント・タイプ、データベースへのパスおよびファイル・セパレータ文字を使用して構成します。

NoSQLDB: Oracle NoSQL Database内の大量のデータにアクセスするためのOracle CQLプロセッサのデータ・カートリッジ格納機能です。Oracle NoSQLDB Databaseには、キー/値のペアでデータが格納されます。Oracle CQLプロセッサには、ビッグ・データにアクセスするためのOracle CQL問合せコードが用意されています。NoSQLDBは、ID、イベント・タイプ、ストア名およびストアの場所を使用して構成します。

1.4 ストリームとリレーション

Oracle Event Processingアプリケーションは、RAWイベント・データとしてストリームに到達するイベントを処理します。RAWイベント・データは、RAWイベント・データをイベントに変換するアダプタを介してEPNに入ります。イベントは、順序が付けられた一連の値(タプル)です。

イベントにはスキーマがあるという点において、イベントはリレーショナル・データベース内の表の列と似ています。イベント・スキーマにより、各イベント値のプロパティおよびタイプが定義されます。表の列には静的データが含まれるという点において、イベントはデータベース内の表の列とは異なります。イベントのストリームでは、別のイベントの前後のイベントの到着を含むイベントが到着する時間が重要になります。アプリケーションで時間および順序を把握できる必要があります。

たとえば、株式取引を処理するアプリケーションでは、銘柄記号、価格、終値、変化率およびボリューム情報で構成されるイベントは、各取引を実行した順序で順に到着します。アプリケーションのロジックでは、別の取引の直後に発生した株式の取引を検索する場合があります。

イベント処理アプリケーションでは、イベントがストリームで発生する順序は、各イベント・プロパティのデータ型および値と同じように重要です。Oracle Event Processingプログラミングの規則は、時間および順序の重要性を反映します。

コードにより、特定の基準(銘柄記号など)に基づいて相互に関連するイベントを検出する必要があります。また、コードにより、順序パターン(他の取引から15秒以内に行われた取引など)も検出する必要があります。イベント・データのシーケンシャルおよびリレーショナルな側面を説明するために、Oracle Event Processingは待機時間の短いチャネルを介してストリームおよびリレーションの概念を実装します。

  • ストリームは、ほぼ無制限の連続するイベントで、この場合、各イベントには独自のタイムスタンプがあります。ストリーム内では、あるイベントから次のイベントに移るときにタイムスタンプの値が減少しないように、イベントを時間をキーにして並べる必要があります。同じタイムスタンプを持つイベントが1つのストリーム内に存在する場合もあります。

  • リレーションでは、順序は重要でない場合があります。かわりに、リレーション内のイベントは特定の基準を満たしており、関連しています。たとえば、リレーション内のイベントは、問合せで特定のレベルを超える取引量を検索したときに株式取引のストリームに対して実行された問合せの結果である場合があります。

株式取引イベントのストリームでは、イベントは順に到着し、各イベントには独自のタイムスタンプがあります。他の取引から5秒以内に行われた取引の株価を分離するには、次のOracle CQLコードを使用して、ストリームがチャネルから到着するときにストリームを問い合せるようOracle CQLプロセッサを構成します。

select price from StockTradeChannel [range 5 seconds] 

問合せでは[range 5 seconds]期間を使用してイベントを分離するため、この問合せの出力はリレーションです。問合せから返されたイベントにはタイムスタンプがありますが、リレーションで順序付けされません。着信イベントはストリーム内にあるため、問合せは、5秒分のイベントがOracle CQLプロセッサに渡されるたびに継続的に実行されます。新しいイベントが到着すると、問合せの条件を満たすイベントはリレーションに挿入されますが、問合せの条件を満たさないイベントはリレーションから削除されます。

ストリーム内の順序の整合性は重要であるため、このことは重要です。技術的には、ストリームは継続的に移動する順序付けされた一連のイベントです。ストリーム内では、すべてのイベントは順にストリームに挿入されます。CQL問合せからストリームのサブセットを取得した場合、順序は必要ありません。EPNの次のステージにリレーションを渡す前に、IStream演算子を使用してリレーションをストリームに再変換できます。

1.5 アプリケーションのスケーラビリティおよび高可用性

スケーラブルなOracle Event Processingアプリケーションには、実装および構成規則に基づいてOracle Event Processing設計パターンが組み込まれているため、イベントの負荷が増してもアプリケーションは柔軟に動作します。

スケーラビリティおよび高可用性を実現するには、アプリケーションの設計パターン、サーバー・リソースおよび構成規則を統合することにより、ソフトウェアやハードウェアに障害が発生した場合でもデプロイしたアプリケーションが動作し続けるようにします。

詳細は、次を参照してください。

高可用性アプリケーション

スケーラブル・アプリケーション

1.6 アプリケーション・ライフサイクル

図1-1は、Oracle Event Processingアプリケーション・ライフサイクルの状態図を示します。この図では、状態名(STARTINGINITIALIZINGRUNNINGSUSPENDINGSUSPENDEDおよびFAILED)がApplicationRuntimeMBeanメソッドgetState戻り値に対応します。このような状態はOracle Event Processing専用です。これらはOSGiバンドルの状態ではありません。

図1-1 Oracle Event Processingアプリケーション・ライフサイクルの状態図

図1-1の説明が続きます
「図1-1 Oracle Event Processingアプリケーション・ライフサイクルの状態図」の説明

注:

Oracle Event Processingサーバー・ライフサイクルの詳細は、『Oracle Event Processingの管理』のサーバー・ライフサイクルに関する項を参照してください。

この項では、Oracle Event Processingサーバーにデプロイされたアプリケーションのライフサイクルと、com.bea.wlevs.ede.apiAPIコールバックのシーケンスについて説明します。ここでは、アプリケーション内でライフサイクルAPIをより効率的に使用できるようにOracle Event Processingでアプリケーションのライフサイクルがどのように管理されるかについて説明します。これらのライフサイクルAPI (RunnableBeanSuspendableBeanなど)の詳細は、次を参照してください。

  • APIの概要

  • Oracle Event Processing Java APIリファレンス

ライフサイクルの説明は、次の項に記載されているアクションを含むユーザーが実行するアクションに分類されます。

アプリケーションのインストールまたはアプリケーションがデプロイされた状態でのサーバーの起動

Oracle Event Processingでは、次のアクションが実行されます。

  1. Oracle Event ProcessingでアプリケーションがOSGIバンドルとしてインストールされます。OSGIでインポートおよびエクスポートが解決され、サービスがパブリッシュされます。

  2. Oracle Event Processingは、Beanを作成します(標準のSpring BeanおよびEPNアセンブリ・ファイルのOracle Event Processingタグに対応するBeanの両方)。各Beanでは、Oracle Event Processingは次を実行します。

    • Spring Beanのプロパティが設定されます。<wlevs:instance-property>値はアダプタおよびイベントBeanで設定されます。

    • @Serviceまたは@ServiceReference注釈で指定されたサービスに適切な依存関係がインジェクションされます。

    • 静的な構成プロパティに適切な依存関係が注入されます。

    • InitializingBean.afterPropertiesSetメソッドが呼び出されます。

    • 構成コールバック(@Prepare@Activate)がSpring Beanおよびファクトリで作成されたステージで呼び出されます。

      詳細は、リソース・アクセス構成を参照してください。

  3. アプリケーションの現在の状態はINITIALIZINGです。

  4. Oracle Event Processingは、MBeanを登録します。

  5. Oracle Event Processingは、すべてのActivatableBeansActivatableBean.afterConfigurationActiveメソッドを呼び出します。

  6. Oracle Event Processingは、すべてのResumableBeansResumableBean.beforeResumeメソッドを呼び出します。

  7. RunnableBeanを実装する各Beanについて、Oracle Event Processingでスレッドでの実行が開始されます。

  8. アプリケーションの現在の状態はRUNNINGです。

アプリケーションの一時停止

Oracle Event Processingでは、次のアクションが実行されます。

  1. Oracle Event Processingは、すべてのSuspendableBeansSuspendableBean.suspendメソッドを呼び出します。

  2. アプリケーションの現在の状態はSUSPENDEDです。

アプリケーションの再開

Oracle Event Processingでは、次のアクションが実行されます。

  1. Oracle Event Processingは、すべてのResumableBeansResumableBean.beforeResumeメソッドを呼び出します

  2. RunnableBeanを実装する各Beanについて、スレッドでの実行が開始されます。

  3. アプリケーションの現在の状態はRUNNINGです。

アプリケーションのアンインストール

Oracle Event Processingでは、次のアクションが実行されます。

  1. Oracle Event Processingは、すべてのSuspendableBeansSuspendableBean.suspendメソッドを呼び出します。

  2. Oracle Event ProcessingはMBeanを登録解除します。

  3. すべてのDisposableBeansDisposableBean.disposeメソッドが呼び出されます。

  4. Oracle Event Processingでアプリケーション・バンドルがOSGIからアンインストールされます。

アプリケーションの更新

これは、最初にアプリケーションをアンインストールしてから再びインストールするのと同等です。

このリストのユーザー・アクションを参照してください。

ストリームおよびリレーション・ソースおよびシンクのメソッドの呼出し

ライフサイクル・コールバックからストリーム、リレーション・ソースまたはシンクに対してメソッドを呼び出すことはできません。これは、これらのアプリケーション・ライフサイクルのフェーズが完了するまではコンポーネントがイベントを受信する準備が整わない可能性があるためです。

たとえば、afterConfigurationActiveまたはbeforeResumeなど、ライフサイクル・コールバックからStreamSenderメソッドのsendInsertEventを呼び出すことはできません。

RunnableBeanを実装するBeanの実行メソッドから、ストリーム、リレーション・ソースまたはシンクでメソッドを呼び出すことができます。

イベントBeanを参照してください。

1.7 APIの概要

APIを使用すると、このドキュメント・セットで説明されているようにOracle Event Processingアプリケーション全般について機能をプログラムで実装できます。

この項では、使用目的の観点からAPIパッケージの概要を示します。また、この項には、詳細を確認できる場所を示す相互参照も含まれます。

すべてのクラスおよびインタフェースの参照ドキュメント(Javadoc)については、Oracle Event Processing Java APIリファレンスを参照してください。『Oracle Event Processingスタート・ガイド』Oracle Event Processing APIのサンプルに関する項も参照してください。

構成

com.bea.wlevs.configurationパッケージには、構成オブジェクトをアクティブ化、準備およびロールバックするためのインタフェースが用意されています。Prepareインタフェースを実装する場合、構成オブジェクトを受け入れ、チェックおよび格納するためのメソッドを指定します。構成オブジェクトのJavaタイプはJAXBによって決定されます。デフォルトでは、Javaクラス名は、適用可能なステージの構成データを表すXMLスキーマの複合タイプの名前と同じです。スキーマの詳細は、/Oracle/Middleware/my_oep/oep/ xsd/wlevs_application_config.xsdスキーマを参照してください。「アプリケーションおよびリソース構成」も参照してください。

アダプタ

Oracle Event Processingには、アダプタの動作を管理するためのインタフェースおよびクラスを備えた複数のパッケージが用意されています。アダプタを参照してください。

パッケージ:

  • com.bea.wlevs.adapters.httppubsub.apiパッケージは、インバウンドJavaScript Object Notation (JSON)メッセージをイベント・タイプに変換して再度戻すためのインタフェースを提供します。インバウンドおよびアウトバウンドのJSONメッセージをイベント・タイプに変換してJSON形式に戻す方法をカスタマイズするには、カスタム・コンバータBeanを作成し、このAPIを使用します。

  • com.bea.wlevs.adapters.httppubsub.supportパッケージには、HTTPパブリッシュ/サブスクライブ・サーバーへの接続を確立するためのクラスが用意されています。

  • com.bea.wlevs.adapters.jms.apiパッケージには、インバウンドJMSメッセージをイベント・タイプに変換して再度戻すためのインタフェースが用意されています。インバウンドおよびアウトバウンドのJMSメッセージをイベント・タイプに変換して再度戻す方法をカスタマイズするには、カスタム・コンバータBeanを作成し、このAPIを使用します。

  • com.bea.wlevs.ede.apiパッケージには、カスタム・アダプタを作成するためのインタフェースが用意されています。『Oracle Fusion Middleware Oracle Event Processingコンポーネントのカスタマイズ』を参照してください。

チャネル

com.bea.wlevs.channelパッケージには、イベントのパーティションを実装するためのインタフェース、およびチャネル内のイベントの数を管理するためのクラスが用意されています。「チャネル」および「スケーラブル・アプリケーション」を参照してください。

イベント・リポジトリ

イベントおよびイベント・タイプを管理するために、Oracle Event Processingでは、イベント・ストア・リポジトリおよびイベント・タイプ・リポジトリを使用します。イベント・ストア・リポジトリではイベントが永続化され、イベント・タイプ・リポジトリではイベント・タイプが永続化されます。

パッケージ:

  • com.bea.wlevs.eventstoreパッケージには、イベント・ストア・リポジトリを管理するためのインタフェースおよびクラスが用意されています。『Oracle Event Processingビジュアライザの使用』の「永続イベント・ストア」を参照してください。

  • com.bea.wlevs.ede.apiパッケージには、イベント・タイプ・リポジトリを管理するためのEventTypeRepositoryインタフェースが用意されています。イベントおよびイベント・タイプを参照してください。

イベントドリブン環境

com.bea.wlevs.ede.apiパッケージには、イベントに反応するOracle Event Processingアプリケーション・コードを作成およびカスタマイズするためのインタフェースが用意されています。このパッケージには、イベントBeanおよびアダプタを作成し、これらをイベント・シンクおよびイベント・ソースに設定するためのインタフェースが用意されています。このパッケージの他のインタフェースを使用すると、イベントがEPN内をフローする方法に関するすべての側面を管理できます。これには、イベント作成、イベント・フロー・スルー・チャネル、イベント・メタデータおよびプロパティ、イベント・タイプ・リポジトリ、外部データ・ソース、EPNステージ、フォルト処理、イベントBeanライフサイクルなどがあります。

これらの一部のAPIを使用するサンプルJavaコードは、イベントおよびイベント・タイプ およびイベントBeanを参照してください。また、Oracle Event Processing注釈およびデプロイメントXMLの使用によるリソース・インジェクションの構成の詳細は、リソース・アクセスの構成を参照してください。

イベントBeanライフサイクル

com.bea.wlevs.ede.apiパッケージを使用すると、イベントBeanライフサイクルを制御することもできます。イベントBeanの初期化の管理、動的アクティブ化の構成、スレッドの使用、処理の一時停止と再開、アプリケーションのアンデプロイ時のリソースのリリースを実行できます。イベントBeanおよびアプリケーション・ライフサイクルの詳細は、アプリケーション・ライフサイクルを参照してください。

Springフレームワークによって同様のBeanライフサイクルインタフェースが実行されることに注意してください。ただし、同等のSpringインタフェースを使用してもファクトリによって作成されたBeanを操作することはできず、一方でOracle Event Processingインタフェースではこの操作が可能です。

JAXB

Oracle Event Processingには、アダプタおよびイベントBeanでJava Architecture for XML Binding (JAXB)マッピング機能を使用してXMLオブジェクトとJavaオブジェクト間でイベント・データをマーシャリングおよびアンマーシャリングするための簡易インタフェースが用意されています。「JAXBのサポート」を参照してください。

パッケージ:

  • com.oracle.cep.mappers.apiパッケージには、ほとんどのアプリケーション要件に応じてイベント・データをマーシャリングおよびアンマーシャリングするためのインタフェースが用意されています。

  • com.oracle.cep.mappers.jaxbパッケージには、マーシャリングおよびアンマーシャリング用の特別なメソッド・シグネチャを備えたインタフェースが用意されています。

キャッシュ

アプリケーションがイベント・データにアクセスできるようにキャッシング・システムを構成できます。Oracle Coherence分散キャッシング、Oracle Event Processingローカル・キャッシングおよびサードパーティ提供のキャッシング・ソリューションを組み合せてシステムのキャッシュを構成できます。Oracle CQLおよびJavaクラスを使用してキャッシュのイベントにアクセスできます。キャッシュ済イベント・データを参照してください。

パッケージ:

  • com.bea.wlevs.cache.spiパッケージには、Oracle Event Processingアプリケーションが使用可能なキャッシング・システムを作成できるインタフェースが用意されています。

  • com.bea.wlevs.cache.spi.coherenceパッケージには、Oracle Coherenceキャッシュを組み込むためにキャッシング・システムを拡張できるインタフェースが用意されています。

キャッシュ・ローダー

com.oracle.cep.cacheloaderパッケージは、CSVイベントをCoherenceキャッシュにロードするためのCsvCacheLoaderクラスを提供します。キャッシュ済イベント・データを参照してください。

クラスタ・グループ管理

com.bea.wlevs.ede.api.clusterパッケージには、マルチサーバー・ドメイン(クラスタ)内のサーバー・グループを管理するためのインタフェースが用意されています。構成に関する情報の取得、クラスタ・メンバーシップの変更をリスニングするためのイベントBeanおよびアダプタの実装、EPNを含めるためのグループ名の設定、およびグループ・サーバーに関する情報の取得を行うことができます。『Oracle Event Processingの管理』のサーバー・グループに関する項を参照してください。

管理Bean

管理Bean (MBean)を使用すると、タスクを実行するための構成およびランタイム情報にプログラムからアクセスできます。MBean (タスク)には、構成とランタイムの2つのタイプがあります。構成MBeanには、EPNコンポーネントの構成に関する情報が含まれます。ランタイムMBeanには、コンポーネントのスループットと待機時間に関する情報が含まれます。『Oracle Event Processingの管理』のMBean管理コマンドに関する項を参照してください。

パッケージ:

  • com.bea.wlevs.managementパッケージには、クライアント・アプリケーションによって使用される定数を管理するためのインタフェースや、すべてのOracle WebLogic Event Server MBean用のスーパーインタフェースが用意されています。

  • com.bea.wlevs.management.configurationパッケージには、アプリケーション、アダプタ、キャッシュ、構成、Oracle CQLプロセッサ、イベントBean、ステージ、ストリーム、表シンクおよびソースを管理するためのインタフェースが用意されています。

  • com.bea.wlevs.management.diagnosticパッケージには、診断プロファイルを管理するためのインタフェースが用意されています。診断プロファイルは、スループットおよび待機時間をテストするためのアプリケーション・ステージ情報が含まれるXMLファイルです。『Oracle Event Processingビジュアライザの使用』のスループットおよび待機時間の監視に関する項を参照してください。

  • com.bea.wlevs.management.diagnostic.notificationパッケージには、バックグラウンド・プローブによって送信された診断変更通知をラップするためのクラスが用意されています。

  • com.bea.wlevs.diagnosticパッケージには、新しくデプロイされたアプリケーションおよび削除されたアプリケーションをリスニングするためのインタフェースとクラスが用意されています。アプリケーションがデプロイおよびアンデプロイされると、プロファイル・マネージャ(診断プロファイルのグループ)も作成および削除され、対応するプロファイル・マネージャ・イベントが発行されます。

  • com.bea.wlevs.management.runtimeパッケージには、アプリケーション、アプリケーションOracle CQLプロセッサ、ドメイン、サーバーおよびEPNステージに関するランタイム情報を取得するためのインタフェースが用意されています。

  • com.bea.wlevs.monitorパッケージには、イベント・サーバー内のアプリケーション・エンドポイントのスループットおよび待機時間を監視するためのインタフェースが用意されています。

  • com.bea.wlevs.monitor.managementパッケージには、アプリケーション・ステージの監視メトリックを受信するためのインタフェース、およびEPN内のエンドポイント間の待機時間を監視するためのインタフェースが用意されています。

  • com.bea.wlevs.deployment.mbeanパッケージには、アプリケーションのデプロイを管理するためのインタフェースが用意されています。

  • com.bea.wlevs.eventinspector.managementパッケージには、イベント・トレースとイベント・インジェクションの動作を制御するためのインタフェースおよびクラスが用意されています。「テスト1-2-3」を参照してください。

  • com.oracle.cep.cluster.ha.adapter.managementパッケージには、高可用性環境におけるJMX通信を管理するためのインタフェースおよびクラスが用意されています。

高可用性

Oracle Event Processingには、アプリケーションのバックアップおよびフェイルオーバー処理機能を向上できるアプリケーションの設計パターンおよび高可用性アダプタが用意されています。「高可用性アプリケーション」を参照してください。

パッケージ:

  • com.oracle.cep.cluster.ha.adapterパッケージには、キュー・トリミング用のインタフェースおよびクラスが用意されています。

  • com.oracle.cep.cluster.ha.adapter.inboundパッケージには、高可用性ブロードキャスト・インバウンド・アダプタを作成するためのクラスが用意されています。このアダプタは、システム時間を使用し、高可用性が求められるアプリケーション用です。

  • com.oracle.cep.cluster.ha.adapter.managementパッケージには、高可用性環境におけるJMX通信を管理するためのインタフェースおよびクラスが用意されています。

  • com.oracle.cep.cluster.ha.adapter.runtimeパッケージには、他の高可用性インタフェースに対するJMXインタフェースを管理するためのインタフェースおよびクラスが実装されています。

  • com.oracle.cep.cluster.ha.apiパッケージには、簡単なフェイルオーバー機能用のインタフェースおよびクラスが用意されています。

  • com.oracle.cep.cluster.hagroupsパッケージには、プロパティ・グループ・メンバーシップの変更をリスニングし、変更を使用可能にし、ブロードキャスト・グループ・メンバーに対するサブスクリプションを可能にするイベントBeanおよびアダプタを作成するためのインタフェースおよびクラスが用意されています。

  • com.oracle.cep.cluster.hagroups.runtimeパッケージには、通知グループ情報を取得するためのインタフェースおよびクラスが用意されています。

テスト・ツールおよびユーティリティ・ツール

Oracle Event Processingには、対象と方法に応じて、アプリケーションをテストする様々な方法があります。「テスト1-2-3」を参照してください。

パッケージ:

  • com.bea.wlevs.eventinspector.managementパッケージには、イベントのトレースとインジェクションを管理するためのインタフェースおよびクラスが用意されています。

  • com.oracle.cep.shellパッケージには、Oracle Event Processingアプリケーションをテストするためのコマンドをプログラムから呼び出すためのインタフェースおよびクラスが実装されています。

  • com.bea.wlevs.utilパッケージには、OSGiサービス参照を必須としてメソッドをマークし、エラー・メッセージを取得および設定し、パラメータを解析し、OSGiインポータ・サービスのカーディナリティを戻し、サービス・クラスをロードするためのインタフェースおよびクラスが実装されています。

カートリッジ・フレームワーク

com.oracle.cep.cartridgeパッケージには、データ・カートリッジ・フレームワークを構成するインタフェースおよびクラスが用意されています。データ・カートリッジ・フレームワークは、ユーザーおよびベンダーがOracle CQL機能を拡張するためにカートリッジを作成できるようにするService Provider Interface (SPI)です。『Oracle CQLデータ・カートリッジによるアプリケーションの開発』のOracle CQLデータ・カートリッジ・フレームワークに関する項を参照してください。

Springのサポート

com.bea.wlevs.spring.supportパッケージには、Oracle Event ProcessingアプリケーションでSpringの機能を使用するためのインタフェースおよびクラスが用意されています。

1.8 Springフレームワーク

Springフレームワークには、移植可能で柔軟性の高いエンタープライズ・アプリケーションを作成するために使用できる、JavaベースのAPIと構成モデルが用意されています。

Springの詳細は、次を参照してください。

1.9 OSGiサービス・プラットフォーム

OSGiサービス・プラットフォームには、OSGIバンドル(モジュール)を動的にインストール、更新または削除できる動的アプリケーション実行環境が用意されています

OSGiの詳細は、次を参照してください。

サービス注釈

com.bea.wlevs.util.Service (@Service)注釈では、OSGiサービス参照が挿入されたコンポーネントのメソッドを指定します。通常、このアノテーションは、必要に応じてJavaBeanセッター・メソッドに追加します。@Service注釈には次の属性があります。

表1-1 com.bea.wlevs.util.Service JWS注釈タグの属性

名前 説明 データ型 必須?

serviceBeanName

挿入されたサービスをサポートするBeanの名前。nullに設定できます。

String

いいえ

cardinality

この属性の有効な値は次のとおりです:

  • ServiceCardinality.C0__1

  • ServiceCardinality.C0__N

  • ServiceCardinality.C1__1

  • ServiceCardinality.C1__N

デフォルト値はServiceCardinality.C1__1です。

enum

いいえ

contextClassloader

この属性の有効な値は次のとおりです:

  • ServiceClassloader.CLIENT

  • ServiceClassloader.SERVICE_PROVIDER

  • ServiceClassloader.UNMANAGED

デフォルト値はServiceClassloader.CLIENTです。

enum

いいえ

timeout

サービス解決のタイムアウト(ミリ秒単位)。

デフォルト値は30000です。

int

いいえ

serviceType

挿入するサービスのインタフェース(またはクラス)。

デフォルト値はService.classです。

Class

いいえ

filter

一致するサービスを絞り込むフィルタを指定します。値はnullでもかまいません。

String

いいえ

次の例は、@Service注釈の使用方法を示しています。その他の例は、イベント・タイプ・リポジトリへのアクセスを参照してください。

@Service(filter = "(Name=StockDs)")
public void setDataSourceService(DataSourceService dss) {
    initStockTable(dss.getDataSource());
}