Как тече комуникацията между две услуги?
Най-общо казано, комуникацията между две Уеб услуги тече под формата на съобщения - запитване и отговор. Услугата клиент изпраща запитването си, в което чрез методите на SOAP са описани името на процедурата, която желае да задвижи и входящите й параметри. След извършването на тази процедура, активната услуга изпраща отговор - отново в SOAP, в който по специфичен начин са дадени върнатите резултати.
Ако заявката е обработена успешно, сървърът ще върне код 200 ОК, което означава, че процедурата е била изпълнена. При грешка ще получим код 500 - Internal Server Error.
Спецификацията на SOAP покрива голяма част от тази комуникация, поставяйки точни изисквания за съдържанието и начина на представяне на данните. Но на ниво данни - входящи параметри или резултати, структурата на XML документа зависи най-вече от характерните особености на Уеб услугата. Тези особености са описани в нейния WSDL файл.
Въпреки че в официалните предложения и документи се твърди, че SOAP не е точно обектно - ориентирана концепция, на практика в повечето случаи е така. Официално, фактът че повечето сървъри за Уеб услуги използват COM или Java обекти е въпрос на приложение на стандарта (SOAP), а не на спецификация. Все пак, добре е да се има предвид, че SOAP произлиза от XML - RPC като начин за предаване на XML по HTTP, като най-основната разлика е във възможността за предаване на обекти. При всички положения, обаче, SOAP не е обвързан с концепцията за обектно програмиране и би могъл да се използва свободно и в други среди.
Също така спецификацията не обвързва SOAP с каквито и да било други технологии и интерфейси, освен HTTP. Изключение от правилото се явява зависимостта му от XML Schema, използвана за описване на типовете разменяни данни.
Всъщност дори и зависимостта от HTTP не е толкова силна. Въпреки че се посочва като основен начин за извършване на транспорта и идентификацията на така наречените SOAP protocol data units (PDU), все пак съществуват възможности за използване на други протоколи за тази цел - например SMTP, Microsoft Message Queue, MQ series на IBM и други. Правят се опити за пълно разделяне на сериализацията на SOAP от HTTP транзакциите.
Към списъка с въпросите