メインコンテンツへ
システム構成要素

Webシステムの3層アーキテクチャに関する記述として、適切なものはどれか。

ア.3層アーキテクチャとは、プレゼンテーション層・ビジネスロジック層・データ層の3つの層に機能を分離したシステム構成である。正解
イ.3層アーキテクチャでは、ビジネスロジック層はデータ層に直接接続できず、必ずプレゼンテーション層を経由してデータを取得する。
ウ.プレゼンテーション層にはデータベースサーバが置かれ、ビジネスロジック層にWebサーバが置かれる。
エ.3層アーキテクチャを採用するとメンテナンス性が低下するが、実行速度が向上する利点がある。

解説

3層アーキテクチャは「フロント係(見た目)・処理係(ロジック)・倉庫係(データ)」を分業する構造。役割が分離されているから、倉庫だけPostgreSQLからMySQLに変えても他は触らなくて済みます。

なぜ ア が正解か

3層アーキテクチャはプレゼンテーション層(UIを担当:Webブラウザ・Webサーバ)、ビジネスロジック層(アプリケーションサーバ:業務ルールの処理)、データ層(DBサーバ:データの永続化)の3層に分離します。各層が疎結合になるため、変更の影響範囲が限定され保守性・拡張性が向上します。

なぜ イ は間違いか

ビジネスロジック層(アプリケーションサーバ)はデータ層(DBサーバ)に直接接続します。プレゼンテーション層を経由する必要はありません。むしろプレゼンテーション層はデータ層に直接接続しないことが3層アーキテクチャの分離の意図です。

なぜ ウ は間違いか

プレゼンテーション層にはWebサーバ(Apache・Nginx等)が置かれ、ビジネスロジック層にはアプリケーションサーバが置かれ、データ層にデータベースサーバが置かれます。WebサーバとDBサーバの位置が逆になっています。

なぜ エ は間違いか

3層アーキテクチャを採用するとメンテナンス性が「向上」します。各層を独立して変更・テストできるためです。ただし層間の通信オーバーヘッドが発生するため、単純なシステムでは速度が低下することもあります。「メンテナンス性低下」は正反対の説明です。

出典: AI生成問題(学習用)