Подтвердить что ты не робот

Почему Jboss "лучше", чем Tomcat?

В настоящее время я начинаю разработку нового приложения. Архитектор приложений настаивает на использовании JBoss5, потому что он "лучше". Кто-нибудь имеет более широкое определение "лучше" (если это так)?

У меня есть опыт использования Tomcat5 и 6 в крупномасштабных приложениях с большими пользовательскими нагрузками, и он отлично справляется (IMHO). Оба будут работать над RedHat6 в идентичных аппаратных условиях (в случае реализации).

Заранее спасибо

4b9b3361

Ответ 1

Сказать, что любой инструмент или структура просто "лучше", смешно. Это всегда зависит от ситуации, архитектуры и т.д. Вы не обязательно хотите использовать молоток для приведения винта.

Я написал JBoss в действии, поэтому мне, очевидно, нравится технология JBoss, но я буду первым, кто скажет, что JBoss может быть чрезмерным во многих ситуациях. Например, для последних двух сайтов, которые я разработал, было больше смысла строить с Grails и развертывать на автономном экземпляре Tomcat.

Немного несправедливо сказать, что все, что вы получаете при использовании JBoss, это EJB и JMS. JBoss предлагает множество услуг и функций, в том числе:

  • Контейнер сервлета /JSP
  • JNDI
  • EJB
  • JTA
  • кластеризация
  • кэширование
  • JMS
  • Управление источниками данных/ресурсами
  • Интеграция JMX
  • Поддержка OSGi
  • веб-службы
  • порталы
  • Веб Beans (Шов)
  • Некоторые административные консоли
  • контейнер IoC
  • и др.

То, что привлекает многих архитекторов к JBoss, - это его гибкость. Он использует архитектуру плагина, которая позволяет добавлять и удалять службы. Как говорили другие, в использовании Tomcat в качестве контейнера Servlet, так что вы можете буквально уничтожить JBoss до того места, где он практически является только сервером Tomcat. Какая польза от этого? Будущая проверка, если вы думаете, что собираетесь использовать другие функции JBoss.

Эти службы в JBoss поставляются с предварительной интеграцией и стремятся обеспечить согласованную модель развертывания, которая сводит к минимуму ваши усилия при написании логики или конфигурации приложения для их интеграции. При этом другие фреймворки, такие как Spring, также отлично справляются с поддержкой единообразных способов интеграции многих популярных библиотек и фреймворков. Но поскольку они сосредоточены на интеграции сторонних библиотек, взаимодействие между службами зависит от вас. Поскольку JBoss создает службы и платформу интеграции, они тратят время на разработку (и поддержку) для взаимодействия.

Некоторые вопросы, которые следует задать при выборе:

  • Собираетесь ли вы использовать стандартные архитектурные компоненты JavaEE, такие как EJB?
    • BTW, EJB можно запускать в автономном Tomcat с помощью встроенного контейнера JBoss, поэтому, если EJB - это все, что вы используете, вам все равно не нужно использовать JBoss
  • Вы собираетесь использовать веб-службы, порталы, JMS?
  • Вы смотрите на создание с помощью Web Beans или Seam?
  • Какие платформы развертывания (Tomcat, JBoss и т.д.) используют ваши ИТ-специалисты, специалисты по поддержке и развитию в настоящее время? Если вы собираетесь использовать что-то новое, вы понесете дополнительные расходы, чтобы изучить новую платформу.
  • Если вы продаете продукт, который будут развертывать клиенты, какое влияние это окажет на ИТ-организацию клиентов.
  • Вам нужна платная поддержка?
    • Вы можете найти поддержку для Tomcat через многие компании (включая Red Hat, я считаю).
    • Вам нужно сравнить затраты, потому что я не думаю, что поддержка JBoss дешева, хотя в последнее время я не смотрел цены.
  • Вам понадобится сделать сложную кластеризацию?
    • JBoss обладает некоторыми замечательными возможностями кластеризации, и вы, вероятно, получите хорошую поддержку кластеризации через Red Hat. Хотя для полного раскрытия я никогда не делал сложной кластеризации с любыми другими структурами, которые можно было бы сравнить.
  • Вам понадобится расширенное управление транзакциями (распределенные транзакции, двухфазные фиксации и т.д.).

Не звучать как бесстыдный плагин, но первая глава JBoss в действии доступна бесплатно на веб-сайте Manning. Хотя мы не проводим сравнение direct между JBoss и другими серверами приложений и средами развертывания в этой главе, мы немного рассказываем об архитектурных различиях, что имеет отношение к вашему вопросу.

Ответ 2

В настоящее время я запускаю новое приложение развитие. Архитектор приложений настаивает мы используем JBoss5, потому что он "лучше" . Делать у кого есть более широкое определение "лучше" (если это так)?

Забавно, потому что JBOSS использует Tomcat в качестве своего сервлета/JSP-движка.

Звучит как "лучше" означает "поддерживает EJB и JMS", потому что Tomcat из коробки не имеет ни того, ни другого.

Но это не проблема, если ваше приложение не использует EJB или JMS.

И если они вам понадобятся, вы можете добавить их в Tomcat с OpenEJB и RabbitMQ или ActiveMQ.

Я бы попросил вашу арку приложения, когда в последний раз они писали что-то помимо слайдов Power Point или документов UML. Ответ может вас удивить.

Ответ 3

JBoss является сервером приложений, а Tomcat - контейнер сервлетов

Итак, JBoss может быть лучше, чем Tomcat, в том смысле, что он содержит его, плюс другие компоненты. Это.

Если вы не собираетесь использовать эти другие компоненты, вы тратите ресурсы. Если вам нужны эти другие компоненты, Tomcat недостаточно.

Это зависит, возможно, у вашего архитектора есть что-то еще в виду.

Интересно, что он скажет, если вы спросите его прямо?

Ответ 4

Это не лучше, это просто больше. JBoss включает Tomcat.

Ответ 5

Как указывает @duffymo, JBoss использует Tomcat для своего веб-контейнера, поэтому лучше не имеет смысла, если мы сравним эквивалентные вещи (т.е. Tomcat и веб-контейнерную часть JBoss). И если вы не собираетесь использовать JTA, EJB, JMS, JMX и т.д., Нет никакого реального преимущества при использовании JBoss, особенно во время разработки (Tomcat легче и работает быстрее, это часто оценивают команды разработчиков).

Есть случаи, когда вы можете предпочесть JBoss для производства, хотя (я все еще предполагаю, что вы не используете EJB и т.д.):

  • Производственная команда обучается или используется для использования JBoss в производстве, инструменты (развертывание, мониторинг и т.д.) предназначены для JBoss.
  • У компании есть контракт на поддержку JBoss (хотя вы также можете получить поддержку Tomcat).

Но я не уверен, что это означало архитектуру приложения. Я бы попытался обсудить этот выбор с архитектором, может быть, у него есть объяснение обоснования. И если действительно JBoss должен использоваться в производстве, вы всегда можете использовать Tomcat или Jetty во время разработки.

Ответ 6

Если вы используете JBoss, вы можете заплатить Jboss.org за поддержку. Но это не относится к Tomcat.

Это правда, однако RedHat (который выкупил Jboss.org) потребует от вас перейти на одну из поддерживаемых версий JBoss

Ответ 7

JBoss соответствует спецификации J2EE, он очень хорошо поддерживает спецификацию J2EE, например EJB, JTA, JMS, JNDI и т.д. Tomcat - это только контейнер сервлетов, хотя он также поддерживает спецификацию J2ee. Если вы хотите использовать компонент J2EE, вам следует сначала рассмотреть JBoss.

Забыл, JBoss очень хорошо поддерживает JMX, особенно в версии 4. *. Я испытал проект, у него нет веб-интерфейса, JBoss используется так же, как платформа и контейнер EJB для интеграции всего отдельного приложения на нем, используя MBean.