SOAP
Материал из Википедии — Ñвободной Ñнциклопедии
SOAP — протокол обмена Ñтруктурированными ÑообщениÑми в раÑпределённой вычиÑлительной Ñреде. Первоначально SOAP предназначалÑÑ, в оÑновном, Ð´Ð»Ñ Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¸ удалённого вызова процедур (RPC), а название было аббревиатурой: Simple Object Access Protocol — проÑтой протокол доÑтупа к объектам. Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð» иÑпользуетÑÑ Ð´Ð»Ñ Ð¾Ð±Ð¼ÐµÐ½Ð° произвольными ÑообщениÑми в формате XML, а не только Ð´Ð»Ñ Ð²Ñ‹Ð·Ð¾Ð²Ð° процедур. ÐžÑ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ ÑÐ¿ÐµÑ†Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ð¾Ñледней верÑии 1.2 протокола никак не раÑшифровывает название SOAP. 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.