本格的なアプリケーションサーバー(Weblogic、JBossなど)とサーブレットコンテナー(Tomcat、Jettyなど)の違いを理解しようとしています。
それらはどのように異なり、いつ使用するのですか?
おかげで、
本格的なアプリケーションサーバー(Weblogic、JBossなど)とサーブレットコンテナー(Tomcat、Jettyなど)の違いを理解しようとしています。
それらはどのように異なり、いつ使用するのですか?
おかげで、
回答:
サーブレットコンテナは、サーブレットAPI(JSP、JSTLを含む)のみをサポートします。
アプリケーションサーバーは、JavaEE全体(EJB、JMS、CDI、JTA、サーブレットAPI(JSP、JSTLを含む)など)をサポートします。
ほとんどのJavaEEテクノロジをサーブレットコンテナで実行することは可能ですが、特定のテクノロジのスタンドアロン実装をインストールする必要があります。
大まかに言えば、サーブレットコンテナは、J2EEサーブレット仕様の実装に多少制限されます。また、それはランタイム環境に重点を置いており、追加のツールを提供することにそれほど重点を置いていません。
対照的に、本格的なアプリケーションサーバーはJ2EEスタック全体を実装します。さらに、すべてのエンタープライズツールと統合の可能性が付属しています。アプリケーションサーバーには通常、高度な管理インターフェイスがあり、主にハイエンドシステム開発で使用されるクラスタリングやその他の機能をサポートしています。
初心者にとっては、学習曲線が急勾配でないため、単純なサーブレットコンテナを使用するほうがよいでしょう。
編集する
@Apache Fan:それは、とりわけ既存のシステムや将来の計画など、状況の詳細に依存します。ここでは、一般的なフローチャートのアプローチは適用できないと思います。
プラットフォームの選択は通常、検討中のシステムの直接的な知識と特定の要件を比較検討することによって行われます。
しかし、質問は評価基準が何であるかについての手がかりを与えません。それはオープンソースであるべきですか?24時間体制のベンダーサポートは必要ですか?システムはどのようなエンタープライズ環境と統合する必要がありますか?ライセンス料は問題ですか?必須のテクノロジーやツールはありますか?等。
上記を知らずに、ほとんど暗闇の中で撮影しています。
基本的に、Java EEコンテキストのアプリケーションサーバーは、サーバーにインストールされ、1つのJava EE仕様(Java EE 7など)を実装するソフトウェアです。つまり、そのようなソフトウェア(アプリケーションサーバー)は、Java EEアプリケーションを実行できる必要があります。
Java EEは4つのドメイン、いわゆるコンテナーを定義します。
2つのコンテナーはアプリケーションサーバー(EJBとWebコンテナー)の一部であり、他の2つはクライアントコンピューターの一部です。
JBossとWeblogicはアプリケーションサーバー、TomcatとJettyはWebコンテナです。これが、JBossとWeblogicがWebコンテナよりも多くのテクノロジーを処理できる理由です。アプリケーションサーバーはEJBを管理できます。
サーブレットコンテナは、限定的であるため、修飾されたTomcatおよびJettyには適切な表現ではありません。Tomcatは、サーブレットだけでなく、JSPおよびJSFも実行できます。