業務ロジックなどの動的処理を実行するサーバソフトウェア。
アプリケーションサーバとは、業務ロジックやデータベースとの連携といった「動的処理」を実行するサーバソフトウェアのことです。動的処理とは、利用者や状況に応じて内容が変わる処理のことです。
身近な例で考えると、レストランの厨房(キッチン)に似ています。ホール係(Webサーバ)が受けた注文を厨房(アプリサーバ)が受け取り、注文ごとに料理を調理(プログラムを実行)して提供します。決まったメニュー写真を渡すだけのホール係とは役割がはっきり分かれています。
上の図解のように、アプリケーションサーバはWebサーバとデータベースの間に立つ中間層です。たとえばショッピングサイトで「ログイン中の自分のカートを表示する」といった、人によって結果が変わる処理を担当します。
Webサーバとアプリケーションサーバは協力して動きますが、得意な仕事がはっきり分かれています。Webサーバは静的コンテンツの配信が中心、アプリケーションサーバはプログラムを実行して動的にコンテンツを生成します。
| 項目 | Webサーバ | アプリケーションサーバ |
|---|---|---|
| 主な役割 | 静的コンテンツの配信 | 動的処理(業務ロジック)の実行 |
| 返すもの | HTML・CSS・画像など | プログラムが生成した結果 |
| DB連携 | 基本的に行わない | DBと連携してデータを処理 |
| 3層構成の位置 | プレゼンテーション層側 | 中間(アプリケーション)層 |
| 代表例 | Apache・Nginx・IIS | Tomcat・WildFly・ASP.NET |
覚え方のコツは「静的=そのまま渡す、動的=作って渡す」です。中身が決まっているファイルをそのまま返すのがWebサーバ、利用者ごとに内容を作り出すのがアプリケーションサーバ、と整理すると違いがすっきりします。
代表的なアプリケーションサーバ製品は次のとおりです。
・Apache Tomcat:Javaのプログラムを動かす軽量なアプリケーションサーバ
・JBoss/WildFly:多機能なJava EE対応のアプリケーションサーバ
・Microsoft ASP.NET:マイクロソフト製の動的Webアプリ実行基盤
・各種アプリ実行基盤:言語やフレームワークに応じたさまざまな実行環境
これらは多くの場合、Webサーバと組み合わせて使われます。Webサーバが入口でリクエストを受け、動的な処理だけをアプリケーションサーバに渡すという連携で、1つのWebサービスが成り立っています。