Desenvolvimento de Aplicaes de Agentes Mveis Usando Aglets
- Slides: 34
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 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 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
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 – – 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 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 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 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: 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 n Identifier
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 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 + 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 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 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 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 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 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: Colaboração
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: Colaboração
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: Colaboração
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
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
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
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
- Mgrt token
- Aplicaes
- Conservante
- Agentes economicos
- Agentes economicos del mercado
- Ana lilia laureano cruces
- Agentes honoríficos
- Agentes depresores de la actividad de agua
- Tautomeria genetica
- Agentes de socialización
- Quienes son los agentes superavitarios
- Solos zonais
- Agente reflejo simple
- Agentes generadores de suelo
- Agentes da romanização
- Agentes quimicos
- Agentes cognitivos
- Tabla de comisiones agentes de seguros
- Socialización anticipante
- Cuales son los agentes economicos
- Agente basado en metas
- Agentes mutagenicos ejemplos
- Bacteriostatico bactericida bacteriolitico
- Horno pasteur
- Agentes surfactantes
- Mutagenos quimicos
- Agentes modeladores do relevo
- Cuadro comparativo de sufijo y prefijo
- Tutorial de pseint
- Fucmt ms nos coelhos a cor preta
- Pronomes pessoais
- Pronomes demonstrativos e possessivos
- Complete as sentenças usando os seguintes linkers if as
- Describe a laura y a elián usando los verbos recíprocos.
- Verbos en gerundio participio e infinitivo ejemplos