J2EEアプリケーションには、次のように最大3つの独立した論理層があります。
ビジネス・サービスとMVCモードはビジネス層で、MVCビューとコントローラは一般的に他の2つの層のどちらかで稼働します。
Oracle ADF Business Componentsでビジネス・サービスを提供する場合、これら3つの独立した層を次のようないくつかの異なるデプロイメント構成に容易に再編成できます。
Oracle ADF Business Componentsは、デプロイメント構成に依存しません。そのためコードを変更せずに、ローカル・モジュールまたはWebモジュールとリモート・デプロイメント構成を切り替えられます。
これは、他のプログラミング・スタイルと比べて非常に優れた点です。Oracle ADF Business Componentsを使用しない場合は、デプロイメント構成をベースにアプリケーション全体を計画する必要があります。EJBをベースに設計されたアプリケーションは、同じコンテナまたはJVMにモデル、ビューおよびコントローラを持つアプリケーションとはまったく異なります。Oracle ADF Business Componentsを使用する場合は、ビジネス・コンポーネントEJBおよびローカルにデプロイされたビジネス・コンポーネント・アーカイブをまったく同じ方法でプログラミングおよび起動できます。
ビジネス・コンポーネント・アプリケーションの構成を選択する場合は、次の点について検証します。
Webクライアントを使用すると、クライアント・マシンの負荷が大幅に軽減されます。Webサーバーがすべての処理を行い、クライアント・マシンはHTMLのレンダリングのみ行う必要があります。一方、Javaクライアントでは、クライアント・マシンがJavaを実行する必要がありますが、リアルタイムの対話および複雑なユーザー・インタフェースが可能です。
ビジネス・コンポーネントをリモートにデプロイすると、クライアント・コードを処理する負荷が軽減されます。この場合のデメリットは、クライアント・コードがビジネス・コンポーネントEJBにアクセスするため、ネットワークの通信量が増えることです。クライアント・コードがWebサーバーなどの高速な中央マシンで実行される場合、Webモジュールへのデプロイによるネットワーク通信量の減少は、処理要求の増加に見合うだけの価値があります。
層の非依存性には複数の利点があります。
ビジネス・コンポーネント・フレームワークは、oracle.jbo.ApplicationModule
、oracle.jbo.ViewObject
およびoracle.jbo.Row
などの、oracle.jbo
パッケージ内のインタフェースを中心に編成されています。インタフェースを実装するクラスのかわりに、これらのインタフェースに則してクライアントをコーディングすることによって、コードが層に依存しないようにできます。たとえば、ビジネス・コンポーネントをEJBとしてデプロイすることを選択すると、ビジネス・コンポーネントのローカルへのデプロイ時にテストに使用したのと同じクライアント・コードを使用できます。これは、クライアント層で常にインタフェースにアクセスできるためです。ビジネス・コンポーネント・フレームワークによって、層と層の間の通信に関する処理がすべて行われます。
oracle.jbo
のインタフェースは、oracle.jbo.server
パッケージのクラスによって実装されています。たとえば、oracle.jbo.ApplicationModule
はoracle.jbo.server.ApplicationModuleImpl
によって実装されています。リモートにデプロイする場合は、これらの実装クラスはクライアント層で使用できないため、実装クラスのメソッドを直接コールしないでください。クラスをコールすると、アプリケーションをリモートにデプロイできなくなります。かわりに、インタフェースのメソッドをコールしてください。
同様に、アプリケーション・モジュールを作成してオブジェクト・クラスを表示する場合、実装クラスのメソッドはコールしないでください。かわりに、メソッドをエクスポートし、そのメソッドを含むカスタム・インタフェースを作成します。これらのインタフェースは、oracle.jbo.ApplicationModule
またはoracle.jbo.ViewObject
を拡張し、クライアント層で常にアクセスできます。ビジネス・コンポーネントをダウンキャストする場合は、実装クラスではなく必ずインタフェースにダウンキャストしてください。詳細は、関連項目のトピックを参照してください。
層の非依存性を管理するためのOracle ADF Business Componentsの機能を使用しない場合もあります。その場合は、サービス・セッションFacadeという特殊なEJB Session Beanをデプロイします。詳細は、関連項目のトピックを参照してください。
Oracle ADF Business Componentsの概要
Oracle ADFビジネス・ドメイン・コンポーネント、データ・モデル・コンポーネントおよび構成コンポーネントについて
クライアントへのビジネス・コンポーネント・メソッドの公開
クライアントからのエクスポートしたメソッドのコール
クライアントからのデータ・アクセス
ルート・レベル・アプリケーション・モジュールへのアクセス
サービス・セッションFacadeについて
Copyright © 1997, 2004, Oracle. All rights reserved.