RE: Soap Message Canonicalization (SM-C14N)

I largely agree with Noah.  Like XML, SOAP neither says that lexical
order is significant nor insignificant.  It might be in some cases and
not in others.  It should certainly be possible that, in some cases,
lexical order is significant, and, like XML, it should also be possible
that, for certain classes of messages and/or headers, lexical order is
predetermined and/or insignificant.  I believe it is premature to state
more than this.

-----Original Message-----
From: Noah Mendelsohn [mailto:noah_mendelsohn@us.ibm.com] 
Sent: Friday, February 15, 2002 3:31 PM
To: rsalz
Cc: Christopher Ferris <chris.ferris; xml-dist-app
Subject: Re: Soap Message Canonicalization (SM-C14N)


Thank you for undertaking this.  I must say, I'm nervous about some
aspects
of this.  Some concerns:

* While SOAP, in the absence of extensions, mandates no interpretation
of
header order, we have already made clear that extensions can be created
to
control processing order, and I think it's highly desireable that
lexical
order in the infoset be significant if the extension says so.  Consider
streaming of large documents;  I think it should be possible to define
control headers that will be known to appear early in the document.  I
know
that in many cases it will be the body that will be streamed, but that
doesn't work well if you want to intermix control with data in a stream.
Bottom line:  XML Infoset says lexical order is significant.  We could
say
that it's insignificant in SOAP, but I would prefer not to go that way.

* Related concern:  you've suggested an ordering based on the entire
contents of each header block, I think. That sounds extremely expensive
to
compute in the general case.  It could involve sorting on almost the
entire
contents of evey header element.

* Requiring alphabetical order clearly conflicts with streaming;   you
don't know the first header block until you've seen them all.

* In general, I'm not sure we've motivated a single canonicalization for
SOAP.  What are the use cases.  Allowing some freedom to intermediaries
does establish equivalence classes for soap messages, but not
necessarily
one representation for each class that's considered canonical.

Overall, my intuition is that the latitude given to intermediaries in
rewriting a message should be relatively modest.  My starting point
would
be that the message goes through intact, except for removed and inserted
headers.   I would, if necessary, loosen up the bare minimum needed to
support efficient implementations.  I'm not convinced that reordering
the
headers is going to do anything other than limit the scenarios in which
SOAP can be used, and introduce interop headaches (because some
intermediaries will reorder and some won't).

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

Received on Saturday, 16 February 2002 23:10:27 UTC