470 likes | 694 Views
Agentes Móveis. Guilherme Conde gabc@di.ufe.br. Agentes Móveis . Conteúdo Conceito RPC vs Agentes Móveis Modelo de Agentes Ações sobre Agentes Principais Componentes dos Agentes Emprego dos Agentes Móveis Segurança Aglets (Prática no Laboratório). Exemplos. 1 - Shopping
E N D
Agentes Móveis Guilherme Conde gabc@di.ufe.br
Agentes Móveis • Conteúdo • Conceito • RPC vs Agentes Móveis • Modelo de Agentes • Ações sobre Agentes • Principais Componentes dos Agentes • Emprego dos Agentes Móveis • Segurança • Aglets (Prática no Laboratório)
Exemplos 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.
Exemplos 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.
Conceito • Sã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
O Modelo de Agentes(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.
O Modelo de Agentes(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.
O Modelo de Agentes(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.
O Modelo de Agentes(Principais Conceitos) • Encontro • É a interação direta entre dois ou mais agentes, geralmente posicionados em um mesmo lugar.
O Modelo de Agentes(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.
O Modelo de Agentes(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.
Visão Geral • O Exemplo do Primeiro Encontro
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.
Principais Componentes dos Agentes Móveis • 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.
Principais Componentes dos Agentes Móveis (cont.) • 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.
Principais Componentes dos Agentes Móveis (cont.) • Protocolo de Transporte de Agentes • Determina como os agentes são codificados e transferidos entre servidores.
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.
Exemplo • Monitor Financeiro • Um conjunto de agentes monitora as principais bolsas de valores no mundo para ativar transações nas bolsas de valores locais.
Segurança • Dois principais problemas em agentes móveis. • Protegendo hosts de agentes maliciosos. • Protegendo agentes de hosts maliciosos.
Protegendo agentes de hosts maliciosos. • Definição do Problema • Agente Móvel para Viagens (AMV) FHC quer viajar de Recife para Belém no próximo Domingo. Então ele envia um AMV para visitar os servidores de algumas companhias aéreas. • Cenário da Busca de Informação • O AMV deve encontrar o melhor preço e retorna-lo para o FHC.
Possíveis Ameaças • Ataque por Espionagem • Limite de Preço configurado por FHC. • 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.
Criptografia • Computação com funções criptografadas. • Notação: • Função f • Programa P que implementa f : P( f ) • Função Criptografada E( f ) • Programa que implementa E( f ): P (E( f ))
Criptografia Cont. f E(f) P(f) P(E(f))
Criptografia Cont. FHC Jader f(x) E(f)(x) P(f(x)) P(E(f ))(x)
Tecnologias • Plataforma que fornece aos agentes a capacidade de mover-se livre e facilmente sem afetar sua execução, utilizando várias L.P., em ambientes heterogêneos e de forma segura. • Critérios para escolha • Linguagem • Protocolo • Portabilidade • Segurança
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)
Telescript • Primeira e mais difundida • Provê um modo automático e interativo para acesso a uma rede de computadores usando agentes móveis • Foco comercial - Comércio Eletrônico
Telescript (cont.) • Linguagem (Telescript Language) • Completa • OO • Dinâmica • Persistente • Portável e Segura • Comandos Básicos • go, travel, meet, connection, name, permit
Engine Storage API Transport API External Application API Lugares e Agentes Telescript Engine APIs Aplicações Externas Telescript (cont.) Transporte Armazenamento
Protocolo TCP/IP X.25 SMTP Lugares e Agentes Telescript Engine APIs Aplicações Externas Telescript (cont.) Agente de Codificação Agente de Transporte Armazenamento
Agent TCL • Linguagem - Tcl (interpretada) • Scripts de alto nível • Comandos básicos • begin, submit, jump, send, receive, meet, accept e end. • Características Principais • Linguagem flexível e que suporta extensões • Indicada para aplicações pequenas e médias • Contra indicada para aplicações que exigem classificação de grandes volumes de dados numéricos
Agent TCL (cont.) • Engine - status, migrations, communication e nonvolatile store • Protocolo - TCP/IP
Agentes Tcl ... Java Server or Engine TCP/IP ... SMTP Agent TCL (cont.) • Arquitetura TCL Inter- preter Security State caputure API Server
ARA • Linguagem • Agentes são programados em uma linguagem interpretada e executados através de um interpretador. (Tcl e C/C++) Agente C Interpretador C Agente A ARA CORE
Ara • Engine • ARA Core • Protocolo • TCP • AX.25
ARA (cont.) • Arquitetura Agente B Processo do Sistema Agente A Interpretador A Interpretador B Processo ARA ARA Core Sistema Operacional do Servidor
Questões • A mobilidade é IA ou SD/ES? Onde está a inteligência? • Porque são chamados de agentes? • A agenda da pesquisa em agentes móveis está centrada em mobilidade, segurança, ... • 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 • C. Harrison, et al: Mobile Agents: Are they a good idea ?, IBM Research Report, 1995. • J. White: Mobile Agents White Paper, General Magic,1996. (www.genmagic.com/agents/whitepaper/whitepaper.html). • M. Endler: Novos Paradigmas de Interação usando Agentes Móveis, SBRC, 1996. • T. Sander: Security! or “ How to Avoid to Breath Life in Frankensteins Monster”, ICSI-Berkeley, 1997. • T. Sander:On the Cryptographic Protection of Mobile Code, ICSI-Berkeley, 1997. • S. Bennet: A Sanctuary for Mobile Agents, 1997.