ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)

11.5.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++(R)のプロジェクト新規作成で“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++(R)のプロジェクト新規作成で、“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オプションで指定したプレフィックスを指定します。