2. Tabla de Contenidos Soporte de la movilidad en JADE API de JADE para movilidad Ontología JADE para movilidad Accediendo al AMS para movilidad Referencias Bibliográficas Agradecimientos Ejercicios 2
3. Soporte de la Movilidad en JADE La movilidad de un agente es la habilidad para que este migre o haga un clon a través de uno o múltiples nodos de una red. El soporte de movilidad en JADE consiste en un conjunto de clases, métodos y una ontología específica de movilidad (MobilityOntology). Las clases y métodos permiten a un agente ejecutar las acciones requeridas por sí mismo o por el AMS (Agent Management System). 3
4. Soporte de la Movilidad en JADE Esta versión de JADE soporta solo movilidad dentro de la misma plataforma. Esto quiere decir que un agente móvil se puede mover a través de contenedores pero está limitado a una sola plataforma. Existe un proyecto de la Universidad Autónoma de Barcelona que implementa el servicio de movilidad inter-plataforma de movilidad llamado IPMS. La movilidad en JADE implica: Involucrar varios hosts. Que cada host tenga su contenedor. Y que la migración puede suceder a petición del propio agente. 4
5. Soporte de la Movilidad en JADE Ventajas: Proceso independiente y asíncrono Tolerancia a fallos Apropiados para conjuntos grandes de datos Desventajas: Escalabilidad y rendimiento Seguridad Portabilidad y estandarización 5
6. Soporte de la Movilidad en JADE Movilidad Inter-Plataforma (IPMS) Es un complemento de Jade que se ha creado para permitir la movilidad de agentes entre plataformas. Mensajes FIPA-ACL como medio de transporte. Se especifican dos acciones en la ontología: move power-up Algunos conceptos de la ontología aseguran la compatibilidad entre plataformas. Conceptos: mobile-agent-descriptionque contienen toda la información del agente. Estos conceptos mobile-agent-profile 6
7. Soporte de la Movilidad en JADE El proceso es el siguiente: Se envía un Request a la plataforma destino esperando respuesta. Si obtenemos un Inform el agente puede serializarse y enviarse dentro de un mensaje a la plataforma destino. Sino se desharán todos los cambios. La ventaja de utilizar mensajes ACL es que no es necesario abrir otro canal de comunicación entre plataformas. La desventaja es que el rendimiento no es particularmente alto debido al proceso de codificación y decodificación del propio mensaje ACL. Ejemplo gráfico de movilidad en Jade. 7
8. Soporte de la Movilidad en JADE java jade.Boot –host hostRemoto –containera1:Agente JADE soporta movilidad de código y estado de ejecución. Métodos para llevar a cabo la movilidad y la clonación: doMove(Location destino) beforeMove() afterMove() doClone(Location destino, String nombre) beforeClone() afterClone() importjade.core.*; 8
9. API de JADE para Movilidad doMove(Location destino) doClone(Location destino, String nombre) Mover un agente implica enviar su código y su estado. JADE proporciona métodos para gestionar los recursos usador por el agente móvil. beforeClone() y afterClone() beforeMove() afterMove() Ejemplo AgenteMovil. Un agente se mueve al contenedor indicado por el usuario para leer la información que contiene un fichero remoto. 9
10. Ontología JADE para Movilidad Para la movilidad y comunicación entre los agentes necesitaremos una ontología que proporcione una descripción del sistema y acciones que se pueden llevar a cabo. importjade.domain.mobility.*; MobilityOntolgy contiene: mobile-agent-description MobilityOntology.MobileAgentDescription mobile-agent-profile MobilityOntology.MobileAgentProfile. mobile-agent-system MobilityOntology.MobileAgentSystem. mobile-agent-language MobilityOntology.MobileAgentLanguage. mobile-agent-os MobilityOntology.MobileAgentOS. 10
11. Ontología JADE para Movilidad location MobilityOntology.Location. move-agent MobilityOntology.MoveAction. clone-agent MobilityOntology.CloneAction. where-is-agent MobilityOntology.WhereIsAgent. query-platform-locations MobilityOntology.QueryPlatformLocations. Esta ontología no se ajusta a ninguna especificación FIPA. Ejemplo Host. Uso de la ontología de movilidad para decir a un agente que se mueva a un Location en concreto 11
12. Accediendo al AMS para Movilidad El AMS provee algunas extensiones que dan soporte a la movilidad de agentes y es capaz de realizar las acciones presentes en el jade-mobility-ontology. Un comportamiento típico para un agente móvil será preguntar al AMS por localizaciones, luego el agente será capaz de decidir si, cuando y a donde migrar importjade.domain.JADEAgentManagement.*; Acciones para la movilidad: move-agent. Esta acción toma un mobile-agent-description como su parámetro. Mueve el agente identificado por los slots name y address del mobile-agent-description al lugar indicado en el slot destination. Ejemplo, classMoverAgenteBehaviour (Host.java). clone-agent. Similar a la acción move-agent, pero en este caso tiene un argumento más de tipo String, en el que se pasa el nuevo nombre del agente que resulta del proceso de clonación.. 12
13. Accediendo al AMS para Movilidad Otras acciones relacionadas con la movilidad y que están definidas en JADEManagementOntology: where-is-agent. Se le pasa el AID del agente que se quiere localizar y devuelve el lugar del agente, que se coloca en el slot content del mensaje ACL inform. query-platform-locations. Devuelve un conjunto de todos los objetos Location disponibles actualmente en la plataforma JADE. 13
14. Referencias Bibliográficas Giovanni Caire (TILabS.p.a), 2001 . Description of theexamples: Mobile. Enlace: http://jade.tilab.com/doc/examples/mobile.html, último acceso 23 de mayo de 2010 Fabio Bellifemine, Giovanni Caire, Tiziana Trucco (TILAB, formerly CSELT), Giovanni Rimassa (University of Parma), 2010. JADE Programmer´s Guide.Enlace: http://jade.tilab.com/doc/programmersguide.pdf , último acceso 23 de mayo de 2010 Jean Vaucher. Université de Montréal. Capítulo 9,Exploringmobility. Enlace: http://www.iro.umontreal.ca/~vaucher/Agents/Jade/Mobility.html, último acceso 23 de mayo de 2010 Inter-PlatformMobilityProject, Universidad Autonómica de Barcelona, 2006. Enlace: https://tao.uab.cat/ipmp/, último acceso 23 de mayo de 2010 14
16. Ejercicios Enviad el ejercicio de codificación completado y las respuestas de las preguntas a la dirección de correo arenteriro.sma@gmail.com indicando: Nombre y apellidos. D.N.I. Grupo. 16