- From: Hugo Haas <hugo@w3.org>
- Date: Thu, 24 Feb 2005 14:49:44 +0100
- To: Jonathan Marsh <jmarsh@microsoft.com>
- Cc: Glen Daniels <gdaniels@sonicsoftware.com>, public-ws-addressing@w3.org
- Message-ID: <20050224134944.GK16108@w3.org>
I have just realized that my proposed rules have an issue with regards
to intermediaries:
* Hugo Haas <hugo@w3.org> [2005-02-24 13:26+0100]
[..]
> Here is a version 2 of my proposal (reordered, improved, and
> condensed):
>
> 1. Make the [reference parameters] message addressing property's XML
> Infoset representation in Core's section 3.1 the following, which
> was the second rule of the SOAP binding:
>
> /[reference parameters]*
>
> Each element information item of found in [reference parameters]
> (including all of its [children], [attributes] and [in-scope
> namespaces]) is represented as is.
>
> 2. Define the following as the first rule of the SOAP binding when
> _sending_ a message:
>
> 1. All the message addressing properties are serialized as SOAP
> header blocks using their XML Infoset representation defined in
> Core section 3.1 XML Infoset Representation of Message
> Addressing Properties.
>
> 2. Each SOAP header block resulting from a [reference parameters]
> is annotated with a wsa:Type attribute whose value is
> "parameter".
>
> 3. Add the following rules when _receiving_ a SOAP message:
>
> 1. The value of each message addressing property takes the value
> from the corresponding SOAP header block in the wsa namespace
> targeted at the node which matches the XML Infoset
> representation described in Core section 3.1.
>
> 2. Each such SOAP header block annotated with a wsa:Type
> attribute whose value is "parameter" is added to the content
> of the [reference parameters] MAP, without the wsa:Type
> attribute.
>
> 3. The SOAP header blocks annotated with a wsa:Type attribute
> whose value is "parameter" targeted at the node are processed
> as normal SOAP headers as per SOAP processing model. Note that
> these headers are resulting from the serialization of an EPR's
> [reference parameters] property, and may require additional
> security and sanity checks by the SOAP received.
For an intermediary, i.e. receiving and then sending the SOAP message
after processing, [reference parameters] according to the above rules
will be consumed and always replied:
- the message is received (change 3 above)
- ref params headers are stored in the [reference parameters] MAP
(rule 3-2)
- ref params headers are processed (rule 3-3)
- then, the message is sent follows its path to the ultimate receiver
(change 2 above)
- [reference parameters] stored during rule 3-2 are reinserted
So maybe rule #2 when receiving a SOAP message should just be dropped.
In other words, the [reference parameters] is *not* populated when
receiving a message.
Comments?
--
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/
Received on Thursday, 24 February 2005 13:49:45 UTC