Comments on SOAP 1.2 Part 1

Continuing with my action item, here are comments on SOAP 1.2, Part 1:

2. SOAP Processing Model. First paragraph.
It would be nice to mention the SOAP Response MEP. Also I don't find that
section 3.3 SOAP Message Exchange Patterns (MEPs) really provides a
description of the relationship between SOAP message exchange patterns and
the SOAP extensibility model. It gives only a very brief definition of a
MEP, and it makes no explicit mention of the extensibility model. It does
describe the relationship between MEPs and the Protocol Binding Framework.

2.4 Understanding SOAP Headers. Question.
Is it true that if a "mustUnderstand" header is targeted at a specific role,
but the message is never routed through a node that assumes that role, then
the header is never processed, and the Ultimate Receiver can simply ignore
it? Is there a way to specify that a message must not be processed if
certain headers have not been processed (i.e., a true "mandatory" header)?
Or is this left as an undefined extension feature or a proprietary SOAP
server feature?

2.7.2. Active Intermediaries. Second paragraph: Question.
It says, "an active intermediary might have removed and encrypted some or
all of the SOAP header blocks found in the inbound message". Shouldn't it
say, "some or all of the SOAP header blocks and SOAP body"?

3.3. SOAP Message Exchange Patterns (MEPs)
It would be nice to add a reference to Part 2, section 6.

4.2. Binding Framework. Third paragraph:
ends with "one or more MEP". Should be "one or more MEPs".

5.2.1. SOAP header block. In the paragraph following Example 3, in the
sentence, "A SOAP sender generating a SOAP message SHOULD use these
attributes only on SOAP header block.":
It should read, "only on a SOAP header block"

5.4.8. SOAP mustUnderstand Faults. First sentence.
"When a SOAP node generates a fault with a Value of Code set to
"env:MustUnderstand" for," -- delete the word "for".

5.4.8. SOAP mustUnderstand Faults. Second paragraph:
"A SOAP node MAY generate a SOAP fault for any one or more SOAP header
blocks that were not understood in a SOAP message."
This sentence is very ambiguous and seems to conflict with this sentence
from section 2.4 Understanding SOAP Headers:
"for every mandatory SOAP header block targeted to a node, that node MUST
either process the header block or not process the SOAP message at all, and
instead generate a fault"
My understanding (according to section 2.4) is that the SOAP node MUST
generate a SOAP fault for the first SOAP header block that is targeted at
that node, contains mustUnderstand="true", and that it does not understand.
When a node encounters a mustUnderstand error, it should stop processing
immediately (i.e., no further processing of other header blocks) and return
the error. Also, this sentence might be construed to mean that the SOAP node
MAY generate multiple faults. If my understanding is correct, then Example 6
should be changed to include only one Misunderstood header blocks. If not,
then I would recommend that section 2.4 be changed to indicate that
processing may continue after encountering a mustUnderstand fault.

7.3.1. Binding to Application-Specific Protocols. First paragraph, last
sentence:
"in order to reuse the existing infrastructure associated that protocol"
should be "associated with that protocol".

Anne Thomas Manes
Chief Technology Officer
Systinet
http://www.systinet.com
617-868-2224 x1543 (land)
617-642-3144 (mobile)

Received on Thursday, 18 July 2002 13:00:59 UTC