O Ambiente Jade:
O Ambiente Jade:
uma introdução ao
uma introdução ao
framework
framework
de
de
desenvolvimento para sistemas
desenvolvimento para sistemas
multiagentes
multiagentes
Inteligência Artificial
Prof. Rômulo Nunes
Universidade Federal de Alagoas
Curso de Ciência da Computação
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 2
Motivação
Motivação
JADE (Java Agent Development Framework)
– Conjunto de ferramentas para construção de MAS
(Multi-agent Systems) ou SMA(em português)
No quê o Jade ajuda na a construção de um
SMA?
Jade pode ser utilizado na concepção de um
SMA para o comércio eletrônico?
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 3
Programação
Programação
Introdução – Sistemas Multiagentes
FIPA
(Foundation for Intelligent Physical Agentes) A Plataforma Jade
Agentes na Plataforma Jade
Comunicação entre agentes
Jade no contexto do comércio eletrônico
Resumo e Conclusão
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 4
Introdução
Introdução
-
-
SMA
SMA
Porque utilizar SMA’s?
Centralizado × Distribuído
– Diminuir a complexidade do problema – Distribuir informações
– Aumento da Robustez – Facilidade em integrar soluções
Complexidade do sistema Complexidade do problema
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 5
Introdução
Introdução
-
-
SMA
SMA
Os agentes operam em ambientes:
– Que podem conter ou não outros agentes – Abertos x fechados
– Com comunicação x Sem comunicação – Onde os Agentes: Homogêneos x Heterogêneos – Cooperativos X Competitivos
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 6
Introdução
Introdução
-
-
SMA
SMA
Características interessantes dos agentes em um SMA:
– Percepção & ação – Comunicação
– Perseguir Objetivos (Autonomia)
– Deliberar ações (baseadas no “estado do ambiente” + “objetivos”)
– Raciocínio e aprendizagem
Visão geral de um SMA
Visão geral de um SMA
Jade é um framework para desenvolvimento de aplicações baseadas em agentes que segue os padrões FIPA. Possui alguns recursos que estão representados abaixo:
Message Transport System Agent Management System Directory Facilitator Plataforma de Agentes Agente1 Outros Agentes através do protocolo HTTP ou IIOP Páginas Amarelas Agente que provê
funcionalidade de gerenciamento da plataforma Agenten Componente para o transporte
Fundada em 1996 com objetivo de padronizar a
utilização de agentes.
– http://www.fipa.org/
Descreve uma referência de plataforma de agente
(AP – Agent Plataform)
– Infra-estrutura para o ambiente de agentes – Agentes de administração
Protocolo de comunicação (ACL - Agent
Communication Language )
– Proporciona a funcionalidade da comunicação entre agentes
FIPA
FIPA
–
–
Foundation for
Foundation for
Intelligent Physical Agents
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 9
FIPA
FIPA
–
–
Foundation for
Foundation for
Intelligent Physical Agents
Intelligent Physical Agents
FIPA97 identifica os papéis de alguns agentes
necessários para a administração da plataforma .
– O Agente de administração do sistema (AMS - Agent Management System)
é o agente que supervisiona (controla) o acesso da plataforma;
é responsável pela autenticação e controle de inscrições. – O Agente de Canal de Comunicação (ACC - Agent
Communication Channel)
é o agente responsável pela comunicação entre agentes internos ou externos a plataforma
– O Diretório Facilitador (DF - Directory Facilitator)
é o agente que provê um serviço de página amarela para a plataforma de agente.
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 10
Modelo de Referência da FIPA para Plataformas de Agentes
FIPA
FIPA
–
–
Foundation for
Foundation for
Intelligent Physical Agents
Intelligent Physical Agents
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 11
FIPA
FIPA
–
–
Serviços
Serviços
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 12
Plataforma JADE
Plataforma JADE
Características
– Open source, possui licença LGPL
(LibraryGeneral Public License);
– Implementado totalmente em Java;
– É conforme a FIPA97/2000;
– Pode ser visto como um middleware de agentes
que implementa uma plataforma de agentes e um
framework de desenvolvimento;
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 13
Plataforma JADE
Plataforma JADE
Características
(...cont.)– Escalável;
(pode ser utilizado desde pequena escala a grande escala)– Suporta mobilidade dos agentes;
oferece uma interface gráfica de usuário (GUI) para permitir o controle de vários agentes e plataformas ao mesmo tempo;– permite implementação de aplicações
multi-domínio.
(a interface simplifica o registro de agentes em um ou mais domínios)O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 14
O MTP utiliza-se do RMI para toca de mensagens entre as máquinas virtuais Java ( com IIOP ou HTTP quando entre plataformas diferentes )
JRE 1.2 JRE 1.2 Jade Main-container Jade Agent Container Jade Agent Container
Jade distributed Agent Platform
D F A g en t A MS A gen t A p p li cat io n A gen t A p p li cat io n A gen t A p p li cat io n A gen t A p p li cat io n A gen t A p p li cat io n A gen t A p p li cat io n A gen t
Host 1 Host 2 Host 3
A p p li cat io n A gen t A p p li cat io n A gen t JRE 1.2
Arquitetura de uma Plataforma de agentes JADE distribuída.
Protocolos de transporte de mensagens entre hosts: Internet Inter ORB Protocol e HyperText Transfer Protocol Remote Method Invocation (Java RMI) Message Transport Protocols (Serviço de mensagens do Jade)
Plataforma JADE
Plataforma JADE
Plataforma JADE
Plataforma JADE
Network Host Link Network Host
Agent Container Main Container Agent Container
Agentes de Software são componentes de software, assim:
São hospedados em tempo de execução por Agents Containers Muitos agentes podem conviver em um único container (cerca de 1000
por host)
Plataforma JADE
Plataforma JADE
O pacote jade.tools contém algumas ferramentas
para facilitar a administração.
– Agente de Monitoramento Remoto (RMA - Remote Monitoring Agent):
console (agente) responsável pela administração e controle da plataforma.
O JADE mantém coerência entre os RMAs através de envio de multicasting entre eles.
– Agent Dummy:
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 17
Plataforma JADE
Plataforma JADE
O pacote jade.tools contém algumas ferramentas
para facilitar a administração.
(...cont.)– Agente Sniffer
:
ferramenta utilizada para debugar, "snifar" e salvar em arquivo a comunicação entre agentes.
é capaz de interceptar as mensagens ACL em trânsito e exibir uma anotação gráfica muito semelhante ao UML que é de grande utilidade para depuração da sociedade de agentes.
– Introspector Agent:
ferramenta muito útil que permite monitorar o ciclo de vida dos agentes, suas mensagens ACL trocadas e os behaviours em execução.
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 18
Plataforma JADE
Plataforma JADE
O pacote jade.tools contém algumas ferramentas para facilitar a administração. (...cont.)
– Agente SocketProxyAgent:
agente simples que age como uma porta bidirecional entre a plataforma e uma conexão TCP/IP.
Este agente é útil para manipular firewalls ou prover interações entre a plataforma e applets java
– DF GUI:
interface de usuário (um agente completo) que é usada no caso da falta do diretório facilitador no JADE.
Modo gráfico para controlar a base de conhecimentos, ou seja, provê o serviço de "páginas amarelas".
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 19
Plataforma JADE
Plataforma JADE
Front-end, em destaque os agentes AMS, RMA, DF e o ACC:
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 20
Plataforma JADE
Plataforma JADE
Agente sniffer :O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 21
Plataforma JADE
Plataforma JADE
DF GUI :O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 22
Agentes na plataforma JADE
Agentes na plataforma JADE
Aplicações JADE são desenvolvidas através
de Agentes
– Um agente JADE é mapeado em uma classe
JAVA definida pelo usuário, que deve ser
subclasse da classe Agent do pacote jade.core
– Atividades de agentes são mapeadas em classes
definidas pelos usuários, que são subclasses da
classe Behaviour do pacote
jade.core.bahaviours.
Agentes na plataforma JADE
Agentes na plataforma JADE
Não há necessidade de implementar plataforma
uma vez que o JADE inclui o AMS, o DF e o
ACC que são iniciados automaticamente com a
plataforma.
Os agentes recebem identificadores únicos
globais (GUID - Globally Unique Identifier).
O nome do agente é composto por um
apelido @ nome do host.domínio: porta/JADE;
– por exemplo agente@mycomputer:1099/JADE.
Agentes na plataforma JADE
Agentes na plataforma JADE
Cada container é um ambiente de execução
multithreaded.
Um agente é no JADE é:
– objeto ativo que carrega consigo uma thread de controle.
– completamente autônomo (controla sua execução, decide quando ler as mensagens e quais ler), – Capaz de iniciar diversas conversações simultâneas e
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 25
Agentes na plataforma JADE
Agentes na plataforma JADE
Behaviours:
O programador usa os behaviours para modelar as
ações que o agente é capaz de executar
usa-se uma thread por agente e não por behaviour,
o que mantém razoável o número de threads
necessárias para rodar a plataforma.
Os behaviours trabalham em modo de
agendamento cooperativo. Cada behaviour deve
ceder o controle para permitir que os outros
possam ser executados.
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 26
Agentes na plataforma JADE
Agentes na plataforma JADE
O JADE suporta mobilidade
intra-plataforma e clonagem
– os agentes podem migrar entre os containers,
podem ser clonados entre os containers
– podem ser iniciados pelo próprio agente
(doMove, doClone) ou solicitados pela
plataforma via AMS
(Agent Management System )O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 27
Agentes na plataforma JADE
Agentes na plataforma JADE
Possíveis estados de acordo com o ciclo de vida
especificado pela FIPA:
– AP_ INTIATED: o agent object está construído, contudo ainda não se registrou com AMS, não tem nem um nome nem um endereço e não pode se comunicar com outros agentes;
– AP_ ACTIVE: o agent object está registrado com AMS, portanto já possui seu AID e pode ter acesso as várias características JADE;
– AP_ SUSPENDED: o agent object está atualmente parado, sua thread interna está suspensa e nenhum behaviour esta sendo executado;
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 28
Agentes na plataforma JADE
Agentes na plataforma JADE
Possíveis estados de acordo com o ciclo de vida
especificado pela FIPA:
(...cont)– AP_ WAITING: o agent object está bloqueado, esperando por algo. Sua thread está dormindo temporariamente.
– AP_ DELETED: o agente definitivamente está morto. Sua thread interna foi terminada e o agente não está mais registrado com AMS;
– AP_ TRANSIT: um agente móvel entra neste estado enquanto está migrando. O sistema continua armazenando as mensagens que serão enviadas a nova localidade;
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 29
Agentes na plataforma JADE
Agentes na plataforma JADE
Possíveis estados de acordo com o ciclo de vida
especificado pela FIPA:
(...cont)– AP_ COPY: esse estado é usado internamente pelo JADE para estados que estão começando a ser clonados. – AP_ GONE: esse estado é usado internamente pelo
JADE quando o agente móvel migrou para uma nova localidade e possui um estado estável.
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 30
Agentes na plataforma JADE
Agentes na plataforma JADE
Diagrama de estados de agente na Plataforma JADE
Comunicação entre agentes
Comunicação entre agentes
Serviço de Transporte de Mensagens
Controla a fila de mensagens ACL privativa do
agente Projetado para adaptar-se dinamicamente
– O mecanismo de transporte é selecionado de
acordo com a situação
Para obter o menor custo de transmissão de
mensagem
Os overheads dependem da localização do receptor e do cache
Comunicação entre agentes
Comunicação entre agentes
Serviço de Transporte de Mensagens
Canal de comunicação entre agentes distribuídos
– O main container não sofre prejuízos de desempenho , graças aos caches distribuídos
– O Message Transport Protocols (MTP) pode ser ativado/desativado em tempo de execução em qualquer container, via GUI.
– O controle de mensagens é otimizado pelo ACL (Agent Communication Language)
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 33
Comunicação entre agentes
Comunicação entre agentes
Elementos de comunicação na plataforma JADE.O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 34
Comunicação entre agentes
Comunicação entre agentes
A arquitetura do software se baseia na
coexistência de várias JVMs e:
– podem estar espalhadas por vários hosts;
– cada VM é um container de agentes que provê
um ambiente de runtime completo para
execução de agentes;
– cada VM permite que vários agentes sejam
executados concorrentemente no mesmo host.
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 35
Ex.: Jade no contexto do comércio eletrônico
Ex.: Jade no contexto do comércio eletrônico
Necessitamos de: • Raciocínio independente • Comunicação • Autonomia • independencia de SO e localização dos participantes
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 36
Ambiente FIPA (JADE)
Tática de Negociação 1 Negociador 1 Base de Conhecimento Tática de Negociação n Negociador n Base de Conhecimento
Ex.: Jade no contexto do comércio eletrônico
Ex.: Jade no contexto do comércio eletrônico
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 37
Resumo e conclusão
Resumo e conclusão
O JADE segue os padrões da FIPA, que é uma
instituição que dita regras sobre a padronização em MAS (Sistemas mult-agentes) O JADE possue muitas ferramentas e facilidades (agindo como framework de fato) para a MAS.
Um ambiente para o comércio eletrônico necessita de um ambiente multi-agentes para funcionar. Por suas características, o JADE é um framework adequado ao propósito.
O ambiente Jade: uma introdução ao framework de desenvolvimento para sistemas multi-agentes 38
Onde obter mais informações
Onde obter mais informações
FIPA - http://www.fipa.org
Núcleo Brasileiro de Jade – Universidade de Brasília -http://qos.tecnolink.com.br
JADE – site oficial - http://jade.tilab.com
JADE Administrative Tutorials por David Grimshaw (Ryerson University)
-http://jade.tilab.com/doc/tutorials/JADEAdmin
Scalability and Performance of JADE Message Transport System - por E.Cortese; F.Quarta e G.Vitaglione (paper) - http://jade.tilab.com/