|
| 注意 : | 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 プログラミング環境では、CORBA オブジェクトの開発を容易にする次のようなインタフェース定義言語 (IDL) コンパイラが提供されます。
IDL コンパイラの使い方については、「BEA Tuxedo CORBA アプリケーションの開発」を参照してください。idl コマンドの説明については、BEA Tuxedo オンライン マニュアルの『Tuxedo コマンド リファレンス』を参照してください。
表 2-1 は、BEA Tuxedo CORBA プログラミング環境で CORBA アプリケーションの開発とインタフェース リポジトリの管理のために用意されているコマンドのリストです。
開発コマンドを使用してクライアント アプリケーションおよびサーバ アプリケーションを開発する方法については、「BEA Tuxedo CORBA アプリケーションの開発」を参照してください。
開発コマンドの説明については、BEA Tuxedo オンライン マニュアルの『Tuxedo コマンド リファレンス』を参照してください。
BEA Tuxedo CORBA のプログラミング環境では、CORBA アプリケーションを管理するためのツール一式が提供されます。BEA Tuxedo CORBA アプリケーションは、コマンドまたはグラフィカル ユーザ インタフェースを使用するか、スクリプトで管理ユーティリティを使用することで管理できます。
表 2-2 のリストにあるコマンドを使用すると、CORBA アプリケーションの管理タスクを実行できます。
Administration Console は、インターネット ブラウザにダウンロードでき、BEA Tuxedo CORBA アプリケーションのリモート管理に使用する Java ベースのアプレットです。Administration Console では、システム イベントのモニタ、システム リソースの管理、管理オブジェクトの作成とコンフィグレーション、システム統計の表示といった管理タスクを実行できます。図 2-1 は、Administration Console のメイン ウィンドウです。

また、AdminAPI というユーティリティ セットも利用できます。AdminAPI を使用すると、BEA Tuxedo 製品の管理情報ベース (MIB) のシステム設定を直接アクセスおよび操作できます。AdminAPI の利点は、ログ ファイルのモニタやアプリケーションの動的な再コンフィグレーションなどの管理タスクを自動化し、人が行う作業を減らせることです。
管理コマンドについては、BEA Tuxedo オンライン マニュアルの『Oracle Tuxedo のファイル形式とデータ記述方法』を参照してください。
Administration Console およびそのしくみの説明については、Administration Console のグラフィカル ユーザ インタフェース (GUI) に統合されているオンライン ヘルプを参照してください。
AdminAPI については、BEA Tuxedo オンライン マニュアルの『Oracle Tuxedo アプリケーションの設定』を参照してください。
BEA Tuxedo 製品には、BEA Tuxedo ドメインの CORBA クライアント アプリケーションにオブジェクト サービスを提供する環境オブジェクトのセットがあります。環境オブジェクトには、特定の BEA Tuxedo ドメインのサービスにアクセスするブートストラップ プロセスを通じてアクセスします。
BEA Tuxedo CORBA では、次のサービスが提供されます。
オブジェクト ライフ サイクル サービスは、FactoryFinder 環境オブジェクトを通じて提供されます。FactoryFinder オブジェクトは、ファクトリを見つけるために使用できる CORBA オブジェクトです。ファクトリでは、CORBA オブジェクトのオブジェクト参照を作成できます。ファクトリと FactoryFinder オブジェクトは、CORBA サービスのライフ サイクル サービスの実装です。BEA Tuxedo CORBA アプリケーションでは、オブジェクト ライフ サイクル サービスを使用してオブジェクト参照を検索します。
オブジェクト ライフ サイクル サービスの使い方については、「BEA Tuxedo CORBA のクライアント アプリケーションとサーバ アプリケーションのやり取り」を参照してください。
セキュリティ サービスには、SecurityCurrent 環境オブジェクトまたは PrincipalAuthenticator オブジェクトを通じてアクセスします。SecurityCurrent オブジェクトと PrincipalAuthenticator オブジェクトは、適切なセキュリティを備える BEA Tuxedo ドメインにアクセスするクライアント アプリケーションを認証するために使用します。BEA Tuxedo ソフトウェアでは、CORBA サービスのセキュリティ サービスの実装が提供されます。
セキュリティの使い方については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。
トランザクション サービスには、TransactionCurrent 環境オブジェクトまたは TransactionFactory オブジェクトを通じてアクセスします。TransactionCurrent オブジェクトおよび TransactionFactory オブジェクトを使用すると、クライアント アプリケーションがトランザクションに参加できます。BEA Tuxedo ソフトウェアでは、CORBA サービスのオブジェクト トランザクション サービス (OTS) の実装が提供されます。
トランザクションの使い方については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA トランザクション』を参照してください。
インタフェース リポジトリ サービスには、InterfaceRepository オブジェクトを通じてアクセスします。InterfaceRepository オブジェクトは、利用可能なすべての CORBA インタフェースのインタフェース定義と CORBA インタフェースのオブジェクト参照を作成するファクトリが格納される CORBA オブジェクトです。InterfaceRepository オブジェクトは、DII を使用するクライアント アプリケーションで使用します。
DII の使い方については、『Tuxedo CORBA クライアント アプリケーションの開発方法』を参照してください。
BEA Tuxedo CORBA では、次のプログラミング環境の環境オブジェクトが提供されます。
BEA Tuxedo CORBA では、初期オブジェクト参照を取得するための、サード パーティ クライアントによる OMG CORBA Interoperable Naming Service (INS) の使用もサポートされています。
この節では、BEA Tuxedo CORBA プログラミング環境の次の構成要素について説明します。
図 2-2 は、BEA Tuxedo CORBA アプリケーションの構成要素を示しています。

ドメインとは、オブジェクトとサービスを管理エンティティとして 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 ドメインでどのように機能するのかを示しています。

IIOP リスナ/ハンドラは、IIOP を使用して送信された CORBA クライアントの要求を受信し、その要求を適切な CORBA サーバ アプリケーションに転送するプロセスです。IIOP リスナ/ハンドラは、通信のコンセントレータとして機能し、必要不可欠なスケーラビリティ機能を実現します。IIOP リスナ/ハンドラを使用すると、CORBA サーバ アプリケーションでクライアント接続を管理する必要がなくなります。IIOP リスナ/ハンドラのコンフィグレーションについては、BEA Tuxedo オンライン マニュアルの『Oracle Tuxedo アプリケーションの設定』および『Tuxedo コマンド リファレンス』の ISL コマンドの説明を参照してください。
ORB は、CORBA クライアント アプリケーションから CORBA サーバ アプリケーションに送信される要求の媒介として機能します。ORB が介在することで、それらのアプリケーションではお互いについての情報が必要なくなります。ORB は、要求を満たすことができる実装を見つけたり、要求を受信するオブジェクトの実装を準備したり、要求を構成するデータを伝達したりするために必要なすべてのメカニズムについて責任を持ちます。BEA Tuxedo CORBA 製品には C++ のクライアント/サーバ ORB が含まれています。
図 2-4 は、ORB、CORBA クライアント アプリケーション、および CORBA サーバ アプリケーションの間の関係を示しています。

クライアント アプリケーションから IIOP を使用して BEA Tuxedo ドメインに要求が送信されると、ORB では次の機能が実行されます。
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 フレームワークを示しています。

TP フレームワークは単一のオブジェクトではなく、CORBA アプリケーションのデータとビジネス ロジックを格納および実装する CORBA オブジェクトを管理するためにまとまって機能するオブジェクトの集合です。
TP フレームワークのオブジェクトの 1 つに Server オブジェクトがあります。Server オブジェクトは、サーバ アプリケーションの初期化や解放といったタスクを実行するオペレーションを実装するユーザの記述によるプログラミング エンティティです。サーバ アプリケーションの場合、TP フレームワークではクライアントの要求を満たすために必要な CORBA オブジェクトがインスタンス化されます。
サーバ アプリケーションで現時点でアクティブではなく、メモリに存在しないオブジェクトを必要とするクライアントの要求が届くと、TP フレームワークではそのオブジェクトをインスタンス化するために必要なすべてのオペレーションが調整されます。この調整には、ORB や、クライアントの要求を適切なオブジェクト実装コードに渡すための POA との調整も含まれます。
BEA Tuxedo CORBA のクライアント アプリケーションとサーバ アプリケーションのやり取りは次のように行われます。
システム管理者が、BEA Tuxedo ドメイン内のマシンで tmboot コマンドを入力して BEA Tuxedo CORBA サーバ アプリケーションを起動します。TP フレームワークでは、Server オブジェクトの initialize() オペレーションを呼び出してサーバ アプリケーションが初期化されます。

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

Bootstrap オブジェクトからは、BEA Tuxedo ドメインの FactoryFinder、SecurityCurrent、TransactionCurrent、NameService、および InterfaceRepository の各オブジェクトのリファレンスが返されます。
BEA Tuxedo ドメインでセキュリティ モデルが設定されている場合、BEA Tuxedo ドメインで認証を受けないと CORBA クライアント アプリケーションでは CORBA サーバ アプリケーションのオペレーションを呼び出すことができません。BEA Tuxedo ドメインでの認証のために、CORBA クライアント アプリケーションでは次のことが行われます。
| 注意 : | 証明書に基づく認証の方法については、BEA Tuxedo オンライン マニュアルの『Tuxedo CORBA アプリケーションのセキュリティ機能』を参照してください。 |
CORBA クライアント アプリケーションでは、以下のことを実行する必要があります。
たとえば、クライアント アプリケーションでは SimpleFactory オブジェクトのリファレンスが必要です。次の図で示されているように、このファクトリのリファレンスは FactoryFinder オブジェクトから取得します。
Simple オブジェクトのリファレンスを取得します。
SimpleFactory オブジェクトがアクティブでない場合は、次の図で示されているように、TP フレームワークが Server オブジェクトの Server::create_servant メソッドを呼び出して SimpleFactory オブジェクトをインスタンス化します。
activate_object() オペレーションと find_simple() オペレーションを呼び出して Simple オブジェクトのリファレンスを取得します。
SimpleFactory オブジェクトからクライアント アプリケーションに Simple オブジェクトのオブジェクト参照が返されます。
| 注意 : | TP フレームワークはデフォルトでオブジェクトをアクティブにするので、Simpapp サンプル アプリケーションでは SimpleFactory オブジェクトで activate_object() オペレーションを明示的には使用しません。 |
ファクトリからクライアント アプリケーションに返された CORBA オブジェクトのリファレンスを使用して、クライアント アプリケーションからオブジェクトのオペレーションを呼び出します。たとえば、現時点で Simple オブジェクトのオブジェクト参照があるので、クライアント アプリケーションでは Simple オブジェクトの to_upper() オペレーションを呼び出すことができます。クライアントの要求で必要な Simple オブジェクトのインスタンスは、次の図のように作成されます。

|