9. Developing SOAP Applications

 

Introducing SOAP and Specification

SOAP stands for Simple Object Access Protocol.

Applications examples:

·         Exchange SOAP messages among distributed systems

 

A SOAP message is an XML document that contains the Envelope element as its root.

Within this message, the Header is optional and the Body element is required. The example message given by the SOAP 1.1 specification is:

 

Example 1: SOAP Message Embedded in HTTP Request (source – SOAP 1.1 Specification, http://www.w3.org/TR/SOAP/#_Toc478383490)

 

POST /StockQuote HTTP/1.1

Host: www.stockquoteserver.com

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

SOAPAction: "Some-URI"

 

<SOAP-ENV:Envelope

  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

   <SOAP-ENV:Body>

       <m:GetLastTradePrice xmlns:m="Some-URI">

           <symbol>DIS</symbol>

       </m:GetLastTradePrice>

   </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

Example 2: SOAP Message Embedded in HTTP Response (source – SOAP 1.1 Specification, http://www.w3.org/TR/SOAP/#_Toc478383490)

 

HTTP/1.1 200 OK

Content-Type: text/xml; charset="utf-8"

Content-Length: nnnn

 

<SOAP-ENV:Envelope

  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>

   <SOAP-ENV:Body>

       <m:GetLastTradePriceResponse xmlns:m="Some-URI">

           <Price>34.5</Price>

       </m:GetLastTradePriceResponse>

   </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

 

SOAP defines the following four specifications:

-          a SOAP message

-          a way to encode application data in a SOAP message

-          a way to send RPC requests and responses using SOAP

-          how to use SOAP over HTTP

 

 

SOAP Protocol

·         SOAP Messages

·         SOAP Faults

·         The SOAP Message Exchange Model

·         SOAP Routing Protocol

·         SOAP-RPC Style Web Service

·         SOAP Data Encoding

·         SOAP Data Types

·         SOAP Transports

 

Creating Web Services

·         Perl SOAP::Lite Server

·         Visual Basic SOAP Client

·         Apache SOAP – Java

·         .NET Web Service

·         Interoperability Issues

 

SOAP, WSDL, UDDI Related Tools and Links

Apache

·         SOAP http://xml.apache.org/soap/index.html

Java for Web Services

·         http://wwws.sun.com/software/solaris/ds/ds-j2se/index.html

·         http://www.javaworld.com/javaworld/jw-06-2002/jw-0621-jcp.html

·         Java API for XML http://www.objectinnovations.com/Java/Outlines/543.htm

·         Using Forte to Develop Java Web Services http://developer.java.sun.com/developer/technicalArticles/WebServices/Forte4Java/index.html

Microsoft Tools: SOAP Toolkit, MSXML Parser, VB.NET, and C#

 

 

 

Web Site References