movilidad en jade
TRANSCRIPT
Cristina Campos Campos
Mª Luz López Jaspe
http://programacionjade.wikispaces.com/Movilidad
1
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
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 nodosde una red.
El soporte de movilidad en JADE consiste en unconjunto de clases, métodos y una ontología específicade movilidad (MobilityOntology).
Las clases y métodos permiten a un agente ejecutar lasacciones requeridas por sí mismo o por el AMS (AgentManagement System).
3
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 sepuede mover a través de contenedores pero está limitado auna sola plataforma.
Existe un proyecto de la Universidad Autónoma deBarcelona 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
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
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. Seespecifican dos acciones en la ontología: move
power-up
Algunos conceptos de la ontología aseguran lacompatibilidad entre plataformas. Conceptos: mobile-agent-description que contienen toda la información
del agente. Estos conceptos
mobile-agent-profile
6
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 yenviarse dentro de un mensaje a la plataforma destino.
Sino se desharán todos los cambios.
La ventaja de utilizar mensajes ACL es que no esnecesario abrir otro canal de comunicación entreplataformas. La desventaja es que el rendimiento no esparticularmente alto debido al proceso de codificación ydecodificación del propio mensaje ACL.
Ejemplo gráfico de movilidad en Jade.
7
Soporte de la Movilidad en JADE java jade.Boot –host hostRemoto –container a1: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()
import jade.core.*;
8
API de JADE para Movilidad doMove(Location destino)
doClone(Location destino, String nombre)
Mover un agente implica enviar su código y su estado. JADEproporciona métodos para gestionar los recursos usadorpor el agente móvil. beforeClone() y afterClone()
beforeMove()
afterMove()
Ejemplo AgenteMovil. Un agente se mueve al contenedorindicado por el usuario para leer la información quecontiene un fichero remoto.
9
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. import jade.domain.mobility.*;
MobilityOntolgy contiene: mobile-agent-description
MobilityOntology.MobileAgentDescription
mobile-agent-profileMobilityOntology.MobileAgentProfile.
mobile-agent-systemMobilityOntology.MobileAgentSystem.
mobile-agent-languageMobilityOntology.MobileAgentLanguage.
mobile-agent-os MobilityOntology.MobileAgentOS.
10
Ontología JADE para Movilidad locationMobilityOntology.Location.
move-agentMobilityOntology.MoveAction.
clone-agentMobilityOntology.CloneAction.
where-is-agentMobilityOntology.WhereIsAgent.
query-platform-locationsMobilityOntology.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
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 import jade.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, class MoverAgenteBehaviour (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
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
Referencias Bibliográficas Giovanni Caire (TILab S.p.a), 2001 . Description of the examples:
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-Platform Mobility Project, Universidad Autonómica de Barcelona, 2006. Enlace: https://tao.uab.cat/ipmp/, último acceso 23 de mayo de 2010
14
Ejercicios Enviad el ejercicio de codificación completado y las
respuestas de las preguntas a la dirección de correo [email protected] indicando:
Nombre y apellidos.
D.N.I.
Grupo.
16