Lenguajes de Comunicación, Protocolos y Plataforma JADE UCR ECCI PF-3874 Tecnologías para el Desarrollo de Sistemas Multi-Agente Prof. M.Sc. Kryscia Daviana Ramírez Benavides
FIPA The Foundation for Intelligent Physical Agents Fundación sin fines de lucro fundada en 1995. En la actualidad cuenta con aproximadamente 65 miembros. Misión: Promocionar las tecnologías y la especificaciones de interoperabilidad que faciliten la interconexión de sistemas de agentes inteligentes en ámbitos comercionales e industriales. 2
FIPA The Foundation for Intelligent Physical Agents FIPA define estándares que incluyen: Especificaciones de administración de agentes. Especificaciones de comunicación de agentes. Especificaciones de protocolos de interacción. Propuso el primer estándar en 1997: FIPA97 Ha propuesto desde entonces: FIPA98. FIPA2000. 3
Áreas de Estandarización Comunicación entre agentes Distribución de tareas. Administración de recursos. Agente del usuario Negociación. Soporte al usuario. Administración de perfil. Administración del flujo de trabajo. Administración de agentes Mantenimiento del directorio de agentes con nombres, cualidades, etc. Sistemas de agentes cruzados. Tareas del agente Planificación y ejecución de tareas específicas. Sistemas de software existentes Integración Agente / SW Agent Wrappers. Software heterogéneo. 4
Arquitectura Propuesta Agent Managment Specification: Modelo de referencia de la plataforma de agentes Plataforma Agente AMS DF Canal de Comunicación (ACC) 5
Arquitectura Propuesta (cont.) AMS (Agent Management System): Administra el ciclo de vida, los recursos, los canales de comunicación y un servicio de páginas blancas. DF (Directory Facilitator): Servicio de páginas amarillas. ACC (Agent Communication Channel): Administra el envío de mensajes y administra la migración de agentes. 6
Modelo Conceptual de Comunicación EnvelopeEncodingScheme Envelope 1 istransmittedover 1 TransportProtocol 1 contains ACLEncodingScheme 1..* Message 1 isexpressedin 1 ACL CLEncodingScheme 1 contains 1 Content isexpressedin 1 1 ContentLanguage SL 1 contains 0..* InteractionProtocol Symbol belongsto 1..* 1 Ontology 7
Lenguaje para Comunicación entre Agentes ACL: Agent Communication Language. El paquete ACL define aspectos como: Agente que envía la información. Agente(s) a quien se les envía. Ontología asociada. Actos comunicativos (Estándar). Contenido del mensaje en algún lenguaje de contenido como SL (Semantic Language). 8
Protocolos de FIPA Los Protocolos de Iteración de FIPA (FIPA Interaction Protocols IP) tratará de requisitos con los protocolos de intercambio acordado previamente las páginas de mensajes ACL. En el siguiente link están las especificaciones relativos a IP preliminares, de experimentación y estándar. http://www.fipa.org/repository/ips.php3. 9
Tipos de Mensajes (Actos Comunicativos) accept-proposal not-understood agree propagate cancel propose cfp (call for proposal) proxy confirm query-if disconfirm query-ref failure request inform request-when inform-it request-whenever inform-ref subscribe 10
Actos Comunicativos Accept-proposal: Aceptación de una propuesta para realizar cierta acción. Respuesta a propose. Agree: Acuerdo para realizar cierta acción. Respuesta a request. Cancel: Informa de a un agente que el emisor no tiene intención de que el segundo efectúe cierta acción. Forma parte de un meta-protocolo. 11
Actos Comunicativos (cont.) Call-for-proposal: Pide candidaturas para realizar cierta acción. Inicia procesos de negociación. Confirm: Informa al receptor de que cierta proposición es cierta, siempre que sea cierto que el receptor tiene incertidumbre sobre ella. Disconfirm: El emisor cree en esa proposición, Pretende que el receptor lo crea también, y Cree que el receptor esta incierto sobre ella. Contrario de Confirm. 12
Actos Comunicativos (cont.) Failure: Informa que se intentó cierta acción pero falló. En consecuencia: Inform: El receptor creerá que la acción no se ha hecho, y que la acción es (o era) factible. Informa al receptor de que cierta proposición es cierta. El emisor cree en esa proposición, pretende que el receptor también lo crea, y No sabe si el receptor lo sabe también. 13
Actos Comunicativos (cont.) Inform-if: (macro) Informa al receptor de su creencia o descreencia de cierta proposición. Se resolverá en un inform de la proposición o de su negado, según sea. Inform-ref: Comunica al receptor una descripción referencial de un objeto (p.ej. un nombre). Se conoce como macro, ya que se puede codificar con varios inform bajo la hipótesis de mundo cerrado. 14
Actos Comunicativos (cont.) Not-understood: Informa al receptor que recibió cierta petición de acción pero que no la entendió. Usualmente para indicar que no se entendió un mensaje. Propagate: El receptor recibe un mensaje y además debe propagarlo al resto de la lista de receptores. Propose: Se remite una propuesta para realizar cierta acción bajo ciertas precondiciones. 15
Actos Comunicativos (cont.) Proxy: El emisor quiere que el receptor (broker,...) seleccione agentes objetivo a partir de cierta descripción y les envíe cierto mensaje. Puede contener un reply-to, para indicar otro receptor de la respuesta de los agentes objetivo. Query-if: Pregunta a otro agente si cierta proposición es cierta o no. Query-ref: Pide a otro agente un objeto denotado por cierta expresión referencial. 16
Actos Comunicativos (cont.) Refuse: Acción de rehusar realizar cierta acción y la explicación. Reject-proposal: Acción de rechazar una propuesta para realizar alguna acción durante una negociación. Request: El emisor desea que el receptor realice cierta acción. Un ámbito importante es el caso de pedir al receptor que realice cierto acto comunicativo. 17
Actos Comunicativos (cont.) Request-when: Se desea que el receptor realice cierta acción tan pronto cuando cierta proposición sea cierta Puede cancelarse con cancel. Request-whenever: Igual que request-when pero continuamente. Subscribe: Subscripción a notificaciones de cambios en cierto objeto. Se devuelve el objeto. Puede cancelarse. 18
Ejemplo de Interacción entre Agentes Descripción: Representa una región específica (Puerto Viejo en este caso). Conoce las actividades que se pueden realizar en dicha región. AgentePV Comportamiento: - Preparar respuestas a agente que consulta INFORM (actividad a se realiza en región r) NOT (actividad a se realiza en región r) QUERY-IF (actividad a se realiza en región r) Descripción: Interactúa con el usuario. Usuario hace consultas. AgenteR Comportamientos: -Administrar agente (OnStart, OnEnd, reset, etc.) -Realizar consultas SeRealizaEn (verificar si una actividad se realiza en una región) 19
JADE: Java Agent Devepment Framework Es un middleware para SMA (MAS Multi-Agent System). Implementa una serie de servicios para agentes: Ciclo de vida, páginas blancas, páginas amarillas, transporte y codificación de mensajes. Implementación sigue todos los estándares de FIPA. Está implementado totalmente en JAVA. Es Open Source. 20
host1.it host2.jp host3.us Application Agent Application Agent Application Agent Application Agent Application Agent Application Agent Application Agent Jade distributed Agent Platform Jade Main-container Jade Agent Container Jade Agent Container JRE 1.2 JRE 1.2 JRE 1.2 Network protocol stack 21
Arquitectura de JADE 22
Comunicación entre Plataformas La comunicación entre agentes puede ser: Intra-plataforma. Entre plataformas. Utiliza ACC y protocolos de FIPA para transporte de mensajes. Ambiente en cada plataforma: Diferentes lenguajes. Diferente arquitectura. Servicios comunes. Transporte común. 23
JADE: Herramienta para Desarrollo y Depuración de Agentes Ambiente gráfico facilita desarrollo y depuración: Sniffer Agent. Dummy Agent. Ver ejemplo 24
Instalación de JADE Instalar JADE es muy simple (se necesita tener el JDK 1.4 o 1.5 de JAVA instalado). Descomprimir los archivos del ZIP llamado JADE-all- 4.0.1.zip en una carpeta llamada JADE, en la ruta C:\Archivos de programa. Código fuente. Archivos bin. Documentación. Ejemplos de la Plataforma JADE. 25
Instalación de JADE (cont.) Es importante poner en la variable de entorno CLASSPATH las rutas de los archivo.jar de la carpeta lib de JADE, ya que son archivos necesarios para correr la GUI de JADE y los agentes que se creen, estos archivos son: C:\Archivos de programa\jade\jade\lib\base64.jar; C:\Archivos de programa\jade\jade\lib\http.jar; C:\Archivos de programa\jade\jade\lib\iiop.jar; C:\Archivos de programa\jade\jade\lib\jade.jar; C:\Archivos de programa\jade\jade\lib\jadetools.jar. 26
Instalación de JADE (cont.) 27
Ejecutando JADE 28
JADE Remote Agent Management GUI 29
Instanciación de los Agentes Sniffer y Dummy 30
Agente Sniffer 31
Agente Sniffer y Agentes Dummy 32
Primera Iteración Agente Dummy da0 Agente Dummy da1 33
Segunda Iteración Agente Dummy da0 Agente Dummy da1 34
Agente Sniffer Escuchando Primera iteración Segunda iteración 35
Referencias FIPA: http://www.fipa.org. JADE: http://sharon.cselt.it/projects/jade Bellifemine, Fabio; Caire, Giovanni; Trucco, Tiziana; Rimassa, Giovanni. JADE Programmer s Guide. 2005. http://jade.tilab.com/doc/programmersguide.pdf. Caire, Giovanni. JADE Tutorial: JADE Programming for Beginners. 2003. http://jade.tilab.com/doc/tutorials/jadeprogramming- Tutorial-for-beginners.pdf. 36