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

EJB Vs WebService? Точка зрения производительности

Ну, сейчас у нас есть ситуация. Я думал, что stackoverflow - лучшее место для обсуждения.

Фон:

У нас есть 2 сервера Enterprise Application JVMs и одно приложение, развернутое на каждом из них. нам нужно активировать вызов бизнес-функции с одной машины на другую. Предположим, что один из них является клиентом, а другой - сервером.

Теперь из представления точки производительности лучше всего подходит для разработки серверного приложения.

учитывая следующие вещи:

У меня есть 2 варианта:

  • Чистое приложение EJB означает EJB-клиент и компонент EJB-сервера

  • WebService Обычный подход Java (нет веб-службы над EJB, потому что это просто беспорядок)

Мои показатели производительности: скорость: какой подход к дизайну будет обрабатывать запрос быстрее. Мое деловое приложение будет развернуто на 32-битной машине точно!

Также обратите внимание, что есть 2 JVM, один - 32 бит и 64 бит (избегая этой ситуации, это неизбежно прямо сейчас)

Просьба представить вашу обратную связь

Привет

Четан

4b9b3361

Ответ 1

Если "Web Services" означает веб-службы SOAP, EJB должны быть быстрее независимо от того, как вы это делаете.

Плюсы:

  • Сериализация Java быстрее, чем XML Web Services
  • Сериализация и анализ XML использует больше памяти, чем прямая сериализация, EJBs сохранить память
  • EJB выражаются в прямых Java-интерфейсах и объектах значений. Для веб-служб вам может потребоваться добавить слой сопоставления, такой как XmlBeans или JAXB.
  • Большинство протоколов EJB позволяют вам легко повторно использовать соединения TCP/IP между вызовами

Минусы:

  • Выполнение правильного определения первого XML-сообщения для дизайна приведет к отмене клиента и сервера
  • Легче изменить форматы сообщений, учитывая, что дополнительный слой косвенности
  • Реализации EJB исторически были огромными и медленными, как в больших, чем стеки веб-сервисов (но новые реализации EJB, такие как Apache OpenEJB, небольшие, легкие и встраиваемые)

Но если вам не нужна распределенная обработка транзакций, просто используйте RMI. У него есть плюсы, но ни один из недостатков EJB. Он был веками, но он все еще работает просто денди.

Ответ 2

Он не должен быть тем или иным. Вы можете иметь всю свою бизнес-логику в EJB, а также предоставить фасад веб-сервиса для доступа к EJB. Также помните, что существуют различные типы архитектур веб-сервисов. SOAP - это то, о чем большинство людей думает, когда они слышат "веб-сервис", но вы также можете посмотреть на JAX-RS.

Отправка данных как XML через HTTP ужасно неэффективна. С другой стороны, это дает вам большую гибкость на стороне клиента. Веб-сервисы могут быть использованы практически на любой платформе или на языке программирования.