![]() ![]() ![]() ![]() ![]() ![]() ![]() |
注: | 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サーバー間通信を使用すると、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では、共同クライアント/サーバー・アプリケーションの構造を示します。
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についての要件を示します。
双方向、デュアル・ペア接続、および非対称IIOPの詳細は、『CORBAプログラミング・リファレンス』を参照してください。
コールバック・オブジェクトには、オブジェクト参照の有効期間やオブジェクトIDがそのオブジェクトに割り当てられる方法を制御するポリシーが割り当てられます。オブジェクト・ポリシーは、コールバック・オブジェクトへの参照作成時に定義されます。また、これらのポリシーはコールバック・ラッパー・オブジェクト内で定義されるので、共同クライアント/サーバー・アプリケーションの開発が簡略化されます。
コールバック・オブジェクトでは、次のオブジェクト・ポリシーがサポートされています。
一時オブジェクト・ポリシーを備えたコールバック・オブジェクトを作成する場合、オブジェクト参照は共同クライアント/サーバー・アプリケーションが終了するまで、またはstop_all_objects
メソッドが呼び出されるまでの間のみ有効です。
永続オブジェクト・ポリシーを備えたコールバック・オブジェクトを作成する場合、オブジェクト参照は共同クライアント/サーバー・アプリケーションの終了後でも有効です。共同クライアント/サーバー・アプリケーションが、同一オブジェクトIDについてサーバントを終了、再起動、およびアクティブ化すると、サーバントはそのオブジェクト参照に対して行われたリクエストを受け取ります。
注: | ネイティブ共同クライアント/サーバー・アプリケーション、つまり呼出し側のサーバー・アプリケーションと同じOracle Tuxedoドメインに配置された共同クライアント/サーバー・アプリケーションを作成する場合は、永続/システムIDまたは永続/ユーザーIDのオブジェクト・ポリシーを使用することはできません。 |
![]() ![]() ![]() |