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

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オプションで指定したプレフィックスを指定します。