Skip to content. | Skip to navigation

Personal tools


You are here: Home / Wiki / Urns




The latest ProtoGENI API names all ProtoGENI objects with URNs, as described in "GMOC Proposal: Use URN as GENI identifiers, Version 0.2 (Draft)".

URNs are very heavily used in ProtoGENI: almost all XMLRPC operations accept at least one URN parameter, and every current certificate should name its corresponding principal by URN.


The following examples are borrowed from the GMOC Proposal:

ResourceGENI Identifier
User cviecco at the planetlab
Planetlab node:
Interface eth0 in planetlab node

Examples of additional types of objects specified by ProtoGENI include:

ResourceGENI Identifier
Slice mytestslice in the Utah Emulab slice
The Utah Emulab slice authority
Sliver 123 in the Utah Emulab component
A ticket issued by the Utah Emulab component


The definitive description of URN structure is given in the GMOC proposal. However, as an informational summary, ProtoGENI URNs can be considered in the form:



is an internationali[sz]ed domain name (which must match the one in the certificate of the authority which issued the object name)
is a string describing the type of the named object (the set of strings is described below)
should uniquely identify the object among any other resources with identical toplevelauthority and resource-type. It is important to realise that the ProtoGENI API attaches no other significance to this field, and in particular, no relation is implied between objects with identical resource-name but differing toplevelauthority or resource-type. However, individual authorities (and especially component managers) may choose to define additional semantics for resource names.

Please note that in strict terms, URNs are actually transformed public identifiers, and this transformation imposes certain limitations on the syntax of GENI identifiers. However, while this distinction is important to authorities which generate URNs, it is generally opaque to the end user.

Defined types

A ProtoGENI service (i.e. an XMLRPC server). By convention, resource-name is ch for the clearing house, cm for a component manager, sa for a slice authority, or ses for a slice embedding service. root is used for the special case of the object named in a CA's self-signed certificate (even though the CA is not a ProtoGENI service in the strict sense). In principle, other names could be used for authorities.
A component which is an interface (an endpoint for links). The toplevelauthority must match that of the component manager.
A component which is a network link (a connection between two or more interfaces). The toplevelauthority must match that of the component manager.
A component which is a node (an abstraction for networkable resources). The toplevelauthority must match that of the component manager.
A resource container. Every valid sliver or ticket belongs to exactly one slice. The toplevelauthority must match that of the slice authority.
A component or aggregate which has been instantiated within a slice. The toplevelauthority must match that of the component manager; the corresponding slice is not identified in the sliver URN.
A reservation of resources promised by a component manager to a slice. The toplevelauthority must match that of the component manager.
A ProtoGENI end user. Users are associated with slice authorities, but not necessarily unique slices; the slice to user correspondence is potentially many-to-many. The toplevelauthority must match that of the slice authority.

Additional types may be defined in the future.

Differences from GMOC Proposal

All ProtoGENI URNs conform to the GMOC description (and therefore all ProtoGENI identifiers are legal proposed GENI identifiers). However, a small number of additional restrictions are imposed on ProtoGENI URNs, which imply that certain GENI identifiers are not acceptable to ProtoGENI:

  1. ProtoGENI does not allow the use of e-mail addresses to identify users. Instead, all users are named (in GENI identifier terms) as Identifer Type "urn", and resource-type "user". (This restriction is necessary to unambiguously and irrevocably associate a user to the proper slice authority. It is possible to obtain the user's e-mail address by a Resolve() operation at that slice authority.)
  2. The resource-type portion of URNs (which is optional in GENI identifiers) is considered mandatory in ProtoGENI URNs. It must currently be chosen from one of the types in the table above.
  3. ProtoGENI does not currently generate or accept the optional sub-authority field(s) in URNs. Support for sub-authorities is planned for the future.