3層クライアントサーバー方式(3層アーキテクチャ)とは、コンピュータシステムを機能的に「3つの層(階層)」に分割して、ネットワーク上で連携させる仕組みのことです。現代のWebアプリケーションや大規模な業務システムのほとんどが、この方式をベースに作られています。
従来の「2層(クライアントとサーバー)」の課題を解決するために生まれました。具体例を交えて分かりやすく解説します。
1. 3層構造の具体的な内訳
システムを以下の3つの役割に完全に切り離します。
| 層(ティア)の名前 | 主な役割 | 具体例・イメージ |
① プレゼンテーション層 (UI層 / 画面層) | ユーザーからの入力を受け付け、結果を画面に表示する。 | Webブラウザ(Chrome, Safariなど)、スマホアプリの画面 |
② アプリケーション層 (ファンクション層 / 業務ロジック層) | 「計算する」「データを加工する」「条件分岐する」といった実際の業務処理を行う。 | Webサーバー / APサーバー(Java, PHP, Pythonなどのプログラムが動く) |
③ データ層 (データベース層) | データの保存、管理、検索、更新を行う。 | データベース管理システム(MySQL, Oracle, PostgreSQLなど) |
2. 具体例でわかるデータの流れ(ネットショッピングの場合)
あなたがネット通販サイトで「商品を注文する」ボタンを押したとき、3層の間で以下のようなバトンタッチが行われます。
- プレゼンテーション層(ブラウザ)
- あなたがポチッとボタンを押した情報をキャッチし、「この商品IDを注文してね」というリクエストをアプリケーション層に投げます。
- アプリケーション層(APサーバー)
- 「在庫はあるか?」「割引クーポンは適用できるか?」といった計算やルールの処理(ビジネスロジック)を行います。処理が終わると、データ層に「在庫を1つ減らして、注文データを保存して」と命令します。
- データ層(データベース)
- 命令に従って実際のデータベースを書き換え、「保存完了しました」という結果をアプリケーション層に返します。
- 結果が戻る
- アプリケーション層がその結果を整えてプレゼンテーション層に返し、ブラウザに「ご注文ありがとうございます」の画面が表示されます。
3. なぜ「3層」にするのか?(導入する圧倒的なメリット)
もしこれが「2層(アプリとDBだけ)」だったり、すべてが一体化した古いシステムだと、以下のような問題が起きます。3層に分けることで、次のメリットが生まれます。
- 保守性・メンテナンス性が劇的に高まる
- 消費税率が変わったり、計算のルール(業務ロジック)が変わったりしたとき、直すのは「アプリケーション層」だけです。画面やデータベースをいじる必要がありません。
- クライアント側の負担が軽い(専用ソフトが不要)
- プレゼンテーション層がブラウザ(Web)であれば、ユーザーはパソコンやスマホに専用の巨大なアプリをインストールする必要がありません。URLにアクセスするだけで使えます。
- 負荷分散とセキュリティの向上
- アクセスが殺到したときに、アプリケーション層のサーバーを何台にも増やして(スケールアウト)負荷を散らすことができます。また、データベースを一番奥のセキュリティが高いエリアに隠すことができるため、安全性も高まります。
このように、3層クライアントサーバー方式は、「画面」「処理」「データ保存」の担当をきっちり分業することで、大人数が同時に使っても壊れにくく、後から改造しやすいシステムを作るための黄金パターンとなっています。
(お気づきの点や、さらに深掘りしたい技術用語などがあればお知らせください)
0 件のコメント:
コメントを投稿