A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira

Apresentações semelhantes


Apresentação em tema: "Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira"— Transcrição da apresentação:

1 Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira

2 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

3 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

4 Exemplo do Mundo Real

5 Por Que Usar Agentes Móveis? Eles reduzem a carga da rede AppServiço App Host AHost B Abordagem baseada em agentes móveis Abordagem baseada em RPC

6 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

7 Por Que Usar Agentes Móveis? Eles executam de forma assíncrona e autônoma AppServiço App Reconecta e retorna AppServiço Envia o agente Desconecta X

8 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

9 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

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

11 Aglet: Abstrações Básicas Aglet Proxy Context Message Future reply Identifier

12 Aglet: Modelo do Ciclo de Vida Arquivo de Classes Aglet Disco Contexto AContexto B Dispatch Retract Create ActivateDeactivate Clone Dispose

13 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()

14 public class DispatchingExample extends Aglet { boolean _theRemote = false; public void onCreation(Object o) { addMobilityListener( new MobilityAdapter() { public void onDispatching(MobilityEvent e) { // Print to the console... } public void onArrival(MobilityEvent e) { _theRemote = true; //-- Yes, I am the remote aglet. // Print to the console... } ); } Exemplo

15 Exemplo (continuação) public void run() { if (!_theRemote) { // The original aglet runs here try { dispatch(destination); // You should never get here! } catch (Exception e) { System.out.println(e.getMessage()); } } else { // The remote aglet runs here... }

16 Transferência de um Aglet Host AHost B Passo 1 Passo 2 Passo 3 Campos de dados + Código da classe EnviandoRecebendo Hospedando Fluxo através da rede

17 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

18 Obtendo um Proxy Um proxy é obtido ao criar um aglet. O método AgletContext.createAglet retornará o proxy do aglet recém-criado. Outros métodos que retornam proxies incluem: AgletContext.retractAglet, AgletContext.activateAglet, AgletProxy.clone e AgletProxy.dispatch Proxies de aglets existentes podem ser obtidos das seguintes formas: –AgletContext.getAgletProxies –AgletContext.getAgletProxy

19 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

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

21 public boolean handleMessage(Message msg) { if (msg.sameKind("my name")) { String name = (String)msg.getArg(); // Gets the name... return true; // Yes, I handled this message. } else if (msg.sameKind("your name?")) { msg.sendReply("Yina"); // Returns its name... return true; // Yes, I handled this message. } else return false; // No, I did not handle this message. } Recebendo Mensagens O objeto message é passado como argumento para o método handleMessage do aglet.

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

23 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

24 Padrão Mestre-Escravo: Participantes

25 Padrão Mestre-Escravo: Colaboração

26 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

27 Padrão Reunião: Participantes

28 Padrão Reunião: Colaboração

29 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

30 Padrão Itinerário: Participantes

31 Padrão Itinerário: Colaboração

32 Aplicações Busca de Arquivos Comércio Eletrônico Busca Distribuída Sistema de Detecção de Intrusão

33 Busca de Arquivos

34 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

35 Arquitetura do Aglet Marketplace

36 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

37 Sistema de Detecção de Intrusão

38 Referências agents.html 04-agents.html 04-hood.html 04-hood.html 05-hood.html 05-hood.html


Carregar ppt "Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira"

Apresentações semelhantes


Anúncios Google