Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第1部 アプリケーション開発(基本編)> 第5章 アプリケーションの開発(Java言語)> 5.8 インスタンス管理とアプリケーション形態

5.8.2 各アプリケーション形態

(1)デフォルトインスタンス方

 クライアントごとのインスタンス管理をしない方式です。

  1. OD_or_admコマンドにより事前にServantのオブジェクトリファレンスをNamingServiceに登録します。
  2. サーバアプリケーションは、Servantを作成します。
  3. サーバアプリケーションは、ServantをPOAにDefault Servantとして登録します。
  4. クライアントアプリケーションは、NamingServiceからオブジェクトリファレンスを獲得します。
  5. クライアントアプリケーションは、オペレーションop()を要求します。
  6. POAは登録されているDefault Servantを起動します。
  7. POAはオペレーションop()の結果をクライアントに通知します。

(2)Factory-1方

 クライアントごとでインスタンス管理をPOAオブジェクトで行う方式です。Factory内で、オブジェクトリファレンスおよびインスタンスを作成します。

  1. OD_or_admコマンドで事前にFactoryのオブジェクトリファレンスをNamingServiceに登録します。
  2. サーバアプリケーションは、Factoryを作成します。
  3. サーバアプリケーションは、FactoryをDefault ServantとしてPOAに登録します。
  4. クライアントアプリケーションは、NamingServiceからFactoryのオブジェクトリファレンスを獲得します。
  5. クライアントアプリケーションは、オペレーションcreateをFactoryに要求します。
  6. Factoryは、Servantのインスタンスを作成します。
  7. Factoryは、AOMにインスタンスを登録します。
  8. Factoryは、オブジェクトリファレンスを作成してクライアントに通知します。
  9. クライアントアプリケーションは、オペレーションop()を要求します。
  10. POAは、AOMを検索し、獲得したインスタンスでServantに対してオペレーションop()の実行を依頼します。
  11. POAは、オペレーションop()の結果をクライアントに通知します。

(3)Factory-2方

 クライアントごとにインスタンス管理をPOAオブジェクトで行う方式です。Factory内でオブジェクトリファレンスを作成し、リクエスト受信時にServantManagerオブジェクト内でインスタンスを作成します。

  1. OD_or_admコマンドで事前にFactoryのオブジェクトリファレンスをNamingServiceに登録します。
  2. サーバアプリケーションは、Factoryを作成します。
  3. サーバアプリケーションは、FactoryをDefault ServantとしてPOAに登録します。
  4. サーバアプリケーションは、ServantManagerを作成します。
  5. サーバアプリケーションは、ServantManagerをPOAに登録します。
  6. クライアントアプリケーションは、NamingServiceからFactoryのオブジェクトリファレンスを獲得します。
  7. クライアントアプリケーションは、オペレーションcreateをFactoryに要求します。
  8. Factoryは、Servantのオブジェクトリファレンスを作成し、オブジェクトリファレンスをクライアントに通知します。
  9. クライアントアプリケーションは、オペレーションop()を要求します。
  10. POAは、AOMを検索するが、未登録の要求であるため、ServantManagerを呼び出します。
  11. ServantManagerは、該当するServantを検索して返します。
  12. POAは、ServantManagerからServantを受け取り、AOMに登録します。
  13. POAは、Servantに対してオペレーションop()の実行を依頼します。
  14. POAは、オペレーションop()の結果をクライアントに通知します。

(4)ユーザインスタンス管理方

 インスタンス管理をユーザの作成するServantManagerオブジェクトに任せる方式です。

  1. OD_or_admコマンドで事前にFactoryのオブジェクトリファレンスをNamingServiceに登録します。
  2. サーバアプリケーションは、Factoryを作成します。
  3. サーバアプリケーションは、FactoryをDefault ServantとしてPOAに登録します。
  4. サーバアプリケーションは、ServantManagerを作成します。
  5. サーバアプリケーションは、ServantManagerをPOAに登録します。
  6. クライアントアプリケーションは、NamingServiceからFactoryのオブジェクトリファレンスを獲得します。
  7. クライアントアプリケーションは、オペレーションcreateをFactoryに要求します。
  8. FactoryはServantのオブジェクトリファレンスを作成し、オブジェクトリファレンスをクライアントに通知します。
  9. クライアントアプリケーションは、オペレーションop()を要求します。
  10. POAは、ServantManagerのpreinvoke()を呼び出します。
  11. ServantManagerは、Servantのインスタンスを検索し、POAに通知します。
  12. POAは、獲得したインスタンスでServantに対してオペレーションop()の実行を依頼します。
  13. POAは、オペレーションop()の結果をクライアントに通知します。
  14. POAは、ServantManagerのpostinvoke()を呼び出します。

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

Copyright 2008 FUJITSU LIMITED