What Is It?

SOAP, or Simple Object Access Protocol, is a simple XML-based protocol to let applications exchange information over HTTP. SOAP is a key element of Microsoft’s .NET architecture for future Internet application development. In May 2000, UserLand, Ariba, Commerce One, Compaq, Developmentor, HP, IBM, IONA, Lotus, Microsoft, and SAP proposed the SOAP Internet protocol to W3C in hopes that this framework could revolutionize application development by connecting graphic user interface desktop applications to powerful Internet servers using the HTTP and XML standards.

Originally designed as an object-access protocol by Dave Winer, Don Box, Bob Atkinson, and Mohsen Al-Ghosein in 1998 with Microsoft backing, the SOAP specification currently is maintained by the W3C XML Protocol Working Group. The W3C site contains Technical Reports and the latest work on SOAP and a full list of SOAP specifications.

Who Is it For?

SOAP usually is used by developers who have a basic understanding of XML and XML Namespaces.

Features

Using SOAP over HTTP allows for easier communication behind proxies and firewalls than previous remote execution technology. SOAP is versatile enough to allow for the use of different transport protocols. The standard stacks use HTTP as a transport protocol, but other protocols are also usable (e.g. SMTP, RSS). SOAP is platform independent, language independent and simple and extensible. However, SOAP can be considerably slower than competing middleware technologies such as CORBA, because of the verbose XML format.
With that said, SOAP Version 1.2 is a lightweight protocol intended for exchanging structured information in a decentralized, distributed environment. “Part 1: Messaging Framework” defines, using XML technologies, an extensible messaging framework containing a message construct that can be exchanged over a variety of underlying protocols.

Compatibility

According to the W3C, the ability to use SOAP in a particular environment will vary depending on the actual constraints, choice of tools, processing model, or nature of the messages being exchanged. SOAP has been designed to have a relatively small number of dependencies on other XML specifications, none of which are perceived as having prohibitive processing requirements. Also, limiting use of SOAP to small messages instead of arbitrarily-sized messages and supporting only a few specific message types instead of implementing generalized processing could significantly lower processing requirements.

Web Hosts that Offer SOAP