942
B1WN-9451-07Z0(00) 200911Windows/Solaris/Linux Interstage Application Server アプリケーション作成ガイド CORBAサービス編)

Interstage Application Server - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M090099/B1WN...まえがき 本書の目的 本書は、“Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)”です。

  • Upload
    others

  • View
    43

  • Download
    0

Embed Size (px)

Citation preview

  • B1WN-9451-07Z0(00)2009年11月

    Windows/Solaris/Linux

    Interstage Application Server

    アプリケーション作成ガイド(CORBAサービス編)

  • まえがき

    本書の目的

    本書は、“Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)”です。 本書は、CORBAサービスを利用して分散アプリケーション開発を行うために必要なプログラミングの方法と、業務運用を実現するためプログラミングの手法、手順、および定義を説明しています。

    前提知識

    本書を読む場合、以下の知識が必要です。

    ・ 使用するOSに関する基本的な知識

    ・ C言語に関する基本的な知識

    ・ C++言語に関する基本的な知識

    ・ COBOLに関する基本的な知識

    ・ OOCOBOLに関する基本的な知識

    ・ Java言語に関する基本的な知識

    ・ インターネットに関する基本的な知識

    ・ オブジェクト指向技術に関する基本的な知識

    ・ 分散オブジェクト技術(CORBA)に関する基本的な知識

    ・ リレーショナルデータベースに関する基本的な知識

    本書の構成

    本書は以下の構成になっています。

    第1部 アプリケーション開発(基本編)

    第1章 CORBAアプリケーションの基礎知識 CORBAアプリケーションを作成するための基礎知識について説明します。

    第2章 CORBAアプリケーション開発時の留意事項 CORBAアプリケーションを開発する際の留意事項について説明します。

    第3章 アプリケーションの開発(C言語) CORBAアプリケーションをC言語で開発する手順について説明します。

    第4章 アプリケーションの開発(C++言語) CORBAアプリケーションをC++言語で開発する手順について説明します。

    第5章 アプリケーションの開発(Java言語) CORBAアプリケーションをJava言語で開発する手順について説明します。

    第6章 アプリケーションの開発(COBOL) CORBAアプリケーションをCOBOLで開発する手順について説明します。

    第7章 CORBAアプリケーションの基本的な機能 CORBAアプリケーションの基本的な機能について説明します。

    第2部 アプリケーション開発(応用編)

    第8章 動的起動インタフェース 動的起動インタフェースのプログラミングについて説明します。

    第9章 ネーミングサービスのプログラミング ネーミングサービスが提供するインタフェースとプログラミングについて説明します。

    第10章 インタフェースリポジトリサービスのプログラミング インタフェースリポジトリサービスが提供するインタフェースとプログラミングについて説明します。

    - i -

  • 第11章 CORBAアプリケーションの高度な使い方 アプリケーションの高度な使い方について説明します。

    第12章 CORBAインタフェース 動的にデータを操作するためのインタフェースについて説明します。

    第13章 ネーミングサービスのイニシャルリファレンスの獲得 ネーミングサービスのイニシャルリファレンスの獲得について説明します。

    付録A IDL定義

    IDL定義ファイルについて説明します。

    付録B 提供プログラム

    提供しているプログラムについて説明します。

    付録C インタフェース定義情報の移出入

    動的起動インタフェースを使用する場合に必要な、運用サーバのインタフェースリポジトリへのインタフェース定義情報の方法を説明します。

    付録D サンプルプログラム

    CORBAサービスおよびPortable-ORBで提供しているサンプルプログラムについて説明します。

    付録E プロセスバインド機能を用いたセション管理の例

    プロセスバインド機能を用いたセション管理について、例を挙げて説明します。

    付録F 旧バージョンからの移行上の注意

    旧バージョンから移行する際の注意事項について説明します。

    付録G 旧互換機能

    CORBAサービスの旧バージョン互換用の機能について説明します。

    輸出許可

    本ドキュメントを非居住者に提供する場合には、経済産業大臣の許可が必要となる場合がありますので、ご注意ください。

    著作権

    Copyright 2009 FUJITSU LIMITED

    2009年11月 第7版

    2009年8月 第6版

    2008年7月 第5版

    2008年6月 第4版

    2007年8月 第3版

    2007年7月 第2版

    2007年4月 初版

    - ii -

  • 目 次

    第1部 アプリケーション開発(基本編)..........................................................................................................................................1

    第1章 CORBAアプリケーションの基礎知識................................................................................................................................21.1 CORBAアプリケーションの基本モデル.............................................................................................................................................2

    1.1.1 2階層モデル.................................................................................................................................................................................21.1.2 3階層モデル.................................................................................................................................................................................2

    1.2 CORBAサービスの運用形態.............................................................................................................................................................31.2.1 クライアントの運用形態................................................................................................................................................................31.2.2 サーバの運用形態.......................................................................................................................................................................5

    1.3 CORBAアプリケーションの設計.........................................................................................................................................................71.3.1 アプリケーションの開発言語........................................................................................................................................................71.3.2 サーバアプリケーションの起動タイプ..........................................................................................................................................71.3.3 多重制御......................................................................................................................................................................................81.3.4 インスタンス管理システム.............................................................................................................................................................91.3.5 クライアントアプリケーションのインタフェース..............................................................................................................................91.3.6 サーバアプリケーションのインタフェース.....................................................................................................................................9

    1.4 CORBAアプリケーションの開発手順...............................................................................................................................................101.5 CORBAアプリケーションの運用手順...............................................................................................................................................11

    第2章 CORBAアプリケーション開発時の留意事項...................................................................................................................132.1 コーディング.......................................................................................................................................................................................13

    2.1.1 データ領域の獲得/解放処理( C, C++, COBOL )...................................................................................................................132.1.2 シグナル処理( C, C++, Java, COBOL )...................................................................................................................................132.1.3 子プロセス/スレッドの生成終了処理( C, C++, Java, COBOL )...............................................................................................142.1.4 ORBの初期化処理( C, C++, COBOL )...................................................................................................................................152.1.5 サーバアプリケーションの例外処理( C, C++, COBOL ).........................................................................................................162.1.6 サーバ・クライアント機能の同時実装........................................................................................................................................162.1.7 oneway機能................................................................................................................................................................................162.1.8 その他.........................................................................................................................................................................................16

    2.2 コンパイル・リンク...............................................................................................................................................................................172.2.1 スレッドモードとプロセスモード..................................................................................................................................................172.2.2 CORBAサーバアプリケーション作成時の共通留意事項........................................................................................................192.2.3 Windows(R)アプリケーションに関する注意事項......................................................................................................................202.2.4 Linuxアプリケーションに関する注意事項.................................................................................................................................222.2.5 サーバアプリケーションのコンパイル・リンク例 (Solaris)...........................................................................................................23

    2.2.5.1 Cサーバアプリケーション(スレッドモード)の場合...............................................................................................................232.2.5.2 Cサーバアプリケーション(プロセスモード)の場合.............................................................................................................232.2.5.3 COBOLサーバアプリケーション(スレッドモード)の場合....................................................................................................242.2.5.4 COBOLサーバアプリケーション(プロセスモード)の場合..................................................................................................24

    2.2.6 Javaアプリケーションのコンパイル.............................................................................................................................................252.3 トラブル発生時の原因調査...............................................................................................................................................................25

    2.3.1 保守情報....................................................................................................................................................................................252.4 トランザクションアプリケーションからCORBAアプリケーションへ移行............................................................................................252.5 ネットワーク制御................................................................................................................................................................................29

    2.5.1 クライアントが使用するIPアドレス..............................................................................................................................................292.5.2 コネクション接続.........................................................................................................................................................................29

    第3章 アプリケーションの開発(C言語).....................................................................................................................................303.1 アプリケーションの開発手順.............................................................................................................................................................30

    3.1.1 アプリケーションのインタフェース定義(IDL)の記述.................................................................................................................303.1.2 IDLファイルのコンパイル...........................................................................................................................................................303.1.3 サーバアプリケーションのプログラミング...................................................................................................................................303.1.4 クライアントアプリケーションのプログラミング............................................................................................................................313.1.5 アプリケーションのコンパイルとリンク.........................................................................................................................................313.1.6 サーバアプリケーションの登録..................................................................................................................................................31

    - iii -

  • 3.2 サーバアプリケーションのプログラミング(静的スケルトンインタフェース)......................................................................................313.2.1 初期化........................................................................................................................................................................................323.2.2 サーバの活性化.........................................................................................................................................................................323.2.3 インタフェース実装関数.............................................................................................................................................................333.2.4 サーバの非活性化.....................................................................................................................................................................34

    3.3 サーバアプリケーションの例外処理.................................................................................................................................................343.4 サーバアプリケーションの登録.........................................................................................................................................................36

    3.4.1 インプリメンテーションリポジトリへの登録..................................................................................................................................363.4.2 ネーミングサービスへの登録.....................................................................................................................................................37

    3.5 クライアントアプリケーションのプログラミング(静的起動インタフェース)........................................................................................393.5.1 初期化........................................................................................................................................................................................403.5.2 ネーミングサービスのオブジェクトリファレンスの獲得...............................................................................................................403.5.3 サーバアプリケーションのオブジェクトリファレンスの獲得........................................................................................................403.5.4 メソッドの呼出し..........................................................................................................................................................................41

    3.6 クライアントアプリケーションの例外処理..........................................................................................................................................413.7 データ型に対するマッピング............................................................................................................................................................43

    3.7.1 基本データ型.............................................................................................................................................................................433.7.2 文字列型....................................................................................................................................................................................443.7.3 ワイド文字列型...........................................................................................................................................................................463.7.4 any型...........................................................................................................................................................................................483.7.5 シーケンス型...............................................................................................................................................................................513.7.6 構造体........................................................................................................................................................................................543.7.7 共用体........................................................................................................................................................................................573.7.8 配列............................................................................................................................................................................................613.7.9 属性宣言(attribute)のマッピング................................................................................................................................................643.7.10 パラメタ受渡しで使用するデータ型........................................................................................................................................66

    3.8 any型、sequence型のリリースフラグ..................................................................................................................................................673.9 アプリケーション作成時の注意事項.................................................................................................................................................67

    第4章 アプリケーションの開発(C++言語)................................................................................................................................684.1 アプリケーションの開発手順.............................................................................................................................................................68

    4.1.1 アプリケーションのインタフェース定義(IDL)の記述.................................................................................................................684.1.2 IDLファイルのコンパイル...........................................................................................................................................................684.1.3 サーバアプリケーションのプログラミング...................................................................................................................................694.1.4 クライアントアプリケーションのプログラミング............................................................................................................................694.1.5 アプリケーションのコンパイルとリンク.........................................................................................................................................694.1.6 サーバアプリケーションの登録..................................................................................................................................................69

    4.2 サーバアプリケーションのプログラミング(Basic Object Adapter:BOA).........................................................................................704.2.1 静的スケルトンインタフェース....................................................................................................................................................70

    4.2.1.1 初期化.................................................................................................................................................................................704.2.1.2 サーバの活性化..................................................................................................................................................................704.2.1.3 インタフェース実装関数......................................................................................................................................................724.2.1.4 サーバの非活性化..............................................................................................................................................................74

    4.2.2 サーバアプリケーションの例外処理..........................................................................................................................................754.3 サーバアプリケーションのプログラミング(Portable Object Adapter:POA).....................................................................................76

    4.3.1 インスタンス管理とアプリケーション形態...................................................................................................................................764.3.1.1 アプリケーション形態の種別...............................................................................................................................................764.3.1.2 各アプリケーション形態.......................................................................................................................................................814.3.1.3 アプリケーション形態の比較...............................................................................................................................................85

    4.3.2 POA概要....................................................................................................................................................................................854.3.2.1 POAとは...............................................................................................................................................................................854.3.2.2 POAのアーキテクチャ.........................................................................................................................................................864.3.2.3 POAオブジェクト..................................................................................................................................................................884.3.2.4 オブジェクトリファレンスの生成...........................................................................................................................................934.3.2.5 オブジェクトリファレンス、オブジェクトID、Servantオブジェクトの関連..............................................................................944.3.2.6 オブジェクトの活性化..........................................................................................................................................................954.3.2.7 リクエスト処理.......................................................................................................................................................................96

    - iv -

  • 4.3.2.8 暗黙的活性化(Implicit Activation)...................................................................................................................................974.3.2.9 POAManagerオブジェクト....................................................................................................................................................974.3.2.10 ServantManagerオブジェクト.............................................................................................................................................974.3.2.11 AdapterActivatorオブジェクト..........................................................................................................................................101

    4.3.3 サーバアプリケーションと環境設定との関連付け...................................................................................................................1024.3.3.1 インプリメンテーション情報との関連付け.........................................................................................................................1024.3.3.2 オブジェクトリファレンスの生成方法.................................................................................................................................1034.3.3.3 POA使用方法例...............................................................................................................................................................104

    4.3.4 静的スケルトンインタフェース..................................................................................................................................................1064.3.4.1 初期化...............................................................................................................................................................................1074.3.4.2 RootPOAのオブジェクトリファレンスの獲得.....................................................................................................................1074.3.4.3 子孫POAの作成................................................................................................................................................................1084.3.4.4 インタフェースの実装........................................................................................................................................................1084.3.4.5 AOMへの登録(活性化)..................................................................................................................................................1094.3.4.6 ネーミングサービスへの登録............................................................................................................................................1104.3.4.7 オブジェクトリファレンスの事前生成/登録.....................................................................................................................1104.3.4.8 POAManagerの活性化と終了待機...................................................................................................................................1114.3.4.9 アプリケーション作成時の注意点.....................................................................................................................................111

    4.3.5 サーバアプリケーションの実装アプローチ..............................................................................................................................1124.3.5.1 継承方式と代理方式.........................................................................................................................................................1124.3.5.2 継承方式のServant実装...................................................................................................................................................1124.3.5.3 代理方式のServant実装...................................................................................................................................................1144.3.5.4 継承方式と代理方式の比較.............................................................................................................................................115

    4.3.6 クライアントとのコネクション切断時のインスタンス解放..........................................................................................................1154.3.6.1 インスタンス解放処理を行うクラスの作成.........................................................................................................................1164.3.6.2 インスタンス解放処理の実装............................................................................................................................................1164.3.6.3 インスタンス解放処理を行うクラスインスタンスの登録.....................................................................................................1164.3.6.4 インスタンス解放処理を行うクラスインスタンスの変更・削除...........................................................................................116

    4.3.7 サーバアプリケーションのプログラミング例.............................................................................................................................1174.3.7.1 Default Servant使用例(デフォルトインスタンス方式)......................................................................................................1174.3.7.2 Active Object Map(AOM)使用例 (Factory-1方式).......................................................................................................1204.3.7.3 Servant Activator使用例 (Factory-2方式).......................................................................................................................1254.3.7.4 Servant Locator使用例 (ユーザインスタンス管理方式).................................................................................................1314.3.7.5 AdapterActivator使用例 (find_POA時)..........................................................................................................................1384.3.7.6 AdapterActivator使用例 (リクエスト受信時)....................................................................................................................1464.3.7.7 代理方式の実装例(デフォルトインスタンス方式の例)...................................................................................................1514.3.7.8 Active Object Map(AOM)使用例(Factory-1方式+クライアントとのコネクション切断時のインスタンス解放)............155

    4.4 サーバアプリケーションの登録.......................................................................................................................................................1644.4.1 インプリメンテーションリポジトリへの登録................................................................................................................................1644.4.2 ネーミングサービスへの登録...................................................................................................................................................165

    4.5 クライアントアプリケーションのプログラミング.................................................................................................................................1684.5.1 静的起動インタフェース...........................................................................................................................................................168

    4.5.1.1 初期化...............................................................................................................................................................................1694.5.1.2 ネーミングサービスのオブジェクトリファレンスの獲得......................................................................................................1694.5.1.3 サーバアプリケーションのオブジェクトリファレンスの獲得...............................................................................................1694.5.1.4 メソッドの呼出し.................................................................................................................................................................170

    4.5.2 クライアントアプリケーションの例外処理.................................................................................................................................1704.6 データ型に対するマッピング..........................................................................................................................................................173

    4.6.1 基本データ型...........................................................................................................................................................................1734.6.2 文字列型..................................................................................................................................................................................1744.6.3 ワイド文字列型.........................................................................................................................................................................1754.6.4 any型.........................................................................................................................................................................................1784.6.5 シーケンス型.............................................................................................................................................................................1864.6.6 構造体......................................................................................................................................................................................1954.6.7 共用体......................................................................................................................................................................................1984.6.8 配列..........................................................................................................................................................................................2054.6.9 インタフェース宣言(interface)のマッピング.............................................................................................................................208

    - v -

  • 4.6.10 属性宣言(attribute)のマッピング............................................................................................................................................2094.6.11 パラメタ受渡しで使用するデータ型......................................................................................................................................2114.6.12 any型、sequence型のリリースフラグ.......................................................................................................................................212

    4.7 varクラス...........................................................................................................................................................................................2144.7.1 String_varクラス........................................................................................................................................................................2154.7.2 WString_varクラス....................................................................................................................................................................2184.7.3 Any_varクラス...........................................................................................................................................................................2214.7.4 ユーザ定義varクラス................................................................................................................................................................224

    4.8 アプリケーション作成時の注意事項...............................................................................................................................................229

    第5章 アプリケーションの開発(Java言語)..............................................................................................................................2305.1 Javaアプレットの開発手順(プレインストール型Javaライブラリ).....................................................................................................230

    5.1.1 HTMLファイルの記述..............................................................................................................................................................2315.1.2 アプレットのプログラミング........................................................................................................................................................2325.1.3 IDL生成ファイルとアプレットのコンパイル..............................................................................................................................2335.1.4 Javaクラスファイルのアーカイブ...............................................................................................................................................233

    5.2 Javaアプレットの開発手順(Portable-ORB)....................................................................................................................................2355.2.1 HTMLファイルの記述..............................................................................................................................................................2355.2.2 アプレットのプログラミング........................................................................................................................................................2385.2.3 IDL生成ファイルとアプレットのコンパイル..............................................................................................................................2385.2.4 Javaクラスファイルのアーカイブ...............................................................................................................................................2395.2.5 WebサーバへのJavaアプレットの登録.....................................................................................................................................241

    5.3 サーバアプリケーションの開発手順...............................................................................................................................................2415.3.1 IDLファイルの作成とコンパイル..............................................................................................................................................2415.3.2 サーバアプリケーションの作成................................................................................................................................................2425.3.3 Javaファイルのコンパイル.........................................................................................................................................................2425.3.4 起動用ファイルの作成.............................................................................................................................................................2425.3.5 インプリメンテーションリポジトリの登録....................................................................................................................................243

    5.4 CORBAアプリケーションの実行.....................................................................................................................................................2445.4.1 Java実行環境...........................................................................................................................................................................2445.4.2 ORB(Object Request Broker)の指定.......................................................................................................................................245

    5.5 クライアントの環境設定(プレインストール型Javaライブラリ).........................................................................................................2485.5.1 Javaライブラリ............................................................................................................................................................................2485.5.2 HTMLファイルの記述..............................................................................................................................................................2485.5.3 Javaライブラリに対する権限の設定.........................................................................................................................................2495.5.4 ライブラリの設定.......................................................................................................................................................................250

    5.6 クライアントの環境設定(Portable-ORB)........................................................................................................................................2505.6.1 Javaライブラリ............................................................................................................................................................................2505.6.2 HTMLファイルの記述..............................................................................................................................................................2515.6.3 Javaライブラリに対する権限の設定.........................................................................................................................................2515.6.4 Javaライブラリに対する署名の設定.........................................................................................................................................2535.6.5 ライブラリの設定.......................................................................................................................................................................2535.6.6 Portable-ORB動作環境ファイルの指定..................................................................................................................................255

    5.7 サーバの環境設定..........................................................................................................................................................................2595.8 アプレットのデジタル署名...............................................................................................................................................................260

    5.8.1 デジタル署名の概要................................................................................................................................................................2605.8.2 ダウンロードオブジェクトと署名対象オブジェクト....................................................................................................................2615.8.3 デジタル署名ツール................................................................................................................................................................2615.8.4 デジタル署名手順(keytool/jarsigner/policytool)...................................................................................................................2625.8.5 policytoolコマンドの設定(補足)...............................................................................................................................................2655.8.6 デジタル署名手順(javakey)...................................................................................................................................................276

    5.9 クライアントアプリケーションのプログラミング(静的起動インタフェース)......................................................................................2815.9.1 初期化......................................................................................................................................................................................2815.9.2 ネーミングサービスのオブジェクトリファレンスの獲得.............................................................................................................2825.9.3 サーバアプリケーションのオブジェクトリファレンスの獲得......................................................................................................2835.9.4 メソッドの呼び出し....................................................................................................................................................................283

    5.10 クライアントアプリケーションの例外処理......................................................................................................................................283

    - vi -

  • 5.11 簡単なサーバアプリケーションの作成例......................................................................................................................................2875.11.1 作業の流れ.............................................................................................................................................................................2875.11.2 IDLファイルの作成とコンパイル............................................................................................................................................2885.11.3 サーバアプリケーションのソースファイル作成......................................................................................................................2895.11.4 クライアントアプリケーションのソースファイル作成................................................................................................................2895.11.5 Javaファイルのコンパイル.......................................................................................................................................................2895.11.6 defファイルの作成と登録.......................................................................................................................................................2895.11.7 起動用ファイルの作成...........................................................................................................................................................2905.11.8 アプリケーションの実行..........................................................................................................................................................2905.11.9 アプリケーションの実行結果..................................................................................................................................................2915.11.10 サーバアプリケーション情報の削除....................................................................................................................................291

    5.12 インスタンス管理とアプリケーション形態......................................................................................................................................2925.12.1 アプリケーション形態の種別..................................................................................................................................................2925.12.2 各アプリケーション形態..........................................................................................................................................................2965.12.3 アプリケーション形態の比較..................................................................................................................................................300

    5.13 サーバアプリケーションのプログラミング(POA概要)..................................................................................................................3005.13.1 POAとは..................................................................................................................................................................................3005.13.2 POAのアーキテクチャ............................................................................................................................................................3015.13.3 POAオブジェクト.....................................................................................................................................................................3035.13.4 オブジェクトリファレンスの生成..............................................................................................................................................3085.13.5 オブジェクトリファレンス、オブジェクトID、Servantオブジェクトの関連.................................................................................3095.13.6 オブジェクトの活性化.............................................................................................................................................................3105.13.7 リクエスト処理..........................................................................................................................................................................3115.13.8 暗黙的活性化(Implicit Activation)......................................................................................................................................3115.13.9 POAManagerオブジェクト.......................................................................................................................................................3125.13.10 ServantManagerオブジェクト................................................................................................................................................3135.13.11 AdapterActivatorオブジェクト...............................................................................................................................................316

    5.14 サーバアプリケーションと環境設定との関連付け........................................................................................................................3185.14.1 インプリメンテーション情報との関連付け..............................................................................................................................3185.14.2 オブジェクトリファレンスの生成方法......................................................................................................................................3185.14.3 POA使用方法例....................................................................................................................................................................319

    5.15 サーバアプリケーションのプログラミング(静的スケルトンインタフェース)..................................................................................3225.15.1 初期化....................................................................................................................................................................................3225.15.2 RootPOAのオブジェクトリファレンスの獲得..........................................................................................................................3235.15.3 子孫POAの作成.....................................................................................................................................................................3235.15.4 インタフェースの実装.............................................................................................................................................................3245.15.5 AOMへの登録(活性化).......................................................................................................................................................3245.15.6 ネーミングサービスへの登録.................................................................................................................................................3255.15.7 オブジェクトリファレンスの事前生成/登録..........................................................................................................................3255.15.8 POAManagerの活性化と終了待機........................................................................................................................................325

    5.16 サーバアプリケーションの例外処理.............................................................................................................................................3265.17 サーバアプリケーションの実装アプローチ...................................................................................................................................327

    5.17.1 継承方式と代理方式..............................................................................................................................................................3275.17.2 継承方式のServant実装........................................................................................................................................................3285.17.3 代理方式のServant実装........................................................................................................................................................3295.17.4 継承方式と代理方式の比較..................................................................................................................................................330

    5.18 クライアントとのコネクション切断時のインスタンス解放...............................................................................................................3305.18.1 インスタンス解放処理を行うクラスの作成..............................................................................................................................3315.18.2 インスタンス解放処理の実装.................................................................................................................................................3315.18.3 インスタンス解放処理を行うクラスインスタンスの登録..........................................................................................................3315.18.4 インスタンス解放処理を行うクラスインスタンスの変更・削除................................................................................................331

    5.19 サーバアプリケーションのプログラミング例..................................................................................................................................3315.19.1 Default Servant使用例(デフォルトインスタンス方式)...........................................................................................................3315.19.2 Active Object Map(AOM)使用例(Factory-1方式).............................................................................................................3355.19.3 Servant Activator使用例(Factory-2方式).............................................................................................................................3395.19.4 Servant Locator使用例 (ユーザインスタンス管理方式)......................................................................................................3445.19.5 AdapterActivator使用例 (find_POA時)...............................................................................................................................351

    - vii -

  • 5.19.6 AdapterActivator使用例 (リクエスト受信時).........................................................................................................................3585.19.7 代理方式の実装例(デフォルトインスタンス方式の例)........................................................................................................3635.19.8 Active Object Map(AOM)使用例(Factory-1方式+インスタンス解放).............................................................................367

    5.20 データ型に対するマッピング........................................................................................................................................................3735.20.1 基本データ型.........................................................................................................................................................................3735.20.2 文字列型................................................................................................................................................................................3735.20.3 ワイド文字列型.......................................................................................................................................................................3765.20.4 列挙型....................................................................................................................................................................................3795.20.5 any型.......................................................................................................................................................................................3845.20.6 シーケンス型...........................................................................................................................................................................3905.20.7 構造体....................................................................................................................................................................................3955.20.8 共用体....................................................................................................................................................................................4025.20.9 配列........................................................................................................................................................................................4105.20.10 属性宣言(attribute)のマッピング..........................................................................................................................................4185.20.11 定数宣言(const)のマッピング...............................................................................................................................................4215.20.12 パラメタ受渡しで使用するデータ型....................................................................................................................................422

    5.21 注意事項.......................................................................................................................................................................................4245.21.1 アプリケーション作成時の注意事項......................................................................................................................................4245.21.2 クライアント環境でのアプレット運用時の注意事項...............................................................................................................4245.21.3 その他の注意事項.................................................................................................................................................................425

    第6章 アプリケーションの開発(COBOL)................................................................................................................................4266.1 アプリケーションの開発手順...........................................................................................................................................................426

    6.1.1 アプリケーションのインタフェース定義(IDL)の記述...............................................................................................................4266.1.2 IDLファイルのコンパイル.........................................................................................................................................................4266.1.3 サーバアプリケーションのプログラミング.................................................................................................................................4276.1.4 クライアントアプリケーションのプログラミング..........................................................................................................................4276.1.5 アプリケーションのコンパイルとリンク.......................................................................................................................................4276.1.6 サーバアプリケーションの登録................................................................................................................................................427

    6.2 サーバアプリケーションのプログラミング(静的スケルトンインタフェース)....................................................................................4276.2.1 初期化......................................................................................................................................................................................4286.2.2 サーバの活性化.......................................................................................................................................................................4306.2.3 インタフェース実装関数...........................................................................................................................................................4316.2.4 サーバの非活性化...................................................................................................................................................................433

    6.3 サーバアプリケーションの例外処理...............................................................................................................................................4336.4 サーバアプリケーションの登録.......................................................................................................................................................437

    6.4.1 インプリメンテーションリポジトリへの登録................................................................................................................................4376.4.2 ネーミングサービスへの登録...................................................................................................................................................438

    6.5 クライアントアプリケーションのプログラミング(静的起動インタフェース)......................................................................................4436.5.1 初期化......................................................................................................................................................................................4436.5.2 ネーミングサービスのオブジェクトリファレンスの獲得.............................................................................................................4456.5.3 サーバアプリケーションのオブジェクトリファレンスの獲得......................................................................................................4456.5.4 メソッドの呼び出し....................................................................................................................................................................446

    6.6 クライアントアプリケーションの例外処理........................................................................................................................................4476.7 アプリケーションのテスト..................................................................................................................................................................449

    6.7.1 サーバアプリケーションのテスト方法.......................................................................................................................................4496.7.2 クライアントアプリケーションのテスト方法................................................................................................................................451

    6.8 データ型に対するマッピング..........................................................................................................................................................4526.8.1 文字列型..................................................................................................................................................................................4536.8.2 ワイド文字列型.........................................................................................................................................................................4586.8.3 any型.........................................................................................................................................................................................4636.8.4 シーケンス型.............................................................................................................................................................................4686.8.5 構造体......................................................................................................................................................................................4796.8.6 共用体......................................................................................................................................................................................4856.8.7 固定小数点型..........................................................................................................................................................................4916.8.8 配列..........................................................................................................................................................................................4976.8.9 属性宣言(attribute)のマッピング..............................................................................................................................................505

    - viii -

  • 6.8.10 パラメタ受渡しで使用するデータ型......................................................................................................................................5096.9 any型、sequence型のリリースフラグ................................................................................................................................................5126.10 COBOLアプリケーション使用時の注意事項...............................................................................................................................5136.11 COBOL用登録集について...........................................................................................................................................................523

    6.11.1 使用例....................................................................................................................................................................................5236.11.2 登録集原文............................................................................................................................................................................524

    第7章 CORBAアプリケーションの基本的な機能.....................................................................................................................5357.1 クライアントタイムアウト機能............................................................................................................................................................5357.2 CORBAワークユニット.....................................................................................................................................................................535

    第2部 アプリケーション開発(応用編)......................................................................................................................................537

    第8章 動的起動インタフェース................................................................................................................................................5388.1 動的起動インタフェースについて...................................................................................................................................................5388.2 C言語の開発...................................................................................................................................................................................538

    8.2.1 初期化......................................................................................................................................................................................5388.2.2 ネーミングサービスのオブジェクトリファレンスの獲得.............................................................................................................5398.2.3 インタフェースリポジトリからサーバアプリケーション情報の獲得...........................................................................................5398.2.4 パラメタの組立て......................................................................................................................................................................5408.2.5 リクエストの作成........................................................................................................................................................................5418.2.6 リクエストの送信........................................................................................................................................................................5428.2.7 リクエストの削除........................................................................................................................................................................5428.2.8 動的インタフェースでのパラメタの獲得/解放.......................................................................................................................542

    8.3 C++言語の開発..............................................................................................................................................................................5448.3.1 初期化......................................................................................................................................................................................5448.3.2 ネーミングサービスのオブジェクトリファレンスの獲得.............................................................................................................5458.3.3 サーバアプリケーションのオブジェクトリファレンスの獲得......................................................................................................5458.3.4 インタフェースリポジトリからサーバアプリケーション情報の獲得...........................................................................................5458.3.5 パラメタの組立て......................................................................................................................................................................5468.3.6 リクエストの作成........................................................................................................................................................................5478.3.7 リクエストの送信........................................................................................................................................................................5488.3.8 リクエストの削除........................................................................................................................................................................5488.3.9 動的インタフェースでのパラメタの獲得/解放.......................................................................................................................549

    8.4 Java言語の開発...............................................................................................................................................................................5578.4.1 初期化......................................................................................................................................................................................5588.4.2 ネーミングサービスのオブジェクトリファレンスの獲得.............................................................................................................5588.4.3 サーバアプリケーションのオブジェクトリファレンスの獲得......................................................................................................5598.4.4 インタフェースリポジトリからサーバアプリケーション情報の獲得...........................................................................................5598.4.5 パラメタの組立て......................................................................................................................................................................5608.4.6 リクエストの作成........................................................................................................................................................................5608.4.7 リクエストの送信........................................................................................................................................................................561

    8.5 COBOL言語の開発........................................................................................................................................................................5618.5.1 初期化......................................................................................................................................................................................5628.5.2 ネーミングサービスのオブジェクトリファレンスの獲得.............................................................................................................5638.5.3 インタフェースリポジトリからサーバアプリケーション情報の獲得...........................................................................................5648.5.4 パラメタの組み立て..................................................................................................................................................................5668.5.5 リクエストの作成........................................................................................................................................................................5678.5.6 リクエストの送信........................................................................................................................................................................5698.5.7 リクエストの削除........................................................................................................................................................................569

    第9章 ネーミングサービスのプログラミング.............................................................................................................................5709.1 ネーミングサービスの概要..............................................................................................................................................................5709.2 ネーミングコンテキストインタフェース.............................................................................................................................................573

    9.2.1 ネーミングコンテキストインタフェースで扱うデータ型.............................................................................................................5749.2.2 ネーミングコンテキストインタフェースの呼び出しで発生する例外........................................................................................5759.2.3 バインディングの作成...............................................................................................................................................................5769.2.4 バインディングの検索...............................................................................................................................................................577

    - ix -

  • 9.2.5 バインディングの削除...............................................................................................................................................................5779.2.6 ネーミングコンテキストの作成..................................................................................................................................................5779.2.7 ネーミングコンテキストの削除..................................................................................................................................................5789.2.8 バインディングの一覧獲得.......................................................................................................................................................578

    9.3 バインディングアイテレータインタフェース.....................................................................................................................................5789.4 文字列表記のバインディング名......................................................................................................................................................579

    9.4.1 文字列表記バインディング名の基本表記...............................................................................................................................5799.4.2 文字列表記バインディング名のエスケープ機構....................................................................................................................580

    9.5 URLスキーマ...................................................................................................................................................................................5809.5.1 IOR URLスキーマ....................................................................................................................................................................5809.5.2 corbaloc URLスキーマ.............................................................................................................................................................5809.5.3 corbaname URLスキーマ.........................................................................................................................................................580

    9.6 バインディング名、URL、IOR間の変換.........................................................................................................................................5819.7 ネーミングサービスのプログラミング例...........................................................................................................................................582

    9.7.1 コンテキスト配下のオブジェクトの検索....................................................................................................................................5829.7.2 コンテキスト配下のオブジェクトの登録....................................................................................................................................5889.7.3 コンテキスト配下のオブジェクトのリストの取得........................................................................................................................596

    第10章 インタフェースリポジトリサービスのプログラミング.......................................................................................................60610.1 インタフェースリポジトリサービスで管理するオブジェクトの種類................................................................................................60610.2 インタフェースリポジトリオブジェクトの包含/継承関係..............................................................................................................60610.3 インタフェースリポジトリサービスインタフェース...........................................................................................................................607

    10.3.1 インタフェースリポジトリサービスが提供するインタフェース.................................................................................................60710.3.2 インタフェースの継承関係.....................................................................................................................................................614

    10.4 インタフェースリポジトリサービスのプログラミング........................................................................................................................61610.4.1 ルートリポジトリのオブジェクトリファレンスを獲得..................................................................................................................61710.4.2 インタフェースリポジトリのオブジェクトの検索.......................................................................................................................61710.4.3 インタフェース情報の獲得.....................................................................................................................................................61710.4.4 インタフェースリポジトリサービスのプログラミング例.............................................................................................................617

    第11章 CORBAアプリケーションの高度な使い方...................................................................................................................63211.1 Factory...........................................................................................................................................................................................632

    11.1.1 サーバアプリケーションのプログラミング...............................................................................................................................63211.1.2 クライアントアプリケーションのプログラミング........................................................................................................................63311.1.3 private領域の実装..................................................................................................................................................................63411.1.4 クライアントごとのprivateデータの初期化..............................................................................................................................63611.1.5 終了処理のプログラミング......................................................................................................................................................63711.1.6 クライアントとの接続切断時の処理関数の登録....................................................................................................................638

    11.2 オブジェクト単位のプロセスバインド.............................................................................................................................................63911.2.1 定義情報................................................................................................................................................................................63911.2.2 使用するAPI...........................................................................................................................................................................64011.2.3 オブジェクトとインスタンスの関係..........................................................................................................................................64011.2.4 リクエスト振り分け方式...........................................................................................................................................................64011.2.5 セションタイムアウト機能........................................................................................................................................................64111.2.6 プロセスの終了.......................................................................................................................................................................641

    11.3 複数のIDLファイルのコンパイル方法..........................................................................................................................................64111.3.1 #include文.......................