サーバントロケータの使用


サーバントロケータとは

アプリケーション開発者は、新しい POA を作成するときに、新しい POA 用に選択した特定のポリシーを宣言し、異なるアダプタアクティベータおよびサーバントマネージャ (これらは、必要時の POA の起動とサーバントの起動を行うために POA が使用するコールバックオブジェクト) を提供できます。オブジェクト ID は POA に対して相対的に解釈されるため、アプリケーション開発者は、新しい POA を作成することによってさらにオブジェクトの名前空間の区分けも行うことができます。また、新しい POA を作成すると、開発者は、複数のオブジェクトのセットに対する要求の処理を個別に制御できます。

サーバントアクティベータは、サーバントマネージャの 1 つの型です。サーバントマネージャはオプションです。サーバントマネージャを使用すると、POA が、無効なオブジェクトに対する要求を受け取ったときに、必要なサーバントを起動できるようになります。サーバが起動時にすべてのオブジェクトをロードする場合は、サーバントマネージャは必要ありません。

サーバントマネージャは、アプリケーション開発者が POA と関連付けることができるコールバックオブジェクトです。ORB はサーバントマネージャの操作を呼び出して、必要に応じてサーバントを起動したり停止したりします。サーバントマネージャには、オブジェクト ID 値で特徴づけられるオブジェクト参照と特定のサーバントの関連を管理し、オブジェクト参照が存在するかどうかを決定する機能があります。各型のサーバントマネージャは 2 つの操作を実行できます。1 つはサーバントを見つけて返すための操作で、もう 1 つはサーバントを停止するための操作です。操作は、その状況で使用できる情報の量によって異なります。

サーバントマネージャを使用するには、USE_SERVANT_MANAGER ポリシーを設定する必要があります。このポリシーを設定すると、POA 内のほかのポリシーに応じて、特定の状況で使用されるサーバントマネージャの型が決まります。サーバントマネージャには次の 2 つの型があります。

サーバントロケータの使用例

** 作成中です。後日、更新版をチェックしてください。

次のコードは、POA が一時オブジェクトを起動できるようにするために、サーバントロケータを使用するアプリケーションの例を示しています。このアプリケーションは、「Hello World」の例を基にして作成したものです。参考用に、次のファイルが含まれています。


Client.java



Server.java



Hello.idl



HelloImpl.java



Makefile



runSample



サーバントアクティベータのアプリケーション例の実行

この例を実行するには、次のようにします。

  1. 上で説明したコードを使用してファイルを作成します。
  2. runSample に示されているとおりに、例を実行します。

端末ウィンドウに次の例のような出力が表示されます。



関連情報

サーバントロケータの詳細については、CORBA 2.3.1 仕様のサーバントマネージャに関するセクション (セクション 11.3.4) を参照してください。


Java IDL トップへ