目次|| Java Remote Method Invocation


1.1背景

分散システムでは、異なるアドレス空間上、つまり潜在的には異なるホスト上で、実行されている計算が相互に通信できる必要があります。通信のための基本的なメカニズムとして、JavaTM言語はソケットをサポートします。これは、柔軟性に富み一般的な通信には十分な機能を備えています。しかし、ソケットでは、クライアントとサーバーは情報交換メッセージをエンコードおよびデコードするためにアプリケーション・レベルでのプロトコルに集中しなければならず、このようなプロトコルの設計は複雑でエラーを招きやすいものです。

ソケットに替わる手段としてRPC (Remote Procedure Call)があり、これは通信インタフェースをプロシージャ呼出しのレベルまで抽象化したものです。直接ソケットを取り扱うのではなく、あたかもローカルなプロシージャ呼び出しとしてプログラムしますが、実際には、引数はパッケージ化されて呼出しの対象であるリモート・ターゲットへ送られます。RPCシステムが、XDRのような外部データ表現を用いて、引数と戻り値をエンコードします。

しかし、RPCは、異なるアドレス空間に存在するプログラム・レベルオブジェクト間の通信を必要とする、分散オブジェクト・システムに適合させるには難点があります。オブジェクト呼出しのセマンティックスを適合させるために、分散オブジェクト・システムはRMI (Remote Method Invocation)を必要とします。このようなシステムでは、ローカルな代理オブジェクト(スタブ)がリモート・オブジェクト呼出しを管理します。

この仕様書に記述されているJavaプラットフォームのRMIシステムは、Javaアプリケーション環境で動作させるために特別に設計されたものです。Java言語のRMIシステムは、Java仮想マシン(JVM)から構成される同種環境を想定しているため、このシステムではJavaプラットフォームのオブジェクト・モデルの特性を最大限に活用できます。



目次||

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved.