目次 前 次 PDF


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つの目的があります。
Oracle TuxedoまたはCORBAオブジェクトのオペレーションの呼出し
CORBAオブジェクトのオペレーションの実装
コールバック・オブジェクトはTPフレームワークを使用しません。また、Oracle Tuxedoの管理下には置かれません。コールバック・オブジェクトは、トランザクションの振る舞い、セキュリティ、信頼性、およびスケーラビリティが重要ではない場合にのみ使用してください。
コールバック・オブジェクトは、共同クライアント/サーバー・アプリケーションに実装されます。共同クライアント/サーバー・アプリケーションは、次のもので構成されています。
ORBの初期化、Oracle Tuxedo環境オブジェクトを使用しての接続の確立、FactoryFinderオブジェクトへの初期参照の解決、ファクトリを使用したOracle Tuxedoオブジェクトの作成など、Oracle Tuxedoクライアント・アプリケーションの機能を実行するプログラム・ロジック。
コールバック・オブジェクトのサーバントを作成し、オブジェクトIDを使用してそのコールバック・オブジェクトをアクティブ化するプログラム・ロジック。
注意:
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プロトコルのバージョンに応じて、次の方法で動作できます。
双方向
共同クライアント/サーバー・アプリケーションは、常にOracle Tuxedoのドメイン内の同じIIOPサーバー・ハンドラ(ISH)に接続されます。そのISHは、共同クライアント/サーバー・アプリケーションとの間でリクエストを送受信するのに、同じ接続を再利用します。
デュアル・ペア接続
共同クライアント/サーバー・アプリケーションでは、Bootstrapオブジェクトのregister_callback_portメソッドを使用して、共同クライアント/サーバー・アプリケーションの受信ポートをISHに登録します。共同クライアント/サーバー・アプリケーション内のコールバック・オブジェクトに対するサーバー・アプリケーションからの呼出しは、共同クライアント/サーバー・アプリケーションに接続されたISH経由でルーティングされます。このISHでは、接続された共同クライアント/サーバー・アプリケーションとの間でリクエストの送信と応答の受信を行うために、第2のアウトバウンド接続を使用します。アウトバウンド接続は、受信接続とペアになります。これは、接続が1つしか使用されない双方向IIOPとは異なる点です。
非対称
共同クライアント/サーバー・アプリケーションにより、任意のコールバック・オブジェクトを呼び出せます。呼び出す対象は、ISHに接続された共同クライアント/サーバー・アプリケーションで実装されたコールバック・オブジェクトに限りません。非対称IIOPを使用すると、呼出しを処理するために使用可能なISHを探すようORBインフラストラクチャに強制できます。
注意:
リモート・オブジェクトのタイプと希望するアウトバウンド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がそのオブジェクトに割り当てられる方法を制御するポリシーが割り当てられます。オブジェクト・ポリシーは、コールバック・オブジェクトへの参照作成時に定義されます。また、これらのポリシーはコールバック・ラッパー・オブジェクト内で定義されるので、共同クライアント/サーバー・アプリケーションの開発が簡略化されます。
コールバック・オブジェクトでは、次のオブジェクト・ポリシーがサポートされています。
一時/システムID - このタイプのコールバック・オブジェクトのオブジェクト参照は、共同クライアント/サーバー・アプリケーションの持続期間中のみ有効です。オブジェクトIDはOracle Tuxedoシステムによって割り当てられます。このタイプのオブジェクトは、共同クライアント/サーバー・アプリケーションが終了するまでの間にのみ受信する呼出しに使用されます。
永続/システムID - このタイプのコールバック・オブジェクトのオブジェクト参照は、共同クライアント/サーバー・アプリケーションでの複数の呼出しにわたって有効です。オブジェクトIDはOracle Tuxedoシステムによって割り当てられます。このタイプのオブジェクトは、ある一定の期間にわたって終了および再起動する共同クライアント/サーバー・アプリケーションで有用です。共同クライアント/サーバー・アプリケーションは、実行中に、ある特定のコールバック・オブジェクトに対するリクエストを、そのオブジェクト参照とともに受け取ることができます。一般的には、共同クライアント/サーバー・アプリケーションが、オブジェクト参照を一度作成し、それを自身の恒久的なストレージに保存して、起動のたびにそのオブジェクトのサーバントを再アクティブ化します。
永続/ユーザーID - このオブジェクト・ポリシーは永続/システムIDと同じですが、オブジェクトIDが共同クライアント/サーバー・アプリケーションによって割り当てられる点が異なります。
一時オブジェクト・ポリシーを備えたコールバック・オブジェクトを作成する場合、オブジェクト参照は共同クライアント/サーバー・アプリケーションが終了するまで、またはstop_all_objectsメソッドが呼び出されるまでの間のみ有効です。
永続オブジェクト・ポリシーを備えたコールバック・オブジェクトを作成する場合、オブジェクト参照は共同クライアント/サーバー・アプリケーションの終了後でも有効です。共同クライアント/サーバー・アプリケーションが、同一オブジェクトIDについてサーバントを終了、再起動、およびアクティブ化すると、サーバントはそのオブジェクト参照に対して行われたリクエストを受け取ります。
注意:
ネイティブ共同クライアント/サーバー・アプリケーション、つまり呼出し側のサーバー・アプリケーションと同じOracle Tuxedoドメインに配置された共同クライアント/サーバー・アプリケーションを作成する場合は、永続/システムIDまたは永続/ユーザーIDのオブジェクト・ポリシーを使用することはできません。

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved