Você está na página 1de 34

Desenvolvimento de Aplicaes de Agentes Mveis Usando Aglets

Por Adriano L. I. Oliveira


alio@cin.ufpe.br

Roteiro

Introduo Por Que Usar Agentes Mveis? O Modelo Aglet

A API Aglet
Construo de Sistemas de Agentes Mveis

Aplicaes
Referncias

Conceitos

Agente de software
Agentes cujo ambiente o computador ou rede de computadores

Agente estacionrio
Executa apenas no sistema onde iniciou a execuo Para interagir com outros agentes usa mecanismos de comunicao como RPC

Agente mvel
Pode se transportar, atravs da rede, de um sistema para outro

Exemplo do Mundo Real

Por Que Usar Agentes Mveis?

Eles reduzem a carga da rede


App Servio

Host A

Abordagem baseada em RPC

Host B

App

Servio

Abordagem baseada em agentes mveis

Por Que Usar Agentes Mveis?

Eles superam o problema da latncia da rede


Sistemas de tempo-real no toleram atrasos na resposta a mudanas em seu ambiente Agentes podem ser despachados de um controlador central para atuar localmente

Eles encapsulam protocolos


Eliminam o problema da atualizao de protocolos

Por Que Usar Agentes Mveis?

Eles executam de forma assncrona e autnoma

App

Envia o agente

Servio

App

X
Desconecta

Servio

App

Reconecta e retorna

Servio

Por Que Usar Agentes Mveis?

Eles se adaptam dinamicamente


Novas verses de agentes podem ser enviadas para
substituir verses antigas Agentes podem perceber seu ambiente e reagir a mudanas

autonomamente

Eles so naturalmente heterogneos Eles so robustos e tolerantes a falhas


Quando um host est prestes a ser desligado, os agentes
podem se mover para outros hosts A possibilidade de operao desconectada e a arquitetura distribuda e redundante eliminam pontos de falha centrais

Aglets: O Que ?

Ambiente de trabalho para a construo de sistemas de agentes mveis desenvolvido pela IBM do Japo
Consiste em um kit de desenvolvimento de aglets e uma plataforma para sua execuo A API um pacote de classes para Java

Aglets versus Applets

Aglet estende o modelo de cdigo mvel dos applets Applet:


Cdigo pode se mover do servidor para o cliente Ambiente de execuo: browser Web

Agglet:
Programa Java em execuo (cdigo + estado) que pode se mover de um host para outro Pode viajar seqencialmente entre vrios hosts, podende, inclusive, voltar ao host original Ambiente de execuo: contexto (ex: Tahiti)

Aglet: Abstraes Bsicas

Aglet
Proxy

Context
Message Future reply Identifier

Aglet: Modelo do Ciclo de Vida


Contexto A Clone Aglet Retract Create Deactivate Activate Dispatch Aglet Dispose Contexto B

Arquivo de Classes

Disco

A Classe Aglet

Classe abstrata usada como base para o desenvolvimento de aglets customizados


Define mtodos para controlar seu prprio ciclo de vida Define mtodos que so chamados pelo ambiente do aglet antes da execuo de cada operao do ciclo de vida
Exemplos: onDispatch(), onCloning(), onDisposing()

Transferncia de um Aglet
Host A
Campos de dados

Host B
+ Cdigo da classe

Passo 1 Hospedando

Fluxo atravs da rede Passo 2

Enviando

Recebendo

Passo 3

Hospedando

A Interface AgletProxy

O proxy age como um objeto escudo que protege o aglet de aglets maliciosos Um aglet interage com outro aglet atravs de um proxy Quando invocado, o objeto AgletProxy consulta o gerente de segurana para determinar se o contexto de execuo atual pode executar o mtodo Outro papel importante de AgletProxy prover transparncia de localizao para o aglet

A Interface AgletContext

O contexto um ambiente de execuo uniforme para os aglets AgletContext usada pelos aglets para:
Obter informaes sobre o ambiente Enviar mensagens para o ambiente, inclusive para outros aglets ativos neste

Tahiti:
Interface grfica da IBM para o contexto O usurio pode realizar as diversas operaes do ciclo de vida de um aglet

A Classe Message

Aglets se comunicam atravs 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 so enviadas atravs de mtodos de AgletProxy:


Object sendMessage(Message msg) FutureReply sendFutureMessage(Message msg) void sendOnewayMessage(Message msg)

Construo de Sistemas de Agentes Mveis: Design Patterns

Design Patterns fazem parte do kit de desenvolvimento Aglets Objetivo: identificar e formalizar bons elementos de projeto que sejam reutilizveis para aplicaes de agentes mveis Os padres disponveis podem ser divididos em trs classes:
Viagem (ex: padro itinerrio) Tarefa (ex: padro mestre-escravo) Interao (ex: padro reunio)

Padro Mestre-Escravo

O agente mestre pode delegar uma tarefa a um agente escravo


Aplicaes:
Quando um agente precisa realizar uma tarefa em paralelo com outras tarefas Quando um agente estacionrio precisa realizar uma tarefa em um destino remoto

Padro Mestre-Escravo: Participantes

Padro Mestre-Escravo: Colaborao

Padro Reunio

Prov uma forma dos agentes estabelecerem interaes locais em hosts especficos
Aplica-se nos seguintes casos:
Quando agentes precisam interagir e o custo de sua locomoo para um local central menor que o custo associado comunicao remota
Quando agentes no podem interagir remotamente Quando agentes precisam acessar servios locais em determinado host

Padro Reunio: Participantes

Padro Reunio: Colaborao

Padro Itinerrio

Encapsula os itinerrios dos agentes e suas navegaes entre mltiplos destinos


Deve ser usado quando se deseja:
Ocultar os detalhes do itinerrio do agente para promover modularidade em ambas as partes
Prover uma interface uniforme para uma navegao seqencial de agentes para mltiplos hosts Definir itinerrios que possam ser compartilhados entre agentes

Padro Itinerrio: Participantes

Padro Itinerrio: Colaborao

Aplicaes

Busca de Arquivos Comrcio Eletrnico Busca Distribuda Sistema de Deteco de Intruso

Busca de Arquivos

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 proprietrios do mercado, dos vendedores e dos consumidores. Uma importante construo do AMPM uma base de dados de tipos de mensagens. Aplicado em http://www.tabican.ne.jp

Arquitetura do Aglet Marketplace

Busca Distribuda

Duas classe de agentes: Publishers e Searchers Publisher:


Emite mensagens a respeito de novos documentos publicados

Searcher:
Define, no momento da sua criao, 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 usurio

Sistema de Deteco de Intruso

Referncias

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/jw04-agents.html
http://www.javaworld.com/javaworld/jw-04-1997/jw04-hood.html http://www.javaworld.com/javaworld/jw-05-1997/jw05-hood.html

Você também pode gostar