JADE
The Java Agent DEvelopment
Framework
Ismênia Galvão Lourenço da Silva
[email protected]
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
CENTRO DE INFORMÁTICA
UNIVERSIDADE FEDERAL DE PERNAMBUCO
JADE
Roteiro


Desvendando JADE

O que é JADE?

Principais características

Ferramentas gráficas de JADE

Como implementar os conceitos de SMA?
Utilizando JADE

Informações gerais

Instalação & Execução

Exemplos

Links
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
2
Desvendando JADE...
- O que é JADE?
- Principais características de JADE
- Ferramentas gráficas
- Como implementar um SMA?
JADE
O que é JADE?

JADE é um framework para desenvolvimento de SMA

Desenvolvido pelo CSELT e Univ. Parma

Completamente implementado em Java

Obedece às especificações da FIPA - Foundation for Intelligent
Physical Agents (1997 / 2000)

Pode ser visto como um middle-ware de agentes que implementa
uma plataforma distribuída e um framework de desenvolvimento.
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
4
JADE
Principais características

Lida com os aspectos que não fazem parte do agente em si,
tais como:


Provê ferramentas de suporte


Transporte de mensagens, codificação, parsing, ciclo de vida do
agente, páginas brancas, páginas amarelas, ...
Remote Monitoring Agent, Dummy Agent, Sniffer Agent, ...
Foi projetado para dar suporte a escalabilidade de SMA
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
5
JADE
Principais características

É baseado no conceito de container

Um container = processo

Diferentes containers na mesma plataforma (1 JVM por container)

Diferentes agentes no mesmo container (ambiente multi-threaded
pre-emptivo escalonado pela JVM)

Cada agente tem sua própria thread de execução

Cada agente pode ter diferentes comportamentos
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
6
JADE
Ferramentas gráficas

Remote Monitoring Agent (RMA)

Sniffer Agent

Introspector Agent

Dummy Agent

Directory Facilitator (DF)
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
7
JADE
Ferramentas gráficas
SnifferDummy
Agent
Introspector Agent
Agent

Remote Monitoring Agent (RMA)



29.10.2003
Funciona como uma console gráfica para gerenciamento e
controle da plataforma;
É usada para monitorar e administrar o status de todos os
componentes da plataforma distribuída, incluindo agentes e
containers;
Serve para controlar o ciclo de vida dos agentes, conexões
com plataformas remotas e a instalação de protocolos de
transporte de mensagens
Tópicos Avançados em Inteligência Artificial Simbólica
8
JADE
Ferramentas gráficas

Sniffer Agent



29.10.2003
É usado para interceptar as mensagens ACL e exibir a
conversação através de uma notação similar ao diagrama de
seqüência da UML;
Útil para depuração de conversação entre agentes;
Permite que as conversações sejam salvas ou carregadas em
arquivos.
Tópicos Avançados em Inteligência Artificial Simbólica
9
JADE
Ferramentas gráficas

Introspector Agent


29.10.2003
É usado para monitorar o ciclo de vida de um agente, suas
mensagens ACL trocadas e seus comportamentos em
execução.
Permite controlar a execução de um agente.
Tópicos Avançados em Inteligência Artificial Simbólica
10
JADE
Ferramentas gráficas

Dummy Agent


29.10.2003
É uma ferramenta utilizada para compor e enviar mensagens
ACL para outros agentes, bem como para exibir as
mensagens recebidas;
Permite que as mensagens sejam salvas ou carregadas em
arquivos.
Tópicos Avançados em Inteligência Artificial Simbólica
11
JADE
Ferramentas gráficas

Directory Facilitator (DF)



29.10.2003
Representa o FIPA DF, o componente de páginas amarelas
do sistema;
Permite registrar / de-registrar / modificar / buscar agentes e
serviços;
Permite criar confederações de DF e realizar propagação de
busca através de domínios e sub-domínios.
Tópicos Avançados em Inteligência Artificial Simbólica
12
JADE
Como implementar um SMA?

Agentes

Mensagens ACL

Comportamentos

Protocolos de interação
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
13
JADE
Agentes

Um agente em JADE é uma instância da classe Agent

Heranças da classe Agent:


29.10.2003
Características para realizar as interações básicas com a plataforma
de agentes (registro, configuração, gerenciamento remoto, ...);
O conjunto básico de métodos que podem ser chamados para
implementar o comportamento personalizado do agente
(enviar/receber mensagens, usar protocolos de interação, ...)
Tópicos Avançados em Inteligência Artificial Simbólica
14
JADE
Agentes

Cada serviço/funcionalidade de um agente deve ser
implementado como um ou mais comportamentos

Os comportamentos de JADE modelam arquiteturas reativas

A abstração de comportamento do modelo do agente de JADE
permite a integração de softwares externos para enriquecer a
arquitetura do agente

Ex: agentes reativos-deliberativos com JADE e JESS
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
15
JADE
Agentes

A classe Agent representa os estados do agente através de constantes:

AP_INITIATED
ESTADOS

AP_ACTIVE
MÉTODOS

AP_SUSPENDED

AP_WAITING

AP_DELETED

AP_TRANSIT

AP_COPY

AP_GONE
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
16
JADE
Agentes
Como JADE controla a criação de um novo agente?

1.
O construtor do agente é executado;
2.
Um AID (Agent Identifier) é atribuído ao agente;
3.
O agente é registrado no AMS (Agent Management System páginas brancas);
4.
O agente é colocado no estado AP_ACTIVE;
5.
O método setup() é executado;
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
17
JADE
Agentes

Um AID (Agent Identifier) é constituído por:



29.10.2003
Um nome globalmente único:

<localname>@<hostname>:<port>/JADE

Ex: ams@G6C15:1099/JADE
Um conjunto de endereços de agentes, uma vez que cada agente
herda os endereços de transporte de sua plataforma de origem;
Um conjunto de solucionadores (páginas brancas nas quais o
agente é registrado)
Tópicos Avançados em Inteligência Artificial Simbólica
18
JADE
Agentes

O método setup()



29.10.2003
Deve ser implementado para inicialização de um agente;
Deve adicionar pelo menos um comportamento para o agente
através do método addBehaviour();
Ao final da execução do método setup(), JADE executa
automaticamente os comportamentos, a partir do que foi
primeiramente declarado, usando um escalonamento circular nãopreemptivo.
Tópicos Avançados em Inteligência Artificial Simbólica
19
JADE
Mensagens ACL

Em JADE os agentes se comunicam através de passagem assíncrona de
mensagens ACL;

A classe ACLMessage representa as mensagens de acordo com as
especificações da FIPA (fipa000061);

Todos os parâmetros são pares palavra-chave: valor

Os valores dos parâmetros podem ser inseridos através dos métodos
set() e podem ser lidos através de métodos get()

As performativas da FIPA são identificadas por constantes.
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
20
JADE
Mensagens ACL

Sub-sistema de comunicação de JADE



29.10.2003
Todo agente tem uma fila privada de mensagens ACL criada e
preenchida pelo subsistema de comunicação de JADE;
Foi projetado como um camaleão para alcançar um menor custo de
passagem de mensagens;
Se uma mensagem é enviada e o sub-sistema não consegue
encontrar o destinatário, ele a envia para ser gerenciada pelo AMS.
Tópicos Avançados em Inteligência Artificial Simbólica
21
JADE
Mensagens ACL
QUERY-IF
:sender solicitador@G6C15:1099/JADE
ENDEREÇAMENTO :receiver CSELT@G6C15:1099/JADE
:protocol fipa-query
:conversation_id C2471722_1067382505429
COMUNICAÇÃO
:reply_with
:reply_by
:language fipa-sl0
:ontology employment-ontology
:content ((WORKS-FOR
(PERSON :name "Ismenia Galvao"
:age 24
:address (ADDRESS
:street "Rua dos Bobos"
MENSAGEM
:number 0
:city Recife))
(COMPANY :name CSELT
:address (ADDRESS
:street "Via Reiss Romoli"
:number 274
:city Turin))))
PERFORMATIVA
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
22
JADE
Comportamentos
Behaviour
Simple Behaviour
OneShotBehaviour
CompositeBehaviour
CyclicBehaviour
SequentialBehaviour
FSMtBehaviour
ParallelBehaviour
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
23
JADE
Comportamentos

Behaviour 


SimpleBehaviour 


Modela uma tarefa simples (que não tem sub-tarefas)
OnShotBehaviour


Modela uma tarefa genérica
Modela uma tarefa atômica (seu método done() retorna true)
CyclicBehaviour

29.10.2003
Modela uma tarefa cíclica (seu método done() retorna false)
Tópicos Avançados em Inteligência Artificial Simbólica
24
JADE
Comportamentos

CompositeBehaviour 


SequentialBehaviour


Modela uma tarefa na qual suas sub-tarefas são seqüenciais
ParallelBehaviour


Modela uma tarefa complexa (realizada através da composição de outras
tarefas)
Modela uma tarefa na qual suas sub-tarefas são concorrentes
FSMBehaviour

29.10.2003
Modela uma tarefa na qual suas sub-tarefas correspondem as atividades
realizadas em estados de uma Máquina de Estados Finitos
Tópicos Avançados em Inteligência Artificial Simbólica
25
JADE
Protocolos de interação

A FIPA especifica um conjunto de protocolos de interação
padronizados

JADE distingue os papéis de Initiator e Responder para cada
conversação entre agentes

AchieveRE (Achieve Rational Effect)

AchieveREInitiator

SimpleAchieveREInitiator

AchieveREResponder

SimpleAchieveREResponder
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
26
JADE
Protocolos de interação


FIPA-Contract-Net

ContractNetInintiator

ContractNetResponder
Estados genéricos para protocolos de interação

HandlerSelector

MsgReceiver
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
27
Utilizando JADE
- Informações gerais
- Instalação & Execução
JADE
Informações gerais


Versões

Versão atual de JADE: 3.0b1 (19.03.03)

Todos os arquivos .jar foram gerados com o JDK 1.2
Requisitos de software


JDK 1.2 Run Time ou posterior
Distribuição do software

29.10.2003
De acordo com a licença LGPL
Tópicos Avançados em Inteligência Artificial Simbólica
29
JADE
Instalação de JADE
Download de arquivos:


Mapear unidade de rede \\cin04\apps\fipa
Copiar o diretório JADE
OU

http://jade.cselt.it/license.htm
OU

29.10.2003
http://www.cin.ufpe.br/~igls/aula_jade.zip
Salvar aula_jade.zip
Descompactar em c:\temp
Tópicos Avançados em Inteligência Artificial Simbólica
30
JADE
Instalação de JADE

Configuração do ambiente de execução:

configurarJADE.bat
@set
@set
@set
@set
@set
@set
@set
@set
@set
29.10.2003
path=%path%;p:\jdk1.4.0\bin
path=%path%;C:\temp\jade
classpath=%classpath%.;p:\jdk1.4.0\lib\tools.jar
classpath=%classpath%.;p:\jdk1.4.0\lib\tools.jar
classpath=%classpath%.;p:\jdk1.4.0\jre\lib\rt.jar
classpath=%classpath%.;c:\temp\jade\lib\jadeTools.jar
classpath=%classpath%.;c:\temp\jade\lib\jade.jar
classpath=%classpath%.;c:\temp\jade\lib\Base64.jar
classpath=%classpath%.;c:\temp\jade\lib\iiop.jar
Tópicos Avançados em Inteligência Artificial Simbólica
31
JADE
Execução de JADE

Compilação:

compilarJADE.bat
javac

%1 %2 %3 %4 %5 %6 %7 %8 %9
Execução:

executarJADE.bat
java jade.Boot -gui %1 %2 %3 %4 %5 %6 %7 %8 %9
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
32
Exemplos
- Party
- Ontology
JADE
Party

Descrição do problema



Demonstra um SMA simples no qual um anfitrião inicia uma festa e
chama um número de convidados;
O fluxo de mensagens é bem elevado
Agentes

O HostAgent representa o anfitrião da festa

O GuestAgent representa o convidado da festa
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
34
JADE
Party

Funcionamento

O usuário seleciona o número de convidados (0 a 1000);

Quando a festa começa, o anfitrião cria os agentes convidados;



29.10.2003
Cada convidado se registra no DF e envia uma mensagem para o
anfitrião avisando que chegou;
Quando todos os convidados tiverem chegado, o anfitrião seleciona
um deles aleatoriamente e conta uma fofoca;
Em seguida, o anfitrião seleciona dois convidados aleatoriamente e
os apresenta;
Tópicos Avançados em Inteligência Artificial Simbólica
35
JADE
Party

Funcionamento




29.10.2003
A partir daí, cada convidado que foi apresentado a alguém pede ao
anfitrião para apresentá-lo a outro (aleatoriamente);
Se o convidado souber da fofoca, ele conta para o outro;
Quando um convidado escuta a fofoca pela primeira vez, ele avisa
ao anfitrião que já está sabendo;
Quando todos os convidados souberem da fofoca, a festa acaba e
os convidados vão embora.
Tópicos Avançados em Inteligência Artificial Simbólica
36
JADE
Party
Como executar:

1.
compilarJADE examples/party/*.java
2.
executarJADE HOST:examples.party.HostAgent()
3.
Executar o agente Sniffer e marcar DF e HOST
4.
Executar o agente Introspector e marcar HOST
5.
Configurar na interface do Party Host Agent, o número de agentes
visitantes (no máximo 100...)
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
37
JADE
Party
Como executar:

6.
Iniciar Party Host Agent clicando o botão Start
7.
Observar as mensagens no Sniffer
8.
Observar as mensagens e comportamentos no Introspector
9.
Observar a ferramenta RMA
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
38
JADE
Party

Interface
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
39
JADE
Ontology

Descrição





29.10.2003
Demonstra como usar o suporte a ontologias de JADE;
Define uma ontologia simples que inclui conceitos relacionados ao
emprego de pessoas em uma companhia;
Para cada papel ontológico há uma classe definida;
A classe EmploymentOntology cria um objeto ontologia e adiciona a
ele os papéis
Pacotes:

examples.ontology

examples.ontology.employment
Tópicos Avançados em Inteligência Artificial Simbólica
40
JADE
Ontology

Ontologia:


Conceitos

PERSON

COMPANY

ADDRESS
Predicados

29.10.2003

Ações


ENGAGE
Proposições

ENGAGEMENT-ERROR

PERSON-TOO-OLD
WORKS-FOR
Tópicos Avançados em Inteligência Artificial Simbólica
41
JADE
Ontology

Agentes

29.10.2003
RequesterAgent

Solicita ao EngagerAgent a contratação de pessoas;

Tem um comportamento cíclico para receber do usuário os dados das
pessoas;

Usa o protocolo fipa-query para perguntar ao EngagerAgent se
determinada pessoa já trabalha na companhia;

Usa o protocolo fipa-request para solicitar o emprego para alguém;

Cada um dos protocolos é implementado utilizando-se um
SimpleArchieveREInitiator como sub-comportamento.
Tópicos Avançados em Inteligência Artificial Simbólica
42
JADE
Ontology

Agentes

29.10.2003
EngagerAgent

Realiza a contratação de pessoas numa companhia;

Possui dois comportamentos cíclicos SimpleAchieveREResponder;

Um é usado para manipular questionamentos sobre se uma pessoa
trabalha numa companhia, de acordo com o fipa-query;

O outro é usado para manipular requisições de contratação, seguindo
o protocolo fipa-request;

A companhia que contrata as pessoas é fixa (CSELT, Via Reiss Romoli
274, Turin).
Tópicos Avançados em Inteligência Artificial Simbólica
43
JADE
Ontology
Como executar:

1.
compilarJADE examples/ontology/employment/*.java
2.
compilarJADE examples/ontology/*.java
3.
executarJADE CSELT:examples.ontology.EngagerAgent()
SOLICITANTE:examples.ontology.RequesterAgent()
4.
Executar o agente Sniffer e marcar CSELT e SOLICITANTE
5.
Executar o agente Introspector e marcar CSELT e SOLICITANTE
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
44
JADE
Ontology
Como executar:

6.
Preencher os dados na linha de comando

CSELT

CSELT

Via Reiss Romoli

274

Turin
7.
Observar as mensagens no Sniffer
8.
Observar as mensagens e comportamentos no Introspector
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
45
JADE
Ontology

Interface
This is the EngagerAgent representing the company CSELT
ENTER the local name of the Engager agent --> CSELT
ENTER details of the company where people will be engaged
Company name --> CSELT
Company address
Street ------> Via Reiss Romoli
Number ------> 274
City
------> Turin
ENTER details of person to engage
Person name --> Ismenia Galvao
Person age ---> 24
Person address
Street -----> Rua dos Bobos
Number -----> 0
City
-----> Recife
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
46
JADE
Por que JADE?

Não há necessidade de implementar a plataforma de agentes ...

Não há necessidade de implementar as funcionalidades e a
ontologia de gerenciamento de agentes ...

Não há necessidade de implementar o transporte e parsing de
mensagens ...

Os protocolos de interação podem ser estendidos ...

Segue as especificações da FIPA !
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
47
JADE
Links

Java Agent DEvelopment Framework


API de JADE


http://jade.cselt.it/doc/api/index.html
Documentação on-line de JADE


http://jade.cselt.it/
http://jade.cselt.it/doc/index.html
Outros tutoriais de JADE

http://agents.felk.cvut.cz/teaching/ui2/JADE_tutorial.htm 

http://www.soe.ucsc.edu/research/agents/borcon/index.html

http://www.ryerson.ca/~dgrimsha/courses/cps720/JADEAdmin/jadeStart.html

http://www.ryerson.ca/~dgrimsha/courses/cps720_02/courseTopics.html

http://www.etse.urv.es/recerca/banzai/toni/MAS/material.html 
29.10.2003
Tópicos Avançados em Inteligência Artificial Simbólica
48
Download

O que é JADE?