10.1.2 パフォーマンスへの影響

インタフェース・リポジトリへの実行時アクセスはすべて、インタフェース・リポジトリ・サーバーを介して行われます。リモート・サーバー・アプリケーションのリクエストでは、かなりのオーバーヘッドが生じるので、設計者はこの点を認識しておく必要があります。たとえば、オブジェクト参照を使用して、オブジェクト参照に対するDII呼出しを行うのに必要な情報を取得するために要求される対話について以下で考察します。ステップは次のとおりです。

  1. クライアント・アプリケーションが、CORBA::Objectの_get_interface操作を呼び出し、対象のオブジェクトに関連付けられたInterfaceDefオブジェクトを取得します。これにより、オブジェクト参照を作成したORBにメッセージが送信されます。
  2. ORBは、クライアントにInterfaceDefオブジェクトを返します。
  3. クライアントはオブジェクトの1つまたは複数の_is_a操作を呼び出し、このオブジェクトでサポートされているインタフェースの型を判断します。
  4. インタフェースを識別すると、クライアントはInterfaceオブジェクトのdescribe_interface操作を呼び出し、そのインタフェースの完全な記述(たとえばバージョン番号、属性、およびパラメータ)を取得します。これにより、インタフェース・リポジトリにメッセージが送信され、応答が返ります。
  5. これで、クライアントがDIIリクエストを構成する準備が整いました。