目次 | 前へ | 次へ |
Java Remote Method Invocation |
RMI では、リモートオブジェクトであるスタブおよびスケルトンとの通信に、RPC システムで用いられる標準のメカニズムが使われます。スタブとスケルトン。リモートオブジェクトのスタブは、リモートオブジェクトに対するクライアントのローカルでの代理、つまりプロキシの役割を果たします。呼び出し側は、リモートオブジェクトに対するメソッド呼び出しを行うローカルスタブ上のメソッドを呼び出します。RMI では、リモートオブジェクトのスタブは、リモートオブジェクトが実装しているリモートインタフェースのセットと同じセットを実装します。
スタブのメソッドは、呼び出されると、次の動作を実行します。
- リモートオブジェクトを含むリモート JVM との通信の開始
- リモート JVM へのパラメータの整列化 (書き込みおよび転送)
- メソッド呼び出しの結果の待機
- 戻り値または発行された例外の非整列化 (読み取り)
- 呼び出し側に値を返すこと。
スタブが、パラメータの直列化およびネットワークレベルの通信を隠すことにより、呼び出し側に対してシンプルな呼び出しメカニズムが提供されます。
リモート JVM では、各リモートオブジェクトに対応するスケルトンがあります。Java 2 プラットフォームだけの環境では、スケルトンは必要ありません。スケルトンによって、呼び出しが実際のリモートオブジェクトの実装にディスパッチされます。スケルトンは、メソッド呼び出しを受け取ると、次の動作を実行します。
- リモートメソッド用パラメータの非整列化 (読み取り)
- 実際のリモートオブジェクトの実装上にあるメソッドの呼び出し
- 呼び出し側に対する結果 (戻り値または例外) の整列化 (書き込みおよび転送)。
Java 2 SDK, Standard Edition, v1.2 では、スタブプロトコルが追加され、Java 2 プラットフォームだけの環境ではスケルトンが必要なくなりました。JDK 1.1 でスケルトンによって行われた作業は、ジェネリックコードを使って実行されます。スタブおよびスケルトンは、rmic
コンパイラによって生成されます。
目次 | 前へ | 次へ
Copyright 1997, 2010, Oracle and/or its affiliates. All rights reserved.