Apdesigner プログラマーズガイド
目次 索引 前ページ次ページ

第2部 アプリケーション開発編> 第8章 CORBAサーバアプリケーションを開発する> 8.2 開発の流れ

8.2.2 ビジネスメソッドを実装する

CORBAサーバアプリケーション生成ウィザードで生成したビジネスメソッドクラスのひな型ソースに、メソッドの実装処理を記述してください。メインプログラムやサーバアプリケーション登録プログラムはそのまま使用可能です。
詳細は、"Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)"を参照してください。
ここでは、「加算プログラム」をCORBAサーバアプリケーション生成ウィザードで定義した例を示します。

++加算プログラムのIDLファイル

// モジュール宣言
module SAMPLE { 
      // ユーザインタフェース宣言
      interface CALCULATE_ADD { 
                long CALCULATE(in long param1,
                         in long param2);
      };
};

++加算プログラムのメインプログラム

 IDENTIFICATION DIVISION.
 PROGRAM-ID. CALCULATE_ADD.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 REPOSITORY.
      COPY CORBA--REP.
      COPY USCALCULATE_ADD--REP.
 .
 SPECIAL-NAMES.
      SYMBOLIC CONSTANT
      COPY CORBA--CONST.
  .
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 COPY CORBA--COPY.
 COPY USCALCULATE_ADD--COPY.
 01  API-NAME        PIC   X(50).
 01  APL-NAME        PIC   X(64)   VALUE     "CALCULATE_ADD".
 01  ORB             USAGE OBJECT REFERENCE CORBA-ORB.
 01  BOA             USAGE OBJECT REFERENCE CORBA-BOA.
 01  IMPL-REP        USAGE OBJECT REFERENCE FJ-IMPLEMENTATIONREP.
 01  IMPL            USAGE OBJECT REFERENCE CORBA-IMPLEMENTATIONDEF.
 01  REP-ID          PIC   X(128) VALUE     "IDL:SAMPLE/CALCULATE_ADD:1.0".
 01  OBJ             USAGE OBJECT REFERENCE CORBA-OBJECT.
 01  EXCEPT-ID       USAGE OBJECT REFERENCE CORBA-STRING.
 01  EXCEPT-ID-VALUE PIC   X(50).
 LINKAGE SECTION.
 PROCEDURE DIVISION
                   .
* 
*  ORBの初期化
* 
      INVOKE CORBA "ORB_INIT" USING APL-NAME FJ-OM_ORBID RETURNING ORB.
* 
*  BOAの初期化
* 
      INVOKE ORB "BOA_INIT" USING APL-NAME CORBA-BOA_OAID RETURNING BOA.
* 
*  インプリメンテーションリポジトリオブジェクトの取得
* 
      INVOKE ORB "RESOLVE_INITIAL_REFERENCES" USING CORBA-OBJECTID_IMPLEMENTAT-001 RETURNING OBJ.
      INVOKE FJ-IMPLEMENTATIONREP "NARROW" USING OBJ RETURNING IMPL-REP.
* 
*  インプリメンテーション情報の取得
* 
      INVOKE IMPL-REP "LOOKUP_ID" USING REP-ID RETURNING OBJ.
      INVOKE CORBA-IMPLEMENTATIONDEF "NARROW" USING OBJ RETURNING IMPL.
* 
      SET OBJ TO NULL.
* 
*  サーバーの活性化をODに通知する
* 
      MOVE "CORBA::BOA::IMPL_IS_READY" TO API-NAME.
      INVOKE BOA "IMPL_IS_READY" USING IMPL.
* 
      STOP RUN.
 END PROGRAM CALCULATE_ADD.

++加算プログラムのサーバアプリケーション登録プログラム

 IDENTIFICATION DIVISION.
 PROGRAM-ID. SAMPLE-CALCULATE_ADD--INIT.
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 REPOSITORY.
      CLASS SAMPLE-CALCULATE_ADD
      CLASS SAMPLE-CALCULATE_ADD-IMPL
 .
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 LINKAGE SECTION.
 01 RET USAGE OBJECT REFERENCE SAMPLE-CALCULATE_ADD.
 PROCEDURE DIVISION
         RETURNING RET
                   .
      INVOKE SAMPLE-CALCULATE_ADD-impl "new" RETURNING RET.
      EXIT PROGRAM.
 END PROGRAM SAMPLE-CALCULATE_ADD--INIT.

++加算プログラムのビジネスメソッドクラス

 CLASS-ID. SAMPLE-CALCULATE_ADD-IMPL AS "SAMPLE-CALCULATE_ADD-IMPL" INHERITS 
     SAMPLE-CALCULATE_ADD
   .
 ENVIRONMENT DIVISION.
 CONFIGURATION SECTION.
 REPOSITORY.
      COPY CORBA--REP.
      COPY USCALCULATE_ADD--REP.
 .
 SPECIAL-NAMES.
      SYMBOLIC CONSTANT
      COPY CORBA--CONST.
  .
 OBJECT.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 COPY CORBA--COPY.
 COPY USCALCULATE_ADD--COPY.
 PROCEDURE DIVISION
                   .
 METHOD-ID. CALCULATE AS "CALCULATE" OVERRIDE.
* <IDL-INFO-START>
* long CALCULATE(in long param1,in long param2)
* <IDL-INFO-END>
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 LINKAGE SECTION.
 01 復帰値 PIC S9(9) COMP-5.
 01 PARAM1 PIC S9(9) COMP-5.
 01 PARAM2 PIC S9(9) COMP-5.
 PROCEDURE DIVISION
         USING 
                   PARAM1
                   PARAM2
         RETURNING 復帰値 
                   .
      COMPUTE 復帰値 = PARAM1 + PARAM2.
 END METHOD CALCULATE.
 END OBJECT.
 END CLASS SAMPLE-CALCULATE_ADD-IMPL.

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

All Rights Reserved, Copyright (C) 富士通株式会社 1998-2006