アプリケーションサーバとは
アプリケーションサーバとは
アプリケーション(AP)サーバーの役割
アプリケーションプログラム(JavaやPHPのような動的プログラム)を実行するためのサーバーです。
JavaやPHPなど動的プログラムを使うことで、条件に合わせて(※例:アクセスしたユーザーに合わせて)表示内容を
変えたり、データベース(MySql)と連携できるようになります。
WEBサーバーでは、HTMLを始めとした静的プログラムを扱うことはできますが、基本的にはJavaやPHPのような
動的プログラムを扱うことはできませんので、
主にWebサーバーとデータベースを仲介するために、アプリケーションサーバーを使用します。
JavaやPHPなどアプリケーションプログラムを使えることで、
- 条件に合わせて(※例:アクセスしたユーザーに合わせて)表示内容を変える。
- データベースと連携できるようになるので、より実践的なWebアプリケーションを作ることができる。
Webサーバ(HTML)だけの場合
APサーバ(JavaやPHP)を使用した場合
アプリケーション(AP)サーバーで使われるソフトウェア一覧
APサーバーのソフトウェア一覧
また、前章までと同様に、アプリケーション(AP)サーバーの環境を構築するためには、次で紹介するような専用のソフトウェアをインストールし、必要な設定を行った上で、ソフトウェアを起動する必要があります。
各言語のミドルウェア(※)の動作環境
前ページで紹介した通り、プログラミン言語の種類によって、アプリケーションサーバーで使用するソフトウェアの
種類(アプリケーションの開発環境)が異なります。
Javaのアプリ開発では、WebサーバーにApache、アプリケーションサーバーにTomcatを使用しますが、PHPのアプリ開発では
Webサーバー、アプリケーションサーバー共に、Apacheを使用します。
そのため「【第7章】Web サーバーの環境構築」、「【第8章】データベースサーバー構築」では、Apache、MySQL、PHP関連の
パッケージをインストールするだけで、アプリケーションサーバーを意識せずに演習を実施することができました。
Tomcatとは:JavaアプリのAPサーバー
Tomcatとは
再三の説明になりますが、 Tomcat(Apache Tomcatの略)は、 Javaのアプリケーションの開発環境を構築するためのアプリケーションサーバーであり、サーブレットコンテナの一種です。
サーブレットコンテナとは、 Java サーブレットが動作するために必要なソフトウェアであり、
Java サーブレット(Servlet) は、Webアプリ用のJavaプログラムです。
Tomcat
サーブレットコンテナの一種
サーブレットコンテナ
Java サーブレット(Servlet)が、動作するために必要なソフトウェア
Java サーブレット(Servlet)
Webアプリ用のJavaプログラム
Tomcatの動作の流れ
また、ユーザーからのアクセス(HTTPリクエスト)に対して、特定のJava Servlet(Web用のJavaプログラム)を実行するために、 Tomcatは、 Java Servlet(Web用のJavaプログラム)とWebサーバーの仲介をします。
このような動作をするため、Tomcatはアプリケーションに分類されますが、厳密には、アプリケーションサーバだけでなく、
(簡易的な)Webサーバーとしても機能します。
Tomcatを使ったWebアプリの動作環境について
APサーバとWebサーバが分かれている場合(一般的な動作環境)
ここまで説明した通り、一般的なTomcatの開発ではWebサーバーにApache、アプリケーションサーバーにTomcatを使用します。
また、ユーザーからWebサーバーに対してHTTP通信を行うため、ユーザーはHTTP通信に対応した80番ポート(※)で通信をします。
そしてWebサーバーから、アプリケーションサーバーへの通信では、8080番ポートが(デフォルトで)使用されます。
※ ポート番号やHTTP通信について「第3章 セキュリティ(SELinux・firewalld)の設定 >セキュリティの設定について」を参考ください。
APサーバとWebサーバが同じ場合(当講座の動作環境)
また、先ほど説明した通り、Tomcatは、簡易的なWebサーバーとしても機能するので、Tomcatをインストールするだけで、
Webサーバーからアプリケーションサーバーまでの役割を担うことができます。
この場合、Tomcatが直接、ユーザからのアクセス(HTTP通信)を受け付けることになりますが、(デフォルトでは)元々の
8080番ポートで通信することになります。
そのためブラウザからアクセスする際には、「https://IPアドレス:8080/×××」といった具合に、 URLにポート番号の8080を指定する必要があります。