基本情報技術者 2015年 秋期 午前(科目A) 問13
問題文
2層クライアントサーバシステムと比較した3層クライアントサーバシステムの特徴として、適切なものはどれか。
選択肢
ア:クライアント側で業務処理専用のミドルウェアを採用しているので、業務処理の追加・変更などがしやすい。
イ:クライアント側で業務処理を行い、サーバ側ではデータベース処理に特化できるので、ハードウェア構成の自由度も高く、拡張性に優れている。
ウ:クライアント側の端末には、管理が容易で入出力のGUI処理だけを扱うシンクライアントを使用することができる。(正解)
エ:クライアントとサーバ間でSQL文がやり取りされるので、データ伝送量をネットワークに合わせて最少化できる。
3層クライアントサーバシステムの特徴【午前2 解説】
要点まとめ
- 結論→ 3層ではプレゼンテーション層、アプリケーション層、データ層に分離され、クライアントは入出力中心でシンクライアントが利用可能です。
- 根拠→ アプリケーション層(ミドルウェア/アプリケーションサーバ)が業務ロジックを集中して処理し、クライアントはGUI表示と操作だけを担います。
- 差がつくポイント→ SQLのやり取りは通常アプリ層⇔DB間で行われ、クライアント⇔DB間で直接SQLがやり取りされる2層と混同しないことが重要です。
正解の理由
正解: ウ
3層構成ではプレゼンテーション層(クライアント)、アプリケーション層(ミドルウェア/アプリケーションサーバ)、データ層(DB)を明確に分離します。クライアントは主に入出力と表示を担当するため、管理が容易なシンクライアント(Thin Client)を採用でき、端末側で業務ロジックを持たせる必要がない点がウの記述と一致します。
3層構成ではプレゼンテーション層(クライアント)、アプリケーション層(ミドルウェア/アプリケーションサーバ)、データ層(DB)を明確に分離します。クライアントは主に入出力と表示を担当するため、管理が容易なシンクライアント(Thin Client)を採用でき、端末側で業務ロジックを持たせる必要がない点がウの記述と一致します。
よくある誤解
- 「3層=クライアントで業務ロジックを処理する」は誤り。むしろ業務ロジックはアプリ層に集約されるのが原則です。
- 「SQLがクライアントとサーバ間で直接やり取りされる」は2層の特徴で、3層では通常アプリ層がDBアクセスを行います。
- シンクライアントを採用すると必ず速くなる・コストが下がると考えるのは短絡的で、運用負荷やネットワーク設計が影響します。
解法ステップ
- 3層の各層(プレゼンテーション/アプリケーション/データ)の役割を確認する。
- 各選択肢がどの層で何を扱うと言っているかを整理する。
- 3層の定義と合致する選択肢を選ぶ(クライアントはGUI/入出力中心であること)。
- 残りの選択肢を2層の特徴や誤った理解と照らし合わせて排除する。
選択肢別の誤答解説
-
ア: クライアント側で業務処理専用のミドルウェアを採用しているため変更しやすい。
解説:ミドルウェアや業務ロジックは3層では通常アプリケーション層に配置され、クライアント側に置くのは2層的な構成であり誤りです。 -
イ: クライアント側で業務処理を行い、サーバ側はDB処理に特化し拡張性が高い。
解説:これは2層(クライアントが業務+表示、サーバがDB)に近い記述で、3層の特徴とは逆です。拡張性の議論も層分離がされている方が一般に優位です。 -
ウ: クライアントは管理が容易で入出力のGUI処理だけを扱うシンクライアントを使用できる。
解説:正解。プレゼンテーション層を薄くしてクライアントをシンプルにすることは3層の典型的な利点です。 -
エ: クライアントとサーバ間でSQL文がやり取りされるのでデータ伝送量を最少化できる。
解説:SQLをクライアント側から直接やり取りするのは2層的であり、3層ではアプリ層がDBアクセスを行います。かつSQLのやり取りが必ずしもデータ量最小化につながるとは限りません。
補足コラム
- 3層化のメリットは「保守性」「再利用性」「スケーラビリティ」「セキュリティの集中管理」などです。アプリ層で業務ロジックを一元化することで、部署横断の仕様変更や負荷分散(アプリサーバの増設)が容易になります。
- 一方でアプリ層を追加することでシステム全体の複雑性や運用管理の負担が増えること、ネットワーク遅延やトランザクション設計に注意が必要な点は押さえておいてください。
- 「シンクライアント」と「ファットクライアント(リッチクライアント)」は運用・セキュリティ・ユーザ体験のトレードオフです。教育用端末や集中管理を重視する現場ではシンクライアントが有効です。
FAQ
Q1: 2層と3層の一番の違いは何ですか?
A1: 2層はクライアントが業務ロジックと表示を持ちDBに直接接続する構成。3層は業務ロジックをアプリ層に集約し、クライアントは表示・操作に専念する点が最大の違いです。
A1: 2層はクライアントが業務ロジックと表示を持ちDBに直接接続する構成。3層は業務ロジックをアプリ層に集約し、クライアントは表示・操作に専念する点が最大の違いです。
Q2: 3層でSQLはどこで発行されますか?
A2: 通常はアプリケーション層がDBに対してSQLを発行します。クライアントが直接SQLを発行する形は2層です。
A2: 通常はアプリケーション層がDBに対してSQLを発行します。クライアントが直接SQLを発行する形は2層です。
Q3: すべてのシステムで3層が最適ですか?
A3: いいえ。要件や性能、開発・運用リソース次第です。小規模で単純なシステムは2層で十分なこともあります。
A3: いいえ。要件や性能、開発・運用リソース次第です。小規模で単純なシステムは2層で十分なこともあります。
関連キーワード: 2層, 3層, クライアントサーバ, シンクライアント, ミドルウェア, アプリケーションサーバ, プレゼンテーション層, ビジネスロジック, データベース, スケーラビリティ, セキュリティ, ネットワーク負荷

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

