Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
SOAP is a lightweight protocol for the exchange of information in a decentralized, distributed environment. It is an XML-based protocol that consists of three parts: an envelope that defines a framework for describing what is in a message and how to process it, a set of encoding rules for expressing instances of application-defined data types, and a convention for representing remote procedure calls and responses. SOAP can potentially be used in combination with a variety of other protocols; however, the only bindings defined in this document describe how to use SOAP in combination with HTTP and the HTTP Extension Framework.
This document discusses the architectural issues encountered when using opaque non-XML data in XML applications, including (but not limited to) Web services and SOAP.
Simple Object Access Protocol (SOAP) 1.1
SOAP 1.1 is the current standard Web Service message protocol.
SOAP Version 1.2 Part 0: Primer
SOAP Version 1.2 Part 1: Messaging Framework
SOAP Version 1.2 Part 2: Adjuncts
SOAP 1.2 is the latest version of SOAP from W3C that has been recently ratified as the emerging standard Web services messaging protocol.
Web Services Addressing (WS-Addressing)
WS-Addressing provides transport-neutral mechanisms to address Web services and messages. Specifically, this specification defines XML elements to identify Web service endpoints and to secure end-to-end endpoint identification in messages. This specification enables messaging systems to support message transmission in a transport-neutral manner through networks that include processing nodes such as endpoint managers, firewalls, and gateways.
WS-Addressing was submitted to the W3C in August 2004.
SOAP Message Transmission Optimization Mechanism
MTOM describes a mechanism for optimizing the transmission and/or wire format of a SOAP message by selectively re-encoding portions of the message while still presenting an XML Infoset to the SOAP application.
MTOM also describes an Inclusion Mechanism that operates in a binding-independent way, plus a specific binding for HTTP.
Web Service Enumeration (WS-Enumeration)
Get the Adobe Reader here.
WS-Enumeration enables an application to ask for items from a list of data that is held by a Web service. In this way, WS-Enumeration is useful for reading event logs, message queues, or other data collections.
WS-Enumeration was submitted to the W3C in March 2006.
Web Services Eventing (WS-Eventing)
WS-Eventing describes how to construct an event-oriented message exchange pattern using WS-Addressing concepts, allowing Web services to act as event sources for subscribers. It defines the operations required to manage subscriptions to event sources, as well as how the actual event messages are constructed.
WS-Eventing was submitted to the W3C in March 2006.
WS-Eventing specification at the W3C.
Web Service Transfer (WS-Transfer)
Get the Adobe Reader here.
WS-Transfer defines how to invoke a simple set of familiar verbs (Get, Post, Put, and Delete) using SOAP. An application protocol may be constructed to perform these operations over resources.
WS-Transfer was submitted to the W3C in March 2006.
The SOAP-over-UDP specification defines a binding of SOAP to user datagrams, including message patterns, addressing requirements, and security considerations.
Get the Adobe Reader here.
SOAP 1.1 Binding for MTOM 1.0 (PDF file)
Get the Adobe Reader here.
This specification describes the application of the MTOM attachment mechanism, originally defined for SOAP 1.2, to SOAP 1.1 envelopes.
SOAP 1.1 was submitted to the W3C and became a W3C Note on 8 May 2000. Most current SOAP implementations are built with support for SOAP 1.1. Work on SOAP version 1.2 has recently been completed in the W3C's XML Protocol working group.
Interoperability testing for SOAP was conducted in the SoapBuilders group.
This version of WS-Addressing was acknowledged by the W3C as a Member Submission on 10 August 2004.
WS-Eventing was published as a public specification on 31 August 2004. This is the second joint publication of the specification.
SOAP-over-UDP was published as a public specification on 8 September 2004. This is the first joint BEA/Lexmark/Microsoft/Ricoh publication of the specification.
WS-Enumeration was published as a public specification on 16 September 2004. This is the first joint BEA/Computer Associates/Microsoft/Sonic Software/Systinet publication of the specification.
WS-Transfer was published as a public specification on 16 September 2004. This is the first joint BEA/Computer Associates/Microsoft/Sonic Software/Systinet publication of the specification.
SOAP 1.1 Binding for MTOM 1.0 was published as a public specification on 2 March 2006. This is the first joint IBM/Oracle/Microsoft/SAP publication of the specification.
SOAP 1.1
SOAP 1.2
Web Services Addressing (WS-Addressing) (March 2004)
This specification has been superseded by a more recent version dated August 2004.
Web Services Eventing (WS-Eventing) (January 2004)
This specification has been superseded by a more recent version dated August 2004.
Web Services Routing (WS-Routing) (October 2001)
This specification has been superseded by the Web Services Addressing (WS-Addressing) specification.
Web Services Referral (WS-Referral) (October 2001)
This specification has been superseded by the Web Services Addressing (WS-Addressing) specification.
Direct Internet Message Encapsulation (DIME)
This specification has been superseded by the SOAP Message Transmission Optimization Mechanism (MTOM) specification.
SOAP Messages with Attachments (SwA) (December 2000)
This specification has been superseded by the SOAP Message Transmission Optimization Mechanism (MTOM) specification.
Proposed Infoset Addendum to SOAP Messages with Attachments (PASwA)
This specification has been superseded by the SOAP Message Transmission Optimization Mechanism (MTOM) specification.
SOAP is a lightweight, extensible, XML-based protocol for information exchange in a decentralized, distributed environment. Primarily, SOAP defines a framework for message structure and a message-processing model. SOAP also defines a set of encoding rules for serializing data and a convention for making remote procedure calls. The SOAP extensibility model provides the foundation for a wide range of composable protocols running over a variety of underlying protocols like HTTP.
SOAP has been designed to be simple and extensible. It defines a message-processing model but does not itself define any application semantics, such as programming model or implementation-specific semantics. Although SOAP may be used as a foundation for building complex systems, most features from traditional message systems and distributed object systems are not part of the core SOAP specification.
A SOAP message is based on XML and contains the following parts:
- The
Envelope
is the top-level container representing the message. - The
Header
is a generic container for added features to a SOAP message in a decentralized manner. SOAP defines attributes to indicate who should deal with a feature and whether understanding is optional or mandatory. - The
Body
is a container for mandatory information intended for the ultimate message receiver. SOAP defines one element for the body to report errors.
As Figure 1 below illustrates, a SOAP message may have multiple application-defined blocks within the Header
and Body
containers.
Figure1. SOAP message structure
The listing below shows a sample SOAP message that is an alert message to a Web service. The request contains a text message (in the Body
) and is marked to indicate that the message isn't interesting after the given time (in the Header
).
<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:env="http://www.w3.org/2001/09/soap-envelope">
<env:Header>
<n:alertcontrol xmlns:n="http://example.org/alertcontrol">
<n:priority>1</n:priority>
<n:expires>2001-06-22T14:00:00-05:00</n:expires>
</n:alertcontrol>
</env:Header>
<env:Body>
<m:alert xmlns:m="http://example.org/alert">
<m:msg>Pick up Mary at school at 2pm</m:msg>
</m:alert>
</env:Body>
</env:Envelope>
SOAP messages may be sent using HTTP, SMTP, TCP, and others.
SOAP is the foundation upon which other protocols may be built to provide the complete set of services required by secure and reliable messaging environments. For example, WS-Security and WS-License may be used to ensure the integrity and/or confidentiality of SOAP messages. Protocols like these take advantage of the modular packaging of the SOAP message structure wherein multiple SOAP-based protocols can logically co-exist in the same message. This composability allows SOAP to be used in a large variety of systems ranging from small devices to global Web services.
SOAP defines a framework for message structure, but with the exception of SOAP faults, does not define messages types; WSDL may be used to describe the message types a Web service can send and receive. SOAP is an XML-based protocol; MTOM may be used to optimize transmission of binary data underlying a SOAP message.