SOAP

Структура SOAP повідомлення

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

SOAP може використовуватися з будь-яким протоколом прикладного рівня: SMTP, FTP, HTTP, HTTPS та ін Однак його взаємодія з кожним з цих протоколів має свої особливості, які повинні бути визначені окремо. Найчастіше SOAP використовується поверх HTTP.

SOAP є одним із стандартів, на яких базуються технології веб-служб.


1. Структура протоколу

Повідомлення SOAP виглядає так:

 SOAP-конверт 

2. Приклад

Приклад SOAP-запиту на сервер інтернет-магазину:

  xmlns: soap  =  "Http://schemas.xmlsoap.org/soap/envelope/"  >   >   xmlns  =  "Http://warehouse.example.com/ws"  >   >  12345   >   >   >   > 

Приклад відповіді:

  xmlns: soap  =  "Http://schemas.xmlsoap.org/soap/envelope/"  >   >   xmlns  =  "Http://warehouse.example.com/ws"  >   >   >  12345   >   >  Стакан гранований   >   >  Стакан гранований. 250 мл.   >   >  9.95   >   >   >  840   >   >  USD   >   >  $   >   >  US dollar   >   >  2   >   >   >  true   >   >   >   >   > 

3. Недоліки

  • Використання SOAP для передачі повідомлень збільшує їх об'єм і знижує швидкість обробки. У системах, де швидкість важлива, частіше використовується пересилання XML-документів через HTTP прямо, де параметри запиту передаються як звичайні HTTP-параметри.
  • Хоча SOAP є стандартом, деякі програми часто генерують повідомлення в несумісній форматі. Наприклад, запит, згенерований AXIS-клієнтом, не буде зрозумілий сервером WebLogic.