Oracle WebLogic Serverとの相互運用性
次の各項では、Oracle TuxedoとOracle WebLogic Serverの間の相互運用性機能について説明します。
Oracle TuxedoとOracle WebLogic Serverの間の相互運用性は、次に示す3つのセットのソフトウェア・プロセス通信によって実現されます。
|
|
|
|
|
|
Joltサーバー・リスナー/Joltサーバー・ハンドラ
|
|
Oracle Jolt for Oracle WebLogic Server
|
WebLogic Serverアプリケーション・サーバーがTuxedo ATMIサービスをコールできるようになります。
|
|
|
|
WebLogic Tuxedo Connector (WTC)
|
WebLogic Serverアプリケーション・サーバーがTuxedo ATMIサービスをコールできるようになります。
WebLogic Serverアプリケーション・サーバーがTuxedo CORBA C++オブジェクトをコールできるようになります。
Tuxedo ATMIクライアントまたはサーバーがWebLogic Serverアプリケーション・サーバーをコールできるようになります。
Tuxedo CORBA C++クライアントまたはサーバーがWebLogic Serverアプリケーション・サーバーをコールできるようになります。
|
Joltサーバー・リスナー(JSL)は、Tuxedoサーバーで稼働するリスニング・プロセスで、Joltクライアントからの接続リクエストを受け付け、同様にTuxedoサーバーで稼働するJoltサーバー・ハンドラに接続を割り当てます。また、Joltサーバー・ハンドラ・プロセスのプールを管理し、負荷に対応して起動させます。
Joltサーバー・ハンドラ(JSH)は、Tuxedoサーバーで稼働するゲートウェイ・プロセスで、JoltクライアントとTuxedo ATMIサーバー・アプリケーション間の通信を処理します。JSHプロセスはアプリケーションの管理ドメインに常駐し、ローカルのTuxedoの掲示板にクライアントとして登録されます。
各JSHプロセスは、複数のJoltクライアントを管理できます。JSHはすべてのリクエストを多重化し、1つのJoltクライアントに1つの接続で応答します。
Oracle Jolt for WebLogic Server
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
WebLogic Tuxedo Connector (WTC)を使用すると、WebLogic ServerとTuxedo ATMIおよびCORBA環境の間の双方向の相互運用性を実現できます。WTCゲートウェイでは、TDomainゲートウェイ・プロトコルがサポートされています。
Oracle Tuxedo 12
cリリース2 (12.2.2)では、次のWebLogic/WTCバージョンがサポートされています。
Oracle TuxedoとOracle WebLogic Serverの間の相互運用性は、次のアプリケーション・プログラミング・インタフェースを使用して実現されます。
•
|
アプリケーション・トランザクション・モニター・インタフェース(ATMI)
|
•
|
Javaアプリケーション・トランザクション・モニター・インタフェース(JATMI)
|
•
|
Remote Method Invocation (RMI)
|
•
|
インターネットORB間プロトコル(IIOP)を介するRemote Method Invocation (RMI) (RMI-over-IIOP)
|
ATMIは、通信、トランザクションおよびデータバッファ管理を行うためのインタフェースであり、Oracle TuxedoシステムでサポートされるすべてのATMI環境で使用できます。ATMIの詳細は、
Oracle Tuxedo ATMIの紹介を参照してください。
JATMIは、Oracle Tuxedo ATMIのOracle WebLogic Server Java実装です。これにより、WebLogic Server アプリケーション・サーバーはTuxedo ATMIサービスにアクセスできます。JATMIの詳細は、次の場所にある
『WebLogic Tuxedo Connectorプログラマーズ・ガイド』を参照してください。
Oracle Jolt for Oracle WebLogic Serverは、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の詳細は、次の場所にある
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クライアント → RMI-over-IIOPサーバー
|
•
|
CORBAクライアント → RMI-over-IIOPサーバー
|
•
|
RMI-over-IIOPクライアント → RMIサーバー
|
•
|
RMI-over-IIOPクライアント → CORBAサーバー
|
•
|
RMI-over-IIOPクライアント → RMI-over-IIOPサーバー
|
注意:
|
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の両方に同時にエクスポートすることを、
デュアル・エクスポートと呼びます。
Oracle Jolt for WebLogic Serverは、Oracle WebLogic ServerアプリケーションからOracle Tuxedo 9.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のトランザクションおよびセキュリティ・コンテキストの伝達
Joltでは、トランザクション・デマーケーション、セキュリティの伝播、および接続のリセットがサポートされています。これには、WebLogic Serverで確立されたセキュリティ・コンテキストをOracle Tuxedoアプリケーションに伝播するメカニズムが備わっています。
WebLogic Serverにより認証されたユーザー資格証明は、適切なセキュリティ・インタフェースまたはプロトコルにマップされます。Tuxedo ATMIサービスの起動前に受信リクエストを再び認証する必要はありません。
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のデプロイメントで次のような相互運用性を実現します。
•
|
Tuxedo ATMIクライアントおよびクライアントとして機能するTuxedo ATMIサーバーが、ATMIインタフェースを介してWebLogic Server EJBサーバーにアクセスできます。
|
•
|
Tuxedo CORBAクライアントおよびクライアントとして機能するTuxedo CORBAサーバーが、RMI-over-IIOPを介してWebLogic Server EJBサーバーにアクセスできます。
|
•
|
クライアントとして機能するWebLogic Serverアプリケーション・サーバー(EJB、JSP、Javaサーブレット)が、次のサーバーにアクセスできます。
|
•
|
Tuxedo ATMIサーバー(JATMIを使用)
|
•
|
Tuxedo CORBAサーバー(CORBA JavaまたはRMI-over-IIOPを使用)
|
Oracle TuxedoからOracle 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オブジェクトに転送します。
Oracle WebLogic ServerからOracle Tuxedoへの接続
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サーバーに送信します。
TDomain-WTCワイヤ・レベル・セキュリティ
TDomainゲートウェイとWTCゲートウェイ間のネットワーク接続では、ワイヤ・レベルのセキュリティとして、40ビット、56ビットまたは128ビットのLLEがサポートされています。LLEはLink-Level Encryptionの略語であり、ネットワーク・リンク上でデータ秘匿性を確立するためのTuxedoベース・プロトコルです。
TDomain-WTCのトランザクションおよびセキュリティ・コンテキストの伝達
Oracle TuxedoおよびWebLogic Serverのデプロイメントにおけるアプリケーション・クライアントとサーバー間でのトランザクション・コンテキストおよびセキュリティ・コンテキストの双方向伝播は、TDomainおよびWTCゲートウェイを使用することで完全にサポートされます。
Oracle Tuxedo Domainsゲートウェイの詳細は、
Oracle Tuxedo Domainsコンポーネントの使用を参照してください。WTCゲートウェイの詳細は、次の場所にある
『WebLogic Tuxedo Connector』を参照してください。
RMI-over-IIOPクライアントからEJBへの直接接続
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のデプロイメントの相互運用性機能を要約します。
表2-1
Oracle TuxedoおよびWebLogic Serverの相互運用性機能(1/2)
|
|
|
|
WebLogic Server EJBオブジェクト
|
|
|
WebLogic Server EJBオブジェクト
|
|
|
WebLogic Server EJBオブジェクト
|
ISH → TDomain → WTC または RMI-over-IIOPを使用したクライアントからEJBへの直接接続
|
|
WebLogic Server EJBオブジェクト
|
|
|
WebLogic Server EJBオブジェクト
|
TDomain → WTC またはRMI-over-IIOPを使用したクライアントからEJBへの直接接続
|
WebLogic Server EJB、JSP、サーブレット
|
|
WTC → TDomain またはJolt for WebLogic Server → JSH
|
WebLogic Server EJB、JSP、サーブレット
|
|
|
* ネイティブTuxedo ATMIまたはCORBA C++クライアントはTuxedoハンドラ・ゲートウェイ・プロセス(WSH、ISH)を使用しません。
*** Tuxedo JoltクライアントからWebLogic Server EJBオブジェクトへの接続はテストされていません。
|
「Oracle Tuxedo Sample Code」で、多種多様な相互運用性のサンプル・アプリケーションが使用可能です。これらのサンプル・アプリケーションでは、クライアントおよびサーバーのプログラマに対して、(1) アプリケーションでOracle Tuxedo ATMIサービスとWebLogic Server EJBオブジェクトを結合すること、および(2) アプリケーションでOracle Tuxedo CORBAオブジェクトとWebLogic Server EJBオブジェクトを結合することの基本概念が説明されています。
ATMIのサンプルには、基底のWTC技術を使用して、WebLogic ServerがOracle Tuxedo ATMIサーバーおよびクライアントと連係するよう構成および設定する方法が示されています。
RMI-over-IIOPのサンプルには、基底のWTC技術を使用して、WebLogic ServerがOracle Tuxedo CORBAサーバーおよびクライアントと連係するよう構成および設定する方法が示されています。