WebLogic RMI プログラマーズ ガイド
RMI over IIOP の使い方
以下の各節では、RMI over IIOP についての概要を説明します。
RMI over 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 RMI-IIOP の概要
WebLogic Server 9.0 には、独自の ORB 実装が用意されています。この ORB は、プログラムで ORB.init()
が呼び出されたとき、または JNDI で "java:comp/ORB"
が参照されたときにデフォルトでインスタンス化されます。WebLogic Server 9.0 が J2SE 1.4 で CORBA をサポートするために準拠している仕様については、「WebLogic Server 9.0 での 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 を使用するさまざまなクライアント タイプに応じたアプリケーションの作成方法については、『スタンドアロン クライアント プログラマーズ ガイド』を参照してください。
図 7-1 に、IIOP を使用するオブジェクトの RMI オブジェクト関係を示します。
図 7-1 RMI オブジェクトの関係
RMI (Java) クライアント使用型 RMI-IIOP のサポート
標準 IIOP プロトコルを活用して、RMI-IIOP を Java/RMI クライアントで使用することができます。WebLogic Server 9.0 では、新しい小規模クライアント jar に基づいた新しい J2EE アプリケーション クライアント (シン クライアント) など、Java-to-Java 環境で RMI-IIOP を使用する複数の方法を用意しています。この新しいシン クライアントを使用するには、クライアント サイドの CLASSPATH に (WL_HOME/server/lib
にある) wlclient.jar
を含める必要があります。RMI-IIOP クライアント オプションの詳細については、『スタンドアロン クライアント プログラマーズ ガイド』の「RMI over IIOP プログラミング モデルを用いたアプリケーション開発」を参照してください。
Tuxedo クライアント使用型 RMI-IIOP のサポート
WebLogic Server 9.0 は WebLogic Tuxedo Connector の実装も備えています。これは、Tuxedo サーバとの相互運用を可能にする基盤技術です。WebLogic Tuxedo Connector を使用すると、Tuxedo を ORB として活用したり、WebLogic Server 上で開発したアプリケーションと従来の Tuxedo システムを統合することができます。詳細については、『WebLogic Tuxedo Connector プログラマーズ ガイド』を参照してください。
CORBA/IDL クライアント使用型 RMI-IIOP のサポート
開発者にとっては、CORBA/IDL クライアントから J2EE サービスにアクセスできることが必要です。しかし、Java と CORBA は非常に異なるオブジェクト モデルに基づいています。このため、この 2 つのプログラミング パラダイムに基づいて作成されたオブジェクト間でのデータ共有は、最近までは、Remote と CORBA のプリミティブ データ型だけに限られていました。CORBA の構造体も Java のオブジェクトも、異なるオブジェクト間で簡単にやり取りすることはできませんでした。この制限を解消するために、Object Management Group (OMG) によって Objects By Value 仕様が策定されました。この仕様では、Java オブジェクト モデルを CORBA/IDL プログラミング モデルにエクスポートでき、Java、CORBA の 2 つのモデル間での複合データ型の交換が可能になります。Objects By Value 仕様が正しく実装されている CORBA ORB を使用すれば、WebLogic Server でも Objects By Value をサポートできます。
プロトコルの互換性
WebLogic Server 9.0 と WebLogic Server 6.1、7.0、および 8.1 の間の相互運用性は、以下のシナリオでサポートされています。
サーバ間の相互運用性
次の表に、2 つの WebLogic Server インスタンス間の相互運用性を実現するためにサポートされるオプションを示します。
表 7-1 WebLogic Server 間の相互運用性
サーバ (受信側)
サーバ (発信側)
|
WebLogic Server 6.1 SP2 および SP2 以降のサービス パック
|
WebLogic Server 7.0
|
WebLogic Server 8.1
|
WebLogic Server 9.0
|
WebLogic Server 6.1 SP2 および SP2 以降のサービス パック
|
RMI/T3
RMI/IIOP1
HTTP
Web サービス
|
RMI/T3
RMI/IIOP2
HTTP
Web サービス
|
RMI/T33
RMI/IIOP4
HTTP
Web サービス5
|
RMI/T36
RMI/IIOP7
HTTP
Web サービス8
|
WebLogic Server 7.0
|
RMI/T3
RMI/IIOP9
HTTP
|
RMI/T3
RMI/IIOP10
HTTP
Web サービス
|
RMI/T3
RMI/IIOP11
HTTP
Web サービス12
|
RMI/T3
RMI/IIOP13
HTTP
Web サービス14
|
WebLogic Server 8.1
|
RMI/T3
RMI/IIOP15
HTTP
|
RMI/T3
RMI/IIOP16
HTTP
Web サービス17
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
WebLogic Server 9.0
|
RMI/T3
RMI/IIOP18
HTTP
|
RMI/T3
RMI/IIOP19
HTTP
Web サービス20
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
Sun JDK ORB クライアント21
|
RMI/IIOP22
|
RMI/IIOP23
|
RMI/IIOP24
|
RMI/IIOP25
|
1.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。
2.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。
3.
6.1 SP4 より前のリリースでは、マーシャリング中の例外に関する確認済みの問題があります。
4.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
5.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
6.
6.1 SP4 より前のリリースでは、マーシャリング中の例外に関する確認済みの問題があります。
7.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
8.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
9.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。
10.
クラスタ化された URL はサポートされません。
11.
クラスタ化された URL はサポートされません。
12.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
13.
クラスタ化された URL はサポートされません。
14.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
15.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
16.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。
17.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
18.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
19.
クラスタ化された URL はサポートされません。また、トランザクションの伝播はありません。
20.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
21.
このオプションには、WebLogic Server にホストされるアプリケーションから JDK ORB への直接の呼び出しが含まれます。
22.
JDK 1.3.x のみ。クラスタリングはありません。トランザクションの伝播はありません。
23.
JDK 1.3.x または 1.4.1。クラスタリングはありません。トランザクションの伝播はありません。
24.
JDK 1.3.x または 1.4.1。クラスタリングはありません。トランザクションの伝播はありません。
25.
JDK 5.0。クラスタリングはありません。トランザクションの伝播はありません。
クライアント/サーバ間の相互運用性
次の表に、スタンドアロン Java クライアント アプリケーションと WebLogic Server インスタンス間の相互運用性を実現するためにサポートされるオプションを示します。
表 7-2 クライアント/サーバ間の相互運用性
サーバ (受信側)
クライアント (スタンドアロン)
|
WebLogic Server 6.1
|
WebLogic Server 7.0
|
WebLogic Server 8.1
|
WebLogic Server 9.0
|
WebLogic Server 6.1
|
RMI/T3
HTTP
Web サービス
|
RMI/T3
HTTP
Web サービス1
|
RMI/T32
HTTP
Web サービス3
|
RMI/T34
HTTP
Web サービス5
|
WebLogic Server 7.0
|
RMI/T3
RMI/IIOP6
HTTP
|
RMI/T3
RMI/IIOP7
HTTP
Web サービス
|
RMI/T3
RMI/IIOP8
HTTP
Web サービス9
|
RMI/T3
RMI/IIOP10
HTTP
Web サービス11
|
WebLogic Server 8.1
|
RMI/T3
RMI/IIOP12
HTTP
|
RMI/T3
RMI/IIOP13
HTTP
Web サービス14
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
WebLogic Server 9.0
|
RMI/T3
RMI/IIOP15
HTTP
|
RMI/T3
RMI/IIOP16
HTTP
Web サービス17
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
RMI/T3
RMI/IIOP
HTTP
Web サービス
|
Sun JDK ORB クライアント18
|
RMI/IIOP19
|
RMI/IIOP20
|
RMI/IIOP21
|
RMI/IIOP22
|
1.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
2.
6.1 SP4 より前のリリースでは、マーシャリング中の例外に関する確認済みの問題があります。
3.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
4.
6.1 SP4 より前のリリースでは、マーシャリング中の例外に関する確認済みの問題があります。
5.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
6.
クラスタやフェイルオーバはサポートされません。トランザクションの伝播はありません。
7.
クラスタやフェイルオーバはサポートされません。
8.
クラスタやフェイルオーバはサポートされません。
9.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
10.
クラスタやフェイルオーバはサポートされません。
11.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
12.
クラスタやフェイルオーバはサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
13.
クラスタやフェイルオーバはサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
14.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
15.
クラスタやフェイルオーバはサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
16.
クラスタやフェイルオーバはサポートされません。また、トランザクションの伝播はありません。マーシャリング中の例外に関する確認済みの問題があります。
17.
「サーバ (受信側)」のバージョンから生成されたポータブル クライアント スタブを使用する必要があります。
18.
このオプションには、クライアント アプリケーションから JDK ORB への直接の呼び出しが含まれます。
19.
JDK 1.3.x のみ。クラスタリングはありません。トランザクションの伝播はありません。
20.
JDK 1.3.x または 1.4.1。クラスタリングはありません。トランザクションの伝播はありません。
21.
JDK 1.3.x または 1.4.1。クラスタリングはありません。トランザクションの伝播はありません。
22.
JDK 5.0。クラスタリングはありません。トランザクションの伝播はありません。