対話型エンタープライズ・アプリケーションのJ2EEアーキテクチャ・デザイン・パターンは、Model-View-Controller(MVC)と呼ばれています。MVCパターンは、分散アプリケーション・ロジックを複雑なユーザー・インタフェースと結合するようなアプリケーションに適しています。MVCパターンに基づいてアプリケーションを開発する場合、目標はアプリケーション・ロジックとユーザー・インタフェースを分離、つまりパーティション化することです。
ほとんどの一般用語では、モデルは基礎となる論理的な表現、ビューは視覚的な表現であり、コントローラはユーザー入力の方法を指定するものです。データ・モデルが変化すると、依存するすべてのビューに通知されます。この状態と表現の分離により、エンタープライズ・アプリケーションの実装には次のような特性があります。
同じモデルに基づく複数のビューを作成できます。たとえば、同じデータを表形式とグラフ形式の両方で表示できます。データ・モデルが更新されると、モデルは両方のビューに通知し、それぞれが更新されるようにします。
モデルが指定するのは表示形式のみのため、基礎となるモデルに影響を与えずにビューを変更または作成できます。
ビューはコントローラを使用して、レスポンス・メカニズムを指定します。たとえば、コントローラは、キーボードの入力を受け取ったときに実行するアクションを決定します。これを実行するには、2つのレイヤー間で情報を受け渡す追加オブジェクトが必要ですが、実行する価値があります。各層でアプリケーション・レイヤーを適切に分類することで、開発チームはロールと職責を簡単に分割できます。
次の表に示すように、JDeveloperでは、設計時にモデル、ビューおよびコントローラ間の結合が確立されるため、統合作業が最小限に抑えられます。
レイヤー |
ブラウザベースのWebアプリケーション |
Javaクライアント・アプリケーション |
---|---|---|
モデル・レイヤー |
シン・データ・バインディング・レイヤーは、WebアプリケーションおよびJavaクライアントの場合と同様に、Oracle ADFモデル・レイヤーと呼ばれ、ビジネス・オブジェクトへのアクセスを提供します。Webアプリケーションでは、モデル・レイヤーのインスタンスはJSF管理BeanまたはStrutsアクション・クラスによって作成されます。 |
シン・データ・バインディング・レイヤーは、JavaクライアントおよびWebアプリケーションの場合と同様に、Oracle ADFモデル・レイヤーと呼ばれ、ビジネス・オブジェクトへのアクセスを提供します。Javaクライアント・アプリケーションでは、モデル・レイヤーのインスタンスはパネルの初期化時にJavaコードで作成されます。 |
ビュー・レイヤー |
HTML、JavaServer Faces(またはStruts)およびJSTLは、JSP Webアプリケーションのビュー・レイヤーを構成します。JDeveloperは、Oracle ADF Facesと呼ばれる独自のFacesコンポーネントも提供しています。JSFとStrutsの両方が、モデル・レイヤーと統合する設計時のすべての機能をサポートしています。 |
標準のSwing UIコンポーネントは、Javaクライアント・グラフィカル・ユーザー・インタフェースのビュー・レイヤーを構成します。JDeveloperは、SwingコンポーネントおよびADF Swingコントロールと呼ばれる(チャット・コントロールのような)特殊な複合ウィジェット用に、設計時のモデル・レイヤーとの統合を提供します。 |
コントローラ・レイヤー |
ビュー・レイヤーからモデル・レイヤー内の適切なアクションに受信リクエストをディスパッチする、JSFアクション・サーブレット。Oracle ADF Facesテクノロジは、JSFコントローラとも完全に統合されます。 |
標準のSwing UIコンポーネントは、Javaクライアントのコントローラ・レイヤーのロールを実行します。また、JDeveloperはSwingコンポーネントとの設計時の統合も提供します。 |
MVCデザイン・パターンとOracle ADFについて
モデル2とモデル1のアーキテクチャについて
Copyright © 1997, 2006, Oracle. All rights reserved.