目次 | 前 の項目 | 次の項目 | Java Remote Method Invocation |
RMI アプリケーションは、多くの場合、サーバとクライアントという 2 つのプログラムから構成されます。一般的なサーバアプリケーションは、数多くのリモートオブジェクトを作成し、それらのリモートオブジェクトへの参照をア クセス可能にして、クライアントがそれらのリモートオブジェクトのメソッドを呼び出すのを待ちます。一般的なクライアントアプリケーションは、サーバ内の 1 つまたは複数のリモートオブジェクトへのリモート参照を取得し、それらのオブジェクトのメソッドを呼び出します。RMI は、サーバおよびクライアント間で通信や情報の受け渡しを行う機構を提供します。このようなアプリケーションは、分散オブジェクトアプリケーションと呼ば れることがあります。
- リモートオブジェクトの検索
アプリケーションは、リモートオブジェクトへの参照を取得するために、2 つの機構のうちの 1 つを使うことができます。アプリケーションは、リモートオブジェクトを RMI の単純な名前付け機能である
rmiregistry
に登録するか、あるいは通常の操作の一部としてリモートオブジェクト参照を渡したり、返したりすることができます。- リモートオブジェクトとの通信
リモートオブジェクト間の通信の詳細は、RMI によって処理されます。プログラマからは、リモート通信が標準的なメソッド呼び出しに見えます。
- パラメータまたは戻り値として渡されるオブジェクトのクラスバイトコードのロード
RMI では、呼び出し側はリモートオブジェクトにオブジェクトを渡すことができるため、RMI は、データ転送の場合と同様に、オブジェクトのコードのロードにも必要な機構を提供します。
以下の図は、リモートオブジェクトへの参照の取得にレジストリを使用する RMI 分散アプリケーションを示しています。サーバは、リモートオブジェクトに名前を関連付けるために、レジストリを呼び出します。クライアントは、サーバのレ ジストリ内の名前によってリモートオブジェクトを見つけ、そのオブジェクトのメソッドを呼び出します。この図は、RMI システムで、既存の Web サーバを使って、サーバからクライアント、およびクライアントからサーバに、必要に応じてオブジェクト用の Java 言語内のクラスのバイトコードをロードする様子も示しています。RMI では、Java プラットフォームのサポートする任意の URL プロトコル (HTTP、FTP、ファイルなど) を使って、クラスバイトコードがロードされます。