Conceptos de Nombrado
Una facilidad fundamental en cualquier sistema de ordenadores es el servicio
de nombrado -- significa qué nombres están asociados con qué objetos y
cómo se localizan los objetos basándose en sus nombres. Cuando usamos
cualquier programa o sistema de ordenador, siempre estamos nombrando un objeto u
otro. Por ejemplo, cuando usamos un sistema de correo electrónico, debemos
proporcionar el nombre del recipiente al que queremos enviar el correo. Para
acceder a un fichero en el ordenador, debemos suministrar su nombre. Un servicio
de nombres nos permite localizar un objeto dando su nombre.
La función primaria de un servicio de nombres es mapear nombres amigables
para las personas con objetos, como direcciones, identificadores, u objetos
típicamente usados por programas de ordenador. Por ejemplo, el Internet
Domain Name System (DNS) mapea nombres de máquinas (como www.sun.com)
a direcciones IP (como 192.9.48.5). Un sistema de ficheros mapea
un nombre de fichero (por ejemplo, c:\bin\autoexec.bat) a un
manejador de fichero que el programa pueda usar para acceder a los contenidos
del fichero. Estos dos ejemplos también ilustran el ámplio rango de escalas en
las que existen servicios de nombrado -- desde nombrar un objeto en Internet
hasta nombrar un objeto en el sistema local de ficheros.
Nombres
Para localizar un objeto en un sistema de nombrado, suministramos el nombre
del objeto. El sistema de nombrado determina la síntaxis que deben seguir los
nombres. Está síntaxis algunas veces es conocida como convención de
nombrado.
Por ejemplo, la convención de nombrado del sistema de ficheros UNIXTM
es que un fichero es nombrado desde su path relativo a la raíz del sistema de
ficheros, con cada componente separado por una barra inclinada ("/").
Por ejemplo, el nombre de path UNIX, /usr/hello, nombra un
fichero hello en el directorio usr, que está
localizacio en el directorio raíz del sistema de ficheros.
La convención de nombrado DNS llama a los componentes en el nombre DNS para
ordenarlos de derecha a izquierda y están delimitados por puntos
("."). Así el nombre DNS sales.Wiz.COM nombra una
entrada DNS con el nombre sales, relativo a la entrada DNS Wiz.COM.
A su vez, la entrada DNS Wiz.COM, nombra una entrada con el
nombre Wiz en la entrada COM.
La convención de nombrado de Lightweight
Directory Access Protocol (LDAP) ordena ls componentes de derecha a
izquierda, delimitados por comas (","). Así, el nombre LDAP cn=Rosanna
Lee, o=Sun, c=US nombra una entrada LDAP cn=Rosanna Lee,
relativa a la entrada o=Sun, que a su vez, es relativa a c=us.
El LDAP tiene una regla más, cada componente del nombre debe ser una pareja
nombre/valor con el nombre y el valor separados por el signo igual
("=").
Uniones
La asociación de un nombre con un objeto se llama una Unión. Por
ejemplo, un nombre de fichero está unido a un fichero.
El DNS contiene uniones que mapea nombres de máquinas a direcciones IP. Un
nombre LDAP está unido a una entrada LDAP.
Referencias y Direcciones
Dependiendo del servicio de nombres, algunos objetos no pueden
almacenarse directamente, es decir, no se puede situar una copia del objeto
dentro del servicio de nombrado. En su lugar, deben ser almacenados por
referencia; es decir, un puntero o una referencia al objeto se
almacenan dentro del servicio de nombrado. Una referencia es información sobre
cómo acceder a un objeto. Típicamente, es una representación mucho más
compacta que puede ser usada para comunicarse con el objeto, mientras que el
propio objeto podría contener más información de estado. Usando la referencia
podemos contactar con el objeto y obtener más información sobre él.
Por ejemplo, un objeto avión, podría contener una lista de pasajeros y de
tripulación, su plan de vuelo, el estado de combustible y de los instrumentos,
y su número de vuelo y hora de salida. Por contraste, una referencia a un
objeto avión, sólo podría contener su número de vuelo y su hora de salida.
La referencia es una representación mucho más compacta de información sobre
el objeto avión, y puede usarse para obtener información adicional. Por
ejemplo, a un objeto fichero, se puede acceder usando una referencia a
fichero, también llamado manejador de fichero. Por ejemplo, un
objeto impresora, podría contener el estado de la impresora, como su cola
actual y la cantidad de papel que le queda. Por otro lado, una referencia al
objeto impresora, sólo podría contener información sobre cómo llegar hasta
ella, como el nombre de su servidor de impresión y el protocolo de impresión.
Aunque en general una referencia puede contener cualquier información arbitraria,
es útil referirnos a su contenido co direcciones (o puntos finales de
comunicación): información específica sobre cómo acceder al objeto.
Por simplicidad, este tutorial usa "objeto" para referirse tanto a
objetos como a referencias a objetos cuando no se requiera una distinción entre
los dos.
Contexto
Un contexto es un conjunto de uniones nombre-a-objeto. Cada contexto
tiene una convención de nombrado asociada. Un contexto proporciona una
operación de localización (resolución) que devuelve el objeto y
podría proporcionar operaciones como aquellas para unir nombres, desunir
nombres y listar uniones de nombres. Un nombre en un objeto contexto puede
unirse a otro objeto contexto (llamado un subcontexto) que tenga la misma
convención de nombrado.
Por ejemplo, un directorio de ficheros, como /usr, en el
sistema de ficheros UNIX es un contexto. Un directorio de ficheros nombrado en
relación a otro directorio de ficheros es un un subcontexto (algunos usuarios
UNIX se refieren a esto como un subdirectorio). Es decir, en un
directorio de fichero /usr/bin, el directorio bin
es un subcontexto de usr. En otro ejemplo, un dominio DNS, como
por ejemplo COM, es un contexto. Un dominio DNS nombrado en
relación a otro dominio DNS es un subcontexto. Por ejemplo, en el dominio DNS Sun.COM,
el dominio DNS Sun es un subcontexto de COM.
Finalmente, una entrada LDAP como c=us, es un contexto. Una
entrada LDAP nombrada en relación a otra entrada LDAP es un subcontexto. Por
ejemplo, en un entrada LADP o=sun,c=us, la entrada o=sun
es un subcontexto de c=us.
Sistemas de Nombrado y Espacios de Nombres
Un sistema de nombrado está conectado a un conjunto de contextos del mismo
tipo (tienen la misma convención de nombrado) y proporciona un conjunto común
de operaciones.
Por jemplo, un sistema que implementa el DNS es un sistema de nombrado. Un
sistema que se comunique usando LDAP es un sistema de nombrado.
Un sistema de nombrado proporciona un servicio de nombrado a sus
clientes para realizar operaciones relacionadas con el nombrado. A un servicio
de nombrado se accede a través de su propio interface. Por ejemplo, el DNS
ofrece un servicio de nombres que mapea el nombre de una máquina a una
dirección IP. El LDAP ofrece un servicio de nombres que mapea nombres LDAP a
entradas LDAP. Un sistema de ficheros ofrece un servicio de nombres que mapea
los nombres de ficheros a ficheros y directorios.
Un espacio de nombres es el conjunto de nombres en un sistema de
nombrado. Por ejemplo, el sistema de ficheros UNIX tiene un espacio de nombres
que consiste en todos los nombres de ficheros y directorios en ese sistema de
ficheros. El espacio de nombres DNS contiene nombres de dominios DNS y entradas.
El espacio de nombres LDAP contiene nombres de entradas LDAP.