![]() |
![]() |
![]() |
![]() |
![]() |
注意: サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。CORBAアプリケーションに関連する概念、およびCORBAアプリケーションの開発プロセスの説明については、『Oracle Tuxedo CORBAアプリケーション・スタート・ガイド』を参照してください。基本的なサンプル・アプリケーションを使用すると、ユーザーは利用可能なコースを閲覧し、選択したコースに関する詳細情報を入手できます。図3-1はBasicサンプル・アプリケーションの機能を表しています。クライアント・アプリケーションとサーバー・アプリケーションを作成する最初の手順は、OMG IDLを使用してすべてのCORBAインタフェースとそのメソッドを指定することです。Basicサンプル・アプリケーションでは、次のCORBAインタフェースを実装します。
リスト3-1では、Basicサンプル・アプリケーションのCORBAインタフェースを定義したunivb.idlファイルを示します。このファイルのコピーは、Basicサンプル・アプリケーションのディレクトリ内にあります。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; // bitmask of days
unsigned short start_hour; // whole hours in military time
unsigned short duration; // minutes
};
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 = all
out unsigned long number_remaining,
out CourseSynopsisEnumerator rest
);
CourseDetailsList get_courses_details(in CourseNumberList
courses);
interface RegistrarFactory
{
Registrar find_registrar(
);
};
};
注意: IDLコンパイラでは、OMG IDLで定義されたインタフェース仕様を使用して、クライアント・アプリケーションのクライアント・スタブおよびサーバー・アプリケーションのスケルトンを生成します。クライアント・スタブは、すべてのオペレーション呼出しでクライアント・アプリケーションによって使用されます。スケルトンは、CORBAオブジェクトを実装するサーバー・アプリケーションを作成するために、記述したコードとともに使用します。クライアント・スタブとスケルトンの生成および使用方法については、『Oracle Tuxedo CORBAアプリケーション・スタート・ガイド』を参照してください。開発プロセスでは、idlコマンドを使用して、OMG IDLファイルをコンパイルし、クライアント・スタブおよびスケルトンを生成します。この作業は、Basicサンプル・アプリケーションのmakefileで自動化されています。idlコマンドについては、『Oracle Oracle Tuxedoコマンド・リファレンス』を参照してください。Basicサンプル・アプリケーションには、C++によるクライアント・アプリケーションが用意されています。クライアント・アプリケーションの記述方法については、『Oracle Tuxedo CORBAアプリケーション・スタート・ガイド』および『CORBAクライアント・アプリケーションの作成』を参照してください。開発プロセスでは、genicfコマンドを使用して実装構成ファイル(ICF)を作成します。その際、ICFファイルを編集して、Registrar、RegistrarFactoryおよびCourseSynopsisEnumeratorオブジェクトのアクティブ化ポリシーとトランザクション・ポリシーを定義します。Basicサンプル・アプリケーションの場合、Registrar、RegistrarFactoryおよびCourseSynopsisEnumeratorオブジェクトのアクティブ化ポリシーはprocess、トランザクション・ポリシーはignoreです。Basicサンプル・アプリケーション用のICFファイルが用意されています。どのCORBAアプリケーションでも、重要な役割を果たすのがUBBCONFIGファイルです。管理者がUBBCONFIGファイルの作成を担当する場合でも、プログラマはこのファイルの存在と使用方法を把握しておくことが重要です。システム管理者が構成ファイルを作成するときは、一連のパラメータを使用してCORBAアプリケーションを記述し、これらのパラメータがOracle Tuxedoソフトウェアによって解釈されると、実行可能なアプリケーションが作成されます。
• UBBCONFIGファイル。ASCII形式なので、任意のエディタで作成および変更できます。すべてのUniversityサンプル・アプリケーションで使用されるUBBCONFIGファイルの必須パラメータの設定については、「環境設定」を参照してください。
•
注意: Basicサンプル・アプリケーションをビルドまたは実行する前に、「環境設定」の手順を実行しておく必要があります。また、utilsディレクトリを作業ディレクトリにコピーする必要があります。utilsディレクトリには、Universityデータベースのログ、トレースおよびアクセスを設定するファイルが格納されています。表3-1に、Basicサンプル・アプリケーションの作成に使用するファイルを示します。
Oracle Tuxedoソフトウェアのインストール時には、サンプル・アプリケーションは読取り専用に設定されています。Basicサンプル・アプリケーションのファイルを編集または作成するには、次のように作業ディレクトリにコピーしたファイルの保護を変更する必要があります。開発プロセスでは、buildobjclientおよびbuildobjserverコマンドを使用して、クライアント・アプリケーションとサーバー・アプリケーションをビルドします。ただし、Basicサンプル・アプリケーションの場合は、この手順は不要です。
2.