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

5.12.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()を呼び出します。