情報処理試験を勉強していると、「3層クライアントサーバシステムって、結局どこで何をしてるの?」と混乱しがちです。この記事では、3つの層の役割と2層との違いを図解で整理します。
対象試験と出題頻度
3層クライアントサーバシステムは、基本情報技術者・応用情報技術者で出題されるテーマです。
各層の役割を正しく区別できるか、2層構成との違いを理解しているかが問われます。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
3層クライアントサーバシステム(3-Tier Client/Server System)とは、一言で言うと
「システムの機能を、プレゼンテーション層・ファンクション層・データ層の3つに論理的に分離した構成」
のことです。
イメージとしては、「レストランの接客・調理・食材管理の分業体制」です。
レストランでは、ホールスタッフがお客様の注文を聞き(プレゼンテーション層)、シェフが料理を作り(ファンクション層)、倉庫担当が食材を出し入れします(データ層)。
一人で全部やるより、役割を分けた方が効率的で、シェフを増やしたいときも他の担当に影響しません。3層クライアントサーバシステムも同じ発想でシステムの各機能を分離しています。
📊 3層クライアントサーバシステムの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | 3-Tier Client/Server System |
| 分類 | 垂直分散システム(クライアントサーバモデル) |
| 3つの層 | プレゼンテーション層、ファンクション層、データ層 |
| 分離の種類 | 論理的な分離(物理的な分離ではない) |
解説
従来のクライアントサーバシステムは、クライアントが画面表示と業務処理を担当し、サーバがデータベース処理を担当する「2層構成」でした。
この構成にはクライアント側にビジネスロジック(業務処理)が集中するため、業務内容を変更するたびに全クライアント端末のソフトウェアを更新しなければならないという問題がありました。
この課題を解決するために、業務処理を独立した層として切り出したのが3層構成です。
各層の役割
3つの層はそれぞれ明確な役割を持ちます。
ここだけは確実に押さえてください。
| 層 | 別名 | 担当する処理 | 対応するサーバ |
|---|---|---|---|
| プレゼンテーション層 | UI層 | ユーザーの入力受付と結果の画面表示 | Webサーバ/クライアント端末 |
| ファンクション層 | アプリケーション層 ビジネスロジック層 |
データの加工・業務処理条件の組立て・SQL文の構築 | APサーバ(アプリケーションサーバ) |
| データ層 | データベースアクセス層 | データベースへのアクセス・データの保管と返却 | DBサーバ(データベースサーバ) |
図解:3層構成の処理の流れ
ユーザーが検索ボタンを押してから結果が返るまでの流れを図にすると、次のようになります。
3層クライアントサーバシステムの処理の流れ
プレゼンテーション層
入力受付・結果表示
(Webサーバ/クライアント)
ファンクション層
データ加工・SQL構築
(APサーバ)
データ層
DB処理・データ保管
(DBサーバ)
▲ プレゼンテーション層からDBへ直接アクセスすることはない。必ずファンクション層を経由する
2層構成との比較
3層構成が生まれた背景を理解するには、2層構成との違いを押さえるのが近道です。
| 比較項目 | 2層構成 | 3層構成 |
|---|---|---|
| 業務処理の担当 | クライアント側 | APサーバ(サーバ側) |
| 業務変更時の影響 | 全クライアントにソフト配布が必要 | APサーバのみ変更すればよい |
| クライアント端末 | 高性能な端末が必要(ファットクライアント) | 画面表示だけでよい(シンクライアント可) |
| 拡張性 | クライアント数増加でボトルネック化しやすい | 各層を独立にスケールアウトできる |
| クライアント⇔DB間 | SQL文が直接やり取りされる | SQL文はAPサーバ⇔DB間のみ |
2層 vs 3層 構成図の比較
■ 2層構成
入出力+業務処理
データベース処理
■ 3層構成
入出力のみ
業務処理
DB処理
▲ 3層では業務処理がAPサーバに移り、クライアントは入出力に専念する
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 3層C/Sの核心を3行で
・プレゼンテーション層=入出力、ファンクション層=業務処理・データ加工、データ層=DB処理
・分離は「論理的」であり、物理的な3台のサーバを指す言葉ではない
・2層と比べ、業務変更がAPサーバだけで済み、保守性・拡張性が向上する
試験ではこう出る!
3層クライアントサーバシステムは、FE・APの午前問題で繰り返し出題されています。出題パターンは大きく3つに分かれます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| FE R4免除 問16 |
各層の役割として適切なものを選ぶ問題。 | ・「ファンクション層はデータを加工してプレゼンテーション層に返信する」が正解 ・データベースアクセス層がデータを加工する、という記述がひっかけ |
| AP H26春 午前 問12 |
ファンクション層で処理される2つの機能の組合せを問う問題。 | ・正解は「データ処理条件の組立て」と「データの加工」 ・「検索条件の入力」はプレゼンテーション層、「データへのアクセス」はデータ層 |
| AP H26秋 午前 問11 |
3層C/Sの説明として適切なものを選ぶ問題。 | ・正解は「プレゼンテーション、ファンクション、データベースの3階層に論理的に分ける」 ・「物理的に分ける」「Webサーバ、FW、クライアント」はひっかけ |
| FE H27秋 午前 問13 |
2層と比較した3層の特徴として適切なものを選ぶ問題。 | ・正解は「シンクライアントを使用できる」 ・「クライアント側で業務処理を行う」は2層の特徴なのでひっかけ |
📝 IPA試験での出題パターン
パターン1:「各層の役割を選べ」
ファンクション層の役割(データの加工・SQL文の構築)を正しく選ばせる形式。「データベースアクセス層がデータを加工する」「プレゼンテーション層がSQL文で問い合わせる」という記述がひっかけ。
パターン2:「3層の定義を選べ」
4つの説明文から正しい3層の定義を選ぶ形式。「論理的に分離」がキーワード。「物理的に分離」「Webサーバ・ファイアウォール・クライアント」は不正解。
パターン3:「2層との違いを答えよ」
2層と比較した3層のメリットを問う形式。「業務処理の変更がサーバ側だけで完結する」「シンクライアントが使える」が正解になる。
試験ではここまででOKです。MVCアーキテクチャやWebの3層構造(Webサーバ・APサーバ・DBサーバ)との厳密な違いまでは問われないので、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. 3層クライアントサーバシステムにおいて、ファンクション層の役割として最も適切なものはどれでしょうか?
- A. ユーザーが入力した検索条件を受け付け、処理結果をGUIで表示する。
- B. プレゼンテーション層から受け取ったデータをもとに業務処理を行い、加工した結果を返す。
- C. SQL文を解釈してデータベースへのアクセスを実行し、結果を保管する。
正解と解説を見る
正解:B
解説:
ファンクション層(アプリケーション層)は、クライアントからの要求をもとにデータの加工や業務処理条件の組立てを行い、処理結果をプレゼンテーション層に返す層です。
選択肢Aはプレゼンテーション層の役割です。プレゼンテーション層はユーザーの入出力(画面表示と入力受付)を担当する層であり、データの加工は行いません。選択肢CはSQL文の解釈やデータベースへの直接アクセスを行うデータ層(データベースアクセス層)の役割です。SQL文を「構築」するのはファンクション層ですが、「解釈・実行」するのはデータ層である点に注意してください。
よくある質問(FAQ)
Q. 3層クライアントサーバシステムと「Web3層構造」は同じものですか?
厳密には異なります。3層クライアントサーバシステムは「プレゼンテーション層・ファンクション層・データ層」という論理的な機能分離のモデルです。一方、Web3層構造は「Webサーバ・APサーバ・DBサーバ」という物理的なサーバ配置を指すことが多く、3層C/Sモデルを具体的に実装した形態の一つと位置づけられます。IPA試験では論理的な機能分離を問う問題がほとんどなので、「プレゼンテーション・ファンクション・データ」の3層名で覚えておけば対応できます。
Q. ファンクション層の別名が多くて混乱します。全部覚える必要はありますか?
ファンクション層は「アプリケーション層」「ビジネスロジック層」「トランザクション層」など複数の呼び方がありますが、すべてを暗記する必要はありません。過去問では「ファンクション層」と「アプリケーション層」の2つが圧倒的に多く登場します。この2つが同じ層を指すことさえ把握しておけば、選択肢で迷うことはありません。
Q. 実務で3層構成を採用するメリットは何ですか?
実務では、業務ロジックの変更がAPサーバだけで完結するため、リリースのたびにクライアント端末へソフトウェアを配布し直す手間がなくなります。また、アクセス数が増えたときにAPサーバだけを増設すればよいため、ロードバランシングとの組み合わせでスケーラビリティを確保しやすいのも大きな利点です。現在のWebアプリケーションの多くは、この3層分離の考え方をベースに設計されています。
Q. 「プレゼンテーション層からDBへ直接アクセスしない」という点は試験で狙われますか?
狙われます。FE R4免除 問16の選択肢に「プレゼンテーション層がSQL文でデータベースアクセス層に問い合わせる」という記述がありましたが、これは不正解でした。SQL文を組み立ててデータベースに問い合わせるのはファンクション層の仕事であり、プレゼンテーション層がDBと直接やり取りするのは2層構成の特徴です。この点はひっかけの定番なので、押さえておいてください。