bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs >
Tuxedo >
Tuxedo CORBA サーバ間通信
> CORBA サーバ間通信について |
Tuxedo CORBA サーバ間通信
|
CORBA サーバ間通信について
ここでは、以下の内容について説明します。
CORBA サーバ間通信の概要
CORBA サーバ間通信を使用すると、BEA Tuxedo アプリケーションで CORBA オブジェクトを呼び出し、その CORBA オブジェクトからの呼び出しを処理できます (コールバック・オブジェクトと呼ばれる)。CORBA オブジェクトは BEA Tuxedo ドメインの内部にも外部にも配置できます。
BEA Tuxedo 製品は、インターネット ORB 間プロトコル(IIOP)バージョン 1.2 のインプリメンテーションを提供します。これは CORBA オブジェクトとの間でインバウンドおよびアウトバウンドの通信を可能にするものです。サーバ間通信により、ネットワーク・リソースをより効率的に利用できるようになり、サード・パーティのオブジェクト・リクエスト・ブローカ(ORB)との統合が提供されます。加えて、サーバ間通信は IIOP のバージョン 1.0 および 1.1 を使用してインプリメントされる CORBA オブジェクトによりサポートされています。
共同クライアント/サーバ・アプリケーション
サーバ間通信により、クライアント・アプリケーションがほかのクライアント・アプリケーションからの要求に対処するサーバ・アプリケーションとして動作できるようになります。さらに、サーバ間通信を使用すると BEA Tuxedo サーバ・アプリケーションでほかの ORB に対してオブジェクトを呼び出せます。
注記 BEA Tuxedo および WebLogic Enterprise 製品の旧バージョンでは、クライアント・アプリケーションは、Object Management Group(OMG)インターフェイス定義言語(IDL)で定義された CORBA オブジェクトのオペレーションを呼び出していました。サーバ・アプリケーションは、CORBA オブジェクトのオペレーションをインプリメントしていました。サーバ・アプリケーション内の CORBA オブジェクトは、BEA Tuxedo TP フレームワークおよび環境オブジェクトを使用して、状態管理、セキュリティ、およびトランザクションのインプリメントを行っていました。これらの CORBA オブジェクトは、BEA Tuxedo オブジェクトと呼ばれます。サーバ・アプリケーションはほかのサーバ・アプリケーションに対してクライアント・アプリケーションとして動作できましたが、クライアント・アプリケーションがほかのクライアント・アプリケーションに対し、サーバ・アプリケーションとして動作することはできませんでした。
サーバ間通信機能は、コールバック・オブジェクトを介して利用できます。コールバック・オブジェクトには、次の 2 つの目的があります。
コールバック・オブジェクトは TP フレームワークを使用しません。また、BEA Tuxedo の管理下には置かれません。コールバック・オブジェクトは、トランザクションの振る舞い、セキュリティ、信頼性、およびスケーラビリティが重要ではない場合にのみ使用してください。
コールバック・オブジェクトは、共同クライアント/サーバ・アプリケーションにインプリメントされます。共同クライアント/サーバ・アプリケーションは、以下のもので構成されています。
注記 BEA Tuxedo CORBA 製品のうち、CORBA 環境のリリース 8.0 には、BEA WebLogic Enterprise の旧リリースで提供されていた BEA クライアント環境オブジェクトが引き続き含まれており、BEA Tuxedo 8.0 CORBA クライアントでも使用できます。BEA Tuxedo 8.0 クライアントは、これらの環境オブジェクトを使用して、ブートストラップ処理、セキュリティ、およびトランザクション・オブジェクトへの初期リファレンスを解決する必要があります。このリリースでは、OMG インターオペラブル・ネーミング・サービス(INS)を使用してブートストラップ処理、セキュリティ、およびトランザクション・オブジェクトへの初期リファレンスを解決するためのサポートが追加されています。INS の詳細については、『BEA Tuxedo CORBA プログラミング・リファレンス』の「第 4 章 CORBA ブートストラップ処理のプログラミング・リファレンス」を参照してください。
図1-1 では、共同クライアント/サーバ・アプリケーションの構造を示します。
図 1-1 共同クライアント/サーバ・アプリケーションの構造
C++ および Java による共同クライアント/サーバ・アプリケーションがサポートされています。 Java アプレットでのコールバック・オブジェクトの使用は、Java アプレットのセキュリティ・メカニズムにより制限されています。独自の環境またはプロトコルを使用した Java アプレットによるソケットの作成およびリッスンが可能な、任意の Java アプレット実行時環境を、共同クライアント/サーバ・アプリケーションとして動作させることができます。しかし、Java アプレット実行時環境がソケット通信を制限している場合、その Java アプレットは共同クライアント/サーバ・アプリケーションとして動作できません。 共同クライアント/サーバ・アプリケーションでは、IIOP を使用して BEA Tuxedo サーバ・アプリケーションと通信します。IIOP は、使用している IIOP プロトコルのバージョンに応じて、以下の方法で動作できます。
共同クライアント/サーバ・アプリケーションは、常に BEA Tuxedo のドメイン内の同じ IIOP サーバ・ハンドラ(ISH)に接続されます。その ISH は、共同クライアント/サーバ・アプリケーションとの間で要求を送受信するのに、同じ接続を再利用します。
共同クライアント/サーバ・アプリケーションでは、Bootstrap オブジェクトの register_callback_port メソッドを使用して、共同クライアント/サーバ・アプリケーションの受信ポートを ISH に登録します。共同クライアント/サーバ・アプリケーション内のコールバック・オブジェクトに対するサーバ・アプリケーションからの呼び出しは、共同クライアント/サーバ・アプリケーションに接続された ISH 経由でルーティングされます。この ISH では、接続された共同クライアント/サーバ・アプリケーションとの間で要求の送信と応答の受信を行うために、第 2 のアウトバウンド接続を使用します。アウトバウンド接続は、受信時接続とペアになります。これは、接続が 1 つしか使用されない双方向 IIOP とは異なる点です。
共同クライアント/サーバ・アプリケーションにより、任意のコールバック・オブジェクトを呼び出せます。呼び出す対象は、ISH に接続された共同クライアント/サーバ・アプリケーションでインプリメントされたコールバック・オブジェクトに限りません。非対称 IIOP を使用すると、呼び出しを処理するために使用可能な ISH を探すよう ORB インフラストラクチャに強制できます。
注記 リモート・オブジェクトのタイプと希望するアウトバウンド IIOP コンフィギュレーションによっては、さらに別のプログラミング・タスクを実行しなければならない場合があります。
表 1-1 では、オブジェクトの各タイプとアウトバウンド IIOP についての要件を示します。
双方向、デュアル・ペア接続、および非対称 IIOP の詳細については、『BEA Tuxedo CORBA プログラミング・リファレンス』を参照してください。
コールバック・オブジェクトのオブジェクト方針
コールバック・オブジェクトには、オブジェクト・リファレンスの有効期間やオブジェクト ID がそのオブジェクトに割り当てられる方法を制御する方針が割り当てられます。オブジェクト方針は、コールバック・オブジェクトへのリファレンス作成時に定義されます。また、これらの方針はコールバック・ラッパー・オブジェクト内で定義されるので、共同クライアント/サーバ・アプリケーションの開発が簡略化されます。
コールバック・オブジェクトでは、次のオブジェクト方針がサポートされています。
一時オブジェクト方針を備えたコールバック・オブジェクトを作成する場合、オブジェクト・リファレンスは共同クライアント/サーバ・アプリケーションが終了するまで、または stop_all_objects メソッドが呼び出されるまでの間のみ有効です。
永続オブジェクト方針を備えたコールバック・オブジェクトを作成する場合、オブジェクト・リファレンスは共同クライアント/サーバ・アプリケーションの終了後でも有効です。共同クライアント/サーバ・アプリケーションが、同一オブジェクト ID についてサーバントを終了、再起動、および活性化すると、サーバントはそのオブジェクト・リファレンスに対して行われた要求を受け取ります。
注記 ネイティブ共同クライアント/サーバ・アプリケーション、つまり呼び出し側のサーバ・アプリケーションと同じ BEA Tuxedo ドメインに配置された共同クライアント/サーバ・アプリケーションを作成する場合は、永続/システム ID または永続/ユーザ ID のオブジェクト方針を使用することはできません。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |