UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
Orientação Prof. Dr. Ing. Carlos Eduardo Pereira
Sistemas Multi-agentes em Java utilizando a plataforma JADE
Me. Eng. JOÃO ALVAREZ PEIXOTO
1
Tópicos 1. Agentes 2. Plataforma JADE 3. Agentes em JADE 4. Comunicação entre Agentes 5. Páginas Amarelas 6. Protocolo FIPA Request 7. Protocolo FIPA ContractNet 8. Trabalho Avaliativo
Objetivo: implementar sistemas de manufatura utilizando sistemas multiagentes, a partir da plataforma JADE.
Avaliação: trabalho de implementação de sistema de manufatura, constando o conceito de sistemas multiagentes, comunicação padronizada e negociação entre os agentes.
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto
REFERÊNCIAS
2
TILAB Group. JAVA Agent Development Framework. Disponível em: <http://jade.tilab.com>. Acesso em: 25 mai. 2011.
SILVA, L. A. M. Estudo e Desenvolvimento de Sistemas Multiagentes usando JADE: Java Agent Development framework. 2003. 97 f. Monografia ( Trabalho de conclusão de curso de Bacharel em Informática) - Centro de Ciências Tecnológicas, Universidade de Fortaleza – UNIFOR , Fortaleza , 2003. Disponível em: < http://jade.cselt.it/papers/2003/monografia.pdf>. Acesso em 22 dez. 2011.
DEITEL, P. J.; DEITEL, H. M. Java how to program. 7. ed. Upper Saddle River : Pearson Prentice Hall, 2007. 1596 p. ISBN: 978-01-3222-220-4
BELLIFEMINE F.; CAIRE G.; GREENWOOD D. Developing multi-agent systems with JADE . West Sussex: John Wiley, 2004. 303 p. ISBN: 978-04-7005-747-6.
www.sun.com � Site para dowload do programa instalador do Java http://joao-peixoto.webnode.com.br � Site para dowload do material didático
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto
1. AGENTE
A FIPA (Foundation for Intelligent Physical Agents) define: “ O agente é uma entidade que reside em um ambiente onde interpretam dados
através de sensores, refletem eventos no ambiente e executam ações que produzem efeitos no ambiente.”
3
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto
1. AGENTE
Ferramentas necessárias para Implementar os agentes.
4
FIPA ACL
Plataforma JADE JAVA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto 5
1. AGENTE
Criada pela Sun Microsystems em 1995 com a finalidade de desenvolvimento de programas em ambientes heterogêneos ligados em rede, a linguagem JAVA teve seu objetivo inicial a utilização em sistemas isolados com quantidade mínima de memória. Com o crescimento da internet e da world wide web (www), esta linguagem se tornou um grande potencial para criação de páginas na WEB
com conteúdo dinâmico
a) execução convencional. b) execução por interpretador de bytecodes
1.1 - JAVA
Instalando JAVA
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto 6
1. AGENTE
1.2 - NETBEANS
Instalando
NETBEANS
O NetBeans IDE é um ambiente de desenvolvimento integrado (IDE) gratuito e de código aberto para desenvolvedores de software nas linguagens Java, entre outras. O IDE é executado em muitas plataformas, como Windows,Linux, Solaris e MacOS. O NetBeans IDE oferece aos desenvolvedores ferramentas necessárias para criar aplicativos profissionais de desktop, empresariais, Web e móveis multiplataformas.
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto 7
JADE (Java Agent DEvelopment framework) é um ambiente para desenvolvimento de aplicações baseada em agentes conforme as especificações da FIPA
(Foundation for Intelligent Physical Agents) para interoperabilidade entre sistemas multiagentes totalmente implementado em Java.
1. AGENTE 1.3 - JADE
Instalando JADE
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto
• AMS - Serviço de nomes; • DF - Serviços de páginas amarelas; • Transporte de mensagens; • Serviços de análise; • Biblioteca de protocolos de interação FIPA.
8
2. PLATAFORMA JADE
java jade.Boot –gui Ag1:nome_classe
java jade.Boot –container Ag2:nome_classe
java jade.Boot –container Ag3:nome_classe
java jade.Boot –container Ag4:nome_classe
1º
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto 9
2. PLATAFORMA JADE 2.1 - Agente em JADE
O agente em JADE é uma classe que extende a classe “Agente”. É composto de um método “setup()” que executa as ações do agente propriamente ditas; E um método “takeDown()”, que é invocado pelo método “doDelete()”, que encerra a execução do agente.
O agente é criado no momento em que é instanciado, através de comando.
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto 10
2. PLATAFORMA JADE 2.2 – Identificação do Agente - ID
Cada agente possui um identificador único na plataforma, definido quando da sua criação, postado no AMS.
<nome_local> @ <nome_da_plataforma>
A classe “AID” disponibiliza métodos para obter : o nome local � getLocalName() o nome global � getName() os endereços de um agente � getAllAddresses()
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto 11
2. PLATAFORMA JADE 2.3 – Passagem de informação para o Agente
O agente pode receber informações que lhes são passadas durante sua instância, através da linha de comando.
java jade.Boot –gui nome_agente : nome_classe (“parâmetro 1”,”parâmetro 2”,”parâmetro n”)
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL - ESCOLA DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA
João Alvarez Peixoto 12
2. PLATAFORMA JADE 2.3 Comunicação na Linguagem FIPA -ACL
Padrão FIPA-ACL encapsula uma mensagem, sendo dividido em campos com finalidades específicas
Sender Receivers Ontology Language Content Outros campos Performative
INFORM CFP REQUEST REFUSE PROPOSAL