Tuxedo CORBA アプリケーション入門

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

BEA Tuxedo CORBA プログラミング環境

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

注意 : BEA Tuxedo CORBA Java クライアントと BEA Tuxedo CORBA Java クライアント ORB は Tuxedo 8.1 で非推奨になり、今後はサポートされなくなりました。BEA Tuxedo CORBA Java クライアントおよび BEA Tuxedo CORBA Java クライアント ORB のテキスト参照、関連するコード サンプルはすべてサードパーティの Java ORB ライブラリの実装/実行の簡易化とプログラマによる参照だけに使用する必要があります。
注意 : サード パーティの CORBA Java ORB のテクニカル サポートは、各ベンダによって提供されます。BEA Tuxedo では、サード パーティの CORBA Java ORB に関する技術的なサポートやマニュアルは提供していません。

 


BEA Tuxedo CORBA のプログラミング機能の概要

BEA Tuxedo では、分散オブジェクトの開発と管理を容易にする堅牢な CORBA プログラミング環境が提供されます。以下の節では、プログラミング環境の機能について説明します。

IDL コンパイラ

BEA Tuxedo CORBA プログラミング環境では、CORBA オブジェクトの開発を容易にする次のようなインタフェース定義言語 (IDL) コンパイラが提供されます。

IDL コンパイラの使い方については、「BEA Tuxedo CORBA アプリケーションの開発」を参照してください。idl コマンドの説明については、BEA Tuxedo オンライン マニュアルの『Tuxedo コマンド リファレンス』を参照してください。

開発コマンド

表 2-1 は、BEA Tuxedo CORBA プログラミング環境で CORBA アプリケーションの開発とインタフェース リポジトリの管理のために用意されているコマンドのリストです。

表 2-1 BEA Tuxedo CORBA の開発コマンド
開発
コマンド
説明
buildobjclient
C++ クライアント アプリケーションを作成します。
buildobjserver
C++ サーバ アプリケーションを作成します。
genicf
実装コンフィグレーション ファイル (ICF) を生成します。ICF ファイルでは、C++ サーバ アプリケーションのアクティブ化とトランザクションのポリシーを定義します。
id12ir
インタフェース リポジトリを作成して、インタフェース定義をロードします。
ir2idl
インタフェース リポジトリの内容を表示します。
irdel
インタフェース リポジトリから指定されたオブジェクトを削除します。

開発コマンドを使用してクライアント アプリケーションおよびサーバ アプリケーションを開発する方法については、「BEA Tuxedo CORBA アプリケーションの開発」を参照してください。

開発コマンドの説明については、BEA Tuxedo オンライン マニュアルの『Tuxedo コマンド リファレンス』を参照してください。

管理ツール

BEA Tuxedo CORBA のプログラミング環境では、CORBA アプリケーションを管理するためのツール一式が提供されます。BEA Tuxedo CORBA アプリケーションは、コマンドまたはグラフィカル ユーザ インタフェースを使用するか、スクリプトで管理ユーティリティを使用することで管理できます。

表 2-2 のリストにあるコマンドを使用すると、CORBA アプリケーションの管理タスクを実行できます。

表 2-2 管理コマンド
管理
コマンド
説明
tmadmin
現在のコンフィグレーション パラメータの情報を表示します。
tmboot
指定されたコンフィグレーション ファイルで参照される BEA Tuxedo CORBA アプリケーションをアクティブにします。使用するオプションによって、アプリケーション全体またはその一部が起動します。
tmconfig
BEA Tuxedo CORBA アプリケーションのコンフィグレーション情報を動的に更新および取得します。
tmloadcf
コンフィグレーション ファイルを解析し、バイナリ形式のコンフィグレーション ファイルをロードします。
tmshutdown
指定されたサーバ アプリケーションを停止するか、コンフィグレーション ファイルからインタフェースを削除します。
tmunloadcf
コンフィグレーション ファイルをアンロードします。

Administration Console は、インターネット ブラウザにダウンロードでき、BEA Tuxedo CORBA アプリケーションのリモート管理に使用する Java ベースのアプレットです。Administration Console では、システム イベントのモニタ、システム リソースの管理、管理オブジェクトの作成とコンフィグレーション、システム統計の表示といった管理タスクを実行できます。図 2-1 は、Administration Console のメイン ウィンドウです。

図 2-1 Administration Console のメイン ウィンドウ

Administration Console のメイン ウィンドウ

また、AdminAPI というユーティリティ セットも利用できます。AdminAPI を使用すると、BEA Tuxedo 製品の管理情報ベース (MIB) のシステム設定を直接アクセスおよび操作できます。AdminAPI の利点は、ログ ファイルのモニタやアプリケーションの動的な再コンフィグレーションなどの管理タスクを自動化し、人が行う作業を減らせることです。

管理コマンドについては、BEA Tuxedo オンライン マニュアルの『Oracle Tuxedo のファイル形式とデータ記述方法』を参照してください。

Administration Console およびそのしくみの説明については、Administration Console のグラフィカル ユーザ インタフェース (GUI) に統合されているオンライン ヘルプを参照してください。

AdminAPI については、BEA Tuxedo オンライン マニュアルの『Oracle Tuxedo アプリケーションの設定』を参照してください。

 


BEA Tuxedo CORBA オブジェクト サービス

BEA Tuxedo 製品には、BEA Tuxedo ドメインの CORBA クライアント アプリケーションにオブジェクト サービスを提供する環境オブジェクトのセットがあります。環境オブジェクトには、特定の BEA Tuxedo ドメインのサービスにアクセスするブートストラップ プロセスを通じてアクセスします。

BEA Tuxedo CORBA では、次のサービスが提供されます。

BEA Tuxedo CORBA では、次のプログラミング環境の環境オブジェクトが提供されます。

BEA Tuxedo CORBA では、初期オブジェクト参照を取得するための、サード パーティ クライアントによる OMG CORBA Interoperable Naming Service (INS) の使用もサポートされています。

 


BEA Tuxedo CORBA の構成要素

この節では、BEA Tuxedo CORBA プログラミング環境の次の構成要素について説明します。

図 2-2 は、BEA Tuxedo CORBA アプリケーションの構成要素を示しています。

図 2-2 BEA Tuxedo CORBA アプリケーションの構成要素

BEA Tuxedo CORBA アプリケーションの構成要素

BEA Tuxedo ドメインのブートストラップ処理

ドメインとは、オブジェクトとサービスを管理エンティティとして 1 つのグループにまとめる手段のことです。BEA Tuxedo ドメインは、少なくとも 1 つの IIOP リスナ/ハンドラを持ち、名前で識別されます。1 つのクライアント アプリケーションから、複数の Bootstrap オブジェクトを使用して複数の BEA Tuxedo ドメインに接続できます。

クライアント アプリケーションと BEA Tuxedo ドメインの通信は、そのドメインをブートストラップ処理することで確立されます。ブートストラップ処理のメカニズムには、BEA 社のメカニズムと OMG が規定した CORBA Interoperable Naming Service (INS) のメカニズムがあります。BEA CORBA クライアント ソフトウェアを使用する場合は、BEA 社のメカニズムを使用します。別のベンダのクライアント ORB を使用する場合は、CORBA INS メカニズムを使用します。BEA Tuxedo ドメインのブートストラップ処理の詳細については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA プログラミング リファレンス』を参照してください。

起動後のクライアント アプリケーションで最初に行われることの 1 つは、Bootstrap オブジェクトの作成です。その際には、次のいずれかの URL アドレス形式で IIOP リスナ/ハンドラのホストとポートを指定します。

Bootstrap URL アドレス形式の詳細については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

次に、クライアント アプリケーションでは Bootstrap オブジェクトまたは INS ブートストラップ処理メカニズムを使用して BEA Tuxedo ドメインにあるオブジェクトのリファレンスを取得します。Bootstrap オブジェクトがインスタンス化されると、CORBA サービスを提供する BEA Tuxedo ドメイン内のオブジェクトのリファレンスを取得するために、resolve_initial_references() メソッドがクライアント アプリケーションによって呼び出されます (引数として string id が渡される)。

図 2-3 は、Bootstrap オブジェクトまたは INS メカニズムが BEA Tuxedo ドメインでどのように機能するのかを示しています。

図 2-3 Bootstrap オブジェクトまたは INS のしくみ

Bootstrap オブジェクトまたは INS のしくみ

IIOP リスナ/ハンドラ

IIOP リスナ/ハンドラは、IIOP を使用して送信された CORBA クライアントの要求を受信し、その要求を適切な CORBA サーバ アプリケーションに転送するプロセスです。IIOP リスナ/ハンドラは、通信のコンセントレータとして機能し、必要不可欠なスケーラビリティ機能を実現します。IIOP リスナ/ハンドラを使用すると、CORBA サーバ アプリケーションでクライアント接続を管理する必要がなくなります。IIOP リスナ/ハンドラのコンフィグレーションについては、BEA Tuxedo オンライン マニュアルの『Oracle Tuxedo アプリケーションの設定』および『Tuxedo コマンド リファレンス』の ISL コマンドの説明を参照してください。

ORB

ORB は、CORBA クライアント アプリケーションから CORBA サーバ アプリケーションに送信される要求の媒介として機能します。ORB が介在することで、それらのアプリケーションではお互いについての情報が必要なくなります。ORB は、要求を満たすことができる実装を見つけたり、要求を受信するオブジェクトの実装を準備したり、要求を構成するデータを伝達したりするために必要なすべてのメカニズムについて責任を持ちます。BEA Tuxedo CORBA 製品には C++ のクライアント/サーバ ORB が含まれています。

図 2-4 は、ORB、CORBA クライアント アプリケーション、および CORBA サーバ アプリケーションの間の関係を示しています。

図 2-4 CORBA クライアント/サーバ環境の ORB

CORBA クライアント/サーバ環境の ORB

クライアント アプリケーションから IIOP を使用して BEA Tuxedo ドメインに要求が送信されると、ORB では次の機能が実行されます。

TP フレームワーク

TP フレームワークでは、高水準の性能を実現しながら、CORBA インタフェースの複雑さを隠蔽するプログラミング モデルが提供されます。TP フレームワークでは CORBA アプリケーションの迅速な構築がサポートされており、デザイン パターンに従って適切な TP アプリケーションをビルドすることが容易になっています。

TP フレームワークはポータブル オブジェクト アダプタ (POA) および CORBA アプリケーションとやり取りするので、アプリケーションでは POA を直接呼び出す必要がありません。また、TP フレームワークではトランザクションと状態の管理が BEA Tuxedo CORBA アプリケーションに統合されます。

アプリケーション プログラマは、標準の CORBA アプリケーションで必要な機能の多くを自動化するアプリケーション プログラミング インタフェース (API) を使用します。アプリケーション プログラマのすることは、CORBA アプリケーションのビジネス ロジックを記述し、TP フレームワークのデフォルトのアクションを上書きすることだけです。

TP フレームワークの API では、CORBA アプリケーションで必要な次の機能を実行するルーチンが提供されます。

TP フレームワークを利用すると、クライアントの要求が調和のとれた予測可能な方法で実行されます。TP フレームワークでは、BEA Tuxedo アプリケーションで利用可能なオブジェクトとサービスが適切なときに的確な順序で呼び出されます。また、TP フレームワークではオブジェクトによるシステム リソースの再利用が最大限に行われます。図 2-5 は、TP フレームワークを示しています。

図 2-5 TP フレームワーク

TP フレームワーク

TP フレームワークは単一のオブジェクトではなく、CORBA アプリケーションのデータとビジネス ロジックを格納および実装する CORBA オブジェクトを管理するためにまとまって機能するオブジェクトの集合です。

TP フレームワークのオブジェクトの 1 つに Server オブジェクトがあります。Server オブジェクトは、サーバ アプリケーションの初期化や解放といったタスクを実行するオペレーションを実装するユーザの記述によるプログラミング エンティティです。サーバ アプリケーションの場合、TP フレームワークではクライアントの要求を満たすために必要な CORBA オブジェクトがインスタンス化されます。

サーバ アプリケーションで現時点でアクティブではなく、メモリに存在しないオブジェクトを必要とするクライアントの要求が届くと、TP フレームワークではそのオブジェクトをインスタンス化するために必要なすべてのオペレーションが調整されます。この調整には、ORB や、クライアントの要求を適切なオブジェクト実装コードに渡すための POA との調整も含まれます。

 


BEA Tuxedo CORBA のクライアント アプリケーションとサーバ アプリケーションのやり取り

BEA Tuxedo CORBA のクライアント アプリケーションとサーバ アプリケーションのやり取りは次のように行われます。

  1. CORBA サーバ アプリケーションが初期化されます。
  2. CORBA クライアント アプリケーションが初期化されます。
  3. BEA Tuxedo ドメインで CORBA クライアント アプリケーションが認証されます。
  4. ビジネス ロジックを実行するために必要な CORBA オブジェクトのリファレンスが CORBA クライアント アプリケーションで取得されます。
  5. CORBA オブジェクトのオペレーションが CORBA クライアント アプリケーションによって呼び出されます。

以降の節では、各ステップを詳しく説明します。

ステップ 1: CORBA サーバ アプリケーションの初期化

システム管理者が、BEA Tuxedo ドメイン内のマシンで tmboot コマンドを入力して BEA Tuxedo CORBA サーバ アプリケーションを起動します。TP フレームワークでは、Server オブジェクトの initialize() オペレーションを呼び出してサーバ アプリケーションが初期化されます。

TP フレームワーク

初期化プロセスで、Server オブジェクトでは次のことが行われます。

  1. Bootstrap オブジェクトまたは INS を使用して FactoryFinder オブジェクトのリファレンスを取得します。
  2. 通常は、FactoryFinder オブジェクトにファクトリを登録します。
  3. 必要に応じて ORB のオブジェクト参照を取得します。
  4. プロセス全体の初期化を実行します。

ステップ 2: CORBA クライアント アプリケーションの初期化

初期化時に、CORBA クライアント アプリケーションでは BEA Tuxedo ドメインにあるオブジェクトの初期リファレンスを取得します。

TP フレームワーク

Bootstrap オブジェクトからは、BEA Tuxedo ドメインの FactoryFinder、SecurityCurrent、TransactionCurrent、NameService、および InterfaceRepository の各オブジェクトのリファレンスが返されます。

ステップ 3: BEA Tuxedo ドメインでの CORBA クライアント アプリケーションの認証

BEA Tuxedo ドメインでセキュリティ モデルが設定されている場合、BEA Tuxedo ドメインで認証を受けないと CORBA クライアント アプリケーションでは CORBA サーバ アプリケーションのオペレーションを呼び出すことができません。BEA Tuxedo ドメインでの認証のために、CORBA クライアント アプリケーションでは次のことが行われます。

  1. Bootstrap オブジェクトを使用して SecurityCurrent オブジェクトのリファレンスを取得します。
  2. PrincipalAuthenticator オブジェクトの logon() オペレーションを呼び出します。PrincipalAuthenticator オブジェクトは、SecurityCurrent オブジェクトから取り出します。
注意 : 証明書に基づく認証の方法については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。

ステップ 4: CORBA クライアント アプリケーションによる、ビジネス ロジックの実行に必要な CORBA オブジェクトのリファレンスの取得

CORBA クライアント アプリケーションでは、以下のことを実行する必要があります。

  1. 必要なオブジェクトのファクトリのリファレンスを取得します。
  2. たとえば、クライアント アプリケーションでは SimpleFactory オブジェクトのリファレンスが必要です。次の図で示されているように、このファクトリのリファレンスは FactoryFinder オブジェクトから取得します。

  3. SimpleFactory オブジェクトを呼び出して、Simple オブジェクトのリファレンスを取得します。
  4. SimpleFactory オブジェクトがアクティブでない場合は、次の図で示されているように、TP フレームワークが Server オブジェクトの Server::create_servant メソッドを呼び出して SimpleFactory オブジェクトをインスタンス化します。


    TP フレームワーク

  5. TP フレームワークでは、次の図で示されているように、SimpleFactory オブジェクトの activate_object() オペレーションと find_simple() オペレーションを呼び出して Simple オブジェクトのリファレンスを取得します。

  6. TP フレームワーク

SimpleFactory オブジェクトからクライアント アプリケーションに Simple オブジェクトのオブジェクト参照が返されます。

注意 : TP フレームワークはデフォルトでオブジェクトをアクティブにするので、Simpapp サンプル アプリケーションでは SimpleFactory オブジェクトで activate_object() オペレーションを明示的には使用しません。

ステップ 5: CORBA クライアント アプリケーションによる、CORBA オブジェクトのオペレーションの呼び出し

ファクトリからクライアント アプリケーションに返された CORBA オブジェクトのリファレンスを使用して、クライアント アプリケーションからオブジェクトのオペレーションを呼び出します。たとえば、現時点で Simple オブジェクトのオブジェクト参照があるので、クライアント アプリケーションでは Simple オブジェクトの to_upper() オペレーションを呼び出すことができます。クライアントの要求で必要な Simple オブジェクトのインスタンスは、次の図のように作成されます。

TP フレームワーク


  ページの先頭       前  次