Протокол soap, computerworld росія, видавництво «відкриті системи»

Реєстрація на конференцію

визначення

Simple Object Access Protocol (SOAP) - це протокол на базі мови XML, який визначає правила передачі повідомлень по Internet між різними прикладними системами. В основному він використовується для віддаленого виклику процедур. Спочатку протокол SOAP розроблявся з тим розрахунком, що він буде функціонувати «над» HTTP (щоб спростити інтеграцію SOAP в Web-додатки), однак тепер можуть бути задіяні і інші транспортні протоколи, наприклад SMTP.

Припустимо, що ви створюєте в Internet службу доступу до додатків; споживачі взаємодіють з цією службою, передаючи їй інформацію. Ваші сервери обробляють дані і повертають результати споживачам. Як найкраще підтримувати обмін даними з системою?

Ви могли б створити настроюється клієнт-серверний додаток і зажадати, щоб споживачі використовували для доступу до вашої служби спеціальну клієнтську програму. Але якщо ви маєте намір всерйоз знайти себе в Internet-бізнесі, вам доведеться створити клієнт, що працює на всіх можливих клієнтських платформах - Windows, Macintosh, Unix, Linux і т. Д. Іншими словами, потрібно написати безліч різних клієнтів.

А як ви поставитеся до використання Web? Таке рішення, природно, цілком прийнятно, але жорстко зав'язано на реалізації браузера, і вам знову-таки доведеться створювати інфраструктуру, щоб посилати і отримувати вхідну і вихідну інформацію, а також форматувати і упаковувати дані для подібного обміну. Для реалізації великих програм можна вибрати Java або ActiveX, але тоді деякі користувачі відмовляться від ваших послуг через явно завищених вимог до смуги пропускання і неадекватною захисту.

Все, що потрібно, - це простий протокол, який спрощує упаковку даних програми і передає їх по Web, використовуючи адаптований до змісту інформації мову XML. Тим самим він гарантує, що і відправник і одержувач зможуть легко інтерпретувати вміст будь-якого повідомлення. При цьому завдяки використанню в якості транспорту Web-протоколу HTTP можна буде відмовитися від необхідності знижувати рівень захисту міжмережевих екранів.

Досить докладно описаний Simple Object Access Protocol (SOAP) є простим «сполучний» протокол, за допомогою якого вузли можуть віддалено викликати об'єкти додатки і повертати результати. SOAP пропонує мінімальний набір умов, що дозволяє з додатком передавати повідомлення: клієнт може посилати повідомлення для того, щоб викликати програмний об'єкт, а сервер може повертати результати цього виклику.

SOAP досить простий: повідомлення є документи XML, що містять команди SOAP. Хоча теоретично SOAP може бути прив'язаний до будь-якого транспортного протоколу для додатків, як правило, він використовується разом з HTTP.

Скрібнер зазначив, що SOAP діє як протокол віддаленого виклику процедур, багато в чому так само, як протокол Remote Method Invocation в Java або General Inter-ORB Protocol в CORBA.

За словами Скрібнер, оскільки HTTP і XML використовуються практично всюди, SOAP, мабуть, можна назвати самим масштабованим з створених на сьогоднішній день протоколів віддаленого виклику процедур. SOAP не розрахований на те, щоб діяти як повна об'єктна архітектура.

SOAP не замінює собою протокол Remote Method Invocation в Java, Distributed Component Object Model і CORBA; він пропонує правила, які можуть використовуватися будь-який з цих моделей. SOAP не є повним вирішенням. Він не підтримує активацію об'єктів або захист. За словами Скрібнер, розробники SOAP «впевнені в тому, що користувачі самостійно додадуть цей код», надстраівая його над SOAP, замість того щоб робити його складовою частиною самого протоколу.

На малюнку наводиться приклад, взятий з специфікації SOAP 1.1, в якому хост запитує у служби котирувань вартість певної акції. Запит SOAP вбудовується в HTTP POST, а в тілі запиту вказується тип запиту і параметр - символ акції. Відповідь також надає собою об'єкт XML, інкапсульований у відповідь HTTP з єдиним повертається значенням (34,5 в даному випадку).

особливості SOAP

За допомогою SOAP розробники можуть створювати Web-служби настільки ж оперативно, наскільки швидко будуть написані повідомлення SOAP для викликів програм для існуючих додатків, а потім додати ці додатки в прості Web-сторінки. Але, крім того, у розробників є можливості використовувати виклики SOAP в виділених додатках і створювати додатки, які можна переносити на Web-сторінки інших людей, і тим самим уникнути трудомісткого і дорогого процесу розробки.

приклад SOAP

Наступний приклад ілюструє запит SOAP, званий GetLastTradePrice, який дозволяє клієнту послати запит про останні котируваннях певних акцій.

POST / StockQuote HTTP / 1.1
Host: www.stockquoteserver.com
Content-Type: text / xml; charset = "utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"

У перших п'яти рядках (частина заголовка HTTP) вказується тип повідомлення (POST), хост, тип і довжина інформаційного наповнення, а заголовок SOAPAction визначає мету запиту SOAP. Саме повідомлення SOAP є документ XML, де спочатку йде конверт SOAP, потім елемент XML, який вказує простір імен SOAP і атрибути, якщо такі є. Конверт SOAP може включати в себе заголовок (але не в даному випадку), за яким слідує тіло SOAP. У нашому прикладі в тілі міститься запит GetLastTradePrice і символ акцій, для яких запитуються останні котирування. Відповідь на цей запит може виглядати наступним чином.

HTTP / 1.1 200 OK
Content-Type: text / xml; charset = "utf-8"
Content-Length: nnnn

І знову-таки перші три рядки - це частина заголовка HTTP; саме повідомлення SOAP складається з конверта, який містить відповідь на вихідний запит, позначений GetLastTradePriceResponse, і включає в себе значення, що повертається, в нашому випадку 34,5.

Поділіться матеріалом з колегами і друзями

Схожі статті