bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo CORBA ネーム・サービス

 Previous Next Contents Index View as PDF  

CORBA Name Service サンプル・アプリケーションの使用

ここでは、以下の内容について説明します。

 


Name Service サンプル・アプリケーションのしくみ

CORBA Name Service サンプル・アプリケーションは、Simpapp サンプル・アプリケーションを変更したものです。このサンプル・アプリケーションでは、CORBA C++ のクライアントとサーバ、および CORBA Java のクライアントを提供します。Name Service サンプル・アプリケーションは、名前空間を使用して SimpleFactory オブジェクトを格納します。サーバ・アプリケーションは、SimpleFactory オブジェクトを作成し、それを名前空間にバインドします。クライアント・アプリケーションは、名前空間に接続し、SimpleFactory オブジェクトの名前を解決して、SimpleFactory のメソッドを呼び出します。図5-1 は、Name Service サンプル・アプリケーションのしくみを示しています。

図 5-1 Name Service サンプル・アプリケーション


 


 


 

Name Service サンプル・アプリケーションは、表 5-1 のリストにある CORBA インターフェイスをインプリメントします。

表 5-1 Name Service サンプル・アプリケーションの CORBA インターフェイス

インターフェイス

説明

オペレーション

SimpleFactory

Simple オブジェクトのオブジェクト・リファレンスを作成します。

find_simple()

Simple

文字列の大文字と小文字を変換します。

to_upper()

to_lower()


 

リスト5-1 は、Name Service サンプル・アプリケーションの CORBA インターフェイスを定義する simple.idl ファイルを示しています。

コード リスト 5-1 Name Service サンプル・アプリケーションの OMG IDL コード

#pragma prefix "beasys.com"
interface Simple
{
//文字列を小文字に変換 (新しい文字列を返す)
string to_lower(in string val);
     //文字列を大文字に変換 (置換)
void to_upper(inout string val);
};
interface SimpleFactory
{
Simple find_simple();
};

 


Name Service サンプル・アプリケーションのビルドと実行

Name Service サンプル・アプリケーションをビルドおよび実行するには、次の手順に従います。

  1. Name Service サンプル・アプリケーションのファイルを作業ディレクトリにコピーします。

  2. 作業ディレクトリのファイルに対する権限を変更します。

  3. 環境変数で定義した場所を確認します。

  4. runme コマンドを実行します。

ステップ 1: Name Service サンプル・アプリケーションのファイルを作業ディレクトリにコピーする

Name Service サンプル・アプリケーションのファイルを、ローカル・マシンの作業ディレクトリにコピーします。作業ディレクトリでサンプル・アプリケーションを実行すると、サンプル実行時に作成されたファイルを識別できるようになります。以下のセクションでは、Name Service サンプル・アプリケーションのディレクトリの場所とソース・ファイルの詳細を説明します。

CORBA C++ クライアントとサーバ、および CORBA Java クライアント・バージョンの Name Service サンプル・アプリケーション

Name Service サンプル・アプリケーションのファイルは、次のディレクトリにあります。

Windows

drive:¥tuxdir¥samples¥corba¥cnssimpapp

UNIX

/usr/local/tuxdir/samples/corba/cnssimpapp

表 5-2 にリストされているファイルを使用して、Name Service サンプル・アプリケーションをビルドおよび実行します。

表 5-2 Name Service サンプル・アプリケーションに含まれるファイル

ファイル

説明

simple.idl

Simple インターフェイスと SimpleFactory インターフェイスを宣言する OMG IDL コード。

simples.cpp

Name Service サンプル・アプリケーションの CORBA サーバ・アプリケーションの C++ ソース・コード。

simplec.cpp

Name Service サンプル・アプリケーションの CORBA クライアント・アプリケーションの C++ ソース・コード。

simple_i.cpp

Simple メソッドと SimpleFactory メソッドをインプリメントする C++ ソース・コード。

simple_i.h

Simple メソッドと SimpleFactory メソッドのインプリメンテーションを定義する C++ ヘッダ・ファイル。

SimpleClient.java

Name Service サンプル・アプリケーションの CORBA クライアント・アプリケーションの Java ソース・コード。

Readme.txt

C++ クライアントとサーバ、および Java クライアントの Name Service サンプル・アプリケーションのビルドと実行に関する情報を提供します。

runme.cmd

Name Service サンプル・アプリケーションをビルドおよび実行する Windows コマンド。

runme.ksh

Name Service サンプル・アプリケーションをビルドおよび実行する UNIX Korn シェル・スクリプト。

makefile.mk

UNIX オペレーティング・システムの Name Service サンプル・アプリケーションの makefile。このファイルは、Name Service サンプル・アプリケーションを手動でビルドするのに使用します。詳細については、Readme.txt を参照してください。実行可能な UNIX make コマンドの場所は、PATH 環境変数で定義する必要があります。

makefile.nt

Windows オペレーティング・システムの Name Service サンプル・アプリケーションの makefile。この makefile は、Visual C++ の nmake コマンドで直接使用できます。このファイルは、Name Service サンプル・アプリケーションを手動でビルドするのに使用します。詳細については、Readme.txt を参照してください。実行可能な Windows nmake コマンドの場所は、PATH 環境変数で定義する必要があります。


 

ステップ 2: Name Service サンプル・アプリケーションのファイルに対する保護属性を変更する

サンプル・アプリケーションのファイルは、読み取り専用のパーミッション・レベルでインストールされます。Name Service サンプル・アプリケーションのファイルを編集またはビルドする前に、作業ディレクトリにコピーするファイルの保護属性を次のように変更する必要があります。

Windows

prompt> attrib -r drive:¥workdirectory¥*.*

UNIX

  1. prompt> /bin/ksh

  2. ksh prompt> chmod u+w /workdirectory/*.*

また、UNIX プラットフォームでは、ファイルに実行権限を与えるために runme.ksh のパーミッションを次のように変更する必要もあります。

ksh prompt> chmod +x runme.ksh

ステップ 3: 環境変数の設定を確認する

Name Service サンプル・アプリケーションを実行する前に、一部の環境変数が正しい場所で定義されていることを確認する必要があります。ほとんどの場合、環境変数はインストール手順の一部として設定されます。一部の環境変数は、runme コマンドの実行時に設定されます。環境変数をチェックして、正しい情報を反映していることを確認する必要があります。

表 5-3 では、Name Service サンプル・アプリケーションの実行に必要な環境変数を示します。

表 5-3 Name Service サンプル・アプリケーションで必須の環境変数

環境変数

説明

APPDIR

runme コマンドを実行すると、この環境変数がカレント・ディレクトリの絶対パス名に設定されます。サンプル・アプリケーション・ファイルのコピー先ディレクトリから runme コマンドを実行します。たとえば、次のように入力します。

Windows

APPDIR=C:¥workdirectory¥cnssimpapp

UNIX

APPDIR=/usr/workdirectory/cnssimpapp

JAVA_HOME

Java 2 Software Development Kit (SDK) をインストールしたディレクトリ・パス。たとえば、次のように入力します。

Windows

JAVA_HOME=C:¥JDK1.3

UNIX

JAVA_HOME=/usr/local/JDK1.3

注記 Name Service サンプル・アプリケーションで Java クライアントを実行する場合に、この環境変数を定義します。この環境変数が設定されていない場合、runme コマンドは、Java クライアント・アプリケーションを実行しません。

注記 Java クライアント・アプリケーションでは、wstring データ型および wchar データ型をサポートするために Java 2 Software Development Kit (SDK) バージョン 1.3 が必要です。

RESULTSDIR

runme コマンドを実行すると、この環境変数は、APPDIR 環境変数で定義された場所の下位ディレクトリ results に設定されます。

Windows

RESULTSDIR=%APPDIR%¥results

UNIX

RESULTSDIR=$APPDIR¥results

TUXCONFIG

runme コマンドを実行すると、この環境変数は、コンフィギュレーション・ファイルのディレクトリ・パスとファイル名に設定されます。

Windows

TUXCONFIG=%RESULTSDIR%¥tuxconfig

UNIX

TUXCONFIG=$RESULTSDIR/tuxconfig


 

インストール時に定義された環境変数の情報が正しいかどうかを確認するには、以下の手順を実行します。

Windows

  1. [スタート] メニューの、[設定] をポイントします。

  2. [設定] メニューから、[コントロール パネル] をクリックします。

    [コントロール パネル] が表示されます。

  3. [システム] アイコンをクリックします。

    [システムのプロパティ] ウィンドウが表示されます。

  4. [詳細] タブの [環境変数] をクリックします。

    [環境変数] ページが表示されます。

  5. 環境変数の設定をチェックします。

UNIX

ksh prompt> printenv TUXDIR

ksh prompt> printenv JAVA_HOME

設定を変更するには、以下の手順を実行します。

Windows

  1. [システムのプロパティ] ウィンドウの [環境] ページで、変更する環境変数をクリックするか、[変数] フィールドに環境変数の名前を入力します。

  2. [値] フィールドに、環境変数の正しい情報を入力します。

  3. [OK] をクリックして変更を保存します。

UNIX

ksh prompt> export TUXDIR=directorypath

ksh prompt> export JAVA_HOME=directorypath

ステップ 4: runme コマンドを実行する

runme コマンドは、以下の手順を最初から最後まで実行します。

  1. システム環境変数を設定します。

  2. UBBCONFIG ファイルをロードします。

  3. クライアント・アプリケーションのコードをコンパイルします。

  4. サーバ・アプリケーションのコードをコンパイルします。

  5. tmboot コマンドを使用してサーバ・アプリケーションを起動します。

  6. クライアント・アプリケーションを起動します。

  7. tmshutdown コマンドを使用してサーバ・アプリケーションを終了します。

注記 Name Service サンプル・アプリケーションを手動で実行することもできます。Name Service サンプル・アプリケーションを手動で実行する手順については、Readme.txt ファイルで説明しています。

Name Service サンプル・アプリケーションをビルドおよび実行するには、次のように runme コマンドを入力します。

Windows

prompt> cd workdirectory

prompt> runme

UNIX

ksh prompt> cd workdirectory

ksh prompt> ./runme.ksh

Name Service サンプル・アプリケーションが最初から最後まで正常に実行されると、次の一連のメッセージが出力されます。

Testing NameService simpapp
cleaned up
prepared
built
loaded ubb
booted
ran
shutdown
saved results
PASSED

表 5-4 では、runme コマンドで作業ディレクトリ内に生成されたファイルを示しています。

表 5-4 runme コマンドで生成される C++ ファイル

ファイル

説明

simple_c.cpp

idl コマンドによって生成されます。このファイルは、SimpleFactory インターフェイスと Simple インターフェイスのクライアント・スタブを格納します。

simple_c.h

idl コマンドによって生成されます。このファイルは、SimpleFactory インターフェイスと Simple インターフェイスのクライアント定義を格納します。

simple_s.cpp

idl コマンドによって生成されます。このファイルは、SimpleFactory インターフェイスと Simple インターフェイスのサーバ・スケルトンを格納します。

simple_s.h

idl コマンドによって生成されます。このファイルは、SimpleFactory インターフェイスと Simple インターフェイスのサーバ定義を格納します。

.adm/.keybd

セキュリティ暗号鍵データベースを格納するファイルです。サブディレクトリは、runme コマンドの tmloadcf コマンドによって生成されます。

results

runme コマンドで作成されたディレクトリ。APPDIR 環境変数によって定義された場所の下位にあります。


 

表 5-5 では、runme コマンドで作業ディレクトリ内に生成された Java ファイルを示しています。

表 5-5 runme コマンドで生成される Java ファイル

ファイル

説明

SimpleClient.class

javac コマンドを実行することで製品として構築される Java クラス・ファイル。

SimpleClient.jar

javac コマンドを実行することで製品として構築される Java アーカイブ・ファイル。

SimpleFactory.java

SimpleFactory インターフェイス用に idltojava コマンドによって生成されます。SimpleFactory インターフェイスには、Java バージョンの OMG IDL インターフェイスが含まれます。これは、org.omg.CORBA.Object の拡張です。

SimpleFactoryHelper.java

SimpleFactory インターフェイス用に idltojava コマンドによって生成されます。このクラスは、補助機能、特に narrow メソッドを提供します。

SimpleFactoryHolder.java

SimpleFactory インターフェイス用に idltojava コマンドによって生成されます。このクラスは、SimpleFactory 型のパブリック・インスタンス・メンバを保持します。また、CORBA に含まれているものの、Java に正確にマップされない out 引数と inout 引数に対するオペレーションを提供します。

_SimpleFactoryStub.java

SimpleFactory インターフェイス用に idltojava コマンドによって生成されます。このクラスは、SimpleFactory.java インターフェイスをインプリメントするクライアント・スタブです。

_SimpleFactoryImplBase.java

SimpleFactory インターフェイス用に idltojava コマンドによって生成されます。この抽象クラスは、サーバ・スケルトンです。SimpleFactory.java インターフェイスをインプリメントします。ユーザ記述のサーバ・クラス SimpleFactoryImpl は、_SimpleFactoryImplBase の拡張です。

Simple.java

Simple インターフェイス用に idltojava コマンドによって生成されます。Simple インターフェイスには、Java バージョンの OMG IDL インターフェイスが含まれます。これは、org.omg.CORBA.Object の拡張です。

SimpleHelper.java

Simple インターフェイス用に idltojava コマンドによって生成されます。このクラスは、補助機能、特に narrow メソッドを提供します。

SimpleHolder.java

Simple インターフェイス用に idltojava コマンドによって生成されます。このクラスは、Simple 型のパブリック・インスタンス・メンバを保持します。また、CORBA に含まれているものの、Java に正確にマップされない out 引数と inout 引数に対するオペレーションを提供します。

_SimpleStub.java

Simple インターフェイス用に idltojava コマンドによって生成されます。このクラスは、Simple.java インターフェイスをインプリメントするクライアント・スタブです。

.adm/.keybd

セキュリティ暗号鍵データベースを格納するファイルです。サブディレクトリは、runme コマンドの tmloadcf コマンドによって生成されます。


 

表 5-6 では、runme コマンドで results ディレクトリ内に生成されるファイルを示しています。

表 5-6 runme コマンドで results ディレクトリ内に生成されるファイル

ファイル

説明

input

runme コマンドが Java クライアント・アプリケーションに提供する入力を格納します。

output

runme コマンドが Java クライアント・アプリケーションを実行するときに生成される出力を格納します。

expected_output

runme コマンドが Java クライアント・アプリケーションを実行するときに予測される出力を格納します。テストに成功したか失敗したかを判別するために、output ファイルのデータは expected_output ファイルのデータと比較されます。

log

runme コマンドで生成される出力を格納します。runme コマンドが失敗すると、このファイルのエラーをチェックします。

setenv.cmd

Windows オペレーティング・システム・プラットフォームの Name Service サンプル・アプリケーションのビルドと実行に必要な環境変数を設定するためのコマンドを格納します。

setenv.ksh

UNIX オペレーティング・システム・プラットフォームの Name Service サンプル・アプリケーションのビルドと実行に必要な環境変数を設定するためのコマンドを格納します。

stderr

tmboot コマンドによって生成されるコマンドからの出力です。このコマンドは、runme コマンドによって実行されます。-noredirect JavaServer オプションが UBBCONFIG ファイルで指定されている場合、System.err.println メソッドは、ULOG ファイルではなく、stderr ファイルに出力を送信します。

stdout

tmboot コマンドによって生成される出力です。このコマンドは、runme コマンドによって実行されます。-noredirect JavaServer オプションが UBBCONFIG ファイルで指定されている場合、System.out.println メソッドは、ULOG ファイルではなく、stdout ファイルに出力を送信します。

tmsysevt.dat

TMSYSEVT (システム・イベント・リポート) プロセスで使用するフィルタ規則および通知規則を格納します。このファイルは、runme コマンドの tmboot コマンドによって生成されます。

tuxconfig

バイナリ形式の UBBCONFIG ファイル。

ubb

Java Name Service サンプル・アプリケーション用の UBBCONFIG ファイル。

ULOG.date

tmboot コマンドによって生成されるメッセージを含んだログ・ファイル。


 

Name Service サンプル・アプリケーションの使用

Name Service サンプル・アプリケーションのサーバ・アプリケーションを次のように実行します。

Windows

prompt> tmboot

UNIX

ksh prompt> tmboot

Name Service サンプル・アプリケーションのクライアント・アプリケーションを次のように実行します。

Windows

prompt> java -classpath %CLIENTCLASSPATH%
-DTOBJADDR=%TOBJADDR% SimpleClient
String?
Hello World
HELLO WORLD
hello world

UNIX

ksh prompt> java -classpath $CLIENTCLASSPATH
/m3envobj.jar -DTOBJADDR=$TOBJADDR SimpleClient
String?
Hello World
HELLO WORLD
hello world

別のサンプル・アプリケーションを使用する前に、以下のコマンドを入力して Name Service サンプル・アプリケーションを終了し、不要なファイルを作業ディレクトリから削除します。

Windows

prompt> tmshutdown -y

prompt> nmake -f makefile.nt clean

UNIX

ksh prompt> tmshutdown -y

ksh prompt> make -f makefile.mk clean

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy