通常、WebLogicまたはJBossを使用してアプリをデプロイします。Springのようなオープンソースソリューションを使用すると、アプリを開発してJettyのような単純なサーブレットコンテナで実行できることを理解しています。では、なぜアプリサーバーを気にする必要があるのでしょうか。
7 に答える
- 高度な機能-トランザクション、セキュリティ統合、プーリング、高性能キューイング、クラスターなど。
- パフォーマンス(weblogicにはホットJVMがあります)
- 運用および管理インターフェイス。
それを超えて...わかりませんか?
ほとんどの場合、YAGNI。
エンタープライズ環境でWebLogicまたはWebSphereを使用したことで誰も解雇されませんでした。大企業や経営者にとって、技術的な側面だけでなく重要です。これらのアプリケーションサーバーは、経験の浅い管理者でも簡単に使用できるフル機能の管理コンソールを提供します。また、サポートサービスも見つけやすくなっています。オープンソースコンポーネントを使用する会社は、経験豊富な開発者に投資して、すべてをセットアップし、メンテナンスを行う必要があります。アプリケーションサーバーは、企業(銀行など)内で広く使用されており、企業のビジネスはソフトウェアとは何の関係もありません。彼らにとっては、すべて(ソフトウェアライセンス、インストール/構成、サポートサービス)を単一のベンダーから購入する方が理にかなっています。
あなたが尋ねなければならないなら、あなたはそれを買う余裕がありません。
真剣に、本格的なアプリケーションサーバーにはより多くの機能があり、TomcatやJettyなどの価値があるかどうかを判断する必要があります。これがすべての理由を説明するのに適切な場所ではないと思いますが、ここに1つあります。アプリケーションサーバーを使用すると、機能とサービスをトランザクションで簡単にラップできます。その他の理由はここに記載されています。
WebLogicとJBossのクラスタリング、フェイルオーバー、およびセッション同期機能は、大規模なデータセンターでも価値があります。
もちろん、JBossはWebフロントエンドとしてTomcatを使用しているため、どちらでもありません。
人々がOpenEJBとActiveMQをTomcatに追加し、JavaEEアプリサーバーのすべての機能を利用するのを見てきました。線がかなりぼやけています。
SpringDMサーバーはTomcat上に構築されています。JavaEEアプリサーバーの人々から離れて市場シェアを考え始めることができるかどうかを見るのは興味深いでしょう。
私はSpringが大好きです-それは私の好みのフレームワークです-しかし、JavaEEが複数のアプリサーバーベンダーによって実装されている標準であることを知っている人たちを慰めていると言えます。ベンダー固有の拡張機能を使用しない場合、理論的には、コードを変更せずにWebSphereからWebLogic、JBossに移動できます。そのようないくつかの大きなITショップ。それは標準ではないので、彼らは春を敬遠します。それはロッドジョンソンと彼のチームの発案によるものです。あなたが彼らのものが好きではないとあなたが決めるならば、あなたは他に行くところがありません。
作業中の新しいJavaIoC/DI標準があります。ロッドジョンソンとボブリーはそれに取り組んでいます。多分それはそこにある恐れのいくつかを落ち着かせ始めるでしょう。
アプリケーションサーバーはアーキテクチャソリューションです。アプリケーションのさまざまな再利用可能なモジュールを考える場合は、これを使用する必要があります。サービスをHTTPスタックを介して実装する必要があることを気にしない場合は、EJBをデフォルトのオプションにする必要があります。ASを使用すると、アーキテクチャの方法でグッドプラクティスを解決するためのソリューションがすでにパックされています。キュー、トピック、jmsなどをそのまま使用できます。これらはすべてJavaEE標準です。しかし、ASの決定を判断できるようにするには、このアーキテクチャの話題の中ですべてのアプリケーションを考える必要があると思います。
「万が一に備えて」EJBサポート(Java EE仕様)を好む人もいます
いくつかの理由がありますが、そのほとんどは特定のニーズに当てはまる場合と当てはまらない場合があります。
1)サポート。多くの企業は、サーバーを開発したベンダーとサポート契約を結ぶことを望んでいます。オープンソースソリューションを使用すると、ほとんど「自分で」行うことができます。
2)完全なJava EE/EJBサポート。私自身はこれが特に役立つとは思いませんが、これらの機能は商用アプリケーションで広く使用されています。あなたがそれらを必要とするならば、本当に代替手段はありません。あなたがそれらを必要としないならば、それらは無駄です。
3)優れた管理コンソール。Tomcatには、アプリケーションを追加および削除できる管理コンソールがあります。私の知る限り、それはほぼ同じです。WebSphereにはそれがありますが(あまり合理化されていませんが)、接続プールのサイズ、データ・ソース、スレッド・プールのサイズを変更したり、ロギング構成を変更したり(非常に細分性が高い)、メモリーとJVMプロファイリングをアクティブ化することもできます。ほとんどの場合、アプリケーションサーバーを再起動しません。おそらく、クラスタリングも比較的簡単に設定できます。.EARファイルをインストールする機能はtomcatにも特に欠けており、相互に関連する複数のアプリケーションをインストールする場合、それらすべてを管理するのは非常に困難になります。
(少なくとも)tomcatでも(3)のほとんどを実行できますが、管理GUIを介して実行することはできません。素敵なGUIが好きな人もいます。