EJB Vs WebService? Точка зрения производительности
Ну, сейчас у нас есть ситуация. Я думал, что stackoverflow - лучшее место для обсуждения.
Фон:
У нас есть 2 сервера Enterprise Application JVMs и одно приложение, развернутое на каждом из них. нам нужно активировать вызов бизнес-функции с одной машины на другую. Предположим, что один из них является клиентом, а другой - сервером.
Теперь из представления точки производительности лучше всего подходит для разработки серверного приложения.
учитывая следующие вещи:
У меня есть 2 варианта:
-
Чистое приложение EJB означает EJB-клиент и компонент EJB-сервера
-
WebService Обычный подход Java (нет веб-службы над EJB, потому что это просто беспорядок)
Мои показатели производительности: скорость: какой подход к дизайну будет обрабатывать запрос быстрее. Мое деловое приложение будет развернуто на 32-битной машине точно!
Также обратите внимание, что есть 2 JVM, один - 32 бит и 64 бит (избегая этой ситуации, это неизбежно прямо сейчас)
Просьба представить вашу обратную связь
Привет
Четан
Ответы
Ответ 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 ужасно неэффективна. С другой стороны, это дает вам большую гибкость на стороне клиента. Веб-сервисы могут быть использованы практически на любой платформе или на языке программирования.