Vous êtes sur la page 1sur 11

Documentao do exemplo BookTrading

por Adriano Mendes Gil


1. Ambiente
Linux Ubuntu 9.10
JDK 6
Eclipse 3.4.2
JADE 3.7
2. Como executar
2.1 Via linha de comando
Se o classpath j estiver configurado, pode-se utilizar os seguintes comandos:
Inicia a gui do Remote Monitoring Agent (RMA) do JADE (figura 1)
java jade.Boot -gui

Inicializa os Sellers agents


java jade.Boot -container seller:BookSellerAgent
java jade.Boot -container seller_01:BookSellerAgent
java jade.Boot -container seller_02:BookSellerAgent

Inicializa os Buyer agents e passa para cada um dele a string Book como
argumento
java jade.Boot -container buyer:BookBuyerAgent\(Book\)
java jade.Boot -container buyer_01:BookBuyerAgent\(Book\)
java jade.Boot -container buyer_01:BookBuyerAgent\(Book\)

Figura 1: Remote Management Agent GUI


2.2 Via eJade
Uma outra opo para executar o cdigo do bookTrading utilizar o plugin para o
ambiente Eclipse: eJade. Este plugin consiste em algumas alteraes na perspectiva Java do Eclipse.
Como mostra a figura 2, so adicionadas as seguintes funcionalidades ao Eclipse:
Boto start JADE, que inicia a RMA do JADE;
Boto shutdown JADE que fecha a gui do RMA do jade;
A opo Deploy Agent que permite executar o agente dentro de um novo container
da plataforma do JADE.
A opo Debug Agent que permite executar o agente dentro de um novo container da
plataforma do JADE e visualizar as informaes de debug dessa execuo.

Figura 2: Funcionalidades do plugin eJade.


3. Passo a passo da comunicao entre agentes
3.1 Busca por Vendedores
Este o passo inicial dado pelos agentes compradores. Ao serem iniciados desconhecem
a identificao dos agentes vendedores, ento utilizam dos servios de pginas amarela do directory
facilator (DF). A figura abaixo mostra este processo visualizado pelo sniffer do JADE. A tarefa de
perguntar ao DF o nomes do agentes vendedores feita pela performative REQUEST e sua resposta
feita pela performative INFORM.

Figura 3: Busca por Vendedores vista pelo sniffer.

3.2 Busca pelo melhor preo


O segundo passo dos agentes compradores descobrirem o agente vendedor com o
menor preo para o livro requerido. Ento enviada uma mensagem com o nome do livro a cada
agente vendedor utilizando da performative CFP. Este por sua vez, reponde com a performative
PROPOSE e o preo se o livro estiver no estoque do vendedor, caso contrrio, o livro est esgotado e a
resposta feita com a performative REFUSE.

Figura 4: Comunicao entre agentes quando o livro


requerido est em estoque.

Figura 5: Comunicao entre agentes quando o livro


requerido no est em estoque.
3.3 Negociao com o vendedor
O prximo passo para a finalizao do negcio o envio da performative
ACCEPT_PROPOSAL para o agente vendedor com o melhor preo. Caso este agente ainda possua o
livro enviado a performative INFORM para concluir o negcio. Caso o livro tenha sido vendido no
meio termo entre a pergunta pelo preo e seu pedido efetivo, ento enviada a performative FAILURE
que leva o agente comprador a voltar a busca pelo melhor preo. Na seo 3.4 so vistos exemplos de
comunicao entre os agentes em cada um dos casos citados.
3.4 Viso geral

Figura 6: Troca de mensagens quando o livro no est disponvel

Figura 7: Troca de mensagens quando o livro se torna indisponvel.

Figura 8: Troca de mensagens quando a compra executada com sucesso.

Figura 9: Comunicao entre agentes capturada pelo sniffer.

Apndice Figuras Extras

Figura 10: Executando agentes vendedores atravs do eJade.

Figura 11: Executando agentes compradores atrves do eJade.

Figura 12: Log de execuo do agente BookBuyerAgent.

Figura 13: Log de execuo do agente BookBuyerAgent_1.

Figura 14: Log de execuo do agente BookBuyerAgent_2

Figura 15: Log de execuo de um agente BookSellerAgent.

Figura 16: GUI do Remote Management Agent.