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:


Interacción entre Factorías de Objetos y Proveedores de Servicios

Un proveedor de servicios actúa como intermediario entre la aplicación y el directorio cuando la aplicación almacena o recupera objetos Java desde el directorio. Cuando escribimos un proveedor de servicio, necesitamos realizar este papel de intermediario siguiendo las reglas descritas para leer objetos desde el directorio.

La siguiente descripción detallada está pensada para desarrolladores de proveedores de servicios. Aunque el papel de intermediario del proveedor de servicio también podría interesar a los usuarios del API.

Métodos Relevantes

Cuando se devuelven objetos a la aplicación cliente JNDI, el proveedor de servicio debería usar las reglas seguidas en esta sección. Un objeto puede devolverse usando uno de los siguientes métodos.

Soporte de Marco de Trabajo

Un proveedor de servicio debería usar factorías de objetos configuradas con el proveedor y la aplicación. Esto permite personalizar el proveedor para soportar tipos de objetos arbitrarios (para los que esté disponible la correspondiente factoría de objetos).

El marco de trabajo JNDI proporciona métodos de utilidad que el proveedor de servicios puede usar para acceder a las factorías de objetos. Un proveedor que implemente sólo el interface Context debería usar NamingManager.getObjectInstance().

Un proveedor de servicio que implemente el interface DirContext debería usar DirectoryManager.getObjectInstance().

Estos métodos interactúan con las factorías de objetos para producir un objeto Java que representa la información del directorio. Las factorías de objetos a utilizar dependen del objeto leído desde el directorio. Si la referencia contiene una URL, estos métodos usarán la factoría de contextos URL correspondiente. De otro modo, atraviesa la lista de factorías de objetos especificada en la propiedad de entorno Context.OBJECT_FACTORIES y el fichero de recursos de proveedor e intenta encontrar una factoría que devuelva una respuesta no-null.

Federación

Cómo se explicó en la página Otros usos de está lección, las factorías de objetos también juegan un papel en la federación.

El modo en que los proveedores de servicio usan las factorías de objetos para soportar la federación se describe en la sección Construir un Proveedor de Servicio.

La factoría de objetos realmente es un mecanismo general usado a través del JNDI. En esta lección, las factorías de objetos se usan para transformar información almacenada en el directorio en objetos Java que las aplicaciones pueden usar. Y típicamente, estos objetos son objetos que las aplicaciones usan directamente (por ejemplo, como un objeto Persona o un objeto Drink o Fruit).

La siguiente explicación presenta otros usos de las factorías de objetos.

Está pensada como información de base para usuarios del API. Los desarrolladores de proveedores de servicios pueden encontrar una explicación completa de estos tópicos en las secciones de Construir un Proveedor de Servicio.

Federación y Factorías de Contexto

Ya vimos como se une un objeto a un directorio. ¿Qué sucede si resulta que el objeto es la raíz de otro sistema de nombres? En el LDAP, por ejemplo, podemos unir un objeto que es la raiz de un sistema de ficheros. Podemos suministrar una factoría de objetos cuyo papel sea convertir la información almacenada en el directorio LDAP sobre el sistema de ficheros en el contexto raíz del sistema de ficheros. Este tipo de factoría de objetos se llama factoría de contexto.

Dando información sobre el contexto a crear, una factoría de contexto creará y devolverá un ejemplar de Context.

En este ejemplo el sistema de ficheros se llama nns (ver la lección Federación).

Al igual que la naturaleza de la información almacenada en un directorio sobre un objeto Java puede variar (desde una referencia a atributos o a un objeto serializado), lo hace igual la naturaleza de la información almacenada en un directorio sobre nns. En el sistema de ficheros del ejemplo, podríamos almacenar una URL que identifique el servidor del sistema de ficheros y la información de protocolo como una referencia JNDI.

Almacenando información nns en un directorio, estamos federando.

Así, los sistemas de nombres, permiten resolver nombres mixtos. Ver la sección Federación para más detalles.

Factoria de Contextos URL

Una clase especial de factoría de contexto es una factoría de contexto URL, que crea un contexto para resolver URLs o contextos cuyas localizaciones están especificadas por URLs. Por ejemplo, una factoría de contexto URL para LDAP puede crear un contexto para aceptar URLs LDAP arbitrarias. La misma factoría de contexto URL para LDAP puede crear un contexto identificado para una URL LDAP. Este contexto podrá resolver nombres relativos a la localización específicada por la URL.

Las factorías de contexto URL las usan las federaciones y también los contextos iniciales para resolver y procesar peticiones URLs. De echo, en el ejemplo de la referencia remota, el objeto remoto es almacenado en el directorio como una referencia que contiene una URL RMI. Cuando se busca el objeto desde el directorio, JNDI usa una factoría de contexto URL RMI para buscar y devolver el objeto desde el registro RMI nombrado en la URL.


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