|
「アプリケーション アセンブリ」という用語は、Java ファイルや XML コンフィグレーション ファイルなどのアプリケーションのコンポーネントを Oracle Complex Event Processing (Oracle CEP) にデプロイ可能な OSGI バンドルにパッケージ化するプロセスを表します。「アプリケーションのデプロイメント」という用語は、Oracle CEP ドメインでクライアント要求を処理するためにアプリケーションを利用できるようにするプロセスです。
Oracle CEP アセンブリおよびデプロイメントのコンテキストでは、アプリケーションは次のアーティファクトを含む OSGi バンドル JAR ファイルとして定義されます。
バンドルの動的なデプロイを計画している場合は、コンフィグレーション ファイルを OSGi バンドル JAR ファイルの META-INF/wlevs ディレクトリに配置する必要があります。アプリケーションがすでにドメイン ディレクトリ内に存在する場合、コンフィグレーション ファイルは同じディレクトリに展開する必要があります。
EPN アセンブリ ファイルは、OSGi バンドル JAR ファイルの META-INF/spring ディレクトリにあります。
MANIFEST.MF ファイル。
OSGI バンドルは、インポートされたパッケージまたは必須のパッケージを指定することで依存関係を宣言します。また、パッケージをエクスポートすることで他のバンドルに機能を提供します。バンドルが他のバンドルに機能を提供する必要がある場合は、Export-Package を使用して、指定されたパッケージを他のバンドルで参照できるようにする必要があります。エクスポートされないすべてのバンドルはバンドルの外部で使用できません。
このデプロイメント バンドルを作成する方法の詳細については、「Oracle CEP アプリケーションのアセンブル : 主な手順」を参照してください。
アプリケーションのアセンブルが完了したら、(wlevsdeploy.jar ファイルにパッケージ化されている) Deployer ユーティリティを使用して、Oracle CEP ドメインに認識させることによりアプリケーションをデプロイします。詳細な手順については、「Oracle CEP アプリケーションのデプロイ : 主な手順」を参照してください。
アプリケーションが Oracle CEP にデプロイされると、コンフィグレーションされたアダプタでは金融データ フィードなどのコンフィグレーションされたイベントに対するリスンが直ちに開始されます。
| 注意 : | Oracle CEP アプリケーションは Spring Framework および OSGi Service Platform の上に構築され、それらの技術およびサービスを広範囲にわたり使用します。Spring および OSGi に関するリファレンスおよび概念情報へのリンクについては、「Spring および OSGi に関する追加情報」を参照してください。 |
Oracle CEP アプリケーションのアセンブルでは、アプリケーションを構成するアーティファクトを OSGi バンドル JAR ファイルにバンドルします。これらのアーティファクトには、コンパイル済みの Java クラス、アプリケーションのコンポーネント (プロセッサやアダプタなど) をコンフィグレーションする XML ファイル、EPN アセンブリ ファイル、および MANIFEST.MF ファイルがあります。
簡略化のために、以下の手順では必要なアーティファクトを含む一時ディレクトリを作成し、その後でこの一時ディレクトリのコンテンツを jar ファイルに構築します。これは単に推奨される方法であり、この方法でアプリケーションをアセンブルすることは必須ではありません。
Spring および OSGi に関するリファレンスおよび概念情報へのリンクについては、「Spring および OSGi に関する追加情報」を参照してください。
| 注意 : | 以下に示すほとんどの手順を実行する、HelloWorld のサンプルのソース ディレクトリにあるサンプルの build.xml Ant ファイルを参照してください。build.xml ファイルは ORACLE_CEP_HOME\ocep_10.3\samples\source\applications\helloworld にあります。ORACLE_CEP_HOME は、d:\oracle_cep などの Oracle CEP メイン インストール ディレクトリです。 |
Oracle CEP アプリケーションをアセンブルするには :
output などの空のディレクトリを作成します。prompt> mkdir output
output ディレクトリに集めます。output/META-INF/spring ディレクトリを作成します。output/META-INF/spring ディレクトリにコピーします。
このファイルの詳細については、「EPN アセンブリ ファイルの作成」を参照してください。
output/META-INF/wlevs ディレクトリを作成します。output/META-INF/wlevs ディレクトリにコピーします。これらの XML ファイルは、「Oracle Complex Event Processing プログラミング モデルの概要」の説明に従って、アプリケーションの作成時に作成されます。MANIFEST.MF ファイルを作成します。
「MANIFEST.MF ファイルの作成」を参照してください。
output ディレクトリのコンテンツが含まれる JAR ファイルを作成します。デフォルトのマニフェスト ファイルではなく、必ず上記の手順で作成した MANIFEST.MF ファイルを指定するようにします。
JAR ファイルには任意の名前を付けることができます。Oracle CEP のサンプルでは、Java パッケージの名前とバージョンを組み合わせた次のような JAR ファイル名を使用します。
com.bea.wlevs.example.helloworld_1.0.0.0.jar
サーバにデプロイされているバンドルを明確にするため、同じような命名規則を使用することを検討してください。
jar タスクの使用に関する情報については、Apache Ant documentation を参照してください。jar コマンドライン ツールの使用に関する情報については、J2SE documentation を参照してください。
MANIFEST.MF ファイルの構造およびコンテンツは OSGi Framework によって指定されています。ファイル内の多くのヘッダの値はアプリケーションまたはビジネスに固有ですが、Oracle CEP では多くのヘッダが必須です。特に、MANIFEST.MF ファイルでは以下が定義されます。
Bundle-Name ヘッダで指定されます。Bundle-SymbolicName ヘッダで指定されます。wlevs.Admin ユーティリティや JMX サブシステムなどのほとんどの Oracle CEP ツールでは、アプリケーションの参照時にバンドルのシンボリック名が使用されます。Bundle-Version ヘッダで指定されます。Import-Package ヘッダで指定されます。Oracle CEP では少なくとも以下のパッケージをインポートする必要があります。Import-Package:
com.bea.wlevs.adapter.defaultprovider;version="2.0.0.0",
com.bea.wlevs.ede;version="2.0.0.0",
com.bea.wlevs.ede.api;version="2.0.0.0",
com.bea.wlevs.ede.impl;version="2.0.0.0",
org.osgi.framework;version="1.3.0",
org.springframework.beans.factory;version="2.0.5",
org.apache.commons.logging;version="1.1.0",
com.bea.wlevs.spring;version="2.0.0.0",
com.bea.wlevs.util;version="2.0.0.0",
org.springframework.beans;version="2.0.5",
org.springframework.util;version="2.0",
org.springframework.core.annotation;version="2.0.5",
org.springframework.beans.factory;version="2.0.5",
org.springframework.beans.factory.config;version="2.0.5",
org.springframework.osgi.context;version="1.0.0",
org.springframework.osgi.service;version="1.0.0"
アダプタのコンフィグレーションを拡張した場合は、以下のパッケージもインポートする必要があります。
javax.xml.bind;version="2.0",
javax.xml.bind.annotation;version=2.0,
javax.xml.bind.annotation.adapters;version=2.0,
javax.xml.bind.attachment;version=2.0,
javax.xml.bind.helpers;version=2.0,
javax.xml.bind.util;version=2.0,
com.bea.wlevs.configuration;version="2.0.0.0",
com.bea.wlevs.configuration.application;version="2.0.0.0",
com.sun.xml.bind.v2;version="2.0.2"
Export-Package ヘッダで指定されます。このヘッダは、1 つまたは複数のアプリケーション クラスを、デプロイされている他のアプリケーションと共有する必要がある場合にのみ指定します。一般的な例には、イベント タイプ JavaBean の共有などがあります。
可能な場合は、実装クラス自体の代わりにインタフェースのみが含まれるパッケージをエクスポートします。エクスポートされたクラスが他のアプリケーションで使用中である場合、クラスをエクスポートしているアプリケーションを完全にアンデプロイすることはできなくなります。
以下は HelloWorld のサンプルからの完全な MANIFEST.MF ファイルです。アダプタのコンフィグレーションが拡張されています。
Manifest-Version: 1.0
Archiver-Version:
Build-Jdk: 1.5.0_06
Extension-Name: example.helloworld
Specification-Title: 1.0.0.0
Specification-Vendor: Oracle.
Implementation-Vendor: Oracle.
Implementation-Title: example.helloworld
Implementation-Version: 1.0.0.0
Bundle-Version: 2.0.0.0
Bundle-ManifestVersion: 1
Bundle-Vendor: Oracle.
Bundle-Copyright: Copyright (c) 2006 by Oracle.
Import-Package: com.bea.wlevs.adapter.defaultprovider;version="2.0.0.0",
com.bea.wlevs.ede;version="2.0.0.0",
com.bea.wlevs.ede.impl;version="2.0.0.0",
com.bea.wlevs.ede.api;version="2.0.0.0",
org.osgi.framework;version="1.3.0",
org.apache.commons.logging;version="1.1.0",
com.bea.wlevs.spring;version="2.0.0.0",
com.bea.wlevs.util;version="2.0.0.0",
net.sf.cglib.proxy,
net.sf.cglib.core,
net.sf.cglib.reflect,
org.aopalliance.aop,
org.springframework.aop.framework;version="2.0.5",
org.springframework.aop;version="2.0.5",
org.springframework.beans;version="2.0.5",
org.springframework.util;version="2.0",
org.springframework.core.annotation;version="2.0.5",
org.springframework.beans.factory;version="2.0.5",
org.springframework.beans.factory.config;version="2.0.5",
org.springframework.osgi.context;version="1.0.0",
org.springframework.osgi.service;version="1.0.0",
javax.xml.bind;version="2.0",
javax.xml.bind.annotation;version=2.0,
javax.xml.bind.annotation.adapters;version=2.0,
javax.xml.bind.attachment;version=2.0,
javax.xml.bind.helpers;version=2.0,
javax.xml.bind.util;version=2.0,
com.bea.wlevs.configuration;version="2.0.0.0",
com.bea.wlevs.configuration.application;version="2.0.0.0",
com.sun.xml.bind.v2;version="2.0.2"
Bundle-Name: example.helloworld
Bundle-Description: WLEvS example helloworld
Bundle-SymbolicName: helloworld
Oracle CEP アプリケーションの作成時には、既存のサードパーティ JAR ファイル内のレガシー ライブラリにアクセスする必要がある場合があります。このレガシー コードへのアクセスを保証する 2 つの方法があります。
ただし、Oracle CEP アプリケーションでサードパーティ JAR ファイルのクラスが必ず見つかるようにするため、MANIFEST.MF ファイルに Bundle-Classpath ヘッダを追加してアプリケーション クラスパスを更新する必要があります。Bundle-Classpath をクラスおよびリソースの検索場所となる JAR ファイル パス名のカンマ区切りのリストに設定します。バンドル自身を指定するには、ピリオド (.) を使用します。例を示します。
Bundle-Classpath: ., commons-logging.jar, myExcitingJar.jar, myOtherExcitingJar.jar
ネイティブ ライブラリにアクセスする必要がある場合は、それらも JAR ファイルにパッケージ化し、MANIFEST.MF ファイルの Bundle-NativeCode ヘッダを使用して JAR の場所を指定する必要があります。
java コマンドに -Xbootclasspath/a オプションを指定することで、JAR ファイルをサーバの起動クラスパスに追加できます。
サーバの起動スクリプト名は startwlevs.cmd (Windows) または startwlevs.sh (UNIX) であり、スクリプトはドメイン ディレクトリ内のサーバ ディレクトリにあります。用意されているサンプル ドメインは ORACLE_CEP_HOME/ocep_10.3/samples/domains にあります。ユーザ ドメインは ORACLE_CEP_HOME/user_projects/domains にあります。ORACLE_CEP_HOME は、d:\oracle_cep などの Oracle CEP メイン インストール ディレクトリです。
wlevs_2.0.jar ファイルを実行する java コマンドに -Xbootclasspath/a オプションを追加して、起動スクリプトを更新します。-Xbootclasspath/a オプションにシステム全体でアクセスする必要があるサードパーティ JAR ファイルの完全なパス名を設定します。
たとえば、デプロイされているすべてのアプリケーションから e:\jars\myExcitingJAR.jar という JAR ファイルにアクセスできるようにする場合は、起動スクリプトの java コマンドを以下のように更新します (太字部分が更新箇所です)。
%JAVA_HOME%\bin\java -Dwlevs.home=%USER_INSTALL_DIR% -Dbea.home=%BEA_HOME% -Xbootclasspath/a:e:\jars\myExcitingJAR.jar -jar "%USER_INSTALL_DIR%\bin\wlevs_2.0.jar" -disablesecurity %1 %2 %3 %4 %5 %6
以下の手順では、Deployer ユーティリティを使用してアプリケーションを Oracle CEP にデプロイする方法について説明します。ここでは、「Oracle CEP アプリケーションのアセンブル : 主な手順」の説明に従ってアプリケーションがアセンブルされていることを想定しています。
特にこの節で示すオプションのほかにユーティリティでサポートされているオプションなどを含む、Deployer ユーティリティの完全なリファレンス情報については、「Deployer コマンドライン リファレンス」を参照してください。Spring および OSGi に関するリファレンスおよび概念情報へのリンクについては、「Spring および OSGi に関する追加情報」を参照してください。
ORACLE_CEP_HOME/ocep_10.3/bin ディレクトリにある wlevsdeploy.jar JAR ファイルを含むように CLASSPATH 変数を更新します。ORACLE_CEP_HOME は、/oracle_cep などの Oracle CEP メイン インストール ディレクトリです。| 注意 : | リモート コンピュータ上で deployer ユーティリティを実行する場合の手順については、「Deployer ユーティリティのリモート実行」を参照してください。 |
Oracle CEP のコンフィグレーションを参照してください。
Deployer ユーティリティを実行します。prompt> java-jar wlevsdeploy.jar-url http://host:port/wlevsdeployer -user user -password password -installapplication_jar_file
host は、Oracle CEP を実行しているコンピュータのホスト名です。port は Oracle CEP がリスンするポート番号であり、その値はデフォルトで 9002 です。このポートは、Oracle CEP ドメインを記述する config.xml ファイルで指定されます。このファイルは DOMAIN_DIR/config ディレクトリにあります (DOMAIN_DIR はドメイン ディレクトリを表します)。ポート番号は、<Netio> 要素の <Port> 子要素の値です。<Netio>
<Name>NetIO</Name>
<Port>9002</Port>
</Netio>user は Oracle CEP 管理者のユーザ名です。password は Oracle CEP 管理者のパスワードです。application_jar_file は、「Oracle CEP アプリケーションのアセンブル : 主な手順」の説明に従って OSGi バンドルにアセンブルされたアプリケーション JAR ファイルです。このファイルは Deployer ユーティリティを実行するのと同じコンピュータに置かれている必要があります。
たとえば、Oracle CEP がホスト ariel 上で実行し、ポート 9002 をリスンし、管理者のユーザ名とパスワードが wlevs/wlevs であり、アプリケーション JAR ファイル myapp_1.0.0.0.jar が /applications ディレクトリに置かれている場合、コマンドは以下のようになります。
prompt> java -jar wlevsdeploy.jar -url http://ariel:9002/wlevsdeployer -user wlevs -password wlevs -install /applications/myapp_1.0.0.0.jar
アプリケーション JAR ファイルが正常にインストールされ、初期化タスクが完了したら、Oracle CEP ではアプリケーションが自動的に起動され、アダプタ コンポーネントでは着信イベントのリスンが直ちに開始されます。
Deployer ユーティリティでは、アプリケーション JAR ファイルの再開、中断、更新、およびアンインストールや、マルチサーバ ドメインの指定のグループへのアプリケーションのデプロイなどのオプションも提供されます。詳細については、「Deployer コマンドライン リファレンス」を参照してください。
Oracle CEP は、deployments.xml ファイルを使用して、デプロイ済みアプリケーションの OSGi バンドルのリストを内部的に維持します。このファイルは DOMAIN_DIR/servername ディレクトリにあります。DOMAIN_DIR はメイン ドメイン ディレクトリであり、アプリケーションのデプロイ先となるサーバ インスタンスに対応します。servername は実際のサーバです。このファイルについては、デプロイメント ファイルの XSD スキーマを参照してください。この情報はあくまでも参考として示しています。deployments.xml ファイルを手動で更新することはお勧めしません。
|