10.1.1 プログラミング情報

サーバーへのインタフェースは、OMG IDLファイルで定義します。OMG IDLファイルへのアクセス方法は、ビルドされているクライアントの種類に応じて変わります。ここではスタブ・ベースおよび動的起動インタフェース(DII)の2種類のクライアントについて検討します。

スタブ・スタイルの呼出しを使用するクライアント・アプリケーションでは、ビルド時にOMG IDLファイルが必要です。プログラマはOMG IDLファイルを使用して、スタブなどを生成できます。(詳細は、『CORBAクライアント・アプリケーションの作成』を参照してください。)インタフェース・リポジトリに対する、これ以外のアクセスは必要ありません。

動的起動インタフェース(DII)を使用するクライアント・アプリケーションは、プログラムでインタフェース・リポジトリにアクセスする必要があります。インタフェース・リポジトリへのインタフェースはこの章で定義されており、「クライアント・アプリケーションのビルド」に説明があります。インタフェース・リポジトリにアクセスするための正確なステップは、クライアントが特定のオブジェクトに関する情報を検索するのか、またはあるインタフェースを見つけるためにリポジトリを参照するのかによって異なります。クライアントが特定のオブジェクトに関する情報を得るには、CORBA::Object::_get_interfaceメソッドを使用してInterfaceDefオブジェクトを取得します。(このメソッドの説明は、「CORBA::Object::_get_interface」を参照してください。)InterfaceDefオブジェクトを使用して、クライアントはインタフェースに関する完全な情報を取得できます。

DIIクライアントがインタフェース・リポジトリを参照できるようになるには、検索を開始するためのインタフェース・リポジトリのオブジェクト参照を取得する必要があります。

DIIクライアントは、Bootstrapオブジェクトを使用してオブジェクト参照を取得します。(このメソッドについては、「Tobj_Bootstrap::register_callback_port」を参照してください。)クライアントはオブジェクト参照を取得すると、インタフェース・リポジトリ内をルートから参照できるようになります。

クライアント・アプリケーションが関連付けられているドメイン内のインタフェース・リポジトリへのリファレンスを取得するには、クライアント・アプリケーションは次の2つのブートストラップ処理メカニズムのうち、どちらかを使用します:

  • “CORBA::Repository”を指定してTobj_Bootstrap::resolve_initial_references操作を呼び出します。この操作は、クライアント・アプリケーションが現在付属しているドメイン内にあるInterfaceRepositoryオブジェクトへのリファレンスを返します。Oracle Tuxedoクライアント・ソフトウェアを使用している場合は、このメカニズムを使用します。詳細は、「Tobj_Bootstrap::resolve_initial_references」を参照してください。
  • “CORBA::Repository”を指定してCORBA::ORB::resolve_initial_references操作を呼び出します。この操作は、クライアント・アプリケーションが現在付属しているドメイン内にあるInterfaceRepositoryオブジェクトへのリファレンスを返します。サード・パーティ製のクライアントORBを使用している場合は、このメカニズムを使用します。詳細は、「CORBA::ORB::resolve_initial_references」を参照してください。

ノート:

DIIを使用するには、OMG IDLファイルがインタフェース・リポジトリ内に格納されている必要があります。