Movilidad en JADECristina Campos CamposMª Luz López Jaspehttp://programacionjade.wikispaces.com/Movilidad1
Tabla de ContenidosSoporte de la movilidad en JADEAPI de JADE para movilidadOntología JADE para movilidadAccediendo al AMS para movilidadReferencias BibliográficasAgradecimientosEjercicios2
Soporte de la Movilidad en JADELa 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
Soporte de la Movilidad en JADEEsta 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
Soporte de la Movilidad en JADEVentajas:Proceso independiente y asíncronoTolerancia a fallosApropiados para conjuntos grandes de datosDesventajas:Escalabilidad y rendimientoSeguridadPortabilidad y estandarización5
Soporte de la Movilidad en JADEMovilidad 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:movepower-upAlgunos conceptos de la ontología aseguran la compatibilidad entre plataformas. Conceptos:mobile-agent-descriptionque contienen toda la información del agente. Estos conceptosmobile-agent-profile6
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
Soporte de la Movilidad en JADEjava jade.Boot –host hostRemoto –containera1:AgenteJADE 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
API de JADE para MovilidaddoMove(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
Ontología JADE para MovilidadPara 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.MobileAgentDescriptionmobile-agent-profile MobilityOntology.MobileAgentProfile.mobile-agent-system MobilityOntology.MobileAgentSystem.mobile-agent-language MobilityOntology.MobileAgentLanguage.mobile-agent-os  MobilityOntology.MobileAgentOS.10
Ontología JADE para Movilidadlocation 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 concreto11
Accediendo al AMS para MovilidadEl 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 migrarimportjade.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
Accediendo al AMS para MovilidadOtras 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áficasGiovanni Caire (TILabS.p.a), 2001 . Description of theexamples: Mobile. Enlace: http://jade.tilab.com/doc/examples/mobile.html, último acceso 23 de mayo de 2010Fabio 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 2010Jean 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 2010Inter-PlatformMobilityProject, Universidad Autonómica de Barcelona, 2006. Enlace: https://tao.uab.cat/ipmp/, último acceso 23 de mayo de 201014
AgradecimientosGracias a los todos los compañeros que han hecho esta wiki antes.15
EjerciciosEnviad 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

Movilidad en jade

  • 1.
    Movilidad en JADECristinaCampos CamposMª Luz López Jaspehttp://programacionjade.wikispaces.com/Movilidad1
  • 2.
    Tabla de ContenidosSoportede la movilidad en JADEAPI de JADE para movilidadOntología JADE para movilidadAccediendo al AMS para movilidadReferencias BibliográficasAgradecimientosEjercicios2
  • 3.
    Soporte de laMovilidad en JADELa 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 laMovilidad en JADEEsta 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 laMovilidad en JADEVentajas:Proceso independiente y asíncronoTolerancia a fallosApropiados para conjuntos grandes de datosDesventajas:Escalabilidad y rendimientoSeguridadPortabilidad y estandarización5
  • 6.
    Soporte de laMovilidad en JADEMovilidad 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:movepower-upAlgunos conceptos de la ontología aseguran la compatibilidad entre plataformas. Conceptos:mobile-agent-descriptionque contienen toda la información del agente. Estos conceptosmobile-agent-profile6
  • 7.
    Soporte de laMovilidad 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 laMovilidad en JADEjava jade.Boot –host hostRemoto –containera1:AgenteJADE 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 JADEpara MovilidaddoMove(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 paraMovilidadPara 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.MobileAgentDescriptionmobile-agent-profile MobilityOntology.MobileAgentProfile.mobile-agent-system MobilityOntology.MobileAgentSystem.mobile-agent-language MobilityOntology.MobileAgentLanguage.mobile-agent-os  MobilityOntology.MobileAgentOS.10
  • 11.
    Ontología JADE paraMovilidadlocation 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 concreto11
  • 12.
    Accediendo al AMSpara MovilidadEl 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 migrarimportjade.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 AMSpara MovilidadOtras 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áficasGiovanni Caire(TILabS.p.a), 2001 . Description of theexamples: Mobile. Enlace: http://jade.tilab.com/doc/examples/mobile.html, último acceso 23 de mayo de 2010Fabio 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 2010Jean 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 2010Inter-PlatformMobilityProject, Universidad Autonómica de Barcelona, 2006. Enlace: https://tao.uab.cat/ipmp/, último acceso 23 de mayo de 201014
  • 15.
    AgradecimientosGracias a lostodos los compañeros que han hecho esta wiki antes.15
  • 16.
    EjerciciosEnviad el ejerciciode 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