Java Agent Development Framework , o JADE , es un marco de software para el desarrollo de agentes inteligentes , implementado en Java . El sistema JADE soporta la coordinación entre varios agentes FIPA y proporciona una implementación estándar del lenguaje de comunicación FIPA-ACL , lo que facilita la comunicación entre agentes y permite la detección de servicios del sistema. JADE fue desarrollado originalmente por Telecom Italia y se distribuye como software gratuito .
Lanzamiento estable | 4.5.0 / 8 de junio de 2017 |
---|---|
Escrito en | Java |
Plataforma | Java SE |
Tipo | Sistema multiagente , marco de software |
Licencia | Licencia pública general reducida GNU |
Sitio web | jade |
Reanudar
JADE es un middleware que facilita el desarrollo de sistemas multiagente bajo el estándar FIPA para lo cual crea múltiples contenedores para agentes, cada uno de ellos puede ejecutarse en uno o más sistemas. Se entiende que un conjunto de contenedores constituye una plataforma.
JADE proporciona:
- Un entorno donde se ejecutan los agentes de JADE
- Bibliotecas de clases para crear agentes usando herencia y redefinición de comportamientos
- Un conjunto de herramientas gráficas para monitorear y administrar la plataforma de agentes inteligentes
Historia
JADE fue desarrollado inicialmente por Telecom Italia Lab. Este sector es la rama de I + D del Grupo Telecom Italia que se encarga de promover la innovación tecnológica. Telecom Italia concibió y promovió JADE basándolo en 2000. Las últimas fechas disponibles son de junio de 2017 (versión 4.5). La primera versión de JADE distribuida como software libre está disponible a partir de febrero de 2000 (versión 1.3).
En marzo de 2003, Motorola y Telecom Italia crearon la Junta de Gobierno de JADE con el objetivo de promover el desarrollo y la adopción de JADE en la industria de las telecomunicaciones móviles como middleware . La Junta de Gobierno de JADE acepta que cualquier empresa y / u organización interesada en el uso comercial y explotación de JADE se comprometa con su desarrollo y promoción.
Plataforma
JADE es una plataforma de agentes distribuidos, que tiene un contenedor para cada host donde se ejecutan los agentes. Adicionalmente, la plataforma cuenta con diversas herramientas de depuración, movilidad de código y agentes de contenido, posibilidad de ejecución paralela del comportamiento de los agentes, así como soporte para la definición de lenguajes y ontologías . Cada plataforma debe tener un contenedor principal que tenga dos agentes especiales llamados AMS y DF.
- El DF (Facilitador de directorio) proporciona un directorio que anuncia qué agentes están disponibles en la plataforma.
- El AMS (Agent Management System) controla la plataforma. Es el único que puede crear y destruir otros agentes, destruir contenedores y detener la plataforma.
Agente DF
Para acceder al agente DF se utiliza la clase "jade.domain.DFService" y sus métodos estáticos: registrar, dar de baja, modificar y Buscar .
Agente de AMS
Para acceder al Servicio AMS, se crea un agente que ejecuta automáticamente el método de registro del AMS de forma predeterminada antes de ejecutar la configuración del método desde el nuevo agente. Cuando un agente es destruido, ejecuta su método takeDown () de forma predeterminada y llama automáticamente al método de eliminación del registro del AMS.
Clase de agente
La clase Agent es una superclase que permite a los usuarios crear agentes JADE. Para crear un agente, es necesario heredar directamente del agente . Normalmente, cada agente registra varios servicios los cuales deben ser implementados por uno o más comportamientos.
Esta clase proporciona métodos para realizar las tareas básicas de los agentes como:
- Pasar mensajes por objetos ACLMessage, con coincidencia de patrones
- Apoyar el ciclo de vida de un agente
- Planifique y ejecute múltiples actividades al mismo tiempo
Agente de JADE
El ciclo de vida de un agente JADE sigue el ciclo propuesto por FIPA. Estos agentes pasan por diferentes estados definidos como:
- Iniciado: el agente ha sido creado pero aún no ha registrado el AMS.
- Activo: El agente se ha registrado y tiene un nombre. En este estado, puede comunicarse con otros agentes.
- Suspendido: el agente se detiene porque su hilo está suspendido.
- En espera: el agente está bloqueado esperando un evento.
- Eliminado: El agente ha terminado y su hilo terminó su ejecución y no hay más en el AMS.
- Tránsito: el agente se está mudando a una nueva ubicación.
Comportamiento de los agentes
El comportamiento define las acciones bajo un evento dado. Este comportamiento del agente se define en la configuración del método mediante el método addBehaviour . Los diferentes comportamientos que adoptará el agente se definen a partir de la clase abstracta Behavior. La clase Behavior contiene los métodos abstractos:
- action (): se ejecuta cuando se lleva a cabo la acción.
- done (): se ejecuta al final de la actuación.
Un usuario puede anular los métodos onStart () y la propiedad OnEnd () . Además, existen otros métodos como block () y restart () que se utilizan para modificar el comportamiento del agente. Cuando un agente está bloqueado, se puede desbloquear de diferentes formas. De lo contrario, el usuario puede anular los métodos onStart () y onEnd () que posee el agente.
Desbloquear un agente
- Recibir un mensaje.
- Cuando ocurre el tiempo de espera asociado con block ().
- Reinicio de llamada.
Mensajes de ACL
El paso de mensajes ACL (Agent Communication Language) es la base de la comunicación entre agentes. El envío de mensajes se realiza mediante el método send de la clase Agent. En este método, debe pasar un objeto de tipo ACLMessage que contiene la información del destinatario, el idioma, la codificación y el contenido del mensaje. Estos mensajes se envían de forma asincrónica, mientras se reciben los mensajes, se almacenarán en una cola de mensajes. Hay dos tipos de recepción de mensajes de ACL, con bloqueo o sin bloqueo. Para esto, proporcione los métodos blockReceive () y receive () respectivamente. En ambos métodos, puede hacer que los mensajes de filtrado se recuperen de la cola configurando diferentes plantillas.
Extensiones
JADE tiene una extensión denominada WADE (Workflows and Agents Development Environment) que es un sistema de workflow que permite crear procesos mediante un editor gráfico llamado WOLF.
Ver también
Referencias
- Archivo de noticias de Jade
- Guía del usuario de Wade
- Desarrollo de sistemas de agentes múltiples con JADE , Volumen 7 Serie Wiley en Tecnología de agentes, Fabio Luigi Bellifemine, Giovanni Caire, Dominic Greenwood ISBN 9780470058404
- Seguridad y confianza en middleware orientado a agentes , Sixth International, OTM 2003 Workshops. OTM 2003. Lecture Notes in Computer Science, vol 2889. Springer, Berlín, A Poggi, M Tomaiuolo, G Vitaglione. ISBN 978-3-540-20494-7