RE: [AMG] Need for XMLP_UnitData.forward Correlation parameter

Glyn,
 
There may be something that is not immediately clear from the AM. model.
There is a philosophical question as to whether a message forward by a SOAP
intermediary is the same message that it received. To some extent this is
like asking whether an an IP packet that leaves a router is the same IP
packet that entered the router (or a different one).
 
There was certainly some debate of this question. If you answer it in the
negative and say that they are indeed different then IMO we have a single
hop messaging model and I'm left wondering what SOAP intermediaries really
are. Intermediaries can exist in such an environment, they are just pushed
up a level.
 
The orginators of the intermediary model in SOAP 1.1 were/are strongly of
the view that the message forwarded by a intermediary us the *same* message
that was incident at the intermediary. Henrik describes a shopping basket
model, things get put in the basket and taken out the basket, but the basket
is the same basket. Maybe a more messaging analogy is the say a form in an
envelope passing through several stages of authorisation (at different
intermediaries like my manager and then his manager) before finally arriving
at the purchasing dept. and thence a buyer - there is a material sense in
which the message is the same - its the same bit of paper, it just has more
marks on it. I'd also accept that there is an abstract sense in which the
message is in fact different in that the message changes from "I want to
buy..." through stages to "the purchasing dept is approved to place this
order".
 
Anyway enough of the philosophy. The AM attempt to reflect view of the
originators of the SOAP intermediary model that the message is (at least
materially) the same message. So from your example below, m1 and m2 are in
that sense the same message. Likewise, m3 and m4.
 
Taking the view that the message forwarded by UnitData.forward is the same
message that was incident at the node, it was (and still is) my opinion that
a Correlation parameter is superflous on the .forward. Consider what it
would mean, given the intended sameness of the message, if the value of the
correlation parameter were different from the value delivered with the
corresponding indication - it should be no different and the XMLP layer
already knows what it is.
 
I hope this helps... 
 
Best regards
 
Stuart

-----Original Message-----
From: Glyn Normington [mailto:glyn_normington@uk.ibm.com]
Sent: 04 October 2001 16:03
To: xml-dist-app@w3.org
Subject: [AMG] Need for XMLP_UnitData.forward Correlation parameter


Doesn't XMLP_UnitData.forward need to take a (mandatory) Correlation
parameter so 
that the XMLP layer can correlate requests and replies when  intermediaries
are present? 

The following scenario hopefully makes this clear, but please accept my
apologies for the 
level of detail - as a newcomer to this area, I wasn't sure how much to
assume. 


Consider an extension of the scenario in [1] (or [2]) to include a reply
which flows 
from the 'receiving app.' back to the 'sending app.' via the intermediary as
follows: 


    From    To       Primitive 
 1. S       X        send m1 
 2. X       I        receive m1' 
 3. X       S        status 
 4. I       X        forward m2 
 5. X       R        receive m2' 
 6. X       I        status 
 7. R       X        send m3 (m2' reference) 
 8. X       I        receive m3' (m2 reference) 
 9. X       R        status 
10. I       X        forward m4 
11. X       S        receive m4' (m1 reference -- but how?) 
12. X       I        status 


where S=sending app., I=intermediary app., R=receiving app., X=XMLP layer, 
mn=message, mn'=new local copy of mn. 


The XMLP layer can infer the correlation of m3' to m2 in (8) from the
correlation 
of m3 and m2' in (7). We can see this with the help of a bit of notation.
Let '=' be 
equality of messages and '~' be the 'correlates to' relation. Then: 


m1=m1' 
m2=m2'~m3=m3' 
m4=m4' 


So m2~m3'. 


However, the XMLP layer does not appear to have enough information to 
correlate m4' to m1 in (11). It would need: 


m1'~m2 
m3'~m4 


which could be provided by specifying a Correlation parameter on (4) and
(10), thus: 
 4. I       X        forward m2 (m1' reference) 
10. I       X        forward m4 (m3' reference) 


Glyn Normington 
IBM Hursley 


[1] http://www.w3.org/TR/2001/WD-xmlp-am-20010709/#Sec3.1.2
<http://www.w3.org/TR/2001/WD-xmlp-am-20010709/#Sec3.1.2>  
[2] http://www.w3.org/2000/xp/Group/1/08/14-am/xmlp-am.html#Sec3.1.2
<http://www.w3.org/2000/xp/Group/1/08/14-am/xmlp-am.html#Sec3.1.2>  

Received on Friday, 5 October 2001 06:29:30 UTC