11.1.2 サーバント
共同クライアント/サーバー用のサーバント(メソッド・コード)は、サーバー用のサーバントに非常に似ています。すべてのビジネス・ロジックが、同じように記述されます。違いは、TPフレームワークを使用しないことによって生じたものです。つまり主な相違点は、CORBA関数をTPフレームワーク経由で間接的に使用するのではなく、直接使用するということです。
Oracle Tuxedo CORBAサーバーでは、Serverインタフェースを使用して、ORBがオブジェクトに対するリクエストを受信したときに、TPフレームワークがそのオブジェクトのためのサーバントの作成をユーザーに求められるようにします。しかし、共同クライアント/サーバーでは、リクエストが届く前にサーバントを作成する役割をユーザー・プログラムが担います。したがって、Serverインタフェースは不要です。通常、プログラムはサーバントを作成してから、オブジェクトへのリファレンスを渡す前に、そのオブジェクトをアクティブ化します。これには、サーバントとObjectIdを使用します。ObjectIdはおそらく、システムで生成されています。そのようなオブジェクトは、コールバックの処理に使用されていると考えられます。したがって、サーバントは既に存在しており、オブジェクトは、そのオブジェクトに対するリクエストが届く前に、アクティブ化されます。
C++共同クライアント/サーバーの場合、ある特定の操作を実行するには、TPインタフェースを呼び出すのではなく、TPインタフェースの内部機能であるORBとPOAの呼出しをクライアント・サーバントから直接行います。また、ORBおよびPOAとの対話の多くは、すべてのアプリケーションで同じなので、使いやすくするため、クライアント・ライブラリにより、単一の操作を使用して同じことを行う便利なラッパー・オブジェクトを提供することもできます。便利なラッパー・オブジェクトの使い方については、「サポートされているコールバック・オブジェクト・モデル」および「OracleWrapper Callbacksを使用してのコールバック・オブジェクトの準備」を参照してください。
親トピック: 概要