I've had quite a few registry-related discussions in the past few
months, here's a collection of thoughts related to this topic.
1) Have a registry or not?
Many people take it as a given that once you have an extension point,
you need a new registry. Not so.
In this space we have tons of registries that already provide stability.
For instance, WebDAV (RFC 4918) uses extension points all over the
place, such as for property names, report names, pre/post condition
names, but gets away without having to define a single registry.
This is achieved by using an URI-based system; all the types mentioned
above are pairs of (namespace-uri, local-name), just as in XML +
namespaces. The namespace URI can be just anything you control, be it an
http URI, a UUID URN, or a URN in the urn:ietf namespace.
And yes, this works very well. What it does NOT do is standardizing the
access to the definition *for* the extension, nor discovery. This may be
a problem in some cases, but not always.
2) When setting up a registry, consider experimentation and local uses
So you have decided you *really* need a registry; in this case consider
experimentation and local uses.
Some registries have provisional branches and/or vendor trees. An even
simpler approach is to combine the registry with the extension point
mentioned above; use the registry for "short names", but allow the use
of URIs as identifiers as well. This allows people to use extension
element in private/local use without any fear of name collisions. See
"Web Linking" (RFC 5988), for example.
3) Somebody forgot to define a registry, what now?
This happens. Sometimes, it's not clear when writing a spec whether a
registry will ever needed. This happened with a few extension points in
HTTP/1.1 (RFC 2616), such as status codes. I believe that the plan was
for specs just to use the "updates" relation in the RFC database to keep
track of these things, but that doesn't scale well, and it confuses
extensibility with spec evolution.
RFC 2817 (TLS over HTTP) established an IANA registry for status codes
later on. That was ok, but what turned out to be a really bad idea was
to make that registry part of RFC 2817. It makes it hard to find, and
makes updating RFC 2817 difficult; it just combines too many different
things inside one document.
So if you ever need an IANA registry for an extension point in an
already published RFC, by all means make it a stand-alone document.
4) Designated Experts
Some registries do not need review, some do. Review can be very
time-consuming. If you define a registry that needs Expert Review, make
sure you actually have multiple volunteers who are willing to do this
for an extended amount of time; otherwise the registry will not work
well, or not at all.
Note: every time consumers of a registry have a bad registration
experience, the whole of IANA and IETF gets blamed for it.
5) Visibility and Accountability
For everything that requires review, establish a public, archived
mailing list. Optimally also run an issue tracker somewhere where people
can track the status of their registration requests.
Feedback appreciated,
Julian
_______________________________________________
Ietf mailing list
Ietf@ietf.org
https://www.ietf.org/mailman/listinfo/ietf