SlideShare una empresa de Scribd logo
1 de 16
Movilidad en JADE 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 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 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
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. 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
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 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
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
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
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
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
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 (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
Agradecimientos Gracias a los todos los compañeros que han hecho esta wiki antes. 15
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

Más contenido relacionado

Similar a Movilidad en jade

Presentacion servlets
Presentacion servletsPresentacion servlets
Presentacion servletssrcid
 
Semana 13 sistemas distribuidos
Semana 13   sistemas distribuidosSemana 13   sistemas distribuidos
Semana 13 sistemas distribuidosTerryJoss
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAbimael Desales López
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netAntonio Palomares Sender
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamientoRoberto Allende
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"Alberto Ruibal
 
Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olothojalataverde
 
Rmi remote method invocation
Rmi  remote method invocationRmi  remote method invocation
Rmi remote method invocationVERONICA PONCE
 
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...leofishman
 

Similar a Movilidad en jade (20)

Presentacion servlets
Presentacion servletsPresentacion servlets
Presentacion servlets
 
Semana 13 sistemas distribuidos
Semana 13   sistemas distribuidosSemana 13   sistemas distribuidos
Semana 13 sistemas distribuidos
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDB
 
Framework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .netFramework .NET 3.5 06 Operativa básica del framework .net
Framework .NET 3.5 06 Operativa básica del framework .net
 
Api geolocation
Api geolocationApi geolocation
Api geolocation
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"LabAndroid: Taller "Mi Primera Aplicación Android"
LabAndroid: Taller "Mi Primera Aplicación Android"
 
Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olot
 
RMI
RMIRMI
RMI
 
Ejemplosencillocon rmi
Ejemplosencillocon rmiEjemplosencillocon rmi
Ejemplosencillocon rmi
 
Capítulo 03 ambiente trabajo simio
Capítulo 03 ambiente trabajo simioCapítulo 03 ambiente trabajo simio
Capítulo 03 ambiente trabajo simio
 
Jade Introducción
Jade IntroducciónJade Introducción
Jade Introducción
 
Rmi remote method invocation
Rmi  remote method invocationRmi  remote method invocation
Rmi remote method invocation
 
Charla
CharlaCharla
Charla
 
Ajax
AjaxAjax
Ajax
 
GWT - Una introducción
GWT - Una introducciónGWT - Una introducción
GWT - Una introducción
 
04 actions
04 actions04 actions
04 actions
 
Clase servlet - Análisis de Sistemas
Clase servlet - Análisis de SistemasClase servlet - Análisis de Sistemas
Clase servlet - Análisis de Sistemas
 
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
ANDROID BOOTCAMP 101: MI PRIMERA APLICACIÓN ANDROID - CÓMO INICIAR UN EMPREND...
 

Movilidad en jade

  • 1. Movilidad en JADE Cristina Campos Campos Mª Luz López Jaspe http://programacionjade.wikispaces.com/Movilidad 1
  • 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
  • 15. Agradecimientos Gracias a los todos los compañeros que han hecho esta wiki antes. 15
  • 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