Oracle® Fusion Middleware Oracle WebLogic Server RMIのプログラミング 11gリリース1 (10.3.6) B61626-06 |
|
![]() 前 |
![]() 次 |
この章では、RMI over IIOP (RMI-IIOP)の概要と、このリリースと以前のWebLogic ServerリリースでのRMI-IIOPの相互運用性について説明します。
RMI over IIOPは、IIOPプロトコルを介して動作するようにRMIを拡張したものです。この拡張には役に立つメリットが2つあります。まず、Java-to-Javaパラダイムでは、これによって、標準IIOP (Internet Inter-ORB Protocol)に対応したプログラムを作成できるようになります。一方、Java単独の環境以外で作業している場合には、この拡張によって、JavaプログラムからCORBA (Common Object Request Broker Architecture)クライアントとやり取りし、CORBAオブジェクトを実行できるようになります。CORBAクライアントは、C++などの様々な言語で記述でき、インタフェース定義言語(IDL : Interface-Definition-Language)を使用してリモート・オブジェクトと対話できます。
WebLogic Serverには、独自のORB実装が用意されています。このORBは、プログラムでORB.init()
が呼び出されたとき、またはJNDIで"java:comp/ORB"
がルックアップされたときにデフォルトでインスタンス化されます。Weblogic ServerがJava SE 1.4でCorbaをサポートするために準拠している仕様については、「付録A WebLogic ServerでのCORBAのサポート」を参照してください。
WebLogic ServerでのRMI-IIOP実装の機能は以下のとおりです。
標準IIOPプロトコルを使用してJava RMIクライアントをWebLogic Serverに接続できます。
CORBA/IDLクライアント(C++で記述されたものを含む)をWebLogic Serverに接続できます。
WebLogic ServerとTuxedoクライアントの間で相互運用できます。
WebLogic ServerをホストとするEJBに、様々なクライアントを接続できます。
RMI-IIOPアプリケーションをどのように開発するかは、どのようなサービスやクライアントを統合するかによって決まります。RMIおよびRMI-IIOPを使用する様々なクライアント・タイプに応じたアプリケーションの作成方法の詳細は、『Oracle WebLogic Serverスタンドアロン・クライアントのプログラミング』を参照してください。
以下の図はIIOPを使用するオブジェクトのRMIオブジェクトの関係を示します。
標準IIOPプロトコルを活用して、RMI-IIOPをJava/RMIクライアントで使用することができます。WebLogic Serverでは、新しい小規模クライアントjarに基づいた新しいJava EEアプリケーション・クライアント(シン・クライアント)など、Java-to-Java環境でRMI-IIOPを使用する複数の方法を用意しています。この新しいシン・クライアントを使用するには、クライアント側のCLASSPATHにwlclient.jar
(WL_HOME/server/lib
にあります)を追加する必要があります。RMI-IIOPクライアント・オプションの詳細は、『Oracle WebLogic Serverスタンドアロン・クライアントのプログラミング』を参照してください。
WebLogic ServerはWebLogic Tuxedo Connectorの実装も備えています。これは、Tuxedoサーバーとの相互運用を可能にする基底の技術です。WebLogic Tuxedo Connectorを使用すると、TuxedoをORBとして活用したり、WebLogic Server上で開発したアプリケーションと従来のTuxedoシステムを統合することができます。詳細は、『Oracle WebLogic Server WebLogic Tuxedo Connectorプログラマーズ・ガイド』を参照してください。
開発者にとっては、CORBA/IDLクライアントからJava EEサービスにアクセスできることが必要です。しかし、JavaとCORBAは非常に異なるオブジェクト・モデルに基づいています。このため、この2つのプログラミング・パラダイムに基づいて作成されたオブジェクト間でのデータ共有は、最近までは、RemoteとCORBAのプリミティブ・データ型だけに限られていました。CORBAの構造体もJavaのオブジェクトも、異なるオブジェクト間で簡単にやり取りすることはできませんでした。この制限を解消するために、Object Management Group (OMG)によってhttp://www.omg.org/technology/documents/index.htm Objects-by-Value
仕様が策定されました。この仕様では、Javaオブジェクト・モデルをCORBA/IDLプログラミング・モデルにエクスポートでき、Java、CORBAの2つのモデル間での複合データ型の交換が可能になります。Objects-by-Value仕様が正しく実装されているCORBA ORBを使用すれば、WebLogic ServerでもObjects-by-Valueをサポートできます。
WebLogic Serverのこのリリースと以前のリリースの間の相互運用性は、以下のシナリオでサポートされています。
次の表に、2つのWebLogic Serverインスタンス間の相互運用性を実現するためにサポートされるオプションを示します。
表7-1 WebLogic Server間の相互運用性
サーバーの相互運用性 | WebLogic Server 8.1 | WebLogic Server 9.x | WebLogic Server 10.x |
---|---|---|---|
WebLogic Server 8.1 |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
WebLogic Server 9.x |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
WebLogic Server 10.x |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
Sun JDK ORBクライアント脚注 1 |
RMI/IIOP脚注 2 |
RMI/IIOP脚注 3 |
RMI/IIOP脚注 4 |
脚注 1 このオプションには、Weblogic ServerにホストされるアプリケーションからJDK ORBへの直接の呼出しが含まれます。
脚注 2 JDK 1.3.xまたは1.4.1。クラスタリングはありません。トランザクションの伝播はありません
脚注 3 JDK 5.0。クラスタリングはありません。トランザクションの伝播はありません
脚注 4 JDK 5.0。クラスタリングはありません。トランザクションの伝播はありません
次の表に、スタンドアロンJavaクライアント・アプリケーションとWebLogic Serverインスタンス間の相互運用性を実現するためにサポートされるオプションを示します。
表7-2 クライアント/サーバー間の相互運用性
クライアント/サーバー間の相互運用性 | WebLogic Server 8.1 | WebLogic Server 9.x | WebLogic Server 10.x |
---|---|---|---|
WebLogic Server 8.1 |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
WebLogic Server 9.x |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
WebLogic Server 10.x |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
RMI/T3 RMI/IIOP HTTP Webサービス |
Sun JDK ORBクライアント脚注 1 |
RMI/IIOP脚注 2 |
RMI/IIOP脚注 3 |
RMI/IIOP脚注 4 |
脚注 1 このオプションには、クライアント・アプリケーションからJDK ORBへの直接の呼出しが含まれます。
脚注 2 JDK 1.3.xまたは1.4.1。クラスタリングはありません。トランザクションの伝播はありません
脚注 3 JDK 5.0。クラスタリングはありません。トランザクションの伝播はありません
脚注 4 JDK 5.0。クラスタリングはありません。トランザクションの伝播はありません