マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【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 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サーバのひとつで、「メモリ消費量が少ない」「並行処理性能が高い」などの特徴を持ちます。
■「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を使用して処理すれば、そのまま動作できます。
参考元サイト
- Apache Tomcat
- Wikipedia →Apache Tomcat
- パーソルテクノロジースタッフ →サーバ構築のために知っておきたい「Apache Tomcat」について
- TechAcademy Magazine →インストール手順を解説!Apache Tomcatとは【初心者向け】
- IT用語辞典 e-Words →Tomcat 【 Apache Tomcat 】
- OpenStandia →Apache Tomcat最新情報
- WEB ARCH LABO →Apache httpd と Tomcat を連携させる方法
- 日本OSS推進フォーラム →I-16-4. Tomcatの特徴とServlet/JSPによるアプリケーション開発
- WEPICKS! →HTTPサーバー(HTTP Server、エイチティーティーピーサーバー) | IT用語
- エンジニアの入り口 →今更聞けない!Webサーバーの仕組みと構築方法
- 侍エンジニア塾 →Java Servlet(サーブレット)とは?超初心者向けに優しく解説
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク2位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク3位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク4位🏆
【OSS情報】AIネイティブ埋め込みデータベース「 Chroma 」 - 🏆ランク5位🏆
【無料で使える】「 バックアップ 」ツールまとめ - 🏆ランク6位🏆
【OSS情報アーカイブ】Odoo - 🏆ランク7位🏆
【OSS情報アーカイブ】NW.js - 🏆ランク8位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク9位🏆
【ChatGPTプラグイン探訪】「 WebPilot 」〜Web検索プラグイン〜 - 🏆ランク10位🏆
【OSS情報アーカイブ】GanttProject