Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド

[目次][索引][前へ][次へ]

16.1.1 IRの内容

IR内のオブジェクトは階層構造になっており,そのオブジェクトのメソッドがインタフェースに関する情報を明らかにします。通常,インタフェースはオブジェクトを記述するものと考えられていますが,CORBA環境では,オブジェクトの集まりを使用してインタフェースを記述することに意味があります。理由は,この方法によってデータベースなどの新しいメカニズムが不要になるためです。

IRに入れることができるオブジェクトの種類の例として,IDLファイルにIDLモジュール定義を,モジュールにインタフェース定義を,インタフェースにオペレーション(メソッド)定義をそれぞれ入れることができるということを考えてください。これに対応して,IRにModuleDefオブジェクトを,ModuleDefオブジェクトにInterfaceDefオブジェクトを,InterfaceDefオブジェクトにOperationDefオブジェクトをそれぞれ入れることができます。このため,IR ModuleDefから,その中にどのようなInterfaceDefが入っているがわかります。逆に,あるInterfaceDefがどのModuleDefに入っているかがわかります。そのほかのすべてのIDL構成体,例えば例外,属性,valuetypeもIRの中で表現できます。

IRにはタイプコードも入っています。タイプコードはIDLファイル内で明示的に示されるのではなく,IDLファイル内で定義または記述された型(long,string,structなど)から自動的に派生されます。タイプコードは,CORBAのany型(任意の型を示し,動的起動インタフェースで使用される汎用型)のインスタンスのエンコードとデコードに使用されます。