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

Tuxedo CORBA University サンプル・アプリケーション

 Previous Next Contents Index View as PDF  

Basic サンプル・アプリケーション

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

トラブルシューティング情報については、¥basic ディレクトリにある Readme.txt を参照してください。また、Basic サンプル・アプリケーションの使用方法に関する最新の情報も参照してください。

CORBA アプリケーションに関連する概念、および CORBA アプリケーションの開発プロセスの説明については、『BEA Tuxedo CORBA アプリケーション入門』を参照してください。

 


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

Basic サンプル・アプリケーションでは、ユーザは利用可能なコースを参照したり、選択したコースの詳細を取得したりできます。図3-1 に、Basic サンプル・アプリケーションのしくみを示します。

図 3-1 Basic サンプル・アプリケーション


 


 

Basic サンプル・アプリケーションでは、次の機能について示します。

 


Basic サンプル・アプリケーションの OMG IDL

クライアント・アプリケーションとサーバ・アプリケーションを作成する最初の手順は、OMG IDL を使用してすべての CORBA インターフェイスとそのメソッドを指定することです。Basic サンプル・アプリケーションでは、次の CORBA インターフェイスをインプリメントします。

インターフェイス

説明

オペレーション

RegistrarFactory

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

find_registrar()

Registrar

データベースからコースの情報を取得します。

get_courses_synopsis()

get_courses_details()

CourseSynopsisEnumerator

コース・データベースから検索基準に一致するコースの概要を取得し、メモリに読み込みます。次に、概要の最初のサブセットを Registrar オブジェクトに返し、Registrar は概要をクライアント・アプリケーションに返します。最後に、クライアント・アプリケーションが残りの概要を取得できるようにします。

get_next_n()

destroy()


 

リスト3-1 では、Basic サンプル・アプリケーションの CORBA インターフェイスを定義した univb.idl ファイルを示します。このファイルのコピーは、Basic サンプル・アプリケーションのディレクトリ内にあります。


 

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

module UniversityB
{
   typedef unsigned long CourseNumber;
typedef sequence<CourseNumber> CourseNumberList;
   struct CourseSynopsis
{
CourseNumber course_number;
string title;
};
   typedef sequence<CourseSynopsis> CourseSynopsisList;

interface CourseSynopsisEnumerator
{
CourseSynopsisList get_next_n(
in unsigned long number_to_get,
out unsigned long number_remaining
);
void destroy();
};
   typedef unsigned short Days;
const Days MONDAY = 1;
const Days TUESDAY = 2;
const Days WEDNESDAY = 4;
const Days THURSDAY = 8;
const Days FRIDAY = 16;

struct ClassSchedule
{
Days class_days; // 日のビットマスク
unsigned short start_hour; // 軍用時間による時間
unsigned short duration; // 分
};
   struct CourseDetails
{
CourseNumber course_number;
double cost;
unsigned short number_of_credits;
ClassSchedule class_schedule;
unsigned short number_of_seats;
string title;
string professor;
string description;
};
   typedef sequence<CourseDetails> CourseDetailsList;

interface Registrar
{
CourseSynopsisList
get_courses_synopsis(
in string search_criteria,
in unsigned long number_to_get, // 0 = すべて
out unsigned long number_remaining,
out CourseSynopsisEnumerator rest
);
CourseDetailsList get_courses_details(in CourseNumberList
courses);
   interface RegistrarFactory
{
Registrar find_registrar(
);
};
};

 


クライアント・スタブとスケルトンの生成

注記 University サンプル・アプリケーションの CORBA クライアント・アプリケーションでは、静的起動を使用しています。動的起動インターフェイスの使用例については、『BEA Tuxedo CORBA クライアント・アプリケーションの開発方法』を参照してください。CORBA Java クライアント・アプリケーションを作成する場合、クライアント・スタブを取得するための OMG IDL のコンパイルについては、Java ORB のマニュアルを参照してください。ActiveX クライアント・アプリケーションでは、クライアント・スタブは使用しません。

IDL コンパイラでは、OMG IDL で定義されたインターフェイス仕様を使用して、クライアント・アプリケーションのクライアント・スタブおよびサーバ・アプリケーションのスケルトンを生成します。クライアント・スタブは、すべてのオペレーション呼び出しでクライアント・アプリケーションによって使用されます。スケルトンは、CORBA オブジェクトをインプリメントするサーバ・アプリケーションを作成するために、記述したコードと共に使用します。クライアント・スタブとスケルトンの生成および使用方法については、『BEA Tuxedo CORBA アプリケーション入門』を参照してください。

開発プロセスでは、idl コマンドを使用して、OMG IDL ファイルをコンパイルしたり、クライアント・スタブおよびスケルトンを生成します。この作業は、Basic サンプル・アプリケーションの makefile で自動化されています。idl コマンドについては、『BEA Tuxedo コマンド・リファレンス』を参照してください。

 


クライアント・アプリケーションの記述

BEA Tuxedo の CORBA 環境では、次の 3 種類のクライアント・アプリケーションをサポートしています。

注記 ActiveX クライアント・アプリケーションは Visual Basic で記述します。

開発プロセスでは、以下の処理を行うクライアント・アプリケーション・コードを記述します。

Basic サンプル・アプリケーションには、C++、Java、および Visual Basic による各クライアント・アプリケーションが用意されています。クライアント・アプリケーションの記述方法については、『BEA Tuxedo CORBA アプリケーション入門』 および『BEA Tuxedo CORBA クライアント・アプリケーションの開発方法』を参照してください。

サーバ・アプリケーションの記述

開発プロセスでは、次の内容を記述します。

サンプル・アプリケーションには、Server オブジェクトの C++ コード、および University サーバ・アプリケーションのメソッド・インプリメンテーションが用意されています。

開発プロセスでは、 genicf コマンドを使用してインプリメンテーション・コンフィギュレーション・ファイル (ICF) を作成します。その際、ICF ファイルを編集して RegistrarRegistrarFactory、および CourseSynopsisEnumerator オブジェクトの活性化方針とトランザクション方針を定義します。Basic サンプル・アプリケーションの場合、RegistrarRegistrarFactory、および CourseSynopsisEnumerator オブジェクトの活性化方針は process、トランザクション方針は ignore です。Basic サンプル・アプリケーション用の ICF ファイルが用意されています。

サーバ・アプリケーションの記述方法については、『BEA Tuxedo CORBA サーバ・アプリケーションの開発方法』を参照してください。

 


Basic サンプル・アプリケーションのコンフィギュレーション

どの CORBA アプリケーションでも、重要な役割を果たすのが UBBCONFIG ファイルです。管理者が UBBCONFIG ファイルの作成を担当する場合でも、プログラマはこのファイルの存在と使用方法を把握しておくことが重要です。システム管理者がコンフィギュレーション・ファイルを作成するときは、一連のパラメータを使用して CORBA アプリケーションを記述します。これらのパラメータが BEA Tuxedo ソフトウェアによって解釈されると、実行可能なアプリケーションが生成されます。

コンフィギュレーション・ファイルには次の 2 種類があります。

UBBCONFIG ファイルおよび tmloadcf コマンドについては、『BEA Tuxedo アプリケーションの設定』および『BEA Tuxedo コマンド・リファレンス』を参照してください。

 


Basic サンプル・アプリケーションのビルド

Basic サンプル・アプリケーションをビルドするには、以下の手順に従います。

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

  2. Basic サンプル・アプリケーションのファイルの保護を変更します。

  3. 環境変数を設定します。

  4. University データベースを初期化します。

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

  6. クライアントおよびサーバ・サンプル・アプリケーションをビルドします。

以降の節では、上記の各手順について説明します。

注記 Basic サンプル・アプリケーションをビルドまたは実行する前に、環境設定の手順を実行しておく必要があります。

Basic サンプル・アプリケーションのファイルを作業ディレクトリにコピーする

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

Windows 2000

drive:¥TUXDIR¥samples¥corba¥university¥basic

UNIX

/usr/TUXDIR/samples/corba/university/basic

また、utils ディレクトリも作業ディレクトリにコピーする必要があります。utils ディレクトリには、ログ、トレース、および University データベースへのアクセスを設定するファイルが格納されています。

表 3-1 では、Basic サンプル・アプリケーションの作成に使用するファイルについて説明します。

表 3-1 Basic サンプル・アプリケーションに含まれるファイル

ファイル

説明

univb.idl

CourseSynopsisEnumeratorRegistrar、および RegistrarFactory インターフェイスを宣言する OMG IDL。

univbs.cpp

Basic サンプル・アプリケーションの University サーバ・アプリケーション用 C++ ソース・コード。

univb_i.h
univb_i.cpp

CourseSynopsisEnumeratorRegistrar、および RegistrarFactory インターフェイスのメソッド・インプリメンテーション用 C++ ソース・コード。

univbc.cpp

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

frmBrowser.frm
frmBrowser.frx

Basic サンプル・アプリケーションの ActiveX クライアント・アプリケーション用 Visual Basic ソース・コード。

modPublicDeclarations.bas

サンプル・アプリケーションで使用される変数の宣言が記述された Visual Basic ファイル。

frmTracing.frm
frmTracing.frx

ActiveX クライアント・アプリケーションにトレース機能を提供するファイル。

University.vbp

Basic サンプル・アプリケーションの ActiveX クライアント・アプリケーション用 Visual Basic プロジェクト・ファイル。

University.vbw

Basic サンプル・アプリケーションの ActiveX クライアント・アプリケーション用 Visual Basic ワークスペース・ファイル。

UnivBApplet.java

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

univb_utils.h
univb_utils.cpp

CORBA C++ クライアント・アプリケーションのデータベース・アクセス関数を定義するファイル。

univb.icf

Basic サンプル・アプリケーションのインプリメンテーション・コンフィギュレーション・ファイル (ICF)。

setenvb.sh

Basic サンプル・アプリケーションのビルドおよび実行に必要な環境変数を設定する UNIX スクリプト。

setenvb.cmd

Basic サンプル・アプリケーションのビルドおよび実行に必要な環境変数を設定する MS-DOS コマンド。

ubb_b.mk

UNIX オペレーティング・システム用のコンフィギュレーション・ファイル。

ubb_b.nt

Windows 2000 オペレーティング・システム用のコンフィギュレーション・ファイル。

makefileb.mk

UNIX オペレーティング・システムでの Basic サンプル・アプリケーション用の makefile

makefileb.nt

Windows 2000 オペレーティング・システムでの Basic サンプル・アプリケーション用の makefile

log.cpplog.hlog_client.cpplog_server.cpp

サンプル・アプリケーションにログ機能とトレース機能を提供するクライアント・アプリケーションとサーバ・アプリケーション。これらのファイルは、¥utils ディレクトリにあります。

oradbconn.cpporanoconn.cpp

Oracle SQL データベース・インスタンスへのアクセスを提供するファイル。これらのファイルは、¥utils ディレクトリにあります。

samplesdb.cppsamplesdb.h

サンプル・アプリケーションでのデータベース例外に出力関数を提供するファイル。これらのファイルは、¥utils ディレクトリにあります。

unique_id.cppunique_id.h

サンプル・アプリケーションの C++ Unique ID クラスのルーチン。これらのファイルは、¥utils ディレクトリにあります。

samplesdbsql.hsamplesdbsql.pc

SQL データベースへのアクセスをインプリメントする C++ クラスのメソッド。これらのファイルは、¥utils ディレクトリにあります。

university.sql

University データベース用の SQL。このファイルは、¥utils ディレクトリにあります。


 

Basic サンプル・アプリケーションのファイル保護の属性を変更する

BEA Tuxedo ソフトウェアのインストール時には、サンプル・アプリケーションは読み取り専用に設定されています。Basic サンプル・アプリケーションのファイルを編集または作成するには、次のように作業ディレクトリにコピーしたファイルの保護を変更する必要があります。

Windows 2000

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

UNIX

prompt>chmod u+rw /workdirectory/*.*

環境変数を設定する

次のコマンドを使用して、Basic サンプル・アプリケーションのクライアント・アプリケーションとサーバ・アプリケーションのビルドに使用する環境変数を設定します。

Windows 2000

prompt>setenvb

UNIX

prompt>/bin/ksh

prompt>. ./setenvb.sh

University データベースを初期化する

次のコマンドを使用して、Basic サンプル・アプリケーションで使用する University データベースを初期化します。

Windows 2000

prompt>nmake -f makefileb.nt initdb

UNIX

prompt>make -f makefileb.mk initdb

UBBCONFIG ファイルをロードする

次のコマンドを使用して、UBBCONFIG ファイルをロードします。

Windows 2000

prompt>tmloadcf -y ubb_b.nt

UNIX

prompt>tmloadcf -y ubb_b.mk

 


Basic サンプル・アプリケーションのコンパイル

開発プロセスでは、buildobjclient および buildobjserver コマンドを使用して、クライアント・アプリケーションとサーバ・アプリケーションをビルドします。ただし、Basic サンプル・アプリケーションの場合は、この手順は不要です。

Basic サンプル・アプリケーションのディレクトリには、makefile が格納されています。この makefile により、クライアントとサーバ・サンプル・アプリケーションがビルドされます。

Basic サンプル・アプリケーションの CORBA C++ クライアント・アプリケーションとサーバ・アプリケーションをビルドするには、次のコマンドを使用します。

Windows 2000

prompt>nmake -f makefileb.nt

UNIX

prompt>make -f makefileb.mk

CORBA Java クライアント・アプリケーションをビルドするには、次のコマンドを使用します。

Windows 2000

prompt>nmake -f makefileb.nt javaclient

UNIX

prompt>make -f makefileb.mk javaclient

ActiveX クライアント・アプリケーションのビルドおよび使用方法については、「ActiveX クライアント・アプリケーションの起動」を参照してください。

buildobjclient および buildobjserver コマンドの詳細については、『BEA Tuxedo コマンド・リファレンス』を参照してください。

 


Basic サンプル・アプリケーションの実行

Basic サンプル・アプリケーションを実行するには、次の手順に従います。

  1. University サーバ・アプリケーションを起動します。

  2. 1 つまたは複数のクライアント・アプリケーションを起動します。

サーバ・アプリケーションの起動

Basic サンプル・アプリケーションでシステムおよびサンプル・アプリケーションのサーバ・アプリケーションを起動するには、次のコマンドを入力します。

prompt>tmboot -y

このコマンドを入力すると、次のサーバ・プロセスが開始されます。

ほかのサンプル・アプリケーションを使用するには、次のコマンドを入力して、システムおよびサンプル・アプリケーションのサーバ・プロセスを停止します。

prompt>tmshutdown

CORBA C++ クライアント・アプリケーションの起動

Basic サンプル・アプリケーションの CORBA C++ クライアント・アプリケーションを起動するには、次のコマンドを入力します。

prompt>univb_client

CORBA Java クライアント・アプリケーションの起動

Basic サンプル・アプリケーションの CORBA Java クライアント・アプリケーションを実行するには、以下の手順に従います。

  1. UnivBApplet.html ファイル内の次の行を変更します。

    code="UnivBApplet.class"
    codebase=.
    上記の行を次のように変更します。

    code="UnivBApplet"
    archive="UnivBApplet.jar,m3envobj.jar"

  2. 変更した UnivBApplet.html ファイルを Web サーバのソース・ディレクトリにコピーします。ディレクトリは、Web サーバ製品によって異なります。

  3. makefileを実行して Basic サンプル・アプリケーションをビルドした後、次のように UnivBApplet.jarファイルを作成します。

    1. サンプル・アプリケーションをビルドしたディレクトリの下に tmp ディレクトリを作成します。UniversityB サブディレクトリとその中に格納されているクラス・ファイルを tmp ディレクトリにコピーします。

      makefile によって生成された、Basic サンプル・アプリケーション・ディレクトリにあるクラス・ファイルを tmp ディレクトリにコピーします。ディレクトリを tmp ディレクトリに設定 (cd) し、次のいずれかのコマンドを入力して、すべての Basic サンプル・アプリケーション・クラスを含んだ .JAR ファイルを作成します。

      jar -cf ..¥UnivBApplet.jar *.* (Microsoft Windows 2000 システム)
      jar -cf ../UnivBApplet.jar * (UNIX システム)

  4. 前の手順で作成した UnivBApplet.jar ファイルを Web サーバのソース・ディレクトリにコピーします。ディレクトリ名は、Web サーバ製品によって異なります。

  5. 適切なサブディレクトリ (Microsoft Windows 2000 システムの場合は %TUXDIR%¥udataobj¥java 、UNIX システムの場合は ${TUXDIR}/udataobj/java) から、m3envobj.jar ファイルを Web サーバのソース・ディレクトリにコピーします。

  6. Basic サーバ・アプリケーションが動作していることを確認してから、Web ブラウザを起動し、Web サーバが動作しているノードを参照します。

注記 Microsoft Windows 2000 システムの場合、ノード名はすべて大文字にする必要があります。たとえば、UBBCONFIG ファイルおよび UnivBApplet.html ファイルでノードを SERVER に指定した場合、ブラウザは http://SERVER/UnivBApplet.html に設定します。

ActiveX クライアント・アプリケーションの起動

注記 University サンプル・アプリケーションでは、インターフェイス・リポジトリに CORBA インターフェイスの OMG IDL をロードする作業は makefile によって自動化されています。

ActiveX クライアント・アプリケーションを起動するには、Application Builder を使用して CORBA インターフェイスの ActiveX バインディングを作成する必要があります。

CORBA インターフェイスの ActiveX バインディングを作成するには、次の手順に従います。

  1. BEA Tuxedo プログラム・グループで [BEA Application Builder] アイコンをクリックします。

    [Domain] ログオン・ウィンドウが表示されます。

  2. [Domain ] ログオン・ウィンドウに、UBBCONFIG ファイルの ISL パラメータで指定したホスト名とポート番号を入力します。ホスト名とポート番号は、UBBCONFIG ファイルで大文字で指定した内容と正確に一致するように入力します。たとえば、次のように入力します。//BEANIE:2500.

    Application Builder のログオン・ウィンドウが表示されます。

  3. [Services] ウィンドウで UniversityB フォルダを強調表示して [Workstation Views] ウィンドウにドラッグします。または、[Services] ウィンドウから UniversityB フォルダをコピーして [Workstation Views] ウィンドウに貼り付けます。

    確認のウィンドウが表示されます。

  4. [Create] をクリックすると、Basic サンプル・アプリケーションで CORBA インターフェイスの ActiveX バインディングが作成されます。

    Application Builder では、以下のものが作成されます。

ActiveX クライアント・アプリケーションを開くには、次の手順に従います。

  1. Visual Basic で University プロジェクトを開きます。

  2. University プロジェクトを実行します。

  3. [Run] メニューの [Start] をクリックします。

    ログオン・ウィンドウが表示されます。

  4. [Logon] ウィンドウに、UBBCONFIG ファイルの ISL パラメータで指定したホスト名とポート番号を入力します。ホスト名とポート番号は、UBBCONFIG ファイルで大文字で指定した内容と正確に一致するように入力します。

 


Basic サンプル・アプリケーションのクライアント・アプリケーションの使用方法

以降の節では、Basic サンプル・アプリケーションに含まれているクライアント・アプリケーションについて簡単に説明します。

CORBA C++ クライアント・アプリケーション

CORBA C++ クライアント・アプリケーションを起動すると、メニューが表示されます。メニューには、次のオプションがあります。

<F>   Find courses
<A>   List all courses
<D>   Display course details
<E>   Exit

特定のカリキュラムのサブジェクトに一致するコースを検索するには、次の手順に従います。

  1. Options プロンプトで「F」を入力します。

  2. 画面に「Enter search string:」と表示されたら、「computer」などのテキスト文字列を入力します。入力する文字列は、大文字と小文字を任意で組み合わせてもかまいません。

    検索文字列に一致したコースがすべて一覧表示されます。

データベース内のすべてのコースを一覧表示するには、次の手順に従います。

  1. Options プロンプトで「A」を入力します。

    10 コースの一覧が表示されます。

  2. y」を入力すると、次の 10 コースの一覧が表示されます。「n」を入力すると、Options メニューに戻ります。

特定のコースの詳細を表示するには、次の手順に従います。

  1. Options プロンプトで「D」を入力します。

  2. 画面に「Course Number」と表示されたら、コース番号とその後に続けて「-1」を入力します。たとえば、次のように入力します。

    100011
    100039
    -1

    指定したコースの要約が表示されます。

C++ CORBA クライアント・アプリケーションを終了するには、Options プロンプトで「E」を入力します。

CORBA Java クライアント・アプリケーション

特定のカリキュラムのサブジェクトに一致するコースを検索するには、次の手順に従います。

  1. 画面に「search string?」と表示されたら、テキスト・ボックスにテキスト文字列を入力します。テキスト・ボックスには、コースのタイトル、教授の名前、またはコースの説明を入力できます。たとえば、「computer」などの文字列を入力します。

  2. [Show] ボタンをクリックします。

    検索文字列に一致したコースがすべて一覧表示されます。

データベース内のすべてのコースを一覧表示するには、次の手順に従います。

  1. [Course Name Search String] テキスト・ボックスの中にカーソルを置きます。

  2. Enter キーを押します。

    コース・データベース内のすべてのコースが一覧表示されます。

特定のコースの詳細を表示するには、次の手順に従います。

  1. [Course Number/Course Name] ウィンドウでコースを選択します。

  2. [Details] ボタンをクリックします。

    選択したコースの詳細の要約が表示されます。

CORBA Java クライアント・アプリケーションを終了するには、[Applet] メニューから [Quit] を選択します。

ActiveX クライアント・アプリケーション

ActiveX クライアント・アプリケーションにログオンすると、[Course Browser] ウィンドウが表示されます。University で利用可能なコースの検索は、[Course Browser] ウィンドウから行います。

特定のカリキュラムのサブジェクトに一致するコースを検索するには、次の手順に従います。

  1. [Find Courses] ボタンの横にあるテキスト・ボックスにテキスト文字列を入力するか、またはプル・ダウン・メニューからカリキュラムのサブジェクトを選択します。たとえば、「computer」などの文字列を入力します。

  2. [Find Courses] ボタンをクリックします。

    検索文字列に一致したコースがすべて一覧表示されます。

特定のコースの詳細を表示するには、次の手順に従います。

  1. [Get Details] ボタンの横にあるウィンドウでコースを選択します。

  2. [Get Details] ボタンをクリックするか、またはコース名をダブルクリックします。

    選択したコースの詳細の要約が表示されます。

  3. スケジュールにコースを入力するには、コース名をダブルクリックします。

ActiveX クライアント・アプリケーションを終了するには、[File] メニューから [Exit] を選択します。

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy