Web Services Interoperability and SOAP

This article presents an overview and practical introduction to current interoperability issues relating to RPC calls with SOAP. Three sources of interop problems are discussed: HTTP problems, XML issues, and SOAP discontinuities.


What Is SOAP?
Common Interop Problems
Transport Problems
XML Problems
SOAP Problems
The Future


A number of platforms currently exist for creating applications. Each of these platforms has traditionally used its own protocols, usually binary in nature, for machine-to-machine integration. As a result, applications across platforms have only a limited ability to share data. In recognition of these limitations, there has been an overwhelming push towards standards for data formats and for data exchange. This push stems from a vision that is rapidly evolving into a new computing paradigm: the seamless, Web-enabled integration of services across traditional hardware and software barriers.

At the heart of this vision is the concept of interoperability ("interop" for short), or the capacity of disparate systems to communicate and to share data seamlessly. This is the goal of Web Services. A Web Service is a programmable application logic accessible using standard Internet protocols, or to put it another way, the implementation of Web-supported standards for transparent machine-to-machine and application-to-application communication.

A number of Web Services technologies, such as SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language), and HTTP (HyperText Transfer Protocol), are now used to pass messages between machines. These messages can range widely in complexity, from method calls to purchase order submissions. One common, higher-level function of a Web Service is to implement RPC-style communication (remote procedure call, whereby a program on one computer executes a program on another). This article presents a practical introduction to common interop issues seen today in RPC-style communication using SOAP. Messaging with SOAP, WSDL, and other protocols may be the subject of future articles.

Figure 1. Roadmap of Web Services: wire protocol elements, service description, and discovery

What Is SOAP?

SOAP is the Simple Object Access Protocol. The current version is 1.1, and the actual specification can be found at www.w3.org/tr/soap. SOAP is based on XML and describes a messaging format for machine-to-machine communication. It also contains several optional sections describing method calls (RPC) and detailing the sending of SOAP messages over HTTP. (For more background on SOAP and Web Services, see "A Platform for Web Services.")

Here is a typical SOAP request (including the HTTP headers) for an RPC method call named EchoString, which takes a string as a parameter:

SAMPLE ONE: (below)

As you can see, the method name is encoded as the XML: , and the string parameter is encoded as . The C# method that this represents looks like this:

SAMPLE TWO:(below)

And here is the response from the server:


The rules for serializing the string datatype, as well as the method call shape, are defined in SOAP 1.1, sections 5 and 7 (www.w3.org/tr/soap).

TO SEE COMPLETE ARTICLE: http://msdn.microsoft.com/xml/general/soapinteropbkgnd.asp#web%20services%20interoperability_topic7

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.