Agentes: Conceitos e Princípios Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Inteligência Artificial Inteligência Artificial (IA): como começou. Ênfase da inteligência é baseada em um comportamento humano individual. O foco de atenção volta-se à representação de conhecimento e métodos de inferência. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Histórico Anos 80: a comunidade de IA, desencorajada pela falta de progresso após 30 anos, começou a explorar novas áreas onde sistemas de IA pudessem ter um domínio mais dinâmico. IA evoluiu de resultados simbólicos em mundos artificiais para interações complexas com o mundo físico, através do conceito de agentes. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Histórico Ao mesmo tempo, estava se formando a comunidade de agentes de software, explorando o desenvolvimento de partes de código menores e mais confiáveis, para se mover entre dois ambientes distintos Terminologia surgida: agentes inteligentes, interfaces inteligentes, interfaces adaptativas, knowbots, softbots, userbots, taskbots, personal agentes e network agentes Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Categorias de Agentes Inteligentes Inteligent agens Human Agents (e.g. travel agent) Hardware Agents (e.g. robot) Information agents Software agents Cooperation agents Transaction agents Agentes A idéia é o software passar a ser um assistente ao usuário. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Inteligência Artificial Distribuída Inteligência Artificial Distribuída (IAD): Baseada em comportamento social Ênfase é para cooperações, interações e para o fluxo de conhecimento entre unidades distintas “Inteligência” cresce com o número de “entidades” inteligentes Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Subáreas da IAD Distributed Artificial Inteligence Paralell AI Distributed Problem Solving Multi-Agent Systems Agentes Orientação a Objetivos Deve ser capaz de lidar com tarefas complexas em alto nível. A decisão de como uma tarefa é melhor subdividida em tarefas menores, e em qual ordem e de que modo devem ser executadas, deve ser feita pelo próprio agente. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Inteligência Artificial Distribuída A inteligência artificial distribuída pode ser dividida em duas sub-áreas, nas quais os agentes tem um papel muito importante: Resolução Distribuída de Problemas (RDP) Sistemas Multi-Agentes (SMA) Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Resolução Distribuída de Problemas RDP: Os agentes são projetados especificamente para resolver aquele problema ou uma classe de problemas. Os agentes cooperam uns com os outros, dividindo e compartilhando conhecimento sobre o problema e sobre o processo de obter uma solução. Sob um ponto de vista externo, um sistema RDP é visto como uma unidade. O processo de coordenação das ações dos agentes é definido em tempo do projeto. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Sistemas Multiagentes - SMA SMA: Não para um problema específico, mas para um domínio específico. Coordenar o comportamento inteligente de um conjunto de agentes autônomos, mais “antigos” do que o problema em particular Raciocínio: Sobre ações e o processo de coordenação em si. Arquiteturas mais flexíveis; organização do sistema sujeita à mudanças (adaptação às variações no ambiente e/ou no problema) Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes no Mundo Real Não há uma definição unificada e universal para "agente”. uma pessoa autorizada a agir em nome de outra. uma pessoa que gerencia uma agência, pode ser chamado de um agente. um representante de uma agência de viagens. uma substância que causa reação química. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes de Software Programa de software que auxilia o usuário na realização de alguma tarefa ou atividade. Entidade inteligente e autônoma. Programa que funciona em background, e desenvolve tarefas autônomas conforme delegadas pelo usuário. Programas que travam diálogos, negociam e coordenam transferência de informações. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes de Software Agente é uma entidade cognitiva, ativa e autônoma, ou seja, que possui um sistema interno de tomada de decisões, que age sobre um mundo e sobre os outros agentes que o rodeiam e, por fim, que é capaz de funcionar sem necessitar de algo ou de alguém para o guiar (tem mecanismos próprios de percepção do exterior). Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes de Software Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Não tem consenso sobre uma definição formal de agente tal que englobe todo o espectro possível. Algumas características esperadas foram estabelecidas. A analogia feita com agentes no mundo real nos leva a conceituar um agente como uma entidade ativa, sempre ao lado do usuário e que possui conhecimento especifico sobre um determinado domínio de aplicação. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Inteligentes Devem ter bases de conhecimento. Devem ter mecanismos de raciocínio. Devem ser capazes de reconhecer situação em que devam se ativar, sem que o usuário perceba, ou seja, de forma transparente ao usuário. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Características de Agentes Inteligentes Environment Agente Communication Autonomy Learning Mobility Cooperation Character Proactivity Reactivity Goal-oriented Coordination Reatividade • Um agente deve ser capaz de reagir apropriadamente a influências ou informação de seu ambiente. Este ambiente pode consistir de outros agentes, usuários humanos, fontes de informação externas ou objetos físicos. Reatividade • Reatividade forma um dos requisitos fundamentais para um agente inteligente e deve ser suportada para algum grau por todos os agentes. • Esses agentes são chamados agentes reativos. Agentes - Propriedades Reatividade Agentes percebem seus ambientes (o mundo físico, um usuário via uma interface gráfica, uma coleção de agentes, a Internet, ou talvez todos esses combinados), e respondem numa maneira oportuna à mudanças que ocorrem nele. Os agentes percebem e reagem às mudanças no seu ambiente; eles respondem às alterações do ambiente. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Reatividade • O agente deve ter sensores e possuir seu próprio modelo interno de seu ambiente (do qual ele pode tirar conclusões por ele próprio) no sentido de ser capaz a reagir a mudanças no ambiente. • Esse são os chamados agentes deliberativos Agentes Reativos Um agente reativo comporta-se num modo estímulo-resposta, isto é, ele não tem memória da ação realizada no passado nem qualquer previsão da ação a ser tomada no futuro. Sociedades de agentes reativos têm usualmente um grande número de membros. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Proatividade • É um nível acima da reatividade. • Um agente inteligente não apenas reage a mudanças de seu ambiente, porém ele próprio tem iniciativa sob circunstâncias específicas. • Este é chamado comportamento proativo. Orientado à Meta • As metas formam o escopo de processamento potencial do agente, porque elas representam as alternativas de processamento disponíveis em um instante de tempo específico. • É um dos fatores que constitui o estado mental dos agentes deliberativos. Orientado à Meta • A característica de orientação à meta está proximamente relacionada à de proatividade. • A capacidade do próprio agente tomar iniciativa requer que o agente tenha metas bem-definidas ou mesmo um sistema de metas complexo. Orientado à Meta • Somente assim, faz sentido para um agente influenciar seu ambiente e assim alcançar suas próprias metas. Raciocínio e Aprendizado • Todo agente deve ter um certo grau mínimo de inteligência, no sentido de ser projetado como sendo um agente. • Contudo, uma variação muito ampla, quanto ao grau de inteligência pode ser considerada, desde agentes simples com inteligência limitada, até agentes que formam sistemas altamente inteligentes. Raciocínio e Aprendizado • A inteligência de um agente é formado de três principais componentes: sua base de conhecimento interna, a capacidade de raciocínio baseada sobre o conteúdo da base de conhecimento e a habilidade do agente para aprender ou adaptar-se a mudanças de seu ambiente (comportamento adaptativo). Aprendizagem Agentes precisam ser autônomos e demonstrarem raciocínio. Para manter estas capacidades, o agente precisa ter alguns mecanismos para avaliar o estado atual de seu domínio externo e incorporar isto em suas "decisões" sobre futuras ações. Eles examinam o "sucesso" de ações prévias e adaptam suas ações para melhorar a probabilidade de atingir prosperamente suas metas. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Aprendizagem Um agente é capaz de aprender quando possui a capacidade de acumular conhecimento baseado em experiência passada, e conseqüentemente modificar seu comportamento em resposta à novas situações. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Autonomia Autonomia é a capacidade do agente de perseguir suas metas, independentemente de seu usuário, isto é, sem interações ou comandos do seu ambiente. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Autonomia Autonomia é a capacidade de tomar ações conduzindo para o término de algumas tarefas ou objetivos, sem a interferência do usuário final. Autonomia é a habilidade de exercer controle sobre suas próprias ações. Agentes exercem controle exclusivo sobre seus estados e comportamentos internos. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Autônomos Agentes autônomos são sistemas capazes de apresentarem autonomia, propondo-se a agir no mundo real. Um agente autônomo é um sistema situado dentro e em uma parte de um ambiente que sente o ambiente e age sobre ele, através do tempo, em perseguição de sua própria agenda e para efetuar o que ele sente no futuro. Computação Distribuída João Bosco Mangueira Sobral Mobilidade Capacidade de transportar-se numa rede de uma máquina para outra; Habilidade para movimentar-se pela rede eletrônica; Habilidade para mover-se de uma localização para outra, enquanto preservam seu estado interno. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Continuidade Temporal Os agentes executam continuamente processos que tanto podem estar ativos, em foreground, quanto adormecidos, em background. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Comunicação Capacidade de trocar informações com outras entidades (agentes, humanos, objetos, ambiente) Agentes comunicam-se com outros agentes. Eles devem acessar informações sobre o estado atual do ambiente externo, via os repositórios dessa informação, que podem ser outros agentes (pedido/levantamento com um simples e conciso conjunto de respostas possíveis ou comunicação complexa respostas variáveis) Computaçãocom Distribuída João Bosco Mangueira Sobral Comunicação Eles devem acessar informações sobre o estado atual do ambiente externo, via os repositórios dessa informação, que podem ser outros agentes (pedido/levantamento com um simples e conciso conjunto de respostas possíveis ou comunicação complexa com respostas variáveis) Adaptabilidade Um agente deve ser capaz de ajustar-se às preferências de seus usuários. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Colaboração Não deve aceitar instruções sem considerações, mas deve prever erros, omissão de informações importantes e/ou informações ambíguas, e no caso, fazer perguntas ao usuário. Deve ser permitido a um agente recusar executar certas tarefas. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Áreas de Influência Decision Theory Autonomy Mobility Learning capability CHARACTERISTICS Proactivity communication Reactivity cooperation character Agentes - Propriedades Sociabilidade Interação com outros agentes (e possivelmente humanos) através de algum tipo de linguagem para comunicação de agente. Veracidade Suposição de que um agente não comunicará informações falsas. O usuário deve ser altamente confiante de que seu agente atuará e relatará verdadeiramente, e atuará para o próprio bem do usuário. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Propriedades Benevolência Suposição de que um agente não terá objetivos conflitantes, e que agente sempre tentarão fazer o que lhes foi pedido. Racionalidade Suposição de que um agente atuará para atingir seus objetivos, e não atuará de modo que impeça que seu objetivo seja alcançado. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Noção fraca e forte de Agente Estas propriedades estão agrupadas em torno de duas noções, identificada como fraca e forte. Noção fraca de Agente - Autonomia - Habilidade Social - Reatividade - Iniciativa - Continuidade Temporal - Orientação à Metas Computação Distribuída João Bosco Mangueira Sobral Nocão forte de Agente "Agentes Inteligentes" são objetos de pesquisa nos campos da psicologia, sociologia e ciência da computação. Alguns consideram que o termo agente possui um significado mais específico e forte e devem ser implementados usando conceitos que são aplicados mais normalmente aos humanos. Noção forte de agente: - Mobilidade - Benevolência - Racionalidade - Adaptabilidade - Colaboração Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Classificação • A classificação apresentada tenta oferecer uma noção das propriedades básicas que um agente deve ter para ser considerado como tal. •Para poder dizer que um agente é de tal forma, ele precisa atender algumas dessas características. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Utilização de Agentes • Os agentes tem sido muito usados nas últimas décadas em muitas áreas de aplicações, como Interface Gráfica (Win95 Wizards), Aplicações como Assistente Ortográfico do Word), Sistemas Especialistas. • O uso de agentes móveis é novo. Os candidatos são por exemplo: agentes de viagem (General Magic Corporation's Telescript agentes) e agentes de colaboração comercial (Crystaliz, Inc.'s MuBot agentes). • Na literatura existem linguagens para criação de agentes móveis: Java da Sun; Telescript da General Magic; Safe-Tcl da Sun e Object Rexx da IBM. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Coordenação de Agentes Coordenação é o ato de gerenciar interdependências entre atividades dos agentes. Pode ser dividida três partes: especificação (criação de objetivos compartilhados), planejamento (expressando conjunto de tarefas ou estratégias para acompanhamento dos objetivos) e seqüenciamento (distribuindo tarefas, criando planos e seqüências compartilhadas, alocando recursos, ...). Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Aprendizes / Adaptativos Um agente-aprendiz observa as ações do usuário em background, encontra padrões repetitivos e automatiza-os. Agentes-aprendizes são, em particular, aplicáveis quando o domínio da aplicação contém comportamento repetitivo significante. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Cognitivos Agentes cognitivos são baseados em modelos de organizações sociais, no sentido de sociedades humanas (grupos, hierarquias, ... ). Com os agentes, há uma representação explícita de ambiente e de membros da sociedade. Eles podem raciocinar sobre as ações tomadas no passado e planejar as ações a serem tomadas no futuro. Do ponto de vista de uma sociedade, ela é geralmente composta de um número pequeno de membros. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Inteligentes No mundo científico, há muita discussão do que representa ser inteligente. Considerar um ser humano inteligente implica em classificá-lo em níveis de inteligência. Os agentes também possuem níveis de inteligência (quanto mais se aproximam de algumas propriedades apresentadas, maior é a condição de desempenhar suas tarefas e, por isso maior é o seu grau de inteligência) Agentes inteligentes podem se descritos por três dimensões de grau de autonomia, grau de inteligência e até mobilidade. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Inteligentes O grau de autonomia e autoridade colocado no agente (medido qualitativamente pela natureza da interação). No mínimo, precisa funcionar assincronamente. Inteligência é o grau de raciocínio e a habilidade do agente para aceitar a declaração de objetivo do usuário e realizar a tarefa delegada a ele. No mínimo, deve haver algumas declarações de preferências. Mais acima, numa escala de inteligência estão os sistemas de aprendizagem e adaptação ao seu ambiente. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes Inteligentes A mobilidade aparece numa terceira dimensão (agente é projetado para atuar em uma rede). Mobilidade é o grau para o qual agentes por si próprios navegam pela rede. Alguns agentes podem ser estáticos, outros residem numa máquina cliente (para gerenciar a interface do usuário, por exemplo) ou instanciado no servidor. Mobilidade traz a questão de segurança, privacidade e o desafio do gerenciamento. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Protocolos de Agentes • Se os agentes interagem em uma rede remota de comunicação, eles devem possuir um protocolo de comunicação. • Este protocolo é responsável pelas informações que trafegam pela rede local ou remota. • Os protocolos definem os passos de diálogos a serem executados pelos agentes em cada tipo de interação possível numa sociedade de agentes. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Sistemas Multi-Agentes • Como os agentes devem ser organizados para conseguirem colaborar entre si ? • Duas abordagens diferentes tem sido exploradas: comunicação direta - os agentes mesmos cuidam da coordenação - e a coordenação auxiliada, na qual há programas especiais para organizar a coordenação. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Sistemas Multi-Agentes • Os agentes se comunicam através de um supervisor, que comunica com os diversos supervisores e seus agentes. • Alguns requisitos básicos, permitindo que os agentes possam: pedir informações de outros agentes, observar as atividades de outros agentes, interceptar e mudar os pedidos destinados a outros agentes, estabelecer comunicação com agentes sob o controle de outros supervisores. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Arquitetura de Agentes Inteligentes Agentes - Arquitetura Todas as propriedades que um agente apresenta devem estar implícitas em sua arquitetura. O conjunto dos módulos e suas interações devem prover uma resposta para a questão de como os sensores de dados e o estado interno corrente do agente determinam suas ações e futuros estados internos. Uma arquitetura abrange técnicas e algoritmos para suportar esta metodologia. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Arquitetura de Agentes As arquiteturas podem ser divididas em três áreas: a arquitetura deliberativa (abordagem clássica do Paradigma de IA), a arquitetura reativa. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral • • • • • Visão Mínima Agente como uma caixa preta. Recebe entradas utilizando percepção. Usa inteligência para processar as entradas Produz saidas, normalmente na forma de ações. Necessário inteligência para que as caracteristicas de autonomia, cooperacao e proatividade sejam possiveis. • Aceita pela comunidade científica. • Bastante incompleta do ponto de vista arquitetônico. Agente como uma Caixa Preta Entradas (Percepção) Processamento Inteligente Saídas (Ações) Processo de Trabalho de um Agente Inteligente Entrada Fusão Da Informação Processamento da Informação Ação Processamento Inteligente Saída Processo de Trabalho de um Agente Inteligente • Possui um ou mais módulos de interação com o ambiente • O ambiente pode ser outros agentes, usuarios humanos ou quaisquer outras fontes de informações • Para cada tipo de ambiente, o agente possui um módulo de interação normalmente adaptado às características do ambiente correspondente • Interação X Processar e interpretar as infomações e definir suas proprias metas. Processo de Trabalho de um Agente Inteligente • Fusão da Informação – Integrar a informação à base de conhecimentos do agente de forma apropriada. – Receber informações diferentes de fontes diferentes e interpretá-los de forma similar. – Reconhecer e corrigir inconsistências Processo de Trabalho de um Agente Inteligente • Processamento da Informação – Módulo central do Agente – Uma vez aceita a infomação, esta deve ser processada – Reflete a verdadeira funcionalidade do agente – Avaliar os dados disponíveis e definir planos de ação específicos – Repassar o plano de ação para o módulo de ação Processo de Trabalho de um Agente • Ação – Utiliza os serviços dos módulos de interação quando é necessário interagir com o ambiente. – Encarregado da monitoração da execução da ação. Agentes Deliberativos • Possui um modelo simbólico do ambiente e capacidade de raciocínio lógico como base para a tomada de ações inteligentes, seguindo os modelos da IA clássica. • É dificil para estes agentes armazenarem novas informações e conhecimentos sobre o ambiente, além do que já tem. • Capacidade de tomar decisões lógicas. • Utiliza o conhecimento contido no modelo para modificar seu estado interno. Agentes Deliberativos Desires Intentions Plans Beliefs knowlodge Goals Agentes Deliberativos • Beliefs (crenças) : Contém as visões fundamentais de um agente com relação ao seu ambiente. • Desires: São derivados diretamente das Beliefs, contém os julgamentos de situações futuras do agente. • Goals (Metas): Subconjunto dos Desires contendo somente os estados que o agente realmente pode assumir. • Intentions (Intenções): Subconjunto das metas; se um agente decide seguir uma meta específica, esta meta torna-se uma Intenção. • Plans (Planos): Combina as Intentions dentro de unidades consistentes. Arquitetura de um Agente Deliberativo Output (actions) Executor Scheduler Planner Intentions Manager Reasoner Goals Desires Input (perception) Information Receiver Knowledge Base (symbolic environment model) Componentes da arquitetura deliberativa • A base de conhecimento contém o modelo simbólico do ambiente. • Os desires, metas e intenções são derivados da base de conhecimento. • O Planner toma as intenções e as combina para formar um plano completo. • O Scheduler recebe os planos correntes do Planner. • Todo plano consiste de um número ações únicas que devem ser processadas sequencialmente ou em paralelo. • O Scheduler deve decidir quando ações esepecíficas são para ser executadas. Arquitetura de Agentes Reativos Entrada Módulo de Competência Módulo de Competência Atuadores Sensores Módulo de Competência Saida Agentes Reativos • Não possuem um modelo simbólico interno do ambiente. • Menor capacidade para realizar processamentos de raciocínios complexos. • Agente compacto, tolerante a falhas e sobretudo flexível. • Retiram sua inteligência a partir de interações com o ambiente. • Tolerância a falhas devido à descentralização dos módulos de competência. SMAs Reativos • R. Brooks 86 - Arquitetura de subsunção (taxonomia) Controlar robôs físicos (dinamismo e desconhecimento). – Inteligência pode ser gerada sem conhecimento explícito ou raciocínio abstrato! – É uma propriedade emergente de certos sistemas complexos. – A inteligência real está situada no mundo, e não em sistemas desincorporados ( especialistas, provadores, etc)! – Comportamento inteligente emerge das interações com o ambiente. – Competição entre camadas hierárquicas. SMAs Reativos - Características • • • • • Não há representação explícita de conhecimento. Não há representação do ambiente. Não há memória das ações. Os agentes possuem estados internos. 3 modelos : – Funcionalidade emergente – Eco-resolução – PACO (PAdrões de COordenação) Divisão de soluções em IAD • Resolução Distribuída de Problemas - RDP • Sistemas Multiagentes - SMAs – Reativos – Cognitivos Chamada de Procedimentos Remotos Servidor 1 Servidor 2 Chamada remota de procedimentos Servidor 3 Chamada remota de procedimentos Agente Cliente Programação com Agentes Estacionários • Programas tradicionais e agentes estacionários usam RPC para trabalho remoto. • A comunicação entre dois módulos de programas com RPC é o mesmo como a chamada de um procedimento de um módulo remoto. Programação Remota Servidor 1 Agente Servidor 2 Servidor 3 Agente Agente Programação Remota Agente Cliente Programação Remota • A própria chamada remota de procedimento do cliente é é transferida ao servidor em questão e então executada localmente. • Assim, as chamadas de procedimento remoto tornam-se chamadas de procedimento local. RCP X RP Comunicação Propriedades Programação Remota inteligência alta Chamada remota de procedimentos SQL Queries inteligência baixa, protocolos proprietários, ambiente fechado Agentes Móvel Estacionário Vantagens de Agentes Móveis • Alguma redução de carga da rede. • Redução da utilização de recursos no cliente. • Processamento Assíncrono. • Serviços reconfiguráveis. • Comportamento Ativo. • Estrutura Descentralizada. Arquitetura de Software de Agentes Móveis Agente Agente Agente Agente lógico real real Software Base Software Base migração Sistema Operacional Sistema Operacional Base de Dados Camadas do Software Base para Agentes Móveis Camada do Agente Camada de Segurança Camada de Comunicação Funcionalidades Basicas (API) Mobilidade, Negociação, Comunicação, Filtragem, Identificação Protocolos de Segurança Criptografia Assinatura Digital Firewalls Protocolos, Formato de Documentos, RPC, Programação Remota, RMI, serialização de Objetos Camada do Agente • Execução e monitoramento de todos os agentes ativos em um computador. • Garantir aos agentes um ambiente de trabalho padrão e a execução independente dos agentes. Comando Parâmetros Função Move Agent-id, address Movimento Identify Agent-id, personal-key, agent-type Identificação getAvaliableAgent Agent-id, agent-type Determinar agentes disponíveis Contact Agent-id, agent-id Contactar agentes locais sendCommand Agent-id, agent-id, command Invoca função em outro agente sendMessage Agent-id, agent-id/agent-type, [address], message Envia mensagem para outro agente Camada de Segurança • Garantir que um objeto nao possa ser lido por pessoas não autorizadas durante sua transmissão. • Garantir que objetos não autorizados acessem o sistema. Camada de Comunicação • Especificações de protocolos de comunicação e formato e objetos • Garantir as funções básicas para a comunicação entre computadores remotos e a transmissão de documentos ou objetos entre estes computadores • Utilizado para transferência de agentes • Implementação e serviços como RPC, RP e serialização de objetos. Agent (7) contact (6) contact Agent (2) agent-data Agent layer (4) agent-id (8) agent-id;busy Agent list Serialização de Objetos • Permite a conversão de um objeto em um stream de dados para que o mesmo possa ser transmitido através de uma rede para um computador remoto e a reconstrução do objeto a partir do stream de dados recebido. Migração • Tarefa mais complexa no uso de agentes móveis. • Um método deve ser disponibilizado para transportar objetos de programas, como os agentes móveis, entre dois computadores. • É necessário determinar quais componentes do objeto serão transferidos durante a migração de um agente. Migração • A migração pode ocorrer de duas formas: 1. Migração transparente para os agentes envolvidos. O agente invoca o método move e a transferência é feita automaticamente pelas camadas de agente e de comunicação. 2. O agente fica responsável por transformar seus componentes em uma forma persistente, de forma a permitir o envio do seu estado através da rede. O agente define qual a forma de representação do seu estado interno. Agentes - Tipos de Agentes • Conselheiro: oferece ajuda e treinamento • Guia: ajuda a navegação em bancos de dados e hipermídia • Empregado: executa as atividades tediosas ou repetitivas Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Tipos de Agentes • Representante: trabalha na ausência do usuário, parecido ao agente Empregado. Por exemplo, pode fazer backups de arquivos de madrugada ou fazer pedidos de compras. • Comunicador: trabalha com outros usuários e seus agentes. Pode, por exemplo, organizar reuniões, reunindo recursos e pessoas. Computação Distribuída e Mobilidadade João Bosco Mangueira Sobral Propriedades dos Agentes Para que o sistema seja considerado agente, ele não necessita apresentar todas as propriedades, mas algumas delas são recomendáveis. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Tendências • Papel dos agentes no futuro e como eles serão construídos ... ? Porque ... 1) Anda está em fase de desenvolvimento 2) A maioria dos fatores e grupos que estão envolvidos exercem influência uns sobre os outros. • Várias aplicações baseadas em agentes já facilitam a vida dos usuários na Internet, proporcionando o rápido desenvolvimento de áreas como comércio eletrônico, ensino à distância, gerenciamento de sistemas, correio eletrônico, busca de informação na WWW, entre outras. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral Agentes - Tendências • As universidades, centros de pesquisa e companhias, como a IBM e Microsoft, estão fazendo muita pesquisa. •Para receber financiamento mais adiante, muitos pesquisadores e desenvolvedores destas companhias estão enfocando hoje em dia aplicações de agentes bastante básicas, demonstráveis rapidamente, como: -Automatização eletrônico; parcial ou completa do correio -Agentes que filtram novas informações que podem ser de interesse para seus usuários; -Agentes que organizam reuniões informação de cada participante. Computação Distribuída e Mobilidade João Bosco Mangueira Sobral baseado na