Project

General

Profile

Actions

WEB SERVICES

Вопросы

  1. Что такое веб сервисы?
  2. В чем разница между SOA и web service?
  3. Что такое SOAP?
  4. Что такое REST?
  5. В чем разница между REST и SOAP веб сервисами?
  6. Как бы вы решили какой из REST или SOAP веб сервисов использовать?
  7. Объясните понятие WSDL.
  8. Что такое JAX-WS?
  9. Расскажите о JAXB.
  10. Можем ли мы посылать soap сообщения с вложением?
  11. Что такое MTOM?
  12. Что такое XOP?
  13. Объясните элемент SOAP envelope.
  14. Как определяется пространство имен SOAP?
  15. Что вы знаете о кодирование в SOAP (encoding)?
  16. Что определяет атрибут encodingStyle в SOAP?
  17. Какие два конечных типа веб сервисов используют JAX-WS?
  18. Какие существую правила для кодирования записи header?
  19. Что вы знаете об инструменте wsimport?
  20. Что вы знаете об инструменте wsgen?
  21. Какие вы можете выделить различия между SOAP и другими техниками удаленного доступа?

Ответы

Что такое веб сервисы?

Веб-служба, веб-сервис (англ. web service) - идентифицируемая веб-адресом программная система со стандартизированными интерфейсами. Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML-RPC, REST и т. д.). Веб-служба является единицей модульности при использовании сервисориентированной архитектуры приложения. К характеристикам веб сервисов относят:

  • Функциональная совместимость
  • Расширяемость
  • Возможность машинной обработки описания

В чем разница между SOA и web service?

Сервис-ориентированная архитектура (SOA, service-oriented architecture) - модульный подход к разработке программного обеспечения, основанный на использовании распределённых, слабо связанных (англ. loose coupling) заменяемых компонентов, оснащённых стандартизированными интерфейсами для взаимодействия по стандартизированным протоколам. Программные комплексы, разработанные в соответствии с сервис-ориентированной архитектурой, обычно реализуются как набор веб-служб, взаимодействующих по протоколу SOAP, но существуют и другие реализации (например, на базе jini, CORBA, на основе REST). Веб сервисы реализующие эту концепцию используют XML, JSON и др., а так же интернет протоколы вроде HTTP, SMTP и др.

Что такое SOAP?

SOAP (от англ. Simple Object Access Protocol - простой протокол доступа к объектам; вплоть до спецификации 1.2) - протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC). Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. Официальная спецификация последней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протокола XML-RPC.

SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTP, HTTPS и др. Однако его взаимодействие с каждым из этих протоколов имеет свои особенности, которые должны быть определены отдельно. Чаще всего SOAP используется поверх HTTP.

Что такое REST?

REST (сокр. от англ. Representational State Transfer – "передача состояния представления") - архитектурный стиль взаимодействия компонентов распределённого приложения в сети. REST представляет собой согласованный набор ограничений, учитываемых при проектировании распределённой гипермедиасистемы. В определённых случаях (интернет-магазины, поисковые системы, прочие системы, основанные на данных) это приводит к повышению производительности и упрощению архитектуры. В широком смысле компоненты в REST взаимодействуют наподобие взаимодействия клиентов и серверов во Всемирной паутине. REST является альтернативой RPC.
В сети Интернет вызов удалённой процедуры может представлять собой обычный HTTP-запрос (обычно GET или POST; такой запрос называют REST-запрос), а необходимые данные передаются в качестве параметров запроса. Для веб-сервисов, построенных с учётом REST, то есть не нарушающих накладываемых им ограничений, применяют термин "RESTful".

В чем разница между REST и SOAP веб сервисами?

Некоторые отличия:

  • REST поддерживает различные форматы: text, JSON, XML; SOAP - только XML;
  • REST работает только по HTTP, а SOAP может работать с различными протоколами;
  • REST может работать с ресурсами. Каждый URL это представление какого-либо ресурса. SOAP работает с операциями, которые реализуют какую-либо бизнес логику с помощью нескольких интерфейсов;
  • SOAP на основе чтения не может быть помещена в кэш, а REST в этом случае может быть закэширован;
  • SOAP поддерживает SSL и WS-security, в то время как REST - только SSL;
  • SOAP поддерживает ACID (Atomicity, Consistency, Isolation, Durability). REST поддерживает транзакции, но не один из ACID не совместим с двух фазовым коммитом.

Как бы вы решили какой из REST или SOAP веб сервисов использовать?

REST против SOAP можно перефразировать как "Простота против Стандарта". В случае REST (простота) у вас будет скорость, расширяемость и поддержка многих форматов. В случае с SOAP у вас будет больше возможностей по безопасности (WS-security) и транзакционная безопасность (ACID).

Объясните понятие WSDL.

WSDL (англ. Web Services Description Language) - язык описания веб-сервисов и доступа к ним, основанный на языке XML.

Каждый документ WSDL 1.1 можно разбить на следующие логические части:

  • определение типов данных (types) - определение вида отправляемых и получаемых сервисом XML-сообщений;
  • элементы данных (message) - сообщения, используемые web-сервисом;
  • абстрактные операции (portType) - список операций, которые могут быть выполнены с сообщениями;
  • связывание сервисов (binding) - способ, которым сообщение будет доставлено.

web WSDL

Что такое JAX-WS?

Java API for XML Web Services (JAX-WS) - это прикладной программный интерфейс языка Java для создания веб-служб, являющийся частью платформы Java EE. JAX-WS является заменой технологии JAX-RPC, предоставляя более документоориентированную модель сообщений и упрощая разработку веб-служб за счёт использования аннотаций, впервые появившихся в Java SE 5. Технология JAX-WS является стандартом и описана в JSR 224. Некоторые преимущества:

  • Использование аннотаций устраняет необходимость создания дескрипторов вебслужб.
  • Декларация конечных точек (endpoints) происходит непосредственно в классах Java.
  • Прямая интеграция с JAXB 2.0.
  • Внедрение ресурсов (Resource injection).
  • Поддержка MTOM.
  • Возможность выбора между двумя путями разработки: снизу-вверх (программист разрабатывает endpoint-классы сам) и сверху-вниз (Java классы генерируются по WSDL).

Расскажите о JAXB.

Java Architecture for XML Binding (JAXB) позволяет Java разработчикам ставить в соответствие Java классы и XML представления. JAXB предоставляет две основные возможности: сериализация Java объектов в XML и наоборот, то есть дессиреализация из XML обратно в Java объект. Другими словами, JAXB позволяет хранить и извлекать данные в памяти в любом XML-формате, без необходимости выполнения определенного набора процедур загрузки и сохранения XML.

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

Можем ли мы посылать soap сообщения с вложением?

Да, это возможно. Можно посылать вложением различные форматы: PDF, изображения или другие двоичные данные. Сообщения SOAP работают вместе с расширением MIME, в котором предусмотрено multipart/related:

web multipart related

Что такое MTOM?

MTOM (Message Transmission Optimization Mechanism) - использование кодирования сообщений с помощью механизма оптимизации передачи сообщений. Это механизм передачи больших вложений в двоичном формате с сообщениями протокола SOAP как необработанных байтов, допустимых для меньших сообщений.

Что такое XOP?

XOP (XML-binary Optimized Packaging) - механизм, рекомендованный W3C для встраивания двоичных данных в набор информационных элементов XML (XML Information Set).

Объясните элемент SOAP envelope.

Элемент SOAP envelope является корневым элементом SOAP сообщения и определяет XML документ как SOAP сообщение.

web SOAP envelope

Как определяется пространство имен SOAP?

xmlns:soap=http://www.w3.org/2001/12/soap-envelope

Что вы знаете о кодирование в SOAP (encoding)?

Кодирование SOAP представляет собой метод для структурирования запроса, который предлагается в рамках спецификации SOAP, известный как SOAP-сериализация.

Что определяет атрибут encodingStyle в SOAP?

SOAP encodingStyle определяет правила сериализации, используемые в сообщении SOAP. Этот атрибут может появиться на любом элементе, и область видимости этого атрибута будет распространяться на все дочерние элементы, даже на те, которые не имеют явно этого атрибута. Для сообщений SOAP по умолчанию кодирование не определено.

SOAP-ENV:encodingStyle="http://www.w3.org/2001/12/soap-encoding" 

Какие два конечных типа веб сервисов используют JAX-WS?

JAX-WS использует такие типа веб сервисов:

  • RPC (remote procedure call) style web service в JAX-WS;
  • document style web service в JAX-WS.

Какие существую правила для кодирования записи header?

Правила для кодирования записи header:

  • заголовок должен быть идентифицирован с помощью полного имени, которое содержит пространство имен URI и локальное имя. Все непосредственные дочерние элементы SOAP заголовка должны быть заданы в пространстве имен;
  • атрибут SOAP encodingStyle должен использоваться для указания стиля кодирования заголовка;
  • атрибут SOAP mustUnderstand и атрибут SOAP actor должны использоваться для указания того, как обрабатывать запись и кем.

Что вы знаете об инструменте wsimport?

Инструмент wsimport используется для синтаксического анализа существующих Web Services Description Language (WSDL-файл) и генерировать необходимые файлы (JAXWS портируемые артефакты) для клиента веб-сервиса для доступа к опубликованному веб-сервису.

Что вы знаете об инструменте wsgen?

Инструмент wsgen используется для анализа существующего класса реализации вебслужбы и создает необходимые файлы (JAX-WS портируемые артефакты) для развертывания веб-служб.

Какие вы можете выделить различия между SOAP и другими техниками удаленного доступа?

Некоторые различия:

  • SOAP проще в использовании, т.к. он не симметричный вроде DCOM или COBRA;
  • SOAP является более независимым от платформы и языка в отличие от DCOM или CORBA;
  • SOAP использует HTTP в качестве транспортного протокола и данные сохраняются в формате XML, который может быть прочтен человеком, тогда как DCOM или CORBA имеют свои собственные бинарные форматы, которые используются для транспортировки данных сложным образом;
  • SOAP идентифицирует объект, отличный от конечного URL. Объекты SOAP являются независимыми и их сложно поддерживать. В случае других методов удаленного доступа работа в этом случае может быть проще.

Updated by Александр Александров over 5 years ago · 2 revisions

Go to top