10.2.1 バインドプロセス中に行われる動作

サーバプログラムがcreate_POA()を実行すると,生成したPOAがスマートエージェントに登録されます。

この状態で,クライアントプログラムが静的bind()メソッドを呼び出した場合,VisiBroker ORBはプログラムのために幾つかの機能を実行し,スマートエージェントからオブジェクトインプリメンテーションの位置情報を得られます。クライアントとスマートエージェントの相互動作を図10-1に示します。

クライアントプログラムがサーバクラスのコンストラクタを呼び出すことはありません。その代わり,静的_bind()メソッド(C++),または静的bind()メソッド(Java)呼び出しによってオブジェクトリファレンスを取得できます。
コードサンプル10-3 バインド呼び出しの例(C++)

. . .
PortableServer::ObjectId_var manager_id =
  PortableServer::string_to_ObjectId("BankManager");
Bank::AccountManager_var =
  Bank::AccountManager::_bind("/bank_agent_poa", manager_id);
. . .

コードサンプル10-4 バインド呼び出しの例(Java)

. . .
Bank.AccountManager manager =
  Bank.AccountManagerHelper.bind(orb,
              "/bank_agent_poa", "BankManager".getBytes());
. . .