RE: An analysis of mustUnderstand and related issues

>On the call just now, Glen brought up what I think is the area
requiring 
>greatest attention:  if several headers for the same header all
indicate 
>mustUnderstand, can we say anything about the order processed? In SOAP 
>1.1, I think the answer is "no".  Henrik suggests (a) that lexical
order 
>be significant -- I think that's a change to SOAP 1.1, though possibly
a 
>good idea 

I think we have (at least) two opportunities that we might want to
consider - I am not saying I have the answer either way:

1) We say that the header entry order is significant in processing the
message.

2) We say that intermediaries SHOULD NOT reorder header entries but may
add header entries and take out header entries intended for it.

I think we have to think about what "significant" means in 1) and how it
interacts with SOAP faults that only work for the full message: either
it is a success or a failure - we don't have the possibility of saying
(at least using SOAP fault asis) something like the first three header
entries succeeded.

The latter is slightly different in that it actually doesn't enforce
ordering in the processing but applications can take advantage of the
fact that header entries are not reordered. You are right that SOAP
doesn't say anything about either 1) or 2). Going from unordered to
ordered would definitely be a change.

>(b) that rollback be required if later processing fails--I'm not 
>sure this is practical, but we should consider it. 

I don't think I went that far and I agree with you that it might not be
possible to require simply because we don't know what processing any
header entry does in the first place.

It boils down to the question of when it is possible to start process a
message: as soon as you get the data or when you have the full message.
Both mechanisms have ups and downs. For example, how does "progressive
processing" affect messages that are being sent and what happens for
example if the processing fails half-way?

> Also:  I don't think 
>anything suggests that different actor URI's are necessarily different 
>processors---so multiple header blocks addressed to what appear to be 
>different actors might, in fact, interleave.  Consider "next" as just
one 
>example.  I'm not sure a lexical order dependency handles these cases 
>gracefully.

That is a good point.

Henrik

Received on Wednesday, 16 May 2001 22:43:04 UTC