COBOLプラグインを組み込んだInterstage Studio 互換ワークベンチを使用してCORBAアプリケーションを作成できます。
このチュートリアルでは、Interstage Application Server を便宜的にInterstage と記述している箇所があります。また、Interstageのマニュアルの参照を指示している箇所では、特に指定がない限り以下を参照してください。
Interstage Application Server インストールガイド
Interstage Application Server 運用ガイド(基本編)
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)
Interstage Application Server リファレンスマニュアル
Interstage Application Server メッセージ集
CORBAアプリケーションとは
CORBA(Common Object Request Broker Architecture)とは、OMG(Object Management Group : オブジェクト指向技術の標準化と普及を目的として1989年に設立された非営利団体)によって規定されたオブジェクト指向技術の仕様で、異機種、異言語間での接続可能な分散アプリケーションを作成できます。
富士通では、Interstage Application ServerでCORBA準拠の分散通信基盤やサービスを提供しています。Interstage Studioにおいては、CORBAアプリケーションとは、Interstage Application Serverを利用して作成したアプリケーションを意味します。また、COBOLプラグインを組み込んだInterstage Studio 互換ワークベンチでは、CORBAサーバアプリケーションおよびCORBAクライアントアプリケーションの両方を作成できます。
CORBAアプリケーションの種類とサポート範囲
アプリケーションの種類 | 説明 | サーバ | クライアント |
---|---|---|---|
静的インタフェース | IDLファイルから作成したスタブ、スケルトンファイルをアプリケーションに結合してプログラムを作成します。スタブ、スケルトンは、サーバ、クライアント間で使用されるデータをCORBA通信基盤のプロトコル(IIOP)から各言語タイプに変換する機能を持っています。 | オブジェクト指向COBOL | COBOL |
CORBA-Gateway | WindowsシステムのOLEアクセスにより、サーバアプリケーションの提供する関数を呼び出します。 | - | × |
動的インタフェース | スタブファイル等は必要なく、インタフェースリポジトリから情報を取り出し、サーバのメソッドを呼び出すパラメタをプログラム中で組み立てて、サーバアプリケーションの関数を呼び出します。 | × | × |
CORBAアプリケーション作成のための環境設定
Interstage Studio 互換ワークベンチ
COBOLプラグイン(Interstage Business Application Server 開発環境パッケージのCOBOL開発支援ツールでインストール)
Interstage Application Serverサーバ機能 もしくは クライアント機能
NetCOBOL V8.0L10 以降
CORBAアプリケーションの開発では、IDLファイルをコンパイルしますが、その場合は必ずCORBAサーバにアクセスできる環境が設定されていなければなりません。
Interstage Application Serverサーバ機能と組み合わせて開発する場合には環境設定は必要ありませんが、クライアント機能と組み合わせて開発する場合には環境設定が必要です。
クライアント機能と組み合わせる場合には、Interstage Application Serverインストールフォルダ\odwin\etc\inithostファイルに、アクセスするサーバを指定する必要があります。
CORBAアプリケーションのビルド時にIDLコンパイラでエラーが発生する場合には、inithostの記述内容を確認してください。
Interstage StudioによるCORBAアプリケーション開発の概要
以下のような手法でCORBAアプリケーションを開発できます。
CORBAサーバプロジェクトを使用することで、必要なビルドオプションが設定されます。
CORBAサーバアプリケーション作成ウィザードで、CORBAサーバアプリケーションのひな型(IDLファイルおよびプログラムソース)を作成します。
ひな型作成後は、IDLファイルの編集、プログラムソースの編集は自由に行うことができますが、その場合は必ずIDLファイルとプログラムソースの内容の同期をとる必要があります。例えば、すでに定義済のメソッドの定義を変更した場合は、IDLファイル、プログラムソースの両方を修正する必要があります。
COBOLプロジェクトを使用し、プロジェクトウィザードで[CORBAクライアントのビルド環境を設定]オプションを指定することで、必要なビルド環境を自動的に設定できます。
CORBAサーバにアクセスする処理については、テンプレートを利用して作成します。
CORBAスタブファイル生成ウィザードで、CORBAサーバアプリケーションのIDLファイルからスタブファイルを作成し、ビルドすることでクライアントアプリケーションを作成します。
Interstage Studioによる生成物
ウィザードで生成されるファイルおよびビルド時に生成されるターゲットファイルの一覧を以下の表に示します(IDLファイルから生成されるスタブおよびスケルトンファイルは含みません)。
プロジェクト名 = intf1、モジュール名 = module1 の場合(※プロジェクト名は自動的にインタフェース名として採用されます。)
説明 | ファイル名 |
---|---|
メインソース(COBOL) | intf1.cob |
ビジネスメソッドソース(COBOL) | USintf1.cob |
サーバアプリケーション登録ソース(COBOL) | USINITintf1.cob |
IDLファイル | USintf1.idl |
ターゲット | intf1.exe USintf1.dll |
IDLファイルは以下の形式で生成されます。
// モジュール宣言 module MDSample { // 定数宣言 const unsigned long const1 = 1 ; // 型宣言 typedef unsigned long type1 ; // 構造体宣言 struct S1 { unsigned long item1; unsigned long item2; }; // 例外宣言 exception CDException{ string CDExceptionMsg; long CDExceptionCode; }; // ユーザインタフェース宣言 interface SAMPLE { void OP1(in unsigned long param1) raises (CDException); }; };
モジュール宣言
一番外側の宣言は、必ずmodule宣言です。その中に、ウィザードの各ダイアログで入力した宣言が生成されます。
定数宣言
ウィザード中の定数宣言で行った宣言の内容が宣言されます。
型宣言
ウィザード中の型宣言で行った宣言の内容が宣言されます。通常は繰り返し項目等を宣言します。
構造体宣言
ウィザード中の構造体宣言で行った宣言の内容が宣言されます。
例外宣言
ウィザードの最初で[例外の生成]を選択したとき、標準的な例外宣言の型としてCDExceptionを定義します。他に情報等を追加したい場合や、変更したい場合は、ウィザード終了後、直接IDLファイルを修正してください。
ユーザインタフェース宣言
ウィザードで定義したビジネスメソッドをオペレータとして宣言したインタフェースを宣言します。
その他の開発機能
COBOLプラグインを組み込んだInterstage Studio 互換ワークベンチでは、CORBAサーバアプリケーション生成ウィザードの他に以下の開発機能を提供します。
IDLコンパイラビルドツールのオプション[インタフェースリポジトリに登録する]をチェックしている場合、ビルド時に、プロジェクトに登録してあるIDLファイルをインタフェースリポジトリに登録します。
また、プロジェクトに登録してあるIDLファイルをエディタで開き、コンテキストメニューの[インタフェースリポジトリの登録]を選択した場合も、CORBAサーバのインタフェースリポジトリにIDLの内容を登録できます。登録した内容は、Interstage StudioのテンプレートのCORBAサーバオブジェクト一覧で参照できます。
クライアントアプリケーション作成時、テンプレートのCORBAサーバオブジェクト一覧で、CORBAサーバのインタフェースリポジトリからモジュール宣言、インタフェース宣言、オペレータ宣言の内容を表示できます。また、オペレータ宣言を選択して、ソースにオペレータ(ビジネスメソッド)の呼び出し処理を挿入できます。
クライアントアプリケーション作成時の定型処理をテンプレートからソースに挿入できます。テンプレートビューから定型処理を選択し、コンテキストメニューから[編集]を選択することで、定型処理をカスタマイズできます。
IDLファイルからスタブファイルを生成し、クライアントアプリケーションのプロジェクトにソースを登録できます。
CORBAクライアントアプリケーションを開発時に、CORBAの初期化処理やオブジェクトの検索処理を簡潔に記述するためにCDCORBAクラスを提供しています。
CORBAアプリケーションの実行
CORBAサーバアプリケーションはワークユニット上で実行します。以下に、CORBAサーバアプリケーションの動作確認の手順の概要を示します。
実行資産のコピー
ビルドで生成された実行ファイルとダイナミックリンクライブラリを実行環境にコピーします。
ワークユニット作成
Interstage管理コンソールを使い、実行環境フォルダなどを指定してワークユニットを作成します。
CORBAサーバアプリケーションの配備
Interstage管理コンソールから、コピーした実行資産の配備を行います。
ワークユニットの起動
作成したワークユニットを、Interstage管理コンソールから起動します。
クライアントアプリケーションの実行
クライアントアプリケーションを実行し、CORBAサーバアプリケーションにアクセスします。
データベースアクセスする場合のCORBAサーバアプリケーション
データベースアクセスを行うCORBAサーバアプリケーションを作成する場合は、以下の2つの方法があります。
事前にデータベースをアクセスするためのクラスライブラリを作成し、そのクラスを使用するCORBAサーバアプリケーションを作成する。
クラスライブラリ化することで、部品として他アプリケーションでも流用できます。
CORBAサーバアプリケーションのビジネスメソッド内に、直接データベースアクセスする命令を記述する。
COBOLの提供するデータベースアクセス方法(ESQL/COBOLなど)の詳細は、NetCOBOLのソフトウェア説明書を参照してください。
プログラム作成の留意事項
CORBAサーバアプリケーションでは、ビルド時に、メインプログラム(.EXE)、ビジネスロジックのライブラリ(.DLL)のターゲットが作成されます。
依存ビューでメインプログラムとして設定しているCOBOLソースからメインプログラムは生成され、その他のCOBOLソースはすべてビジネスロジックのライブラリに結合されます。
Interstage Application ServerにはUNICODE対応用のリポジトリファイル、ライブラリファイルが提供されています。詳細は、NetCOBOLのマニュアル、Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)を参照してください。
CORBAサーバプロジェクトウィザードで[Unicodeを使用する]を指定することにより、UNICODE対応用のファイルを使用してビルドを行うことができます。