アプリケーションサーバーとサーブレットコンテナの違いは何ですか?


115

本格的なアプリケーションサーバー(Weblogic、JBossなど)とサーブレットコンテナー(Tomcat、Jettyなど)の違いを理解しようとしています。

それらはどのように異なり、いつ使用するのですか?

おかげで、



@Jigar:これが重複する正確な質問を知っている場合は、実際に投票して重複として閉じる必要があります。
Joachim Sauer、

1
@Joachim私閉じるために投票しませんでした。
Jigar Joshi、2011

2
重複していないからです。:)
Bozho

1
おっと...私を無視してください。必要なカフェインレベルにまだ達していないようです。
Joachim Sauer

回答:


171

サーブレットコンテナは、サーブレットAPI(JSP、JSTLを含む)のみをサポートします。

アプリケーションサーバーは、JavaEE全体(EJB、JMS、CDI、JTA、サーブレットAPI(JSP、JSTLを含む)など)をサポートします。

ほとんどのJavaEEテクノロジをサーブレットコンテナで実行することは可能ですが、特定のテクノロジのスタンドアロン実装をインストールする必要があります。


1
私の側からの+1、良い違い。その他の違い@Bozho
Deepak

1
@Bozho:+1:私がこれまで気付いたことの1つは、あなたの驚くべき答えにしばしば埋め込まれている単純な用語です。
Shirgill Farhan 2014

1
それは非常に便利です@Bozho
Xstian

@Bozhoサーブレットコンテナは、*アプリケーションサーバーの機能サブセットを持つサーバーとして呼び出すことができます。さらに、それらは同じように機能します(両方に共通のユースケースの場合)
Kuldeep Yadav

15

大まかに言えば、サーブレットコンテナは、J2EEサーブレット仕様の実装に多少制限されます。また、それはランタイム環境に重点を置いており、追加のツールを提供することにそれほど重点を置いていません。

対照的に、本格的なアプリケーションサーバーはJ2EEスタック全体を実装します。さらに、すべてのエンタープライズツールと統合の可能性が付属しています。アプリケーションサーバーには通常、高度な管理インターフェイスがあり、主にハイエンドシステム開発で使用されるクラスタリングやその他の機能をサポートしています。

初心者にとっては、学習曲線が急勾配でないため、単純なサーブレットコンテナを使用するほうがよいでしょう。


編集する

@Apache Fan:それは、とりわけ既存のシステムや将来の計画など、状況の詳細に依存します。ここでは、一般的なフローチャートのアプローチは適用できないと思います。

プラットフォームの選択は通常、検討中のシステムの直接的な知識と特定の要件を比較検討することによって行われます。

しかし、質問は評価基準が何であるかについての手がかりを与えません。それはオープンソースであるべきですか?24時間体制のベンダーサポートは必要ですか?システムはどのようなエンタープライズ環境と統合する必要がありますか?ライセンス料は問題ですか?必須のテクノロジーやツールはありますか?等。

上記を知らずに、ほとんど暗闇の中で撮影しています。


企業の視点から伺います。
プシュカル

11

基本的に、Java EEコンテキストのアプリケーションサーバーは、サーバーにインストールされ、1つのJava EE仕様(Java EE 7など)を実装するソフトウェアです。つまり、そのようなソフトウェア(アプリケーションサーバー)は、Java EEアプリケーションを実行できる必要があります。

Java EEは4つのドメイン、いわゆるコンテナーを定義します。

  • アプレットコンテナ、
  • アプリケーションクライアントコンテナ、
  • Webコンテナ、および
  • EJBコンテナ。

2つのコンテナーはアプリケーションサーバー(EJBとWebコンテナー)の一部であり、他の2つはクライアントコンピューターの一部です。

JBossとWeblogicはアプリケーションサーバー、TomcatとJettyはWebコンテナです。これが、JBossとWeblogicがWebコンテナよりも多くのテクノロジーを処理できる理由です。アプリケーションサーバーはEJBを管理できます。

サーブレットコンテナは、限定的であるため、修飾されたTomcatおよびJettyには適切な表現ではありません。Tomcatは、サーブレットだけでなく、JSPおよびJSFも実行できます。


2

afaik、websphere、jbossは完全に準拠したj2ee-serverであり、EJBのようなサーブレットを超えて実行できますが、Tomcatは単なるサーブレットコンテナーであり、EJBを実行することはできません。


次に、Apacheサーバーはどのカテゴリに属しますか?
ローリングストーン

Apache HTTP Serverは本格的なWebサーバーです。
15

2

Layman用語では、 Webサーバーとは、(通常はブラウザーからの)HTTPリクエストを処理することを意味します。

サーブレットコンテナ(Tomcatなど)とは、サーブレットとJSPを処理できることを意味します。

アプリケーションサーバー(GlassFishなど)とは、次のことを意味します。 * Java EEアプリケーション(通常はサーブレット/ JSPとEJBの両方)を管理できます。

初心者にとっては、単純なサーブレットコンテナを使用する方がよいでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.