WebLogicのRMI

RMIプログラミングモデル

WebLogicRMI実装は、3つの異なるネットワークプロトコルをサポートしています。
T3、T3/HTTP、そしてIIOPです。
T3はWebLogic固有のプロトコルで、ネットワーク回線を経由するリモートメソッド呼び出しの送受信を高速化するように最適化されています。
T3/HTTPはT3プロトコルをHTTPパケットの内部にトンネル化したものです。T3/HTTPを使えば、HTTP通信しか認めないファイアウォールを経由するRMI呼び出しが可能になります。
IIOPは、CORBAのネットワークプロトコルです。WebLogicRMI/IIOPを使えば、Javaのプログラムは従来からあるCORBAシステムとも通信ができます。これらのプロトコルはいずれも、セキュリティで保護されたクライアントサーバ間通信を実現するために,SSLで暗号化することもできます。



WebLogic RMIにおける最適化

RMIクライアントとRMIサーバーが同じWebLogic Server上に存在するケースは数多くあります。このケースがよく見られるのは、EJBによる通信がすべてRMI経由となっているからです。サーブレットEJBを呼び出す必要がある場合、この2つのコンポーネントが同じWebLogic Server上に存在したとしても、RMI呼び出しが発生します。このケースは一般によく見られるので、こうした呼び出しの性能が直接メソッド呼び出しをした場合の性能とほぼ同等近くなるように最適化がされています。このケースでは、クライアントとサーバーがネットワーク接続を介して通信するメリットがなにもないのは明らかです。WebLogicRMI実装は、クライアントとサーバが同じJVM上に配置されていて、ネットワークの通信が必要ないことを正しく検知してくれます。
━━━━━━━━━━━━━━━━━━━━━━━━━━
コンポーネントを同じJVM上に配置することで,
WebLogicRMI最適化を利用するようにしてください
━━━━━━━━━━━━━━━━━━━━━━━━━━
クライアントとサーバが同一JVM上に配置されている場合に有効なもう一つの最適化が,WebLogic Serverには組み込まれています。それは、クライアントからの呼びだしにおいてRMIのインフラストラクチャがスキップされ、直接実装オブジェクトが呼び出されるというものです。この最適化が行なわれると、RMI呼び出しのパフォーマンスはローカルメソッド呼び出しのパフォーマンスに匹敵するものになります。しかしこの場合,プログラマは呼び出しにおいてマーシャリングとアンマーシャリングがスキップされているため、クライアントとサーバは参照渡しによる呼び出しを行なっていることを認識しなければなりません。この最適化は、RMIにおける正しいパラメータ渡しからは逸脱するものですが、そのセマンティクスはプログラマににとってはなじみのあるものであるはずです。実際、参照渡しによる呼び出しは,ローカルなJavaメソッド呼び出しにおいて使われている方式なのです。

J2EE&BEA WebLogic Server開発者ガイドより引用