Web3層モデルとは? アプリケーション層の役割

Webシステムでよく利用される3層モデルに、「Web3層モデル」というものがあります。3層というのは、プレゼンテーション層、アプリケーション層、データ層を指します。

アプリケーション層の存在意義が少し曖昧だったので調べてみました。

目次

Web3層モデルとは?

プレゼンテーション層

プレゼンテーション層は、ユーザーインタフェースを定義する層で、要はユーザーへのシステムの見え方を決定する部分です。

例えば、ユーザーに表示する画面の処理や、ユーザーが入力した内容のチェックなどを行います。

サーバーとしては、Webサーバーが担当することが多いです。

Webサーバーのソフトウェア例
  • Apache HTTP Server
  • Nginx
  • lighttpd
  • H2O

アプリケーション層

アプリケーション層は、プレゼンテーション層とデータ層の中間に位置する層で、システムの中核となる処理、いわゆるビジネスロジックを決定する部分です。

例えば、プログラムの実行環境やデータベースとの接続機能、複数処理を連結するトランザクションの管理機能、業務処理の流れを制御するビジネスロジックなどを担います。

サーバーとしては、アプリケーションサーバーが担当します。

アプリケーションサーバーのソフトウェア例
  • Tomcat/Jetty/GlassFish(Java)
  • Puma/Unicorn(Ruby)

データ層

データ層は、データを一元管理する層です。

サーバーとしては、DBサーバーが担当します。

DBサーバーのソフトウェア例
  • MySQL
  • PostgreSQL
  • Oracle
  • Windows SQL Server

アプリケーション層の存在意義/意味

歴史を振り返ると、かつてはアプリケーションが存在しないモデルが種類でした。つまり、クライアントとサーバーだけからなる2層モデルが主流でした。2層モデルでは、プレゼンテーション層とアプリケーション層がクライアント側に位置し、データ層だけがサーバー側にありました。クライアント側に大きい負担がかかっていたわけです。

ただしこのモデルには以下の欠点がありました。

  • ビジネスロジックに変更が生じた場合に、すべてのクライアントのプログラムを更新するのが煩雑
  • 性能の貧弱なクライアントでは複雑な処理が実現できない
  • サーバーとクライアントの通信量が多く、回線がボトルネック

こうした理由で、ビジネスロジックとユーザーインタフェースを分離するというのが3層モデルの着想だったみたいです。

参考図書

よかったらシェアしてね!

この記事を書いた人

情報工学専攻の修士課程を卒業後、某企業の情報系技術職として勤務。新しいことが好きなので、技術のキャッチアップをして発信しています。

■Skills
C / C++ / JavaScript / Python / Ruby / Git / HTML&CSS

■Hobby
旅行 / カメラ / 動画制作

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次
閉じる