next up previous
: RMIを用いた分散オブジェクト : 分散オブジェクトの実現 : スタブとスケルトン

オブジェクトリファレンス

前節までの説明で,代理オブジェクトと,これに対応するリモートオブジェクトがいった ん接続されれば,分散オブジェクトプログラムがうまく動作するであろうことは納得して 貰えただろうか. 次に問題となるのは,代理オブジェクトが対応するリモートオブジェクトとどのように接 続するのかということである.

これを解決するのが オブジェクトリファレンスである. オブジェクトリファレンスは,分散オブジェクト環境でオブジェクトを一意に特定するた めの情報である. 実際にどのような情報を用いるかは分散オブジェクトの技術に依存しているが,一般的に は 1) サーバに到達するためのネットワークプロトコルやアドレス情報と 2) サーバ内で オブジェクトを特定するための情報が含まれている.

オブジェクトリファレンスは,クライアント側で代理オブジェクトに対応するリモートオ ブジェクトを見つけるために利用されるが,このためにはサーバ側でリモートオブジェク トのオブジェクトリファレンスを登録する必要がある. このオブジェクトリファレンスの登録や参照を受け付けるためのサービスも分散オブジェ クトの技術によって異なる.

Java RMIではJNDI(Java Naming and Directory Interface),もしくはその簡易版であ るRMIレジストリを用いてオブジェクトリファレンスのやりとりを行う. HORBではHORBの専用のサーバがその役割を司る. CORBAでは様々な方法を用いてオブジェクトリファレンスのやりとりが可能で,プログラ マが自分で使いやすい物を選ぶことができる.

いくつかの分散オブジェクト環境では,オブジェクトリファレンスを名前(=文字列)で 登録および参照する. この方式は,分かりやすい名前を用いてリモートオブジェクト(のオブジェクトリファレ ンス)をやりとりできるという利点がある. これは ネーミング・サービスと呼ばれる方式で,JNDIの名前を見て分かる通りJava RMIでも名前を用いてオブジェクトリファレンスのやりとりを行う.



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