スポンサーリンク

Webアプリケーションの全体構造 Webアプリケーション開発

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

投稿日:2021年3月12日 更新日:

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

アプリケーションサーバーは、Webシステム3層構造の真ん中に位置するサーバーである。主な役割はJava、C++、Rubyなどの動的なプログラムを実行することである。

アプリケーションサーバーとwebサーバーの違いは?

役割の違い

アプリケーションサーバーは動的なプログラムを実行するために使用される。WebサーバーはユーザーからのHTTPリクエストを処理する窓口となるサーバーである。

WebサーバーはHTTPリクエストを受け付ける窓口となり、HTML/CSS/JPGなどの静的コンテンツが要求されていたらその時点で返却する。動的なプログラムを実行する必要がないからである。
動的なプログラムを動かす必要がある要求の場合は、後続のアプリケーションサーバーにリクエストを渡す。

使用するソフトウェアの違い

OSは両者ともLinux系が選ばれる。

アプリケーションサーバーとして機能するためには言語に応じたソフトウェアを選択する必要がある。例えばJavaの場合はTomcat、Rubyの場合はPumaやUnicornである。

Webサーバーの場合は一般的にはApache HTTP Serverが多いが、B to C で大量同時アクセスが想定される場合はNginxというソフトウェアが選択される傾向がある。

アプリケーションサーバーとデータベースサーバーの違いは?

役割の違い

アプリケーションサーバーは動的なプログラムを実行するために使用される。データベースサーバーはつまり動的なプログラムからデータを保管したり取り出されたりするデータ置き場としての働きをする。

使用するソフトウェアの違い

OSは両者ともLinux系が選ばれる。

アプリケーションサーバーとして機能するためには言語に応じたソフトウェアを選択する必要がある。例えばJavaの場合はTomcat、Rubyの場合はPumaやUnicornである。

データベースサーバーのソフトウェアはRDBMSであるMySQL/PostgreSQLが選択されることが多い。大企業向けの大量データを扱うシステムでは、Oracle databaseやWindows SQL Serverが選択される傾向がある。

Javaのアプリケーションサーバー

Javaのアプリケーションサーバーとは?

JavaでWebアプリケーションを作成するとき、Servlet(サーブレット)という技術を使用する。サーブレットは、Java EEの機能の1つとして定義されている。

サーブレットの実行環境はWebコンテナ(ウェブコンテナ)とまたはServletコンテナ(サーブレットコンテナ)とも呼ばれる。

つまり、Javaのアプリケーションサーバーとは、Webコンテナ(またはServletコンテナ)の機能を提供するソフトウェアである。

無償(オープンソース)のJavaアプリケーションサーバー

個人開発やスタートアップ〜中規模くらいの商用サービス・社内向けシステムでは無償(オープンソース)のTomcatがまず選択されるが、他にも次のようなものがある。

ソフトウエア管理団体特徴
TomcatApacheソフトウェア財団シェア圧倒的No1。SpringBootに組み込んで使われることもある。
JavaEEの主要な機能(Servlet/JSP,EL式)が使用できる。
JettyEclipse FoundationJavaEEの主要な機能(Servlet/JSP,EL式)が使用できる。
GlashFIshOracle社JavaEEの全ての機能(Servlet/JSP,EL式,JSF,Websocket)が使用できる。JavaEEの参照実装である。
無償(オープンソース)のJavaアプリケーションサーバー

OSSを利用する実案件ではTomcat以外お目にかかったことがない。しかし、TomcatはServletを動かすための基本機能を提供するのみと言うのが一般的な認識のようだ。SpringBootはServlet上に構築するため、Tomcatで動かすことができる。

有償サポート付きのJavaアプリケーションサーバー

一方、大規模な社内システム(基幹システム)や銀行系のシステムでは、有償が選択されやすい。

上位ベンダーにIBMやOracleと関係がある会社が入っている場合、次のような有償アプリケーションサーバーを利用する案件と出会う。

ソフトウェア名管理団体特徴
WebLogicOracle社
Web SphereIBM社
JBoss EAPRedHat社
無償(オープンソース)のJavaアプリケーションサーバー

上記は世界的に知られているが、日本国内の各メガSIerも同様のJavaアプリケーションサーバーを開発しており、大手SIerの案件に入ると、次のようなものを見ることがあるかもしれない。

ソフトウェア名管理団体
uCosminexus Application Server日立系
WebOTX Application ServerNEC系
Interstage Application Server富士通系
ObjectWorks+NRI系
国内大手SIerが提供するJavaアプリケーションサーバー

無償有償合わせたシェアは、

Tomcat>>>WebLogic>WebSphere>JBoss EAP

となっているため、もしアプリケーションサーバーの学習をするならTomcatを対象にすると良い。

Udemyのハンズオン動画講座でSpringBootのスキルを磨く!

スポンサーリンク

-Webアプリケーションの全体構造, Webアプリケーション開発

Copyright© 【Spring Hack】 , 2022 All Rights Reserved Powered by AFFINGER5.