[ogsa-wg] What's in a webservice-resource name...?

Frank Siebenlist franks at mcs.anl.gov
Tue Feb 15 14:36:12 CST 2005


I would like to re-start a discussion about the naming of resources now that the resource reference properties have been ousted. 
(this ousting may be a blessing as it could simplify our naming as I will argue)

The following is a snippet from the latest ws-addressing draft:

------<snippet>--------
2.3 Endpoint Reference Comparison

During the course of Web services interactions applications may receive 
multiple endpoint references describing the endpoints it needs to 
interact with. Different copies of an endpoint reference may also be 
received over time.

The following rule clarifies the relation between the behaviors of the 
endpoints represented by two endpoint references with the same [address];
•
The two endpoints accept the same sets of messages, and follow and 
require the same set of policies. That is, the XML Schema, WSDL, and 
policy and other metadata applicable to the two references are the same.

However, the metadata embedded in each of the EPRs MAY differ, as the 
metadata carried by an EPR is not necessarily a complete statement of 
the metadata pertaining to the endpoint. Moreover, while embedded 
metadata is necessarily valid at the time the EPR is initially created 
it may become stale at a later point in time.

To deal with conflicts between the embedded metadata of two EPRs, or 
between embedded metadata and metadata obtained from a different source, 
or to ascertain the current validity of embedded metadata, mechanisms 
that are outside of the scope of this specification, such as EPR life 
cycle information [see 2.4 Endpoint Reference Lifecycle] or retrieval of 
metadata from an authoritative source, SHOULD be used.

The [address] properties of two endpoint references are compared 
according to Section 6 of [RFC 2396bis].

Therefore, a consuming application should assume that different XML 
Schemas, WSDL definitions and policies apply to endpoint references 
whose addresses differ.

2.4 Endpoint Reference Lifecycle

This specification does not define a lifecycle model for endpoint 
references and does not address the question of time-to-live for 
endpoint references. Other specifications that build on or use 
WS-Addressing may define a lifecycle model for endpoint references 
created according to that specification.

--------</snippet>------

It is almost as if lawyers wrote the statements above... or maybe it is an ill description of a Turing test that we can use to determine if two EPRs refer to the same webservice-resource... :-(

My layman and naive interpretation is that if the EPR's addresses of two EPRs are the same, then they refer to the same resource.

We essentially now have a "name" for our resource, which is the address' URI value, and if EPR-names are equal, then those names refer to the same webservice-resource.

I remember that we challenged the "uniqueness" property of the address before. (e.g. the use of ip-addresses inside an EPR-address, like 127.0.0.1 or 10.*.*.* would not make the EPR-address globally unique addresses).
However, in practice we must have a uniqueness property for the address within the "context of usage", otherwise we would be in real trouble. So, we could live within *our* 10.*.*.* domain happily and be guaranteed about the uniqueness of those ip-addresses. In other words, the real global uniqueness may not be a big deal in practice, and there are simple remedies like adding a uuid to the uri if needed.

If we have in addition a resolver-EPR that we can associate with an EPR through embedding (or through other means), then we essentially have introduced a mechanism that we could use for an additional naming-level scheme.

The Resolver-EPR is also an EPR, and will also have a name: its address' URI.
The Resolver-EPR's name will also uniquely refer to the same webservice-resource as the EPR it is associated with. In other words, the Resolver-EPR's name can be used as an alternative name for the webservice-resource.

We can use this to derive statements like: if two EPR have different names, but their associated resolver-EPRs have the same name, then those EPRs refer to the same webservice-resource.

It would allow a client to find out that different EPRs that use different mechanisms, like soap/http and soap/reliable-messaging, describe alternative ways to talk to the same webservice-resource

As the EPR's address can be "logical", we could use any naming scheme we want for a Resolver-EPR's address (as long as it's an URI), and could use human readable names, or application-domain specific names, or UUIDs.

In other words, by standardizing the usage convention of a resolver/stable/resilient/renewable-EPR, we have introduced a flexible naming mechanism for our webservice-resources.

It would also leave the use of different naming schemes open ... which could be considered a good thing.

Regards, Frank.

PS. I feel obliged to point out that there are serious trust issues associated with the binding of different names to the same webservice-resource...but that is orthogonal to the "naming" itself.


-- 
Frank Siebenlist        franks at mcs.anl.gov
The Globus Alliance - Argonne National Laboratory





More information about the ogsa-wg mailing list