bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA ノーティフィケーション・サービス > Introductory サンプル・アプリケーションのビルド |
Tuxedo CORBA ノーティフィケーション・サービス
|
Introductory サンプル・アプリケーションのビルド
ここでは、以下の内容について説明します。
概要
Introductory サンプル・アプリケーションでは、ニュースのレポータが記事をポストし、ニュースのサブスクライバがその記事を消費するニュース閲覧環境をシミュレートします。
Introductory サンプル・アプリケーションには、2 つのインプリメンテーションが用意されています。1 つは BEA シンプル・イベント・アプリケーション・プログラミング・インターフェイス (API) を使用する C++ プログラミング言語のインプリメンテーション、もう 1 つは CosNotification サービス API を使用する Java のインプリメンテーションです。
Introductory サンプル・アプリケーションは、Reporter と Subscriber の 2 つのアプリケーションとノーティフィケーション・サービスで構成されます。Reporter アプリケーションは、ユーザにニュース記事の入力を要求し、そのニュース記事を BEA Tuxedo CORBA ノーティフィケーション・サービスにイベントとしてポストするクライアント・アプリケーションをインプリメントします。Subscriber アプリケーションは、イベントをサブスクライブおよびアンサブスクライブするときにはクライアントとして機能し、イベントを受信するときにはサーバとして機能する共同クライアント/サーバ・アプリケーションをインプリメントします。イベントを受信するために、サブスクライバではノーティフィケーション・サービスによってイベント配信が必要なときに呼び出されるコールバック・オブジェクトをインプリメントします。
Introductory サンプル・アプリケーションは、ノーティフィケーション・サービスの最もシンプルな使い方を示します。このサンプル・アプリケーションでは、BEA シンプル・イベント API、CosNotification API、一時的なサブスクリプション、および一時的なオブジェクト・リファレンスの使い方が例示されます。永続的なサブスクリプションまたはデータのフィルタ処理の使い方は示されません。永続的なサブスクリプションおよびデータのフィルタ処理が使用されるサンプル・アプリケーションについては、Advanced サンプル・アプリケーションのビルドを参照してください。
この Introductory サンプル・アプリケーションでは、次の 2 つの実行可能ファイルが提供されます (図5-1 を参照)。
図 5-1 Introductory サンプル・アプリケーションの構成要素
イベント・ポスト元 (Reporter アプリケーション) では、構造化イベントの domain_name、type_name、および filterable_data フィールドを使用してイベントを作成します。ドメイン名は業界を定義します。このアプリケーションでは、domain_name は「News」に設定します。type_name はその業界でのイベントの種類を定義し、ニュース記事のカテゴリに設定されます (「Sports」など)。この値はアプリケーションのユーザが指定します。filterable_data フィールドでは、「Story」というフィールドを追加します。このフィールドは、ポストされるニュース記事のテキストを格納します。このテキストもアプリケーションのユーザが指定します。
Subscriber アプリケーションでは、構造化イベントの domain_name フィールドと type_name フィールドを使用してノーティフィケーション・サービスのサブスクリプションを作成します。サブスクリプションでは、domain_name が「News」の内容の固定文字列として定義されます。実行時に、Subscriber アプリケーションではユーザに「ニュース・カテゴリ」を問い合わせ、その入力を使用してサブスクリプションの type_name フィールドを定義します。当然、両アプリケーション (レポータとサブスクライバ) のユーザが協力し、サブスクリプションの「ニュース・カテゴリ」文字列がイベントと一致するようにしなければなりません。そうしないと、サブスクライバにイベントは配信されません。サブスクリプションでは、記事の本文が文字列であり、その記事が構造化イベントの filterable_data フィールドの最初の名前/値ペアにあるものと想定され、filterable_data フィールドのチェックが行われることはありません。
イベントをポストするために、Reporter アプリケーションでは push_structured_event メソッドを使用してニュース・イベントをノーティフィケーション・サービスにプッシュします。各イベントについて、Reporter アプリケーションでは「ニュース・カテゴリ」 (「Sports」など) と記事 (複数行のテキスト文字列) をユーザに問い合わせます。
Subscriber アプリケーションでは、ノーティフィケーション・サービスを呼び出してニュース・イベントをサブスクライブします。各サブスクリプションについて、Subscriber アプリケーションでは「ニュース・カテゴリ」 (「Sports」など) をユーザに問い合わせます。Subscriber アプリケーションでは、ニュース・イベントを受信して処理するためのコールバック・オブジェクトも (NewsConsumer_i サーバント・クラスを通じて) インプリメントします。Subscriber がサブスクライブするときには、このコールバック・オブジェクトのオブジェクト・リファレンスがノーティフィケーション・サービスに渡されます。一致するイベントが発生すると、つまりサブスクリプションとニュース・カテゴリが一致するイベントが Reporter によってポストされると、ノーティフィケーション・サービスではコールバック・オブジェクトの push_structured_event メソッドを呼び出してサブスクライバのコールバック・オブジェクトにイベントを配信します。このメソッドでは、イベントが出力され、ノーティフィケーション・サービスの unsubscribe メソッドを呼び出してサブスクリプションが取り消され、Subscriber がシャットダウンされます。簡略化のため、push_structured_event メソッドでは domain_name、type_name、length、および name フィールドが一致し、記事が value フィールドにあるものと想定されます。
注記 「ニュース・カテゴリ」は、Reporter のユーザと Subscriber のユーザが合意した文字列です。このサンプルには固定のカテゴリはありません。したがって、Reporter のユーザと Subscriber のユーザが両者とも、カテゴリが要求されたときに (大文字と小文字の区別およびスペースの有無を含めて) 同じ文字列を入力しなければなりません。
このサンプルを実行するには、Reporter アプリケーションと Subscriber アプリケーションを少なくとも 1 つずつ起動する必要があります (それぞれ複数を実行することも可能)。Reporter によってポストされたイベントは、(「ニュース・カテゴリ」に基づいて) 一致するすべてのサブスクライバに配信されます。
また、サブスクライバは必ずイベントをポストする前に起動してください。そうしないと、イベントが失われます。
Introductory サンプル・アプリケーションのビルドと実行
Introductory サンプル・アプリケーションをビルドして実行するには、次の手順を行う必要があります。
これらの手順は、次の節でさらに詳しく説明されます。
環境変数の設定を確認する
Introductory サンプル・アプリケーションをビルドして実行する前に、システムで TUXDIR 環境変数が設定されていることを確認する必要があります。ほとんどの場合、この環境変数はインストール手順の一環として設定済みです。ただし、環境変数をチェックして、正しい情報を反映していることを確認する必要があります。
表 5-1 は、Introductory サンプル・アプリケーションを実行するために必要な環境変数のリストです。
インストール中に定義された環境変数の情報が正しいことを確認するには、以下の手順に従います。 Windows
UNIX
ksh prompt>printenv TUXDIR
ksh prompt>printenv JAVA_HOME
設定を変更するには、以下の手順に従います。
Windows
UNIX
ksh prompt>export TUXDIR=directorypath
ksh prompt>export JAVA_HOME=directorypath
または
csh> setenv TUXDIR=directorypath
csh> setenv JAVA_HOME=directorypath
Introductory サンプル・アプリケーションのファイルを作業ディレクトリにコピーする
Introductory サンプル・アプリケーションのファイルと common ディレクトリのファイルをローカル・マシンの作業ディレクトリにコピーする必要があります。
注記 アプリケーション・ディレクトリと common ディレクトリは同じ親ディレクトリにコピーしなければなりません。
ファイルは、次のディレクトリに配置されています。
Windows
C++ の Introductory サンプル
drive:¥tuxdir¥samples¥corba¥notification¥introductory_simple_cxx
drive:¥tuxdir¥samples¥corba¥notification¥common
Java の Introductory サンプル
drive:¥tuxdir¥samples¥corba¥notification¥introductory_cos_java
drive:¥tuxdir¥samples¥corba¥notification¥common
UNIX
C++ の Introductory サンプル
/usr/local/tuxdir/samples/corba/notification/
introductory_simple_cxx
/usr/local/tuxdir/samples/corba/notification/common
Java の Introductory サンプル
/usr/local/tuxdir/samples/corba/notification/
introductory_simple_cxx
/usr/local/tuxdir/samples/corba/notification/common
表 5-2 と 表 5-4 のファイルは、BEA シンプル・イベント API を使用してインプリメントされる C++ Introductory サンプル・アプリケーションをビルドして実行するために使用します。表 5-3 と 表 5-4 のファイルは、CosNotification API を使用してインプリメントされる Java Introductory サンプル・アプリケーションをビルドして実行するために使用します。
表 5-4 は、Introductory サンプル・アプリケーションで使用されるほかのファイルのリストです。
Introductory サンプル・アプリケーションのファイルに対する保護属性を変更する BEA Tuxedo CORBA ソフトウェアのインストール時に、サンプル・アプリケーションのファイルは読み取り専用に設定されます。Introductory サンプル・アプリケーションのファイルを編集またはビルドするには、作業ディレクトリにコピーしたファイルの保護属性を次のように変更する必要があります。 Windows
UNIX
UNIX システムでは、次のように setenv.ksh のパーミッションを変更して実行可能にすることも必要です。
ksh prompt>chmod +x setenv.ksh
環境を設定する
環境を設定するには、次のコマンドを入力します。
Windows
prompt>.¥setenv.cmd
UNIX
ksh prompt>. ./setenv.ksh
Introductory サンプル・アプリケーションをビルドする
makefile を実行するには、make コマンドを使用します。makefile は、Microsoft Windows および UNIX の両方でサンプル・アプリケーションをビルドするために使用します。UNIX では、make を使用します。Microsoft Windows では、nmake を使用します。
makefile の概要
makefile では、次の手順が自動的に行われます。
makefile を実行する
makefile を実行する前に、次の確認作業を行う必要があります。
Introductory サンプル・アプリケーションをビルドするには、make コマンドを次のように入力します。
Windows
nmake -f makefile.nt
UNIX
make -f makefile.mk
Introductory サンプル・アプリケーションを起動する
Introductory サンプル・アプリケーションを起動するには、次のコマンドを入力します。
Introductory サンプル・アプリケーションの使い方
Introductory サンプル・アプリケーションを使用するには、Subscriber アプリケーションを使用してイベントをサブスクライブし、Reporter アプリケーションを使用してイベントをポストする必要があります。サブスクライブは、各イベントをポストする前に行う必要があります。そうしないと、イベントは失われます。
注記 Subscriber アプリケーションは、イベントを 1 つ受信した後にシャットダウンされます。
Subscriber アプリケーションを使用したイベントのサブスクライブ
次の手順を行います。
Reporter アプリケーションを使用したイベントのポスト
次の手順を行います。
システムのシャットダウンとディレクトリのクリーン・アップ
次の手順を行います。
注記 Reporter プロセスと Subscriber プロセスが停止していることを確認してください。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |