FE EXAM

アプリケーションサーバ(動的処理を担う中間層)

業務ロジックなどの動的処理を実行するサーバソフトウェア。

DIAGRAM
Webサーバ
アプリサーバ
DB
3層クライアントサーバ構成Webサーバ要求を受け付け静的コンテンツを配信プレゼンテーション層側アプリサーバ動的処理を実行業務ロジックDB連携中間(アプリケーション)層DBデータ層転送問い合わせ
解説

📌
アプリケーションサーバとは

WebアプリDB

アプリケーションサーバとは、業務ロジックやデータベースとの連携といった「動的処理」を実行するサーバソフトウェアのことです。動的処理とは、利用者や状況に応じて内容が変わる処理のことです。

身近な例で考えると、レストランの厨房(キッチン)に似ています。ホール係(Webサーバ)が受けた注文を厨房(アプリサーバ)が受け取り、注文ごとに料理を調理(プログラムを実行)して提供します。決まったメニュー写真を渡すだけのホール係とは役割がはっきり分かれています。

上の図解のように、アプリケーションサーバはWebサーバとデータベースの間に立つ中間層です。たとえばショッピングサイトで「ログイン中の自分のカートを表示する」といった、人によって結果が変わる処理を担当します。

📌
Webサーバとの違い

Webサーバとアプリケーションサーバは協力して動きますが、得意な仕事がはっきり分かれています。Webサーバは静的コンテンツの配信が中心アプリケーションサーバはプログラムを実行して動的にコンテンツを生成します。

項目Webサーバアプリケーションサーバ
主な役割静的コンテンツの配信動的処理(業務ロジック)の実行
返すものHTML・CSS・画像などプログラムが生成した結果
DB連携基本的に行わないDBと連携してデータを処理
3層構成の位置プレゼンテーション層側中間(アプリケーション)層
代表例Apache・Nginx・IISTomcat・WildFly・ASP.NET

覚え方のコツは「静的=そのまま渡す、動的=作って渡す」です。中身が決まっているファイルをそのまま返すのがWebサーバ、利用者ごとに内容を作り出すのがアプリケーションサーバ、と整理すると違いがすっきりします。

📌
代表的な製品

TomcatWildFlyASP.NET

代表的なアプリケーションサーバ製品は次のとおりです。
Apache Tomcat:Javaのプログラムを動かす軽量なアプリケーションサーバ
JBoss/WildFly:多機能なJava EE対応のアプリケーションサーバ
Microsoft ASP.NET:マイクロソフト製の動的Webアプリ実行基盤
各種アプリ実行基盤:言語やフレームワークに応じたさまざまな実行環境

これらは多くの場合、Webサーバと組み合わせて使われます。Webサーバが入口でリクエストを受け、動的な処理だけをアプリケーションサーバに渡すという連携で、1つのWebサービスが成り立っています。

練習問題

🎯
基本情報技術者 練習問題

Q1.アプリケーションサーバの説明として最も適切なものはどれか。
A.業務ロジックなどの動的処理を実行するサーバソフトウェア
B.HTML・画像などの静的コンテンツを配信するサーバソフトウェア
C.ハードウェア資源を直接管理する基本ソフトウェア
D.データベースそのものを格納する記憶装置
Q2.Webサーバとアプリケーションサーバの違いとして正しいものはどれか。
A.Webサーバはプログラムを実行し、アプリケーションサーバは静的ファイルを返す
B.Webサーバは静的コンテンツ配信が中心、アプリケーションサーバはプログラムを実行して動的にコンテンツを生成する
C.両者はまったく同じ役割を持つ
D.アプリケーションサーバはハードウェアを直接制御する
Q3.代表的なアプリケーションサーバ製品として正しいものはどれか。
A.Apache HTTP Server・Nginx
B.MySQL・PostgreSQL
C.Apache Tomcat・JBoss/WildFly
D.Windows・Linux

関連コンテンツ