Issue 7 - processing model for SOAP headers

Issue 7 concerns the processing model (or lack of) for the SOAP headers 
defined by WS-Addressing. WS-A defines the following message addressing 
properties, each of which is bound to an individual SOAP header:

wsa:MessageID
wsa:RelatesTo
wsa:ReplyTo
wsa:From
wsa:FaultTo
wsa:To
wsa:Action

All of the above headers (when specified by the sender) seem to be 
required at the destination endpoint but might also be useful to 
intermediaries in the SOAP message path, e.g. wsa:To, wsa:Action, 
wsa:RelatesTo might be used for message routing.

SOAP defines a processing model[1] for message receivers 
(intermediaries and the ultimate recipient) that defines how a message 
is processed, this includes:

- what SOAP headers are processed at a receiver (targeting)
- understanding of headers and description of mustUnderstand processing
- relaying of SOAP messages including removal of processed headers.

The specification of a particular SOAP header can define additional 
semantics that apply to that header, e.g. the specification of a 
particular header might require that it be reinserted if processed by a 
SOAP intermediary such that it survives intermediary processing and 
remains in the message until it reaches the ultimate recipient.

Currently the SOAP Binding for WS-A doesn't discuss targeting or 
replaying of WS-A defined headers in any normative way. The examples in 
the specification do not include a role/actor attribute, this is 
equivalent to targeting the header to the ultimate recipient but if we 
decide to specify this normatively then we preclude processing of WS-A 
headers by a forwarding intermediary (note that SOAP active 
intermediaries provide a way round this). My preference would be to 
specify that all of the WS-A header blocks are reinserted if processed 
by an intermediary and recommend that they carry a relay="true" and 
role=".../next" attribute. This formulation woul dallow each header to 
be processed by a forwarding intermediary whilst ensuring that all WS-A 
headers also survive to the ultimate recipient.

Beyond the simple reinsert processing model proposed above I also think 
it would be worth adding sections to the SOAP binding specification 
containing a processing model for each header. This may be as simple as 
referring back to the relevant section in the core document or (in some 
cases) specifying that there is no processing model and that the header 
is purely informational.

Thoughts, comments ?

Marc.

[1] http://www.w3.org/TR/2003/REC-soap12-part1-20030624/#msgexchngmdl
---
Marc Hadley <marc.hadley at sun.com>
Web Technologies and Standards, Sun Microsystems.

Received on Wednesday, 12 January 2005 20:59:42 UTC