DANTE Ltd is now the administrator of the uniform resource name (URN) namespace, urn:geant. As such, DANTE is responsible for supplying URNs to the GÉANT partners and projects.
What is a Uniform Resource Name?
A uniform resource name (URN) is a schema for creating and applying permanent, unique names to system elements. This is in a similar fashion to the naming schema in biological sciences, where flora and fauna are given unique names according to a hierarchical classification system.
With URNs, the hierarchy begins with the top-level namespace (in this case urn:geant). Beneath that top-level, other naming levels are created to provide a hierarchy that not only results in a unique name for the entity, but can also describe (for example) who owns it and what it’s for.
In XML programming, URNs have been a W3C standard since 1999. Since then, the practice has been expanded to provide a naming system for all types of resources, and is regulated by the US agency, IANA (Internet Assigned Numbers Authority, http://www.iana.org/).
Why have URNs?
URN namespaces allow you to allocate unique names to system entities, irrespective of their location. This is vital, as it means workers and computers can distinguish and accurately identify elements even if they have been named the same.
For example, you might have an application that uses an element called schedule to mean an accounting schedule. Another application might use the same element schedule to mean a time schedule. If you needed to merge these applications, or even store them in the same place, this would cause problems. However, if the accounting schedule was given the URN accounting:schedule and the project schedule given the URN time:schedule, you could distinguish between them easily.
accounting:schedule and time:schedule are two simple examples of URNs. The urn:geant system administered by DANTE is more sophisticated but uses the same logic to allow for project resources to be named uniquely, permanently, and independent of location.
This is particularly important as the GEANT community produces many kinds of project resources: documents, specifications, working drafts, project reports, xml schemas, style-sheets and so on. Consequently it will be extremely beneficial to the GEANT community and other GEANT-affiliated groups to have an easy, efficient way to assign globally unique, persistent and location-independent names to resources that they create.
How does it work?
To allocate an URN to an entity, you must first register for a top-level namespace with the US namespace agency, IANA (Internet Assigned Numbers Authority, http://www.iana.org/).
DANTE registered the urn:geant namespace with IANA in August 2007 by submitting a Request For Comments (RFC), describing the proposed namespace and its use to IANA. This resulted in the urn:geant namespace becoming one of the registered formal URN namespaces in the Official IANA Registry of URN Namespaces (see http://www.iana.org/assignments/urn-namespaces).
An URN is a permanent entity and once allocated, is owned forever: it cannot be lost or lapsed unlike a DNS assignment which can easily be lost if the holder simply forgets to make a renewal payment.
It is anticipated that most of the NRENs and GEANT-based activities will make use of the GEANT namespace. On request, DANTE will delegate namespaces to the following specific entities, who can then name their own entities based on their namespace allocation:
It is DANTE’s responsibility to guarantee the uniqueness of the names they allocate, and subsequently the responsibility of the organisations described above to guarantee the uniqueness of the names they allocate. In that way, all entities named in this system are guaranteed to have specific, one-of-a-kind names.
How can URNs be used in GÉANT?
Namespaces are useful for assigning unique names to object types mapped to logical or physical entities. Routers are a good example. The element Router_ID could be used independently by the NRENs RedIRIS and SWITCH to contain the value for a router ID. This would cause problems when (for example) configuring software to include both elements, as the software could not distinguish between the two. But if URNs are used, the problem goes away. In this example, the URN urn:geant:rediris.es:Router_ID uniquely identifies the router ID as whatever RedIRIS has decided to assign to it, whereas urn:geant:switch.ch:Router_ID would be as assigned by SWITCH.
A particularly good and current example is eduGAIN (the architecture for authorisation and authentication within the community), which has already started to use the naming hierarchy under urn:geant to name the components of its architecture.
eduGAIN’s requirement is to assign intelligible names to components (that is, names that identify what the component is or does), and that each name to be unique. The urn:geant namespace allows them to do just that.
For example, for a metadata server and a bridging component, the URNs are: