SerGen: Servicios Generales de Comunicación Interagentes en una Biblioteca Digital Héctor Cocoletzi Moreno Asesor: Dr. Alfredo Sánchez
Índice Introducción Problema Trabajo Previo Objetivos Solución Propuesta –Protocolo de Comunicación –Director de Agencias –Director de Agentes Trabajo a Futuro Conclusiones
Introducción Bibliotecas Digitales –Tecnología que da orden al caos informativo –Múltiples aplicaciones y múltiples usuarios –Incorporación de Agentes
Introducción... Agentes en Bibliotecas Digitales –Asisten, orientan y ayudan al usuario –Simulan un bibliotecario personal U-DL-A –Propuesta de la Universidad de las Américas –Objetivo: Crear una biblioteca digital en la universidad Realizar investigación en problemas abiertos de la disciplina Abierta a otras universidades
Problema U-DL-A –Biblioteca Altamente Distribuida –Extensible –Necesidad de Comunicación entre Aplicaciones –Distintos tipos de aplicaciones basadas en agentes –Necesidad de administración de estas aplicaciones
Problema...
Trabajo Previo AGS –Modelo Conceptual del Problema –Demostración basada en HTML y CGI’s –Simulación de Aplicaciones Distribuidas
Trabajo Previo... MICK –Prototipo basado en AGS –Propone un modelo de comunicación en una Biblioteca Digital Florística –Pruebas con Agencias Virtuales –Implementa Administración de Agentes solo por parte del usuario
Objetivos Diseñar e Implementar un protocolo de comunicación entre Agentes Crear un servidor general que provea servicios comunes, robustos y confiables a aplicaciones y/o ambientes que hagan uso de U-DL-A Aprovechando las conclusiones de los trabajos previos
Solución Propuesta Creación de Componentes Basados en Java RMI que permiten la comunicación entre objetos remotos Solución dividida en 3 Módulos –Protocolo de Comunicación –Director de Agencias –Director de Agentes
Solución Propuesta...
Protocolo de Comunicación Conjunto de métodos genéricos que permiten la comunicación entre agentes Acciones –Agentes Reactivar Suspender Terminar –Agencias Agregar a la Biblioteca Digital Cambiar Estado Eliminar de la Biblioteca Digital
Director de Agentes (UAD) Herramienta para el usuario de la Biblioteca Digital Objetivo –Permitir al usuario una adminitración sencilla y efectiva de sus agentes Funciones –Creación de Agentes –Cambio de Estado (Activo, Suspendido, Terminado)
Director de Agentes... Módulos –Servidor UAD –Servidor para Agencias –Interfaz
Director de Agencias (AAD) Herramienta para el Administrador de la Biblioteca Digital Funciones –Administración de Agencias: Agregar, eliminar y cambio de Estado –Administración Avanzada de Agentes Métodos del Director de Agentes (UAD) Los cambios se reflejan en toda la biblioteca digital
Director de Agencias... Módulos –Servidor AAD –Interfaz
Trabajo a Futuro Tecnología Jini Extensión del Protocolo de Comunicación hacia Aplicaciones no basadas en agentes Extensión del Director de Agencias y del Director de Agentes hacia agentes que no son de Usuario Vincular más agencias a U-DL-A
Conclusiones El protocolo de comunicación permite que los administradores de la biblioteca se comuniquen con las agencias y agentes El Director de Agentes le permite al usuario una administración sencilla y eficaz de sus agentes El Director de Agencias permite al administrador realizar tareas vía una interfaz amigable y eficiente
GRACIAS!
Protocolo de Comunicación
MENSAJES DE LOS SERVIDORES DEL UAD Y AAD A LAS AGENCIAS getAgentStatus().- obtiene el estado de un agente isAlive().- permiete comprobar si la agencia esta viva newAgent().- crea un nuevo agente resumeAgent().- reactiva un agente previamente suspendido resumeAllAgents().- reactiva todos los agentes del usuario setKey();.- almacena una clave de autentificación para la agencia summonAgent().- invoca a la agencia o servicio de agentes suspendAgent().- suspende un agente suspendAllAgents().- suspende todos los agentes de un usuario terminateAgent().- elimina a un agente terminateAllAgents().- elimina a todos los agentes del un usuario
MENSAJES DE LAS AGENCIAS A LA AGENCIA DEL UAD addAgency().- agregar una agencia deleteAgency().- eliminar una agencia getAgencyId().- obtiene el id de una agencia getAgencyStatus().- obtiene el estado de la agencia getAgentDescription().- obtiene la descriptión de un agente getAgentStatus().- obtiene el estado de un agente getName().- obtiene el nombre de la agencia del UAD getPort().- obtiene el puerto de la agencia del UAD getUrl().- obtiene el URL de la agencia del UAD isAlive().- perimte saber si esta viva la agencia del uad newAgent().- crea un agente nuevo resumeAgent().- reactiva un agente resumeAllAgents().- reactiva todos los agentes de un usuario setAgencyStatus().- cambia de estado una agencia
MENSAJES DE LAS AGENCIAS A LA AGENCIA DEL UAD setAgentDescription().- cambia la descripción de un agente suspendAgent().- suspende un agente suspendAllAgents().- suspende todos los agentes de un usuario terminateAgent().- elimina un agente terminateAllAgents().- elimina a todos los agentes
MENSAJES DE LA INTERFAZ AL SERVIDOR DEL AAD AddAgency().- agregar una agencia AddUad().- agregar un UAD nuevo deleteAgency().- eliminar una agencia deleteUad().- eliminar un UAD getAgencyId().- obtiene el id de la agencia getAgencyStatus().- obtiene el estado de la agencia getAgentDescription().- obtiene la descrición de la agencia getAgentStatus.- obtiene el estado del agente getName().- obtiene el nombre del servidor getPort().- obtiene el numero de puerto del servidor getUrl().- obtiene el URL del servidor isAlive().- permite saber si el servidor esta vivo o no resumeAgent().- activa un agente resumeAllAgents().- activa todos los agentes de la biblioteca digital
MENSAJES DE LA INTERFAZ AL SERVIDOR DEL AAD resumeAllAgents(user).- activa todos los agentes de un usuario resumeAllAgents(user, agency).- activa todos los agentes de un usuario, por una agencia en especifico setAgencyStatus().- cambia el estado de una agencia setUadStatus().- cambia el estado de un UAD suspendAgent().- suspende un agente suspendAllAgents().- suspende todos los agentes de la biblioteca digital suspendAllAgents(user).- suspende todos los agentes de un usuario suspendAllAgents(user, agency).- suspende todos los agentes de un usuario