ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     WebLogic RMI   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

WebLogic RMI について

 

以下の節では、WebLogic RMI の機能について概説します。

 


WebLogic RMI とは

Remote Method Invocation (RMI)は、Java を使用した分散オブジェクト コンピューティングのための標準仕様です。RMI を使用すると、アプリケーションはネットワーク内の別の場所に存在するオブジェクトを参照し、そのオブジェクトのメソッドを、そのオブジェクトがあたかもクライアントの仮想マシンにローカルに存在するかのように呼び出すことができます。RMI は、分散 Java アプリケーションがどのように複数の Java 仮想マシン(JVM)で動作するかを指定するものです。

WebLogic は、JavaSoft RMI 仕様を実装しています。WebLogic RMI は、標準ベースの分散コンピューティングを実現します。WebLogic Server を使用すると、高速かつ信頼性の高い大規模なネットワーク コンピューティングが可能になります。さらに WebLogic RMI を使用すると、製品、サービス、リソースをネットワーク内のどこにでも配置しつつ、プログラマとエンド ユーザにはそれらをローカル環境の一部であるかのように見せることができます。

WebLogic RMI は直線的なスケーラビリティをサポートするだけでなく、コンフィグレーションされた数のサーバ スレッドに実行要求を分割できます。複数のサーバ スレッドの使用により、WebLogic Server はレイテンシと空いたプロセッサを活用できます。

WebLogic RMI は、標準に完全に準拠しています。RMI の他の実装を使用する場合は、import 文を変更するだけでプログラムを変換できます。JavaSoft の RMI の参照実装と WebLogic の RMI 製品には相違がありますが、これらの相違は開発者からはまったく見えません。

また、WebLogic RMI は WebLogic Java Naming and Directory Interface(JNDI)と完全に統合されています。WebLogic RMI では JNDI API またはレジストリ インタフェースを使用して、アプリケーションを意味のあるネーム スペースに分けることができます。

このマニュアルは WebLogic RMI の使い方について説明したものですが、リモート オブジェクトや分散アプリケーションの記述方法についての初心者向けチュートリアルではありません。RMI について知りたい場合は、JavaSoft Web サイトの「RMI tutorial」を参照してください。

 


WebLogic RMI の機能

JavaSoft の RMI 参照実装と同じように、WebLogic RMI は複数の JVM での透過的なリモート呼び出しを提供しています。RMI 仕様に書かれているリモート インタフェースおよび実装は、変更を加えずに WebLogic RMI で使用できます。

次の表に、RMI の WebLogic 実装の重要な機能を示します 。

表 1-1 WebLogic RMI のパフォーマンス

機能

WebLogic RMI

全体的なパフォーマンス

WebLogic Server フレームワークとの統合により、WebLogic RMI のパフォーマンスが向上する。WebLogic Server は、通信の基本サポート、スレッドとソケットの管理、効率的なガベージ コレクション、およびサーバ関連サポートを提供する。

スケーラビリティ

直線的なスケーラビリティをサポートする。JavaSort RMI に比べてスケーラビリティが極めて高い。PC クラスの比較的小規模な単一プロセッサのサーバであっても、1000 を超える RMI クライアントを同時にサポートできる(サーバの負荷とメソッド呼び出しの複雑さによって異なる)。

スレッドとソケットの管理

WebLogic RMI のクライアントからネットワークへのトラフィック用に、非同期、双方向の単一接続が使用される。この接続で、WebLogic JDBC 要求などのサービスもサポートできる。

シリアライゼーション

高性能なシリアライズにより、リモート クラスを 1 回しか使用しない場合でも大幅なパフォーマンス向上が実現される。

共存オブジェクトの解決

同じ場所にあるオブジェクトがリモートとして定義されている場合のパフォーマンスの低下がない。同じ場所にある「リモート」オブジェクトへの参照は、実装オブジェクトへの直接参照として解決される。

サービスをサポートするプロセス

WebLogic RMI レジストリは RMI レジストリ プロセスに取って代わるものである。WebLogic RMI は WebLogic Server 内で稼動する。他のプロセスを追加する必要はない。


 

表 1-2 WebLogic RMI の使いやすさ

機能

WebLogic RMI

rmic

プロキシとバイトコードは実行時に WebLogic RMI によって動的に生成される。このため、クラスタ対応クライアントまたは IIOP クライアントを除いて、明示的に rmic を実行する必要はない。

簡単に使用できる拡張機能

リモート インタフェースとコード生成のための、簡単に使用できる拡張機能を備えている。たとえば、インタフェースの各メソッドは、throws ブロック内で java.rmi.RemoteException を宣言する必要がない。アプリケーションが送出する例外は、そのアプリケーションに固有なものでもよく、RuntimeException を拡張することもできる。

プロキシ

リモート オブジェクトのクライアントが使用するクラス。RMI の場合はスケルトン クラスとスタブ クラスが使用される。スタブ クラスは、クライアントの Java 仮想マシン(JVM)で呼び出されるインスタンス。スケルトン クラスはリモート JVM に存在し、リモート JVM 上で呼び出されたメソッドと引数のマーシャリングを解除し、リモート オブジェクトのインスタンスのメソッドを呼び出した後、結果をマーシャリングしてクライアントに返す。

セキュリティ マネージャ

セキュリティ マネージャは不要。WebLogic Server で提供されるすべての WebLogic RMI サービスは、SSL や ACL などのより高度なセキュリティ オプションを備えている。RMI コードを WebLogic RMI コードに変換するときに、setSecurityManager() への呼び出しをコメントアウトできる。

継承

UnicastRemoteObject を拡張する必要がないため、論理オブジェクト階層が保持される。リモート クラスは、rmi.server パッケージ実装を継承するために UnicastRemoteObject を継承する必要がない。リモート クラスにアプリケーション階層内のクラスを継承させつつ、rmi.server パッケージの動作を保持できる。

ツールと管理

RMI レジストリをホストする WebLogic Server は、分散アプリケーションを開発およびデプロイメントするのに十分なツールを備えた環境を提供する。


 

表 1-3 WebLogic RMI のネーミングとルックアップ

機能

WebLogic RMI

ネーミング

WebLogic JNDI と完全に統合されている。JNDI API またはレジストリ インタフェースを使用して、アプリケーションを意味のあるネーム スペースに分けることができる。JNDI を使用すると、LDAP や NDS のようなエンタープライズ ネーミング サービスを介して RMI オブジェクトをパブリック化できる。

ルックアップ

URL では、標準の rmi:// 方式、https://、iiop://、または http:// を使用する。http:// は、WebLogic RMI の HTTP リクエストをトンネリングし、ファイアウォールを通る場合でも WebLogic RMI のリモート呼び出しを使用可能にする。

クライアントサイドの呼び出し

クライアントからサーバ、クライアントからクライアント、またはサーバからクライアントへの呼び出しをサポートする。クライアントとサーバが最適化済み、多重化、非同期、双方向の接続で接続されている適切な WebLogic Server 環境で動作する。このため、クライアント アプリケーションはレジストリを介してオブジェクトを発行でき、他のクライアントまたはサーバは、クライアント常駐オブジェクトをサーバ常駐オブジェクトとして使用できる。


 

 

back to top previous page next page