BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic RMI over IIOP プログラマーズ ガイド

 Previous Next Contents PDF で侮ヲ  

RMI over IIOP の概要

以下の各節では、RMI over IIOP を概観します。

 


RMI および RMI over IIOP とは

RMI-IIOP を理解するには、まず RMI を実務レベルで理解している必要があります。RMI (Remote Method Invocation) は、Java での分散オブジェクト コンピューティングの標準規格です。RMI を使用すると、アプリケーション側では、ネットワーク内の別の場所に存在するオブジェクトへの参照を取得したあと、そのオブジェクトのメソッドを、そのオブジェクトがあたかもクライアントの仮想マシンにローカルに存在するかのように呼び出すことができます。RMI は、分散 Java アプリケーションが複数の Java 仮想マシン上でどのように動作するかを規定するものです。RMI は Java で記述されており、Java プログラム専用のものです。

RMI over IIOP は、IIOP プロトコルを介して動作するように RMI を拡張したものです。この拡張には役に立つメリットが 2 つあります。まず、Java-to-Java パラダイムでは、これによって、標準 IIOP (Internet Interop-Orb-Protocol) に対応したプログラムを作成できるようになります。一方、Java 単独の環境以外で作業している場合には、この拡張によって、Java プログラムから CORBA (Common Object Request Broker Architecture) クライアントとやり取りし、CORBA オブジェクトを実行できるようになります。CORBA クライアントは、さまざまな言語 (C++ を含む) で記述することができ、インタフェース定義言語 (IDL : Interface-Definition-Language) を用いてリモート オブジェクトとやり取りすることができます。

 


WebLogic RMI-IIOP の概要

RMI over IIOP は RMI プログラミング モデルに基づいたものであり、また、それほどではないにせよ、JNDI (Java Naming and Directory Interface) にも基づいています。WebLogic RMI と JNDI の詳細については、『WebLogic RMI プログラマーズ ガイド』の「WebLogic RMI の実装」と『WebLogic JNDI プログラマーズ ガイド』を参照してください。これらの技術はどちらも RMI-IIOP にとってきわめて重要なものなので、RMI-IIOP アプリケーションの構築を始める前に、これらの技術の一般的な概念についてよく理解しておくことを強くお勧めします。

WebLogic Server 7.0 での RMI-IIOP 実装の機能は以下のとおりです。

このマニュアルでは、RMI および RMI-IIOP を用いるさまざまなクライアント タイプに応じたアプリケーションの作成方法について説明します。RMI-IIOP アプリケーションをどのように開発するかは、どのようなサービスやクライアントを統合するかによって決まります。

以下の図は、IIOP を用いた RMI オブジェクト関係を示しています。


 

RMI (Java) クライアント使用型 RMI-IIOP のサポート

標準 IIOP プロトコルを活用して、RMI-IIOP を Java/RMI クライアントで使用することができます。JDK のリリース 1.3.1 ではこの機能が強化され、Java-to-Java の環境において RMI-IIOP で手軽に WebLogic Server 7.0 を使用できます。また、完全にクラスタ化可能な RMI-IIOP アプリケーションを開発できる、「ファット」RMI-IIOP RMI クライアントも導入されました。この新しい WebLogic RMI-IIOP RMI クライアントを使用するには、クライアント サイドの CLASSPATH にweblogic.jar (WL_HOME/server/lib にある) を含め、-Dweblogic.system.iiop.enableClient=true コマンド ライン オプションを使用してクライアントを起動する必要があります。

Tuxedo クライアント使用型 RMI-IIOP のサポート

WebLogic Server 7.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 7.0 と WebLogic Server 6.x および 8.1 の相互運用性は、以下のシナリオでサポートされています。

サーバ間の相互運用性

次の表は、2 つの WebLogic Server インスタンス間で相互運用を実現するために利用できるオプションを示しています。

表1-1 WebLogic Server 間の相互運用性

この

サーバへ

このサーバから

WebLogic Server 6.0

WebLogic Server 6.1 SP2 以降のサービス パック

WebLogic Server 7.0

WebLogic Server 8.1

WebLogic Server 6.0

RMI/T3

HTTP

HTTP

HTTP

Web サービス
1. 

HTTP

Web サービス
2. 

WebLogic Server 6.1 SP2 以降のサービス パック

HTTP

RMI/T3

RMI/IIOP
3. 

HTTP

Web サービス

RMI/T3

RMI/IIOP
4. 

HTTP

Web サービス

RMI/T3
5. 

RMI/IIOP
6. 

HTTP

Web サービス
7. 

WebLogic Server 7.0

HTTP

RMI/T3

RMI/IIOP
8. 

HTTP

RMI/T3

RMI/IIOP
9. 

HTTP

Web サービス

RMI/T3

RMI/IIOP
10. 

HTTP

Web サービス
11. 

WebLogic Server 8.1

HTTP

RMI/T3

RMI/IIOP
12. 

HTTP

RMI/T3

RMI/IIOP
13. 

HTTP

Web サービス
14. 

RMI/T3

RMI/IIOP

HTTP

Web サービス

Sun JDK ORB クライアント
15. 

RMI/IIOP
16. 

RMI/IIOP
17. 

RMI/IIOP
18. 

RMI/IIOP
19. 

1「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
2「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
3 クラスタ化された URL のサポートはありません。トランザクションの伝播はありません。
4 クラスタ化された URL のサポートはありません。トランザクションの伝播はありません。
5 クラスタ化された URL のサポートはありません。トランザクションの伝播はありません。 マーシャリング中の例外に関する確認済みの問題があります。
6 トランザクションの伝播なし。例外マーシャリングの確認済みの問題。
7 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
8 クラスタ化された URL のサポートはありません。トランザクションの伝播はありません。
9 クラスタ化された URL のサポートはありません。
10 クラスタ化された URL のサポートはありません。
11 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
12 クラスタ化された URL のサポートはありません。トランザクションの伝播はありません。 マーシャリング中の例外に関する確認済みの問題があります。
13クラスタ化された URL のサポートはありません。トランザクションの伝播はありません。
14 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
15このオプションでは、WebLogic Server でホストされているアプリケーション内から JDK ORB へのダイレクトな呼び出しが行われます。
16 JDK 1.3.x のみ。 クラスタ化なし。 トランザクションの伝播なし。
17 JDK 1.3.x のみ。 クラスタ化なし。 トランザクションの伝播なし。
18 JDK 1.3.x または 1.4.1。 クラスタ化なし。 トランザクションの伝播なし。
19 JDK 1.3.x または 1.4.1。 クラスタ化なし。 トランザクションの伝播なし。

 

クライアントとサーバ間の相互運用性

次の表は、スタンドアロンの Java クライアント アプリケーションと WebLogic Server インスタンスの間で相互運用性を実現するために利用できるオプションを示しています。

表1-2 クライアントとサーバ間の相互運用性

この

サーバへ

このクライアント (スタンドアロン) から

WebLogic Server 6.0

WebLogic Server 6.1

WebLogic Server 7.0

WebLogic Server 8.1

WebLogic Server 6.0

RMI

HTTP

HTTP

HTTP

Web サービス
1. 

HTTP

Web サービス
2. 

WebLogic Server 6.1

HTTP

RMI/T3

HTTP

Web サービス

RMI/T3

HTTP

Web サービス
3. 

RMI/T3
4. 

HTTP

Web サービス
5. 

WebLogic Server 7.0

HTTP

RMI/T3

RMI/IIOP
6. 

HTTP

RMI/T3

RMI/IIOP
7. 

HTTP

Web サービス

RMI/T3

RMI/IIOP
8. 

HTTP

Web サービス
9. 

WebLogic Server 8.1

HTTP

RMI/T3

RMI/IIOP
10. 

HTTP

RMI/T3

RMI/IIOP
11. 

HTTP

Web サービス
12. 

RMI/T3

RMI/IIOP

HTTP

Web サービス

Sun JDK ORB クライアント
13. 

RMI/IIOP
14. 

RMI/IIOP
15. 

RMI/IIOP
16. 

RMI/IIOP
17. 

1 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
2 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
3 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
4 6.1 SP4 より前のリリースで例外マーシャリングに確認済みの問題があります。
5 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
6 クラスタおよびフェイルオーバのサポートはありません。 トランザクションの伝播はありません。
7 クラスタおよびフェイルオーバのサポートはありません。
8 クラスタおよびフェイルオーバのサポートはありません。
9 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
10 クラスタおよびフェイルオーバのサポートはありません。トランザクションの伝播はありません。 マーシャリング中の例外に関する確認済みの問題があります。
11 クラスタおよびフェイルオーバのサポートはありません。トランザクションの伝播はありません。 マーシャリング中の例外に関する確認済みの問題があります。
12 「このサーバへ」のバージョンで生成されたポータブル クライアント スタブを使用する必要があります。
13 このオプションでは、クライアント アプリケーション内から JDK ORB へのダイレクトな呼び出しが行われます。
14 JDK 1.3.x のみ。 クラスタ化なし。 トランザクションの伝播なし。
15 JDK 1.3.x のみ。 クラスタ化なし。 トランザクションの伝播なし。
16 JDK 1.3.x または 1.4.1。 クラスタ化なし。 トランザクションの伝播なし。
17 JDK 1.3.x または 1.4.1。 クラスタ化なし。 トランザクションの伝播なし。

 

 

Back to Top Previous Next