2011-03-29 17 views
5

Estoy buscando ya sea para encontrar o construir un resolver URN (Universal Resource Name), que devolvería 0 o más URI para un URN dado.Usando DNS como un resolvedor URN

Por ejemplo: urn:fooid:6e8bc430-9c3a-11d9-9669-0800200c9a66:foo puede resolverse en http://www.example.com/fooservice/6e8bc430-9c3a-11d9-9669-0800200c9a66/foo. El servicio debería conocer los URN de estilo fooid y saber cómo buscar el URL base (http://www.example.com/fooservice/) desde el GUID y convertir los dos puntos a barras para hacer un URI completo.

He buscado "resolutores de URN" pero no hay mucho por ahí. Luego se me ocurrió que, dado que el DNS consiste en resolver rápidamente las direcciones de forma escalable y distribuida, y dado que se ha utilizado para otras aplicaciones (see here), tal vez se podría usar para hacer la parte de búsqueda de base URL. .

¿Se ha hecho esto antes, y sería una alternativa práctica a simplemente usar una base de datos convencional?

Respuesta

5

Para hacer esto en el DNS que tendría que utilizar NAPTR registros como parte de un Sistema de Aplicación Dinámica Delegación Discovery, como se define en RFC 3401, RFC 3402 y RFC 3403.

Para la resolución URN en particular, también vea RFC 3404 y RFC 3405 que se basa en los tres anteriores para proporcionar una forma estándar de asignar URN a otra cosa.

Idealmente, si se tratara de una URN global de propósito general, solicitaría una delegación de fooid dentro del espacio de dominio urn.arpa..

Eche un vistazo a IANA's website para ver los espacios de nombres URN registrados existentes.