[解決済み] 現在、新規プロジェクトのJava EEサーバーとして、JBossとGlassfish(またはその他)のどちらを使用しますか?[クローズド]
質問内容
もしあなたが今日、約1年後に終了する予定の新しいJava EEプロジェクトを開始するとしたら、どのアプリケーションサーバーを選びますか、そしてその理由は?
あなたの答えの一部は、あなたの決定に対する論拠を含むべきです。また、選択したJava EEサーバーと市場にある他の利用可能なサーバーについて、どれだけの経験を持っているかも含めてください。これらは、あなたの答えに費やされた調査と思考の感覚を得るために興味深いものです。
どのように解決するのですか?
私は過去10年以上にわたって、WebLogic、WebSphere、JBoss、GlassFish、Resin、Jetty、Tomcat、およびその他数種類を使用してきました。 ですから、もし私が新しいプロジェクトを検討しているのなら、まずいくつかの質問を自分に投げかけます。 もう質問しないことの1つは、私がママのために泣くまで拷問されない限り、JSPを使うことをきっぱりと拒否することでしょう。
誰かの命令で、特定の製品に互換性/デプロイしなければならないのでしょうか。 彼らを無視したり、別の方法で彼らを説得したりする方法はないのでしょうか。 もしそうなら、そこにあなたの答えがあります。
EJBを使わなければならないのでしょうか? 本当に? 可能な限り避けてください。本当に必要なのは、非常に大規模な、エンタープライズクラスのシステムだけです。 EJBは単なるツールであり、大きなものであることを忘れないでください(quot;Golden Sledgehammer?と言える人はいますか?) これらは酷使されているので、本当に必要なのかどうか、よく考えてみてください。 もし必要なら、私のお気に入りであるJettyを含むいくつかの選択肢を排除することになります。
JMSやESBなど、他の主要なJ2EE技術を使用する必要がありますか? もしそうで、本当にそうしなければならないのであれば、あなたは再び本格的な J2EE コンテナに制約されることになります。 たとえば、BPM にコミットする前に慎重に考え、調査し、AquaLogic BPM を (ほとんど) 全力で回避してください。
もし本当に本格的なJ2EEコンテナを使用しなければならないのであれば、まずオープンソースを検討してください。 なぜなら、より堅牢で、よりよくサポートされ、より費用対効果が高いからです。彼らはより大きな顧客ベースを持ち、よりオープンなサポート対話を持っているので、より良い修正をより早く得られる傾向にあります。 しかし、Resinは未熟であり、GlassFishやJBossと比較すると、私は避けるべきでしょう。 JBossの方が顧客基盤が広く、成熟しているなどの理由から、私はJBossを選ぶと思います。 GlassFish は、自動化されたビルド/デプロイメント プロセスに組み込むのが難しいですが、いくつかの特定の機能 (必要な場合) については、より素晴らしいかもしれません。
Apacheを必要とする特別な理由がありますか? それなら、Tomcatに傾倒し、おそらく何かを追加します。
サーブレットだけでやっていけますか? それは最も軽量で、最も速く、最も簡単で、最も柔軟なソリューションです。 Jetty を使用できないことに傾いているのであれば、その理由についてのすべての仮定を疑ってみることにします。 YAGNIが適用されます。
ベストは、Jetty上でStringTemplate/WebStringTemplateを使うことです。クリーンで、堅牢で、速く、保守可能なソリューションで、ライセンス料もなく、確かな評判とサポートなどがあります。 ライセンス料がなく、評判とサポートがしっかりしているなど、きれいで堅牢な、高速で保守性の高いソリューションです。
ほとんどのアプリケーションやシステムは、本当に必要なのはサーブレットとJDBCとまともなアーキテクチャ/デザインだけなのに、たくさんの派手なJ2EE機能を選んでいます。 なぜもっと必要だと思うのか、疑問に思ってください。
本格的なコンテナのうち、WebLogic と WebSphere は、大規模な公開 Web サイトをサポートするのでなければ、避けるべきでしょう (私の現在の雇用者の Web サイトは WebLogic で展開されており、毎月 1100 万以上のヒットがあります。他のサイトも同様です)。 WebLogicの本当の名声は、その比較的簡単なクラスタリングですが、その独自のベンダーロックイン機能を(ほとんど)すべてのコストで避けてください。 WebSphereは悪夢のようなもので、文字通り全力で避けたい。過去に何度かWebSphereを使ったプロジェクトに携わったことがあるが、その時は拒否した。 どちらの製品も、本当に独自の機能を使わなければならないような特別なニーズがない限り、多額のライセンス料を払う価値はない。 フォーチュン500の多くの企業でシニアアーキテクト/エンジニアとして10年間働いてきましたが、そのようなニーズにはまだ出会っていません。 一方、そのようなプロプライエタリな製品を選んだがために、多くの人が苦しんでいるのを見てきました。
本当に大規模で、トラフィックが多く、公開されている Web サイトであっても、プロプライエタリな製品は疑問が残ります。 私はむしろ、年間数百万ドルのライセンス料を、優れたハードウェアと、シンプルなスケーラビリティ ソリューションに取り組むための一握りの本当に優れたコンサルタントの質の高い時間に費やしたいと思っています。 そうすれば、年間数百万ドルの余剰資金は、その素晴らしいウェブサイトで販売するに値する何かを生産するために使うことができるでしょう...。
編集: 考慮すべきもうひとつの要素...
私は最近、以下のものに出会いました。 テラコッタ . 私はすべてを再考し、近いうちに重要なシステムに導入することを検討しています。 特に、Terracotta は他の何よりも優れたクラスタリングを行うので、そのクラスタリングのために WebLogic を推奨することはもうないでしょう。
関連
-
をインスタンス化することができません。
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
自動配線された依存性のインジェクションに失敗しました。
-
linux run jarfile Invalid or corrupt jarfile error.
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
[解決済み] Androidの開発でJava 8を使うことは可能ですか?
-
[解決済み】Javaの「ダブルブレース初期化」の効率化?
-
[解決済み] EJB - リモートおよび/またはローカルインターフェイスを使用するとき?
-
[解決済み] Javaで個人/趣味のプロジェクトに使用するパッケージの命名規則を教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java Exceptionが発生しました エラー解決
-
ファインバグタイプ
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
[オリジナル】java学習ノート【II】よくあるエラー クラスパス上のクラスファイルが見つからない、またはアクセスできない場合
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
Java(1)仕上げの基本概念+eclipseのインストール構成
-
このラインで複数のマーカーを解決する方法
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決