RE: Issue 221 resolution text change

The only problem I have with your proposed resolution is that it was 
explicitly considered and rejected by the f2f, and I'm not sure we have 
the new information needed to reopen.  I've always stated that I'm 
semi-neutral on whether we take the route you suggest, or the f2f route, 
so I don't much care in principle.  Speaking as an editor, I think we have 
to come as close as we can to finding a coherent formulation of what the 
f2f requested.  If that embodies any significant functional tuning, we 
should at least mention it on distApp so someone can complain, and if we 
thing the f2f resolution is too broken we should indeed request 
reconsideration by the WG.  My earlier notes proposing formulations were 
in the spirit of:  how can I write something that says what the f2f asked 
us to say, but fills in a few of the details that seemed to be causing a 
bit of discomfort. 

So, are you suggesting that you are sufficiently unhappy with the f2f 
resolution that we should bring it back to the WG?  Speaking just as an 
editor, I don't really see the need, as I think some of the formulations 
offered within the last few days are essentially embodiments of the f2f 
decision, and I think they do work.  Whether I think they're ideal is a 
separate question (as I say, I think they're OK, but not necessarily 
better than the alternative...I'm actually not that happy with either one, 
and lean just slightly toward the f2f rules.

Also, if we do go with your suggestion, I propose the following change of 
the word "that" to "which":

<original>
"Unless explicitly stated otherwise, a SOAP message MUST NOT contain PIs
and a SOAP receiver MUST generate an env:Sender fault if it receives a
SOAP message containing PIs. The only exception to this rule is for SOAP
header blocks and SOAP Body that SHOULD NOT contain PIs. PIs included in
a SOAP header block or the SOAP body are considered significant and MUST
be forwarded by intermediaries relaying that message."
</original>
<slightRevision>
"Unless explicitly stated otherwise, a SOAP message MUST NOT contain PIs
and a SOAP receiver MUST generate an env:Sender fault if it receives a
SOAP message containing PIs. The only exception to this rule is for SOAP
header blocks and SOAP Body,  which SHOULD NOT contain PIs. PIs included 
in
a SOAP header block or the SOAP body are considered significant and MUST
be forwarded by intermediaries relaying that message."
</slightRevision>

If we say "The headers that should not contain pi's" that implies:  some 
should, some shouldn't, and I'm talking about the ones THAT should not.

If we say "The headers, which SHOULD contain pi's,...",   That says:  "I'm 
talking about headers, and they should not contain PIs.  I think even 
clearer might be:

<lessslightRevision>
"Except as described here, a SOAP message MUST NOT contain PIs
and a SOAP receiver MUST generate an env:Sender fault if it receives a
SOAP message containing PIs;  the only exception to this rule is for SOAP
header blocks and the SOAP Body: 
header blocks and the SOAP body SHOULD NOT contain PIs among 
their descendants.
If such header or body PIs are present, however, they are considered 
significant and MUST
be forwarded by intermediaries relaying that message."
</lessslightRevision>

Actually, now that I read all of these, they require yet more tuning I 
think:  they don't say whether you MAY, SHOULD or MUST NOT fault if you 
receive a header or body entry with a PI.  We say they SHOULD NOT be 
there.  That tends to mean I can fault on them if I like.  Then we say the 
intermediary MUST forward. 

I would have thought that to get to where you want to go, Henrik, we would 
need one of the following choices: 

(alternative 1): a SOAP node, including an intermediary, SHOULD fault when 
it receives a message with a PI in a header or body, but if an 
intermediary chooses not to and therefore relays the message, it MUST 
treat as significant and forward the PIs. 

(alternative 2):  a SOAP node processing (in the sense of chapter 2.6) a 
header entry targeted to it (or body at ultimate receiver) MAY fault with 
a sender fault if that entry contains a PI that is not appropriate given 
the specficiation for the header or body in question;  nodes MUST NOT 
fault based on the presence of PIs in header or body entries not processed 
by that node.  An intermediary relaying such unprocessed header or body 
entries MUST treat as significant and forward the PIs.

(note also:  this needs to be recast in terms of information items, I 
think.) 

Anyway, I'm still not convinced we've got a good reason to reopen the 
decision of the f2f, but if you want to it's OK with me.  I do think that 
some more detail work is needed to get your proposal right, and I hope the 
above at least helps lay out the alternatives.  Thanks.

------------------------------------------------------------------
Noah Mendelsohn                              Voice: 1-617-693-4036
IBM Corporation                                Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------







"Henrik Frystyk Nielsen" <henrikn@microsoft.com>
09/09/2002 12:52 PM

 
        To:     <noah_mendelsohn@us.ibm.com>, "Jean-Jacques Moreau" <moreau@crf.canon.fr>
        cc:     "Marc Hadley" <marc.hadley@sun.com>, "Martin Gudgin" 
<mgudgin@microsoft.com>, "W3C Archive" <www-archive@w3.org>
        Subject:        RE: Issue 221 resolution text change



Jean-Jacques, thanks for adding me back in!

In a previous mail in a related thread on xml-dist-app it was pointed
out that the f2f resolution was clear and unambiguous but the dialog
below seems to indicate that this is not the case. Either we say that
the f2f resolution was broken or we don't. If it is broken we owe it to
the WG to say so and move the discussion to xml-dist-app. 

That said, making conformance requirements but then add opt-outs because
of hardware or microcode implementation optimizations seems bizarre and
hard to defend. Writing a specification is about getting unambiguous
reactions regardless of the implementation. Personally I am not fond of
PIs but bending processing rules seems even less appealing.

In addition, I don't believe the argument that performance optimizations
are any different for SOAP receivers acting as ultimate destinations
than they are for receivers acting as intermediaries.

Having a situation where one conformant SOAP receiver generates a SOAP
fault and another conformant SOAP receiver doesn't will damage
interoperability and erode people's trust in our specification. 

In general, we use MUST and MUST NOT requirements to enforce behavior
that is essential in order to produce an interoperable system. The
opt-out seems to indicate that we in fact do not have such a case,
otherwise we would be forced to say that messages MUST NOT contain PIs
and receivers MUST fail. I don't believe it is sufficient to say that
the message will fail eventually as each SOAP node must be able to
process a message independently of other SOAP nodes.

I think the fundamental problem is that we have different expectations
about PIs in places where they may interact with the SOAP processing
like before the envelope, between header blocks, etc. as compared to
within SOAP header blocks and within the SOAP body. The discussion below
only mentions the issue within the SOAP Body or within SOAP header
blocks but one could argue that this in fact doesn't address the issue
that was initially brought up:

                 3rd paragraph: We are not clear about whether 
intermediaries
                 MUST, SHOULD, MAY, SHOULD NOT or MUST NOT forward PIs -
                 only that a message SHOULD NOT contain them.

Forwarding is defined in terms of SOAP body and SOAP header blocks as
this is what a SOAP intermediary may relay. I would suggest that
therefore state something like this: 

"Unless explicitly stated otherwise, a SOAP message MUST NOT contain PIs
and a SOAP receiver MUST generate an env:Sender fault if it receives a
SOAP message containing PIs. The only exception to this rule is for SOAP
header blocks and SOAP Body that SHOULD NOT contain PIs. PIs included in
a SOAP header block or the SOAP body are considered significant and MUST
be forwarded by intermediaries relaying that message."

I believe this covers the cases where an intermediary relays a message
containing PIs in the relayed SOAP body or SOAP header blocks while
providing unambiguous SOAP processing semantics for when to generate a
fault.

Henrik Frystyk Nielsen
mailto:henrikn@microsoft.com

>-----Original Message-----
>From: noah_mendelsohn@us.ibm.com [mailto:noah_mendelsohn@us.ibm.com] 
>Sent: Monday, September 09, 2002 07:49
>To: Jean-Jacques Moreau
>Cc: frystyk; Marc Hadley; Martin Gudgin; W3C Archive
>Subject: Re: Issue 221 resolution text change
>
>
>Jean Jacques Moreau writes;
>
>>> I like the spirit, but wouldn't an implication
>>>be that intermediairies can no longer remove 
>>> headers targeted to them, when they contain 
>>> PIs? Isn't this in contradiction with the 
>>> processing model?
>
>Thanks, looks like we're closing in on a resolution. 
>
>I don't think there's a problem with the processing model. We 
>clearly say 
>you SHOULD fault if you receive a PI.  The reason for the lattitude is 
>essentially that you're relaying a header of no concern to you and not 
>looking at it closely.  I agree we need to be careful with the 
>case where 
>it was addressed to you, and we have to document the rules for 
>that very 
>clearly.  Actually, I think the ambiguity is only in the case 
>where you 
>chose to "reinsert" a header, as it's in the case of relayed 
>content that 
>we've given lattitude.  I think that in all other cases, 
>including just 
>removing  a header, we've said "SHOULD fault", end of story. 
>In the case 
>of a re-inserted header,  what about (at or near the sentence on 
>re-inserting indistinguishable headers) "intermediaries SHOULD NOT 
>reinsert headers that contained processing instructions but SHOULD 
>instead, as described above(below), fault with a sender fault."
>
>In other words, you MUST not insert new headers with PIs, you 
>SHOULD NOT 
>reinsert headers that were received with PIs, (and as we've 
>more or less 
>agreed) you SHOULD fault if you receive a message with a PI. 
>How's that?
>
>------------------------------------------------------------------
>Noah Mendelsohn                              Voice: 1-617-693-4036
>IBM Corporation                                Fax: 1-617-693-8676
>One Rogers Street
>Cambridge, MA 02142
>------------------------------------------------------------------
>
>
>
>

Received on Monday, 9 September 2002 14:24:39 UTC