SOAP

This article is occupied with InterNet minutes. For further meanings see Soap.
SOAP in TCP/IP Protokollstapel
Application SOAP
HTTP HTTPS ...
Transport
Network
Net entrance Token
Ring
FDDI ...

SOAP (originally simple Object ACCESS Protocol) is in between exchanged and Remote Procedure call to be accomplished can. SOAP supports itself by those Services other one , XML to Representation the data and InterNet minutes that and (see TCP/IP reference model) to Transmission that . The most usual combination is SOAP over HTTP and . Was original SOAP the abbreviation for Simple Object Access Protocol (Simple object access minutes), since version 1.2 is SOAP however officially no more abbreviation, there it not (only) the access up serves.

Table of contents

Historical outline

SOAP became original through Dave Winer and , first develops Product from this is XML RPC. The goal was however SOAP, that for the first time end with the support through Don box one published. At that time the version was 0.9 up-to-date, the reaction that however still very reservedly. In the year 1999 the version 1 became later.0 publishes. That was the time, at that those Development more support found. One can recognize this above all by the fact that itself the company in the year the development of SOAP it attached which led to the fact that IBM, Microsoft, DevelopMentor (Don box) and User country Software (Dave Winer) SOAP 1.1 as note with (W3C) submitted. The goal was pursued, one Working group to knock against, which should develop SOAP further. The result of this working group is SOAP version 1.2. An important change is that SOAP is no more abbreviation, there all interpretations for SOAP, as "simple Object ACCESS Protocol" or "service Oriented Architecture Protocol" does not meet, the sense of SOAP. Besides it is so possible, for SOAP as Name in the USA to announce, an abbreviation could not be protected.

Structure of a SOAP message

A SOAP message is after the Head BodyPattern modelled. A SOAP Envelope is a container, which contains (optional) a header element and an Body element. Further the used name area is specified here.

Within the Head range of the message those become Metainformationen the message accommodated. These can over that Routing the message, over a possible Coding and/or over the affiliation to one Transaction cover.

In the Body of the message are, like also HTML, those Utilizable data accommodated. These data must of the message to be interpreted, these can also ignore possible stopovers. The data can thereby among other things for distant method calls, (absence r) messages or pure data (z. B. ) stand for illustration of a class structure.

Subsequently, possible appendices can follow, become these dependent on transportation minutes attached to the message. Binary files (sound, video, diagram etc..) can by use of MIMEMechanisms to be tied up.

Expiration of example of SOAP communication

Assumed it exists Web service with the name "CardValidator" for validating and simplified the server expects only one credit card number and the effective date of the map. The server would answer then with "true" or "false" - according to whether the map data are valid or not.

A valid credit card number is 1234 5678 9876 5432 and this map is valid to 12/08 (December 2008). With our exampleWeb service became the method validate called on the server, in order to accomplish the examination. It could following Data exchange between and :

SOAP inquiry of the Client (without HTTP headers):

<?xml version="1.0"encoding="UTF-8 "?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:xsd="http://www.W3.org/2001/XMLSchema "
                  xmlns:xsi="http://www.W3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <ns1:validate soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
           xmlns:ns1="urn:CardValidator">
   more <number xsi:type="xsd:string">1234 5678 9876 5432</number>
   <valid xsi:type="xsd:string">12/08</valid>
  </ns1:validate>
 </soapenv:Body>
</soapenv:Envelope>

SOAP answer of the server (without HTTP headers):

<?xml version="1.0"encoding="UTF-8 "?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:xsd="http://www.W3.org/2001/XMLSchema " 
                  xmlns:xsi="http://www.W3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <ns1:validateResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                   xmlns:ns1="urn:CardValidator">
   <addReturn xsi:type="xsd:string">true</addReturn>
  </ns1:validateResponse>
 </soapenv:Body>
</soapenv:Envelope>                            

Disadvantages of SOAP

By this simple example it becomes already clear that SOAP the quantity of the data which can be transmitted substantially (approx. Factor 25 with the Request and factor >500 with the answer) blows up. This is not only a problem of the stressed network range, also generating and evaluating (Parsen) the messages required very much computing time, compared with other one, simpler RPC minutes.

Prospect

As transport layer served in former times excluding HTTP. In the today's implementations the transport layer is abstracted however large and can nearly at will be exchanged. Newer extensions concern the range of the transport of binary data. In addition many useful Tools develop for the development of SOAP Clients, in addition, of applications of servers for making (Deployment available) and Managen, respectively. Supervise, the services (application servers).

Implementations

See also

Web on the left of

 

  > German to English > de.wikipedia.org (Machine translated into English)