Это действительно непростые джунгли для понимания веб-сервисов. Страница википедии неплохая, но все же в ней отсутствуют некоторые элементы.
Я пометил этот ответ как вики сообщества, поэтому не стесняйтесь его обновлять или исправлять. Это только основа.
Раздутый термин:
Во-первых, термин веб-сервис используется для обозначения многих вещей. Хотя многие люди используют его для обозначения веб-службы на основе 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 и обнаружение - Похоже, некоторые люди думали, что веб-сервис будет опубликован в публичном реестре, чтобы его мог обнаружить потенциальный потребитель. Я не думаю, что это видение получило большой импульс.
ответ дан 30 November 2019 в 07:38
поделиться