Oracle Edge Analyticsは、埋込み環境(Java Embedded Suite (JES)でサポートされている環境など)のイベント処理アプリケーションをサポートするために設計されたイベント処理サーバーです。Oracle Edge Analyticsの機能は、Oracle Event Processingの機能のサブセットとなっています。
Oracle Edge Analyticsにはderbyライブラリとjerseyライブラリが組み込まれているため、Java Embedded Suite (JES)への依存度は少なくなっています。
このガイドでは、Oracle Edge Analyticsを紹介し、インストール情報について説明します。Oracle Event Processingの詳細は、Oracle Event Processingスタート・ガイドを参照してください。
この章の内容は次のとおりです。
イベント処理アプリケーションは、イベントを表す大量のストリーミング・データを受け取る可能性があり、そのイベント・データに基づいてリアルタイムで応答します。Oracle Edge Analyticsは、多くの場合イベント・ソースまたはその近くにある埋込み環境にデプロイされたアプリケーションをサポートします。これらの環境には、環境条件などのセンサーや、車両またはモバイル機器などの移動するソースが含まれます。
これらの場所にイベント処理アプリケーションをデプロイすることにより、イベント・ソースまたはその近くにあるイベントをフィルタ処理し、エンタープライズ・サーバー上のOracle Event Processingを含む、その他のサーバー・リソースの中を流れるネットワーク・トラフィックの量を減らすことができます。
このリリースでOracle Edge AnalyticsはEquinox 3.6からEquinox 3.8.1に移行されました。
Oracle Edge Analyticsには、Oracle Event Processingで使用可能な機能のサブセットが含まれます。また、埋込み環境に固有の機能も含まれます。含まれている機能および省略されている機能のリストは、機能を参照してください。
この項のユース・ケースでは、Oracle Edge Analyticsに固有の用途を説明します。
温度分析
ある会社が、部分的に住宅用サーモスタットの温度イベントを監視することにより、スマート・ホーム・サービスを提供しています。この会社では、イベント分析に対してよりきめ細かな制御を行い、ネットワーク・トラフィックを削減したいと考えています。
会社では、多くの場所に設置されているサーモスタットからインターネットを介して温度イベントを受信しています。サーモスタットから得られたデータを使用して、パターンおよび考えられるアラート条件を特定します。
サーモスタット装置に埋め込まれているOracle Edge Analyticsアプリケーション内で、Oracle CQL問合せにより、イベント・データが集計され、しきい値分析が実行されてから、インターネットを介してイベントが送信されます。結果的に、受信されたイベントは、注目に値するものとすでに見なされています。
サーバー室の監視
データ管理デバイスおよびサービスを提供するある企業は、総所有コストを削減するため、データ・センターのコーディネーションとエネルギ管理を改善する必要があります。この企業にとって必要なのは、より詳細なセンサーおよびデータ・センターのレポートです。
この企業は現在、異種リソースからエネルギー使用状況に関するセンサー・データを受信しています。各センサーからのデータを個別に分析し、その妥当性を確認した上で、他のセンサーからのデータと集約し、エネルギーをより効率的に使用できるパターンを特定する必要があります。
個別にデプロイされるOracle Event Processingアプリケーションは、2層のアプローチを提供します。1つの層では、ネットワークのいちばん端にあるセンサーが、データをゲートウェイ・デバイスに送信するイベント・ソースとなっています。これらのデバイスではJava Standard Edition EmbeddedとOracle Edge Analyticsが実行されています。
デバイス上で実行されているOracle Edge Analyticsアプリケーションは、Oracle Continuous Query Language (Oracle CQL)を使用して、センサーによって生成されたイベントを問合せ、フィルタ処理します。フィルタリングの条件を満たすイベント・データのみが、Oracle Event Processingアプリケーションが稼働するデータセンターのバックエンド・サーバーに送信されます。サーバー上のOracle Event Processingアプリケーションは、必要に応じて警告を送信し、システム全体からデータを集計および相関付けして一貫性の問題を識別し、パターンに関するレポートで使用するデータを生成します。
送電網の近代化
送電網の再起動を回避し数百万ドルのコスト削減を実現するため、フィールド・ネットワークの監視を検討している企業があります。通信の確立には軽量のフレームワークを使用するIPを使用する必要があります。
デプロイしたEDGEデバイスがOracle Edge Analyticsを使用してノード間の通信を確立し、マスターEDGEデバイスが電圧情報や電気品質、健全性ステータスを中央の管理システムに送信します。このソリューションで運用コストを大幅に削減できます。
この項では、Oracle Edge Analyticsでサポートされている機能とサポートされていない機能を示します。
Oracle Edge Analyticsには、Oracle Event Processingで提供されている機能のサブセットが含まれます。このサブセットは、埋込み環境におけるイベント処理の特定のアプリケーション・ニーズをサポートします。
注意:
ツールによってサポートされていない、埋込みアプリケーション内の機能の使用に関しては、ツール関連の警告はありません。Oracle Edge Analyticsアプリケーションの開発にOracle JDeveloperを使用する際は、サポートされている機能のみを使用してください。
|
表1-1 Oracle Edge Analyticsに含まれている機能
|
表1-2は、Oracle Edge AnalyticsでサポートされていないOracle Event Processingの機能を示しています。これらの機能を使用するアプリケーションをデプロイしようとすると、デプロイメントまたはランタイムのエラーや障害が発生する場合があります。
|
表1-2 Oracle Edge Analyticsに含まれていない機能
|
注意:
ロード・ジェネレータやCSVアダプタなど、一部のサポート外の機能は、埋込み環境にアプリケーションをデプロイする前に削除すれば、開発の初期段階で使用できます。
Oracle Edge Analyticsは、Java Standard Edition Embedded 1.7.*および1.8.*のJava仮想マシン・サーバーを実行できるプラットフォーム上で実行します。ただし、サーバーJava仮想マシンがサポートされているのは次のプロセッサのみです。
ARM v7 Hard Float
ARM v7 Soft Float
i586.
注意:
上記以外のプロセッサを使用する場合は、クライアントJava仮想マシンを使用してください。
次の表は、サポートされているプラットフォームのマトリックスです。
表1-3 サポートされているプラットフォーム
| プラットフォーム | オペレーティング・システム(OS) |
| Linux | x86-64、oel6/oel5 |
| Raspberry Pi | 32ビットRaspbian GNU/Linux 7 \n \l |
注意:
Raspberry Piデバイス上のARMでJDKバージョン8 Update 6を使用してOracle Event Processing Serverのデフォルト・ドメインを起動しようとすると、次のエラーが表示されます。
Error occurred during initialization of VM Server.VM is only supported on ARMv7+ VFP.
この問題を解決するには、startwlevs.shファイルでJVM引数内の-serverを、-clientに置換します。
次の表は、Oracle Edge AnalyticsおよびOracle Edge Analytics with Eurotech BundlesでサポートされるJavaプラットフォームをまとめたものです。
|
表1-4 サポートされるJavaバージョン
|
事前ロードと事後ロードは、Oracle Event Processingバンドルのロード前後にユーザー定義バンドルをロードする機能です。
事前ロードと事後ロード用に次のファイルを作成します。
事前ロード用: <domain>/<server>/modules/extフォルダにoep_domain_pre.xml
事後ロード用: <domain>/<server>/modulesフォルダにoep_domain_post.xml
注意:
これらのファイルには、ロードするバンドルをbundleloader.xmlファイルと同じ形式で含めることができます。oep_domain_pre.xmlではstartlevelは無視されます(Oracle Event Processingバンドルより前にロードされる必要があるため)。<bundleloader> <bundle> <startlevel>1</startlevel> <location>user_projects/domains/oep_domain/defaultserver/customer/plugins</location> <name>org.eclipse.equinox.console_1.0.0.v20120522-1841.jar</name> </bundle> </bundleloader>
startlevelはバンドルを起動する順番を示します。同じstartlevelを持つバンドルは、xmlファイル内での順番どおりにロードされます。startlevelの数を4から6程度に抑えることがベスト・プラクティスとされています。1から起動できます。startlevelを省略することもできます。省略する場合、デフォルトのstartlevelから起動します。このメカニズムでは、バンドルを起動するオフセットがOracle Event Processingバンドルのstartlevelを基準に計算されます。オフセットについて特に考慮する必要はありません。locationで、バンドルのロード元のパスを指定します。このパスはOracle Event Processingインストール・ディレクトリを基準にした相対パスです。nameはロードするバンドルの名前です。
<domain>/<server>/modules/extフォルダ内のoep_domain_pre.xml
このファイルに含まれているバンドルはOracle Event Processingバンドルより先にロードされるため、startlevelは無視されます。<domain>/<server>/modules/extフォルダ内のoep_domain_pre.xmlでバンドルderby1.jarを定義すると、Oracle Event ProcessingがOracle Event Processingバンドルを起動する前に、derby1.jarをstartlevel 3で起動します。
<bundle> <location>customer/plugin</location> <name>derby1.jar</name> </bundle> 163|Active | 3|file:/scratch/<username>/Oracle/embedded-release-12.1.3.0-SNAPSHOT-oep/oep/../customer/plugin/derby1.jar
<domain>/<server>/modulesフォルダ内のoep_domain.post.xml
このファイル内のバンドルはOracle Event Processingバンドルより後にロードされます。startlevelはバンドルを起動する順序を示します。startlevelの値が正または負の値であるかの検証は行われません。コードでは検証が行われないため、xmlファイルを検証する必要があります。
<?xml version="1.0" ?> <bundleloader> <bundle> <startlevel>4</startlevel> <location>customer/plugin</location> <name>derby1.jar</name> </bundle> </bundleloader> 200|Active | 8|file:/scratch/<username>/Oracle/embedded-release-12.1.3.0-SNAPSHOT-oep/oep/../customer/plugin/derby1.jar
Oracle Edge Analyticsでは、データベース・アクセス用にJava DB、RESTful Webサービス・サポート用にJersey、およびJava Standard Edition Embedded JREなどのJava Embedded Suite (JES)テクノロジをサポートしています。jconsoleを使用して、リモートからOracle Edge Analyticsを監視できます。
JESのドキュメントについては、http://www.oracle.com/technetwork/java/embedded/resources/java-embedded-suite/index.htmlを参照してください。
Oracle Edge Analyticsをサポートするフレームワークの一部であるテクノロジについて、次に説明します。
データベース・アクセス
Oracle Edge AnalyticsはJava DBデータベース・エンジン(Derbyプロジェクトに基づく)をサポートしています。クライアント・モードまたは埋込みサーバー・モードのいずれかでJava DBを使用できます。Java DBデータベースへのアクセスを有効にするには、サーバー構成ファイルでデータ・ソースを構成します。Oracle Edge Analytics 12cには、Derby Embedded JDBCドライバとOracle DB JDBCドライバのみが含まれています。その他のJDBCドライバについては、自分自身でドライバを適切な場所にコピーしてください。
表1-5は、Derbyのドライバとそれらの取得方法を示しています。
表1-5 Java DBへのアクセスをサポートするDerbyドライバの場所
| ドライバ | 場所 |
|---|---|
Embedded Java DBドライバ |
Embeddedドライバ |
Java DBクライアント・ドライバ(リモートJava DBへのクライアント・アクセスに使用されます) |
クライアント・ドライバ |
ドライバJARファイルを作成したら、Oracle Edge Analyticsサーバー・ファイル・システムの次の場所にコピーします。
DOMAIN_HOME\SERVER_HOME\modules\ext
ドライバJARが適切な場所にある場合、サーバーconfig.xmlファイルに追加するdata-source要素を介してデータソースを構成できます。
Webサーバー
Oracle Edge AnalyticsはJetty Webサーバーを含み、Java Servlet APIをサポートしています。標準的なorg.osgi.service.http.HttpServiceインタフェースもサポートされており、サーブレットを動的に登録することができます。
注意:
config.xmlファイル内のデフォルトのJetty Web Server名は変更しないでください。この名前を変更すると、Oracle Event Processingサーバーがクラッシュします。キャッシュ・サポート
Oracle Event Processingと同様に、Oracle Edge Analyticsには簡易的なキャッシュ・サポートが含まれています。このローカル・キャッシュを使用して、キャッシュされたデータにアクセスするアプリケーションを作成し、迅速な処理を実現することができます。Oracle Coherenceはサポートされていません。
ローカル・キャッシュの詳細は、Oracle Event Processingアプリケーションの開発を参照してください。
REST Webサービスのサポート
Oracle Edge Analyticsアプリケーションの様々な側面を公開するWebサービスを実装できます。Oracle Edge Analyticsでは、Oracle Edge Analyticsに組み込まれているJerseyライブラリを使用して、JAX-RS標準に基づくRESTful Webサービスを実装できます。Jerseyは、Java API for RESTful Web Services (JAX-RS)規格の参照実装です。
Oracle Edge AnalyticsアプリケーションでRESTサポートを有効にする方法の詳細は、REST Webサービスのサポートを参照してください。
Jerseyの詳細は、『Jersey User Guide』(http://jersey.java.net/nonav/documentation/latest/user-guide.html)を参照してください。
構成ウィザードを使用して、Oracle Edge Analyticsをデプロイする新しいドメインを作成します。Oracle Edge Analyticsは、サイレント・モード(ドメインを作成および構成するための非対話的な方法)での構成ウィザードをサポートしています。
構成ウィザードは、ドメインに単一のデフォルト・サーバーを作成します。すべてのサーバー関連のファイルは、サーバーと同じ名前のドメイン・ディレクトリのサブディレクトリに格納されています。
注意:
公開鍵証明書には、そのcn名として完全ホスト名が含まれている必要があります。この場合、証明書の別名はevsidentityにしてください。
silent.xmlファイルの作成silent.xmlファイルを作成する手順を説明します。|
表1-6 silent.xmlファイルのデータ値名
|
|
表1-7 構成ウィザードのサイレント・モードの終了コード
|
Oracle Edge Analyticsアプリケーションを、Oracle JDeveloperを使用して開発できます。Oracle JDeveloperの詳細は、Oracle Event Processingスタート・ガイドを参照してください。
埋込みアプリケーションの開発時には、使用する機能のセットを、Oracle Edge Analyticsでサポートされている機能に制限する必要があります。
注意:
Oracle JDeveloperでは、現在、作成した埋込みアプリケーションが、埋込み環境でデプロイおよび実行可能であることを確認するためのサポートを提供していません。たとえば、Oracle JDeveloperは、埋込みアプリケーションにサポート対象外の機能が含まれているかの検証を行いません。
Oracle Edge Analyticsのサポート対象外の機能を使用してアプリケーションを作成した場合(Oracle JDeveloperを使用するかどうかに関係なく)、デプロイ時のエラーや実行時の失敗が発生する可能性があります。
Oracle Edge Analyticsに含まれているOracle Event Processingの機能、およびOracle Edge Analyticsから除外されているOracle Event Processingの機能のリストについては、機能を参照してください。
Oracle Edge Analyticsには、Smart Applianceサンプル・アプリケーションが含まれます。アプリケーションは、ソケット接続を介してデバイスのイベントをリスニングします。デバイス・イベントは、デバイス情報およびそれに関連付けられている値を表します。各デバイスのしきい値は、JavaDBデータベースに保存されます。アプリケーション・プロセスがデバイス・イベントを処理する際、イベントの値が指定されたしきい値の制限内に収まらない場合、アプリケーションはアラートを生成します。
実行方法を含むサンプルの詳細は、サンプルに含まれているreadme.txtファイルを参照してください。
Oracle Edge Analyticsのインストールの後に、Smart Applianceアプリケーションは、次のファイル・システムの場所に配置されます。
/<Oracle_Home>/oep/examples/source/smartappliance
Jersey (Oracle Edge Analyticsに組み込まれているJAX-RSの実装)を使用して、アプリケーションからRESTful Webサービスを公開できます。RESTサポートを有効化したら、Javaコードのメソッドに注釈を付け、RESTクライアンのコールが行われたときに実行されるようにすることができます。Smart Applianceサンプル・アプリケーションは、REST対応アプリケーションの例です。
JerseyおよびJAX-RSの詳細は、『Jersey User Guide』(http://jersey.java.net/nonav/documentation/latest/user-guide.html)を参照してください。
REST Webサービスのサポートの有効化
RESTサポートを有効化するには、Jerseyライブラリがアプリケーションのクラスパス上にあることを確認して、RESTリソースとしてメソッドを実装するクラスでそれらを使用できるようにします。また、OSGiサービスを使用してRESTfulクラスを構成し、外部クライアントで使用できるようにします。
次のREST Webサービスがサポートされます。
メディア・タイプがJSON、XML、CSVのインバウンドREST
メディア・タイプがJSONおよびXMLのアウトバウンドREST
REST Webサービスのサポートを有効化するには:
Jerseyライブラリがアプリケーションのクラスパスにあることを確認します。
たとえば、Oracle Edge Analyticsのサーバー・ドメインのmodules/extディレクトリにJARファイルを配置します。12c Oracle Edge Analyticsでは、jersey jarファイルが組み込まれています。
次に示すように、アプリケーションのアセンブリ・ファイルに、OSGi HTTPサービスの参照を含めて、RESTfulクラスを表すBeanに挿入します。
<osgi:reference id="httpServiceRef" interface="org.osgi.service.http.HttpService" /> <!-- Bean declaration with properties for the RESTful service root context and OSGi HTTP service. --> <bean id="bean" class="com.oracle.cep.example.smartappliance.sink.AlertsService"> <property name="rootContext" value="/alerts" /> <property name="httpService" ref="httpServiceRef" /> </bean>
Beanクラス・コードで、HTTPサービスのsetterメソッド(setHttpService(HttpService httpService)など)を指定します。
次のように、RESTサーブレットをOSGi HTTPサービスに登録します。
適切な初期化パラメータを使用して、Jersey ServletContainerインスタンスを作成します。
初期化パラメータで、javax.ws.rs.Applicationプロパティを実装されたJAX-RS Applicationクラス名として設定します。Applicationクラスは、リソース・クラスをロードするクラスです。
次の例に、setHttpService(HttpService httpService) setterメソッドと、OSGiサービスの登録を示します。
public void setHttpService(HttpService httpService)
throws Exception {
Hashtable<String, String> initParams = new Hashtable<String, String>();
initParams.put("javax.ws.rs.Application",
WebApplication.class.getName());
Servlet jerseyServlet = new ServletContainer();
httpService.registerServlet(rootContext, jerseyServlet, initParams, null);
}
インストールに含まれているDeployerコマンドライン・ツールを使用して、Oracle Edge Analyticsアプリケーションをデプロイします。SSL接続または非SSL接続を介してデプロイできます。
このDeployerツールはOracle Event Processing付属のDeployerツールとほぼ同じですが、Oracle Edge Analyticsではクラスタおよびグループ・デプロイはサポートされていません。
注意:
Oracle Edge AnalyticsにはOracle Event Processing Visualizerが含まれていないため、グラフィカル・ユーザー・インタフェースを通したデプロイメントはサポートされていません。
実行中のOracle Edge Analyticsサーバーにアプリケーションをデプロイするには、次のようなコマンドを使用します。
java -jar wlevsdeploy.jar -url http://hostname:9002/wlevsdeployer -user oepadmin -password welcome1 -install myoepapp.jar
次の例は、追加のデプロイメント・シナリオを示しています。
ローカル・サーバーへのデプロイ
java -jar wlevsdeploy.jar -user oepadmin -password welcome1 -url http://localhost:9002/wlevsdeployer -install application
非SSL接続を介したデプロイ
java -jar wlevsdeploy.jar -user oepadmin -password welcome1 -url http://<host>:9002/wlevsdeployer -install application
SSLを介したデプロイ
java -Djavax.net.ssl.trustStore=d:\downloads\evsidentity.jks -Djavax.net.ssl.trsutStorePassword=welcome1 -jar wlevsdeploy.jar -user oepadmin -password welcome1 -url https://<host>:9003/wlevsdeployer -install application
Oracle Edge Analyticsアプリケーションは、wlevs.Adminコマンドライン・ツールおよびJava Management Extensions (JMX)を使用して管理できます。JMXまたはwlevs.Adminのいずれを使用する場合でも、Oracle Edge Analyticsは、このリリースから省略されている機能を除くすべての機能に対する管理をサポートします。管理機能の詳細は、Oracle Event Processingの管理を参照してください。
省略されている機能のリストは、機能を参照してください。
注意:
Oracle Edge AnalyticsにはOracle Event Processing Visualizerが含まれていないため、グラフィカル・ユーザー・インタフェースを通した管理はサポートされていません。
JMXを使用した管理
Oracle Edge Analyticsは、Oracle Event Processingの場合と同様に、MSA RMIを介したリモートJMX接続をサポートします。特に省略されている機能に関連する機能を除き、ほとんどの構成MBeanおよびランタイムMBeanがサポートされています。たとえば、HttpPubSubAdapterMBean、JMSAdapterMBean、およびモニタリング関連のMBeanは、基礎となる機能がサポートされていないため、サポート外です。
注意:
Java Standard Edition Embedded JREにはJMXローカル・アタッチAPIのサポートが含まれていないため、ローカルの(非RMI) JMX接続はサポートされていません。
wlevs.Adminを使用した管理
Adminコマンドライン・ユーティリティがサポートされており、これにはOracle Event Processingに存在する機能のほとんどが含まれています。サポートされていない機能は、モニタリングまたは記録および再生に関連したコマンドなど、特にサポート外の機能に関連するものです。
たとえば、次の例に示すように、AdminユーティリティのADDRULEコマンドを使用して、ローカルでOracle CQLルールを追加できます。
prompt> java wlevs.Admin -url service:jmx:msarmi://localhost:9002/jndi/jmxconnector -username wlevs -password wlevs ADDRULE -application helloworld -processor helloworldProcessor -query myquery "SELECT * FROM Withdrawal [Rows 5]"
注意:
このリリースでは、-disablesecurity フラグを使用したサーバーの起動はサポートされていません。
policygenコマンドライン・ユーティリティpolicygenコマンドライン・ユーティリティを使用して、eXtensible Access Control Markup Language (XACML)ファイルを生成できます。
policygenユーティリティは/<Oracle_Home>/oep/bin/に格納されています。コマンドには次の構文を使用します。
policygen.sh [-h] [-s] [-l|-x] entitlement_file xacml_output_file
|
表1-8 policygenの引数
|
次に例を示します。
prompt> policygen.sh ~/security/policygen/AuthorizerInit.xml XACMLAuthorizerInit.ldift
Oracle Edge Analyticsは、次のプラットフォームの構成をサポートしています。
Java Standard Edition Embedded 7およびJava Standard Edition Embedded 8
オペレーティング・システム: Linux
ハードウェア:x86またはARM
Oracle Edge Analyticsは、小型のディスクおよびヒープ・フットプリント要件をサポートしています。新規インストールの場合、83MBのディスク領域が必要です。サーバーが起動され、アプリケーションがデプロイされた場合、アプリケーションごとに追加のディスク領域が必要になります。