JADE Java Agent DEvelopment Framework Josenilson Furtado Ribeiro Marco Antonio Gera Mestrado em Informática Universidade Federal do Espírito Santo O que é JADE ? Características: • • • • Usuários-alvo: • Implementado (completamente) em Java; É um framework que suporta a implementação de sistemas multiagentes, simplificando-a; Desenvolvido seguindo as especificações da FIPA (Foundation of Intelligent Physical Agents); Utiliza classes já definidas em Java. Desenvolvedores de agentes para sistemas multiagentes; Testado com sucesso em ambientes: MAC/OS; Windows NT, 95, 98; Solaris e MKLinux. O que é JADE ? Serviços: • • • • Gerenciador de projetos; Transporte de mensagens; Suporte às fases de desenvolvimento e depuração; Projetado para sustentar escalabilidade; Distribuído em código aberto pela LPGL (Lesser General Public License) a um custo de US$20,00 no site: http://sharon.cselt.it/projects/jade. Requisitos básicos para a execução do framework: versão 1.1x ou 1.2 de Java (JVM) com JDK instalado e 64 MB no mínimo. Arquitetura Distribuída de uma Plataforma de Agentes JADE Agente de Aplicação Agente de Aplicação Agente de Aplicação Host 3 Agente de Aplicação Agente de Aplicação Agente de Aplicação Host 2 Agente de Aplicação Agente de Aplicação Agente de Aplicação Host 1 Esta plataforma pode ser distribuída por diversas máquinas independente do SO que cada uma utiliza. Container Principal JADE JRE 1.2 Container de Agentes JADE Container Agentes JADE JRE 1.2 JRE 1.2 Características dos Agentes em JADE Os agentes são objetos ativos; Permite a execução simultânea de agentes; Mensagens assíncronas podem ser usadas; Subsistema de Comunicação JADE Todo agente tem uma fila privativa de mensagens criadas e armazenadas pelo subsistema de comunicação JADE; Este subsistema foi projetado para conseguir o menor custo na troca de mensagens. Modelo de Comunicação JADE Biblioteca de protocolos de interação; O framework diretamente suporta “parsing”, isto é, um analisador gramatical; O framework pode ser estendido pelo usuário; Suporta definir/salvar/ler novas ontologias. Modelo de Execução de Agentes O agente é autônomo, ou seja: Ele controla completamente sua linha de execução; Ele decide por si só quando ler as mensagens recebidas e quais mensagens serão lidas e úteis. O agente precisa de atividades simultâneas Pode empenhar-se em múltiplas conversações; Pode executar tarefas simultâneas. Comport. n … Comportamentos de Agentes Ativos Baseado em polling Baseado em blocagem Baseado em timeout Identif. de padrões Modo de acesso Comport. 1 Comport. 2 Arquitetura Interna de um Agente JADE Caixa privativa de mensagens ACL Convicções Capacidades Scheduler de comportamento Gerenciador do ciclo de vida Recursos de Agentes Dependentes de Aplicação Biblioteca JADE de protocolos de interação e de comportamentos de agentes genéricos Exemplos de projetos que estão utilizando JADE Entretenimento (TV) CSELT, NHK, Imperial College of London, IRST Assistente Pessoal de Viagem BT, France Telecom, Broadcom FILIGRANE - e-commerce de agentes móveis LiMe - Living Memory for connected communities ICL, Philips, Queen Margaret University College, DomusAcademy Universidade Helsinki, Parma, Bologna, Brescia Facilidades de Utilização do JADE Não há necessidade de implementar a plataforma de agentes; Não há necessidade de implementar uma ontologia de gerenciamento de agentes e de funcionalidades; Não há necessidade de implementar o transporte de mensagens e “parsing”; O envio ou recebimento de mensagens é feito automaticamente pelo framework. Integração com JESS Em alguns casos, os agentes podem necessitar raciocinar sobre fatos do mundo; JESS (Java Expert System Shell) é uma ferramenta de “raciocínio’ simbólica: Desenvolvida pelos laboratórios Sandia National Laboratories; Gratuito para uso não comercial; É escrito em Java e suporta integração simples dentro de aplicações Java; Um comportamento embutido está disponível na biblioteca JADE que, para cada mensagem recebida, afirma um fato na estrutura JESS que descreve a mensagem. Modelo de Programação JADE As aplicações baseadas em JADE são feitas por um ou mais agentes: Um agente JADE é mapeado sobre uma classe Java definida por usuário como subclass Agent class in jade.core package; Atividades de Agentes são mapeadas sobre subclasses definidas por usuários como Behaviour class in jade.core.behaviours package. JADE 2.0 Atualizado com o objetivo de complementar as novas recomendações da FIPA (FIPA2000); Melhoramentos gerais: Manual do programador e exemplos; Acerto de todos os “bugs” levantados na versão anterior; Melhoria na ontologia e no suporte da linguagem de conteúdo.