Blogger :
Brain.Save()
All posts :
All posts by Brain.Save()
Category :
WSCF/WCF
Blogged date : 2004 Nov 14
There’s a good little
back-and-forth between Omri and DaveO on
the subject of Reference Properties and Reference Parameters in WS-Addressing.
I like to think that I understand the function and motivation for Reference Properties.
Reference Properties are little blobs of state that you can include in an endpoint.
Reference Properties contribute to the overall identity of an EPR, and are significant
when it comes to determining EPR equality (if two EPR’s have different Reference
Properties, they’re two different EPR’s). This feature allows services
to dynamically construct groups of related endpoints easily, which can be quite handy.
For example, WSE2 shows that it’s possible to use Reference Properties to attack
the general problem of response correlation by encoding a conversation ID within the
ReplyTo EPR. Dispatch can still be based on strict EPR equality, relying on the presence
of the RefProp to disambiguate between multiple conversations happening simultaneously.
It’s a good way of ensuring that the dispatch routine doesn’t accidentally
hand Thread B the response to Thread A’s request.
Reference Parameters, OTOH, are a different beast. They are not significant
in equality comparisons and thus do not contribute to EPR identity. My big questions
are: what are they used for? Who consumes them? Why would it be advantageous to put
these things inside of the Reference Parameters instead of some other place inside
the message (either in a different header, or in the body?). If EPR’s are about
determining identity, why is it good to include stuff in them that explicitly has
no bearing on EPR identity?
I have yet to have the “aha!” moment with RefParams that I had with Reference
Properties.