クライアント・インタフェースについて

ビジネス・コンポーネント・フレームワークは、oracle.jbo.ApplicationModuleoracle.jbo.ViewObjectおよびoracle.jbo.Rowなどの、oracle.jboパッケージ内のインタフェースを中心に編成されています。インタフェースを実装するクラスのかわりに、これらのインタフェースに則してクライアントをコーディングすることによって、コードが層に依存しないようにできます。たとえば、ビジネス・コンポーネントをEJBとしてデプロイすることを選択すると、ビジネス・コンポーネントのローカルへのデプロイ時にテストに使用したのと同じクライアント・コードを使用できます。これは、クライアント層で常にインタフェースにアクセスできるためです。ビジネス・コンポーネント・フレームワークによって、層と層の間の通信に関する処理がすべて行われます。

oracle.jboのインタフェースは、oracle.jbo.serverパッケージのクラスによって実装されています。たとえば、oracle.jbo.ApplicationModuleoracle.jbo.server.ApplicationModuleImplによって実装されています。リモートにデプロイする場合は、これらの実装クラスはクライアント層で使用できないため、実装クラスのメソッドを直接コールしないでください。クラスをコールすると、アプリケーションをリモートにデプロイできなくなります。かわりに、インタフェースのメソッドをコールしてください。

同様に、独自のアプリケーション・モジュールおよびビュー・リンクを作成するときは、それらの実装クラスのメソッドをコールしないでください。かわりに、メソッドをエクスポートし、そのメソッドを含むカスタム・インタフェースを作成します。これらのインタフェースは、oracle.jbo.ApplicationModuleまたはoracle.jbo.ViewObjectを拡張し、クライアント層で常にアクセスできます。ビジネス・コンポーネントをダウンキャストする場合は、実装クラスではなく必ずインタフェースにダウンキャストしてください。

リモートにデプロイされたビジネス・コンポーネントでメソッドをコールした場合の内部での処理の詳細は、「ビジネス・コンポーネントおよびワイヤ・プロトコルについて」を参照してください。コードを記述するときには、この情報は必要ありません。ビジネス・コンポーネントにより、ワイヤ・プロトコルが自動的に処理されます。

注意: 原則として、他の*Implクラス内での*Implクラスへの直接アクセスは認められていますが、アプリケーション・モジュールにアクセスしているクライアント・コードでの*Implクラスへのアクセスまたはキャストは行わないでください。