Desenvolvimento de Aplicaes de Agentes Mveis Usando Aglets

  • Slides: 34
Download presentation
Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin.

Desenvolvimento de Aplicações de Agentes Móveis Usando Aglets Por Adriano L. I. Oliveira alio@cin. ufpe. br

Roteiro n Introdução n Por Que Usar Agentes Móveis? n O Modelo Aglet n

Roteiro n Introdução n Por Que Usar Agentes Móveis? n O Modelo Aglet n A API Aglet n Construção de Sistemas de Agentes Móveis n Aplicações n Referências

Conceitos n Agente de software – Agentes cujo ambiente é o computador ou rede

Conceitos n Agente de software – Agentes cujo ambiente é o computador ou rede de computadores n Agente estacionário – Executa apenas no sistema onde iniciou a execução – Para interagir com outros agentes usa mecanismos de comunicação como RPC n Agente móvel – Pode se transportar, através da rede, de um sistema para outro

Exemplo do Mundo Real

Exemplo do Mundo Real

Por Que Usar Agentes Móveis? n Eles reduzem a carga da rede Serviço App

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

Por Que Usar Agentes Móveis? n Eles superam o problema da latência da rede

Por Que Usar Agentes Móveis? n Eles superam o problema da latência da rede – – n 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

Por Que Usar Agentes Móveis? n Eles executam de forma assíncrona e autônoma App

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

Por Que Usar Agentes Móveis? n Eles se adaptam dinamicamente – Novas versões de

Por Que Usar Agentes Móveis? n 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 n Eles são naturalmente heterogêneos n 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

Aglets: O Que É? n Ambiente de trabalho para a construção de sistemas de

Aglets: O Que É? n Ambiente de trabalho para a construção de sistemas de agentes móveis desenvolvido pela IBM do Japão n Consiste em um kit de desenvolvimento de aglets e uma plataforma para sua execução n A API é um pacote de classes para Java

Aglets versus Applets Aglet estende o modelo de código móvel dos applets n Applet:

Aglets versus Applets Aglet estende o modelo de código móvel dos applets n Applet: n – Código pode se mover do servidor para o cliente – Ambiente de execução: browser Web n 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)

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

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

Aglet: Modelo do Ciclo de Vida Contexto A Clone Contexto B Dispatch Aglet Dispose

Aglet: Modelo do Ciclo de Vida Contexto A Clone Contexto B Dispatch Aglet Dispose Retract Create Arquivo de Classes Deactivate Activate Disco

A Classe Aglet n Classe abstrata usada como base para o desenvolvimento de aglets

A Classe Aglet n Classe abstrata usada como base para o desenvolvimento de aglets customizados n Define métodos para controlar seu próprio ciclo de vida n Define métodos que são chamados pelo ambiente do aglet antes da execução de cada operação do ciclo de vida – Exemplos: on. Dispatch(), on. Cloning(), on. Disposing()

Transferência de um Aglet Host A Host B Campos de dados Passo 1 +

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

A Interface Aglet. Proxy O proxy age como um objeto escudo que protege o

A Interface Aglet. Proxy O proxy age como um objeto escudo que protege o aglet de aglets maliciosos n Um aglet interage com outro aglet através de um proxy n Quando invocado, o objeto Aglet. Proxy consulta o gerente de segurança para determinar se o contexto de execução atual pode executar o método n Outro papel importante de Aglet. Proxy é prover transparência de localização para o aglet n

A Interface Aglet. Context n O contexto é um ambiente de execução uniforme para

A Interface Aglet. Context n O contexto é um ambiente de execução uniforme para os aglets n Aglet. Context é usada pelos aglets para: – Obter informações sobre o ambiente – Enviar mensagens para o ambiente, inclusive para outros aglets ativos neste n 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

A Classe Message n Aglets se comunicam através da troca de objetos da classe

A Classe Message n Aglets se comunicam através da troca de objetos da classe Message. n Criando o objeto message: – Message my. Name = new Message("my name", "Jacob"); – Message your. Name = new Message("your name? "); n Mensagens são enviadas através de métodos de Aglet. Proxy: – Object send. Message(Message msg) – Future. Reply send. Future. Message(Message msg) – void send. Oneway. Message(Message msg)

Construção de Sistemas de Agentes Móveis: Design Patterns fazem parte do kit de desenvolvimento

Construção de Sistemas de Agentes Móveis: Design Patterns fazem parte do kit de desenvolvimento Aglets n Objetivo: identificar e formalizar bons elementos de projeto que sejam reutilizáveis para aplicações de agentes móveis n Os padrões disponíveis podem ser divididos em três classes: n – Viagem (ex: padrão itinerário) – Tarefa (ex: padrão mestre-escravo) – Interação (ex: padrão reunião)

Padrão Mestre-Escravo n. O agente mestre pode delegar uma tarefa a um agente escravo

Padrão Mestre-Escravo n. O agente mestre pode delegar uma tarefa a um agente escravo n 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

Padrão Mestre-Escravo: Participantes

Padrão Mestre-Escravo: Participantes

Padrão Mestre-Escravo: Colaboração

Padrão Mestre-Escravo: Colaboração

Padrão Reunião n Provê uma forma dos agentes estabelecerem interações locais em hosts específicos

Padrão Reunião n Provê uma forma dos agentes estabelecerem interações locais em hosts específicos n 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

Padrão Reunião: Participantes

Padrão Reunião: Participantes

Padrão Reunião: Colaboração

Padrão Reunião: Colaboração

Padrão Itinerário n Encapsula os itinerários dos agentes e suas navegações entre múltiplos destinos

Padrão Itinerário n Encapsula os itinerários dos agentes e suas navegações entre múltiplos destinos n 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

Padrão Itinerário: Participantes

Padrão Itinerário: Participantes

Padrão Itinerário: Colaboração

Padrão Itinerário: Colaboração

Aplicações n Busca de Arquivos n Comércio n Busca Eletrônico Distribuída n Sistema de

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

Busca de Arquivos

Busca de Arquivos

Aglet Meeting Place Middleware n Framework desenvolvido pela IBM que executa sobre Aglets. n

Aglet Meeting Place Middleware n Framework desenvolvido pela IBM que executa sobre Aglets. n Trata-se de um sistema multi-agente em que agentes de venda e de compra interagem uns com os outros. n A arquitetura define o papel dos proprietários do mercado, dos vendedores e dos consumidores. n Uma importante construção do AMPM é uma base de dados de tipos de mensagens. n Aplicado em http: //www. tabican. ne. jp

Arquitetura do Aglet Marketplace

Arquitetura do Aglet Marketplace

Busca Distribuída Duas classe de agentes: Publishers e Searchers n Publisher: n – Emite

Busca Distribuída Duas classe de agentes: Publishers e Searchers n Publisher: n – Emite mensagens a respeito de novos documentos publicados n 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

Sistema de Detecção de Intrusão

Sistema de Detecção de Intrusão

Referências n http: //www. aglets. org n http: //www. trl. ibm. co. jp/aglets n

Referências n http: //www. aglets. org n http: //www. trl. ibm. co. jp/aglets n http: //www. aglets. org/resources/articles/index. jsp n http: //www. javaworld. com/javaworld/jw-04 -1997/jw-04 -agents. html n http: //www. javaworld. com/javaworld/jw-04 -1997/jw-04 -hood. html n http: //www. javaworld. com/javaworld/jw-05 -1997/jw-05 -hood. html