Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) [Parte I]
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Enlaces de Referencia

Un Enlace de referencia es un enlace simbólico que puede expandir múltiples sistemas de nombres. Está representado por la clase LinkRef.

Contiene un string URL o un nombre mixto. Si el primer componente del nombre mixto es el string "." (un string que contiene un caracter punto (".")), el nombre mixto se resolverá en relación al contexo al que se unió el enlace de referencia. De otra forma, la URL o el nombre mixto serán resueltos en relación al contexto inicial.

Relación para Operaciones de Contexto

Podemos unir un enlace de referencia, igual que cualquier otro objeto, con un contexto usando Context.bind() y sus métodos relacionados. El proveedor de servicios debe soportar los objetos Reference y Referenceable.

Cuando realizamos una Context.lookup() u otra operación de contexto que involucre al enlace de referencia, éste será des-referenciado automáticamente.

Por ejemplo, supongamos que tenemos el siguiente nombre mixto en el contexto inicial.

some/where/over/there

Creamos un enlace de referencia para "some/where" y lo unimos al nombre "here" en el contexto inicial. Después si listamos el contexto usando el nombre "here/over/there" es efectivamente lo mismo que usar el nombre "some/where/over/there".

Un enlace de referencia no se des-referencia sólo cuando usamos Context.lookupLink().

En este caso, se devuelve un enlace de referencia unido al componente terminal de un nombre mixto sin ser des-refernciado. En el ejemplo anterior, si utilizamos esta sentencia.

Object obj = ctx.lookupLink("here");

el resultado será un LinkRef que contiene el nombre mixto "some/where".

Si el nombre que hemos suministrado a lookupLink() contiene un componente unido a un enlace de referencia como un componene no-terminal, el enlace de referencia si que será des-referenciado. En el ejemplo anterior, si usamos esta sentencia.

Object obj = ctx.lookupLink("here/over/there");

El resultado será el objeto unido a "some/where/over/there".

Nota:

El soporte para enlaces de referencias está implementado por el proveedor de servicios. Ninguno de los proveedores de sevicos LDAP o del sistema de ficheros de Sun soporta actualmente los enlaces de referencias.

Relacíon con Alias, Referrals, Referencias URL, y otros Enlaces Simbólicos

Los enlaces simbólicos son muy comunes en sistemas de nombres y directorios.

Por ejemplo, el sistema de ficheros UNIX soporta enlaces simbólicos para ficheros y directorios, el LDAP soporta alias y referrals, y el JNDI soporta referencias URL (ver la lección URLs).

El enlace de referencia del JNDI difiere de todas estas.

Un alias LDAP es una entrada LDAP que contiene un nombre distinguido de otra entrada LDAP en el mismo servidor LDAP. Los servidores LDAP son responsables de des-refenciar los alias. Un enlace de referencia difiere de un alias enque no es específico de LDAP y puede nombrar objetos fuera del espacio de nombres o del servidor LDAP. Al contrario que los alias, un enlace de referencia es procesado en el lado del cliente (por el proveedor de servicios).

Un referral LDAP es una entrada que contiene la URL de otra entrada LDAP, posiblemente en otro servidor LDAP. La URL no necesita ser una URL LDAP, pero la entrada que nombra debe ser una entrada LDAP. Los clientes LDAP son responsables de des-referenciar las referrals. Un enlace de referencia difiere de un referral en que no es específico de LDAP. No necesita nombrar otra entrada LDAP. Un enlace de referencia puede ser relativo, es decir, puede nombrar otro objeto en relación al contexto en el que se unió el enlace de referencia. Un referral siempre contiene una URL absoluta.

Un enlace simbólico UNIX contiene un nombre relativo o absoluto a un fichero o directorio. Difiere de los enlaces de referencia en que sólo puede nombrar otro objeto o directorio.

Un enlace de referencia difiere de una referencia URL en que está explícitamente tipado y diseñado para soportar enlaces, mientras que una referencia URL está pensada para soportar federaciones. Las referencias URL son procesadas por implementaciones/factorías de contexto URL. Los enlaces de referencia son soportados por los proveedores de servicios que son los responsables de des-refereniarlos y de realizar el bucle de enlaces y de detectar los límites del enlace.


Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis