目次
|
前へ
|
次へ
Java Remote Method Invocation
2.3
分散モデルと非分散モデルの比較
Java SE プラットフォームの分散オブジェクトモデルは、Java SE プラットフォームのオブジェクトモデルと次の点でよく似ています。
リモートオブジェクトへの参照を引数として渡すことができ、メソッド (ローカルであれ、リモートであれ) 呼び出しの結果は戻り値として返される。
リモートオブジェクトはリモートインタフェースの実装がサポートする任意の型にキャストすることができる。このとき Java 言語に組み込まれた型変換構文に従う。
組み込み演算子
instanceof
により、リモートオブジェクトがサポートするリモートインタフェースをテストすることができる。
Java SE プラットフォームの分散オブジェクトは Java SE プラットフォームのオブジェクトモデルと次の点で異なります。
リモートオブジェクトのクライアントは、リモートインタフェースに働きかけるのであって、これらのインタフェースの実装クラスに働きかけることはない。
リモートメソッド呼び出しに対するリモートでない引数と、リモートでない戻り値は参照渡しではなくコピー渡しになる。この理由は、オブジェクトへの参照は単一の仮想マシン上でのみ有効なため。
リモートオブジェクトは参照で渡され、実際のリモート実装がコピーされて渡されるのではない。
java.lang.Object
クラスで定義されるメソッドのいくつかのセマンティクスはリモートオブジェクト用に特殊化されている。
リモートオブジェクト呼び出しの失敗モードは、その性質として、ローカルオブジェクト呼び出しの失敗モードよりも複雑になる。クライアントはリモートメソッド実行時には、起こり得る追加的な例外処理を取り扱わなければならない。
目次
|
前へ
|
次へ
Copyright 1997, 2010, Oracle and/or its affiliates. All rights reserved.