現在、JBossまたはGlassfish(または別の)を新しいプロジェクトのJava EEサーバーとして使用しますか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/277543

  •  07-07-2019
  •  | 
  •  

質問

今日約1年で終了する新しいJava EEプロジェクトを開始した場合、どのアプリケーションサーバーを選択しますか?

回答の一部には、決定に対する議論を含める必要があります。また、選択したJava EEサーバーおよび市場にある他の利用可能なサーバーでの経験もあります。私たち全員があなたの答えに入れられた調査と思考の感覚を得るので、これらは興味深いです。

役に立ちましたか?

解決

過去10年以上にわたって、WebLogic、WebSphere、JBoss、GlassFish、Resin、Jetty、Tomcat、およびその他のいくつかを使用しました。したがって、新しいプロジェクトを検討している場合、最初にいくつか質問をします。もう疑問に思わないことの1つは、ママのために泣くまで拷問されない限り、JSPの使用を拒否することです。

誰かの義務のために、特定の製品と互換性/展開する必要がありますか?それらを無視するか、そうでなければ彼らを説得する方法はありませんか?もしそうなら、あなたの答えがあります。

EJBを使用する必要がありますか?本当に?可能な場合は避けてください。これらは、非常に大規模なエンタープライズクラスのシステムでのみ必要です。それらは単なるツールであり、大きなツールであることを覚えておいてください(「ゴールデンスレッジハンマー」と言うことができますか?)。それらは酷使されすぎているので、本当に必要なのかどうか本当に疑問です。必要な場合は、お気に入りのJettyを含むいくつかのオプションが削除されます。

JMS、ESBなど、他の主要なJ2EEテクノロジーを使用する必要がありますか?もしそうなら、そしてあなたは本当にそれなしではできません、そしてあなたは再び本格的なJ2EEコンテナに制約されます。たとえば、BPMにコミットする前に慎重に検討して調査し、(ほぼ)すべてのコストでAquaLogic BPMを避けます。極端にinいです。

本格的なJ2EEコンテナを本当に使用する必要がある場合は、オープンソースがより堅牢で、サポートが良好で、費用対効果が高いため、最初にオープンソースを検討してください。彼らはより大きな顧客ベースとよりオープンなサポート対話を持っているので、彼らはより良い修正をより速く得る傾向があります。ただし、Resinは未熟であり、GlassFishまたはJBossに比べて避けたいと思います。デプロイとサポートに問題があることがわかりました。幅広い顧客ベース、成熟度などの理由で、JBossを好むでしょう。GlassFishは自動化されたビルド/デプロイメントプロセスに組み込むのが難しくなりますが、特定の機能(必要な場合)の方が良いかもしれません。

Apacheが必要な特別な理由はありますか?次に、Tomcatに傾くと、おそらく何かが追加されます。

サーブレットだけで対応できますか?次に、Jettyを使用します。これは、最軽量、最速、最も簡単で、最も柔軟なソリューションです。 Jettyを使用できるようになることに傾倒している場合、その理由に関するすべての仮定に疑問を呈するでしょう。 YAGNIが適用されます。

JettyでStringTemplate / WebStringTemplateを使用するのが最適です。ライセンス料、評判、サポートなどを一切必要としない、クリーンで堅牢、高速、保守可能なソリューションです。それが今日の始まりです。

ほとんどのアプリケーション/システムは、適切なアーキテクチャ/設計を備えたサーブレットとJDBCだけが本当に必要なときに、多くの派手なJ2EE機能を選択します。もっと必要だと思う理由を質問してください。

本格的なコンテナのうち、MAJORパブリックWebサイトをサポートしている場合を除き、WebLogicとWebSphereは避けます(私の現在の雇用主のWebサイトはWebLogicにデプロイされており、月あたり1,100万件以上のヒットがあり、他のWebサイトは同等です)。 WebLogicの本当の主張は、比較的簡単なクラスタリングですが、(ほとんど)すべてのコストで、独自のベンダーロックイン機能を避けます。 WebSphereは単なる悪夢であり、文字通りすべての犠牲を払って回避します。過去にカップルをやった後、WebSphereを含むプロジェクトを行うことを拒否します。プロプライエタリ機能の使用を促進する特別なニーズがない限り、どちらの製品も多額のライセンス料の価値はありません。多くのフォーチュン500企業のシニアアーキテクト/エンジニアとしての10年で、私はまだそのような必要性を見ていません。その一方で、私はそのような独自の製品を選ぶことによる痛みをたくさん見ました。

非常に大規模でトラフィックの多い公開Webサイトであっても、プロプライエタリ製品にはまだ疑問があります。私は、年間数百万ドルのライセンス料を、優れたハードウェアと、優れたコンサルタントの一握りからの質の高い時間に費やして、単純なスケーラビリティソリューションに対処したいと考えています。その後、年間数百万ドルを使用できます

他のヒント

「アプリケーションサーバー」という用語あいまいです。 GlassFish v3では、たとえば従来のWebコンテナーから小さく始め、進化して(OSGiと単純な「コンテナーの追加」機能を使用して)好きなものを追加できます:JPA、JAX-RS、EJB、JTA、JMS、 ESBなど...しかし、同じ製品、同じ管理インターフェイスなどです。これは、アプリケーションサーバーとしての資格がありますか? -アレクシス(サン)

私が通常自問する最初の質問は、「Tomcatでこれを実行できますか?」です。 JMSまたはJTAが必要なために答えが「いいえ」の場合、アプリケーションサーバーに頼ります。

約8年前、WebLogicの使いやすさとライセンス/コストモデルに満足して、WebLogic 8を使用しました。 2つのプロジェクトに使用しました。1つはWebサービスで、もう1つはポータルです。これらのプロジェクトのいずれでも、WebLogicまたはWebLogic Portalで問題は発生しませんでした。

過去2年間、私はWebSphereで働いていました。 IBMと交渉したときはいつでも、常にWebLogicの同等の2倍のコストがかかりましたが、企業ポリシーではWebSphereを使用する必要がありました。 WebSphereの学習曲線はWebLogicよりもかなり急であることがわかり、ビルド/デプロイ/テストのライフサイクルは非常に時間がかかり、開発環境でTomcatを使用しました。しかし、私がWebSphereで抱えていた最大の問題は、web.xmlを解析する新しい問題を実行するためだけに次のパッチリリースにアップグレードせざるを得なかったバグに遭遇したときでした。すべての作業を行うには48時間のシフトが必要でした。

現時点では、JBossを使用しています。約3か月前、TomcatとJetspeed 2を使用して新しいプロジェクトに着手しようとしていましたが、Jetspeed 2は現在少し停滞しているようで、JBoss Portal 2.7.0がJSR 286 / Portlet 2.0サポートと共にリリースされたことがわかりました。 JBossを試してみたところ、セットアップと管理が非常に簡単でした。ビルド/デプロイ/テストサイクルは非常に迅速であり、Spring XMLファイルをどこかで変更していない限り、サーバーを再起動する必要はほとんどありません。

jBossを3〜4年使用しています。

jBossの引数:

  1. オープンソース。
  2. 商用サポートが利用可能。
  3. 大規模でアクティブなユーザーコミュニティ。

jBossに対する引数:

  1. 一般アクセスなし、サポートされているJava EE 5コンテナーリリース。
  2. 多くのドキュメントがありますが詳細です。 "どうすればxを実行できますか? '';
  3. 4.xの管理ツールは、他の商用製品と比較して貧弱です。

GlassFish 3.1をチェックしてください! Java EE 6ベースのGlassFish v3カーネルに基づいて構築されたバージョン3.1は、クラスタリング、集中管理、および高可用性を実現します。

http://blogs.oracle.com/nazrul/entry/glassfish_3_1詳細については。

ここで説明しなかったもう1つのポイントはパフォーマンスです。サービスの種類またはユーザーの数のためにこれが懸念事項である場合、以下が適用されます。

  • TomcatはGlassfishより遅いようです
  • GlassfishはResinより遅いようです
  • ResinはG-WAN + Javaよりもはるかに遅い

G-WANはJVMのみに依存していることに注意してください。(明示的に指定されていない限り)それ以上のコンテナは使用しないため、Webアプリケーションのパフォーマンスが重要な部分に予約できます。

G-WANは他の言語(C、C ++、C#、D、Objective-C)をサポートしているため、他のタスクのためにJavaを保持しながら、生のCでアプリケーションの一部を処理することもできます。

お好みのOSを決定基準として含めることができます。 OSとアプリサーバーに同じベンダーを使用している場合、サポートが容易になるはずです。すでに一方または両方のベンダーと関係を持っている場合は、それらがうまく対処できるかどうかを検討してください。

技術的な観点から、GlassFishを選択するのは、最近のイノベーションをサポートしているからです。とにかく、JBossが悪いとは思わない。単に最新ではない。

私の経験のほとんどはWebLogicに関するものですが、JBossとGlassFishを使用しました。完全なSunオープンソーススタック(OpenSolaris、GlassFish、MySQL)で新しいサイトをリリースしたばかりで、わずかな不満だけで素晴らしい経験になりました。

まだ、WebLogicは市場で最高のJava EEアプリサーバーだと思います。これらのライセンス料を支払う余裕があれば価値があると思います。

Tomcat、OpenEJB、およびActiveMQを組み合わせて、どれだけ遠くまで行けるかを見て驚いた。それは低コストの選択肢のように思えます。

また、Spring dm Serverを調べます。 Tomcatに基づいていますが、彼らが追加したOSGiのピースはどこにでも短い順序であると思います。 Springフレームワークと同じ品質でできていれば、非常に優れたものになります。

別の方法:アプリサーバーをまったく使用しません。

http://www.atomikos.com/Publications/J2eeWithoutApplicationServer

Webプロジェクトでは、必要に応じて軽量のWebコンテナを保持し、Wicketのようなものと組み合わせて、JSP / JSFまたはstrutsの複雑さを回避します。

HTH ガイ

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