2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Web三層構造

Posted at

Web三層構造とは

クライアントサーバシステムを3階層に分割して構築するシステム形態のこと

  • プレゼンテーション層
  • アプリケーション層
  • データ層

※ クライアントサーバシステム: クライアント(ユーザー側)とサーバ(サービス提供側)がネットワークを介して相互に通信するアーキテクチャ

各層ごとの役割

プレゼンテーション層

ユーザーインターフェース(見た目)を担う。ブラウザから受け取った「閲覧要求」をもとに、ページ情報を返すという役割を持っている

アプリケーション層

ビジネスロジックを処理する部分。プレゼンテーション層(画面)に入力された値をもとに、何かしらの処理を行う役割を担う

※ ビジネスロジック:アプリケーションが特定のビジネスルールや要件に基づいてデータを処理するためのルールや手順
※ ビジネスルール:特定のビジネスプロセスや業務において守るべき規則や条件

データ層

データ管理を行う部分。ページ情報をはじめ、サイトの構造や画像、その他あらゆる情報が詰め込まれている層。データベースにアクセスし、データの取得や保存を担当する

開発言語の代表例

プレゼンテーション層

HTML、CSS 、JavaScript

アプリケーション層

Python、Java、Perl、PHP、Ruby

データ層

  • SQL系
    • SQL
    • PL/SQL
  • NoSQL系
    • MongoDB Query Language(MQL)
    • CQL(Cassandra Query Language)
    • Gremlin(グラフ型データベース用)

サーバ構成

サーバ サーバの役割
Webサーバ ユーザーと直接やり取りを行うサーバ。ユーザーからのリクエストを受け取り、ウェブページのデータ(HTMLやCSS、画像など)を送り返す役割を持つ プレゼンテーション層
Webアプリケーションサーバ Webサーバからリクエストを処理し、必要なデータや処理結果を返すサーバ アプリケーション層
データベースサーバ Webアプリケーションサーバからのリクエストに応じて、データの管理や処理を行うサーバ データ層

サーバの代表例

Webサーバ

  • Apache HTTP Server
  • nginx
  • Microsoft Internet Information Services (IIS)

Webアプリケーションサーバ

  • Apache Tomcat
  • JBoss
  • uWSGI
  • Gunicorn

データベースサーバ

  • Oracle
  • SQL Server
  • MySQL
  • PostgreSQL

リクエストの流れ

  1. クライアント(Webブラウザ)がWebサーバにリクエストを送信
  2. Webサーバがリクエストを受け取り、適切な処理をWebアプリケーションサーバに転送
  3. Webアプリケーションサーバがビジネスロジックを処理し、必要ならデータベースサーバーにデータを要求
  4. データベースサーバがWebアプリケーションサーバーにデータを返す
  5. Webアプリケーションサーバが取得したデータをもとに処理し、Webサーバーにレスポンスを送信
  6. Webサーバはクライアント(Webブラウザ)にレスポンス(ページ情報やデータ)を送信

メリット&デメリット

メリット

  • 分離性
    • 各層が独立しているため、変更が容易
  • 再利用性
    • ビジネスロジックやデータアクセスを他のアプリケーションでも再利用可能
  • スケーラビリティ
    • 各層を個別にスケールできるため、パフォーマンス向上が可能
  • 保守性
    • 問題の特定がしやすく、修正が迅速に行える

デメリット

  • サーバを分離させることからハードウェアを複数用意しなければならず、その分コストがかかってしまう

まとめ

Web三層構造はクライアントサーバシステムをプレゼンテーション層、アプリケーション層、データ層の3つに分割して構築するシステム形態のことです。
この構造により、変更が容易になり、再利用性を高めるなどのメリットが大きく、データ変更にも柔軟に対応が可能になります。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?