agentes: conceitos e princípios
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Agentes:Agentes:Conceitos e PrincípiosConceitos 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
Inteligentagens
HumanAgents
(e.g. travel agent)
HardwareAgents
(e.g. robot)
Softwareagents
Informationagents
Cooperationagents
Transactionagents
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
DistributedArtificial Inteligence
Distributed Problem Solving
Multi-AgentSystems
Paralell AI
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
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 Autonomy
Mobility
Character
Reactivity
Goal-oriented
Learning
Proactivity
Communication
Cooperation
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 com respostas variáveis)Computação 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
CHARACTERISTICS
Mobility
communication
cooperation
Autonomy
Learningcapability
Psich
olog
yDistributed Artificial
inteligence
Networ
k
com
mun
icat
ion
Decision
TheoryA
rtificia
l
inte
ligen
ce
character
Proactivity
Reactivity
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ídaJoã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
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.
Processo de Trabalho de um Agente Inteligente
Entrada Saída
Processamento Inteligente
Inte
raçã
o
Inte
raçã
o
FusãoDa
Informação
Processamentoda
InformaçãoAção
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• 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
Interaction Manager
Executor Scheduler Planner
Reasoner
Intentions
Goals
Desires
Knowledge Base(symbolic environment model)
InformationReceiver
Output(actions)
Input(perception)
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 Saida
Sen
sore
s
Atu
ador
es
Módulo de Competência
Módulo de Competência
Módulo de Competência
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 Servidor 3
Agente
Cliente
Chamada remota de procedimentos Chamada remota de procedimentos
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 RemotaServidor 1 Servidor 2 Servidor 3
Agente
Cliente
Programação Remota
AgenteAgente Agente
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 Agentes
Programação Remota inteligência alta
Móvel
Chamada remota de procedimentos
SQL Queries
inteligência baixa,
protocolos proprietários,
ambiente fechado 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
Sistema Operacional Sistema Operacional
Software Base Software BaseBase de Dados
real real
lógico
migração
Camadas do Software Base para Agentes Móveis
Camada do Agente
Funcionalidades Basicas (API)
Mobilidade, Negociação, Comunicação, Filtragem, Identificação
Camada de Segurança
Protocolos de Segurança
Criptografia
Assinatura Digital
Firewalls
Camada de Comunicação
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 layer
Agent Agent
Agent list
(1)
agent -
id, ty
pe,
Per s
onal ke
y
(2) agent-data
(4) agent-id
(8) agent-id;busy
(3)
agent-
type
(5)
agent-
id
(6)
conta
ct
(9)
com
mand
(7)
conta
ct
(10
) c o
mm
and
• 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.
Serialização de Objetos
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 parcial ou completa do correio eletrônico;
-Agentes que filtram novas informações que podem ser de interesse para seus usuários;
-Agentes que organizam reuniões baseado na informação de cada participante.
Computação Distribuída e Mobilidade João Bosco Mangueira Sobral