• ベストアンサー

ApacheとTomcat

最近サーブレットの勉強を始めた。 webサーバにTomcatを使う、 またはTomcatとApacheを連携させて使う例しか見当たらなかったのですが、 サーバマシンにJ2EEを置き、Apache単体で動作させるということはできないのでしょうか? また、調べていくうちにTomcatはApacheと同じプロジェクト(?)というか、 同じところが開発しているように感じました。 単純にTomcatは「ApacheにJavaによるサーバサイドのプログラムが動くようにしたもの」 というわけではないみたいですが、どうなのでしょう? Apacheを改造してサーブレットを動くようにすればよかったのでは?と思うのですが、 そのへんの歴史的背景というか、 それぞれのできあがった背景みたいなものを簡単にでも解説頂けると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

http://ja.wikipedia.org/wiki/Apache_Tomcat 現時点では、正式名称が以下のようになっているらしいですね。 Apacheソフトウェア財団(ASF)のトップレベルプロジェクト ・Apache HTTP Server → Webサーバ ・Apache Tomcat → サーブレットコンテナ これ以外では、EJBも扱える商用向けの「J2EEコンテナ」として、BEA WebLogic Application ServerやWebSphere Application Serverなどがあったと思います。 >サーバマシンにJ2EEを置き、Apache単体で動作させるということはできないのでしょうか? 可能です。というよりJ2EEにおいては、「負荷分散」という観点からそのような事が出来るようになっています。ちなみに、PHPではApache HTTP Serverのあるマシン内でZendエンジンが動作するという構成になっており、このような事からも「大規模向け」とか「中小規模向け」といったような住み分けがなされています。 以下のサイト内の3つの図も参考にしてください。 TOP>比較データ> はじめに 「Javaアプリケーションサーバのクラスタリング機能比較」 第7回:Javaアプリケーションサーバのパフォーマンス比較 http://www.thinkit.co.jp/free/compare/14/7/1.html >Apacheを改造してサーブレットを動くようにすればよかったのでは?と思うのですが、 これも詳細については、以下のサイトを参考にしてください。元々は、Apache Software Foundation(ASF)もSunも別々にサーブレットエンジンを開発していたのですが、両者が協力してJakarta Projectが誕生し、その後にサブプロジェクトから昇格して、現在のトップレベルプロジェクトになっているということです。 (もし仮に、当時のSunが歩み寄らなかったとしても、やはり負荷分散という観点から「スーパーApache」みたいなサーバソフトは誕生しなかったでしょう。あくまで、推測です。) TOP>サーバ構築・運用> Tomcatの特徴 「いまさら聞けないTomcat~JSPサーバ構築のキソ」 第2回:Tomcatって何ができるのですか? http://www.thinkit.co.jp/cert/article/0708/2/2/2.htm

OKbokuzyo
質問者

お礼

回答をいただいておきながら、返事が遅くなり大変申し訳ありません。 非常に詳しい解説を本当にありがとうございます。 最近忙しく、参考用に紹介いただいたサイトもまだほとんど見れていませんが、 次の土日にはゆっくり読んでみようと思います。 ありがとうございました。

その他の回答 (1)

  • akinaga
  • ベストアンサー率60% (14/23)
回答No.1

私の認識では.. Tomcatはアプリケーションサーバ ApacheはWebサーバ アプリケーションサーバはユーザから受け取ったリクエストをJavaなどで動的に処理を行い、その動的なページを返すもの WebサーバはHTMLなど静的なページを返すもの J2EEはWeb系の処理に特化させたJavaのAPI J2SEはローカルでアプリケーションを動かすために必要なAPI J2MEは携帯電話などで最低限必要なAPI Tomcat→Javaで動的な処理を行う。 Apache→HTMLなど静的なページを返す。 重複している機能はもちろんありますが、 ApacheとTomcatを組み合わせるということは 長所をそれぞれ使っているということです。 TomcatのWebサーバ機能が少ないという短所をApacheが補っています。

OKbokuzyo
質問者

お礼

!! なるほど、アプリケーションサーバという位置づけですか。 アプリケーションサーバという言葉くらいは聞いたことがありますが、 具体的にどうこうというのはそういえば知りませんでした。 ありがとうございます。 切り分けとしてはなんだかとてもすっきりした気がします。

関連するQ&A