2.5 オブジェクト呼出しの仕組み

CORBAオブジェクトは分散環境で機能するように意図されているので、OMGではオブジェクト呼出しの仕組みに関するアーキテクチャが定義されています。CORBAオブジェクトは、次の2通りの方法で呼び出すことができます。

  • 生成されたクライアント・スタブおよびスケルトンの使用(スタブ・スタイル起動とも呼ばれる)。
  • 動的起動インタフェースの使用(動的起動と呼ばれる)。

動的起動の仕組みについては、『CORBAクライアント・アプリケーションの作成』を参照してください。この項では、動的起動よりも使いやすいスタブ・スタイル起動について説明します。

アプリケーションのOMG IDLファイルをコンパイルするときには、クライアント・スタブというソース・ファイルがコンパイラによって生成されます。クライアント・スタブでは、オブジェクト型のOMG IDLオペレーション定義が、リクエストを満たすためにOracle Tuxedoシステムによって呼び出されるCORBAサーバー・アプリケーションのオペレーションにマッピングされます。クライアント・スタブには、サーバー・アプリケーションにリクエストを送信するときに使用される、クライアント・アプリケーションのビルド・プロセスで生成されたコードが格納されます。クライアント・スタブのコードは絶対に修正しないでください。

IDLコンパイラでは、スケルトンというソース・ファイルも生成されます。スケルトンには、OMG IDLファイルで指定された各インタフェースのオペレーション呼出しで使用されるコードが格納されます。スケルトンは、クライアントのリクエストを満たすことができるCORBAオブジェクト実装の適切なコードを指し示すマップです。スケルトンは、オブジェクト実装とOracle Tuxedoオブジェクト・リクエスト・ブローカの両方に接続されます。

次の図は、クライアント・アプリケーション、クライアント・スタブ、スケルトン、およびCORBAオブジェクト実装を示しています。

図2-2 CORBAオブジェクトの実装

CORBAオブジェクトの実装について説明します。

クライアント・アプリケーションからリクエストが送信されると、そのリクエストはクライアント・スタブのオペレーションとして実装されます。クライアント・スタブでリクエストを受信すると、クライアント・スタブではそのリクエストをオブジェクト・リクエスト・ブローカ(ORB)に送信します。ORBでは、受信したリクエストをOracle Tuxedoシステムを通じてスケルトンに送信します。ORBは、TPフレームワークおよびポータブル・オブジェクト・アダプタ(POA)と連携して適切なスケルトンとオブジェクト実装を見つけます。

クライアント・スタブおよびスケルトンの生成については、Oracle Tuxedoオンライン・ドキュメントの『CORBAクライアント・アプリケーションの作成』および『Oracle Tuxedo ATMI C関数リファレンス』を参照してください。