SOAP, originally defined as Simple Object Access Protocol, is a
protocol specification for exchanging structured information in the implementation of
Web Services in
computer networks. It relies on
Extensible Markup Language (XML) as its message format, and usually relies on other
Application Layer protocols (most notably
Remote Procedure Call (RPC) and
HTTP) for message negotiation and transmission. SOAP can form the foundation layer of a
web services protocol stack, providing a basic messaging framework upon which web services can be built.
As a layman's example of how SOAP procedures can be used, a SOAP message could be sent to a web service enabled web site (for example, a house price database) with the parameters needed for a search. The site would then return an XML-formatted document with the resulting data (prices, location, features, etc). Because the data is returned in a standardized machine-parseable format, it could then be integrated directly into a third-party site.
The SOAP architecture consists of several layers of specifications for message format, message exchange patterns (MEP), underlying transport protocol bindings, message processing models, and protocol extensibility. SOAP is the successor of
XML-RPC, though it borrows its transport and interaction neutrality and the envelope/header/body from elsewhere (probably from
WDDX).