SimpleObjectAccessProtocol

Last edit March 12, 2012
SOAP, the Simple Object Access Protocol, provides a simple and lightweight mechanism for exchanging structured and typed information (objects) between peers in a decentralized, distributed environment using XML [ExtensibleMarkupLanguage]. It consists of three parts: an envelope that defines what is in a message and what to do with it; a set of encoding rules for expressing datatypes, and a convention for implementing RemoteProcedureCalls and responses. Summed up, SOAP is a serialization protocol.

  • XML documents for encoding of invocation requests and responses.
  • XML Schema for describing the types
  • XML Namespaces for describing the requests.
  • Transmission of SOAP envelopes via HyperTextTransferProtocol (HTTP), SimpleMailTransferProtocol (SMTP), or other protocols. Section 5 of the spec specifically addresses HTTP bindings.

See SoapDiscussion, SoapDoesntRequireHttp, RestInSoap.

Links:

Implementations of SOAP: On this wiki please use MicrosoftXml for discussions and information sharing regarding this. There are tons of other implementations at: http://www.soapware.org/directory/4/implementations


Particular things to note:
  • SOAP does not tie you to any MicroSoft technology (see the list of implementations above).
  • SOAP does not necessarily tie you to the HyperTextTransferProtocol. Other TransportProtocols can be used to transmit the packets. For example, the SimpleMailTransferProtocol is often discussed for queuing packets. Early versions of SOAP seemed to tie you to the HTTP; there was some discussion of whether or not that was true below. However, the latest specification clearly states:

It is worth noting that the rules governing XML payload format in SOAP are entirely independent of the fact that the payload is carried over an HTTP transport. -- DrewMarsh (refactored 2/10/2000)


A writeup on SOAP Basics, taken from Professional XML Web Services, can be found at http://www.vbip.com/books/1861005091/chapter_contents.asp


Is it called SOAP, because it creates bubbles without content? -- AnonymousCoward


CategoryWebServices CategoryAcronym CategoryXml