43 votes

Pourquoi Jboss est-il "meilleur" que Tomcat?

Je commence actuellement un nouveau développement d'application. L'architecte de l'application insiste sur le fait que nous utilisons JBoss5 parce que c'est "meilleur". Quelqu'un at-il une définition plus large de "mieux" (si c'est le cas)?

J'ai de l'expérience dans l'utilisation de Tomcat5 et 6 dans des applications à grande échelle avec un grand nombre d'utilisateurs et cela se gère plutôt bien (à mon humble avis ). Les deux fonctionneraient sur un RedHat6 dans des conditions matérielles identiques (au cas où la mise en œuvre compte).

Merci d'avance

68voto

Javid Jamae Points 2971

Dire que tout outil ou le cadre est juste "mieux" est ridicule. Il dépend toujours de la situation, l'architecture, etc. Vous n'avez pas forcément envie d'utiliser un marteau pour enfoncer une vis.

J'ai écrit JBoss dans l'Action, j'ai donc évidemment, comme la technologie JBoss, mais je serai le premier à dire que JBoss peut-être exagéré dans de nombreuses situations. Par exemple, pour les deux derniers sites que j'ai développé, il ne fait plus de sens pour construire avec du Graal et de la déployer sur un Tomcat autonome instance.

C'est un peu injuste de dire que tout ce que vous obtenez lors de l'utilisation de JBoss est EJB et JMS. JBoss offre de nombreux services et fonctionnalités, y compris:

  • Servlet/JSP contenant
  • JNDI
  • EJB
  • JTA
  • clustering
  • la mise en cache
  • JMS
  • Source de données / gestion des Ressources
  • JMX intégration
  • OSGi soutien
  • web services
  • portails
  • Web Haricots (Couture)
  • Certaines consoles d'administration
  • un conteneur IoC
  • etc.

La chose qui attire de nombreux architectes de JBoss, c'est sa flexibilité. Il utilise une architecture de plugin qui vous permet d'ajouter et de supprimer des services. Comme d'autres l'ont dit, en utilise Tomcat comme son conteneur de Servlet, de sorte que vous pouvez littéralement whittle JBoss là où elle est pratiquement juste un serveur Tomcat. Quel est l'intérêt de faire cela? Vérification Future si vous pensez que vous allez utiliser d'autres fonctionnalités de JBoss.

Ces services JBoss sont pré-intégrés et de s'efforcer de fournir un modèle de déploiement qui minimise votre effort dans l'écriture de l'application de la logique ou de la configuration d'intégrer vous-même. Cela étant dit, d'autres frameworks comme Spring font un excellent travail de soutien à un uniforme des façons d'intégrer de nombreuses bibliothèques populaires et des cadres. Mais depuis qu'ils se concentrent sur l'intégration de la 3e partie des bibliothèques, de l'interopérabilité entre les services est à vous. Parce que JBoss est la construction de la services et l'intégration plate-forme, ils prennent le temps de développer (et le soutien) pour l'interopérabilité.

Quelques questions à se poser lors du choix sont:

  • Allez-vous utiliser la norme JavaEE éléments architecturaux comme les EJB?
    • BTW, EJB peut fonctionner en autonome Tomcat à l'aide de JBoss conteneur embarqué, donc si EJB est tout ce que vous utilisez, alors vous n'avez pas encore les utiliser JBoss
  • Allez-vous utiliser les Services Web, Portails, JMS?
  • Vous êtes à la recherche dans la construction du Web de Haricots ou de Couture?
  • Quelles plates-formes de déploiement (Tomcat, JBoss, etc) ne votre IL, de soutien et de développement personnel utilisez actuellement? Si vous allez utiliser quelque chose de nouveau, vous devrez payer des frais supplémentaires pour apprendre la nouvelle plate-forme.
  • Si vous vendez un produit que les clients se déployer, quel sera l'impact sur les clients de l'organisation.
  • Êtes-vous allez avoir besoin de soutien rémunérés?
    • Vous pouvez trouver de l'aide pour Tomcat par de nombreuses entreprises (y compris Red Hat, je crois).
    • Vous aurez besoin de comparer les coûts, parce que je ne pense pas que JBoss soutien est bon marché, bien que je n'ai pas regardé les prix ces derniers temps.
  • Aurez-vous besoin de faire sophistiqué de clustering?
    • JBoss a quelques merveilleuses capacités de clustering, et vous aurez probablement une bonne prise en charge des clusters par Red Hat. Si, pour une divulgation complète, je n'ai jamais fait aucun complexe clustering avec tous les autres cadres pour pouvoir comparer.
  • Êtes-vous allez avoir besoin avancées de gestion des transactions (transactions distribuées, 2-phase s'engage, etc)

Pas de sonner comme un plug sans vergogne, mais le premier chapitre de JBoss dans l'Action est disponible gratuitement sur l'Manning site web. Si nous ne faisons pas un direct comparaison entre JBoss et d'autres serveurs d'applications et d'environnements de déploiement dans ce chapitre, nous faisons parler les différences architecturales un peu, ce qui est pertinent à votre question.

37voto

duffymo Points 188155

Je suis en train de commencer une nouvelle application développement. L'application de l'architecte insiste nous utilisons JBoss5 parce que c'est "mieux". Faire quelqu'un a une définition plus large de la "mieux" (si c'est la cas)?

Drôle, parce que JBOSS utilise Tomcat comme son moteur de servlet/JSP.

Des sons comme "mieux" signifie "prend en charge les Ejb et JMS", parce que Tomcat hors de la boîte a ni.

Mais ce n'est pas un problème si votre application n'utilise pas les Ejb ou JMS.

Et si vous avez besoin d'eux, vous pouvez les ajouter à Tomcat avec OpenEJB et RabbitMQ ou ActiveMQ.

Je vais demander à votre application arc quand la dernière fois qu'ils ont écrit quelque chose en dehors de diapositives Power Point ou UML documents. La réponse pourrait vous surprendre.

15voto

OscarRyz Points 82553

JBoss est un Serveur d'Application , tandis que Tomcat est un conteneur de Servlet

Donc, JBoss peut-être mieux que Tomcat, dans le sens qu'il contient, ainsi que d'autres composants. C'est tout.

Si vous n'allez pas utiliser ceux des autres composants, vous êtes le gaspillage des ressources. Si vous avez besoin de ces autres composants, puis Tomcat n'est pas assez.

Ça dépend, probablement votre Architecte a quelque chose d'autre à l'esprit.

Je me demande ce qu'aurait-il dit si vous lui demander directement?

6voto

Thilo Points 108673

Ce n'est pas mieux, c'est juste plus. JBoss comprend Tomcat.

5voto

Pascal Thivent Points 295221

Comme @duffymo souligne, JBoss utilise Tomcat pour son conteneur web afin de mieux fait de ne pas beaucoup de sens si l'on compare l'équivalent de choses (c'est à dire Tomcat et le conteneur web partie de JBoss). Et si vous n'allez pas utiliser JTA, Ejb, JMS, JMX, etc, il n'y a pas de réel avantage à l'aide de JBoss, en particulier au cours du développement (Tomcat est plus léger et démarre plus vite, ce qui est souvent apprécié par les équipes de développement).

Il y a certains cas où vous préférez JBoss pour la production bien (je suis toujours en supposant que vous n'êtes pas en utilisant des Ejb, etc.):

  • L'équipe de production est de les dresser ou à l'utilisation de JBoss dans la production, les outils (déploiement, suivi, etc) sont adaptés pour JBoss.
  • La société a un contrat de support pour JBoss (mais vous pouvez également obtenir de l'aide pour Tomcat).

Mais je ne suis pas sûr que c'est ce que l'application de l'architecte voulait dire. Je voudrais essayer de discuter de ce choix avec l'architecte, il a peut-être une justification à l'explication. Et si vraiment JBoss doit être utilisé en production, vous pouvez toujours utiliser Tomcat ou Jetty au cours du développement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X