SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Sistemas Multiagente
5º curso: Ingeniería Informática

       Pedro Cuesta Morales
 Área de Linguaxes e Sistemas Informáticos
        Departamento de Informática
  Escola Superior de Enxeñería Informática
            Universidade de Vigo
JADE
1.   ¿Qué es JADE?
2.   Plataforma de agentes
3.   Servicio de transporte de mensajes
4.   Modelo de comunicación
5.   Agentes JADE
6.   Herramientas gráficas
7.   ¿Cómo ejecutar JADE?
8.   Campos de aplicación

               Pedro Cuesta Morales - LSI
1. ¿Qué es JADE?
Java Agent DEvelopment Framework
  Herramienta de desarrollo de sistemas
  multiagente
  Totalmente implementada en JAVA
  Cumple con las especificaciones FIPA
  Lenguaje de comunicación empleado
  FIPA-ACL
  Software libre distribuido por TILAB en
  código fuente bajo LPGL

             Pedro Cuesta Morales - LSI
1. ¿Qué es JADE?
Objetivo: simplificar la implementación de
sistemas multiagente (MAS)
Puede considerarse un “middleware” de
agentes que implementa:
 • Una plataforma de agentes (entorno ejecución)
 • Un framework de desarrollo (librería de clases)
Servicios de agentes: ciclo de vida, páginas
blancas, páginas amarillas, transporte de
mensajes,...
Conjunto de herramientas gráficas que
soportan la depuración y ejecución de
agentes (RMA, sniffer, ...)
              Pedro Cuesta Morales - LSI
2. Plataforma de agentes
Plataforma de agentes puede ser distribuida
entre diferentes host (pueden tener diferente
SO) y la configuración puede controlarse a
través de una interfaz gráfica de usuario
remota
La configuración puede incluso cambiarse en
tiempo de ejecución moviendo agentes de
una máquina a otra cuando se necesite
JADE + librerías LEAP     plataforma de
agentes compatible con entornos Java
móviles (J2ME-CLDC MIDP 1.0.)

             Pedro Cuesta Morales - LSI
2. Plataforma de agentes
Cada instancia del entorno de ejecución JADE se
llama contenedor, y puede albergar diferentes
agentes
El conjunto de contenedores activos forman una
plataforma
 En cada plataforma debe haber siempre activo un
contenedor principal
  • Debe ser el primer contenedor en ejecutarse
  • El resto de contenedores se registran en él al comenzar su
    ejecución
El primer contenedor que arranca en una plataforma
debe ser el contenedor principal

                  Pedro Cuesta Morales - LSI
Ejemplo de contenedores y plataformas




           Pedro Cuesta Morales - LSI
Arquitectura distribuida de
              la plataforma JADE




En el contenedor principal es donde se crean el AMS y el DF
                     Pedro Cuesta Morales - LSI
2. Plataforma de agentes
      Cumple con las especificaciones
      FIPA, incluye todos los componentes
      obligatorios para la gestión de la
      plataforma (ACC, AMS, DF)




      Pedro Cuesta Morales - LSI
Arquitectura interna de la
        plataforma de ejecución JADE


    Agent              Directory
  Management           Facilitator
    System
  White page          Yellow page
   service              service


                                                    cache of
         Agent Communication Channel             agent addresses

 Intra-Container    Inter-Containers          Inter-Platforms
Message Transport   Message Transport        Message Transport
   (Java events)       (Java RMI)            (IIOP, HTTP, …)



                    Pedro Cuesta Morales - LSI
2. Plataforma de agentes
AMS – Agent Management System:
  • Garantiza que cada agente en la plataforma tenga un
    único nombre
  • Encargado de proporcionar los servicios de páginas
    blancas y ciclo de vida, y de mantener el directorio de los
    identificadores de agentes (AID: Agent Identifier) y su
    estado.
  • Cada agente debe registrarse con el AMS para obtener un
    AID válido
DF – Directory Facilitator:
  • Agente que proporciona el servicio de páginas amarillas.
    Un agente puede encontrar otros agentes que
    proporcionan los servicios que requiere para cumplir sus
    objetivos
ACC – Agent Communication Channel:
  • Software que controla el intercambio de mensajes
                   Pedro Cuesta Morales - LSI
3. Servicio de transporte de mensajes
La arquitectura de comunicación ofrece un
mecanismo de paso de mensajes flexible y eficiente
  • JADE crea y gestiona una cola de mensajes de entrada
    privados a cada agente
  • Los agentes acceden a su cola a través de una
    combinación de diferentes modos (blocking, polling,
    timeout and pattern matching based)
El protocolo de transporte se adapta (es como un
camaleón) a cada situación eligiendo
transparentemente el mejor protocolo disponible:
  • Usados actualmente: Java RMI, event-notification, HTTP, y
    IIOP.
  • Otros protocolos pueden añadirse a través de las
    interfaces MTP y IMTP JADE.


                 Pedro Cuesta Morales - LSI
4. Modelo de comunicación
Los agentes envían/reciben objetos java que
representan mensajes ACL, dentro del
alcance de los protocolos de interaccion.
JADE proporciona una librería con la mayoría
de los protocolos de interacción definidos por
FIPA
 • Los usuarios sólo necesitan implementar los
   manejadores de métodos
También se han implementado SL y gestión
de ontologías de agentes, así como el
soporte para lenguajes de contenido y
ontologías definidos por el usuario
             Pedro Cuesta Morales - LSI
5. Agentes JADE
El agente es autónomo
 • Se implementa como un hilo de ejecución propio
 • Decide por si mismo cuando leer los mensajes y
   qué mensajes leer
Los agentes pueden necesitar concurrencia
 • Pueden entablar varias conversaciones
   simultaneas
 • Pueden ejecutar varias tareas concurrentes




               Pedro Cuesta Morales - LSI
Arquitectura interna de un agente JADE




             Pedro Cuesta Morales - LSI
6. Herramientas gráficas

                                   RMA
                                   GUI DF
                                   Dummy agent
                                   Sniffer agent
                                   Introspector agent




      Pedro Cuesta Morales - LSI
6.1. RMA (Remote Monitoring Agent)
Permite de manera remota la gestión, monitorización
y el control del estado de los agentes, permitiendo
por ejemplo:
  • Iniciar la ejecución de un agente
  • Parar y reiniciar agentes
  • Enviar mensajes, ...




                  Pedro Cuesta Morales - LSI
6.2. GUI DF (Directory Facilitator)
  Permite al usuario interactuar con el DF:
                                   • Ver las descripciones de
                                     agentes registrados
                                   • Registrar y desregistrar
                                     agentes
                                   • Modificar la descripción de
                                     agentes registrados
                                   • Buscar descripciones de
                                     agentes
                                   • Federar el DF con otros
                                     DF’s y crear una red de
                                     dominios y subdominios
                                     de páginas amarillas


                Pedro Cuesta Morales - LSI
6.3. Dummy Agent
                                Es una herramienta
                                útil para inspeccionar
                                los mensajes
                                intercambiados entre
                                agentes.
                                Permite editar,
                                componer y enviar
                                mensajes ACL a
                                agentes
                                Recibir y visualizar
                                mensajes de otros
                                agentes
                                (almacenar/recuperar
                                los mensajes)

   Pedro Cuesta Morales - LSI
6.4. Sniffer Agent
Es un agente que muestra los mensajes intercambiados en una
plataforma de agentes JADE
El usuario decide que agentes o grupo de agentes “husmear”
Estos mensajes se pueden visualizar o almacenar para su
posterior recuperación




                 Pedro Cuesta Morales - LSI
6.5. Introspector agent
Permite monitorizar y controlar el ciclo de vida de un
agente y sus mensajes intercambiados
Muestra las colas de entrada y salida de mensajes




               Pedro Cuesta Morales - LSI
7. ¿Cómo ejecutar JADE?
Los agentes Jade se ejecutan dentro de contenedores
gestionados por la plataforma.
  • A través de los contenedores se les proporcionan los servicios
    básicos (ciclo de vida, transporte de mensajes, ...)
Ejecutar:
  java jade.Boot [options] [AgentSpecifier list]
Opciones principales:
  •   -container (si es distinto del principal)
  •   -host (nombre del host)
  •   -port (puerto, por defecto es el 1099)
  •   -name (nombre de la plataforma)
  •   -gui (lanza el RMA)


                        Pedro Cuesta Morales - LSI
7. ¿Cómo ejecutar JADE?
[AgentSpecifier list] es una lista de string
separada por espacios donde cada string:

  NombreAgente:ClaseAgente (Argumentos)

  NombreAgente nombre del agente en la
    plataforma
  ClaseAgente nombre cualificado de la clase que
    implementa el agente
  Argumentos lista de argumentos que se pasan al
    agente en su construcción

                 Pedro Cuesta Morales - LSI
Ejemplo: PingAgent
Prompt>java jade.Boot –gui
  Lanza la plataforma Jade y el contenedor principal (RMA, ams, df)
Prompt>java jade.Boot –container
   agenteping:examples.PingAgent.PingAgent
  Lanza en la plataforma principal otro contenedor con agenteping




                      Pedro Cuesta Morales - LSI
Ejemplo: PingAgent
Funcionamiento PingAgent:
 • Este agente se registra en el DF y espera
   recibir mensajes ACL
 • Si recibe un mensaje QUERY_REF con el
   contenido quot;pingquot; responde con un mensaje
   INFORM con el contenido “alivequot;
 • Para cualquier otro mensaje recibido, salvo
   NOT-UNDERSTOOD, responde con un
   mensaje NOT-UNDERSTOOD


             Pedro Cuesta Morales - LSI
Ejemplo: PingAgent




   Pedro Cuesta Morales - LSI

Weitere ähnliche Inhalte

Was ist angesagt?

Metodología xp
Metodología xpMetodología xp
Metodología xpPiskamen
 
Documentos de analisis de requerimientos
Documentos de analisis de requerimientosDocumentos de analisis de requerimientos
Documentos de analisis de requerimientosMilton Garzon
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicasAny Saula
 
Rmi remote method invocation
Rmi  remote method invocationRmi  remote method invocation
Rmi remote method invocationVERONICA PONCE
 
Proceso de arranque de un router
Proceso de arranque de un routerProceso de arranque de un router
Proceso de arranque de un routerAna Ivonne Val
 
Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon oswaldoyuneri
 
Bases de Datos Distribuidas
Bases de Datos DistribuidasBases de Datos Distribuidas
Bases de Datos DistribuidasMiguel Serrano E
 
Ventajas del pseudocódigo sobre los diagramas de flujo
Ventajas del pseudocódigo sobre los diagramas de flujoVentajas del pseudocódigo sobre los diagramas de flujo
Ventajas del pseudocódigo sobre los diagramas de flujoHamilton Flores
 
Lenguaje de programación JAVA
Lenguaje de programación JAVALenguaje de programación JAVA
Lenguaje de programación JAVAjosehpxxx
 
Inyeccion sql
Inyeccion sqlInyeccion sql
Inyeccion sqlobispo28
 
Jade 1 Agents principios básicos
Jade 1 Agents principios básicosJade 1 Agents principios básicos
Jade 1 Agents principios básicosOctavio Abundez
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de softwareEdgardo Rojas
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de softwareisisparada
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekkernerexi
 

Was ist angesagt? (20)

Metodología xp
Metodología xpMetodología xp
Metodología xp
 
Documentos de analisis de requerimientos
Documentos de analisis de requerimientosDocumentos de analisis de requerimientos
Documentos de analisis de requerimientos
 
Java y sus caracteristicas
Java y sus caracteristicasJava y sus caracteristicas
Java y sus caracteristicas
 
Rmi remote method invocation
Rmi  remote method invocationRmi  remote method invocation
Rmi remote method invocation
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
proceso unificado de desarrollo
proceso unificado de desarrollo proceso unificado de desarrollo
proceso unificado de desarrollo
 
Proceso de arranque de un router
Proceso de arranque de un routerProceso de arranque de un router
Proceso de arranque de un router
 
Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon
 
Bases de Datos Distribuidas
Bases de Datos DistribuidasBases de Datos Distribuidas
Bases de Datos Distribuidas
 
Ventajas del pseudocódigo sobre los diagramas de flujo
Ventajas del pseudocódigo sobre los diagramas de flujoVentajas del pseudocódigo sobre los diagramas de flujo
Ventajas del pseudocódigo sobre los diagramas de flujo
 
Polimorfismo en Java
Polimorfismo en JavaPolimorfismo en Java
Polimorfismo en Java
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Lenguaje de programación JAVA
Lenguaje de programación JAVALenguaje de programación JAVA
Lenguaje de programación JAVA
 
Inyeccion sql
Inyeccion sqlInyeccion sql
Inyeccion sql
 
Jade 1 Agents principios básicos
Jade 1 Agents principios básicosJade 1 Agents principios básicos
Jade 1 Agents principios básicos
 
Plan de pruebas de software
Plan de pruebas de softwarePlan de pruebas de software
Plan de pruebas de software
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Metricas de calidad de software
Metricas de calidad de softwareMetricas de calidad de software
Metricas de calidad de software
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
 
Android studio
Android studioAndroid studio
Android studio
 

Ähnlich wie La herramienta de desarrollo de agentes Jade

La herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADELa herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADEpcuestaesei
 
UIMP: Taller de Sistemas MultiAgente
UIMP: Taller de Sistemas MultiAgenteUIMP: Taller de Sistemas MultiAgente
UIMP: Taller de Sistemas MultiAgenteGerardo DeMiguel
 
Conceptos Básicos
Conceptos BásicosConceptos Básicos
Conceptos Básicosfredur
 
Primera Unidad de los Sistemas Operativos
Primera Unidad de los Sistemas OperativosPrimera Unidad de los Sistemas Operativos
Primera Unidad de los Sistemas OperativosAreli996
 
Presentacion De Operacion
Presentacion De OperacionPresentacion De Operacion
Presentacion De Operaciongueste800a9
 
Presentacion De Operacion
Presentacion De OperacionPresentacion De Operacion
Presentacion De Operaciongueste800a9
 
Servidor de impresiones segundo parcial
Servidor de impresiones segundo parcialServidor de impresiones segundo parcial
Servidor de impresiones segundo parcialJesus Garcia Guevara
 
1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)JavierMponfellis
 
Sistema operativo p31p 3c
Sistema operativo p31p 3cSistema operativo p31p 3c
Sistema operativo p31p 3cchynyz98
 
Traducción bc360
Traducción bc360Traducción bc360
Traducción bc360yanirapm
 

Ähnlich wie La herramienta de desarrollo de agentes Jade (20)

La herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADELa herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADE
 
Reporte 4
Reporte 4Reporte 4
Reporte 4
 
Presentacion jade
Presentacion jadePresentacion jade
Presentacion jade
 
UIMP: Taller de Sistemas MultiAgente
UIMP: Taller de Sistemas MultiAgenteUIMP: Taller de Sistemas MultiAgente
UIMP: Taller de Sistemas MultiAgente
 
Agentes moviles
Agentes movilesAgentes moviles
Agentes moviles
 
Investigacion
InvestigacionInvestigacion
Investigacion
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
rojas landa vanessa.pdf
rojas landa vanessa.pdfrojas landa vanessa.pdf
rojas landa vanessa.pdf
 
Conceptos Básicos
Conceptos BásicosConceptos Básicos
Conceptos Básicos
 
Primera Unidad de los Sistemas Operativos
Primera Unidad de los Sistemas OperativosPrimera Unidad de los Sistemas Operativos
Primera Unidad de los Sistemas Operativos
 
Tema 1 (1)
Tema 1 (1)Tema 1 (1)
Tema 1 (1)
 
Presentacion De Operacion
Presentacion De OperacionPresentacion De Operacion
Presentacion De Operacion
 
Presentacion De Operacion
Presentacion De OperacionPresentacion De Operacion
Presentacion De Operacion
 
SimpleSAMLphp
SimpleSAMLphpSimpleSAMLphp
SimpleSAMLphp
 
Servidor de impresiones segundo parcial
Servidor de impresiones segundo parcialServidor de impresiones segundo parcial
Servidor de impresiones segundo parcial
 
Servidor de impresiones
Servidor de impresionesServidor de impresiones
Servidor de impresiones
 
Cpods training-metasploit
Cpods training-metasploitCpods training-metasploit
Cpods training-metasploit
 
1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)1 corte de plataforma(javier mponfellis y jesus gonzalez)
1 corte de plataforma(javier mponfellis y jesus gonzalez)
 
Sistema operativo p31p 3c
Sistema operativo p31p 3cSistema operativo p31p 3c
Sistema operativo p31p 3c
 
Traducción bc360
Traducción bc360Traducción bc360
Traducción bc360
 

Kürzlich hochgeladen

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 

Kürzlich hochgeladen (10)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

La herramienta de desarrollo de agentes Jade

  • 1. Sistemas Multiagente 5º curso: Ingeniería Informática Pedro Cuesta Morales Área de Linguaxes e Sistemas Informáticos Departamento de Informática Escola Superior de Enxeñería Informática Universidade de Vigo
  • 2. JADE 1. ¿Qué es JADE? 2. Plataforma de agentes 3. Servicio de transporte de mensajes 4. Modelo de comunicación 5. Agentes JADE 6. Herramientas gráficas 7. ¿Cómo ejecutar JADE? 8. Campos de aplicación Pedro Cuesta Morales - LSI
  • 3. 1. ¿Qué es JADE? Java Agent DEvelopment Framework Herramienta de desarrollo de sistemas multiagente Totalmente implementada en JAVA Cumple con las especificaciones FIPA Lenguaje de comunicación empleado FIPA-ACL Software libre distribuido por TILAB en código fuente bajo LPGL Pedro Cuesta Morales - LSI
  • 4. 1. ¿Qué es JADE? Objetivo: simplificar la implementación de sistemas multiagente (MAS) Puede considerarse un “middleware” de agentes que implementa: • Una plataforma de agentes (entorno ejecución) • Un framework de desarrollo (librería de clases) Servicios de agentes: ciclo de vida, páginas blancas, páginas amarillas, transporte de mensajes,... Conjunto de herramientas gráficas que soportan la depuración y ejecución de agentes (RMA, sniffer, ...) Pedro Cuesta Morales - LSI
  • 5. 2. Plataforma de agentes Plataforma de agentes puede ser distribuida entre diferentes host (pueden tener diferente SO) y la configuración puede controlarse a través de una interfaz gráfica de usuario remota La configuración puede incluso cambiarse en tiempo de ejecución moviendo agentes de una máquina a otra cuando se necesite JADE + librerías LEAP plataforma de agentes compatible con entornos Java móviles (J2ME-CLDC MIDP 1.0.) Pedro Cuesta Morales - LSI
  • 6. 2. Plataforma de agentes Cada instancia del entorno de ejecución JADE se llama contenedor, y puede albergar diferentes agentes El conjunto de contenedores activos forman una plataforma En cada plataforma debe haber siempre activo un contenedor principal • Debe ser el primer contenedor en ejecutarse • El resto de contenedores se registran en él al comenzar su ejecución El primer contenedor que arranca en una plataforma debe ser el contenedor principal Pedro Cuesta Morales - LSI
  • 7. Ejemplo de contenedores y plataformas Pedro Cuesta Morales - LSI
  • 8. Arquitectura distribuida de la plataforma JADE En el contenedor principal es donde se crean el AMS y el DF Pedro Cuesta Morales - LSI
  • 9. 2. Plataforma de agentes Cumple con las especificaciones FIPA, incluye todos los componentes obligatorios para la gestión de la plataforma (ACC, AMS, DF) Pedro Cuesta Morales - LSI
  • 10. Arquitectura interna de la plataforma de ejecución JADE Agent Directory Management Facilitator System White page Yellow page service service cache of Agent Communication Channel agent addresses Intra-Container Inter-Containers Inter-Platforms Message Transport Message Transport Message Transport (Java events) (Java RMI) (IIOP, HTTP, …) Pedro Cuesta Morales - LSI
  • 11. 2. Plataforma de agentes AMS – Agent Management System: • Garantiza que cada agente en la plataforma tenga un único nombre • Encargado de proporcionar los servicios de páginas blancas y ciclo de vida, y de mantener el directorio de los identificadores de agentes (AID: Agent Identifier) y su estado. • Cada agente debe registrarse con el AMS para obtener un AID válido DF – Directory Facilitator: • Agente que proporciona el servicio de páginas amarillas. Un agente puede encontrar otros agentes que proporcionan los servicios que requiere para cumplir sus objetivos ACC – Agent Communication Channel: • Software que controla el intercambio de mensajes Pedro Cuesta Morales - LSI
  • 12. 3. Servicio de transporte de mensajes La arquitectura de comunicación ofrece un mecanismo de paso de mensajes flexible y eficiente • JADE crea y gestiona una cola de mensajes de entrada privados a cada agente • Los agentes acceden a su cola a través de una combinación de diferentes modos (blocking, polling, timeout and pattern matching based) El protocolo de transporte se adapta (es como un camaleón) a cada situación eligiendo transparentemente el mejor protocolo disponible: • Usados actualmente: Java RMI, event-notification, HTTP, y IIOP. • Otros protocolos pueden añadirse a través de las interfaces MTP y IMTP JADE. Pedro Cuesta Morales - LSI
  • 13. 4. Modelo de comunicación Los agentes envían/reciben objetos java que representan mensajes ACL, dentro del alcance de los protocolos de interaccion. JADE proporciona una librería con la mayoría de los protocolos de interacción definidos por FIPA • Los usuarios sólo necesitan implementar los manejadores de métodos También se han implementado SL y gestión de ontologías de agentes, así como el soporte para lenguajes de contenido y ontologías definidos por el usuario Pedro Cuesta Morales - LSI
  • 14. 5. Agentes JADE El agente es autónomo • Se implementa como un hilo de ejecución propio • Decide por si mismo cuando leer los mensajes y qué mensajes leer Los agentes pueden necesitar concurrencia • Pueden entablar varias conversaciones simultaneas • Pueden ejecutar varias tareas concurrentes Pedro Cuesta Morales - LSI
  • 15. Arquitectura interna de un agente JADE Pedro Cuesta Morales - LSI
  • 16. 6. Herramientas gráficas RMA GUI DF Dummy agent Sniffer agent Introspector agent Pedro Cuesta Morales - LSI
  • 17. 6.1. RMA (Remote Monitoring Agent) Permite de manera remota la gestión, monitorización y el control del estado de los agentes, permitiendo por ejemplo: • Iniciar la ejecución de un agente • Parar y reiniciar agentes • Enviar mensajes, ... Pedro Cuesta Morales - LSI
  • 18. 6.2. GUI DF (Directory Facilitator) Permite al usuario interactuar con el DF: • Ver las descripciones de agentes registrados • Registrar y desregistrar agentes • Modificar la descripción de agentes registrados • Buscar descripciones de agentes • Federar el DF con otros DF’s y crear una red de dominios y subdominios de páginas amarillas Pedro Cuesta Morales - LSI
  • 19. 6.3. Dummy Agent Es una herramienta útil para inspeccionar los mensajes intercambiados entre agentes. Permite editar, componer y enviar mensajes ACL a agentes Recibir y visualizar mensajes de otros agentes (almacenar/recuperar los mensajes) Pedro Cuesta Morales - LSI
  • 20. 6.4. Sniffer Agent Es un agente que muestra los mensajes intercambiados en una plataforma de agentes JADE El usuario decide que agentes o grupo de agentes “husmear” Estos mensajes se pueden visualizar o almacenar para su posterior recuperación Pedro Cuesta Morales - LSI
  • 21. 6.5. Introspector agent Permite monitorizar y controlar el ciclo de vida de un agente y sus mensajes intercambiados Muestra las colas de entrada y salida de mensajes Pedro Cuesta Morales - LSI
  • 22. 7. ¿Cómo ejecutar JADE? Los agentes Jade se ejecutan dentro de contenedores gestionados por la plataforma. • A través de los contenedores se les proporcionan los servicios básicos (ciclo de vida, transporte de mensajes, ...) Ejecutar: java jade.Boot [options] [AgentSpecifier list] Opciones principales: • -container (si es distinto del principal) • -host (nombre del host) • -port (puerto, por defecto es el 1099) • -name (nombre de la plataforma) • -gui (lanza el RMA) Pedro Cuesta Morales - LSI
  • 23. 7. ¿Cómo ejecutar JADE? [AgentSpecifier list] es una lista de string separada por espacios donde cada string: NombreAgente:ClaseAgente (Argumentos) NombreAgente nombre del agente en la plataforma ClaseAgente nombre cualificado de la clase que implementa el agente Argumentos lista de argumentos que se pasan al agente en su construcción Pedro Cuesta Morales - LSI
  • 24. Ejemplo: PingAgent Prompt>java jade.Boot –gui Lanza la plataforma Jade y el contenedor principal (RMA, ams, df) Prompt>java jade.Boot –container agenteping:examples.PingAgent.PingAgent Lanza en la plataforma principal otro contenedor con agenteping Pedro Cuesta Morales - LSI
  • 25. Ejemplo: PingAgent Funcionamiento PingAgent: • Este agente se registra en el DF y espera recibir mensajes ACL • Si recibe un mensaje QUERY_REF con el contenido quot;pingquot; responde con un mensaje INFORM con el contenido “alivequot; • Para cualquier otro mensaje recibido, salvo NOT-UNDERSTOOD, responde con un mensaje NOT-UNDERSTOOD Pedro Cuesta Morales - LSI
  • 26. Ejemplo: PingAgent Pedro Cuesta Morales - LSI