Алекс Смит: Тестирование ПО с Нуля до Специалиста
January 31

7.4 SOAP протокол. Написание сообщение на языке XML

На данном уроке мы разберем что такое веб-сервис, SOAP протокол, их роль в клиент-серверной архитектуре

Веб-сервисы (или веб-службы)

Веб-сервисы (или веб-службы) — это технология, позволяющая системам обмениваться данными друг с другом через сетевое подключение.

Веб-сервис — просто адрес, ссылка, обращение к которому позволяет получить данные или выполнить действие.

Главное отличие веб-сервиса от других способов передачи данных: стандартизированность.

Самые известные способы реализации веб-сервисов:

· SOAP (Simple Object Access Protocol) — стандартный протокол. Четко структурирован и задокументирован.

· REST (Representational State Transfer) — архитектурный стиль взаимодействия компьютерных систем в сети, основанный на методах протокола HTTP.

На данном уроке мы поговорим с Вами о SOAP

SOAP

SOAP – простой протокол доступа к объектам. Протокол обмена структурированными сообщениями в распределенной структурированной среде. Использует в качестве сообщений формат XML.

Любое сообщение в протоколе SOAP — это XML документ, состоящий из следующих элементов (тегов): перед вами пример SOAP запроса, и ответ который состоит из

  • тега конверта <envelope>, которым начинается и заканчивается каждое сообщение;
  • тела, содержащего запрос или ответ;
  • заголовка, если сообщение должно определять какие-либо особенности или дополнительные условия;
  • сообщения об ошибке, информирующего о любых ошибках, которые могут возникнуть в процессе обработки запроса.

Важный элемент SOAP протокола это - WSDL

WSDL (WebServiceDescriptionLanguage) –файл, описывающий сообщения, заголовки, события, которые свойственны для нашего веб-сервиса, описывает структуру нашего веб-сервиса.

Плюсы и минусы SOAP

Плюсы SOAP:

  1. Независимость от языка и платформы. Встроенная функциональность для создания веб-сервисов позволяет SOAP обрабатывать сообщения и делать ответы независимыми от языка и платформы.
  2. Связанность с различными транспортными протоколами. SOAP гибок с точки зрения протоколов передачи и приспосабливается к более чем одному сценарию.
  3. Встроенная обработка ошибок. Спецификация SOAP API позволяет возвращать XML-сообщение с кодом ошибки и ее объяснением.
  4. Ряд расширений безопасности. Качество транзакций SOAP соответствует корпоративным стандартам. SOAP гарантирует конфиденциальность и целостность внутри транзакций, обеспечивая при этом шифрование на уровне сообщений.

Минусы SOAP

В наши дни многие разработчики содрогаются при мысли о необходимости интеграции SOAP API по нескольким причинам.

  1. Только XML. SOAP-сообщения содержат много метаданных и поддерживают только подробные XML-структуры для запросов и ответов.
  2. Тяжеловесность. Из-за большого размера XML-файлов SOAP-сервисы требуют большой пропускной способности.
  3. Узкоспециализированные знания. Создание серверов SOAP API требует глубокого понимания всех задействованных протоколов и их строгих правил.
  4. Утомительное обновление сообщений. Требуются дополнительные усилия для добавления или удаления свойств сообщения — жесткая схема SOAP замедляет принятие.

XML

XML - расширяемый язык разметки.

Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка.

Используется как универсальный формат хранения и передачи данных.

XML — используется SOAP (всегда) и REST-запросах (реже);

Хранит в себе информацию, которую можно передавать при общении с веб-сервисом.

XML изначально придумали для более удобного хранения и передачи данных, в том числе через Интернет. У него есть ряд преимуществ, которые позволяют успешно справляться с этой задачей. Во-первых, он легко читается и человеком, и компьютером. Думаю, Вы без труда поймете, что описывает этот xml-файл:

Компьютер тоже без труда понимает такой формат.

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

Как устроен XML?

Его главная составная часть — теги: вот такие штуки в угловых скобках:

Теги бывают открывающими и закрывающими. У закрывающего есть дополнительный символ — “/”, это видно на примере выше. Каждому открывающему тегу должен соответствовать закрывающий. Они показывают, где начинается и где заканчивается описание каждого элемента в файле.

<имя элемента атрибут>контент</имя элемента>

<book> </book>

Давай рассмотрим дерево на примере XML-файла с описанием автосалона:

Мы упомянули о том, что XML переводится как «расширяемый язык разметки», но что значит «расширяемый»? Это означает, что он отлично приспособлен для создания новых версий объектов и файлов. К примеру, мы хотим, чтобы в нашем автосалоне начали продавать еще и мотоциклы!

И мы добавляем в конце следующие строки

Правила синтаксиса XML

  1. Только один корневой элемент <></>
  2. Все элементы должны иметь закрывающий тег
  3. Названия регистр зависимые – чувствительны к соответствию написания тегов(заглавные буква, грамматика и т.д)
  4. Элементы не должны пересекаться внутри себя(теги)
  5. Все значения атрибутов должны быть в кавычках
  6. Объявления XML – первая строка <?xml версия, указания кодировки символов>