rfc2276.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,313 行 · 第 1/5 页
TXT
1,313 行
Network Working Group K. Sollins
Request for Comments: 2276 MIT/LCS
Category: Informational January 1998
Architectural Principles of Uniform Resource Name Resolution
Status of this Memo
This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (1998). All Rights Reserved.
Abstract
This document addresses the issues of the discovery of URN (Uniform
Resource Name) resolver services that in turn will directly translate
URNs into URLs (Uniform Resource Locators) and URCs (Uniform Resource
Characteristics). The document falls into three major parts, the
assumptions underlying the work, the guidelines in order to be a
viable Resolver Discovery Service or RDS, and a framework for
designing RDSs. The guidelines fall into three principle areas:
evolvability, usability, and security and privacy. An RDS that is
compliant with the framework will not necessarily be compliant with
the guidelines. Compliance with the guidelines will need to be
validated separately.
Table of Contents
1. Introduction..................................................2
2. Assumptions...................................................5
3. Guidelines....................................................7
3.1 Evolution.....................................................7
3.2 Usability....................................................10
3.2.1 The Publisher................................................11
3.2.2 The Client...................................................12
3.2.3 The Management...............................................13
3.3 Security and Privacy.........................................14
4. The Framework................................................18
5. Acknowledgements.............................................23
6. References...................................................23
7. Author's Address.............................................23
8. Full Copyright Statement.....................................24
Sollins Informational [Page 1]
RFC 2276 Uniform Resource Name Resolution January 1998
1. Introduction
The purpose of this document is to lay out the engineering criteria
for what we will call here a Resolver Discovery Service (RDS), a
service to help in the learning about URN (Uniform Resource Name)
resolvers. The term "resolver" is used in this document to indicate
a service that translates URNs to URLs (Uniform Resource Locators) or
URCs (Uniform Resource Characteristics). Some resolvers may provide
direct access to resources as well. An RDS helps in finding a
resolver to contact for further resolution. It is worth noting that
some RDS designs may also incorporate resolver functionality. This
function of URN resolution is a component of the realization of an
information infrastructure. In the case of this work, that
infrastructure is to be available, "in the Internet" or globally, and
hence the solutions to the problems we are addressing must be
globally scalable. In this document, we are focussing specifically
on the design of RDS schemes.
The Uniform Resource Identifier Working Group defined a naming
architecture, as demonstrated in a series of three RFCs 1736 [1],
1737 [2], and 1738 [3]. Although several further documents are
needed to complete the description of that architecture, it
incorporates three core functions often associated with "naming":
identification, location, and mnemonics or semantics. By location,
we mean fully-qualified Domain Names or IP addresses, possibly
extended with TCP ports and/or local identifiers, such as pathnames.
Names may provide the ability to distinguish one resource from
another, by distinguishing their "names". Names may help to provide
access to a resource by including "location" information. In
addition, names may have other semantic or mnemonic information that
either helps human users remember or figure out the names, or
includes other semantic information about the resource being named.
The URI working group concluded that there was need for persistent,
globally unique identifiers, distinct from location or other semantic
information; these were called URNs. These "names" provide identity,
in that if two of them are "the same" (under some simple rule of
canonicalization), they identify the same resource. Furthermore, the
group decided that these "names" were generally to be for machine,
rather than human, consumption. Finally, with these guidelines for
RDS's, this group has recognized the value of the separation of name
assignment management from name resolution management.
In contrast to URNs, one can imagine a variety human-friendly naming
(HFN) schemes supporting different suites of applications and user
communities. These will need to provide mappings to URNs in tighter
or looser couplings, depending on the namespace. It is these HFNs
that will be mnemonic, content-full, and perhaps mutable, to track
changes in use and semantics. They may provide nicknaming and other
Sollins Informational [Page 2]
RFC 2276 Uniform Resource Name Resolution January 1998
aliasing, relative or short names, context sensitive names,
descriptive names, etc. Their definition is not part of this effort,
but will clearly play an important role in the long run.
URNs as described in RFC 1737 are defined globally; they are
ubiquitous in that a URN anywhere in any context identifies the same
resource. Given this requirement on URNs, one must ask about its
implication for an RDS. Does ubiquity imply a guarantee of RDS
resolution everywhere? Does ubiquity imply resolution to the same
information about resolution everywhere? In both cases the answer is
probably not. One cannot make global, systemic guarantees, except at
an expense beyond reason. In addition there may be policy as well as
technical reasons for not resolving in the same way everywhere. It
is quite possible that the resolution of a URN to an instance of a
resource may reach different instances or copies under different
conditions. Thus, although a URN anywhere refers to the same
resource, in some environments under some conditions, and at
different times, due to either the vagaries of network conditions or
policy controls a URN may sometimes be resolvable and other times or
places not. Ubiquitous resolution cannot be assumed simply because
naming is ubiquitous. On the other hand wide deployment and usage
will be an important feature of any RDS design.
Within the URI community there has been a concept used frequently
that for lack of a better term we will call a _hint_. A hint is
something that helps in the resolution of a URN; in theory we map
URNs to hints as an interim stage in accessing a resource. In
practice, an RDS may map a URN directly into the resource itself if
it chooses to. It is very likely that there will be hints that are
applicable to large sets of URNs, for example, a hint that indicates
that all URNs with a certain prefix or suffix can be resolved by a
particular resolver. A hint may also have meta-information
associated with it, such as an expiration time or certification of
authenticity. We expect that these will stay with a hint rather than
being managed elsewhere. We will assume in all further discussion of
hints that they include any necessary meta-information as well as the
hint information itself. Examples of hints are: 1) the URN of a
resolver service that may further resolve the URN, 2) the address of
such a service, 3) a location at which the resource was previously
found. The defining feature of hints is that they are only hints;
they may be out of date, temporarily invalid, or only applicable
within a specific locality. They do not provide a guarantee of
access, but they probably will help in the resolution process. By
whatever means available, a set of hints may be discovered. Some
combination of software and human choice will determine which hints
will be tried and in what order.
Sollins Informational [Page 3]
RFC 2276 Uniform Resource Name Resolution January 1998
We must assume that most resolutions of URNs will be provided by the
use of locally stored hints, because maintaining a database of
globally available, completely up-to-date location information is
infeasible for performance reasons. There are a number of
circumstances in which one can imagine that hints become invalid,
either because a resource has moved or because a different URN
resolver service has taken over the responsibility for resolution of
the URN. Hints may be found in a variety of places. It is generally
assumed that a well engineered system will maintain or cache a set of
hints for each URN at each location where that URN is found. These
may have been acquired from the owner of the resources, a
recommendation of the resource, or one of many other sources. In
addition, for those situations in which those hints found locally
fail, a well engineered system will provide a fall-back mechanism for
discovering further hints. It is this fall-back mechanism, an RDS,
that is being addressed in this document. As with all hints, there
can never be a guarantee that access to a resource will be available
to all clients, even if the resource is accessible to some. However,
an RDS is expected to work with reasonably high reliability, and,
hence, may result in increased response time.
The remainder of this document falls into three sections. The first
identifies several sets of assumptions underlying this work. There
are three general assumptions:
* URNs are persistent;
* URN assignment can be delegated;
* Decisions can be made independently, enabling isolation from
decisions of one's peers.
The next section lays out three central principles Resolver Discovery
Service design. For each of these, we have identified a number of
more specific guidelines that further define and refine the general
principle. This section is probably the most critical of the
document, because one must hold any proposed RDS scheme up against
these principles and corollary guidelines to learn whether or not it
is adequate. The three central principles can be summarized as:
1) An RDS must allow for evolution and evolvability;
2) Usability of an RDS with regard to each of the sets of
constituents involved in the identification and location or
resources is paramount;
3) It is centrally important that the security and privacy needs
of all constituents be feasibly supported, to the degree
possible.
Each of the three major subsections of the guidelines section begins
with a summary list of the more detailed guidelines identified in
Sollins Informational [Page 4]
RFC 2276 Uniform Resource Name Resolution January 1998
that section.
The final section of the document lays out a framework for such RDSs.
The purpose of this last section is to bound the search space for RDS
schemes. The RDS designer should be aware that meeting the
guidelines is of primary importance; it is possible to meet them
without conforming to the framework. As will be discussed further in
this last section, designing within the framework does not guarantee
compliance, so compliance evaluation must also be part of the process
of evaluation of a scheme.
2. Assumptions
Based on previous internet drafts and discussion in both the URN BOFs
and on the URN WG mailing list, three major areas of assumptions are
apparent: longevity, delegation, and independence. Each will be
discussed separately.
The URN requirements [2] state that a URN is to be a "persistent
identifier". It is probably the case that nothing will last forever,
but in the time frame of resources, users of those resources, and the
systems to support the resources, the identifier should be considered
to be persistent or have a longer lifetime than those other entities.
There are two assumptions that are implied by longevity of URNs:
mobility and evolution. Mobility will occur because resources may
move from one machine to another, owners of resources may move among
organizations, or the organizations themselves may merge, partition,
or otherwise transforms themselves. The Internet is continually
evolving; protocols are being revised, new ones created, while
security policies and mechanisms evolve as well. These are only
examples. In general, we must assume that almost any piece of the
supporting infrastructure of URN resolution will evolve. In order to
deal with both the mobility and evolution assumptions that derive
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?