Contents
アプリケーションサーバーとは?
アプリケーションサーバーは、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がまず選択されるが、他にも次のようなものがある。
ソフトウエア | 管理団体 | 特徴 |
Tomcat | Apacheソフトウェア財団 | シェア圧倒的No1。SpringBootに組み込んで使われることもある。 JavaEEの主要な機能(Servlet/JSP,EL式)が使用できる。 |
Jetty | Eclipse Foundation | JavaEEの主要な機能(Servlet/JSP,EL式)が使用できる。 |
GlashFIsh | Oracle社 | JavaEEの全ての機能(Servlet/JSP,EL式,JSF,Websocket)が使用できる。JavaEEの参照実装である。 |
OSSを利用する実案件ではTomcat以外お目にかかったことがない。しかし、TomcatはServletを動かすための基本機能を提供するのみと言うのが一般的な認識のようだ。SpringBootはServlet上に構築するため、Tomcatで動かすことができる。
有償サポート付きのJavaアプリケーションサーバー
一方、大規模な社内システム(基幹システム)や銀行系のシステムでは、有償が選択されやすい。
上位ベンダーにIBMやOracleと関係がある会社が入っている場合、次のような有償アプリケーションサーバーを利用する案件と出会う。
ソフトウェア名 | 管理団体 | 特徴 |
WebLogic | Oracle社 | |
Web Sphere | IBM社 | |
JBoss EAP | RedHat社 |
上記は世界的に知られているが、日本国内の各メガSIerも同様のJavaアプリケーションサーバーを開発しており、大手SIerの案件に入ると、次のようなものを見ることがあるかもしれない。
ソフトウェア名 | 管理団体 |
uCosminexus Application Server | 日立系 |
WebOTX Application Server | NEC系 |
Interstage Application Server | 富士通系 |
ObjectWorks+ | NRI系 |
無償有償合わせたシェアは、
Tomcat>>>WebLogic>WebSphere>JBoss EAP
となっているため、もしアプリケーションサーバーの学習をするならTomcatを対象にすると良い。