CORBAサーバー間通信の使用

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

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の詳細は、『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の詳細は、『CORBAプログラミング・リファレンス』を参照してください。

 


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

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

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

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

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

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

  先頭に戻る       前  次