web-dev-qa-db-ja.com

JbossがTomcatよりも「優れている」のはなぜですか?

現在、新しいアプリの開発を開始しています。アプリのアーキテクトは、私たちがJBoss5を使用していると主張しています。誰かが「より良い」のより広い定義を持っていますか(その場合)?

ユーザー負荷が大きい大規模なアプリケーションでTomcat5および6を使用した経験があり、かなりうまく処理されます(IMHO)。どちらもRedHat6上で同じハードウェア条件で実行されます(実装が重要な場合)。

前もって感謝します

43
Chepech

どんなツールやフレームワークも「より良い」と言うのはばかげています。それは常に状況、アーキテクチャなどに依存します。ハンマーを使用してネジを打ち込む必要は必ずしもありません。

私はJBoss in Actionを作成したので、明らかにJBossテクノロジーが好きですが、JBossは多くの状況で過剰になる可能性があると最初に言うでしょう。たとえば、私が開発した最後の2つのサイトでは、Grailsを使用してビルドし、スタンドアロンのTomcatインスタンスにデプロイする方が理にかなっています。

JBossを使用する際に得られるのはEJBとJMSだけであると言うのは少し不公平です。 JBossは、以下を含む多くのサービスと機能を提供します。

  • サーブレット/ JSPコンテナ
  • JNDI
  • EJB
  • JTA
  • クラスタリング
  • キャッシング
  • JMS
  • データソース/リソース管理
  • JMX統合
  • OSGiサポート
  • ウェブサービス
  • ポータル
  • Web Beans(シーム)
  • 一部の管理コンソール
  • ioCコンテナ
  • 等.

多くのアーキテクトをJBossに引き付けているのは、その柔軟性です。サービスを追加および削除できるプラグインアーキテクチャを使用しています。他の人が言ったように、はサーブレットコンテナとしてTomcatを使用しているので、JBossを文字通り、実質的には単にTomcatサーバーであるところまで削ることができます。これを行う利点は何ですか? JBossの他の機能を利用する予定がある場合の将来の保証。

JBossのこれらのサービスは事前に統合されており、アプリケーションロジックまたは構成を自分で統合するための労力を最小限に抑える一貫した展開モデルを提供するように努めています。そうは言っても、Springのような他のフレームワークも、多くの一般的なライブラリとフレームワークを統合する統一された方法をサポートする素晴らしい仕事をします。ただし、サードパーティライブラリの統合に重点を置いているため、サービス間の相互運用性はユーザー次第です。 JBossはサービスと統合プラットフォームを構築しているため、相互運用性の開発(およびサポートの提供)に時間を費やしています。

選択を行う際に尋ねるべきいくつかの質問は次のとおりです。

  • EJBのような標準のJavaEEアーキテクチャコンポーネントを使用しますか?
    • ところで、EJBはJBoss組み込みコンテナを使用してスタンドアロンのTomcatで実行できるため、EJBだけで使用している場合でも、JBossを使用する必要はありません。
  • Webサービス、ポータル、JMSを利用しますか?
  • Web BeansまたはSeamを使用した構築を検討していますか?
  • IT、サポート、および開発スタッフが現在使用しているデプロイメントプラットフォーム(Tomcat、JBossなど)は何ですか?新しいものを使用する場合は、新しいプラットフォームを学習するための追加費用が発生します。
  • 顧客が展開する製品を販売する場合、顧客のIT組織にどのような影響がありますか。
  • 有料のサポートが必要ですか?
    • Tomcatのサポートは、多くの企業(Red Hatを含む)を通じて見つけることができます。
    • 最近価格を調べていませんが、JBossのサポートは安いとは思わないので、コストを比較する必要があります。
  • 高度なクラスタリングを行う必要がありますか?
    • JBossにはいくつかの素晴らしいクラスタリング機能があり、おそらくRed Hatを介して優れたクラスタリングサポートを得るでしょう。ただし、完全に開示するために、他のフレームワークとの複雑なクラスタリングを行って比較することはありません。
  • 高度なトランザクション管理(分散トランザクション、2フェーズコミットなど)が必要ですか?

恥知らずなプラグインのように聞こえるわけではありませんが、JBoss in Actionの最初の章は、Manning Webサイトの 無料で利用可能 です。この章では、JBossと他のアプリケーションサーバーおよびデプロイメント環境とのdirect比較は行いませんが、アーキテクチャの違いについては少し説明しますが、あなたの質問に関連しています。

68
Javid Jamae

現在、新しいアプリの開発を開始しています。アプリアーキテクトは、JBoss5の方が「優れている」ため、JBoss5を使用すると主張しています。誰かが「より良い」のより広い定義を持っていますか(その場合)?

おもしろい。JBOSSはサーブレット/ JSPエンジンとしてTomcatを使用しているからだ。

「より良い」のような音は、「EJBとJMSをサポートする」ことを意味します。Tomcatには、そのままではどちらもないためです。

ただし、アプリケーションがEJBまたはJMSを使用していない場合は問題ありません。

また、それらが必要な場合は、OpenEJBとRabbitMQまたはActiveMQを使用してTomcatに追加できます。

最後にPower PointスライドやUMLドキュメント以外の何かを書いたのはいつか、アプリのArchにお願いします。その反応はあなたを驚かせるかもしれません。

37
duffymo

JBossは アプリケーションサーバー であり、Tomcatは サーブレットコンテナー です。

したがって、JBossは、それが含まれているという意味で、Tomcatよりも優れている可能性があります。それでおしまい。

これらの他のコンポーネントを使用しない場合は、リソースを浪費しています。これらの他のコンポーネントが必要な場合は、Tomcatでは不十分です。

それは、おそらくあなたのアーキテクトが何か他のことを考えているということです。

あなたが直接彼に尋ねたら、彼は何を言うだろうか?

15
OscarRyz

それは良くはありません、それだけです。 JBossにはTomcatが含まれています。

6
Thilo

@duffymoが指摘するように、JBossはWebコンテナにTomcatを使用するため、同等のもの(つまり、TomcatとWebコンテナパーツ)を比較するとbetterはあまり意味がありません。 JBossの)。また、JTA、EJB、JMS、JMXなどを使用しない場合、JBossを使用しても特に開発中はメリットがありません(Tomcatは軽量で起動も速く、開発チームから高く評価されています)。

JBoss for productionを選択できる場合もあります(ただし、EJBを使用していないことを前提としています)。

  • 本番チームは、本番環境でJBossを使用するようにトレーニングまたは使用されており、ツール(デプロイメント、モニタリングなど)は、JBossに合わせて調整されています。
  • 同社はJBossのサポート契約を結んでいます(ただし、Tomcatのサポートを受けることもできます)。

しかし、これがアプリアーキテクトの意図したことかどうかはわかりません。私はこの選択について建築家と話し合うつもりです、おそらく彼は根拠のある説明を持っています。実際にJBossを本番環境で使用する必要がある場合は、開発中にいつでもTomcatまたはJettyを使用できます。

5
Pascal Thivent

JBossを使用している場合は、Jboss.orgにサポート料金を支払うことができます。しかし、Tomcatはそうではありません。

これは本当ですが、RedHat(Jboss.orgを買収した人)は、JBossのサポートされているバージョンのいずれかに変更する必要があります

2
Dennis C

JBossはJ2EE仕様に準拠しており、EJB、JTA、JMS、JNDIなどのJ2EE仕様を非常によくサポートしています。Tomcatはサーブレットコンテナにすぎませんが、ビットJ2ee仕様もサポートしています。 J2EEコンポーネントを使用する場合は、JBossを最初に検討する必要があります。

ポイントを忘れて、JBossは特にバージョン4. *でJMXを非常によくサポートしています。私はプロジェクトを経験しましたが、Web UIはありません。JBossは、プラットフォームとEJBコンテナーとして使用され、MBeanを使用するすべてのスタンドアロンアプリケーションを統合します。

1
Simon