Oracle Tuxedo CORBA サーバ間通信

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

CORBA サーバ間通信について

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

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

 


CORBA サーバ間通信の概要

CORBA サーバ間通信を使用すると、Oracle Tuxedo アプリケーションで CORBA オブジェクトを呼び出し、その CORBA オブジェクトからの呼び出しを処理できます (コールバック オブジェクトと呼ばれる)。CORBA オブジェクトは Oracle Tuxedo ドメインの内部にも外部にも配置できます。

Oracle Tuxedo 製品は、インターネット ORB 間プロトコル (IIOP) バージョン 1.2 の実装を提供します。これは CORBA オブジェクトとの間でインバウンドおよびアウトバウンドの通信を可能にするものです。サーバ間通信により、ネットワーク リソースをより効率的に利用できるようになり、サード パーティのオブジェクト リクエスト ブローカ (ORB) との統合が提供されます。加えて、サーバ間通信は IIOP のバージョン 1.0 および 1.1 を使用して実装される CORBA オブジェクトによりサポートされています。

 


共同クライアント/サーバ アプリケーション

サーバ間通信により、クライアント アプリケーションがほかのクライアント アプリケーションからの要求に対処するサーバ アプリケーションとして動作できるようになります。さらに、サーバ間通信を使用すると Oracle Tuxedo サーバ アプリケーションでほかの ORB に対してオブジェクトを呼び出せます。

注意 : Oracle Tuxedo および WebLogic Enterprise 製品の旧バージョンでは、クライアント アプリケーションは、Object Management Group (OMG) インタフェース定義言語 (IDL) で定義された CORBA オブジェクトのオペレーションを呼び出していました。サーバ アプリケーションは、CORBA オブジェクトのオペレーションを実装していました。サーバ アプリケーション内の CORBA オブジェクトは、Oracle Tuxedo TP フレームワークおよび環境オブジェクトを使用して、状態管理、セキュリティ、およびトランザクションの実装を行っていました。これらの CORBA オブジェクトは、Oracle Tuxedo オブジェクトと呼ばれます。サーバ アプリケーションはほかのサーバ アプリケーションに対してクライアント アプリケーションとして動作できましたが、クライアント アプリケーションがほかのクライアント アプリケーションに対し、サーバ アプリケーションとして動作することはできませんでした。

サーバ間通信機能は、コールバック オブジェクトを介して利用できます。コールバック オブジェクトには、次の 2 つの目的があります。

コールバック オブジェクトは TP フレームワークを使用しません。また、Oracle Tuxedo の管理下には置かれません。コールバック オブジェクトは、トランザクションの振る舞い、セキュリティ、信頼性、およびスケーラビリティが重要ではない場合にのみ使用してください。

コールバック オブジェクトは、共同クライアント/サーバ アプリケーションに実装されます。共同クライアント/サーバ アプリケーションは、以下のもので構成されています。

注意 : Oracle Tuxedo CORBA 製品のうち、CORBA 環境のリリース 8.0 には、Oracle WebLogic Enterprise の旧リリースで提供されていた Oracle クライアント環境オブジェクトが引き続き含まれており、Oracle Tuxedo 8.0 CORBA クライアントでも使用できます。Oracle Tuxedo 8.0 クライアントは、これらの環境オブジェクトを使用して、ブートストラップ処理、セキュリティ、およびトランザクション オブジェクトへの初期参照を解決する必要があります。このリリースでは、OMG Interoperable Naming Service (INS) を使用してブートストラップ処理、セキュリティ、およびトランザクション オブジェクトへの初期参照を解決するためのサポートが追加されています。INS の詳細については、『Tuxedo CORBA プログラミング リファレンス』の「CORBA ブートストラップ処理のプログラミング リファレンス」を参照してください。

図 1-1 では、共同クライアント/サーバ アプリケーションの構造を示します。

図 1-1 共同クライアント/サーバ アプリケーションの構造

共同クライアント/サーバ アプリケーションの構造

C++ による共同クライアント/サーバ アプリケーションがサポートされています。

共同クライアント/サーバ アプリケーションでは、IIOP を使用して Oracle Tuxedo サーバ アプリケーションと通信します。IIOP は、使用している IIOP プロトコルのバージョンに応じて、以下の方法で動作できます。

注意 : リモート オブジェクトのタイプと希望するアウトバウンド IIOP コンフィグレーションによっては、さらに別のプログラミング タスクを実行しなければならない場合があります。

表 1-1 では、オブジェクトの各タイプとアウトバウンド IIOP についての要件を示します。

表 1-1 アウトバウンド IIOP を使用する際のプログラミング要件
オブジェクトのタイプ
非対称での要件
ペア接続での要件
双方向での要件
リモート共同クライアント/サーバ
ISL CLOPT -O オプションを設定する。
Tobj_Bootstrap::register_callback_port メソッドを使用してコールバック ポートを登録する。
CORBA::ORB::create_policy メソッドを使用して POA で BiDirPolicy を設定する。
外部 (非 Oracle-Tuxedo) ORB
ISL CLOPT -O オプションを設定する。
適用されない。
外部 ORB が POA および BiDirPolicy をサポートする場合は、CORBA::ORB::create_policy メソッドを使用して POA で BiDirPolicy を設定する。
リモート クライアント
リモート クライアントはサーバではないため、アウトバウンド IIOP は使用できない。
ネイティブ共同クライアント/サーバ
アウトバウンド IIOP は使用されない。
ネイティブ クライアント
アウトバウンド IIOP は使用されない。

双方向、デュアル ペア接続、および非対称 IIOP の詳細については、『Tuxedo CORBA プログラミング リファレンス』を参照してください。

 


コールバック オブジェクトのオブジェクト ポリシー

コールバック オブジェクトには、オブジェクト参照の有効期間やオブジェクト ID がそのオブジェクトに割り当てられる方法を制御するポリシーが割り当てられます。オブジェクト ポリシーは、コールバック オブジェクトへの参照作成時に定義されます。また、これらのポリシーはコールバック ラッパー オブジェクト内で定義されるので、共同クライアント/サーバ アプリケーションの開発が簡略化されます。

コールバック オブジェクトでは、次のオブジェクト ポリシーがサポートされています。

一時オブジェクト ポリシーを備えたコールバック オブジェクトを作成する場合、オブジェクト参照は共同クライアント/サーバ アプリケーションが終了するまで、または stop_all_objects メソッドが呼び出されるまでの間のみ有効です。

永続オブジェクト ポリシーを備えたコールバック オブジェクトを作成する場合、オブジェクト参照は共同クライアント/サーバ アプリケーションの終了後でも有効です。共同クライアント/サーバ アプリケーションが、同一オブジェクト ID についてサーバントを終了、再起動、およびアクティブ化すると、サーバントはそのオブジェクト参照に対して行われた要求を受け取ります。

注意 : ネイティブ共同クライアント/サーバ アプリケーション、つまり呼び出し側のサーバ アプリケーションと同じ Oracle Tuxedo ドメインに配置された共同クライアント/サーバ アプリケーションを作成する場合は、永続/システム ID または永続/ユーザ ID のオブジェクト ポリシーを使用することはできません。

  ページの先頭       前  次