- From: Hugo Haas <hugo@w3.org>
- Date: Fri, 18 Feb 2005 16:43:20 +0100
- To: public-ws-addressing@w3.org
-=- Description -=-
The SOAP binding defines a SOAP extension, i.e. in the case of SOAP
1.2, a SOAP module[1]. The specification does not define it this way.
For WSDL 2.0 description, we should do the same with SOAP 1.1.
-=- Justification -=-
We need to define it in terms mandated by the SOAP 1.2
specification[1]:
The term "SOAP module" refers to the specification of the syntax and
semantics of one or more SOAP header blocks. A SOAP module realizes zero
or more SOAP features. A module specification adheres to the following
rules. It:
1. MUST identify itself with a URI. This enables the module to be
unambiguously referenced in description languages or during
negotiation.
2. MUST declare the features provided by a module (see 3.1 SOAP
Features).
3. MUST clearly and completely specify the content and semantics of the
SOAP header blocks used to implement the behavior in question,
including if appropriate any modifications to the SOAP processing
model. The SOAP extensibility model does not limit the extent to
which SOAP can be extended. Nor does it prevent extensions from
modifying the SOAP processing model from that described in 2. SOAP
Processing Model
4. MAY utilize the property conventions defined in SOAP 1.2 Part 2 [SOAP
Part 2], section A Convention for Describing Features and Bindings,
in describing the functionality that the module provides. If these
conventions are followed, the module specification MUST clearly
describe the relationship between the abstract properties and their
representations in the SOAP envelope. Note that it is possible to
write a feature specification purely in terms of abstract properties,
and then write a separate module specification which implements that
feature, mapping the properties defined in the feature specification
to SOAP header blocks in the SOAP module.
5. MUST clearly specify any known interactions with or changes to the
interpretation of the SOAP body. Furthermore, it MUST clearly specify
any known interactions with or changes to the interpretation of other
SOAP features and SOAP modules. For example, we can imagine a module
which encrypts and removes the SOAP body, inserting instead a SOAP
header block containing a checksum and an indication of the
encryption mechanism used. The specification for such a module would
indicate that the decryption algorithm on the receiving side is to be
run prior to any other modules which rely on the contents of the SOAP
body.
Because WSDL 2.0 has introduced the concept of SOAP 1.1 modules for
SOAP 1.1 extension descriptions (see [4]), we should do something
similar (though simplified) for SOAP 1.1.
-=- Target -=-
SOAP binding (mainly)
Core (small change)
-=- Proposal -=-
I propose the following changes to the SOAP binding specification,
unless stated otherwise:
1. Add a section specific to the SOAP 1.2 binding of Addressing
1. Say explicitly in this section that we define a SOAP 1.2 module,
the SOAP Addressing 1.0 module, and give it a URI:
http://www.w3.org/YYY/MM/addressing/soap12/module
2. List the features that we support:
I originally wanted to say that our SOAP 1.2 binding supported the
SOAP Action Feature[3], with the
http://www.w3.org/2003/05/soap/features/action/Action property
being the [action] message addressing property expressed as a
<wsa:Action> SOAP header. However, the definition of this feature
seems to be specific to underlying protocol bindings.
Nevertheless, we should say somewhere that, for SOAP 1.2, the
value of our [action] message addressing property is the same as
http://www.w3.org/2003/05/soap/features/action/Action's.
More on SOAP 1.2 features in another email.
2. Add a section specific to the SOAP 1.1 binding of Addressing
1. Give a URI to this extension for WSDL 2.0 description[4]:
http://www.w3.org/YYY/MM/addressing/soap11/module
2. Say that, when using the HTTP binding, the [action] property
ought to be encoded in the request as a SOAP Action header.
3. Remove the following from Core:
Finally, if in addition to the [action] property, a SOAP Action
URI is encoded in a request, the URI of the SOAP Action MUST be
the same as the one specified by the [action] property.
Not only this is SOAP specific and therefore shouldn't be in Core,
but this is SOAP 1.1 over HTTP specific as the SOAP Action Feature
in SOAP 1.2 would allow [action] to be expressed in a reply to.
Cheers,
Hugo
1. http://www.w3.org/TR/2003/REC-soap12-part1-20030624/#soapmodules
3. http://www.w3.org/TR/2003/REC-soap12-part2-20030624/#ActionFeature
4. http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl20/wsdl20-soap11-binding.html?content-type=text/html;%20charset=utf-8#soap11-binding-description
--
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/
Received on Friday, 18 February 2005 15:43:21 UTC