On 2011-03-10, at 11:16 AM, Jerry Sobieski wrote:
> If someone thinks we need a URN specification for
version 1.0, please pipe up and
> provide the reasoning - there may be such, I just am
unaware of one in my mind at
> this moment. (But please don't tell me its needed for
web services-WS is not why we
> created NSI:-). Adding a URN prefix qualifies the
namespace - why does/should NSI
> need a qualified namespace for endpoint references? If
you think we do, or even if
> you think it is just a good idea, please explain how
this reconciles with the NSI
> architecture - i.e. how the URN version maps the
<network><endpoint> tuple, and
> how it improves the basic GID mentioned above?
Remember, we are only speaking
> to NSI endpoint references,...
Jerry,
It makes me giggle just imagining you in front of our
computer having a seizure every time you think of web services.
Well I'm glad I entertain you all:-)
Just to make sure we are clear on definitions, URNs are not
specifically associated with web services, and in fact, have
little to do with web services. Here is the introduction from
RFC2141 that defines the URN:
- Uniform Resource Names (URNs) are intended to serve as
persistent location-independent, resource identifiers and
are designed to make it easy to map other namespaces
(which share the properties of URNs) into URN-space.
Therefore, the URN syntax provides a means to
encode character data in a form that can be sent in
existing protocols, transcribed on most keyboards, etc.
By definition it is exactly what you have been asking for
with physical location independent naming. Whether you are
using web services or some other binary protocol, a URN is just
a syntax for identification and naming. This mechanism has been
chosen for use by the GLIF, perfSONAR, and the NML group.
Now, a URN also qualifies as an instance of a URI similar to
how a URL is also an instance of a URI. Perhaps this is why you
may have confused it with web services?
I think my concern is that the endpoints we are trying to reference
are not values passed to application services - they are endpoints
of conenctions. Is it apropriate to force all users of NSI to
adopt OGF naming conventions for their network endpoints? It is one
thing to say NSI uses these namepsaces internal to the protocol, its
is another to say all users of NSI services must also use OGF name
spaces to name their endpoints. If we specify any namesapce, it
seems to me we are also excluding all others. Is this necessary to
identify endpoints suitably?- or just a habit we've gotten into?
Personally, I do not like to be wishy washy with types when
defining protocols. Stating that an endpoint mush be from a URN
namespace, or more specifically, the OGF URN namespace, will
give more clarity in the protocol definition, and bind the
protocol definition to other OGF specifications.
Speaking of clarity, how much "clarity" does it really need? What
is not clear? We are talking about a two part tuple... That
carries no NSI relevant information in the names. Why would more
namespaces provide more "clarity"? Namespaces just qualify the
...uh..namespace. duh. I think what you want is not just
namespaces but XML schemas.
I would probably define a compound type as follows (I use XML
schema since I know it well):
<xsd:complexType name="StpType">
<xsd:sequence>
<xsd:element name="domain" type="xsd:anyURI" />
<xsd:element name="endpoint" type="xsd:anyURI" />
</xsd:sequence>
</xsd:complexType>
However, I am not going to
argue is people think it should be two strings instead of two
URN.
John.
Thanks John and all of you for the thoughtful discussion.