- From: Doug Davis <dug@us.ibm.com>
- Date: Tue, 10 Oct 2006 19:30:10 -0400
- To: public-ws-addressing@w3.org
- Message-ID: <OF99171246.A05C5EA6-ON85257203.007AD122-85257203.008119F4@us.ibm.com>
There's a point I'd like to bring up w.r.t. RM's anon URI that I think
hasn't been mentioned before and I think it might be causing some
confusion. The RM anon URI template is defined as:
http://docs.oasis-open.org/ws-rx/wsrm/200608/anonymous?id={uuid}
A lot of people look at the "uuid" portion as the queueID - and while I
understand this perception it is actually not correct. As has been stated
before, this URI indicates that the appropriate backchannel is meant to be
used and it allows for each backchannel to be uniquely identified. Clearly
the "uuid" portion is meant to be the distinguishing portion. However, it
is also important to point out that the client of messages targeted to
this URI _does not_ need to actually examine this uuid, in isolation, at
all. And I think this is part of the misunderstanding.
The first part of the URI "http" thru "?id=" is simply there to provide
a constant string that allows for people to know we're dealing with a new
special URI. The "uuid" actually has no meaning at all except to provide
uniqueness. W.r.t. comparing the wsrm:Address element passed in the
MakeConnection with the wsa:To value and any pending message, the RM spec
says:
This Address property and a message?s WS-Addressing destination
property are
considered identical when they are exactly the same
character-for-character.
This means that the client endpoint sending messages to this URI does not
actually need to extract the uuid at all, it can treat the entire URI as
one string. This is one of the reasons we've repeatedly said that this
URI is really no different from other URIs - it just identifies the
endpoint not a queue. Ignoring the fact that the RManonURI says it should
be a uuid, we could have just as easily allowed URIs to look like:
http://docs.oasis-open.open/ws-rx/wsrm/200608/anonymous/dugsThinkspad
I sometimes wonder if we picked a form like this if it would have removed
some confusion.
In my mind these forms are semantically equivalent though - the client
will not actually try to open a new connection to the wsa:Address, and the
URI uniquely identify the target endpoint. And this is similar to what
WSA does today with its special URIs - except the semantic meaning
associated with them is different. I think WSA did a really good job in
this respect. By allowing for special EPRs (e.g. anon and none) to be
treated just like any other EPR by virtually all layers of our soap
endpoints it provides a nice separation and keeps the semantics of how to
actually interpret the wsa:Address portion of the EPR away from everyone
except the one piece that actually must know how to deal with it - the
transport layer. This of course is related to my previous note today [1].
On a related topic - there are times when the sending machine may use the
wsa:To URI for some additional purposes aside from simply being the
endpoint to which it opens connections. For example, it may be used for
some type of grouping mechanism. E.g., it may choose to place all
messages destined for one URI into the same RM Sequence. A simple
strcmp() is all that is needed - and this works whether we're dealing with
real (async) EPRs or the RManonURI in an EPR. If we were used a fixed URI
(like WSA's anon) we would have to have a different grouping algorithm
depending on whether we were in an sync model or async model. For
example, the async model would still look at just the wsa:To but the sync
model would need to look at something else - like perhaps a ref-p (and
then we also have the whole issue of ref-p's being opaque). This means
that any logic currently based on the wsa:To value would need to be aware
of this special case - which is not a good idea - and one of the many
reasons we tried very hard to make this sync MEP look (and smell) as much
like the async MEP as possible. Again, we felt it was very important that
the code sitting above the actual transport layer would be allowed to
remain untouched and continue to treat an RManon EPR just like any other
EPR.
Hope this helps - or at least doesn't make things worse :-)
thank
-Doug
[1]
http://lists.w3.org/Archives/Public/public-ws-addressing/2006Oct/0058.html
Received on Tuesday, 10 October 2006 23:30:23 UTC