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 developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

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:  3175 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



Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

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