SOAP (Simple Object Access Protocol) is a mechanism for encoding and exchanging structured messages between distributed Web Services. In the words of Kevin Werbach of Release 1.0, “If XML is the phone system, SOAP is the common language for expressing service requests.”
Write Pip Coburn, Faye Hou and Qi Wang of UBS Warburg:
Using SOAP, information is encoded using XML and the XML is wrapped in hyper text transfer protocol (HTTP). SOAP is used to communicate information or instruction to services, objects and servers across disparate operating systems and platforms. SOAP is a potential key to linking heterogeneous – basically, different -software components and building Web services.
SOAP is a call-response mechanism, meaning that it enables a device or client to make a call to a different server, and for that server to understand and respond to the call. It is built specifically for a distributed network environment. The call and response items are encoded in XML, and an HTTP header is wrapped around the XML, or payload. SOAP allows developers to make remote calls to services running on various platforms, from Linux to Unix to MacOS to Windows.
A more technical definition of SOAP comes from Develop.com:
SOAP is a protocol specification for invoking methods on servers,
services, components and objects. SOAP codifies the existing practice of using XML and HTTP as a method invocation mechanism. The SOAP specification mandates a small number of HTTP headers that facilitate firewall/proxy filtering.
The SOAP specification also mandates an XML vocabulary that is used for representing method parameters, return values, and exceptions.
What SOAP does is let developers work at the API-level, rather than getting into the innards of systems. This abstraction can in the coming years form a smarter web. Amit Asaravala of Webtechniques gives a practical example of how SOAP can be used and its future vision:
Microsoft’s .Net frameworks will use SOAP messages to send information between companies that have agreed to share data. eBay has already agreed to use the .Net framework to open up its auction databases. When the technology is in place, developers from other sites will be able to write auction applications that rely on live data from eBay’s central database.
Applications and devices that implement SOAP will be able to send information to (and receive information from) other compliant applications and devices. This opens the way for the creation of smart appliances that can “talk” to one another to schedule appointments, reorder supplies, and generally automate otherwise manual tasks.
In essence, SOAP is enabling the Web that we don’t see. It’s the technology that will help us realize a semantic, invisible Web that runs in the background, doing our bidding without our constant attention. So long, Web browsers.