SOAP
Матеріал з Вікіпедії — вільної енциклопедії.
| TCP/IP модель (RFC 1122) |
|---|
| Рівень програмного забезпечення |
| BGP · DHCP · DNS · FTP · Gopher · GTP · HTTP · IMAP · IRC · NNTP · NTP · POP · RIP · RPC · RTCP · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · STUN · Telnet · TLS/SSL · XMPP · |
| Транспортний рівень |
| TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) |
| Рівень Інтернет |
| IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec · (more) |
| Канальний рівень |
| ARP · RARP · NDP · OSPF · Tunnels (L2TP) · Media Access Control (Ethernet, DSL, ISDN, FDDI) · Device Drivers · (more) |
SOAP — протокол обміну структурованими повідомленнями в розподілених обчислювальних системах, базується на форматі XML.
Спочатку SOAP призначався, в основному, для реалізації віддаленого виклику процедур (RPC), а назва була абревіатурою: Simple Object Access Protocol — простий протокол доступу до об'єктів. Зараз протокол використовуються для обміну повідомленнями в форматі XML, а не тільки для виклику процедур. SOAP є розширенням мови XML-RPC.
SOAP може використовуватись з будь-яким протоколом прикладного рівня: SMTP, FTP, HTTP та інш. Проте, його взаємодія з кожним із цих протоколів має свої особливості, які потрібно відзначити оремо. Найчастіше SOAP використовується разом з HTTP.
SOAP є одним із стандартів, на яких ґрунтується технологія веб-сервісів.
Зміст |
[ред.] Структура протоколу
Повідомлення SOAP структурується так:
SOAP- конверт
-
- SOAP-заголовок
- Елемент заголовку 1
- Елемент заголовку 2
- …
- Елемент заголовку N
- Тіло SOAP
- Елемент тіла 1
- Елемент тіла 2
- …
- Елемент тіла N
- SOAP-заголовок
[ред.] Приклад
Приклад SOAP-запиту на сервер інтернет-магазину:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails xmlns="http://warehouse.example.com/ws"> <productID>12345</productID> </getProductDetails> </soap:Body> </soap:Envelope>
Приклад відповіді:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult> <productID>12345</productID> <productName>Стакан гранчатий</productName> <description>Стакан гранчатий. 200 мл.</description> <price>9.95</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
[ред.] Недоліки
- Використання SOAP для передавання повідомлень збільшує їх об'єм і знижує швидкість обробки. В системах, де швидкість важлива, частіше використовується відсилання XML документів напряму через HTTP, де параметри запиту передаються як звичайні HTTP параметри.
- Не зважаючи на те, що SOAP є стандартом, різні програми часто генерують повідомлення в несумісному форматі. Наприклад, запит згенерований Axis-клієнтом, не буде розпізнано сервером WebLogic.

