Post on 06-Feb-2016
description
JADE fue desarrollado inicialmente por Telecom Italia Lab.Telecon italia concibió y promovió JADE, fundándolo en el año 2000.En Marzo de 2003 Motorola y Telecon italia crearon la JADE Governing Board con el objetivo de promover la evolución y la adopción de JADE en la industria de las telecomunicaciones móviles como middleware de base
HISTORIA
INTRODUCCIÓN
JADE (Java Agent DEvelopment Framework) es una plataforma desarrollada íntegramente en Java para la creación de sistemas multi-agente.
Compuesto por:
Entorno de ejecución
Librerías JAVA para implementar agentes
Herramientas gráficas
Características:
Modelo peer-to-peer P2P
Interoperabilidad: basado en el estándar FIPA (Foundation for Intelligent Physical Agents)
Portabilidad
Intuitiva
CARACTERÍSTICAS
Los agentes tienen nombres únicos y proporcionan servicios.
Utilizan mensajes asíncronos, FIPA-ACL (Agent Comunication Language) como lenguaje de comunicación.
Cada agente se implementa como un thread
Distintas plataformas pueden comunicarse via protocolos http o iiop.
Incorpora un conjunto de agentes auxiliares
ESTÁNDARES
Foundation for Intelligent Physical Agents (FIPA) Arquitectura: Integración de diferentes
aplicaciones,
incluso con plataformas de diferentes propietarios. Lenguaje de comunicación empleado FIPA-ACL. 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, ...)
Se trata de una plataforma de agentes distribuida, que tiene un contenedor por cada host en el que se están ejecutando los agentes
PLATAFORMAS
Cada plataforma debe tener un contenedor principal que tiene dos agentes especiales denominados AMS y DF.
•El DF (Directory Facilitator) proporciona un directorio que anuncia qué agentes hay disponibles en la plataforma.
•El AMS (Agent Management System) controla la plataforma. Es el único que puede crear y destruir a otros agentes, destruir contenedores y parar la plataforma.
CLASE AGENT
La clase Agent es una super clase común que permite a los usuarios crear software de agentes JADE
Esta clase suministra métodos que permiten ejecutar las tareas básicas de los agentes como:
•Pasar mensajes utilizando objetos ACLMessage, con correspondencia de patrones.•Dar soporte al ciclo de vida de un agente.•Planificar y ejecutar múltiples actividades al mismo tiempo.
AGENTE JADE
El ciclo de vida de un agente JADE sigue el ciclo propuesto por FIPA. Estos agentes pasaran por diferentes estados definidos como:
1.Initiated/ Iniciado: El agente se ha creado pero no se ha registrado todavía el AMS.2.Active/ Activo: El agente ya ha sido registrado y posee nombre. En este estado puede comunicar con otros agentes.3.Suspended/ Suspendido: El agente se encuentra parado porque su hilo de ejecución se encuentra suspendida.4.Waiting/ Esperando: Se encuentra bloqueado a la espera de un suceso.5.Deleted/ Eliminado: El agente ha terminado por tanto el hilo terminó su ejecución y ya no estará más en el AMS.6.Transit/ Transito: El agente se está migrando a una nueva ubicación.
EXTENSIONES
JADE tiene una extensión denominada WADE (Workflows and Agents Development Environment) que es un sistema de WORFLOW que permite crear procesos mediante un editor gráfico llamado WOLF.
ENTORNO JADE
Los agentes necesitan del entorno de ejecución para poder “vivir”.
Contenedor: instancia del entorno de ejecución.
Plataforma: capa que oculta el entorno donde se ha
decidido ejecutar la aplicación, conjunto de contenedores activos, Main Container + Agentes
Auxiliares.
ENTORNO
RMA
Permite:
Iniciar, suspender, reiniciar agentes
Matar agentes o contenedores
Mandar mensajes
Clonar agentes
Añadir o quitar plataformas remotas
Arranque
java jade.Boot myConsole:jade.tools.rma.rma
java jade.Boot –gui (cuando se lanza JADE)
Dummy Agent
Permite de forma sencilla interactuar con agentes.
Componiendo y enviando mensajes ACL
Estos mensajes pueden ser almacenados y
empleados posteriormente
Puede ser iniciado desde el RMA
ENTORNO
Sniffer Agent
Es un agente que muestra las interacciones que se producen
Puede ser iniciado desde el RMA
El usuario selecciona que agentes desea monitorizar
Permite ver el contenido de cada mensaje
ENTORNO
DF GUI
Es un interfaz del Directory Facilitator
Permite:
Ver descripciones de los agentes registrados
Registrar y desregistrar agentes
Modificar registros
Buscar descripciones
Puede ser iniciado desde el RMA
ENTORNO
Introspector Agent
Permite monitorizar y controlar el ciclo de vida de un agente
Muestra las colas de entrada y salida de mensajes
Puede ser iniciado desde el RMA
ENTORNO
ESTRUCTURA AGENTE
Un agente JADE es una instancia de una clase de JAVA definida por el usuario que extiende la clase AGENTE básica.
public class MI_AGENTE extends Agent { ... El ciclo de vida de un agente JADE sigue el ciclo
de FIPA El método setup es donde se inicializa el agente Las tareas que realiza un agente en JADE se
estructuran en comportamientos
package ej01;import jade.core.Agent;public class Ejercicio01 extends Agent {protected void setup() {System.out.println(“Hola Mundo.”);}}
Debemos de crear un agente cuya misiónsea imprimir un “Hola Mundo”
EJEMPLO