- CORBAを実現する基本コンポーネントについて説明する。
・ORBコア
ORBのカーネルで、各要素間のコミュニケーションなどの基本的なサービスを提供する。
・インターフェース・リポジトリ
IDLで定義された、サーバアプリケーションの関数パラメータの型や戻り値などのインターフェース情報を管理している。
これらの情報はIDLで定義し、IDLコンパイラで生成された後、インタフェース毎にオブジェクトとしてこのリポジトリに格納される。この情報の主な利用目的は、クライアントが動的起動を行う場合にインターフェース情報を提供することである。
・動的起動インターフェース
通常は、IDLからスタブを生成し、スタブ内の関数を呼び出す方法で通信の手続きを行う「静的起動インターフェース」を用いることが多い。この場合は、処理結果を待つ同期型しか利用できず、クライアントアプリケーションに呼び出す関数を直接コーディングするため、サーバアプリケーションが変更された時に修正が必要となる。
一方、クライアントから呼び出すオブジェクトが実行時でないと決まらないようなプログラムを作成したいときは、「動的起動インタフェース」を利用する。この場合は、インタフェースリポジトリからの情報を基に、クライアントアプリケーションがパラメータを組み立てることになり、同期、非同期のいずれも利用可能である。
・ORBインターフェース
ORBインターフェースは、クライアントを起動するときにORBを初期化したり、インターフェースリポジトリや実装リポジトリなどのオブジェクトリファレンスを得るために利用される。
・オブジェクト・アダプタ
オブジェクト・アダプタは、オブジェクトの種類に応じた方法でオブジェクトを呼び出すためのものであり、オブジェクトの生成、消滅、オペレーションの起動などを行う。以下のような種類がある。
- Basic Object Adapter:サーバアプリケーションにアクセスする時に使われる
- ODB Adapter:オブジェクト・データベースをアクセスするときに使われる
- Portable Object Adapter:移動端末などを接続するために使われる
・実装リポジトリ(インプリメンテーション・リポジトリ)
サーバオブジェクトの位置や実装方法を知るために必要な情報を格納する。これによって、クライアントアプリケーションが、サーバアプリケーションの位置や実装方法を知らなくてもアクセスができるようになる。
・IDL(Interface Definition Language)
- 異なるプログラム言語で実装されたクライアント/サーバ間で、クライアントからサーバにあるオブジェクトのオペレーションを遠隔起動するために、インターフェースを記述する言語である。
- 記述されたIDLファイルは、IDLコンパイラでコンパイルすると、クライアント用のソースコードであるスタブとサーバ用のソースコードであるスケルトンを生成し、同時にサーバオブジェクトのインターフェース情報をインターフェースリポジトリに格納する。