Apache StrutsとはオープンソースのJava Webアプリケーションフレームワークです。


まず、フレームワークとは、様々なWebシステムの開発を行う際、開発作業を効率化してくれる機能やプログラムの骨格がまとめられたものです。

だからプログラムを書く際に、一から作るよりも少ない行数で済むんです。その反面、独自の決まりがあるため、学習コストはかかります。

 

そしてJavaはプログラム言語の一種です。

特徴としてプログラムを直接コンピュータが動かすのではなく、JVMという仮想マシンがコンピュータとプログラムの間を取り持つので、様々な種類のコンピュータに対応しやすい。

プログラム言語の中ではメジャーなものなので、採用されているシステムが多く、エンジニアの数も比較的多いです。

 

ということで、Apache Struts2はWeb上でサービスする様々なシステムをJavaで効率よく開発できるしくみということです。

料理に例えると、あらかじめ下ごしらえしておいた材料を使って、効率よく料理をつくるようなもの。



用語 意味

Java

 「一度書けば、どこでも動く」の理念で作られたプログラミング言語で「オブジェクト指向」という言葉を流行らせた奴

Webサーバ

ホームページやWebサービスを置くサーバ(サービスを提供するコンピュータ)

Java Servlet

Webサーバ上でお仕事をするJavaのプログラム


サーブレットコンテナ

Java Servletを動かすときに必要なソフト



それぞれの用語の意味


用語 意味

Tomcat

サーブレットコンテナ(Java Servletを動かすときに必要なソフト)のひとつ

Apache

全世界的に普及しているWebサーバのソフト


「Tomcat」と「Apache」の違い



似ているところ


どちらもWebサーバとしての機能を持っています。



違うところ


違うところというか、本来の役割は全然別物です。


TomcatはJava Servletを動かすときに必要なソフトです。

ApacheはコンピュータをWebサーバとして動かすときに必要なソフトです。


ただし、Tomcatは、作ったJava Servletの動作確認ができるように(簡易的な)Webサーバとしての機能も持っています。

そのため、何が違うのかで悩む人もいるようですね。


Tomcatさんは、あくまでサーブレットコンテナとしてのスペシャリストです。

Webサーバとしては「まぁ、やれないことはないよ」レベルです。

それに対してApacheさんは「Webサーバとしては俺の右に出るものはねーぞ!」なスペシャリストです。

それぞれの本来のお仕事は


Tomcat:サーブレットコンテナ

Apache:Webサーバ


になります。


これがApacheとTomcatの違いです。


個人的な使い分け


Webサーバの機能が必要な場合はApacheを使います。

Tomcatを使う場合は、ApacheとTomcatを連携させます。

Tomcatは、あくまでサーブレットコンテナの位置付けです。


備考


一般的に、Java Servletを本格的に動かす環境を作るときは、ApacheとTomcatを連携させて両方使います。

Tomcat単体でも何とかならないことはありませんが、あえてApacheさんに出張ってもらうのです。

Webサーバとしての機能はWebサーバのスペシャリストであるApacheさんに頑張ってもらいます。サーブレットコンテナとしてのお仕事はTomcatさんが行います。


1人で不得意分野も掛け持ちでやるよりは、得意分野を分担して2人でやった方が良い感じになりそうですよね?

それがApacheとTomcatを連携させる理由です。




執筆者プロフィール

ぴよ画像


佐々木 真

(ササキ マコト)


1979年1月1日生まれ。男性。イギリス生まれの日本育ち。システム開発系の仕事を中心に10年以上IT業界に生息しているが、実は横文字と専門用語が苦手。 同業者と話すときは「日本語で喋れ!日本語で!」と心の中で毒づくも、自分も専門家という立場なので大っぴらには文句を言えない日々を送る。


※詳細プロフィールは、こちら(リンク先:「PCS - Piyopiyo Create Service」Webサイト)をご覧ください。