マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Apache Tomcat

【OSS情報アーカイブ】Apache Tomcat

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Apache Tomcat」とは

「Apache Tomcat」基本情報

■概要

Apache Tomcat(アパッチトムキャット)とは「Javaサーブレット」や「JSP(JavaServerPages)」を処理するWebコンテナアプリケーションサーバです。

■基本説明

Apache Tomcatは「Javaサーブレット」や「JSP(JavaServerPages)」を処理するコンテナ実行環境(サーブレットコンテナ、サーブレットエンジン)です。

Webアプリケーション実行環境としてJavaサーブレットを用いた動的なWebページを生成できます。

「安定動作」「軽快動作」「高性能」などの理由で高い評価を得ています。

■経緯

・1999年 初版リリース

Apache Tomcatは、当時Javaの開発元だったSun Microsystems社のソフトウェアアーキテクトであるJames Duncan Davidson氏によるサーブレットのリファレンス実装(参照すべき基本となる実装)として開発が開始されました。

その後、Java関連ソフトウェアを開発するJakartaプロジェクトへ移管され、オープンソースとして公開されました。

2005年、JakartaプロジェクトからApache Tomcatプロジェクトとして独立しました。

現在でも、Apache Software Foundationが保有するトップレベルプロジェクトの1つとして積極的な開発が続けられています。

■ユースケース

Apache Tomcatは「Javaベース」「高性能」「安定性」「マルチプラットフォーム」などの特徴があり、Linux OSを併用すればほぼ無料でWebアプリケーションサーバを構築できます。

そのため、小規模テスト環境から大規模ミッションクリティカル環境まで、世界中のさまざまな業界や組織に渡って、多数のWebアプリケーション動作環境として採用されています。

■オフィシャルサイト情報

オフィシャルサイト

→Apache Tomcat

ライセンス情報

Apache Tomcatのライセンスは「Apache License version 2」です。

詳細について、こちらを参照ください。
→Apache Tomcat

ダウンロード

Apache Tomcatは「Red Hat Enterprise Linux」「SuSe Linux」「Sun Solaris」「HP-UX」「Microsoft Windows」「AIX」など、さまざまなOSプラットフォームに対応しています。

→Apache Tomcat →Apache Tomcat Versions

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「WildFly」「GlassFish」など。

「Apache Tomcat」の主な特徴

■標準Webコンテナ

Apache Tomcatは、Java Servlet/JSPコンテナとして、高いシェアを誇るWebコンテナのデファクトスタンダードとなっています。

■「ピュアJava」Webサーバ

Apache Tomcatは「Javaサーブレット」「JavaServer Pages(JSP)」「Java EL(Expression Language)」「WebSocket」などを含むJava EE仕様を実装し、Javaコードを実行できる「純粋なJava」Webサーバ環境を提供します。

Apache Tomcatは、JavaサーブレットとJSPの公式なリファレンス実装として開発/実装されています。

■高性能+高品質

Apache Tomcatは、商用製品と同等以上の性能を提供します。

■Apache Tomcatの3つの実行モード

Apache TomcatのWebHTTPサーバ機能は、実行モードによって3つの位置づけがあります。

①スタンドアロン型

Apache Tomcat自体にHTTPサーバの機能が内蔵されているため、Apache Tomcat単体でHTTPサーバ機能を提供できます。

JavaベースのWebアプリケーションであれば、別途HTTPサーバを導入することなく、シンプル構成で利用できます。

Apache Tomcat内蔵のHTTPサーバは安定動作できますが、専用のWebHTTPサーバプロダクトと比較すると性能面では劣ります。

②内部プロセス型

他のHTTPサーバ上でApache Tomcatを動作させて連携できます。

Apache Tomcat以外のHTTPサーバがクライアントからHTTPリクエストを受け付け、サーブレット処理の必要に応じて、サーブレットコンテナ機能を提供するApache Tomcatにリクエストを渡すという構成で利用できます。

③外部プロセス型

外部プロセス型は、他のHTTPサーバとは別にApache Tomcatを実行し、プロセス間通信によってHTTPサーバと連携する構成です。

内部プロセス型と比較すると、処理速度が低下するデメリットがありますが、拡張性の面でメリットがあります。

「Apache Tomcat」のHTTPサーバ機能

「Apache Tomcat」のHTTPサーバ機能

■「HTTPサーバ」とは

HTTPサーバ(Hyper Text Transfer Protocol Server)とは、HTTP(Hyper Text Transfer Protocol)によって、Webブラウザなどのクライアント側ソフトウェアと情報通信を行うサーバ側プログラムです。

クライアントから送信されたHTTPリクエストに応じて、Webサーバ内に蓄積されたテキスト情報や画像情報などを提供します。

HTTPサーバは、一般的に「Webサーバ」や「WWW(World Wide Web)サーバ」とも呼ばれます。

代表的なHTTPサーバ①「Apache HTTP Server」

Apache HTTP Serverはデファクトスタンダードと言われるHTTPサーバです。性能が高く、安定しており、モジュールによる機能強化も可能です。

Apache HTTP ServerはオープンソースHTTPサーバとして、一般的なLinuxディストリビューションの標準HTTPサーバとして配布されています。

→OSSxCloudNews →Apache HTTP Server

代表的なHTTPサーバ②「Nginx」

Nginx(エンジンエックス)は、近年、シェアを伸ばしているHTTPサーバです。

Apache HTTP Serverと同様にオープンソースWebサーバのひとつで、「メモリ消費量が少ない」「並行処理性能が高い」などの特徴を持ちます。

→OSSxCloudNews →Nginx

■「Apache HTTP Server」+「Apache Tomcat」連携

「Apache HTTP Server」+「Apache Tomcat」は多く利用されている構成です。Apache Tomcatの実行モードの中の「内部プロセス型」で利用する方法が主流となっています。

Apache HTTP Serverがリクエストを受付け、Javaによる動的な処理が必要な場合、Apache Tomcatが処理します。この場合、AJP(Apache JServ Protocol)というプロトコルによって通信が行われ、Apache HTTP Serverはプロキシとして機能します。

HTMLや画像などの静的コンテンツは高速なApache HTTP Serverが処理を行い、Javaの機能を活かした動的コンテンツはApache Tomcatが処理する連携により、それぞれのプロダクトが持つ優位性を組み合わせた環境を構築できます。

「Apache Tomcat」のコンテナ(アプリケーションサーバ)機能

「Apache Tomcat」のコンテナ(アプリケーションサーバ)機能

■サーブレットコンテナ機能

「サーブレット」とは

「サーブレット(Javaサーブレット)」とは、Webアプリケーションサーバ上で、「動的Webページ生成」や「データ処理」を実行するためのJavaプログラムです。

「ライフサイクル管理機能」「マルチスレッド対応」「プラットフォーム非依存」などの特徴を持ち、「Webアプリケーションを開発するために作られたJavaプログラムの部品」として動作します。

サーブレットコンテナ「Apache Tomcat」

サーブレットは単体で動作することはできないため、サーブレット実行環境(サーブレットコンテナ)が必要となります。

Apache Tomcatは、サーブレットを実行するための「サーブレットコンテナ」として動作します。

■JSP(JavaServerPages)処理機能

「JSP(JavaServerPages)」とは

「JSP(JavaServerPages)」とは、HTML内にJavaコードを埋め込み、動的にWebページを生成する技術です。サーブレットはWebアプリケーション内部のロジック部分を処理しますが、JSPは主にWebページ表示部分を処理します。

サーブレットはJavaのオブジェクト指向で開発できますが、Webページを表示するためのHTML処理には対応していないため、サーブレットですべてを処理しようとするとコードが非常に冗長になってしまう課題がありました。その問題を解消するために生まれたのが「JSP」という技術であり、HTMLの中に直接Javaのコードを書き込むことで、よりシンプルに、JavaベースのWebアプリケーションの開発が可能となりました。

サーブレットとJSPを連携させることで、「ユーザー情報の画面表示」や「ログインユーザーに関連するデータ表示」などの動的なWebページを生成できます。

JSPコンテナ「Apache Tomcat」

JSPはコンパイルの必要がないため、HTTPサーバ上でTomcatを使用して処理すれば、そのまま動作できます。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。