質問

最近、Springについて、また、TomcatやHibernateのような他のオープンソースツールと組み合わせてSpringを使用する方法について、もっと読んだり学んだりしています。私は、Spring MVCが、WebLogicとLOTのカスタムロールJava EEコードを使用しているプロジェクトの代替テクノロジーになる可能性があるかどうかを評価しています。問題は、私たちのソリューションが過剰に設計されており、必要以上に複雑であると常に疑っていました。驚くべきことに、2009年ですが、独自のトランザクション処理クラスとスレッドプーリングクラスを作成しています。そして、あなたが私が意味することを知っていれば、それは私たちがAmazon、eBay、またはGoogleであるというわけではありません。したがって、私は「シンプルな方が良い」を調査しています。オプション。

これが私の質問です。本格的なJava EEアプリケーションサーバーが必要かどうかをどのように判断するかについて意見を聞きたいと思います。どのように「測定」しますか? Java EEアプリのサイズ/ロード/デマンド?同時ユーザーの数は?合計日次トランザクション?どのように「重い」のか降伏する前にアプリを取得する必要がありますか?「OK、Tomcatはそれをカットしていません、JBoss / WebLogic / WebSphereが必要です」

役に立ちましたか?

解決

本格的なJava EEサーバーを使用するかどうかの決定は、ユーザーまたはトランザクションの数に基づくべきではないと思います。むしろ、機能が必要かどうかに基づいている必要があります。

現在のプロジェクトでは、基本的なサーブレット以外のJava EE機能を使用していないことに気付いたため、実際にはJBossからVanilla Tomcatに移行しています。ただし、Springを使用しています。 Springの基本的なオブジェクト管理、トランザクション処理、JDBC機能の間に、EJBに対する切実なニーズはありません。現在、SpringのMVCではなくStruts 2を使用していますが、それについて素晴らしいことを聞いています。とにかく、Springは多くのJava Webフレームワークとうまく統合できます。

他のヒント

Springは、JMSやJTAなど、JavaEE仕様の特定の高度な部分を置き換えようとしません。代わりに、それらに基づいて構築され、「春の道」と一貫性を持たせ、一般的に使いやすくします。

アプリケーションでJMSやJTAのような機能を必要とする場合は、Spring経由で簡単に使用できます。問題ありません。

Googleは多くのコードをオープンソース化しています。低レベルのものを自分で書いている場合、既に書かれているコードを実装する代わりに、問題をよく考えすぎていることになります。

実際の質問、Walmart.com、etrade.com、The Weather Channel、およびに戻るその他はTomcatを使用するだけです。 IBMのマーケティング担当者と営業担当者は、おそらくあなたに異なることを信じさせるでしょうが、Tomcatに上限はありません。

EJBを除いて、Tomcatに何が欠けているのかわかりません。EJBのファンでもありません。

Java EEのよりエキゾチックな要素は別として、Tomcatが提供しないのはセッションBean(別名EJB)です。セッションBeanを使用すると、処理を効率的に分離できます。したがって、フロントエンド用に1つのボックス、セッションBean(ビジネスロジック)用に1つのボックス、およびデータベース用に1つのボックスを持つことができます。

少なくとも2つの理由でこれを実行する必要があります。

  1. パフォーマンス。すべてを処理するための1つのボックスが、ボックスのロードが多すぎることに気づきました。異なるレイヤーを異なるボックスに分離すると、スケールアウトできます。セッションBeanは、よりきめの細かいレベルで負荷分散することもできます。その同類のTomcatおよびその他のWebサービスには、すぐに使用できるクラスタリングはありません。
  2. 柔軟性;ビジネスロジックを独自の環境に移行したので、同じレイヤーを使用する別のフロントエンドを開発できましたが、たとえば、厚いクライアントフロントエンドでした。または、他のコンテキストがセッションBeanを使用したい場合があります。

おそらく、Webサービスを使用してその中間層と通信する場合、Tomcatにもある可能性があることを指摘する必要があります!

完全なJava EEサーバーを使用する唯一の理由は、分散XAトランザクションが必要な場合、XAトランザクションが不要な場合は、Spring + JPA + Tomcat + Bean Validation + JSTL + EL + JSP + Javaを使用できることですメール。

また、Java EEサーバーはJMSを実装することになっていますが、アプリケーションサーバーの他の部分と同じVMでJMSサーバーを実行することは意味がないため、JMSが必要な場合は別個のJMSサーバーが必要です。

ここに記載されているすべての回答に強く反対します。

EJB、CDI、JTA、Bean Validation、JAX-RSなど、すべてをTomcatに追加できます

問題は、これが必要ですか?他の人がすでにこれを行っている場合、それらの依存関係をすべて適切なバージョンでアセンブルし、すべてが一緒に機能することをテストしますか?

明確にしましょう:誰もTomcatしか使用しません!誰もが常にWebフレームワーク、IOCコンテナー、オーム、トランザクションマネージャー、Webサービスなどを追加します

TomEEのような軽量のJava EEサーバーにはすでにこれらすべてが含まれており、これらのすべてを非常に優れた形で統合する完全なスタックエクスペリエンスを実現しています。

これは興味深いかもしれません:

http://onjava.com/onjava /2006/02/08/j2ee-without-application-server.html

HTH

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top