jade - java agent development frameworkin1111/081/slides/jade.pdf · sociedades de agentes 4...

88
JADE - Java Agent DEvelopment Framework Fernando, Ícaro e Thiago CIn - UFPE 9 de abril de 2008 Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 1 / 88

Upload: others

Post on 15-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

JADE - Java Agent DEvelopment Framework

Fernando, Ícaro e Thiago

CIn - UFPE

9 de abril de 2008

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 1 / 88

Page 2: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Roteiro1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 2 / 88

Page 3: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Seções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 3 / 88

Page 4: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Histórico

1998Validação dos padrões FIPA:

FIPA: Foundation for Intelligent Physical Agents (www.fipa.org);

Telecom Itália;2000

Open Source sob a licença LGPL (Lesser General Public License);http://jade.tilab.com;

2003JADE Governing Board:

Grupo de empresas comprometidas com o desenvolvimento e apromoção de JADE;TILAB, Motorola, Whitestein Technologies AG, Profactor GmbH eFrance Telecom R&D.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 4 / 88

Page 5: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Introdução

Framework e Middleware para desenvolvimento de sistemasmulti-agentes;Compatível com os padrões FIPA para agentes inteligentes;Desenvolvido em JAVA.

ConsolidadoSuporte a sistemas distribuídosNúmero de bibliotecasMultiplataforma

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 5 / 88

Page 6: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Introdução II

JADE consiste em:Um ambiente para sistemas multi-agentes compatível com ospadrões FIPA;Bibliotecas Java que provêem uma série de funcionalidades paraSMA;Um conjunto de ferramentas gráficas:Facilita o monitoramento e administração dos agentes;Suporte a Agentes Móveis;Suporte a tecnoloias WEB, JSP, Web Service;Suporte a J2ME

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 6 / 88

Page 7: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

O básico do JADE

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 7 / 88

Page 8: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Comparação com outros SMA - JASON

JASON : A Java-based AgentSpeak Interpreter Used With SaciFor Multi-agent Distribution Over the Net;Plataforma que implementa AgentSpeak(L), uma linguagemabstrata baseada na arquitetura BDI;Pontos positivos: Facilmente distribuído pela rede (pelo SACI),tratamento de falhas na execução de planos, troca de mensagensbaseadas em speech act, desenvolvimento de ambiente, internalactions pré-definidas e definição de novas internal actions pelousuário;Pontos negativos: Não existe um serviço de nomes e páginasamarelas, impossível a troca de papéis entre agentes,inadequado para sistemas multi-agentes abertos e poucaflexibilidade quanto à troca de mensagens.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 8 / 88

Page 9: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Comparação com outros SMA - JADEX

Arquitetura BDI(Believe, Desire, Intention) Crenças, Desejos eIntenções por Bratman (1987);Representação explicita de objetivo;Utiliza XML e JAVA;Conceitos de racionalidade: crenças, planos, objetivos...ADF - Agent Definition File, baseado em XML;

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 9 / 88

Page 10: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Funcionalidades/Pacotes

jade.core:Pacote com o núcleo do sistema;Agent, jade.core.behaviours;

jade.lang.acl:Processa a Agent Communication Language(ACL) de acordo comos padrões FIPA;

jade.content:Conjunto de classes que dão suporte ao uso de ontologias econtent-languages definidas pelo usuário;

jade.domain:Contém as classes que dão suporte à gerência dos agentesproposta pelos padrões FIPA (DF, AMS);jade.domain.FIPAAgentManagement.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 10 / 88

Page 11: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Funcionalidades/Pacotes

jade.gui:Conjunto de classes genéricas que auxiliam a criação de interfacespara agentes com GUI;

jade.mtp:Possui uma interface que todo protocolo de transporte demensagem deve implementar para estar integrado com JADE,possui duas implementações o HTTP e o IIOP;

jade.proto:Classes que modelam os protocolos de iteração padrãoespecificados pela FIPA, facilitando a extenção de protocolos pelousuário;

jade.wrapper:Contém uma coleção de wrappers que permitem o uso de JADEcomo uma biblioteca, onde aplicações externas podem acessaragentes e containers.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 11 / 88

Page 12: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 12 / 88

Page 13: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Plataforma do Agente

A plataforma pode ser distribuida entre vários hostsCada host contendo um container de agentes:

Provendo um ambiente completo para execução dos agentes;Permitindo que os agentes executem concorrentemente (umathread por agente);

O primeiro container a ser iniciado é o main containerAMS (Agent Management System);DF (Directory Facilitator);ACC (Agent Communication Channel);

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 13 / 88

Page 14: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Arquitetura

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 14 / 88

Page 15: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

AMS (Agent Management System)

É o agente que supervisiona e controla toda a plataforma;Só existe um AMS por plataforma;Fornece serviço de páginas brancas:

Agentes registram com o AMS para receber um AID (AgentIdentification);

Controla o ciclo de vida dos agentes.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 15 / 88

Page 16: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Serviços

DF (Directory facilitator):Fornece serviço de páginas amarelas;Publica o serviço de outros agentes registrados na plataforma,facilitando a cooperação;

ACC (Agent Communication Channel):Também chamado de Message Transport System(MTP);Controla toda a troca de mensagens dentro da plataforma.Por default JADE carrega a implementação MTP com HTTP:http://ufpe_cin:7778/accIMTP:(Internal Message Transport Protocol): utiliza RMI.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 16 / 88

Page 17: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Plataforma JADE para agentes

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 17 / 88

Page 18: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 18 / 88

Page 19: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Criando um agente JADE

Um agente é criado extendendo-se a classe jade.core.Agent;Agent contém:

Funcionalidades para prover iterações básicas com a plataforma(registro,configuração ...);Métodos que implementam comportamentos básicos do agente(enviar/receber mensagens, usar protocolos padrões paraiterações);

Cada serviço provido por um agente deve ser implementado naforma de um ou mais behaviours que são executadosconcorrentemente.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 19 / 88

Page 20: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Agent Identifier - AID

Cada agente tem um AID único;AID é uma instância da classe jade.core.AID;O AID é criado ao se registrar o agente em um AMS;Um AID contém:

Um nome único para o agente no formato:nickname@platform-name;

Um conjunto de endereços, cada agente herda o endereço detransporte de sua Plataforma de Agente;Um conjunto de resolvers, por exemplo, serviços de páginasbrancas em que o agente está registrado.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 20 / 88

Page 21: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Ciclo de vida de um agente

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 21 / 88

Page 22: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Ciclo de Vida de um agente

Segundo a especificação do ciclo de vida de um agente propostopela FIPA, o mesmo pode estar em seis estados diferentes, sendoeles:Initiated

O objeto do agente foi construído, mas este não foi registrado noAMS portanto não tem nome nem endereço, e consequentementenão pode se comunicar com outros agentes;

ActiveO agente foi registrado no AMS e já tem acesso a todas asfuncionalidades de JADE;

SuspendedO agente está parado, nenhum behaviour está sendo executado.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 22 / 88

Page 23: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Ciclo de Vida de um agente

WaitingO agente está bloqueado (dormindo) e vai acordar quando algumacondição for satisfeita (tipicamente quando receber certamensagem);

DeletedO agente está definitivamente morto, finalizou sua execução e foiremovido do AMS;

TransitEstado em que o agente se encontra enquanto está migrando paraoutra localidade, o sistema guarda suas mensagens para depoisenviar para a nova localidade.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 23 / 88

Page 24: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Seções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 24 / 88

Page 25: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

O que é um Behaviour

Agentes operam independentemente e executam em paralelocom outros agentes;A maneira mais óbvia de implementar é usando uma Java Threadpara cada agente;Mas há a necessidade de um paralelismo interno, pois cadaagente pode ter mais de uma função;Para isso JADE introduziu o conceito de behaviour;Um behaviour é basicamente um event handler ;Em geral implementa os serviços que o agente provê.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 25 / 88

Page 26: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Implementando um Behaviour

Inicialmente é necessário criar uma classe que extenda a classejade.core.behaviours.Behaviour;Implementar nessas classes os métodos:

action() - define as operações que ocorrerão durante aexecução do behaviour;done() - informa se um behaviour completou sua execução;

Finalmente, incluir o behaviour em um agente:Instanciar a classe criada;Inclui-lo nas tarefas do agente através do métodoaddBehaviour().

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 26 / 88

Page 27: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Behaviours

Cada agente possui uma fila com todos os seus behaviours;A qualquer momento novos behaviours podem ser inseridosnessa fila;Na verdade eles não executam em paralelo:

round-robin non-preemptive;Evitar loops infinitos;e operações muito longas no método action().

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 27 / 88

Page 28: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Behaviours II

Ao fim da execução do action() o método done() é chamado,caso a resposta seja positiva o behaviour é removido da fila;Cada behaviour pode bloquear sua execução através do métodoblock():

Só bloqueia ao retornar do action();Volta a executar quando recebe uma mensagem;

Importante bloquear novamente caso a mensagem não seja deinteresse;

block(milissegundos) atrasa a próxima execução dobehaviour.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 28 / 88

Page 29: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Primitive Behaviours

CyclicBehaviourExecuta sempre, enquanto o agente estiver ativo;Seu método done() sempre retorna false;

OneShotBehaviourExecuta somente uma vez;Seu método done() sempre retorna true;

ReceiverBehaviourExecuta quando uma certa mensagem é recebida,Ou um emphtimeout expira.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 29 / 88

Page 30: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Primitive Behaviours

WakerBehaviourExecuta o código (apenas uma vez) depois de um timeout;O código do usuário fica no método handleElapsedTimeout();O timeout é passado no construtor;

TickerBehaviourBehaviour cíclico, que executa o código a cada intervalo de tempodefinido;O intervalo de tempo e passado no construtor;O código do usuário fica no método onTick().

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 30 / 88

Page 31: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Seções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 31 / 88

Page 32: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Conceitos

Passagem de mensagem assíncrona;

Mailbox;Padrão FIPA-ACL (sender, receiver, performative:(REQUEST, INFORM), content, language, ontology, etc);Comunicação transparente em relação à localização do agente.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 32 / 88

Page 33: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Enviando mensagens

Preencher campos de ACLMessage e usar o método send() daclasse Agent!

ACLMessage msg = new ACLMessage(ACLMessage.INFORM);msg.addReceiver(new AID("Peter", AID.ISLOCALNAME));msg.setLanguage("English");msg.setOntology("Weather-forecast-ontology");msg.setContent("Today it’s raining");this.send(msg);

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 33 / 88

Page 34: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Recebendo mensagens

Usar o método receive() da classe Agent!

ACLMessage msg = receive();if (msg != null) {

// Processa a mensagem}

blockingReceive() - supende os comportamentos !

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 34 / 88

Page 35: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Respondendo mensagens

Método createReply() para definir os campos de conversação(conversation-id, reply-with, in-reply-to)!

private class MyBehaviour extends CyclicBehaviour {public void action() {ACLMessage msg = myAgent.receive();if (msg != null) {String title = msg.getContent();ACLMessage reply = msg.createReply();// Processa a mensagem

}else{

block();}

}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 35 / 88

Page 36: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

MessageTemplate

Acesso à mensagens por casamento de padrões, em detrimentoao modo FIFO;Padrões elementares podem ser combinados com operadoresAND, OR e NOT;O usuário também pode implementar “casamentos” específicosusando a classe MatchExpression.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 36 / 88

Page 37: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Exemplo de MatchExpression

public Class MatchExp implements MatchExpression {List senders;myMatchExpression(List l){

senders = l;}public boolean match(ACLMessage msg){AID sender = msg.getSender();String name = sender.getName();Iterator i = senders.iterator();boolean out = false;while(i.hasNext() && !out){String tmp = ((AID)i.next()).getName();if(tmp.equalsIgnoreCase(name))out = true;

}return out;

}}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 37 / 88

Page 38: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Exemplo de MatchTemplate

public class MatchExampleAgent extends Agent {protected void setup() {

// . . .ArrayList sender = . . . ;MatchExp me = new MatchExp(sender);MessageTemplate template = new MessageTemplate(me);MessageTemplate mt = MessageTemplate.and(template,

MessageTemplate.MatchPerformative(ACLMessage.REQUEST));WaitBehaviour behav = new WaitBehaviour(this,mt);addBehaviour(behav);

}}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 38 / 88

Page 39: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Comunicação baseada em tópicos

Ao invés de mandar mensagens para um ou mais recebedores,manda-se a um tópico;Essas mensagens são entregues aos agentes que seinscreveram nesse tópico;Usado através da classejade.core.messaging.TopicManagementService, quedeve ser ativada nos contêineres da plataforma;A classe MatchTemplate tem uma método para tratar tópicos:MatchTopic().

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 39 / 88

Page 40: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 40 / 88

Page 41: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Protocolos - introdução

A FIPA especifica um conjunto de protocolos de interaçãopadrões, usados como templates para construir conversações;Papel Initiator x Papel Responder;Atuar significa implica em executar alguma tarefa e portanto asclasses de protocolo são comportamentos;Delegação de tarefas: um coordenador e atores para seguir aseqüência de mensagens -> FIPA-Contract-Net;Outros problemas como leilões, inscrição para notificações,negociações, etc -> jade.proto .

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 41 / 88

Page 42: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

FIPA ContractNet

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 42 / 88

Page 43: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

ContractNet no JADE

ContractNetInitiator: implementa o protocolo do ponto devista do agente iniciando-o e lida também com a espera derespostas;

Métodos para lidar com estados do protocolo que são chamadosquando são recebidas certos tipos de mensagem.

ContractNetResponder: ponto de vista dos agentes querespondem o CFP:

Pode-se estender sobrescrevendo-se os métodos prepareXX()para lidar com os estados do protocolo e com as respostas.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 43 / 88

Page 44: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Demais IP FIPA em JADE

FIPA-ProposeFIPA-QueryFIPA-Request

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 44 / 88

Page 45: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 45 / 88

Page 46: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Sociedades

Papéis, hierarquias, normas, testemunhos, sanções, etc;Propostas não visam aplicação a ambientes como JADE, aindatratam apenas de metodologias para modelagem;Implementar em JADE fica a cargo do programador;ASF (Agent Society Framework) (Silva et al., 2004) ;Governando SMA usando normas e sanções baseadas emtestemunho (Silva et al., 2007).

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 46 / 88

Page 47: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Seções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 47 / 88

Page 48: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Páginas amarelas

Serviço para agentes publicarem descrições de um ou maisserviços que oferecem;Qualquer agente pode publicar serviços e buscar para descobrirserviços;FIPA: agente especializado chamado DF (Directory Facilitator);DF’s podem ser conjugados para fornecer um ponto único edistribuído para o catálogo.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 48 / 88

Page 49: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Interagindo com o DF: DFService

Publicação: descrição com AID, lista de serviços eopcionalmente, lista de linguagens e ontologias;DFAgentDescription dfd = new DFAgentDescription ( ) ;dfd .setName (this .getAID ( ) ) ;ServiceDescription sd = new ServiceDescription ( ) ;sd .setType ("Book-selling") ;sd .setName (this .getLocalName ( ) +"-Book-selling") ;dfd .addServices (sd ) ;DFService .register (this , dfd ) ;

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 49 / 88

Page 50: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Procurando serviços

Busca: Prover ao DF uma descrição em template. O resultado é alista de descrições que casa com o template provido.

Vector sellerAgents;DFAgentDescription template = new DFAgentDescription();ServiceDescription sd = new ServiceDescription();sd.setType("Book-selling");template.addServices(sd);DFAgentDescription[] result = DFService.search(myAgent,

template);sellerAgents.clear();for (int i = 0; i < result.length; ++i) {

sellerAgents.addElement(result[i].getName());}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 50 / 88

Page 51: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Seções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 51 / 88

Page 52: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 52 / 88

Page 53: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Behaviour Complexos

Tarefas Complexas;CompositeBehaviour: Classe Abstrata

getCurrent();scheduleFirst();scheduleNext();

Implementações:SequentialBehaviour;FSMBehaviour;ParallelBehaviour:

WHEN_ALL, WHEN_ANY.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 53 / 88

Page 54: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Diagrama de Behaviour

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 54 / 88

Page 55: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

FSMBehaviour

Máquina de Estados;Tabela de Transição;Métodos:

registerState(Behaviour, String); Registrando umcomportamento como um estado com a label da String.registerTransition(String, String, Integer);Estados e o Integer da transição retornado por doEnd()registerFirstState() e registerLastState().

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 55 / 88

Page 56: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Implementação FSMBehaviour

FSMBehaviour sampleFSM = new FSMBehaviour(anAgent);sampleFSM.registerFirstState(new OneShotBehaviour(anAgent) {

public void action() { /* X */ }public int onEnd() { return (success ? 0 : 1); }

,"X");sampleFSM.registerState(new WakerBehaviour(anAgent, 2000) {public void action() { /* Y */ }

},"Z");sampleFSM.registerState(new TickerBehaviour(anAgent, 8000) {

public void action() { /* Z */ }}, "Y");

sampleFSM.registerTransition("X", "Y", 1);sampleFSM.registerTransition("X", "Z", 0);

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 56 / 88

Page 57: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

DataStore e Threated Behaviour

DaraStore:Armazena dados para os comportamentosProblema de acessar dados de outros Comportamentos;Basicamente um Map, extends HashMap;getDataStore() e setDataStore();

Threated Behaviour:(LEMBRANDO!) Behaviours em JADE são não-preempitivos;Problema: Operação de bloqueio suspende todos oscomportamentos;Solução: usar um Wrapper;ThreadedBehaviourFactory; Coloca um Behaviour em umaThread dedicada.Coloca o comportamento dentro de uma thread;Atenção especial ao remover o comportamento, encerrarexplicitamento com a chamada de interrupt() na suaThread;

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 57 / 88

Page 58: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

ThreadedBehaviourFactory

private ThreadedBehaviourFactory tbf = newThreadedBehaviourFactory();

protected void setup() {Behaviour bb = new MyBehaviour(this);addBehaviour(tbf.wrap(b));

}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 58 / 88

Page 59: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 59 / 88

Page 60: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Iniciando JADE em uma aplicação externa

jade.core.Runtime; Possui dos métodos citados abaixo.Ambos requerem um objeto Profile como parametro.

createMainContainer(), createAgentContainer();Criam Containers e retornam ContainerController.Profile: setParameter(...); Opções da linha decomando em constantes da classe.jade.wrapper.ContainerController; Funcionalidades daplataforma, createNewAgent....

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 60 / 88

Page 61: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Exemplo

public void startJADE(String host, String port){Runtime rt = Runtime.instance();Profile p = new ProfileImpl();p.setParameter(Profile.MAIN_HOST, host);p.setParameter(Profile.MAIN_PORT, port);ContainerController cc = runtime.createAgentContainer(p);if(cc!=null){

AgentController ac = cc.createNewAgent("Thiago","br.ufpe.cin.Mestrando",null);

ac.start();}

}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 61 / 88

Page 62: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 62 / 88

Page 63: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Agentes Móveis

Tem todas as características de um agente(autonômo, reativo,proativo, social...) além de estar dotado de mobilidade.Motivações: Assincronia e processamento independente,tolerância a falha.Agente Móvel: Código, estado e dados;Migração: Forte e Fraca;JADE: Agent Mobility Service (intra-plataforma);

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 63 / 88

Page 64: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Mobilidade no JADE

Agent:void doMove(Location destino);

Interface Location: class ContainerID, classPlataformID;

beforeMove(), afterMove(); Respectivamente, liberarrecursos, chamado no novo endereço antes do reinicio doscomportamentosACTIVE to TRANSIT; Mudança de estado,Atenção na serialização; atributos não serializaveis modificar paratransient evitando NotSerializableException.INTER-PLATFORM MOBILITY SERVICE; Especificada pelaFIPA, utiliza ACL e ontologias de mobilidade.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 64 / 88

Page 65: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Implementação de Agentes Móveis

String containerName = "cin-2";ContainerID destination = new ContainerID();destination.setName(containerName);myAgent.doMove(destination);AID remoteAMS = new AID("ams@remotePlatform:1099/JADE", AID.

ISGUID);remoteAMS.addAddresses("http://remotePlatformaddr:7778/acc");PlatformID destination = new PlatformID(remoteAMS);myAgent.doMove(destination);

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 65 / 88

Page 66: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 66 / 88

Page 67: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

JADE LEAP

Motorola, Siemens, Ericsson e Telecom Itália;Transparente para desenvolvedor;Possível execução em Microsfot.NET frameworkLimitação dos dispositivosDistribuições:

J2SE;pJava;MIDP;

Internal MTP: protocolo ICP

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 67 / 88

Page 68: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Ambientes

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 68 / 88

Page 69: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Modo de execução SPLIT

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 69 / 88

Page 70: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

JADE e Web Services

Web Services Integration Gateway (WSIG); Encapsula asfuncionalidades exigidas para integrar esses domíniosTransparência bidirecional;Futuro Web Services Semânticos;

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 70 / 88

Page 71: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Visões

No ponto vista dos agentes, Web Services são entidadescomputacionais que podem ser chamadas para executaroperações reativas, publicadas ou descobertas.Para usuários de Web Services, agentes são uma poderosamaneira indireta para abstrair os Web Services, para fins deredirecionamento, integração, agregação e administração.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 71 / 88

Page 72: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Tecnologia dos Web Services

WSDL(Web Service Descripti on Language);Forma padrão deexpressar a descrição dos serviços WEBUDDI(Universal Description, Discovery and Integration); Umdiretório services schema comumente usado para buscar eregistrar Web ServicesSOAP(Simple Object Access Protocol);Protocolo definido paratroca de mensagens contendo requisições e respostas de WebServices.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 72 / 88

Page 73: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Web Services Integration Gateway

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 73 / 88

Page 74: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 74 / 88

Page 75: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

JESS - Java Expert System Shell

Trata-se de uma ferramenta escrita em JAVA que provê umalinguagem orientada a regras;Recomendada para implementar racionalidade em agentes JADE;Possível acessar objetos JAVA dentro da linguagem;Permite associar JAVA Beans a fatos.

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 75 / 88

Page 76: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 76 / 88

Page 77: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Ontologias em Jade

Para discussão sobre tópicos num domínio D usando umalinguagem L, uma ontologia provê um catálogo de tipos de coisasque se supõe existirem em D; onde os tipos são representadosem termos de conceitos, relações, e predicados de L (Devedzic,2006);Para interações complexas, deve-se definir um entendimento dossímbolos e conceitos (vocabulário do domínio) usados noconteúdo das mensagens;jade.content.onto.Ontology: schemas definindo aestrutura dos tipos de predicado (PredicateSchema), ações(AgentActionSchema) e conceitos relevantes ao domínio deinteresse (ConceptSchema) (Caire, 2002).

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 77 / 88

Page 78: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Definindo uma ontologia I

public class MusicShopOntology extends Ontology {public static final String ONTOLOGY_NAME = "Music-shop-ontology" ;/ / . . .public static final String CD = "CD" ;public static final String CD_NAME = "name" ;public static final String CD_TRACKS = "tracks" ;public static final String OWNS = "Owns" ;public static final String OWNS_OWNER = "owner" ;public static final String OWNS_ITEM = "item" ;/ / . . .private MusicShopOntology ( ) {

super (ONTOLOGY_NAME , BasicOntology .getInstance ( ) ) ;add (new ConceptSchema (CD ) , CD .class ) ;add (new PredicateSchema (OWNS ) , Owns .class ) ;ConceptSchema cs = (ConceptSchema ) getSchema (ITEM ) ;cs .add (ITEM_SERIAL , (PrimitiveSchema ) getSchema (BasicOntology .

INTEGER ) ,ObjectSchema .OPTIONAL ) ;cs = (ConceptSchema ) getSchema (CD ) ;cs .addSuperSchema ( (ConceptSchema ) getSchema (ITEM ) ) ;cs .add (CD_NAME , (PrimitiveSchema ) getSchema (BasicOntology .STRING ) ) ;cs .add (CD_TRACKS , (ConceptSchema ) getSchema (TRACK ) , 1 ,ObjectSchema .

UNLIMITED ) ;

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 78 / 88

Page 79: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Definindo uma ontologia II

PredicateSchema ps = (PredicateSchema ) getSchema (OWNS ) ;ps .add (OWNS_OWNER , (ConceptSchema ) getSchema (BasicOntology .AID ) ) ;ps .add (OWNS_ITEM , (ConceptSchema ) getSchema (ITEM ) ) ;

}}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 79 / 88

Page 80: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Registrando uma ontologia

public class SellerAgent extends Agent {private Codec codec = new SLCodec();private Ontology ontology = MusicShopOntology.getInstance();// . . .protected void setup() {

// . . .getContentManager().registerLanguage(codec);getContentManager().registerOntology(ontology);// . . .

}// . . .

}

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 80 / 88

Page 81: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

BeanGenerator

Desenvolver a classe para a ontologia e as classes representandoos predicados, conceitos e ações “na mão” consome tempo;Plug-in beangenerator: Ontologias usando Protégé mapeadaspara definições de classes para a ontologia, seus predicados,ações do agente e conceitos;

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 81 / 88

Page 82: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

BeanGenerator - screenshot

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 82 / 88

Page 83: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Subseções1 Introdução

Plataforma de AgentesClasse Agent

2 Comportamentos3 Comunicação

Protocolos de InteraçãoSociedades de Agentes

4 Serviço de Descoberta5 Funcionalidades e Usos Avançados

Behaviours avançadosAplicações ExternasAgentes MóveisAgentes em Dispositivos MóveisJADE e JESSAgentes e OntologiasAgentes e Web Semântica

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 83 / 88

Page 84: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Web Semântica!

Figura: Camadas da Web Semântica (Activity, 2007).

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 84 / 88

Page 85: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

SMA e Web Semântica: Propostas

Nuin: arquitetura para agentes em aplicações de Web Semântica,usando BDI e aproveitando a infra-estrutura da Web (Dickinsonand Wooldridge, 2003);SemantiCore: agentes lidando com ontologias e com a naturezadistribuída da Web, integrando com ferramentas Web (Blois et al.,2007);BeanGenerator: Usando ontologias em OWL para comunicação(van Aart et al., 2002);AgentOWL: Conectando Jade e Jena com OWL (Laclavik et al.,2006).

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 85 / 88

Page 86: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Outros tópicos

Metodologias: Analise e projeto voltado a JADE Nikraz et al.(2004), Analise com GAIA, projeto com JADE Moraitis et al.(2003)

Fernando, Ícaro e Thiago (CIn - UFPE) JADE - Java Agent DEvelopment Framework 9 de abril de 2008 86 / 88

Page 87: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Referências I

Activity, W. S. W. (2007). Semantic web layer cake.http://www.w3.org/2007/03/layerCake.png.

Bellifemine, F., Caire, G., Trucco, T., and Rimassa, G. (2007). Jade programmer’s guide.http://jade.tilab.com/doc/programmersguide.pdf.

Bellifemine, F., Poggi, A., and Rimassa, G. (2001). Developing multi-agent systems with jade. InATAL ’00: Proceedings of the 7th International Workshop on Intelligent Agents VII. AgentTheories Architectures and Languages, pages 89–103, London, UK. Springer-Verlag.

Blois, M., Escobar, M., and Choren, R. (2007). Using agents and ontologies for applicationdevelopment on the semantic web. Journal of the Brazilian Computer Society, 13:25–36.

Caire, G. (2002). JADE tutorial: Application-defined content languages and ontologies.http://sharon.cselt.it/projects/jade/doc/CLOntoSupport.pdf.

Devedzic, V. (2006). Semantic Web and Education (Integrated Series in Information Systems).Springer-Verlag New York, Inc., Secaucus, NJ, USA.

Dickinson, I. and Wooldridge, M. (2003). Towards practical reasoning agents for the semanticweb. In AAMAS ’03: Proceedings of the second international joint conference on Autonomousagents and multiagent systems, pages 827–834, New York, NY, USA. ACM.

Laclavik, M., Balogh, Z., Babik, M., and Hluchý, L. (2006). Agentowl: Semantic knowledge modeland agent architecture. Computers and Artificial Intelligence, 25(5).

Moraitis, P., Petraki, E., and Spanoudakis, N. (2003). Engineering jade agents with the gaiamethodology.

Page 88: JADE - Java Agent DEvelopment Frameworkin1111/081/slides/JADE.pdf · Sociedades de Agentes 4 Serviço de Descoberta 5 Funcionalidades e Usos Avançados Behaviours avançados Aplicações

Referências II

Nikraz, M., Caire, G., and Bahri, P. A. (2004). A methodology for the analysis and design ofmulti-agent systems using jade.MagidNikraz1a,GiovanniCaireb,andParisaA.Bahria.

Silva, V. T., Cortés, M. I., and Lucena, C. J. P. d. (2004). An object-oriented framework forimplementing agent societies. MCC32/04.

Silva, V. T., Duran, F., Guedes, J., and Lucena, C. J. P. d. (2007). Governing multi-agent systems.Journal of the Brazilian Computer Society, 13(2):19–34.

van Aart, C., Pels, R., Caire, G., and Bergenti, F. (2002). Creating and using ontologies in agentcommunication. http://jade.tilab.com/papers/PaperCaireAart.pdf.