plataforma jade

27
PLATAFORMA JADE MAURICIO S FREITAS

Upload: akeem-hardy

Post on 02-Jan-2016

63 views

Category:

Documents


2 download

DESCRIPTION

Plataforma JADE. Mauricio S Freitas. Agenda. A Plataforma Primeiros Programas Hello World Identificadores de Agentes Passando Informações a um Agente Comportamentos. Comunicação Entre Agentes Envio e Recebimento de Mensagens Seleção de Mensagens Paginas Amarelas. A Plataforma. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Plataforma JADE

PLATAFORMA JADEMAURICIO S FREITAS

Page 2: Plataforma JADE

AGENDA

A Plataforma

Primeiros Programas Hello World

Identificadores de Agentes

Passando Informações a um Agente

Comportamentos

Comunicação Entre Agentes Envio e Recebimento de Mensagens

Seleção de Mensagens

Paginas Amarelas

Page 3: Plataforma JADE

A PLATAFORMA

Java Agent DEvelopment Ferramenta de Desenvolvimento de Agentes

Developed by Telecom Italia Lab.

Facilita a implementação de sistemas multi-agente através de um Middleware de acordo com as especificações da FIPA

FIPA - Foundation for Intelligent Physical Agents Esta organização define uma série de protocolos e standards para interação

entre agentes.

Page 4: Plataforma JADE

A PLATAFORMA

JADE fornece:

Um ambiente onde os agentes JADE são executados. Bibliotecas de classes para criar agentes usando herança e

redefinição de comportamentos. Um kit de ferramentas gráficas para monitorar e gerenciar a

plataforma de Agente Inteligente.

Page 5: Plataforma JADE

HELLO WORLD

Mauricio .
Page 6: Plataforma JADE

IDENTIFICADORES

De acordo com o padrão FIPA Cada instância de agente e identificada por um agent identifier.

Instância da classe jade.core.AID Método getAID()

Identificação completa, armazenando as informações em uma lista Global / Local

nome na plataforma

Endereço

etc.

Um ID global e aquele que representa o identificador do agente em toda a plataforma. Um ID local refere-se ao conjunto de informações que representam o agente em seu container.

Page 7: Plataforma JADE

IDENTIFICADORES

Page 8: Plataforma JADE

PASSANDO INFORMAÇÕES A UM AGENTE

Agente Comprador

de Livros

Page 9: Plataforma JADE

PASSANDO INFORMAÇÕES A UM AGENTE

Linha de comando no Prompt: javac CompradorDeLivros.java

java jade.Boot Jose:CompradorDeLivros("O-Pequeno-Principe")

Com a execução destas linhas tem-se o seguinte resultado:Ola!!! Eu sou o Agente Comprador Jose e estou pronto para comprar!

Pretendo comprar o livro: O-Pequeno-Principe

Caso não seja passado nenhum parâmetro na execução do agente, este imprimira a mensagem

Ola !!! Eu sou o Agente Comprador Jose e estou pronto para comprar!

Nao tenho livros para comprar!

Agente Comprador Jose@lap:1099/JADE esta finalizado

Page 10: Plataforma JADE

COMPORTAMENTOS

É necessário herdar as funcionalidades da classe: jade.core.behaviours.Behaviour Para que seja executado, deverá ser invocado:

addBehaviour( new MeuComportamento(this));

Page 11: Plataforma JADE

COMPORTAMENTOS

Toda classe que especifica o comportamento (Behaviour) de um agente deve possuir os seguintes métodos:

action() - neste método incluímos o código referente ao comportamento a ser executado pelo agente;

done() - este método devolve um valor booleano, indicando se o comportamento foi finalizado ou não.

Page 12: Plataforma JADE

COMPORTAMENTOS

Apos compilar ambas as classes, podemos executar um agente:

java jade.Boot Agent1:MeuAgente

O resultado desta execução e o seguinte:

Ola, eu sou um agente.

Estou disparando meu comportamento ...

* Ola Mundo! ... Meu nome e Agent1

* Ola Mundo! ... Meu nome e Agent1

* Ola Mundo! ... Meu nome e Agent1

* Ola Mundo! ... Meu nome e Agent1

Page 13: Plataforma JADE

EXECUÇÃO DOS COMPORTAMENTOS Escalonador - Uma fila de comportamentos ativos / Uma fila de comportamentos bloqueados.

A execução de um agente na plataforma JADE e constituída por três níveis básicos. São eles:

1. Inicialização Consiste na execução do método setup();

2. Realização da tarefa O escalonador seleciona o primeiro comportamento da fila e executa seu método action()

Apos a execução deste método, verifica-se a finalização do comportamento no método done().

Caso este comportamento ainda não esteja finalizado, o escalonador captura o próximo comportamento da lista de comportamentos ativos, colocando este comportamento ainda não finalizado no final da fila, para ser posteriormente executado, ou seja, este comportamento é bloqueado até que chegue sua vez de ser executado.

Quando um comportamento é finalizado, é removido da lista de comportamentos ativos e enviado para a lista de comportamentos bloqueados;

3. Limpeza e finalização Consiste na execução de métodos específicos para finalização do agente (e.g takeDown()).

Page 14: Plataforma JADE

CICLO DE EXECUÇÃO DE UM AGENTE

Page 15: Plataforma JADE

COMPORTAMENTOS PRÉ-DEFINIDOS

Pode-se agrupar os comportamentos oferecidos por JADE em quatro grupos:

1) Comportamentos one-shot: São tipos de comportamentos que se executam de maneira quase instantânea, e apenas uma vez;

done()sempre retorna valor TRUE.

2) Comportamentos cíclicos: São aqueles comportamentos que nunca finalizam. O método action() deste comportamento e sempre

executado pois done() sempre retorna FALSE;

3) Comportamentos temporais: São comportamentos que incluem uma relação temporal em sua execução;

4) Comportamentos compostos: São comportamentos que modelam situações especificas, tais como comportamentos sequenciais, paralelos,

etc.

Page 16: Plataforma JADE

COMUNICAÇÃO ENTRE AGENTES

A troca de mensagens na plataforma JADE realiza-se mediante mensagens FIPA-ACL (Agent Communication Language).

Cada agente possui uma fila de mensagens (caixa de entrada), Este agente decide o momento de ler estas

mensagens.

No momento desejado pelo agente este pode ler apenas a primeira mensagem, ou ler as mensagens que satisfazem algum critério.

Classe ACLMessage setPerformative(int)

getPerformative()

createReply()

addReceiver(AID)

getAllReceiver()

setContent(String)

getContent()

setContentObject(Serializable s):

getContentObject():

Page 17: Plataforma JADE

ENVIAR UMA MENSAGEM

1. Crie um objeto ACLMessage;

2. Use os métodos disponíveis para preencher os campos

3. Invoque o método send() da classe Agent. Este método recebe como parâmetro um objeto ACLMessage e adiciona automaticamente o campo do remetente com a identificação do agente, e envia a mensagem aos destinatários.

Page 18: Plataforma JADE

RECEBER UMA MENSAGEM

Deve-se utilizar o método receive() da classe Agent

Se não houver mensagens, o método retorna null

block() Este método coloca o

comportamento na lista de comportamentos bloqueados ate que uma nova mensagem chegue ao agente.

Se não invocamos este método, o comportamento cara em um doping e usará muito a CPU.

Page 19: Plataforma JADE

ENVIO E RECEBIMENTO DE MENSAGENS

Agente Alarmado Agente Bombeiro

Page 20: Plataforma JADE

PAGINAS AMARELAS

Como um agente pode localizar outros agentes que oferecem um determinado serviço, e obter seus identificadores para que possam se comunicar?

Serviço de paginas amarelas em um agente: o agente Directory Facilitator (DF)

padrão FIPA

Agentes que desejam divulgar seus serviços registram-se no DF, e os demais podem então buscar por agentes que provem algum serviço desejado.

Page 21: Plataforma JADE

REGISTRO

Para que um agente divulgue seus serviços, este deve se registrar nas paginas amarelas da plataforma, isto é, deve se registrar no DF.

Costuma-se definir o registro no DF como a primeira ação do agente em seu método setup().

Para isto, utilizamos o método register() fornecendo como parâmetro um objeto DFAgentDescription. Este método deve ser envolvido por um bloco de exceção.

Page 22: Plataforma JADE

BUSCA

Devemos criar um objeto DFAgentDescription, agora sem a AID do agente.

O processo e muito semelhante ao de registro, Criamos a descrição do serviço buscado da mesma maneira que

criamos a descrição de um serviço oferecido por um agente.

Page 23: Plataforma JADE

BUSCA - EXEMPLO

Page 24: Plataforma JADE

SOLICITANDO AJUDA

Page 25: Plataforma JADE

SOLICITANDO AJUDA

Interface Gráfica da Plataforma JADE. RMA Remote Management

Agent Várias funcionalidades

Agente Sniffer Este agente intercepta

mensagens ACL e as mostra graficamente usando uma notação semelhante aos diagramas de sequencia UML

Page 26: Plataforma JADE

NOTIFICAÇÃO

Ao invés do agente Pedinte ficar realizando uma busca de novos agentes que oferecem determinado serviço a cada minuto, este pode pedir para que o DF no tique-o sempre quando um novo agente que oferece o serviço desejado se registrar nas paginas amarelas.

Page 27: Plataforma JADE

FIM!