Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

2.CORBA概要(2)

2.1 IDL (Interface Definition Language)

 CORBAでは、IDLでオブジェクトのインタフェースを記述することによって、開発言語に依存しないオブジェクト呼び出しを実現しています。ここではどのようにしてサーバオブジェクトの呼び出しを実現しているか説明します。

 IDLはCORBAのために作られたインターフェース記述言語です。他の開発言語に対して中立であり、特定の言語には依存しません。IDLではオブジェクトモジュールの持っているメソッド(関数)の名前やその関数の引数・戻り値の型などの定義を行います。

 IDLの簡単な例を以下に示します。

module HelloApp{
  interface HelloClass{
    string hello();
  };
};

 Javaと比較すると、moduleがひとつのパッケージ、interfaceがそのパッケージ内のひとつのクラスに対応すると考えたら良いでしょう。IDLでは次のような項目を定義することができます。もうすこし詳しい文法は後の章で説明します。

Module
オブジェクトの論理的なグループ
Interface
オブジェクトのインタフェース
Operation
オブジェクトのメソッド
Parameter
メソッドの引数
Attribute
オブジェクトの属性
Constant
定数
Exception
例外
Type
型の定義

 IDLは言語非依存の言語ですので、実装をどの言語で行うか全く意識せずにインタフェースを記述する事ができます。IDLファイルをコンパイルするとスタブやスケルトンという、オブジェクトの実装とORB間との橋渡しを行うためのソースコードが生成されます。IDLコンパイラはそれぞれの言語用に別のものが用意されており、たとえばJava用のIDLコンパイラを用いるとJavaで書かれたスタブやスケルトンが生成されます。IDLコンパイラを使い分けることにより、ひとつのIDLファイルからJavaやC++などのさまざまな言語用のスタブやスケルトンを生成することができます。(Java用のIDLコンパイラはJ2SE1.3以降に標準で付属されていますものがあります。またJ2SE1.4にはJavaのオブジェクトが扱えるORBも付属していますのでJDKだけでCORBAプログラミングが簡単に試せるようになりました)。

図:スタブとスケルトンの生成

図:異なる言語のスタブとスケルトンの生成

 スタブとスケルトンはクライアントとサーバそれぞれで用いられる通信用のライブラリです。スタブとスケルトンはコンパイル時にアプリケーションと結合され、静的なインタフェースのみを提供します。つまりコーディング時にすでにクライアントが呼び出すサーバオブジェクトがどのインタフェースを持ったものであるか決定されているときに利用されます。



次のページへ TECHSCOREのTOPページへ 次のページへ
techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa