分散システムでは,異なる計算機上で実行されているプログラムが相互に通信できる必要がある. 先の演習で行ったように,Java言語は通信のための基本メカニズムとしてソケットをサポートしてい る. これは柔軟性に富み,一般的通信には十分な機能を備えている. しかし,ソケットでは,通信に要する多くの部分をアプリケーション作成者が実装する必要があり, これは容易ではない(図).
これを比較的容易に解決する方法として分散オブジェクトという技術がある. 分散オブジェクトとは,一言で言うと「異なる計算機間でオブジェクト同士がメッセージ 通信を行うための技術」である. これを用いるとネットワークを介して異なる計算機上にあるオブジェクトが,あたかも同 一の計算機上にあるかのようにプログラムを行える.
その大ざっぱな仕組みは図のようになっている. つまり,クライアント側で,サーバ側のオブジェクトの代理オブジェクト(proxy object) を生成し,これにメッセージを発行すると,代理オブジェクトは対応するサーバ側のオブ ジェクトにメッセージを送信し,サーバ側のオブジェクトがメッセージを処理するといっ た感じである. この代理オブジェクトがサーバ側のオブジェクトに発行するメッセージをリモートメッセー ジとも言う.