jade the java agent development framework ismênia galvão lourenço da silva [email protected]...

48
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

Upload: internet

Post on 19-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

JADEThe Java Agent DEvelopment Framework

Ismênia Galvão Lourenço da [email protected]

PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

CENTRO DE INFORMÁTICA

UNIVERSIDADE FEDERAL DE PERNAMBUCO

Page 2: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 2

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

Page 3: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

Desvendando JADE...

- O que é JADE?

- Principais características de JADE

- Ferramentas gráficas

- Como implementar um SMA?

Page 4: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 4

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.

Page 5: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 5

JADE

Principais características

Lida com os aspectos que não fazem parte do agente em si, tais como: Transporte de mensagens, codificação, parsing, ciclo de vida do

agente, páginas brancas, páginas amarelas, ...

Provê ferramentas de suporte Remote Monitoring Agent, Dummy Agent, Sniffer Agent, ...

Foi projetado para dar suporte a escalabilidade de SMA

Page 6: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 6

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

Page 7: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 7

JADE

Ferramentas gráficas

Remote Monitoring Agent (RMA)

Sniffer Agent

Introspector Agent

Dummy Agent

Directory Facilitator (DF)

Page 8: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 8

JADE

Remote Monitoring Agent (RMA) 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

Ferramentas gráficasSniffer AgentDummy

AgentIntrospector Agent

Page 9: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 9

JADE

Sniffer Agent É 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.

Ferramentas gráficas

Page 10: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 10

JADE

Introspector Agent É 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.

Ferramentas gráficas

Page 11: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 11

JADE

Dummy Agent É 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.

Ferramentas gráficas

Page 12: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 12

JADE

Directory Facilitator (DF) 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.

Ferramentas gráficas

Page 13: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 13

JADE

Como implementar um SMA?

Agentes Mensagens ACL Comportamentos Protocolos de interação

Page 14: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 14

JADE

Agentes

Um agente em JADE é uma instância da classe Agent

Heranças da classe Agent: 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, ...)

Page 15: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 15

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

Page 16: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 16

JADE

Agentes

A classe Agent representa os estados do agente através de constantes: AP_INITIATED

AP_ACTIVE

AP_SUSPENDED

AP_WAITING

AP_DELETED

AP_TRANSIT

AP_COPY

AP_GONE

MÉTODOS

ESTADOS

Page 17: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 17

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;

Page 18: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 18

JADE

Agentes

Um AID (Agent Identifier) é constituído por: 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)

Page 19: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 19

JADE

Agentes

O método setup() 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ão-preemptivo.

Page 20: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 20

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.

Page 21: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 21

JADE

Mensagens ACL

Sub-sistema de comunicação de JADE 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.

Page 22: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 22

JADE

Mensagens ACL QUERY-IF :sender solicitador@G6C15:1099/JADE :receiver CSELT@G6C15:1099/JADE :protocol fipa-query :conversation_id C2471722_1067382505429 :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"

:number 0 :city Recife))

(COMPANY :name CSELT :address (ADDRESS

:street "Via Reiss Romoli"

:number 274 :city Turin))))

PERFORMATIVA

ENDEREÇAMENTO

COMUNICAÇÃO

MENSAGEM

Page 23: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 23

JADE

Comportamentos

Behaviour

Simple Behaviour CompositeBehaviour

OneShotBehaviour CyclicBehaviourSequentialBehaviour

ParallelBehaviour

FSMtBehaviour

Page 24: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 24

JADE

Comportamentos

Behaviour

Modela uma tarefa genérica

SimpleBehaviour

Modela uma tarefa simples (que não tem sub-tarefas)

OnShotBehaviour Modela uma tarefa atômica (seu método done() retorna true)

CyclicBehaviour Modela uma tarefa cíclica (seu método done() retorna false)

Page 25: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 25

JADE

Comportamentos

CompositeBehaviour Modela uma tarefa complexa (realizada através da composição de outras

tarefas)

SequentialBehaviour Modela uma tarefa na qual suas sub-tarefas são seqüenciais

ParallelBehaviour Modela uma tarefa na qual suas sub-tarefas são concorrentes

FSMBehaviour Modela uma tarefa na qual suas sub-tarefas correspondem as atividades

realizadas em estados de uma Máquina de Estados Finitos

Page 26: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 26

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

Page 27: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 27

JADE

Protocolos de interação

FIPA-Contract-Net ContractNetInintiator

ContractNetResponder

Estados genéricos para protocolos de interação HandlerSelector

MsgReceiver

Page 28: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

Utilizando JADE

- Informações gerais

- Instalação & Execução

Page 29: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 29

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 De acordo com a licença LGPL

Page 30: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 30

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

http://www.cin.ufpe.br/~igls/aula_jade.zipSalvar aula_jade.zipDescompactar em c:\temp

Page 31: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 31

JADE

Instalação de JADE

Configuração do ambiente de execução: configurarJADE.bat@set path=%path%;p:\jdk1.4.0\bin

@set path=%path%;C:\temp\jade

@set classpath=%classpath%.;p:\jdk1.4.0\lib\tools.jar

@set classpath=%classpath%.;p:\jdk1.4.0\lib\tools.jar

@set classpath=%classpath%.;p:\jdk1.4.0\jre\lib\rt.jar

@set classpath=%classpath%.;c:\temp\jade\lib\jadeTools.jar

@set classpath=%classpath%.;c:\temp\jade\lib\jade.jar

@set classpath=%classpath%.;c:\temp\jade\lib\Base64.jar

@set classpath=%classpath%.;c:\temp\jade\lib\iiop.jar

Page 32: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 32

JADE

Execução de JADE

Compilação: compilarJADE.bat

Execução: executarJADE.bat

javac %1 %2 %3 %4 %5 %6 %7 %8 %9

java jade.Boot -gui %1 %2 %3 %4 %5 %6 %7 %8 %9

Page 33: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

Exemplos

- Party

- Ontology

Page 34: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 34

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

Page 35: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 35

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;

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;

Page 36: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 36

JADE

Party

Funcionamento 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.

Page 37: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 37

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...)

Page 38: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 38

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

Page 39: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 39

JADE

Party

Interface

Page 40: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 40

JADE

Ontology

Descrição 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

Page 41: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 41

JADE

Ontology

Ontologia: Conceitos

PERSON

COMPANY

ADDRESS

Predicados WORKS-FOR

Ações ENGAGE

Proposições ENGAGEMENT-ERROR

PERSON-TOO-OLD

Page 42: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 42

JADE

Ontology

Agentes 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.

Page 43: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 43

JADE

Ontology

Agentes 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).

Page 44: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 44

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

Page 45: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 45

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

Page 46: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 46

JADE

Ontology

Interface

This is the EngagerAgent representing the company CSELTENTER the local name of the Engager agent --> CSELTENTER details of the company where people will be engaged Company name --> CSELT Company address Street ------> Via Reiss Romoli Number ------> 274 City ------> TurinENTER details of person to engage Person name --> Ismenia Galvao Person age ---> 24 Person address Street -----> Rua dos Bobos Number -----> 0 City -----> Recife

Page 47: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 47

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 !

Page 48: JADE The Java Agent DEvelopment Framework Ismênia Galvão Lourenço da Silva igls@cin.ufpe.br PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA

29.10.2003 Tópicos Avançados em Inteligência Artificial Simbólica 48

JADE

Links Java Agent DEvelopment Framework

http://jade.cselt.it/

API de JADE

http://jade.cselt.it/doc/api/index.html

Documentação on-line de JADE

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