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