next up previous
: スタブとスケルトン : RMIを用いた分散オブジェクト : インターフェイス

リモートオブジェクト

リモートオブジェクトは,サーバ側で動作するオブジェクトであり,代理オブジェクトを 通して依頼されたメッセージを実際に処理するオブジェクトである. すなわち,処理すべきインターフェイスを実装するオブジェクトである.

また,リモートオブジェクトは UnicastRemoteObject を拡張する必要がある. これにより,ネットワークを介してメッセージを受け取るための機構が暗黙のうちに組み 込まれる.

以下にリモートオブジェクトの例を示す. これにより,文字列を送信するメソッド say() は,受け取った文字列を画面に表 示するように実現される.

7〜9行目のコンストラクタにも注意して欲しい. リモートオブジェクトの初期化に失敗した場合には,代理オブジェクトを経由してクライ アント側にも例外を発生するため,コンストラクタで RemoteException例外を発 生する必要がある. このため内部変数などの初期化がない場合にもコンストラクタは必要である.




\begin{boxedminipage}{14cm}
\begin{alltt}
\relax{}
\\ 1: import java.rmi.*;
\\ ...
...println(hello);
\\ 13: \}
\\ 14: \}
\\
\\ \relax \end{alltt}\end{boxedminipage}



U-GM\murao 平成14年7月12日