Agentes Móveis Gibeon Soares de Aquino Lauro Didier Lins Agentes Móveis • Conteúdo – – – – – Introdução Aplicações Paradigma Barreiras Tecnológicas Conclusão Introdução • Novo paradigma de comunicação. • Programas que podem migrar entre computadores de uma rede durante a sua execução, carregando consigo o seu estado de execução. RPC vs Agentes Móveis • Chamada de Procedimentos Remotos (RPC) – A comunicação é feita computador à computador, onde um cliente chama procedimentos em um servidor. RPC vs Agentes Móveis • Agentes Móveis – Usa programação remota (RP), na qual um programa além de poder fazer chamadas de procedimentos em outro computador, também pode executar seus procedimentos sobre outro computador. RPC vs Agentes Móveis • A RP tem uma importante vantagem sobre o RPC. – Quantitativa e Tática • Performance – Qualitativa e Estratégica • Personalização Aplicações 1 - Shopping – O agente tem a tarefa de procurar um determinado produto em várias lojas virtuais, segundo critérios pré-estabelecidos, eventualmente negociar e comprar ou encomendar o produto escolhido. Aplicações 2 - Primeiro Encontro – O agente tem a tarefa de escolher um restaurante, reservar uma mesa para dois, procurar um espetáculo (próximo ao restaurante), comprar ingressos e encomendar um buquê de flores para o dia seguinte. Aplicações • Monitor Financeiro – Um conjunto de agentes monitora as principais bolsas de valores no mundo para ativar transações nas bolsas de valores locais. Emprego dos Agentes Móveis • Executar tarefas complexas ou tediosas (ex. busca de informação na rede). • Representar pessoas ou organizações, incorporando as suas autoridades. • Executar autonomamente durante um longo período de tempo (dias-meses). • Ser ativados de um computador móvel e retornar ao mesmo na próxima conexão. Emprego dos Agentes Móveis (Cont.) • Ser usados em redes com conexões instáveis ou com pequena largura de banda. • Interagir com outros agentes de outros usuários. • Acessar recursos e dados em máquinas remotas. • Monitorar o estado de um sistema ou de uma base de dados. Paradigma de Agentes Móveis (Principais Conceitos) • Lugar (Contexto) – É o ambiente lógico de execução de agentes, que disponibiliza um conjunto de serviços (recursos). Tem atributos como identidade e autoridade. Paradigma de Agentes Móveis (Principais Conceitos) • Agente – Consiste de (Código + Estado), tem atributos como identidade, localização, autoridade e permissões, podendo ser estacionário ou móvel. Paradigma de Agentes Móveis (Principais Conceitos) • Deslocamento – É a transferência de um agente de um lugar para outro, que só ocorre se o agente está autorizado a visitar o destino. Paradigma de Agentes Móveis (Principais Conceitos) • Encontro – É a interação direta entre dois ou mais agentes, geralmente posicionados em um mesmo lugar. Paradigma de Agentes Móveis (Principais Conceitos) • Conexão – Permite que agentes em diferentes computadores se comuniquem. Paradigma de Agentes Móveis (Principais Conceitos) • Autoridade – É a identidade da pessoa ou empresa que o agente ou o lugar representa. Autoridade e identificação servem como base para a autenticação e autorização. Paradigma de Agentes Móveis (Principais Conceitos) • Permissões – Determinam quais operações podem ser executadas por agentes e lugares, como também, a quantidade máxima de recursos que podem ser usados. Principais Componentes dos Agentes Móveis • Linguagem para Programação dos Agentes • Sistema do Agente • Protocolo de Transporte de Agentes Linguagem para Programação dos Agentes • Permite aos desenvolvedores dos agentes definir o algoritmo que o agente executa e a informação que ele carrega através do seu deslocamento pela rede. Linguagem para Programação dos Agentes • Características Desejáveis: – – – – – – Completa Orientada a Objetos Dinâmica Persistente Portável e Segura Centrada na Comunicação Sistema do Agente • É o software que provê a máquina virtual para a linguagem de programação dos agentes, e que gerencia a execução dos agentes e lugares. Protocolo de Transporte de Agentes • Determina como os agentes são codificados e transferidos entre servidores. Ações Sobre Agentes • As seguintes ações podem ocorrer ao longo da vida de um agente: – Create: o agente nasce, seu estado é inicializado. – Clone: um clone de um agente é criado com o mesmo estado do original. – Dispatch: um agente é remetido para outra máquina. – Retract: um agente é chamado de volta ao seu lugar de origem. Ações Sobre Agentes (cont.) – Deactivate: a execução do agente é congelada e seu estado é armazenado. – Activate: a execução do agente é iniciada ou retomada. – Dispose: o agente é destruído e os seus recursos liberados. Barreiras Tecnológicas • Performance • Portablidade e Padronização • Segurança Barreiras Tecnológicas (Performance) •Agentes móveis são escritos em linguagens interpretadas •Agentes que fazem poucas operações sobrecarregam o tráfego Barreiras Tecnológicas (Portabilidade e Padronização) •Garantia de Portabilidade entre diferentes sistemas exige um grande esforço de padronização •Padronização: •Ambiente de Execução •Formato do Código e do Estado dos Agentes Segurança • Dois principais problemas em agentes móveis. – Protegendo hosts de agentes maliciosos. – Protegendo agentes de hosts maliciosos. Protegendo hosts de agentes maliciosos. • Autenticação do agente móvel pelo servidor. • Autorizar o Agente Móvel à realizar determinadas operações. • Detecção de vírus, verificação do código do agente não é suficiente. Protegendo agentes de hosts maliciosos. • Definição do Problema – Agente Móvel para Compras (AMC) Geber quer comprar o livro Artificial Intelligence. Então ele envia um AMC para visitar os servidores de algumas livrarias. • Cenário da Busca de Informação – O AMC deve encontrar o melhor preço do livro e realizar a compra para Geber. Possíveis Ameaças • Ataque por Espionagem – Limite de Preço configurado por Geber. – Número do cartão de crédito. – Oferta dos Competidores. • Ataque por Manipulação – Base de Dados do Agente – Manipulando dados e programa. O Problema Fundamental da Proteção de Agentes. • Detecção de Ataques – Aplicação da lei é difícil, lenta e cara. – Quebra da privacidade não pode ser tolerada. • Prevenção de Ataques – Prevenção é melhor do que Detecção. Prevenindo Ataques • Dados e Programas podem ser lidos, mudados e manipulados indevidamente. • Existem várias técnicas para proteger os Agentes Móveis. • Criptografia – Dados e Programas podem ser criptografados evitando assim, que sejam manipulados indevidamente. Tecnologias • Baseados em Java: – – – – – – Aglet Softw. Development Kit (IBM) Concordia (Mitsubishi) Cyber Agents (FTP Software) Internet System Environment (OSF) Sumatra (UMCP) Odyssey (General Magic) Tecnologias • Baseados em outras linguagens: – – – – – – – – Agent Tcl (Dartmouth) April (Fujitsu) Clearlake (Guideware) MO (Univ. Geneva) Obliq (DEC SRC) Tacoma (Tromsø & Cornell Univ.) Telescript (General Magic) Wave ( Univ. Surrey) Questões • A mobilidade é IA ou SD/ES? • Porque são chamados de agentes? • Só se tirará proveito completo da mobilidade com agentes autônomos? • É possível autonomia sem inteligência? • Agentes móveis abrirão novos horizontes de aplicação em IA? Referências • J. White: Mobile Agents White Paper, General Magic,1996. (www.genmagic.com/agents/whitepaper/whitepaper.html). • David Kotz and Robert S. Gray, Mobile Code: The Future of the Internet; “Mobile Agents in the Context of Competition e Cooperation (MAC3)”, 1999. (ftp.cs.dartmouth.edu/pub/kotz/papers/kotz:future.ps.Z).