SOAP (protocol): Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Meg Taylor
m (spelling: parseable -> parsable)
imported>Pat Palmer
No edit summary
Line 1: Line 1:
{{subpages}}
{{subpages}}


'''SOAP''', originally defined as ''Simple Object Access Protocol'', is a [[protocol (computing)|protocol]] specification for exchanging structured information in the implementation of [[Web Service]]s in [[computer network]]s. It relies on [[XML|Extensible Markup Language]] (XML) as its message format, and usually relies on other [[Application Layer]] protocols (most notably [[Remote Procedure Call]] (RPC) and [[HyperText Transfer Protocol|HTTP]]) for message negotiation and transmission. SOAP can form the foundation layer of a [[web services protocol stack]], providing a basic messaging framework upon which web services can be built.
'''SOAP''' is a client-server [[protocol (computing)|protocol]] for [[Remote Procedure Call|RPC]] messaging between a [[Web Service]] and its clients in [[computer network]]s. The SOAP request and response format is [[XML|Extensible Markup Language]] (XML), and the messages are transmitted using [[HyperText Transfer Protocol|HTTP]]). The SOAP specification grew out of an industry consortium and relies on compilers to automatically generate SOAP messages based on a web service contract (WSDL) file.
 
SOAP also refers to a dialect (encoding) of XML; SOAP-encoded XML is designed to be more concise that pure XML by providing pointer attributes for any duplicated data values.  However, SOAP-encoded XML was not popular for use in SOAP protocol messaging, and after early experiments, pure XML became widely preferred as the SOAP protocol message format.
 
The name SOAP was originally defined as ''Simple Object Access Protocol'', but this acronym fell out of favor because it is confusing to people.


As a layman's example of how SOAP procedures can be used, a SOAP message could be sent to a web service enabled web site (for example, a house price database) with the parameters needed for a search. The site would then return an XML-formatted document with the resulting data (prices, location, features, etc). Because the data is returned in a standardized machine-parsable format, it could then be integrated directly into a third-party site.
As a layman's example of how SOAP procedures can be used, a SOAP message could be sent to a web service enabled web site (for example, a house price database) with the parameters needed for a search. The site would then return an XML-formatted document with the resulting data (prices, location, features, etc). Because the data is returned in a standardized machine-parsable format, it could then be integrated directly into a third-party site.

Revision as of 03:37, 26 December 2011

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

SOAP is a client-server protocol for RPC messaging between a Web Service and its clients in computer networks. The SOAP request and response format is Extensible Markup Language (XML), and the messages are transmitted using HTTP). The SOAP specification grew out of an industry consortium and relies on compilers to automatically generate SOAP messages based on a web service contract (WSDL) file.

SOAP also refers to a dialect (encoding) of XML; SOAP-encoded XML is designed to be more concise that pure XML by providing pointer attributes for any duplicated data values. However, SOAP-encoded XML was not popular for use in SOAP protocol messaging, and after early experiments, pure XML became widely preferred as the SOAP protocol message format.

The name SOAP was originally defined as Simple Object Access Protocol, but this acronym fell out of favor because it is confusing to people.

As a layman's example of how SOAP procedures can be used, a SOAP message could be sent to a web service enabled web site (for example, a house price database) with the parameters needed for a search. The site would then return an XML-formatted document with the resulting data (prices, location, features, etc). Because the data is returned in a standardized machine-parsable format, it could then be integrated directly into a third-party site.

Sample SOAP message

Request

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
                        http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
    <req:echo xmlns:req="http://localhost:8080/axis2/services/MyService/">
      <req:category>classifieds</req:category>
    </req:echo>
  </soapenv:Body>
</soapenv:Envelope>

Response

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
                        http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header>
    <wsa:ReplyTo>
      <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
    </wsa:ReplyTo>
    <wsa:From>
      <wsa:Address>http://localhost:8080/axis2/services/MyService</wsa:Address>
    </wsa:From>
    <wsa:MessageID>ECE5B3F187F29D28BC11433905662036</wsa:MessageID>
  </soapenv:Header>
  <soapenv:Body>
    <req:echo xmlns:req="http://localhost:8080/axis2/services/MyService/">
      <req:category>classifieds</req:category>
    </req:echo>
  </soapenv:Body>
</soapenv:Envelope>