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 обрабатывать сообщения и делать ответы независимыми от языка и платформы.
- Связанность с различными транспортными протоколами. SOAP гибок с точки зрения протоколов передачи и приспосабливается к более чем одному сценарию.
- Встроенная обработка ошибок. Спецификация SOAP API позволяет возвращать XML-сообщение с кодом ошибки и ее объяснением.
- Ряд расширений безопасности. Качество транзакций SOAP соответствует корпоративным стандартам. SOAP гарантирует конфиденциальность и целостность внутри транзакций, обеспечивая при этом шифрование на уровне сообщений.
В наши дни многие разработчики содрогаются при мысли о необходимости интеграции SOAP API по нескольким причинам.
- Только XML. SOAP-сообщения содержат много метаданных и поддерживают только подробные XML-структуры для запросов и ответов.
- Тяжеловесность. Из-за большого размера XML-файлов SOAP-сервисы требуют большой пропускной способности.
- Узкоспециализированные знания. Создание серверов SOAP API требует глубокого понимания всех задействованных протоколов и их строгих правил.
- Утомительное обновление сообщений. Требуются дополнительные усилия для добавления или удаления свойств сообщения — жесткая схема SOAP замедляет принятие.
XML
XML - расширяемый язык разметки.
Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка.
Используется как универсальный формат хранения и передачи данных.
XML — используется SOAP (всегда) и REST-запросах (реже);
Хранит в себе информацию, которую можно передавать при общении с веб-сервисом.
XML изначально придумали для более удобного хранения и передачи данных, в том числе через Интернет. У него есть ряд преимуществ, которые позволяют успешно справляться с этой задачей. Во-первых, он легко читается и человеком, и компьютером. Думаю, Вы без труда поймете, что описывает этот xml-файл:
Компьютер тоже без труда понимает такой формат.
Во-вторых, поскольку данные хранятся в простом текстовом формате, при их передаче с одного компьютера на другой не возникнет никаких проблем с совместимостью. Важно понимать, что XML — это не исполняемый код, а язык описания данных.
Как устроен XML?
Его главная составная часть — теги: вот такие штуки в угловых скобках:
Теги бывают открывающими и закрывающими. У закрывающего есть дополнительный символ — “/
”, это видно на примере выше. Каждому открывающему тегу должен соответствовать закрывающий. Они показывают, где начинается и где заканчивается описание каждого элемента в файле.
<имя элемента атрибут>контент</имя элемента>
<book> </book>
Давай рассмотрим дерево на примере XML-файла с описанием автосалона:
Мы упомянули о том, что XML переводится как «расширяемый язык разметки», но что значит «расширяемый»? Это означает, что он отлично приспособлен для создания новых версий объектов и файлов. К примеру, мы хотим, чтобы в нашем автосалоне начали продавать еще и мотоциклы!
И мы добавляем в конце следующие строки
Правила синтаксиса XML
- Только один корневой элемент <></>
- Все элементы должны иметь закрывающий тег
- Названия регистр зависимые – чувствительны к соответствию написания тегов(заглавные буква, грамматика и т.д)
- Элементы не должны пересекаться внутри себя(теги)
- Все значения атрибутов должны быть в кавычках
- Объявления XML – первая строка <?xml версия, указания кодировки символов>