10章レイヤードアーキテクチャ
レイヤードアーキテクチャ(n層アーキテクチャ)は、最も一般的なアーキテクチャスタイルの1つだ。そのシンプルさや親しみやすさ、コストの低さから、かねてより多くのアプリケーションにとってのデファクトスタンダードとなっている。
レイヤードアーキテクチャは、暗黙のアーキテクチャ†1や偶有的アーキテクチャといったアンチパターンに陥りやすいアーキテクチャスタイルでもある。開発者やアーキテクトが「どのアーキテクチャスタイルを使用しているかわからないまま、ただコードを書き始める」場合に、このスタイルを実装する可能性が高いからだ。
10.1 トポロジー
レイヤードアーキテクチャでは、コンポーネントは水平方向の論理的なレイヤーとして編成される。図10-1に示すように、各レイヤーはアプリケーション内で特定の役割(プレゼンテーションロジックやビジネスロジックなど)を果たす。存在しなくてはならないレイヤーの数や種類については特に制限はないが、ほとんどのレイヤードアーキテクチャは、プレゼンテーション層、ビジネス層、永続化層、データベース層の4つの標準レイヤーで構成されている。特に、永続化ロジック(SQLやHSQLなど)がビジネス層のコンポーネント内に組み込まれている場合は、永続化層はビジネス層に統合されることもある。小規模なアプリケーションではレイヤーは3つのこともあるが、大規模で複雑なビジネスアプリケーションではレイヤーは5つ以上になることもある。
図10-1 レイヤードアーキテクチャにおける標準的な論理レイヤー
図10-2は、物理的なレイヤリング(デプロイメント)の観点からのトポロジーのバリエーションを示している。1つ目のバリエーションでは、プレゼンテーション層、ビジネス層、永続化層が単一のデプロイメントユニットに統合されている。この場合、データベース層は通常、独立した外部物理データベース(またはファイルシステム)として表現される。2つ目のバリエーションでは、プレゼンテーション層が独自のデプロイメントユニットに物理的に分離され、ビジネス層と永続化層が第二のデプロイメントユニットとして統合されている。この場合も、データベース層は外部データベース(ファイルシステム)として物理的に分離される。3つ目のバリエーションでは、データベース層を含む4つの標準的なレイヤーすべてが1つのデプロイメントユニットに統合されている。このバリエーションは、内部的に組み込まれたデータベースやインメモリデータベースを持つモバイルアプリケーションなど、小規模なアプリケーションにうってつけだ。多くのオンプレミス製品は、この3つ目のバリエーションで構築されて、顧客へと提供されている。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access