1 / 27

Plataforma JADE

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.

akeem-hardy
Télécharger la présentation

Plataforma JADE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Plataforma JADE Mauricio S Freitas

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

  3. A Plataforma • Java Agent DEvelopment • Ferramenta de Desenvolvimento de Agentes • Developedby Telecom Italia Lab. • Facilita a implementação de sistemas multi-agente através de um Middlewarede acordo com as especificações da FIPA • FIPA - Foundation for IntelligentPhysicalAgents • Esta organização define uma série de protocolos e standards para interação entre agentes.

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

  5. Hello World

  6. Identificadores • De acordo com o padrão FIPA • Cada instância de agente e identificada por um agentidentifier. • 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.

  7. Identificadores

  8. Passando Informações a um Agente • Agente Comprador de Livros

  9. Passando Informações a um Agente • Linha de comando no Prompt: javacCompradorDeLivros.java javajade.BootJose: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

  10. Comportamentos • É necessário herdar as funcionalidades da classe: jade.core.behaviours.Behaviour • Para que seja executado, deverá ser invocado: • addBehaviour( newMeuComportamento(this));

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

  12. Comportamentos • Apos compilar ambas as classes, podemos executar um agente: javajade.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

  13. 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: • Inicialização • Consiste na execução do método setup(); • 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; • Limpeza e finalização • Consiste na execução de métodos específicos para finalização do agente (e.gtakeDown()).

  14. Ciclo de Execução de um Agente

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

  16. 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():

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

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

  19. Envio e Recebimento de Mensagens Agente Alarmado Agente Bombeiro

  20. 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 DirectoryFacilitator(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.

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

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

  23. Busca - Exemplo

  24. Solicitando ajuda

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

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

  27. FIM!

More Related