|
|
Wrapper サンプル・アプリケーション
ここでは、次の内容について説明します。
トラブルシューティング情報については、\wrapper
ディレクトリにある Readme.txt
を参照してください。また、Wrapper サンプル・アプリケーションの使用方法に関する最新の情報も参照してください。
Wrapper サンプル・アプリケーションのしくみ
Wrapper サンプル・アプリケーションでは、学生がクラスに登録したときに学生の口座にクラスの代金が請求され、学生の口座残高が更新されます。また、学生は自身の口座残高を照会できます。
Wrapper サンプル・アプリケーションでは、ATMI サービスを使用します。Billing サーバ・アプリケーションには、Teller
オブジェクトがあります。このオブジェクトは、ATMI アプリケーションの「Teller」を呼び出します。Teller アプリケーションは、次の課金用のオペレーションを実行します。
University データベースは、口座情報を含めるために変更されます。
図 6-1 では、Wrapper サンプル・アプリケーションのしくみを示しています。
図6-1 Wrapper サンプル・アプリケーション
Wrapper サンプル・アプリケーションの開発プロセス
ここでは、CORBA アプリケーションで ATMI サービスをラッピングする際に必要な開発プロセスについて説明します。以下の手順は、Basic サンプル・アプリケーションで概説した開発手順の追加手順です。
注記 この節に記載されている手順はすでに完了しており、Wrapper サンプル・アプリケーションに組み込まれています。
OMG IDL
ATMI サービスをラッピングする際は、ATMI サービスと相互運用するオブジェクト、およびそのオブジェクトを作成するファクトリを定義する必要があります。Wrapper サンプル・アプリケーションの場合、Teller
と TellerFactory
オブジェクトが ATMI サービスとの相互運用を行います。開発プロセスでは、Object Management Group (OMG) インターフェイス定義言語 (IDL) で Teller
および TellerFactory
オブジェクトのインターフェイスを次のように定義します。
オブジェクト |
説明 |
オペレーション |
---|---|---|
|
Teller オブジェクトへのオブジェクト・リファレンスを返します。 |
|
|
ATMI アプリケーションと相互運用して、課金用のオペレーションを実行します。 |
|
また、Balance
フィールドを StudentDetails
構造体に追加する必要があります。クライアント・アプリケーションでは、Balance
フィールドを使用して学生の口座残高を示します。さらに、ユーザ例外 DelinquentAccount
も追加します。
クライアント・アプリケーション
開発プロセスでは、クライアント・アプリケーションにコードを追加して、register_for_courses()
オペレーションによって生成されるユーザ例外 Delinquent Account
を処理します。
サーバ・アプリケーション
開発プロセスでは、Billing サーバ・アプリケーションに以下を記述します。
Teller
オブジェクトの get_balance()
、credit()
、および debit()
オペレーションのメソッド・インプリメンテーション。これらのメソッド・インプリメンテーションには、次の処理を行うコードを含める必要があります。TellerFactory
オブジェクトの find_teller()
オペレーションのメソッド・インプリメンテーション。TellerFactory
オブジェクトを作成および登録し、open_XA_RM
および close_XA_RM
関数を呼び出す Billing サーバ・オブジェクト。開発プロセスでは、University サーバ・アプリケーションに次のコードを追加します。
TellerFactory
オブジェクトの FactoryFinder オブジェクトを取得します。University サーバ・アプリケーションでは、クライアント・アプリケーションの場合と同様に Bootstrap および FactoryFinder オブジェクトを使用します。TellerFactory
オブジェクトへのリファレンスを含めます。TellerFactory
オブジェクトは、Teller
オブジェクトの作成に使用します。Registrar
オブジェクトの get_student_details()
および register_for_courses()
オペレーションのメソッド・インプリメンテーションでは、Teller
オブジェクトの get_balance()
および debit()
オペレーションを呼び出します。 ATMI サービスをラッピングするサーバ・アプリケーションの記述方法については、『BEA Tuxedo CORBA サーバ・アプリケーションの開発方法』を参照してください。
UBBCONFIG ファイル
開発プロセスでは、UBBCONFIG
ファイルに以下の変更を加える必要があります。
UBBCONFIG
ファイルの GROUPS
セクションで次のサーバ・グループを定義します。ORA_GRP
。これには、University サーバ・アプリケーション、Teller アプリケーション、および University データベースのサーバ・アプリケーションが含まれます。このサーバ・グループによって、University サーバ・アプリケーションと Teller アプリケーションの両方から University データベースへのアクセスが可能になります。APP_GRP
。これには、Billing サーバ・アプリケーションが含まれます。UBBCONFIG
ファイルの SERVERS
セクションの順序で起動します。サーバ・アプリケーションの起動順序は次のとおりです。ICF ファイル
開発プロセスでは、Teller
および TellerFactory
オブジェクトの活性化方針とトランザクション方針を定義する必要があります。Teller
および TellerFactory
オブジェクトの各方針は次のように設定します。
Teller
オブジェクトの活性化方針は process
に、トランザクション方針は optional
に設定します。 TellerFactory
オブジェクトの活性化方針は process
に、トランザクション方針は ignore
に設定します。 CORBA オブジェクトの活性化方針とトランザクション方針の定義については、『BEA Tuxedo CORBA サーバ・アプリケーションの開発方法』を参照してください。
Wrapper サンプル・アプリケーションのビルド
Wrapper サンプル・アプリケーションをビルドするには、次の手順に従います。
UBBCONFIG
ファイルをロードします。
以降の節では、上記の各手順について説明します。
注記 Wrapper サンプル・アプリケーションをビルドまたは実行する前に、環境設定の手順を実行しておく必要があります。
Wrapper サンプル・アプリケーションのファイルを作業ディレクトリにコピーする
Wrapper サンプル・アプリケーションの各ファイルは、次のディレクトリにあります。
Windows 2000
drive
:
\TUXDIR
\samples
\corba
\university
\wrapper
UNIX
/usr/
TUXDIR
/samples/corba/university
/wrapper
また、utils
ディレクトリも作業ディレクトリにコピーする必要があります。utils
ディレクトリには、ログ、トレース、および University データベースへのアクセスを設定するファイルが格納されています。
表 6-1 に、Wrapper サンプル・アプリケーションの作成に使用するファイルの一覧を示します。
Wrapper サンプル・アプリケーションのファイル保護の属性を変更する
BEA Tuxedo ソフトウェアのインストール時には、サンプル・アプリケーションは読み取り専用に設定されています。Wrapper サンプル・アプリケーションのファイルを編集または作成するには、次のように作業ディレクトリにコピーしたファイル保護の属性を変更する必要があります。
Windows 2000
prompt>attrib -r drive:
\workdirectory
\*.*
UNIX
prompt>chmod u+rw /
workdirectory
/*.*
環境変数を設定する
次のコマンドを使用して、Wrapper サンプル・アプリケーションのクライアント・アプリケーションとサーバ・アプリケーションのビルドに使用する環境変数を設定します。
Windows 2000
prompt>setenvw
UNIX
prompt>/bin/ksh
prompt>. ./setenvw.sh
University データベースを初期化する
次のコマンドを使用して、Wrapper サンプル・アプリケーションで使用する University データベースを初期化します。
Windows 2000
prompt>nmake -f makefilew.nt initdb
UNIX
prompt>make -f makefilew.mk initdb
UBBCONFIG ファイルをロードする
次のコマンドを使用して、UBBCONFIG
ファイルをロードします。
Windows 2000
prompt>tmloadcf -y ubb_w.nt
UNIX
prompt>tmloadcf -y ubb_w.mk
UBBCONFIG
ファイルの作成プロセスでは、アプリケーション・パスワードの入力が求められます。このパスワードは、クライアント・アプリケーションへのログオンに使用されます。パスワードを入力して Enter キーを押します。その際、パスワードを再入力してパスワードの確認を求めるメッセージが表示されます。
トランザクション・ログを作成する
トランザクション・ログには、CORBA アプリケーションでのトランザクション処理が記録されます。開発プロセスでは、UBBCONFIG
ファイルの TLOGDEVICE
パラメータでトランザクション・ログの場所を定義する必要があります。Wrapper サンプル・アプリケーションの場合、トランザクション・ログは作業ディレクトリに格納されています。
Wrapper サンプル・アプリケーションのトランザクション・ログを開くには、以下の手順に従います。
tmadmin
crdl -b
blocks
-z
directorypath
crlog -m SITE1
この例では、
blocks
にトランザクション・ログに割り当てるブロック数を指定し、directorypath
にトランザクション・ログの場所を指定します。directorypath
オプションは、UBBCONFIG
ファイルの TLOGDEVICE
パラメータで指定した場所と一致しなければなりません。Windows 2000 でのコマンドの例を次に示します。
crdl -b 500 -z c:
\mysamples
\university
\wrapper
\TLOG
Wrapper サンプル・アプリケーションのコンパイル
開発プロセスでは、buildobjclient
および buildobjserver
コマンドを使用して、クライアント・アプリケーションとサーバ・アプリケーションをビルドします。ただし、Wrapper サンプル・アプリケーションの場合は、この手順は不要です。Wrapper サンプル・アプリケーションのディレクトリには、makefile
が格納されています。この makefile により、クライアントとサーバ・サンプル・アプリケーションがビルドされます。
Wrapper サンプル・アプリケーションの CORBA C++ クライアント・アプリケーションとサーバ・アプリケーションをビルドするには、次のコマンドを使用します。
Windows 2000
prompt>nmake -f makefilew.nt
UNIX
prompt>make -f makefilew.mk
CORBA Java クライアント・アプリケーションをビルドするには、次のコマンドを使用します。
Windows 2000
prompt>nmake -f makefilew.nt javaclient
UNIX
prompt>make -f makefilew.mk javaclient
ActiveX クライアント・アプリケーションの起動については、ActiveX クライアント・アプリケーションの起動を参照してください。
buildobjclient
および buildobjserver
コマンドの詳細については、『BEA Tuxedo コマンド・リファレンス』を参照してください。
Wrapper サンプル・アプリケーションの実行
Wrapper サンプル・アプリケーションを実行するには、次の手順に従います。
上記の手順については、以下の節を参照してください。
サーバ・アプリケーションの起動
Wrapper サンプル・アプリケーションでシステムおよびサンプル・アプリケーションのサーバ・プロセスを開始するには、次のコマンドを入力します。
prompt>tmboot -y
このコマンドを入力すると、次のサーバ・プロセスが開始されます。
TMSYSEVT
BEA Tuxedo システムの EventBroker。
TMFFNAME
NameManager サービスや FactoryFinder サービスなどのトランザクション管理サービス。
TMIFSRVR
インターフェイス・リポジトリ・サーバ・プロセス。これは、ActiveX クライアント・アプリケーションでのみ使用されます。
univw_server
University サーバ・プロセス。
tellw_server
ATMI アプリケーション Teller のアプリケーション・プロセス。
billw_server
Billing サーバ・アプリケーション・プロセス。
ISL
IIOP リスナ/ハンドラ・プロセス。
ほかのサンプル・アプリケーションを使用するには、次のコマンドを入力して、システムおよびサンプル・アプリケーションのサーバ・プロセスを停止します。
prompt>tmshutdown
CORBA C++ クライアント・アプリケーションの起動
Wrapper サンプル・アプリケーションの CORBA C++ クライアント・アプリケーションを起動するには、以下の手順に従います。
prompt>univw_client
Enter student id:
」と表示されたら、100001 〜 100010 の任意の
数値を入力します。
Enter domain password:
」と表示されたら、UBBCONFIG
ファイル
をロードしたときに定義したパスワードを入力します。
CORBA Java クライアント・アプリケーションの起動
Wrapper サンプル・アプリケーションの CORBA Java クライアント・アプリケーションを実行するには、以下の手順に従います。
UnivWApplet.html
ファイル内の次の行を変更します。
code="UnivWApplet.class"
codebase=.
上記の行を次のように変更します。
code="UnivWApplet"
archive="UnivWApplet.jar,m3envobj.jar"
UnivWApplet.html
ファイルを Web サーバのソース・ディレクト
リにコピーします。ディレクトリは、Web サーバ製品によって異なります。
makefile
を実行して Wrapper サンプル・アプリケーションをビルドした後、
次のように UnivWApplet.jar
ファイルを作成します。
tmp
ディ
レクトリを作成します。UniversityW
サブディレクトリとその中に格納
されているクラス・ファイルを tmp
ディレクトリにコピーします。
makefile
によって生成された、Wrapper サンプル・アプリケーション・ディレクトリにあるクラス・ファイルを tmp
ディレクトリにコピーします。ディレクトリを tmp
ディレクトリに設定 (cd
) し、次のいずれかのコマンドを入力して、すべての Wrapper サンプル・アプリケーション・クラスを含んだ .JAR
ファイルを作成します。jar -cf ..
\UnivWApplet.jar *.*
(Microsoft Windows 2000 システム) jar -cf ../UnivPWpplet.jar *
(UNIX システム)
UnivWApplet.jar
ファイルを Web サーバのソース・
ディレクトリにコピーします。ディレクトリ名は、Web サーバ製品によって
異なります。
%TUXDIR%
\udataobj
\java
、UNIX システムの場合は
$
{
TUXDIR}/udataobj/java
) から、m3envobj.jar
ファイルを Web サーバの
ソース・ディレクトリにコピーします。
注記 Microsoft Windows 2000 システムの場合、ノード名はすべて大文字にする必要があります。たとえば、UBBCONFIG
ファイルおよび UnivWApplet.html
ファイルでノードを SERVER
に指定した場合、ブラウザは http://SERVER/UnivWApplet.html
に設定します。
UBBCONFIG
ファイルをロードしたときに定
義したパスワードを入力します。
CORBA Java クライアント・アプリケーションを起動した、[Appletviewer] ウィンドウのステータス・バーまたは MS-DOS ウィンドウに例外が表示されます。
ActiveX クライアント・アプリケーションの起動
注記 University サンプル・アプリケーションでは、インターフェイス・リポジトリに CORBA インターフェイスの OMG IDL をロードする作業は makefile
によって自動化されています。
ActiveX クライアント・アプリケーションを起動するには、Application Builder を使用して CORBA インターフェイスの ActiveX バインディングを作成する必要があります。
CORBA インターフェイスの ActiveX バインディングを作成するには、次の手順に従います。
[IIOP Listener] ウィンドウが表示されます。
UBBCONFIG
ファイルの ISL
パラメータで指定
したホスト名とポート番号を入力します。ホスト名とポート番号は、
UBBCONFIG
ファイルで大文字で指定した内容と正確に一致するように入力し
ます。
[Logon] ウィンドウが表示されます。
UBBCONFIG
ファイルをロードしたときに定義したユーザ名とパスワードにつ
いて、100001 〜 100010 の学生 ID を [Logon] ウィンドウに入力します。
[Application Builder] ウィンドウが表示されます。インターフェイス・リポジトリにロードされた CORBA インターフェイスがすべて、Application Builder の [Services] ウィンドウに表示されます。
確認のウィンドウが表示されます。
Application Builder では、以下のものが作成されます。
DI
modulename_interfacename
です。たとえば、Registrar
インターフェイスに対するバインディングの名前は、DIUniversityW_Registrar
となります。TUXDIR
\TypeLibraries
に格納されています。型ライブラリのファイル名の形式は、DI
modulename_interfacename
.tlb
です。
ActiveX クライアント・アプリケーションを実行するには、以下の手順に従います。
University.vbw
ファイルを開きます。
[IIOP Listener] ウィンドウが表示されます。
UBBCONFIG
ファイルの ISL
パラメータで指定
したホスト名とポート番号を入力します。ホスト名とポート番号は、
UBBCONFIG
ファイルで大文字で指定した内容と正確に一致するように入力し
ます。
[Logon] ウィンドウが表示されます。
UBBCONFIG
ファイルをロードしたときに定義したユーザ名とパスワードにつ
いて、100001 〜 100010 の学生 ID を [Logon] ウィンドウに入力します。
Wrapper サンプル・アプリケーションのクライアント・アプリケーションの使用方法
以降の節では、Wrapper サンプル・アプリケーションのクライアント・アプリケーションの使用方法について説明します。
CORBA C++ クライアント・アプリケーション
Wrapper サンプル・アプリケーションの CORBA C++ クライアント・アプリケーションには、次の追加オプションがあります。
<B> Display Your Balance
Display Your Balance
オプションを使用すると、CORBA C++ クライアント・アプリケーションのログオンに使用する学生 ID に関連付けられた口座残高が表示されます。
C++ CORBA クライアント・アプリケーションを終了するには、Options プロンプトで「E
」を入力します。
CORBA Java クライアント・アプリケーション
Wrapper サンプル・アプリケーションの CORBA Java クライアント・アプリケーションでは、口座残高を表示することができます。
CORBA Java クライアント・アプリケーションにログオンすると、[Student Account Summary] ウィンドウが表示されます。[Student Account Summary] ウィンドウには、CORBA Java クライアント・アプリケーションのログオンに使用する学生 ID に関連付けられた口座残高が表示されます。コースを追加登録した場合、[Student Account Summary] ウィンドウの [Balance] テキスト・ボックスに表示される総額が増加します。
CORBA Java クライアント・アプリケーションを終了するには、[Student Account Summary] ウィンドウの [Logoff] ボタンをクリックするか、または [File] メニューから [Quit] を選択します。
ActiveX クライアント・アプリケーション
Wrapper サンプル・アプリケーションの ActiveX クライアント・アプリケーションでは、口座残高を表示することができます。
ActiveX クライアント・アプリケーションにログオンすると、[Course Browser] ウィンドウが表示されます。[Course Browser] ウィンドウには、登録したコース、および ActiveX クライアント・アプリケーションのログオンに使用する学生 ID の口座残高が表示されます。コースを追加登録した場合、[Course Browser] ウィンドウの [Balance] テキスト・ボックスに表示される総額が増加します。
ActiveX クライアント・アプリケーションを終了するには、[File] メニューから [Exit] を選択します。
|
Copyright © 2001, BEA Systems, Inc. All rights reserved.
|