Как записать эффективные веб-сервисы в Java

Хотя это могло бы появиться как дубликат веб-сервисов Java, я хотел бы знать, Где запустить и продолжаться. В прошлом я инвестировал большую часть времени для нахождения, где запустить, но я не смог. Существует столько жаргонов и хаоса (по крайней мере, для меня!), читая страницы о веб-сервисах. Существует столько условий - как JAX-RPC, JAX-WS, Axis, Rest, Servlet as WebService, EJB's как веб-сервис и другие условия, которые я не знаю. Эта Группа пользователей может консолидировать и дать общий обзор веб-сервисов Java, который легко понять и следовать? Я ценю Вашу доброту и спасибо за Вашу справку.

18
задан Community 23 May 2017 в 12:31
поделиться

2 ответа

Это действительно непростые джунгли для понимания веб-сервисов. Страница википедии неплохая, но все же в ней отсутствуют некоторые элементы.

Я пометил этот ответ как вики сообщества, поэтому не стесняйтесь его обновлять или исправлять. Это только основа.

Раздутый термин:

Во-первых, термин веб-сервис используется для обозначения многих вещей. Хотя многие люди используют его для обозначения веб-службы на основе SOAP, этот термин может использоваться для обозначения любой службы, предоставляемой через веб-интерфейс; это источник путаницы.

Реализация и стиль дизайна:

  • На основе SOAP - SOAP по-прежнему является стандартом де-факто для веб-сервисов. SOAP - это протокол поверх HTTP, который описывает обмен сообщениями и исключениями. SOAP превратился из простого в очень сложный со всеми стандартами WS- * , которые были добавлены позже. Наиболее важные из них: WS-Policy, WS-Security, WS-Addressing, WS-Transaction. Еще одна важная спецификация - MTOM для больших сообщений.
  • RESTful - термин RESTful относится к тому факту, что служба не имеет состояния, и вся соответствующая информация передается как параметр. Также вместо использования протокола, такого как SOAP, используются простые HTTP глаголы , например Получить , Положить , Удалить , Обновить .
  • Без гражданства - WS обычно без гражданства.Обработка бизнес-процессов иногда полагается на так называемые идентификаторы корреляции (с WS-Addressing), которые используются для сопоставления запросов и ответов вместе; это та же идея, что и сохранение идентификатора сеанса в cookie, потому что HTTP не имеет состояния.
  • Stateful - Есть некоторые предложения по созданию WS с отслеживанием состояния, но я мало что об этом знаю.

Реализация и технологические стеки:

  • Сервлет - Самый низкоуровневый способ реализации WS: вы в основном анализируете запрос и отправляете HTTP-ответ самостоятельно.
  • EJB - Начиная с EJB3, EJB можно очень легко представить как веб-службу. Конечно, нужен контейнер EJB.
  • Apache Axis - раньше был популярным технологическим стеком, который сейчас сокращается.
  • Apache CXF - еще один популярный выбор.
  • JBossWS - Еще один популярный выбор.
  • JAX-WS - Официальный стек веб-сервисов от Sun, очень хорошо. Насколько я знаю, этот заменяет JAX-RPC, который был просто переименован в JAX-WS.

Связанные понятия и жаргон:

  • WSDL - Определяет контракт / интерфейс веб-службы в случае WS на основе SOAP.
  • Contract-first - относится к тому факту, что технология способна поддерживать любой заранее предоставленный WSDL.В отличие от технологии реализации, которая будет генерировать WSDL на основе реализации веб-службы, и в этом случае WSDL не всегда можно настроить по мере необходимости
  • Профиль . Чтобы упростить этот беспорядок, они введены профили, которые представляют собой группы связанных спецификаций / возможностей, которые необходимо поддерживать для взаимодействия. Главный из них - это базовый профиль WS-I.
  • UDDI и обнаружение - Похоже, некоторые люди думали, что веб-сервис будет опубликован в публичном реестре, чтобы его мог обнаружить потенциальный потребитель. Я не думаю, что это видение получило большой импульс.
34
ответ дан 30 November 2019 в 07:38
поделиться

Лучшее известное мне объяснение веб-сервисов "contract first" - это модуль веб-сервисов Spring.

0
ответ дан 30 November 2019 в 07:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: