マジセミドライブ

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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

ウェビナーまとめ

2024.05.15

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

2024年3月12日に三菱電機ITソリューションズ株式会社とアットストリームパートナーズ合同会社の共催で、組立加工製造業向けのセミナー「なぜか高くなる原価を管理する 不確実性の時代を乗り切るためのコスト戦略とは」が開催されました。本セミナーでは、製造業における原価管理の現状と改善手法について深く掘り下げ、経営活動への具体的な活用方法を提示しました。今回は、その講演の要点をお伝えします。

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

OSS情報

2024.07.04

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

「 Hoppscotch 」は、オープンソースのAPI開発エコシステムで、使いやすさとアクセシビリティを重視した軽量なWebベースのスイートです。無料版と有料版があり、PostmanやInsomniaの代替として利用可能です。

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

OSS情報

2024.07.18

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

「 GPT-NeoX 」は、GPU上で大規模言語モデル(LLM)を効率的にトレーニングするためのライブラリです。NVIDIAのモデルを基に独自の最適化が加えられ、オートレグレッシブ言語モデルのトレーニング手法を集約しています。