マジセミドライブ

ウェビナー関連のニュースや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を使用して処理すれば、そのまま動作できます。

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 VMWare 問題 」とは?🖥️

「 VMWare 」の仮想化技術は、「ITインフラの効率化」に大きく貢献する技術ですが、Broadcomによる買収後のライセンス変更が大きな問題として注目されています。柔軟で慎重な契約見直しが今後の鍵となります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。