2.3.3 ORB

ORBは、CORBAクライアント・アプリケーションからCORBAサーバー・アプリケーションに送信されるリクエストの媒介として機能します。ORBが介在することで、それらのアプリケーションではお互いについての情報が必要なくなります。ORBは、リクエストを満たすことができる実装を見つけたり、リクエストを受信するオブジェクトの実装を準備したり、リクエストを構成するデータを伝達したりするために必要なすべてのメカニズムについて責任を持ちます。Oracle Tuxedo CORBA製品にはC++のクライアント/サーバーORBが含まれています。

次の図は、CORBAクライアント・アプリケーションであるORBとCORBAサーバー・アプリケーションの関係を示しています。

図2-3 CORBAクライアント/サーバー環境のORB

CORBAクライアント/サーバー環境のORBの図について説明します

クライアント・アプリケーションからIIOPを使用してOracle Tuxedoドメインにリクエストが送信されると、ORBでは次の機能が実行されます:

  • 各リクエストとその引数を調べて、必要なすべての引数が指定されていることを確認します。
  • CORBAクライアント・アプリケーションからのリクエストを満たすことができるCORBAオブジェクトを見つけるためのメカニズムを管理します。そのために、ORBではポータブル・オブジェクト・アダプタ(POA)とやり取りします。POAでは、リクエストを受信するオブジェクトの実装が準備され、リクエストのデータが伝達されます。
  • データをマーシャリングします。クライアント・マシンのORBは、リクエストと関連付けられているデータを標準形式で書き込みます。ORBは、このデータを受信し、サーバー・アプリケーションが動作しているマシンに適切な形式に変換します。サーバー・アプリケーションからクライアント・アプリケーションにデータが送り返されるときに、ORBはデータをマーシャリングして標準形式に戻し、そのデータをクライアント・マシンのORBに送ります。