アプリケーション設計パターンの考察(2)
Java EEのトラディショナルなソフトウェア構成(1)
Java EEアプリケーションのトラディショナルなソフトウェア構成
… 3ティア構成(3階層構成)
プレゼンテーション層…
JSF(またはその他のWebフレームワーク)
ビジネス層…
EJB
データアクセス層…
JPAJava EEサーバ(コンテナ)
プレゼンテー ション層
ビジネス層 データ
アクセス層 クライアント
データベース
依存関係
EJB JPA
JSF
Java EEのトラディショナルなソフトウェア構成(2)
3ティア構成のメリット
大規模なアプリケーション開発において、分業がしやすくなる。
各ティアが疎結合となっているため、相互に影響しにくい。 入出力項目の名前に変更があっても、ビジネス層に影響が及ばない。
データベースのカラムに変更があっても、ビジネス層に影響が及ばな い。
再利用性・拡張性が高い。 複数のプレゼンテーション技術に同時に対応できる。
※PCとモバイルなど
新しいプレゼンテーション技術が登場した場合、容易に対応できる。
Java EEのトラディショナルなソフトウェア構成(3)
3ティア構成の課題
構成が複雑になりやすい。
各ティアを疎結合にするためには、ティアとティアをつなぎ合わせるため の“グルーコード”が必要。※例えば受け渡し用のオブジェクト(DTO)を作成し、値をコピーする必要 がある。
⇒
コード量が非常に多くなる。 3ティア構成に対する問題提起
必ずしも分業が必要なほど、大規模なアプリケーションばかりではない。
アプリケーションのライフサイクルの中で、本当に「プレゼンテーション 層を入れ替えること」があるのか。Java EE 6におけるソフトウェア構成
ティア分割を意識しないソフトウェア構成
Java EE 6では、 CDIによって、各コンポーネントモデル(JSF、EJB、JPA)がシームレ スに連携できるようになった
パッケージングが見直され、EJBクラスを直接WARファイルにパッケー ジング可能になった
⇒
受け渡し用のオブジェクト(DTO)は不要になり、ティア分割を意識しない ソフトウェア構成が実現可能に(Ruby on Railsのイメージ)。Java EEサーバ(コンテナ)
クライアント
データベース JSF
JPA EJB
まとめ~Java EE 6におけるソフトウェア構成
Java EE 6時代のソフトウェア構成
“ティア分割を意識しない構成“は、3ティア構成に比べて以下のような メリットがある。 コード量が少なくなる。
構成がシンプルになる
☆ Java EE 6では、3ティア構成と“ティア分割を意識しない構成”を、
アプリケーションの特性や規模に応じて選択可能となる。
ドキュメント内
スライド 1
(ページ 37-43)