次のIDLインタフェース定義では、「初期化エージェント」のインタフェースが提供されます。この定義の目的は、resolve_initial_referencesおよびlist_initial_servicesというORB メソッドを実装するために、ORB実装によって使用されることです。相互運用可能なクライアントORBでは、InitialReferencesインタフェースを実装する「初期化エージェント」に呼び出しを送信します。すると、エージェントでは、要求された情報をクライアントORBに返信します。最初の操作のgetでは、要求されたサービスIDである文字列を受け付け、要求されたサービスのオブジェクト参照を返すか、または何も見つからない場合はNILオブジェクト参照を返します。2番目の操作のlistでは、引数を受け付けずに、サポートされているサービスを含むObjectIDList (文字列のシーケンス)を返します32ビットの語は。
interface InitialReferences
{
typedef sequence<string> ObjectIdList;
Object get(in string objectId);
ObjectIdList list();
};このインタフェースは、オブジェクトキーの長さが4バイトの特別なオブジェクトによって実装されます。オブジェクトキーの値は、常に、ISOLatin-1 (8859.1)を使用してエンコード化された4文字(大文字)の「INIT」(16進値は 0x49 0x4e 0x49 0x54、 0x494e4954)です。このオブジェクトでは、前のIDLを使用して定義されたインタフェースを実装します。CORBA::Objectで定義された操作(is_a、get_implementation、get_interfaceなど)をすべて実装する必要はありません。
ブートストラッププロトコルの実装
ORBのすべてのプロセスでは、「初期化エージェント」が実行されますsho。 ローカルAPI (「初期参照サービス」を参照) は、ローカル/リモート初期オブジェクト参照を発行するだけでなく、指定のホストおよびポートに対する「初期化エージェント」 を取得するためにも提供されます。 ORBデーモンは、サーバ起動やセキュリティなどをサポートするためのオブジェクト参照がある「識別初期化エージェント」を実行します。ORBインスタンスは、ORBDefaultInitRef プロパティまたはパラメータを使用して、ある「初期化エージェント」のアドレスを含むIIOP URLとともに設定する必要があります。ORBDefaultInitRef を指定しなかった場合、これは、デフォルトにより、ORBデーモンがリッスンするポートであるiiopboot://localhost:2506に設定されます。
- Javaシステムプロパティの設定
java -DORBInitailURL=iiopboot://godel:2506 MyServer
- ORB.initのプロパティの受け渡し
Properties props = new Properties();
props.put("ORBDefaultInitRef", "iiopboot://godel:2506");
orb.init(props, args);
- ORB.iniへのプログラムパラメータの引き渡し
java MyServer -ORBDefaultInitRef iiopboot://godel:2506
and then,
public static void main(String[] args)
{
...orb.init(props, args);
...
}注記:ポート2506は、IANAからNovellによって予約されます。
Copyright © 1998-2003, Novell, Inc.All rights reserved.