ここではJ2EEアプリケーションの標準的なモデルについて説明します。J2EEプラットフォームでシステムを構築する場合は、次のようなモデルを意識して設計します。
J2EEのモデル
J2EEでは、以下のようなリファレンスモデルを推奨しています。
クライアント層
システムに接続するユーザインタフェースを提供します。Webブラウザを基本としていますが、GUIのJavaアプリケーションもクライアントとして想定されています。
プレゼンテーション層
プレゼンテーションのロジックをカプセル化したもので、システムを利用するクライアントからのリクエストを受け付け、ビジネスロジック層のサービスへの橋渡しなどを行ってレスポンスをクライアントに返送するサービスを提供します。この層では主として、ServletやJSPなどのコンポーネントが使用されます。
ビジネスロジック層
プレゼンテーション層などからの要求に応じて業務処理やデータ提供などのビジネスサービスを供給します。一般的にこの層で業務に関する処理が行われますが、既存システムなどの資産がある場合はEIS層のリソースを利用する場合もあります。この層では主として、EJBコンポーネントを使用してビジネスロジックが実装されます。
EIS層にあるサービス(処理やデータ)を利用する場合には、EIS層にある外部リソースや他システムなどと連携するための通信機能を提供するためにインテグレーション層を想定する場合があります。この層では、JDBCやconnectorなどのコンポーネントが使用されます。
EIS(Enterprise Information System)層
DB(データベース)、メインフレーム上で動作するレガシーシステムやパッケージソフトなどのリソースを提供します。
※J2EEシステムを構築する場合、システム設計者はInterstageが提供するJ2EEのコンポーネントを組み合わせて自由にシステムを構築する事ができます。以降でJ2EEのコンポーネントを用いた代表的なモデルを紹介します。
4層モデル
上図は4層モデルを示しています。これは大/中規模システムを構築するユーザ向けのモデルです。
このモデルでは、各層における役割分担が明確になります。通常クライアント層はWebのブラウザになります。プレゼンテーション層では、クライアントに対するビューの提供とクライアントからの要求をビジネスロジック層に引き渡す役割を担います。ビジネスロジック層では、プレゼンテーション層からの要求に応じてEIS層にあるリソースとのやり取りなどの固有ビジネスロジックを実行し、その結果をプレゼンテーション層に戻します。EIS層にはユーザの資産であるDBや既存システムが存在し、ビジネスロジック層からの利用を考慮して既存資産との接続を可能にするためのドライバプログラムなどの部品が提供されます。
4層モデルでは、各層で個別の機能に特化した開発が行いやすく、開発効率/保守性が高くなり再利用性の高い部品開発も容易になります。
3層モデル
上図は3層モデルで、小/中規模システムを構築するユーザ向けのモデルです。
このモデルは、4層モデルからビジネスロジック層を除いたような構成になります。このため中間層であるプレゼンテーション層でビジネスロジックを実装する必要があり、DBへのアクセスなど比較的単純な要求を処理するシステムに適用される事が多くなります。クライアント層は通常Webのブラウザになります。
上図は3層モデルで、小/中規模システムを構築するユーザ向けのモデルです。
このモデルは、4層モデルからプレゼンテーション層を除いたような構成になります。クライアント層のアプリケーションは通常Javaアプリケーションとなり、必要に応じて利用者へのビューを実装します。クライアント層のJavaアプリケーションでは、複雑なビューを提供する事がきますが各クライアント端末に対してJavaアプリケーション配布が必要となります。
2層モデル
上図は2層モデルで、小規模システムを構築するユーザ向けのモデルです。
このモデルは、3層/4層モデルにおけるプレゼンテーション層やビジネスロジック層の機能をクライアント層で提供する必要があります。このため、2層モデルでは、単一の機能のみを処理するようなごく小規模なシステムで使用されます。