34
Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira [email protected]

Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets

  • Upload
    yamal

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets. Por Adriano L. I. Oliveira [email protected]. 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. Conceitos. Agente de software - PowerPoint PPT Presentation

Citation preview

Page 1: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets

Por Adriano L. I. [email protected]

Page 2: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

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

Exemplo do Mundo Real

Page 5: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

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

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

Aglet: Abstrações Básicas

Aglet

Proxy

Context

Message

Future reply

Identifier

Page 12: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

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

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

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

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

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

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

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

Padrão Mestre-Escravo: Participantes

Page 21: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

Padrão Mestre-Escravo: Colaboração

Page 22: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

Padrão Reunião: Participantes

Page 24: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

Padrão Reunião: Colaboração

Page 25: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

Padrão Itinerário: Participantes

Page 27: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

Padrão Itinerário: Colaboração

Page 28: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

Busca de Arquivos

Page 30: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

Arquitetura do Aglet Marketplace

Page 32: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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

Sistema de Detecção de Intrusão

Page 34: Desenvolvimento de Aplicações de Agentes Móveis Usando  Aglets

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