Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第11章 CORBAアプリケーションの高度な使い方> 11.4 ライブラリの作成方法

11.4.1 ライブラリの作成方法

(1) IDL定義の例

 1つのモジュール内に2つのインタフェースが定義されている場合を例に説明します。

  [ X.idl ] 
        module M {
                interface I1 {
                        ... 
                };
                interface I2 {
                        ... 
                };
        };

(2) Cマッピングの場合

  1. ライブラリ作成用のオプションを指定して、IDLコンパイルを行います。
     IDLc -dy IDLファイル名
  2. IDLファイルのインタフェース定義から生成されたスケルトン(*_skel.c)と、インタフェースのメソッド関数を実装したソースから、インタフェースを実装したライブラリ(*.soまたは*.dll)を作成します。実装部のコーディングは、ライブラリ化しない場合と同様です。
  3. ライブラリは、以下のように作成します。

     Visual C++のプロジェクト新規作成で"DLL(ダイナミックリンクライブラリ)作成"を指定してください。

     cc -c *.c ....
     cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....

     gcc -c *.c ....
     gcc -shared -fPIC -o ライブラリ名 オブジェクトファイル(*.o) ....

(3) C++マッピングの場合

  1. ライブラリ作成用のオプションを指定して、IDLコンパイルを行います。

     IDLc -dy -vcpp IDLファイル名

     IDLc -dy -cpp IDLファイル名
  2. IDLファイルのインタフェース定義から生成されたスケルトン(*_skel_c++.C)と、インタフェースのメソッド関数を実装したソース、およびIDLファイルから生成されたCDRソース(*_cdr.c)、クラスソース(*_c++.C)から、インタフェースを実装したライブラリ(*.soまたは*.dll)を作成します。実装部のコーディングは、ライブラリ化しない場合と同様です。
  3. ライブラリは、以下のように作成します。

     Visual C++のプロジェクト新規作成で、"DLL(ダイナミックリンクライブラリ)作成"を指定してください。

     cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....

     g++ -shared -fPIC -o ライブラリ名 オブジェクトファイル(*.o) ....

(4) COBOLマッピングの場合

  1. IDLコンパイルを行います。
     IDLc -cobol IDLファイル名
  2. IDLファイルのインタフェース定義から生成されたスケルトン(*_skel.cbl)と、インタフェースのメソッド関数を実装したソース、およびIDLファイルから生成されたCDRソース(*_cdr.cbl)から、インタフェースを実装したライブラリ(*.soまたは*.dll)を作成します。
  3. ライブラリの作成は以下のように行います。

     COBOL開発環境のプロジェクトマネージャで、ライブラリを作成してください。

     cobol -c *.cbl ....
     cc -G -Kpic -o ライブラリ名 オブジェクトファイル(*.o) ....

(5) OOCOBOLマッピングの場合

  1. IDLコンパイルを行います。
     IDLc -oocob IDLファイル名
  2. IDLファイルのインタフェース定義から生成されたスケルトン等のクラス(インタフェース名*.cob)と、インタフェースのメソッド関数を実装したソース、登録関数を定義したソース、およびIDLファイルから生成された登録集(*.cbl)から、インタフェースを実装したライブラリ(*.dll)を作成します。

(6) アプリケーションの登録

 作成したライブラリをインプリメンテーションリポジトリに登録するため、以下のコマンドを実行します。

  OD_impl_inst -ax 定義ファイル

 定義ファイルには、各アプリケーションの構成等を以下のように記述します。

rep_id = インプリメンテーションリポジトリID
type = サーバタイプ
binary = プログラム本体のパス
IDL:M/I1:1.0 = I1の実装部ライブラリのパス (注)
IDL:M/I2:1.0 = I2の実装部ライブラリのパス

注) "インタフェースリポジトリID=ライブラリパス[,プレフィックス]"の形式で、インタフェース数だけ記述します。プレフィックスは、IDLコンパイラの-Sオプションで指定したプレフィックスを指定します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005