
Frank Siebenlist wrote:
Without the proper uniqueness guarantees for the wsa:Address, the use of ws-naming's AbstractName is meaningless.
The EPR with an embedded AbstractName essentially describes a binding between the Address and the AbstractName. One could argue that this binding is a bit of a flaky assertion without any way to specify time-validity or issuer. As a result, one can not see from an EPR alone when it was issued or whether it is still valid or not.
An EPR-minter can decide to create a new EPR for a resource and reuse an Address that was used for an other resource before. This would yield the undesirable situation that you would have two EPRs with identical Addresses and two different AbstractNames associated with different resources, and the client would have no way to see which one of the EPRs is valid...
For example, if I have two EPRs with the same Address, where one EPR includes an AbstractName that identifies MyBankAccount and the other includes an AbstractName identifying YourBankAccount, then one of us will not be happy with that situation...
In order to avoid this ambiguity, we need the guarantee from the EPR-minter that Address values will not be reused for different resources: for all times, the Address should either refer to that one and only resource, or it should be invalid (and it is allowed to change between those two states). Furthermore, the EPR-minters should ensure that globally unique Addresses are used for a resource such that different EPR-minters do not (accidentally) use the same Address for different resources. The described uniqueness properties of the Address constitutes a required EPR-minter profile for the use of AbstractNames.
---
This has been reiterated in a number of emails, but i wanted to call it out separately to facilitate the discussion whether the observation holds water and if so, whether such a EPR-minter Address-profile should become part of the ws-naming spec.
One thing to remember is that WSDM defines every resource as having a ResourceId, and says that that ResID must be unique. So in the CDDLM deploy API we have -a resource ID that is used to uniquely identify a created System. -an operation on a portal that maps from a resource ID to an address The latter effectively allows multiple portals to manage the same cluster by giving you a more robust means to access things inside it. However, once you have an entity that can be accessed by >1 Address, you have to consider how WS Resource Lifetime interacts. Does the resource at address A have the same lifetime as address B: if I go A:<Destroy> does that destroy B too? And if the lease to B expires, does A go away too? Or do you have to model the thing at the end of every address not as the resource with which you are interacting with, but as a transient view of the resource, a view with its own lifetime. -steve
PS. Note that everywhere I wrote "Address" above, it should probably be substituted by "Address+ReferenceParameters", but this simplification doesn't change the observation.
that depends on how you implement WSRF. Mine only uses the address, and so should in theory interop better with other WS-A implementations. But I do use generated GUIDs in that address, as it is the best way to guarantee uniqueness.