Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

SOAP

Use XML for communication from one system to another

Contributors:  W3C

Summary:  The SOAP protocol allows you to use XML to communicate between systems that are connected using lower-level Internet protocols. It provides a standard envelope for XML information to be transmitted through network messages, and optional conventions for the body of such messages. Understand the history of SOAP, as well as its relation to Web services, Service-Oriented Architecture (SOA), and Representational State Transfer (REST).

Date:  25 Apr 2007 (Published 06 Feb 2007)
Level:  Intermediate

Activity:  4466 views
Comments:  

The SOAP protocol allows you to use XML to communicate between systems that are connected using lower-level Internet protocols. It provides a standard envelope for XML information to be transmitted through network messages, and optional conventions for the body of such messages. Understand the history of SOAP, as well as its relation to Web services, Service-Oriented Architecture (SOA), and Representational State Transfer (REST).

SOAP [W3C Recommendation] (which officially is no longer an acronym despite the capitalization) is a protocol for using XML to communicate between systems that are connected using lower-level Internet protocols. Many consider SOAP the foundation of XML Web services, a set of technologies for managing and organizing the interaction of systems connected using XML data formats and Internet communications protocols. SOAP was originally developed among a small, odd assortment of individuals from a diverse mix of companies, including IBM®. It quickly grew in popularity, because it provided similar capabilities to earlier efforts toward XML messaging, but with a more solid architecture and more commercial support. Development of SOAP passed to the World Wide Web Consortium (W3C), which developed SOAP 1.2, having made a lot of architectural improvements but having also made a lot of controversial compromises. The SOAP protocol defines an XML envelope format, which can contain a pseudo-XML payload (the fact that the actual payload of a SOAP message is restricted from using the full capabilities of XML is a matter of great contention).

XML Web services are closely related to a more general concept called Service-Oriented Architecture (SOA), but neither of these concepts, despite common misconception, mandate SOAP. A large group of people advocate the idea of simply exchanging raw XML documents directly over HTTP, an approach loosely advocated under the banner of Representational State Transfer (REST). REST is the name given to the architectural style of the Web by one of its architects, Roy Fielding. Advocates of REST style for Web services complain that SOAP is complex, stunts its XML payload, and doesn't take enough advantage of the fundamental strengths of the Web. SOAP advocates have worked to address these matters, by shifting emphasis from SOAP's remote procedure call (RPC) roots to what is called the document-literal style of SOAP. In the RPC style, the data to be transmitted is marshalled into discrete data types in a special XML payload format (called the SOAP encoding). In the document-literal style, the XML payload consists of more natural XML formats that generally tend to be more descriptive and human-readable.

The SOAP edifice

A huge array of standards build on SOAP, but these are outside the scope of this specification. The following resources are good sources of information on these standards:

One antecedent of SOAP that is still in fairly wide use is XML Remote Procedure Calls (XML-RPC) [community specification]. XML-RPC defines procedure calls encoded in XML and communicated over HTTP. It retains some popularity because of its simplicity (the full specification is less than 10 printed pages) and the fact that most languages and many application frameworks now have standard or readily available XML-RPC implementations. It does have some notable weaknesses, including primitive data typing and lack of support for character encodings (an astonishing flaw given its use of XML).


Resources

Comments



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=XML
ArticleID=193484
SummaryTitle=SOAP
publish-date=04252007

My developerWorks community

IBM SmartCloud trial. No charge.

IBM PureSystems on a kaleideoscope background

Unleash the power of hybrid cloud computing today!