目次 | 前へ | 次へ 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.