次の各項では、Oracle TuxedoとOracle WebLogic Serverの間の相互運用性機能について説明します。
Oracle TuxedoとOracle WebLogic Serverの間の相互運用性は、次に示す3つのセットのソフトウェア・プロセス通信によって実現されます。
Joltサーバー・リスナー(JSL)は、Tuxedoサーバーで稼働するリスニング・プロセスで、Joltクライアントからの接続リクエストを受け付け、同様にTuxedoサーバーで稼働するJoltサーバー・ハンドラに接続を割り当てます。また、Joltサーバー・ハンドラ・プロセスのプールを管理し、負荷に対応して起動させます。
Joltサーバー・ハンドラ(JSH)は、Tuxedoサーバーで稼働するゲートウェイ・プロセスで、JoltクライアントとTuxedo ATMIサーバー・アプリケーション間の通信を処理します。JSHプロセスはアプリケーションの管理ドメインに常駐し、ローカルのTuxedoの掲示板にクライアントとして登録されます。
各JSHプロセスは、複数のJoltクライアントを管理できます。JSHはすべてのリクエストを多重化し、1つのJoltクライアントに1つの接続で応答します。
Oracle JoltはJavaベースのクライアントAPIであり、Tuxedoサーバー上で実行されているJoltサービス・リスナー(JSL)経由で、Tuxedoサービスに対するリクエストを管理します。Jolt APIはWebLogic API内に埋め込まれており、サーブレットまたは他のOracle WebLogicアプリケーションからアクセス可能です。
IIOPリスナー(ISL)は、Tuxedoサーバー上で実行されるリスニング・プロセスであり、CORBAクライアントからの接続リクエストを受け入れ、同じくTuxedoサーバー上で実行されているIIOPハンドラに接続を割り当てます。また、IIOPハンドラ・プロセスのプールを監視して、ロード要求に応じてプロセスを開始します。
IIOPハンドラ(ISH)は、Tuxedoサーバー上で実行されるゲートウェイ・プロセスであり、CORBAクライアントとTuxedoサーバー・アプリケーションの間のIIOP通信を処理します。ISHプロセスはアプリケーションの管理ドメインに常駐し、ローカルなOracle Tuxedo掲示板にクライアントとして登録されます。
各ISHプロセスは複数のCORBAクライアントを管理できます。ISHは、1つの接続に対して特定のCORBAクライアントを使用して、すべてのリクエストおよび応答を多重化します。
TDomainゲートウェイはGWTDOMAIN
サーバー・プロセスにより実装され、ネットワーク・プロトコルTCP/IPにより送信される特殊設計のトランザクション処理プロトコルを使用して、複数のOracle Tuxedoドメイン間での相互運用性を実現します。また、Oracle Tuxedo TDomainゲートウェイは、WebLogic Tuxedo Connectorゲートウェイと連携することで、TuxedoドメインとWebLogic Serverアプリケーションの間の相互運用性も実現できます。
WebLogic Tuxedo Connector (WTC)を使用すると、WebLogic ServerとTuxedoのATMIおよびCORBA環境の間の双方向の相互運用性を実現できます。WTCゲートウェイでは、TDomainゲートウェイ・プロトコルがサポートされています。
Oracle Tuxedo 11gリリース1 (11.1.3.0)では、次のWebLogic/WTCバージョンがサポートされています。
Oracle TuxedoとOracle WebLogic Serverの間の相互運用性は、次のアプリケーション・プログラミング・インタフェースを使用して実現されます。
ATMIは、通信、トランザクションおよびデータバッファ管理を行うためのインタフェースであり、Oracle TuxedoシステムでサポートされるすべてのATMI環境で使用できます。ATMIの詳細は、Oracle Tuxedo ATMIの紹介を参照してください。
JATMIは、Oracle Tuxedo ATMIのOracle WebLogic Server Java実装です。これにより、WebLogic Server アプリケーション・サーバーはTuxedo ATMIサービスにアクセスできます。JATMIの詳細は、http://download.oracle.com/docs/cd/E12840_01/wls/docs103/wtc_atmi/index.htmlにあるWebLogic Tuxedo Connectorプログラマーズ・ガイドを参照してください。
Oracle Joltは、Tuxedoサーバー上で実行されているOracle Tuxedoサービスへのリクエストを管理するJavaベースのクライアントAPIです。Jolt APIはWebLogic API内に埋め込まれており、サーブレットまたは他のOracle WebLogicアプリケーションからアクセス可能です。Jolt APIの詳細は、Oracle WebLogic ServerでのOracle Joltの使用を参照してください。
Remote Method InvocationはJavaベースのAPIセットおよびプロトコルであり、あるJava仮想マシン上で実行されているオブジェクトで、別のJava仮想マシンで実行されているオブジェクトのメソッドを起動できるようにします。RMIは、複数のJava仮想マシンに分散されたJavaアプリケーションの動作を指定します。RMIのネイティブ・プロトコルはJava Remote Method Protocol (JRMP)と呼ばれます。
RMIの詳細は、http://download.oracle.com/docs/cd/E12840_01/wls/docs103/rmi/index.htmlにあるWebLogic RMIのプログラミングを参照してください。
RMI-over-IIOPは、すべてのリモート・インタフェースが最初にRMIインタフェースとして定義されていれば、任意の言語で実装されたCORBAオブジェクトとの相互運用性を実現します。RMI-over-IIOPは、RMI-on-IIOP、RMI/IIOPまたはRMI-IIOPとも呼ばれます。以降の説明では、RMI-over-IIOPという語を使用します。
RMIはプログラミングが簡単で、CORBAは幅広い相互運用性を実現できるという特長がありますが、プログラマはRMIとCORBAのどちらかを選ぶ必要があります。IBMおよびSunのJavaSoftはこのジレンマを解決するために、Object Management Group (OMG)の協力を得てRMI-over-IIOPを開発しました。JavaSoftは、Java Development Kit (JDK)にRMI-over-IIOPを組み込んでいます。
RMI-over-IIOPを使用すると、JavaプログラマはCORBA接続を含むアプリケーションをRMIで作成できます。またCORBA 2.3のObjects-by-Valueのサポートを使用すると、CORBAプログラマは、EJB接続を含むアプリケーションをCORBAで作成できます。
注意: | Objects-by-Valueの詳細、およびOracle Tuxedo CORBAでサポートされている値タイプの詳細は、Oracle Tuxedo CORBAプログラミング・リファレンスのC++へのOMG IDL文のマッピングに関する項を参照してください。 |
RMI-over-IIOPおよびCORBAでのObjects-by-Valueのサポートにより、次のクライアント/サーバー・インタフェースが使用可能になります。
注意: | RMI-over-IIOPクライアント CORBAサーバーのインタフェースの場合、IDLで定義されるCORBAオブジェクトのセマンティクスはRMI-over-IIOPオブジェクトのセマンティクスのスーパーセットであるため、RMI-over-IIOPクライアントが必ずしも既存のCORBAオブジェクトすべてにアクセスできるわけではありません。このため、既存のCORBAオブジェクトのIDLを常にRMI-over-IIOP Javaインタフェースにマップできるとは限りません。 |
RMI-over-IIOP APIを使用して作成されたサーバー・バイナリ(クラス・ファイル)は、JRMP (RMIのネイティブ・プロトコル)またはIIOP、あるいはその両方としてエクスポートできます。RMI-over-IIOPオブジェクトをJRMPとIIOPの両方に同時にエクスポートすることを、デュアル・エクスポートと呼びます。
RMI-over-IIOPの詳細は、「RMI over IIOPの使い方」を参照してください。
Oracle Jolt for WebLogic Serverは、Oracle WebLogic ServerアプリケーションからOracle Tuxedo 8.1以降のATMIサービスへの一方向の接続性を提供します。Oracle Jolt for WebLogic Serverを使用すると、WebLogic Serverをフロント・エンドのHTTPサーバーおよびアプリケーション・サーバーとして使用してTuxedoサービスをWeb上で提供できます。図2-1に、この接続の実装を示します。
Oracle JoltはJavaベースのクライアントAPIであり、Tuxedoサーバー上で実行されているJoltサーバー・リスナーを使用して、Oracle Tuxedoサービスに対するリクエストを管理します。Jolt APIは、EJB、JSP、サーブレット、Java HTML (JHTML)またはその他のOracle WebLogicアプリケーション・サーバーからアクセス可能です。
WebLogic Serverでは、サーブレット・セッション・プール(一般には単にJolt接続プール)と呼ばれるJoltセッション・プールのバリエーションが使用されます。Jolt接続プールによって、HTTPサーブレット内部での使用に役立つ機能が追加されます。
Jolt接続プーリングにより、WebLogic Serverアプリケーション・サーバーはOracle Tuxedoアプリケーション内のOracle Tuxedoサービスを起動できます。プーリング機能では、接続プールの障害発生時の接続プールのリセットがサポートされているため、接続プールの再起動が必要な場合でもWebLogic Serverを再起動する必要はありません。
Javaサーバー・ハンドラとWebLogic Server間のネットワーク接続では、ワイヤ・レベルのセキュリティとして、40ビット、56ビットまたは128ビットのLLEがサポートされています。LLEはLink-Level Encryptionの略語であり、ネットワーク・リンク上でデータ秘匿性を確立するためのOracle Tuxedoベース・プロトコルです。
Joltでは、トランザクション・デマーケーション、セキュリティの伝播、および接続のリセットがサポートされています。これには、WebLogic Serverで確立されたセキュリティ・コンテキストをOracle Tuxedoアプリケーションに伝播するメカニズムが備わっています。
WebLogic Serverにより認証されたユーザー資格証明は、適切なセキュリティ・インタフェースまたはプロトコルにマップされます。Tuxedo ATMIサービスの起動前に受信リクエストを再び認証する必要はありません。
Oracle WebLogic ServerでのOracle Joltの使用方法の詳細は、『Oracle WebLogic ServerでのOracle Joltの使用』を参照してください。このドキュメントでは、Oracle Jolt for WebLogic Serverの操作について説明し、Oracle Jolt、Oracle Tuxedo ATMIおよびOracle WebLogic Serverの使用、構成および統合の方法を示しています。
TDomainおよびWTCゲートウェイは、Oracle Tuxedoアプリケーション内にデプロイされたATMIサービスまたはCORBAオブジェクトとWebLogic Serverアプリケーション内にデプロイされたOracle Tuxedoアプリケーションの間の双方向の接続を実現します。また、これらのゲートウェイは、Oracle TuxedoおよびWebLogic Serverのデプロイメントで次のような相互運用性を実現します。
Oracle TuxedoアプリケーションのクライアントおよびサーバーはWebLogic Serverアプリケーション内でEJBオブジェクトを起動し、起動されたEJBオブジェクトは、他のEJBオブジェクト、JSPまたはJavaサーブレットを起動できます。図2-2は、この接続がどのように確立されるかを示しています。
注意: | Oracle Tuxedoクライアントには、ATMIクライアント、JoltクライアントおよびCORBA C++クライアントが含まれます。Tuxedoクライアントの全体像については、Oracle Tuxedo製品概要のクライアント・コンポーネントおよびサーバー・コンポーネントに関する項を参照してください。 |
TDomainゲートウェイを使用すると、Tuxedoドメインが他のOracle Tuxedoドメインとサービスを共有できるだけでなく、WebLogic Server 6.1以降のインストールともWTCゲートウェイを介してサービスを共有できます。WTCゲートウェイでは、TDomainゲートウェイ・プロトコルがサポートされています。
ゲートウェイにより、Tuxedo ATMIクライアントおよびクライアントとして機能するTuxedo ATMIサーバーはWebLogic Server EJBオブジェクトにアクセスできます。TDomainゲートウェイはATMIクライアント・リクエストをWTCゲートウェイに送信し、WTCゲートウェイはリクエストをRMIコールに変換して適切なEJBオブジェクトにアクセスします。
同様に、ゲートウェイにより、Oracle Tuxedo CORBAクライアントおよびクライアントとして機能するTuxedo CORBAサーバーはWebLogic Server EJBオブジェクトにアクセスできます。TDomainゲートウェイはCORBA RMI-over-IIOPクライアント・リクエストをWTCゲートウェイに送信し、WTCゲートウェイはリクエストを適切なEJBオブジェクトに転送します。
注意: | WebLogic Serverリリース7.0、8.1、9.xおよび10.0に付属のWTCコンポーネントでは、WTC 1.0製品に組み込まれているすべての機能がサポートされています。WebLogic Server製品に付属のWTCコンポーネントを使用することをお薦めします。 |
WebLogic Serverアプリケーション内のEJBアプリケーション・サーバーは、WTCゲートウェイおよびTDomainゲートウェイを使用してOracle Tuxedoアプリケーション内のサービスおよびCORBAオブジェクトを起動できます。図2-3は、この接続がどのように確立されるかを示しています。
WTCゲートウェイおよびTDomainゲートウェイにより、クライアントとして機能するWebLogic Server EJB、JSPまたはJavaサーブレットはOracle Tuxedoサービスにアクセスできます。WTCゲートウェイはEJB/JSP/サーブレットJATMIリクエストをATMIリクエストに変換し、TDomainゲートウェイはATMIリクエストを、リクエストされたサービスを提供するOracle Tuxedo ATMIサーバーに送信します。
同様に、これらのゲートウェイにより、クライアントとして機能するWebLogic Server EJB、JSPまたはJavaサーブレットはOracle Tuxedo CORBAオブジェクトにアクセスできます。WTCゲートウェイはEJB/JSP/サーブレットCORBA JavaまたはRMI-over-IIOPリクエストをOracle Tuxedo GIOP (TGIOP)リクエスト・メッセージ内に挿入し、TDomainゲートウェイはTGIOPリクエストを、リクエストされたオブジェクトを提供するOracle Tuxedo CORBAサーバーに送信します。
注意: | WebLogic Serverリリース7.0、8.1、9.xおよび10.0に付属のWTCコンポーネントでは、WTC 1.0製品に組み込まれているすべての機能がサポートされています。WebLogic Server製品に付属のWTCコンポーネントを使用することをお薦めします。 |
TDomainゲートウェイとWTCゲートウェイ間のネットワーク接続では、ワイヤ・レベルのセキュリティとして、40ビット、56ビットまたは128ビットのLLEがサポートされています。LLEはLink-Level Encryptionの略語であり、ネットワーク・リンク上でデータ秘匿性を確立するためのTuxedoベース・プロトコルです。
Oracle TuxedoおよびWebLogic Serverのデプロイメントにおけるアプリケーション・クライアントとサーバー間でのトランザクション・コンテキストおよびセキュリティ・コンテキストの双方向伝播は、TDomainおよびWTCゲートウェイを使用することで完全にサポートされます。
Oracle Tuxedo Domainゲートウェイの詳細は、『Oracle Tuxedo Domainコンポーネントの使用』を参照してください。WTCゲートウェイの詳細は、『WebLogic Tuxedo Connector』(http://download.oracle.com/docs/cd/E12840_01/wls/docs103/wtc.html)を参照してください。
TDomainゲートウェイおよびWTCゲートウェイを使用してOracle Tuxedo CORBAからOracle WebLogic Serverへの接続を確立する方法の他に、Tuxedo CORBA C++クライアントまたはサーバーがRMI-over-IIOPおよびCORBAインタフェース定義言語(IDL)を使用してWebLogic Serverアプリケーション・サーバーを直接コールする方法もあります。図2-4は、このタイプの接続を示しています。
Oracle Tuxedoで開発されたCORBA C++クライアント・アプリケーションをWebLogic Server内のEJBと直接接続する方法を示すサンプル・アプリケーションについては、Oracle Tuxedo CORBAクライアントとWebLogic Server内のEJBの間の接続性を参照してください。
表2-1に、Oracle TuxedoおよびWebLogic Serverのデプロイメントの相互運用性機能を要約します。
WebLogic Serverリリース7.0以降には、相互運用性の様々なサンプル・アプリケーションが添付されています。これらのサンプル・アプリケーションでは、クライアントおよびサーバーのプログラマに対して、(1) アプリケーションでTuxedo ATMIサービスとWebLogic Server EJBオブジェクトを結合すること、および(2) アプリケーションでTuxedo CORBAオブジェクトとWebLogic Server EJBオブジェクトを結合することの基本概念が説明されています。
WebLogic Server 7.0または8.1の場合、ATMIは次のディレクトリに格納されています。
WL_HOME
\samples\server\src\examples\wtc
WL_HOME
は、インストールされているWebLogic Server 7.0または8.1の最上位ディレクトリを表します(デフォルトではweblogic700
)。これらのサンプルには、基底のWTC技術を使用して、WebLogic ServerがTuxedo ATMIサーバーおよびクライアントと連係するよう構成および設定する方法が示されています。
WebLogic Server 7.0または8.1の場合、RMI-over-IIOPのサンプル・コードは次のディレクトリに格納されています。
WL_HOME
\samples\server\src\examples\iiop
これらのサンプルには、基底のWTC技術を使用して、WebLogic ServerがTuxedo CORBAサーバーおよびクライアントと連係するよう構成および設定する方法が示されています。
ATMI、JATMI、CORBA Java、またはRMI-over-IIOP APIを使用して相互運用性アプリケーションを開発する方法については、「WebLogic Tuxedo Connector」(http://download.oracle.com/docs/cd/E12840_01/wls/docs103/wtc.html)を参照してください。