Notificación de Eventos
Como el servicio de nombres/directorios está incrementando la importancia de su
papel en el entorno de programción, también se incrementa la necesidad de
herramientas de administración y monitorización para ayudarnos a manejar los
cambios en el servicio. Para dichas herramientas y otras aplicaciones, el estilo
de interacción tradicional de petición/despuesta necesita mejorarse con un
modelo de notificación asíncrona que permita a las aplicaciones registrar su
interes en los cambios de un servicio.
El paquete javax.naming.event
contiene clases e interfaces que soportan notificación de eventos. Usan un
modelo de eventos similar al usado por el Java Abstract Windowing Toolkit (AWT)
y JavaBeans, ámbos forman parte de la plataforma
Java 2. El modelo esencialmente es que el evento es disparado por fuentes
de eventos. Y los oyentes
de eventos registrados con una fuente de eventos reciben notificaciones
sobre eventos de un tipo particular.
En JNDI, las fuentes de eventos son objetos que implementan los interfaces EventContext
o EventDirContext.
Los oyentes de eventos son objetos que implementan el interface NamingListener
o uno de sus subinterfaces.
Esta sección describe los distintos tipos de oyentes
de eventos disponibles en el JNDI y cómo registrárlos
para recibir notificaciones de eventos. También
describe cómo registrarse para notificaciones no
solicitadas que podrían ser generadas por servidores LDAP.
Configuración Cliente y Servidor
Los ejemplos de esta sección usan el proveedor de
servicios LDAP. Asumen que hemos configurado el espacio de nombres de ejemplo
usando el contenido descrito en la lección Preparaciones.
Si usamos otro proveedor de servicio o elegimos otra parte del espacio de
nombres LDAP, el comportamiento será distinto del mostrado aquí.
El contexto inicial usado en estos ejemplo se inicializa con las siguientes
propiedades de entorno.
// Set up the environment for creating the initial context
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
El servidor LDAP también debe soportar el control de búsqueda persistente (borrador
de Internet draft-ietf-ldapext-psearch-02.txt).
El Netscape Directory Server v4.1 soporta
este control.