# SPADE

SPADE (del inglés "Smart Python multi-Agent Development Environment") es una plataforma libre de sistemas multi-agente desarrollada en Python y basada en la tecnología de mensajería instantánea XMPP. Algunas de las características más notables de la plataforma SPADE son: soporte de organizaciones virtuales, notificación de presencia, compatible con FIPA e independencia del lenguaje y la plataforma.

## Resumen

SPADE es una plataforma de sistemas multi-agente desarrollada en 2005 en la Universidad Politécnica de Valencia. La plataforma nació como una prueba de concepto para probar la tecnología de la mensajería instantánea como protocolo de transporte para los agentes inteligentes. Desde ese momento el proyecto ha seguido creciendo y añadiendo nuevas características aprovechando la flexibilidad del protocolo de mensajería instantánea basado en XML y la cantidad de extensiones desarrolladas para el mismo que son aprovechables dentro del marco de los sistemas multi-agente. La plataforma SPADE está basada en un conjunto de estándares, siendo los más destacables FIPA y XMPP/Jabber.

## Características

Las principales características de la plataforma SPADE son:
* Soporte del estándar FIPA mediante el protocolo de mensajería instantánea XMPP (Agentes AMS y DF incluidos)
* Notificación de presencia entre agentes.
* Organizaciones Virtuales basadas en el protocolo de multi-conferencia MUC.
* Comunicación P2P entre agentes.
* Invocación remota de servicios entre agentes usando el estándar XML-RPC.
* Procesadores de lenguajes de contenido en SL0 y RDF.
* Modelo de agente BDI basado en Conocimiento, Deseos e Intenciones.
* Modelo de comportamientos: Cíclicos, Periódicos, Timeout, una ejecución, máquina de estados finita y basado en eventos.
* Soporte de comunicación con otras plataformas mediante diversos protocolos de transporte: JADE (via HTTP o XMPP) y SIMBA.
* Publicación y subscripción de eventos mediante el estándar PubSub.
* Interfaz gráfica basada en web.

## Interfaz Gráfica

SPADE es una plataforma de agentes interoperable y multiplataforma, dado que el protocolo de comunicación está basado en XML y el lenguaje de implementación es Python. Del mismo modo la interfaz gráfica está basada en HTTP, siendo accesible desde multitud de dispositivos. Las características de la interfaz son las siguientes:
* La plataforma y los agentes exportan su propia interfaz web.
* La interfaz es configurable a través de plantillas.
* Cada agente exporta su identificador como un código QR.
* Instrospector de agente.
* Visor de mensajes enviados.
* Búsqueda de agentes y servicios.

## Publicaciones Relacionadas

* Gregori, Miguel; Palanca, Javier; Aranda, Gustavo (2006). «A jabber-based multi-agent system platform» (pdf). AAMAS '06: Proceedings of the fifth international joint conference on Autonomous agents and multiagent systems (Hakodate (Japón)): 1282-1284. ISBN 1-59593-303-4. doi:10.1145/1160633.1160866.
* Aranda, Gustavo; Palanca, Javier; Espinosa, Agustín; Terrasa, Andrés; García-Fornes, Ana (2006). «Towards Developing Multi-agent Systems in Ada» (pdf). Reliable Software Technologies – ADA-EUROPE 2006 (Oporto (Portugal)). 4006/2006: 131-142. doi:10.1007/11767077_11. (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
* Argente, Estefanía; Palanca, Javier; Aranda, Gustavo; Julián, Vicente; Botti, Vicent; García-Fornes, Ana; Espinosa, Agustín (2007). «Supporting Agent Organizations» (pdf). Multi-Agents Systems and Applications V. 4696/2007: 236-245. doi:10.1007/978-3-540-75254-7_24. (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
* Palanca, Javier; Escrivá, Miguel; Aranda, Gustavo; García-Fornes, Ana; Julián, Vicente; Botti, Vicent (2006). «Adding New Communication Services to the FIPA Message Transport System» (pdf). Multi-Agents System Technologies. 4196/2006: 1-11. doi:10.1007/11872283_1. (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).