Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira...
Transcript of Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira...
![Page 2: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/2.jpg)
Roteiro
Introdução
Por Que Usar Agentes Móveis?
O Modelo Aglet
A API Aglet
Construção de Sistemas de Agentes Móveis
Aplicações
Referências
![Page 3: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/3.jpg)
Conceitos
Agente de software– Agentes cujo ambiente é o computador ou rede de
computadores
Agente estacionário– Executa apenas no sistema onde iniciou a execução– Para interagir com outros agentes usa mecanismos de
comunicação como RPC
Agente móvel– Pode se transportar, através da rede, de um sistema para
outro
![Page 4: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/4.jpg)
Exemplo do Mundo Real
![Page 5: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/5.jpg)
Por Que Usar Agentes Móveis?
Eles reduzem a carga da rede
App Serviço
ServiçoApp
Host A Host B
Abordagem baseada em agentes móveis
Abordagem baseada em RPC
![Page 6: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/6.jpg)
Por Que Usar Agentes Móveis?
Eles superam o problema da latência da rede
– Sistemas de tempo-real não toleram atrasos na resposta a mudanças em seu ambiente
– Agentes podem ser despachados de um controlador central para atuar localmente
Eles encapsulam protocolos– Eliminam o problema da atualização de
protocolos
![Page 7: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/7.jpg)
Por Que Usar Agentes Móveis?
Eles executam de forma assíncrona e autônoma
App Serviço
ServiçoAppReconecta e retorna
App Serviço
Envia o agente
Desconecta
X
![Page 8: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/8.jpg)
Por Que Usar Agentes Móveis?
Eles se adaptam dinamicamente
– Novas versões de agentes podem ser enviadas para
substituir versões antigas
– Agentes podem perceber seu ambiente e reagir a
mudanças autonomamente
Eles são naturalmente heterogêneos
Eles são robustos e tolerantes a falhas
– Quando um host está prestes a ser desligado, os agentes
podem se mover para outros hosts
– A possibilidade de operação desconectada e a arquitetura
distribuída e redundante eliminam pontos de falha centrais
![Page 9: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/9.jpg)
Aglets: O Que É?
Ambiente de trabalho para a construção de sistemas de agentes móveis desenvolvido pela IBM do Japão
Consiste em um kit de desenvolvimento de aglets e uma plataforma para sua execução
A API é um pacote de classes para Java
![Page 10: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/10.jpg)
Aglets versus Applets
Aglet estende o modelo de código móvel dos applets
Applet: – Código pode se mover do servidor para o cliente– Ambiente de execução: browser Web
Agglet: – Programa Java em execução (código + estado)
que pode se mover de um host para outro– Pode viajar seqüencialmente entre vários hosts,
podende, inclusive, voltar ao host original– Ambiente de execução: contexto (ex: Tahiti)
![Page 11: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/11.jpg)
Aglet: Abstrações Básicas
Aglet
Proxy
Context
Message
Future reply
Identifier
![Page 12: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/12.jpg)
Aglet: Modelo do Ciclo de Vida
Arquivo de Classes
Aglet Aglet
Disco
Contexto A Contexto B
Dispatch
Retract
Create ActivateDeactivate
Clone
Dispose
![Page 13: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/13.jpg)
A Classe Aglet
Classe abstrata usada como base para o desenvolvimento de aglets customizados
Define métodos para controlar seu próprio ciclo de vida
Define métodos que são chamados pelo ambiente do aglet antes da execução de cada operação do ciclo de vida
– Exemplos: onDispatch(), onCloning(), onDisposing()
![Page 14: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/14.jpg)
Transferência de um Aglet
Host A Host B
Passo 1
Passo 2
Passo 3
Campos de dados
+
Código da classe
Enviando Recebendo
Hospedando
Hospedando
Fluxo através da rede
![Page 15: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/15.jpg)
A Interface AgletProxy
O proxy age como um objeto escudo que protege o aglet de aglets maliciosos
Um aglet interage com outro aglet através de um proxy
Quando invocado, o objeto AgletProxy consulta o gerente de segurança para determinar se o contexto de execução atual pode executar o método
Outro papel importante de AgletProxy é prover transparência de localização para o aglet
![Page 16: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/16.jpg)
A Interface AgletContext
O contexto é um ambiente de execução uniforme para os aglets
AgletContext é usada pelos aglets para:– Obter informações sobre o ambiente– Enviar mensagens para o ambiente, inclusive para
outros aglets ativos neste
Tahiti:– Interface gráfica da IBM para o contexto– O usuário pode realizar as diversas operações do
ciclo de vida de um aglet
![Page 17: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/17.jpg)
A Classe Message
Aglets se comunicam através da troca de objetos da classe Message.
Criando o objeto message:– Message myName = new Message("my name", "Jacob");– Message yourName = new Message("your name?");
Mensagens são enviadas através de métodos de AgletProxy:– Object sendMessage(Message msg)– FutureReply sendFutureMessage(Message msg)– void sendOnewayMessage(Message msg)
![Page 18: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/18.jpg)
Construção de Sistemas de Agentes Móveis: Design Patterns
Design Patterns fazem parte do kit de desenvolvimento Aglets
Objetivo: identificar e formalizar bons elementos de projeto que sejam reutilizáveis para aplicações de agentes móveis
Os padrões disponíveis podem ser divididos em três classes:– Viagem (ex: padrão itinerário)– Tarefa (ex: padrão mestre-escravo)– Interação (ex: padrão reunião)
![Page 19: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/19.jpg)
Padrão Mestre-Escravo
O agente mestre pode delegar uma tarefa a um agente escravo
Aplicações:– Quando um agente precisa realizar uma
tarefa em paralelo com outras tarefas– Quando um agente estacionário precisa
realizar uma tarefa em um destino remoto
![Page 20: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/20.jpg)
Padrão Mestre-Escravo: Participantes
![Page 21: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/21.jpg)
Padrão Mestre-Escravo: Colaboração
![Page 22: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/22.jpg)
Padrão Reunião
Provê uma forma dos agentes estabelecerem interações locais em hosts específicos
Aplica-se nos seguintes casos:– Quando agentes precisam interagir e o custo de
sua locomoção para um local central é menor que o custo associado à comunicação remota
– Quando agentes não podem interagir remotamente
– Quando agentes precisam acessar serviços locais em determinado host
![Page 23: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/23.jpg)
Padrão Reunião: Participantes
![Page 24: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/24.jpg)
Padrão Reunião: Colaboração
![Page 25: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/25.jpg)
Padrão Itinerário
Encapsula os itinerários dos agentes e suas navegações entre múltiplos destinos
Deve ser usado quando se deseja:– Ocultar os detalhes do itinerário do agente para
promover modularidade em ambas as partes
– Prover uma interface uniforme para uma navegação seqüencial de agentes para múltiplos hosts
– Definir itinerários que possam ser compartilhados entre agentes
![Page 26: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/26.jpg)
Padrão Itinerário: Participantes
![Page 27: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/27.jpg)
Padrão Itinerário: Colaboração
![Page 28: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/28.jpg)
Aplicações
Busca de Arquivos
Comércio Eletrônico
Busca Distribuída
Sistema de Detecção de Intrusão
![Page 29: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/29.jpg)
Busca de Arquivos
![Page 30: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/30.jpg)
Aglet Meeting Place Middleware
Framework desenvolvido pela IBM que executa sobre Aglets.
Trata-se de um sistema multi-agente em que agentes de venda e de compra interagem uns com os outros.
A arquitetura define o papel dos proprietários do mercado, dos vendedores e dos consumidores.
Uma importante construção do AMPM é uma base de dados de tipos de mensagens.
Aplicado em http://www.tabican.ne.jp
![Page 31: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/31.jpg)
Arquitetura do Aglet Marketplace
![Page 32: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/32.jpg)
Busca Distribuída
Duas classe de agentes: Publishers e Searchers
Publisher:– Emite mensagens a respeito de novos
documentos publicados Searcher:
– Define, no momento da sua criação, os documentos que lhe interessam
– Registra interesse em receber mensagens de publisher
– Ao receber mensagem de publisher, verifica se o documento é interessante e informa ao usuário
![Page 33: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/33.jpg)
Sistema de Detecção de Intrusão
![Page 34: Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.ufpe.br.](https://reader036.fdocuments.net/reader036/viewer/2022070311/552fc143497959413d8dff2f/html5/thumbnails/34.jpg)
Referências
http://www.aglets.org
http://www.trl.ibm.co.jp/aglets
http://www.aglets.org/resources/articles/index.jsp
http://www.javaworld.com/javaworld/jw-04-1997/jw-04-agents.html
http://www.javaworld.com/javaworld/jw-04-1997/jw-04-hood.html
http://www.javaworld.com/javaworld/jw-05-1997/jw-05-hood.html