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

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

スタート・ガイドは、Oracle Stream Analyticsの概要を示し、実践的なウォークスルーを提供し、サンプルのアプリケーションについて説明します。このガイドでは、プラットフォームで提供されているコンポーネントでOracle Stream Analyticsアプリケーションを作成、構成およびデプロイする方法について説明します。

この章の内容は次のとおりです。

1.1 EPN図

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

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

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

TradeReportアプリケーションおよび不正検出アプリケーションのウォークスルーも含まれます。

1.2 コンポーネント構成

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

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

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

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

アダプタ

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

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

チャネル

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

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

Oracle CQLプロセッサ

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

Beans

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

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

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

キャッシュ

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

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

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

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

: 表コンポーネントは、リレーショナル・データベースへのアクセスを提供します。ID、イベント・タイプおよびデータ・ソースを使用して表コンポーネントを構成することにより、特定のイベントをリレーショナル・データベース表にフィードします。Oracle Stream Analyticsには、ビッグ・データ・ストレージにアクセスするために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.3 ストリームとリレーション

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

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

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

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

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

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

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

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

select price from StockTradeChannel [range 5 seconds] 

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

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

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

スケーラブルなOracle Stream Analyticsアプリケーションには、イベントの負荷が増加するにつれてアプリケーションの動作がスケーリングされるように、実装規則と構成規則を含むOracle Stream Analyticsの設計パターンが組み込まれています。

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

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

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

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

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

状態名(STARTINGINITIALIZINGRUNNINGSUSPENDINGSUSPENDEDおよびFAILED)はApplicationRuntimeMBeanメソッドのgetStateの戻り値に対応します。このような状態はOracle Stream Analytics専用です。これらはOSGiバンドルの状態ではありません

図1-1は、Oracle Stream Analyticsアプリケーション・ライフサイクルの状態図を示します。

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

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

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

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

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

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

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

  2. Oracle Stream Analyticsにより、(標準のSpring BeanとEPNアセンブリ・ファイル内のOracle Stream Analyticsタグに対応するSpring Beanの両方について) Beanが作成されます。Beanごとに、Oracle Stream Analyticsで次のアクションが実行されます。

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

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

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

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

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

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

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

  4. Oracle Stream AnalyticsでMBeanが登録されます。

  5. Oracle Stream Analyticsで、すべてのActivatableBeansActivatableBean.afterConfigurationActiveメソッドが呼び出されます。

  6. Oracle Stream Analyticsで、すべてのResumableBeansResumableBean.beforeResumeメソッドが呼び出されます。

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

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

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

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

  1. Oracle Stream Analyticsで、すべてのSuspendableBeansSuspendableBean.suspendメソッドが呼び出されます。

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

アプリケーションの再開

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

  1. Oracle Stream Analyticsで、すべてのResumableBeansResumableBean.beforeResumeメソッドが呼び出されます

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

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

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

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

  1. Oracle Stream Analyticsで、すべてのSuspendableBeansSuspendableBean.suspendメソッドが呼び出されます。

  2. Oracle Stream AnalyticsでMBeanが登録解除されます。

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

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

アプリケーションの更新

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

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

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

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

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

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

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

1.6 APIの概要

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

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

すべてのクラスおよびインタフェースの詳細な参照ドキュメント(Javadoc)は、Oracle Stream Analytics Java APIリファレンスを参照してください。

構成

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

アダプタ

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

パッケージ:

  • 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 Stream Analyticsコンポーネントのカスタマイズ』を参照してください。

チャネル

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

イベント・リポジトリ

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

パッケージ:

  • com.bea.wlevs.eventstoreパッケージには、イベント・ストア・リポジトリを管理するためのインタフェースおよびクラスが用意されています。

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

イベントドリブン環境

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

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

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

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

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

JAXB

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

パッケージ:

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

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

キャッシュ

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

パッケージ:

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

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

キャッシュ・ローダー

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

クラスタ・グループ管理

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

管理Bean

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

パッケージ:

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

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

  • com.bea.wlevs.management.diagnosticパッケージには、診断プロファイルを管理するためのインタフェースが用意されています。診断プロファイルは、スループットおよび待機時間をテストするためのアプリケーション・ステージ情報が含まれるXMLファイルです。

  • 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 Stream Analyticsは、アプリケーション設計パターンと高可用性アダプタによって、アプリケーションのバックアップおよびフェイルオーバー処理の能力を強化します。高可用性アプリケーションを参照してください。

パッケージ:

  • 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 Stream Analyticsには、対象と方法に応じて、アプリケーションをテストする様々な方法があります。「テスト1-2-3」を参照してください。

パッケージ:

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

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

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

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

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

Springのサポート

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

1.7 Springフレームワーク

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

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

1.8 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());
}