home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / rfc / 3 / rfc2276.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  63.3 KB  |  1,348 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         K. Sollins
  8. Request for Comments: 2276                                       MIT/LCS
  9. Category: Informational                                     January 1998
  10.  
  11.  
  12.       Architectural Principles of Uniform Resource Name Resolution
  13.  
  14. Status of this Memo
  15.  
  16.    This memo provides information for the Internet community.  It does
  17.    not specify an Internet standard of any kind.  Distribution of this
  18.    memo is unlimited.
  19.  
  20. Copyright Notice
  21.  
  22.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  23.  
  24. Abstract
  25.  
  26.    This document addresses the issues of the discovery of URN (Uniform
  27.    Resource Name) resolver services that in turn will directly translate
  28.    URNs into URLs (Uniform Resource Locators) and URCs (Uniform Resource
  29.    Characteristics).  The document falls into three major parts, the
  30.    assumptions underlying the work, the guidelines in order to be a
  31.    viable Resolver Discovery Service or RDS, and a framework for
  32.    designing RDSs.  The guidelines fall into three principle areas:
  33.    evolvability, usability, and security and privacy.  An RDS that is
  34.    compliant with the framework will not necessarily be compliant with
  35.    the guidelines.  Compliance with the guidelines will need to be
  36.    validated separately.
  37.  
  38. Table of Contents
  39.  
  40.    1.    Introduction..................................................2
  41.    2.    Assumptions...................................................5
  42.    3.    Guidelines....................................................7
  43.    3.1   Evolution.....................................................7
  44.    3.2   Usability....................................................10
  45.    3.2.1 The Publisher................................................11
  46.    3.2.2 The Client...................................................12
  47.    3.2.3 The Management...............................................13
  48.    3.3   Security and Privacy.........................................14
  49.    4.    The Framework................................................18
  50.    5.    Acknowledgements.............................................23
  51.    6.    References...................................................23
  52.    7.    Author's Address.............................................23
  53.    8.    Full Copyright Statement.....................................24
  54.  
  55.  
  56.  
  57.  
  58. Sollins                      Informational                      [Page 1]
  59.  
  60. RFC 2276            Uniform Resource Name Resolution        January 1998
  61.  
  62.  
  63. 1. Introduction
  64.  
  65.    The purpose of this document is to lay out the engineering criteria
  66.    for what we will call here a Resolver Discovery Service (RDS), a
  67.    service to help in the learning about URN (Uniform Resource Name)
  68.    resolvers.  The term "resolver" is used in this document to indicate
  69.    a service that translates URNs to URLs (Uniform Resource Locators) or
  70.    URCs (Uniform Resource Characteristics).  Some resolvers may provide
  71.    direct access to resources as well.  An RDS helps in finding a
  72.    resolver to contact for further resolution.  It is worth noting that
  73.    some RDS designs may also incorporate resolver functionality.  This
  74.    function of URN resolution is a component of the realization of an
  75.    information infrastructure.  In the case of this work, that
  76.    infrastructure is to be available, "in the Internet" or globally, and
  77.    hence the solutions to the problems we are addressing must be
  78.    globally scalable.  In this document, we are focussing specifically
  79.    on the design of RDS schemes.
  80.  
  81.    The Uniform Resource Identifier Working Group defined a naming
  82.    architecture, as demonstrated in a series of three RFCs 1736 [1],
  83.    1737 [2], and 1738 [3].  Although several further documents are
  84.    needed to complete the description of that architecture, it
  85.    incorporates three core functions often associated with "naming":
  86.    identification, location, and mnemonics or semantics.  By location,
  87.    we mean fully-qualified Domain Names or IP addresses, possibly
  88.    extended with TCP ports and/or local identifiers, such as pathnames.
  89.    Names may provide the ability to distinguish one resource from
  90.    another, by distinguishing their "names".  Names may help to provide
  91.    access to a resource by including "location" information.  In
  92.    addition, names may have other semantic or mnemonic information that
  93.    either helps human users remember or figure out the names, or
  94.    includes other semantic information about the resource being named.
  95.    The URI working group concluded that there was need for persistent,
  96.    globally unique identifiers, distinct from location or other semantic
  97.    information; these were called URNs.  These "names" provide identity,
  98.    in that if two of them are "the same" (under some simple rule of
  99.    canonicalization), they identify the same resource.  Furthermore, the
  100.    group decided that these "names" were generally to be for machine,
  101.    rather than human, consumption.  Finally, with these guidelines for
  102.    RDS's, this group has recognized the value of the separation of name
  103.    assignment management from name resolution management.
  104.  
  105.    In contrast to URNs, one can imagine a variety human-friendly naming
  106.    (HFN) schemes supporting different suites of applications and user
  107.    communities.  These will need to provide mappings to URNs in tighter
  108.    or looser couplings, depending on the namespace.  It is these HFNs
  109.    that will be mnemonic, content-full, and perhaps mutable, to track
  110.    changes in use and semantics.  They may provide nicknaming and other
  111.  
  112.  
  113.  
  114. Sollins                      Informational                      [Page 2]
  115.  
  116. RFC 2276            Uniform Resource Name Resolution        January 1998
  117.  
  118.  
  119.    aliasing, relative or short names, context sensitive names,
  120.    descriptive names, etc.  Their definition is not part of this effort,
  121.    but will clearly play an important role in the long run.
  122.  
  123.    URNs as described in RFC 1737 are defined globally; they are
  124.    ubiquitous in that a URN anywhere in any context identifies the same
  125.    resource.  Given this requirement on URNs, one must ask about its
  126.    implication for an RDS.  Does ubiquity imply a guarantee of RDS
  127.    resolution everywhere?  Does ubiquity imply resolution to the same
  128.    information about resolution everywhere?  In both cases the answer is
  129.    probably not.  One cannot make global, systemic guarantees, except at
  130.    an expense beyond reason.  In addition there may be policy as well as
  131.    technical reasons for not resolving in the same way everywhere.  It
  132.    is quite possible that the resolution of a URN to an instance of a
  133.    resource may reach different instances or copies under different
  134.    conditions.  Thus, although a URN anywhere refers to the same
  135.    resource, in some environments under some conditions, and at
  136.    different times, due to either the vagaries of network conditions or
  137.    policy controls a URN may sometimes be resolvable and other times or
  138.    places not.  Ubiquitous resolution cannot be assumed simply because
  139.    naming is ubiquitous.  On the other hand wide deployment and usage
  140.    will be an important feature of any RDS design.
  141.  
  142.    Within the URI community there has been a concept used frequently
  143.    that for lack of a better term we will call a _hint_.  A hint is
  144.    something that helps in the resolution of a URN; in theory we map
  145.    URNs to hints as an interim stage in accessing a resource.  In
  146.    practice, an RDS may map a URN directly into the resource itself if
  147.    it chooses to.  It is very likely that there will be hints that are
  148.    applicable to large sets of URNs, for example, a hint that indicates
  149.    that all URNs with a certain prefix or suffix can be resolved by a
  150.    particular resolver.  A hint may also have meta-information
  151.    associated with it, such as an expiration time or certification of
  152.    authenticity.  We expect that these will stay with a hint rather than
  153.    being managed elsewhere.  We will assume in all further discussion of
  154.    hints that they include any necessary meta-information as well as the
  155.    hint information itself.  Examples of hints are: 1) the URN of a
  156.    resolver service that may further resolve the URN, 2) the address of
  157.    such a service, 3) a location at which the resource was previously
  158.    found.  The defining feature of hints is that they are only hints;
  159.    they may be out of date, temporarily invalid, or only applicable
  160.    within a specific locality.  They do not provide a guarantee of
  161.    access, but they probably will help in the resolution process.  By
  162.    whatever means available, a set of hints may be discovered.  Some
  163.    combination of software and human choice will determine which hints
  164.    will be tried and in what order.
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Sollins                      Informational                      [Page 3]
  171.  
  172. RFC 2276            Uniform Resource Name Resolution        January 1998
  173.  
  174.  
  175.    We must assume that most resolutions of URNs will be provided by the
  176.    use of locally stored hints, because maintaining a database of
  177.    globally available, completely up-to-date location information is
  178.    infeasible for performance reasons.  There are a number of
  179.    circumstances in which one can imagine that hints become invalid,
  180.    either because a resource has moved or because a different URN
  181.    resolver service has taken over the responsibility for resolution of
  182.    the URN.  Hints may be found in a variety of places.  It is generally
  183.    assumed that a well engineered system will maintain or cache a set of
  184.    hints for each URN at each location where that URN is found.  These
  185.    may have been acquired from the owner of the resources, a
  186.    recommendation of the resource, or one of many other sources.  In
  187.    addition, for those situations in which those hints found locally
  188.    fail, a well engineered system will provide a fall-back mechanism for
  189.    discovering further hints.  It is this fall-back mechanism, an RDS,
  190.    that is being addressed in this document.  As with all hints, there
  191.    can never be a guarantee that access to a resource will be available
  192.    to all clients, even if the resource is accessible to some.  However,
  193.    an RDS is expected to work with reasonably high reliability, and,
  194.    hence, may result in increased response time.
  195.  
  196.    The remainder of this document falls into three sections.  The first
  197.    identifies several sets of assumptions underlying this work.  There
  198.    are three general assumptions:
  199.  
  200.       * URNs are persistent;
  201.       * URN assignment can be delegated;
  202.       * Decisions can be made independently, enabling isolation from
  203.         decisions of one's peers.
  204.  
  205.    The next section lays out three central principles Resolver Discovery
  206.    Service design.  For each of these, we have identified a number of
  207.    more specific guidelines that further define and refine the general
  208.    principle.  This section is probably the most critical of the
  209.    document, because one must hold any proposed RDS scheme up against
  210.    these principles and corollary guidelines to learn whether or not it
  211.    is adequate.  The three central principles can be summarized as:
  212.  
  213.       1) An RDS must allow for evolution and evolvability;
  214.       2) Usability of an RDS with regard to each of the sets of
  215.          constituents involved in the identification and location or
  216.          resources is paramount;
  217.       3) It is centrally important that the security and privacy needs
  218.          of all constituents be feasibly supported, to the degree
  219.          possible.
  220.  
  221.    Each of the three major subsections of the guidelines section begins
  222.    with a summary list of the more detailed guidelines identified in
  223.  
  224.  
  225.  
  226. Sollins                      Informational                      [Page 4]
  227.  
  228. RFC 2276            Uniform Resource Name Resolution        January 1998
  229.  
  230.  
  231.    that section.
  232.  
  233.    The final section of the document lays out a framework for such RDSs.
  234.    The purpose of this last section is to bound the search space for RDS
  235.    schemes.  The RDS designer should be aware that meeting the
  236.    guidelines is of primary importance; it is possible to meet them
  237.    without conforming to the framework.  As will be discussed further in
  238.    this last section, designing within the framework does not guarantee
  239.    compliance, so compliance evaluation must also be part of the process
  240.    of evaluation of a scheme.
  241.  
  242. 2. Assumptions
  243.  
  244.    Based on previous internet drafts and discussion in both the URN BOFs
  245.    and on the URN WG mailing list, three major areas of assumptions are
  246.    apparent: longevity, delegation, and independence.  Each will be
  247.    discussed separately.
  248.  
  249.    The URN requirements [2] state that a URN is to be a "persistent
  250.    identifier".  It is probably the case that nothing will last forever,
  251.    but in the time frame of resources, users of those resources, and the
  252.    systems to support the resources, the identifier should be considered
  253.    to be persistent or have a longer lifetime than those other entities.
  254.    There are two assumptions that are implied by longevity of URNs:
  255.    mobility and evolution.  Mobility will occur because resources may
  256.    move from one machine to another, owners of resources may move among
  257.    organizations, or the organizations themselves may merge, partition,
  258.    or otherwise transforms themselves.  The Internet is continually
  259.    evolving; protocols are being revised, new ones created, while
  260.    security policies and mechanisms evolve as well.  These are only
  261.    examples.  In general, we must assume that almost any piece of the
  262.    supporting infrastructure of URN resolution will evolve.  In order to
  263.    deal with both the mobility and evolution assumptions that derive
  264.    from the assumption of longevity, we must assume that users and their
  265.    applications can remain independent of these mutating details of the
  266.    supporting infrastructure.
  267.  
  268.    The second assumption is that naming and resolution authorities may
  269.    delegate some of their authority or responsibility; in both cases,
  270.    the delegation of such authority is the only known method of allowing
  271.    for the kind of scaling expected.  It is important to note that a
  272.    significant feature of this work is the potential to separate name
  273.    assignment, the job of labelling a resource with a URN, from name
  274.    resolution, the job of discovering the resource given the URN.  In
  275.    both cases, we expect multi-tiered delegation.  There may be RDS
  276.    schemes that merge these two sets of responsibilities and delegation
  277.    relationships; by doing so, they bind together or overload two
  278.    distinctly different activities, thus probably impeding growth.
  279.  
  280.  
  281.  
  282. Sollins                      Informational                      [Page 5]
  283.  
  284. RFC 2276            Uniform Resource Name Resolution        January 1998
  285.  
  286.  
  287.    The third assumption is independence or isolation of one authority
  288.    from another and, at least to some extent, from its parent.  When one
  289.    authority delegates some of its rights and responsibilities to
  290.    another authority, the delegatee can operate in that domain
  291.    independently of its peers and within bounds specified by the
  292.    delegation, independently of the delegator.  This isolation is
  293.    critically important in order to allow for independence of policy and
  294.    mechanism.
  295.  
  296.    This third assumption has several corollaries.  First, we assume that
  297.    the publisher of a resource can choose resolver services,
  298.    independently of choices made by others.  At any given time, the
  299.    owner of a namespace may choose a particular URN resolver service for
  300.    that delegated namespace.  Such a URN resolver service may be outside
  301.    the RDS service model, and only identified or located by the RDS
  302.    service.  Second, it must be possible to make a choice among RDS
  303.    services.  The existence of multiple RDS services may arise from the
  304.    evolution of an RDS service, or development of new ones.  Although at
  305.    any given time there is likely to be only one or a small set of such
  306.    services, the number is likely to increase during a transition period
  307.    from one architecture to another.  Thus, it must be assumed that
  308.    clients can make a choice among a probably very small set of RDSs.
  309.    Third, there must be independence in the choice about levels and
  310.    models of security and authenticity required.  This choice may be
  311.    made by the owner of a naming subspace, in controlling who can modify
  312.    hints in that subspace.  A naming authority may delegate this choice
  313.    to the owners of the resources named by the names it has assigned.
  314.    There may be limitations on this freedom of choice in order to allow
  315.    other participants to have the level of security and authenticity
  316.    they require, for example, in order to maintain the integrity of the
  317.    RDS infrastructure as a whole.  Fourth, there is an assumption of
  318.    independence of choice of the rule of canonicalization of URNs within
  319.    a namespace, limited by any restrictions or constraints that may have
  320.    been set by its parent namespace.  This is a choice held by naming
  321.    authorities over their own subnamespaces.  Rules for canonicalization
  322.    will be discussed further in the framework section below.  Thus,
  323.    there are assumptions of independence and isolation to allow for
  324.    delegated, independent authority in a variety of domains.
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Sollins                      Informational                      [Page 6]
  339.  
  340. RFC 2276            Uniform Resource Name Resolution        January 1998
  341.  
  342.  
  343.    The modularity assumptions of delegation and isolation imply
  344.    independence of decision and implementation, leading to a
  345.    decentralization that provides a certain degree of safety from denial
  346.    of service.  Based on these these assumptions in conjunction with
  347.    that of longevity and those for URLs and URNs as detailed in RFCs
  348.    1736 and 1737, we can now turn to the guidelines for an RDS.
  349.  
  350. 3. Guidelines
  351.  
  352.    The guidelines applying to an RDS center around three important
  353.    design principles in the areas of evolvability, usability, and
  354.    security and privacy.  At its core the function of an RDS is to
  355.    provide hints for accessing a resource given a URN for it.  These
  356.    hints may range in applicability from local to global, and from
  357.    short-lived to long-lived.  They also may vary in their degree of
  358.    verifiable authenticity.  While it may be neither feasible nor
  359.    necessary that initial implementations support every guideline, every
  360.    implementation must support evolution to systems that do support the
  361.    guidelines more fully.
  362.  
  363.    It is important to note that there are requirements, not applicable
  364.    specifically to an RDS that must also be met.  A whole URN system
  365.    will consist of names in namespaces, the resolution information for
  366.    them, and the mapping from names in the namespaces to resolution
  367.    information (or hints).  URNs themselves must meet the requirements
  368.    of RFC 1737.  In addition, namespaces themselves must meet certain
  369.    requirements as described by the URN Working Group [4].  Although all
  370.    these requirements and guidelines are not described here, they must
  371.    be supported to provide an acceptable system.
  372.  
  373.    Each section below begins with a summary of the points made in that
  374.    section.  There is some degree of overlap among the areas, such as in
  375.    allowing for the evolution of security mechanisms, etc., and hence
  376.    issues may be addressed in more than one section.  It is also
  377.    important to recognize that conformance with the guidelines will
  378.    often be subjective.  As with many IETF guidelines and requirements,
  379.    many of these are not quantifiable and hence conformance is a
  380.    judgment call and a matter of degree.  Lastly, the reader may find
  381.    that some of them are those of general applicability to distributed
  382.    systems and some are specific to URN resolution.  Those of general
  383.    applicability are included for completeness and are not distinguished
  384.    as such.
  385.  
  386. 3.1 Evolution
  387.  
  388.    The issues in the area of the first principle, that of evolvability,
  389.    are:
  390.  
  391.  
  392.  
  393.  
  394. Sollins                      Informational                      [Page 7]
  395.  
  396. RFC 2276            Uniform Resource Name Resolution        January 1998
  397.  
  398.  
  399.        1.1) An RDS must be able to support scaling in at least three
  400.             dimensions: the number of resources for which URNs will be
  401.             required, the number of publishers and users of those
  402.             resources, and the complexity of the delegation, as
  403.             authority for resolution grows and possibly reflects
  404.             delegation in naming authority;
  405.        1.2) A hint resolution environment must support evolution of
  406.             mechanisms, specifically for:
  407.             * a growing set of URN schemes;
  408.             * new kinds local URN resolver services;
  409.             * new authentication schemes;
  410.             * alternative RDS schemes active simultaneously;
  411.        1.3) An RDS must allow the development and deployment of
  412.             administrative control mechanisms to manage human behavior
  413.             with respect to limited resources.
  414.  
  415.    One of the lessons of the Internet that we must incorporate into the
  416.    development of mechanisms for resolving URNs is that we must be
  417.    prepared for change.  Such changes may happen slowly enough to be
  418.    considered evolutionary modifications of existing services, or
  419.    dramatically enough to be considered revolutionary.  They may
  420.    permeate the Internet universe bit by bit, living side by side with
  421.    earlier services or they may take the Internet by storm, causing an
  422.    apparent complete transformation over a short period of time.  There
  423.    are several directions in which we can predict the need for
  424.    evolution.  At the very least, the community and the mechanisms
  425.    proposed should be prepared for these.
  426.  
  427.    First, scaling is a primary issue in conjunction with evolution.  The
  428.    number of users, both human and electronic, as well as the number of
  429.    resources will continue to grow exponentially for the near term, at
  430.    least.  Hence the number of URNs will also increase similarly.  In
  431.    addition, with growth in sheer numbers is likely to come growth in
  432.    the delegation of both naming authority and resolution authority.
  433.    These facts mean that an RDS design must be prepared to handle
  434.    increasing numbers of requests for inclusion, update and resolution,
  435.    in a set of RDS servers perhaps inter-related in more complex ways.
  436.    This is not to say that there will necessarily be more updates or
  437.    resolutions per URN; we cannot predict that at this time.  But, even
  438.    so, the infrastructure may become more complex due to delegation,
  439.    which may (as can be seen in Section 4 on the framework) lead to more
  440.    complex rules for rewriting or extracting terms for staged
  441.    resolution.  Any design is likely to perform less well above some set
  442.    of limits, so it is worth considering the growth limitations of each
  443.    design alternative.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Sollins                      Informational                      [Page 8]
  451.  
  452. RFC 2276            Uniform Resource Name Resolution        January 1998
  453.  
  454.  
  455.    Second, we expect there to be additions and changes to the
  456.    mechanisms.  The community already understands that there must be a
  457.    capacity for new URN schemes, as described in [4].  A URN scheme will
  458.    define a set of URNs that meet the URN requirements [2], but may have
  459.    further constraints on the internal structure of the URN. The
  460.    intention is that URN schemes can be free to specify parts of the URN
  461.    that are left opaque in the larger picture.  In fact, a URN scheme
  462.    may choose to make public or keep private the algorithms for any such
  463.    "opaque" part of the URN.  In any case, we must be prepared for a
  464.    growing number of URN schemes.
  465.  
  466.    Often in conjunction with a new URN scheme, but possibly
  467.    independently of any particular URN scheme, new kinds of resolver
  468.    services may evolve.  For example, one can imagine a specialized
  469.    resolver service based on the particular structure of ISBNs that
  470.    improves the efficiency of finding documents given their ISBNs.
  471.    Alternatively, one can also imagine a general purpose resolver
  472.    service that trades performance for generality; although it exhibits
  473.    only average performance resolving ISBNs, it makes up for this
  474.    weakness by understanding all existing URN schemes, so that its
  475.    clients can use the same service to resolve URNs regardless of naming
  476.    scheme.  In this context, there will always be room for improvement
  477.    of services, through improved performance, better adaptability to new
  478.    URN schemes, or lower cost, for example.  New models for URN
  479.    resolution will evolve and we must be prepared to allow for their
  480.    participation in the overall resolution of URNs.
  481.  
  482.    If we begin with one overall plan for URN resolution, into which the
  483.    enhancements described above may fit, we must also be prepared for an
  484.    evolution in the authentication schemes that will be considered
  485.    either useful or necessary in the future.  There is no single
  486.    globally accepted authentication scheme, and there may never be one.
  487.    Even if one does exist at some point in time, we must always be
  488.    prepared to move on to newer and better schemes, as the old ones
  489.    become too easily spoofed or guessed.
  490.  
  491.    In terms of mechanism, although we may develop and deploy a single
  492.    RDS scheme initially, we must be prepared for that top level model to
  493.    evolve.  Thus, if the RDS model supports an apparently centralized
  494.    (from a policy standpoint) scheme for inserting and modifying
  495.    authoritative information, over time we must be prepared to evolve to
  496.    a different model, perhaps one that has a more distributed model of
  497.    authority and authenticity.  If the model has no core but rather a
  498.    cascaded partial discovery of information, we may find that this
  499.    becomes unmanageable with an increase in scaling.  Whatever the
  500.    model, we must be prepared for it to evolve with changes in scaling,
  501.    performance, and policy constraints such as security and cost.
  502.  
  503.  
  504.  
  505.  
  506. Sollins                      Informational                      [Page 9]
  507.  
  508. RFC 2276            Uniform Resource Name Resolution        January 1998
  509.  
  510.  
  511.    The third evolutionary issue is even more mechanical than the others.
  512.    At any point in time, the community is likely to be supporting a
  513.    compromise position with respect to resolution.  We will probably be
  514.    operating in a situation balanced between feasibility and the ideal,
  515.    perhaps with policy controls used to help stabilize use of the
  516.    service.  Ideally, the service would be providing exactly what the
  517.    customers wanted and they in turn would not request more support than
  518.    they need, but it seems extremely unlikely.  Since we will almost
  519.    always be in a situation in which some service provision resources
  520.    will be in short supply, some form of policy controls will generally
  521.    be necessary.  Some policy controls may be realized as mechanisms
  522.    within the servers or in the details of protocols, while others may
  523.    only be realized externally to the system.  For example, suppose hint
  524.    entries are being submitted in such volume that the hint servers are
  525.    using up their excess capacity and need more disk space.  Two
  526.    suggestions for policy control are pricing and administrative.  As
  527.    technology changes and the balance of which resources are in short
  528.    supply changes, the mechanisms and policies for controlling their use
  529.    must evolve as well.
  530.  
  531. 3.2 Usability
  532.  
  533.    To summarize, the usability guidelines fall into three areas based on
  534.    participation in hint management and discovery:
  535.  
  536.        2.1) The publisher
  537.           2.1.1) URN to hint resolution must be correct and efficient
  538.                  with very high probability;
  539.           2.1.2) Publishers must be able to select and move among URN
  540.                  resolver services to locate their resources;
  541.           2.1.3) Publishers must be able to arrange for multiple access
  542.                  points for their location information;
  543.           2.1.4) Publishers should be able to provide hints with
  544.                  varying lifetimes;
  545.           2.1.5) It must be relatively easy for publishers to specify
  546.                  to the management and observe their hint information as
  547.                  well as any security constraints they need for their
  548.                  hints.
  549.        2.2) The client
  550.           2.2.1) The interface to the RDS must be simple, effective,
  551.                  and efficient;
  552.           2.2.2) The client and client applications must be able to
  553.                  understand the information stored in and provided by
  554.                  the RDS easily, in order to be able to make informed
  555.                  choices.
  556.        2.3) The management
  557.           2.3.1) The management of hints must be as unobtrusive as
  558.                  possible, avoiding using too many network resources;
  559.  
  560.  
  561.  
  562. Sollins                      Informational                     [Page 10]
  563.  
  564. RFC 2276            Uniform Resource Name Resolution        January 1998
  565.  
  566.  
  567.           2.3.2) The management of hints must allow for administrative
  568.                  controls that encourage certain sorts of behavior
  569.                  deemed necessary to meet other requirements;
  570.           2.3.3) The configuration and verification of configuration of
  571.                  individual RDS servers must be simple enough not to
  572.                  discourage configuration and verification.
  573.  
  574.    Usability can be evaluated from three distinct perspectives: those of
  575.    a publisher wishing to make a piece of information public, those of a
  576.    client requesting URN resolution, and those of the provider or
  577.    manager of resolution information.  We will separately address the
  578.    usability issues from each of these three perspectives.  It is
  579.    important to recognize that these may be sitautions in which
  580.    interests of some of the participants (for exampel a use and a
  581.    publisher) may be in conflict; some resolution will be needed.
  582.  
  583.    It is worth noting that there are two additional sorts of
  584.    participants in the whole naming process, as discussed in the URN WG.
  585.    They are the naming authorities which choose and assign names, and
  586.    the authors who include URNs in their resources.  These two are not
  587.    relevant to the design of an RDS and hence are not discussed further
  588.    here.
  589.  
  590. 3.2.1 The Publisher
  591.  
  592.    The publisher must be able to make URNs known to potential customers.
  593.    From the perspective of a publisher, it is of primary importance that
  594.    URNs be correctly and efficiently resolvable by potential clients
  595.    with very high probability.  Publishers stand to gain from long-lived
  596.    URNs, since they increase the chance that references continue to
  597.    point to their published resources.
  598.  
  599.    The publisher must also be able to choose easily among a variety of
  600.    potential services that might translate URNs to location information.
  601.    In order to allow for this mobility among resolvers, the RDS
  602.    architecture must support such transitions, within policy control
  603.    bounds.  It is worth noting that although multiple listing services
  604.    are available in telephone books, they are generally accompanied by a
  605.    fee.  There is nothing preventing there being fees collected for
  606.    similar sorts of services with respect to URNs.
  607.  
  608.    The publisher must be able to arrange for multiple access points to a
  609.    published resource.  For this to be useful, resolver services should
  610.    be prepared to provide different resolution or hint information to
  611.    different clients, based on a variety of information including
  612.    location and the various access privileges the client might have.  It
  613.    is important to note that this may have serious implications for
  614.    caching this information.  For example, companies might arrange for
  615.  
  616.  
  617.  
  618. Sollins                      Informational                     [Page 11]
  619.  
  620. RFC 2276            Uniform Resource Name Resolution        January 1998
  621.  
  622.  
  623.    locally replicated copies of popular resources, and would like to
  624.    provide access to the local copies only for their own employees.
  625.    This is distinct from access control on the resource as a whole, and
  626.    may be applied differently to different copies.
  627.  
  628.    The publisher should be able to provide both long and short term
  629.    location information about accessing the resource.  Long term
  630.    information is likely to be such information as the long term address
  631.    of a resource itself or the location or identity of a resolver
  632.    service with which the publisher has a long term relationship.  One
  633.    can imagine that the arrangement with such a long term
  634.    "authoritative" resolver service might be a guarantee of reliability,
  635.    resiliency to failure, and atomic updates.  Shorter term information
  636.    is useful for short term changes in services or to avoid short lived
  637.    congestion or failure problems.  For example, if the actual
  638.    repository of the resource is temporarily inaccessible, the resource
  639.    might be made available from another repository.  This short term
  640.    information can be viewed as temporary refinements of the longer term
  641.    information, and as such should be more easily and quickly made
  642.    available, but may be less reliable.  Some RDS designs may not
  643.    distinguish between these two extremes.
  644.  
  645.    Lastly, the publishers will be the source of much hint information
  646.    that will be stored and served by the manager of the infrastructure.
  647.    Despite the fact that many publishers will not understand the details
  648.    of the RDS mechanism, it must be easy and straightforward for them to
  649.    install hint information.  This means that in general any one who
  650.    wishes to publish and to whom the privilege of resolution has been
  651.    extended through delegation, can do so.  The publisher must be able
  652.    not only to express hints, but also to verify that what is being
  653.    served by the manager is correct.  Furthermore, to the extent that
  654.    there are security constraints on hint information, the publisher
  655.    must be able to both express them and verify compliance with them
  656.    easily.
  657.  
  658. 3.2.2 The Client
  659.  
  660.    From the perspective of the client, simplicity and usability are
  661.    paramount.  Of critical importance to serving clients effectively is
  662.    that there be an efficient protocol through which the client can
  663.    acquire hint information.  Since resolving the name is only the first
  664.    step on the way to getting access to a resource, the amount of time
  665.    spent on it must be minimized.
  666.  
  667.    Furthermore, it will be important to be able to build simple,
  668.    standard interfaces to the RDS so that both the client and
  669.    applications on the client's behalf can interpret hints and
  670.    subsequently make informed choices.  The client, perhaps with the
  671.  
  672.  
  673.  
  674. Sollins                      Informational                     [Page 12]
  675.  
  676. RFC 2276            Uniform Resource Name Resolution        January 1998
  677.  
  678.  
  679.    assistance of the application, must be able to specify preferences
  680.    and priorities and then apply them.  If the ordering of hints is only
  681.    partial, the client may become directly
  682.  
  683.    involved in the choice and interpretation of them and hence they must
  684.    be understandable to that client.  On the other hand, in general it
  685.    should be possible to configure default preferences, with individual
  686.    preferences viewed as overriding any defaults.
  687.  
  688.    From the client's perspective, although URNs will provide important
  689.    functionality, the client is most likely to interact directly only
  690.    with human friendly names (HFNs).  As in direct human interaction
  691.    (not computer mediated), the sharing of names will be on a small,
  692.    private, or domain specific scale.  HFNs will be the sorts of
  693.    references and names that are easy to remember, type, choose among,
  694.    assign, etc.  There will also need to be a number of mechanisms for
  695.    mapping HFNs to URNs.  Such services as "yellow pages" or "search
  696.    tools" fall into this category.  Although we are mentioning HFNs
  697.    here, it is important to recognize that HFNs and the mappings from
  698.    HFNs to URNs is and must remain a separate functionality from an RDS.
  699.    Hence, although HFNs will be critical to clients, they do not fall
  700.    into the domain of this document.
  701.  
  702. 3.2.3 The Management
  703.  
  704.    Finally, we must address the usability concerns with respect to the
  705.    management of the hint infrastructure itself.  What we are terming
  706.    "management" is a service that is distinct from publishing; it is the
  707.    core of an RDS.  It involves the storage and provision of hints to
  708.    the clients, so that they can find published resources.  It also
  709.    provides security with respect to name resolution to the extent that
  710.    there is a commitment for provision of such security; this is
  711.    addressed in Section 3.3 below.
  712.  
  713.    The management of hints must be as unobtrusive as possible. First,
  714.    its infrastructure (hint storage servers and distribution protocols)
  715.    must have as little impact as possible on other network activities.
  716.    It must be remembered that this is an auxiliary activity and must
  717.    remain in the background.
  718.  
  719.    Second, in order to make hint management feasible, there may need to
  720.    be a system for administrative incentives and disincentives such as
  721.    pricing or legal restrictions.  Recovering the cost of running the
  722.    system is only one reason for levying charges.  The introduction of
  723.    payments often has an impact on social behavior.  It may be necessary
  724.    to discourage certain forms of behavior that when out of control have
  725.    serious negative impact on the whole community.  At the same time,
  726.    any administrative policies should encourage behavior that benefits
  727.  
  728.  
  729.  
  730. Sollins                      Informational                     [Page 13]
  731.  
  732. RFC 2276            Uniform Resource Name Resolution        January 1998
  733.  
  734.  
  735.    the community as a whole.  Thus, for example, a small one-time charge
  736.    for authoritatively storing a hint might encourage conservative use
  737.    of hints.  If we assume that there is a fixed cost for managing a
  738.    hint, then the broader its applicability across the URN space, the
  739.    more cost effective it is.  That is, when one hint can serve for a
  740.    whole collection of URNs, there will be an incentive to submit one
  741.    general hint over a large number of more specific hints.  Similar
  742.    policies can be instituted to discourage the frequent changing of
  743.    hints.  In these ways and others, behavior benefitting the community
  744.    as a whole can be encouraged.
  745.  
  746.    Lastly, symmetric to issues of usability for publishers, it must also
  747.    be simple for the management to configure the mapping of URNs to
  748.    hints.  It must be easy both to understand the configuration and to
  749.    verify that configuration is correct.  With respect to management,
  750.    this issue may have an impact not only on the information itself but
  751.    also on how it is partitioned among network servers that
  752.    collaboratively provide the management service or RDS.  For example,
  753.    it should be straightforward to bring up a server and verify that the
  754.    data it is managing is correct.  Although this is not a guideline, it
  755.    is worth nothing that since we are discussing a global and probably
  756.    growing service, encouraging volunteer participants suggests that, as
  757.    with the DNS, such volunteers can feel confident about the service
  758.    they are providing and its benefit to both themselves and the rest of
  759.    the community.
  760.  
  761. 3.3 Security and Privacy
  762.  
  763.    In summary, security and privacy guidelines can be identified as some
  764.    degree of protection from threats.  The guidelines that fall under
  765.    this third principle, that of security, are all stated in terms of
  766.    possibilities or options for users of the service to require and
  767.    utilize.  Hence they address the availability of functionality, but
  768.    not for the use of it.  We recognize that all security is a matter of
  769.    degree and compromise.  These may not satisfy all potential
  770.    customers, and there is no intention here to prevent the building of
  771.    more secure servers with more secure protocols to suit their needs.
  772.    These are intended to satisfy the needs of the general public.
  773.  
  774.        3.1) It must be possible to create authoritative versions of a
  775.             hint with access-to-modification privileges controlled;
  776.        3.2) It must be possible to determine the identity of servers or
  777.             avoid contact with unauthenticated servers;
  778.        3.3) It must be possible to reduce the threat of denial of
  779.             service by broad distribution of information across servers;
  780.        3.4) It must be possible within the bounds of organizational
  781.             policy criteria to provide at least some degree of privacy
  782.             for traffic;
  783.  
  784.  
  785.  
  786. Sollins                      Informational                     [Page 14]
  787.  
  788. RFC 2276            Uniform Resource Name Resolution        January 1998
  789.  
  790.  
  791.        3.5) It must be possible for publishers to keep private certain
  792.             information such as an overall picture of the resources they
  793.             are publishing and the identity of their clients;
  794.        3.6) It must be possible for publishers to be able to restrict
  795.             access to the resolution of the URNs for the resources they
  796.             publish, if they wish.
  797.  
  798.    When one discusses security, one of the primary issues is an
  799.    enumeration of the threats being considered for mitigation.  The
  800.    tradeoffs often include cost in money and computational and
  801.    communications resources, ease of use, likelihood of use, and
  802.    effectiveness of the mechanisms proposed.  With this in mind, let us
  803.    consider a set of threats.
  804.  
  805.    Voydock and Kent [5] provide a useful catalog of potential threats.
  806.    Of these the passive threats to privacy or confidentiality and the
  807.    active threats to authenticity and integrity are probably the most
  808.    important to consider here.  To the extent that spurious association
  809.    causes threats to the privacy, authenticity, or integrity with
  810.    respect to information within servers managing data, it is also
  811.    important.  Denial of service is probably the most difficult of these
  812.    areas of threats both to detect and to prevent, and we will therefore
  813.    set it aside for the present as well, although it will be seen that
  814.    solutions to other problems will also mitigate some of the problems
  815.    of denial of service.  Furthermore, because this is intended to be
  816.    provide a global service to meet the needs of a variety of
  817.    communities, the engineering tradeoffs will be different for
  818.    different clients.  Hence the guidelines are stated in terms of, "It
  819.    must be possible..."  It is important to note that the information of
  820.    concern here is hint information, which by nature is not guaranteed
  821.    to be correct or up-to-date; therefore, it is unlikely to be worth
  822.    putting too much expense into the correctness of hints, because there
  823.    is no guarantee that they are still correct anyway.  The exact choice
  824.    of degree of privacy, authenticity, and integrity must be determined
  825.    by the needs of the client and the availability of services from the
  826.    server.
  827.  
  828.    To avoid confusion it is valuable to highlight the meanings of terms
  829.    that have different meanings in other contexts.  In this case, the
  830.    term "authoritative" as it is used here connotes the taking of an
  831.    action or stamp of approval by a principal (again in the security
  832.    sense) that has the right to perform such an act of approval.  It has
  833.    no implication of correctness of information, but only perhaps an
  834.    implication of who claimed it to be correct.  In contrast, the term
  835.    is often also used simply to refer to a primary copy of a piece of
  836.    information for which there may also be secondary or cached copies
  837.    available.  In this discussion of security we use the former meaning,
  838.    although it may also be important to be able to learn about whether a
  839.  
  840.  
  841.  
  842. Sollins                      Informational                     [Page 15]
  843.  
  844. RFC 2276            Uniform Resource Name Resolution        January 1998
  845.  
  846.  
  847.    piece of information is from a primary source or not and request that
  848.    it be primary.  This second meaning arises elsewhere in the document
  849.    and is so noted there.
  850.  
  851.    It is also important to distinguish various possible meanings for
  852.    "access control".  There are two areas in which distinctions can be
  853.    made.  First, there is the question of the kind of access control
  854.    that is being addressed, for example, in terms of hints whether it is
  855.    read access, read and modify access, or read with verification for
  856.    authenticity.  Second, there is the question of to what access is
  857.    being controlled.  In the context of naming it might be the names
  858.    themselves (not the case for URNs), the mapping of URNs to hints (the
  859.    business of an RDS), the mapping of URNs to addresses (not the
  860.    business of an RDS as will be discussed below in terms of privacy),
  861.    or the resource itself (unrelated to naming or name resolution at
  862.    all).  We attempt to be clear about what is meant when using "access
  863.    control".
  864.  
  865.    There is one further issue to address at this point, the distinction
  866.    between mechanism and policy.  In general, a policy is realized by
  867.    means of a set of mechanisms.  In the case of an RDS there may be
  868.    policies internal to the RDS that it needs to have supported in order
  869.    to do its business as it sees fit.  Since, in general it is in the
  870.    business of storing and distributing information, most of its
  871.    security policies may have to do with maintaining its own integrity,
  872.    and are rather limited.  Beyond that, to the degree possible, it
  873.    should impose no policy on its customers, the publishers and users.
  874.    It is they that may have policies that they would like supported by
  875.    the RDS.  To that end, an RDS should provide a spectrum of "tools" or
  876.    mechanisms that the customers can cause to be deployed on their
  877.    behalf to realize policies.  An RDS may not provide all that is
  878.    needed by a customer.  A customer may have different requirements
  879.    within his or her administrative bounds than outside.  Thus, "it must
  880.    be possible..."  captures the idea that the RDS must generally
  881.    provide the tools to implement policies as needed by the customers.
  882.  
  883.    The first approach to URN resolution is to discover local hints.  In
  884.    order for hints to be discovered locally, they will need to be as
  885.    widely distributed as possible to what is considered to be local for
  886.    every locale.  The drawback of such wide distribution is the wide
  887.    distribution of updates, causing network traffic problems or delays
  888.    in delivering updates.  An alternative model would concentrate hint
  889.    information in servers, thus requiring that update information only
  890.    be distributed to these servers.  In such a model the vulnerable
  891.    points are the sources of the information and the distribution
  892.    network among them.  Attackers on the integrity of the information
  893.    stored in a server may come in the form of masquerading as the owner
  894.    or the server of the information.  Wide replication of information
  895.  
  896.  
  897.  
  898. Sollins                      Informational                     [Page 16]
  899.  
  900. RFC 2276            Uniform Resource Name Resolution        January 1998
  901.  
  902.  
  903.    among servers increases the difficult of masquerading at all the
  904.    locations of the information as well as reducing the threat of denial
  905.    service.  These lead us to three identifiable guidelines for our
  906.    security model:
  907.  
  908.    * ACCESS CONTROL ON HINTS: It must be possible to create an
  909.      authoritative version of each hint with change control limited only
  910.      to those principals with the right to modify it.  The choice of who
  911.      those principals are or whether they are unlimited must be made by
  912.      the publisher of a hint.
  913.  
  914.    * SERVER AUTHENTICITY: Servers and clients must be able to learn the
  915.      identity of the servers with which they communicate.  This will be
  916.      a matter of degree and it is possible that there will be more
  917.      trustworthy, but less accessible servers, supported by a larger
  918.      cluster of less authenticatable servers that are more widely
  919.      available.  In the worst case, if the client receives what appears
  920.      to be unvalidated information, the client should assume that the
  921.      hint may be inaccurate and confirmation of the data might be sought
  922.      from more reliable but less accessible sources.
  923.  
  924.    * SERVER DISTRIBUTION: Broad availability will provide resistance to
  925.      denial of service.  It is only to the extent that the services are
  926.      available that they provide any degree of trustworthiness.  In
  927.      addition, the distribution of services will reduce vulnerability of
  928.      the whole community, by reducing the trust put in any single
  929.      server.  This must be mitigated by the fact that to the extent
  930.      trust is based on a linked set of servers, if any one fails, the
  931.      whole chain of trust fails; the more elements there are in such a
  932.      chain, the more vulnerable it may become.
  933.  
  934.    Privacy can be a double-edged sword.  For example, on one hand, an
  935.    organization may consider it critically important that its
  936.    competitors not be able to read its traffic.  On the other hand, it
  937.    may also consider it important to be able to monitor exactly what its
  938.    employees are transmitting to and from whom, for a variety of reasons
  939.    such as reducing the probability that its employees are giving or
  940.    selling the company's secrets to verifying that employees are not
  941.    using company resources for private endeavor.  Thus, although there
  942.    are likely to be needs for privacy and confidentiality, what they
  943.    are, who controls them and how, and by what mechanisms vary widely
  944.    enough that it is difficult to say anything concrete about them here.
  945.  
  946.    The privacy of publishers is much easier to address.  Since they are
  947.    trying to publish something, in general privacy is probably not
  948.    desired.  However, publishers do have information that they might
  949.    like to keep private: information about who their clients are, and
  950.    information about what names exist in their namespace.  The
  951.  
  952.  
  953.  
  954. Sollins                      Informational                     [Page 17]
  955.  
  956. RFC 2276            Uniform Resource Name Resolution        January 1998
  957.  
  958.  
  959.    information about who their clients are may be difficult to collect
  960.    depending on the implementation of the resolution system.  For
  961.    example, if the resolution information relating to a given publisher
  962.    is widely replicated, the hits to _each_ replicated copy would need
  963.    to be recorded.  Of course, determining if a specific client is
  964.    requesting a given name can be approached from the other direction,
  965.    by watching the client as we saw above.
  966.  
  967.    There are likely to be some publishers publishing for a restricted
  968.    audience.  To the extent they want to restrict access to a resource,
  969.    that is the responsibility of the repository providing and
  970.    restricting access to the resource.  If they wish to keep the name
  971.    and hints for a resource private, a public RDS may be inadequate for
  972.    their needs.  In general, it is intended for those who want customers
  973.    to find their resources in an unconstrained fashion.
  974.  
  975.    The final privacy issue for publishers has to do with access control
  976.    over URN resolution.  This issue is dependent on the implementation
  977.    of the publisher's authoritative (in the sense of "primary) URN
  978.    resolver server.  URN resolver servers can be designed to require
  979.    proof of identity in order to be issued resolution information; if
  980.    the client does not have permission to access the URN requested, the
  981.    service denies that such a URN exists.  An encrypted protocol can
  982.    also be used so that both the request and the response are obscured.
  983.    Encryption is possible in this case because the identity of the final
  984.    recipient is known (i.e.  the URN server).  Thus, access control over
  985.    URN resolution can and should be provided by resolver servers rather
  986.    than an RDS.
  987.  
  988. 4. The Framework
  989.  
  990.    With these assumptions and guidelines in mind, we conclude with a
  991.    general framework within which RDS designs may fall.  As stated
  992.    earlier, although this framework is put forth as a suggested guide
  993.    for RDS designers, compliance with it will in no way guarantee
  994.    compliance with the guidelines.  Such an evaluation must be performed
  995.    separately.  All such lack of compliance should be clearly
  996.    documented.
  997.  
  998.    The design of the framework is based on the syntax of a URN as
  999.    documented in RFC-2141 [6].  This is:
  1000.  
  1001.                               URN:<NID>:<NSS>
  1002.  
  1003.    where URN: is a prefix on all URNs, NID is the namespace identifier,
  1004.    and NSS is the namespace specific string.  The prefix identifies each
  1005.    URN as such.  The NID determines the general syntax for all URNs
  1006.    within its namespace.  The NSS is probably partitioned into a set of
  1007.  
  1008.  
  1009.  
  1010. Sollins                      Informational                     [Page 18]
  1011.  
  1012. RFC 2276            Uniform Resource Name Resolution        January 1998
  1013.  
  1014.  
  1015.    delegated and subdelegated namespaces, and this is possibly reflected
  1016.    in further syntax specifications.  In more complex environments, each
  1017.    delegated namespace will be permitted to choose the syntax of the
  1018.    variable part of the namespace that has been delegated to it.  In
  1019.    simpler namespaces, the syntax will be restricted completely by the
  1020.    parent namespace.  For example, although the DNS does not meet all
  1021.    the requirements for URNs, it has a completely restricted syntax,
  1022.    such that any further structuring must be done only by adding further
  1023.    refinements to the left, maintaining the high order to low order,
  1024.    right to left structure.  A delegated syntax might be one in which a
  1025.    host is named by the DNS, but to the right of that and separated by
  1026.    an "@" is a string whose internal ordering is defined by the file
  1027.    system on the host, which may be defined high order to low order,
  1028.    left to right.  Of course, much more complex and nested syntaxes
  1029.    should be possible, especially given the need to grandfather
  1030.    namespaces.  In order to resolve URNs, rules will be needed for two
  1031.    reasons.  One is simply to canonicalize those namespaces that do not
  1032.    fall into a straightforward (probably right to left or left to right)
  1033.    ordering of the components of a URN, as determined by the delegated
  1034.    naming authorities involved.  It is also possible that rules will be
  1035.    needed in order to derive from URNs the names of RDS servers to be
  1036.    used in stages.
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Sollins                      Informational                     [Page 19]
  1067.  
  1068. RFC 2276            Uniform Resource Name Resolution        January 1998
  1069.  
  1070.  
  1071.                             URN:<NID><NSS>
  1072.                                  |
  1073.                                  |
  1074.                                  |
  1075.                                  |
  1076.                                  v
  1077.                        +-------------------+
  1078.                        |Global NID registry|
  1079.                        +-------------------+
  1080.                                  |
  1081.                                  |
  1082.                                  |
  1083.               (return rule or URN resolver service reference)
  1084.                                  |
  1085.                                  +----------------------------------+
  1086.                                  |                                  |
  1087.                        +->(apply rule to determine RDS server)      |
  1088.                        |         |                                  |
  1089.                        |         |                                  |
  1090.                        |         |                                  |
  1091.                        |    +----------+                            |
  1092.                        |    |RDS server|          +-----------------+
  1093.                        |    +----------+          |
  1094.                        |      |   |               v
  1095.                        |      |   |   (set of choices)
  1096.                        |      |   +----+----------(...)--------+
  1097.                        |   (rule)      |                       |
  1098.                        |      |        |                       |
  1099.                        |      |        |                       |
  1100.                        +------+        |                       |
  1101.                                        v                       v
  1102.                                   +----------+            +----------+
  1103.                                   |URN       |            |URN       |
  1104.                                   |resolver  |            |resolver  |
  1105.                                   |service   |            |service   |
  1106.                                   +----------+            +----------+
  1107.  
  1108.                        Figure 1: An RDS framework
  1109.  
  1110.    The NID defines a top level syntax.  This syntax will determine
  1111.    whether the NID alone or in conjunction with some extraction from the
  1112.    NSS (for the top level naming authority name) is to be used to
  1113.    identify the first level server to be contacted.  At each stage of
  1114.    the lookup either a new rule for generating the strings used in yet
  1115.    another lookup (the strings being the identity of another RDS server
  1116.    and possibly a string to be resolved if it is different than the
  1117.    original URN) or a reference outside the RDS to a URN resolver
  1118.    service, sidestepping any further use of the RDS scheme.  Figure 1
  1119.  
  1120.  
  1121.  
  1122. Sollins                      Informational                     [Page 20]
  1123.  
  1124. RFC 2276            Uniform Resource Name Resolution        January 1998
  1125.  
  1126.  
  1127.    depicts this process.
  1128.  
  1129.    There are several points worth noting about the RDS framework.
  1130.    First, it leaves open the determination of the protocols, data
  1131.    organization, distribution and replication needed to support a
  1132.    particular RDS scheme.  Second, it leaves open the location of the
  1133.    computations engendered by the rules.  Third, it leaves open the
  1134.    possibility that partitioning (distribution) of the RDS database need
  1135.    not be on the same boundaries as the name delegation.  This may seem
  1136.    radical to some, but if the information is stored in balanced B-trees
  1137.    for example, the partitioning may not be along those naming authority
  1138.    delegation boundaries (see [7]).  Lastly, it leaves open access to
  1139.    the Global NID Registry.  Is this distributed to every client, or
  1140.    managed in widely distributed servers?  It is important to note that
  1141.    it is the intention here that a single RDS scheme is likely to
  1142.    support names from many or all naming schemes, as embodied in their
  1143.    NIDs.
  1144.  
  1145.    One concept that has not been addressed in Figure 1 is that there may
  1146.    be more than one RDS available at any given time, in order to allow
  1147.    for evolution to new schemes.  Thus, the picture should probably look
  1148.    more like Figure 2.
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Sollins                      Informational                     [Page 21]
  1179.  
  1180. RFC 2276            Uniform Resource Name Resolution        January 1998
  1181.  
  1182.  
  1183.                          URN:<NID>:<NSS>
  1184.                                |
  1185.                                |
  1186.                    +-----------+-------(...)-------+
  1187.                    |                               |
  1188.                    |                               |
  1189.                    |                               |
  1190.                    v                               v
  1191.          +---------------------+        +---------------------+
  1192.          |Global NID registry 1|        |Global NID registry N|
  1193.          +---------------------+        +---------------------+
  1194.                    .                               .
  1195.                    .                               .
  1196.                    .                               .
  1197.  
  1198.  
  1199.              Figure 2: More than one co-existing RDS scheme
  1200.  
  1201.    If we are to support more than one co-existing RDS scheme, there will
  1202.    need to be coordination among them with respect to storage and
  1203.    propagation of information and modifications.  The issue is that
  1204.    generally it should be assumed that all information should be
  1205.    available through any operational RDS scheme.  One cannot expect
  1206.    potential publishers to submit updates to more than one RDS scheme.
  1207.    Hence there will need to be a straightforward mapping of information
  1208.    from one to the other of these schemes.  It is possible that that
  1209.    transformation will only go in one direction, because a newer RDS
  1210.    service is replacing an older one, which is not kept up to date, in
  1211.    order to encourage transfer to the newer one.  Thus, at some point,
  1212.    updates may be made only to the newer one and not be made available
  1213.    to the older one, as is often done with library catalogs.
  1214.  
  1215.    This framework is presented in order to suggest to RDS scheme
  1216.    designers a direction in which to start designing.  It should be
  1217.    obvious to the reader that adherence to this framework will in no way
  1218.    guarantee compliance with the guidelines or even the assumptions
  1219.    described in Sections 2 and 3.  These must be reviewed independently
  1220.    as part of the design process.  There is no single correct design
  1221.    that will conform to these guidelines.  Furthermore, it is assumed
  1222.    that preliminary proposals may not meet all the guidelines, but
  1223.    should be expected to itemized and justify any lack of compliance.
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Sollins                      Informational                     [Page 22]
  1235.  
  1236. RFC 2276            Uniform Resource Name Resolution        January 1998
  1237.  
  1238.  
  1239. 5. Acknowledgments
  1240.  
  1241.    Foremost acknowledgment for this document goes to Lewis Girod, as my
  1242.    co-author on a preliminary URN requirements document and for his
  1243.    insightful comments on this version of the document.  Thanks also go
  1244.    to Ron Daniel especially for his many comments on my writing.  In
  1245.    addition, I recognize the contributors to a previous URN framework
  1246.    document, the "Knoxville" group.  There are too many of you to
  1247.    acknowledge here individually, but thank you.  Finally, I must thank
  1248.    the contributors to the URN working group and mailing list (urn-
  1249.    ietf@bunyip.com), for your animated discussions on these and related
  1250.    topics.
  1251.  
  1252. 6. References
  1253.  
  1254.    [1] Kunze, J., "Functional Recommendations for Internet Resource
  1255.    Locators", RFC 1736, February 1995.
  1256.  
  1257.    [2] Sollins, K., and L. Masinter, "Functional Requirements for
  1258.    Uniform Resource Names", RFC 1738, December 1994.
  1259.  
  1260.    [3] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform Resource
  1261.    Locators (URL)", RFC 1738, December 1994.
  1262.  
  1263.    [4] URN Working Group, "Namespace Identifier Requirements for URN
  1264.    Services," Work in Progress.
  1265.  
  1266.    [5] Voydock, V. L., and Kent, S. T., "Security Mechanisms in High-
  1267.    Level Protocols", ACM Computing Surveys, v. 15, No. 2, June, 1983,
  1268.    pp. 135-171.
  1269.  
  1270.    [6] Moats, R., "URN Syntax", RFC 2141, May 1997.
  1271.  
  1272.    [7] Slottow, E.G., "Engineering a Global Resolution Service," MIT-
  1273.    LCS-TR712, June, 1997.  Currently available as
  1274.    <http://ana.lcs.mit.edu/anaweb/ps-papers/tr-712.ps> or
  1275.    <http://ana.lcs.mit.edu/anaweb/pdf-papers/tr712.pdf>.
  1276.  
  1277. 7. Author's Address
  1278.  
  1279.    Karen Sollins
  1280.    MIT Laboratory for Computer Science
  1281.    545 Technology Sq.
  1282.    Cambridge, MA 02139
  1283.  
  1284.    Phone: +1 617 253 6006
  1285.    EMail: sollins@lcs.mit.edu
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Sollins                      Informational                     [Page 23]
  1291.  
  1292. RFC 2276            Uniform Resource Name Resolution        January 1998
  1293.  
  1294.  
  1295. 8.  Full Copyright Statement
  1296.  
  1297.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  1298.  
  1299.    This document and translations of it may be copied and furnished to
  1300.    others, and derivative works that comment on or otherwise explain it
  1301.    or assist in its implementation may be prepared, copied, published
  1302.    and distributed, in whole or in part, without restriction of any
  1303.    kind, provided that the above copyright notice and this paragraph are
  1304.    included on all such copies and derivative works.  However, this
  1305.    document itself may not be modified in any way, such as by removing
  1306.    the copyright notice or references to the Internet Society or other
  1307.    Internet organizations, except as needed for the purpose of
  1308.    developing Internet standards in which case the procedures for
  1309.    copyrights defined in the Internet Standards process must be
  1310.    followed, or as required to translate it into languages other than
  1311.    English.
  1312.  
  1313.    The limited permissions granted above are perpetual and will not be
  1314.    revoked by the Internet Society or its successors or assigns.
  1315.  
  1316.    This document and the information contained herein is provided on an
  1317.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1318.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1319.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1320.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1321.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346. Sollins                      Informational                     [Page 24]
  1347.  
  1348.