目次 | 前の項 目 | 次の項目 | Java Remote Method Invocation |
分散システムでは、異なるアドレス空間上、つまり潜在的には異なるホスト上で、実行されている計算過程が相互に通信できる必要があります。通信のための基 本的な機構として、JavaTM 言語はソケットをサポートします。 これは、柔軟性に富み一般的な通信には十分な機能を備えています。しかし、ソケットでは、クライアントとサーバは情報交換メッセージを符号化および復号化 するためにアプリケーションレベルでのプロトコルに集中せねばならず、このようなプロトコルの設計は複雑でエラーを招きやすいものです。ソケットに替わる手段として RPC (リモートプロシージャ呼び出し) があり、これは通信インタフェースをプロシージャ呼び出しのレベルまで抽象化したものです。直接ソケットを取り扱うのではなく、あたかもローカルなプロ シージャ呼び出しとしてプログラムしますが、実際には、引数はパッケージ化されて呼び出しの対象であるリモートターゲットへ送られます。RPC システムが、XDR のような外部データ表現を用いて、引数と戻り値を符号化します。
しかし、PRCは、異なるアドレス空間に存在するプログラムレベルオブジェクト間の通信を必要とする、分散オブジェクトシステムに適合させるには難点があ ります。オブジェクト呼び出しのセマンティクスを適合させるために、分散オブジェクトシステムは RMI (Remote Method Invocation) を必要とします。このようなシステムでは、ローカルな代理オブジェクト (スタブ) がリモートオブジェクト呼び出しを管理します。
この仕様書に記述されている Java プラットフォームの RMI システムは、Java アプリケーション環境で動作させるために特別に設計されたものです。Java 言語の RMI システムは、Java 仮想マシン (JVM) から構成される同種環境を想定しているため、このシステムでは Java プラットフォームのオブジェクトモデルの特性を最大限に活用できます。