クライアントごとのインスタンス管理をしない方式です。
OD_or_admコマンドにより事前にServantのオブジェクトリファレンスをNamingServiceに登録します。
サーバアプリケーションは、Servantを作成します。
サーバアプリケーションは、ServantをPOAにDefault Servantとして登録します。
クライアントアプリケーションは、NamingServiceからオブジェクトリファレンスを獲得します。
クライアントアプリケーションは、オペレーションop()を要求します。
POAは登録されているDefault Servantを起動します。
POAはオペレーションop()の結果をクライアントに通知します。
クライアントごとでインスタンス管理をPOAオブジェクトで行う方式です。Factory内で、オブジェクトリファレンスおよびインスタンスを作成します。
OD_or_admコマンドで事前にFactoryのオブジェクトリファレンスをNamingServiceに登録します。
サーバアプリケーションは、Factoryを作成します。
サーバアプリケーションは、FactoryをDefault ServantとしてPOAに登録します。
クライアントアプリケーションは、NamingServiceからFactoryのオブジェクトリファレンスを獲得します。
クライアントアプリケーションは、オペレーションcreateをFactoryに要求します。
Factoryは、Servantのインスタンスを作成します。
Factoryは、AOMにインスタンスを登録します。
Factoryは、オブジェクトリファレンスを作成してクライアントに通知します。
クライアントアプリケーションは、オペレーションop()を要求します。
POAは、AOMを検索し、獲得したインスタンスでServantに対してオペレーションop()の実行を依頼します。
POAは、オペレーションop()の結果をクライアントに通知します。
クライアントごとにインスタンス管理をPOAオブジェクトで行う方式です。Factory内でオブジェクトリファレンスを作成し、リクエスト受信時にServantManagerオブジェクト内でインスタンスを作成します。
OD_or_admコマンドで事前にFactoryのオブジェクトリファレンスをNamingServiceに登録します。
サーバアプリケーションは、Factoryを作成します。
サーバアプリケーションは、FactoryをDefault ServantとしてPOAに登録します。
サーバアプリケーションは、ServantManagerを作成します。
サーバアプリケーションは、ServantManagerをPOAに登録します。
クライアントアプリケーションは、NamingServiceからFactoryのオブジェクトリファレンスを獲得します。
クライアントアプリケーションは、オペレーションcreateをFactoryに要求します。
Factoryは、Servantのオブジェクトリファレンスを作成し、オブジェクトリファレンスをクライアントに通知します。
クライアントアプリケーションは、オペレーションop()を要求します。
POAは、AOMを検索するが、未登録の要求であるため、ServantManagerを呼び出します。
ServantManagerは、該当するServantを検索して返します。
POAは、ServantManagerからServantを受け取り、AOMに登録します。
POAは、Servantに対してオペレーションop()の実行を依頼します。
POAは、オペレーションop()の結果をクライアントに通知します。
インスタンス管理をユーザの作成するServantManagerオブジェクトに任せる方式です。
OD_or_admコマンドで事前にFactoryのオブジェクトリファレンスをNamingServiceに登録します。
サーバアプリケーションは、Factoryを作成します。
サーバアプリケーションは、FactoryをDefault ServantとしてPOAに登録します。
サーバアプリケーションは、ServantManagerを作成します。
サーバアプリケーションは、ServantManagerをPOAに登録します。
クライアントアプリケーションは、NamingServiceからFactoryのオブジェクトリファレンスを獲得します。
クライアントアプリケーションは、オペレーションcreateをFactoryに要求します。
FactoryはServantのオブジェクトリファレンスを作成し、オブジェクトリファレンスをクライアントに通知します。
クライアントアプリケーションは、オペレーションop()を要求します。
POAは、ServantManagerのpreinvoke()を呼び出します。
ServantManagerは、Servantのインスタンスを検索し、POAに通知します。
POAは、獲得したインスタンスでServantに対してオペレーションop()の実行を依頼します。
POAは、オペレーションop()の結果をクライアントに通知します。
POAは、ServantManagerのpostinvoke()を呼び出します。