Upload
others
View
21
Download
0
Embed Size (px)
Citation preview
TECNOLOGIAS DE AGENTES DE SOFTWARE
Ricardo R. GudwinDCA-FEEC-UNICAMP
O Que são Agentes de Software ?
Programas de ComputadoresFerramentas que auxiliam seres humanos na execução de tarefas
Editores de Texto, Editores de Imagens, Planilhas Eletrônicas, Ferramentas de Apresentação, Bancos de Dados, Controle de Estoques, Simuladores, etc.
Agentes de SoftwareProgramas de computadores capazes de execução autônomaAutonomia, Reatividade, Pró-atividade (iniciativa)Capacidade de comunicaçãoAção orientada a objetivos
Qual a razão do interesse em agentes ?
Motivos EconômicosInternet e o overload de informações
Busca de informações (data-mining), Customização no recebimento de informações
Internet e as novas possibilidades de comércio
Motivos ErgonômicosDiminuir a carga de trabalho, delegando responsabilidades e obtendo suporte para as atividades humanas
Motivos CientíficosCriação de “seres artificiais” com características de seres vivosProcessos inerentes ao fenômeno da inteligência
Motivos Computacionaiscriação de um novo paradigma de programação
Uso de Agentes
Usuários PotenciaisUsuários de PCs (standalone)Usuários de InternetUsuários Corporativos (empresas)
Aplicações GeraisUso PessoalGerenciamento de Redes de ComputadoresBusca de Informação e Acesso à InternetGerenciamento de MobilidadeComércio EletrônicoInterface de Usuários com ComputadoresDesenvolvimento de AplicaçõesAplicações Estratégicas (Militares ou Comerciais)
Tipos de Agentes de Software
Tipos de AgentesAgentes de Internet
ambiente é a grande rede - diversas variedades e aplicações
Agentes de Interfaceauxílio ao usuário
Agentes Móveispodem-se transportar por entre diferentes máquinas, por meio de uma rede de computadores
Agentes Robóticos Simuladosjogos de computador, mundos virtuais
Agentes de Internet
CaracterísticasAmbiente: InternetSensores e Atuadores: SocketsPercepção e Atuação: Mensagens de entrada e de saída via sockets
Peculiaridadesensores e atuadores em um mesmo canal bi-direcionalnecessidade de sincronismo
protocolo de comunicaçãoProtocolos de Internet
HTTP, FTP, NNTP, SMTP, IRC, etc ...
Agentes de Internet
Recursos na WebMúltiplos Protocolos
http, gopher, wais, ftp, mail, news, telnet, local files
Web Robots, Spiders, Web Walkers ou Wanderers
Agentes de Internet que partindo de uma página web, localizam novas páginas por meio dos elementos Anchor inseridos nestas páginas e passam a navegar de página em página.
Web Robots
Finalidades dos Web Robotsindexar porções conhecidas da Weblocalizar links inválidosrealizar a manutenção de páginas de um determinado sitefazer o cache de páginas potencialmente interessantesfiltrar o conteúdo de diferentes mecanismos de buscadescoberta de páginas novas e/ou conteúdo novocriação de “mirrors” de páginas com problemas de acesso
Web Robots
Populares de 1993 a 1995Principais Aplicações
análise estatísticamanutenção de sitesmirroringdescoberta de recursosusos combinados
Grande Número de Web Robots mal configurados
causaram grande número de aborrecimentoscustos e benefícios de se utilizar Web Robots
Web Robots
Recursos de Rede e Carga dos Servidoresuso considerável de bandwidth de rede
robots operam continuamente durante períodos prolongados de tempo e muitas vezes fazem diversas buscas em paralelomesmo partes remotas da rede podem sentir o “esgotamento de recursos” quando um robot está em operaçãouso da rede pode dar a impressão de ser “free”, mas a medida que a demanda cresce, existe uma degradação sensível da qualidade de serviço
demanda considerável de serviço de servidoresdependendo de como um robot acessa as páginas de um servidor, pode haver uma carga considerável sobre ele, evitando que outros clientes possam ter acesso a seus serviços temporariamente
evitar o uso de acessos do tipo “rapid fire”
Web Robots
Implementações Deficientesdistribuição inconsequente de códigoerros comuns
falta da história dos sites já visitados (ocasionando repetição)URLs sintaticamente equivalentesdownload de arquivos não-HTML, tais como GIFs e Postscriptincompetência em lidar com sites com scripts (páginas dinâmicas)
buracos negros
Padrões para a Exclusão de Robots (SRE)
Publicado em Junho de 1994http://www.robotstxt.org/wc/norobots.htmllista de discussões sobre web-robotsnorma não-oficial e não-comercial: guideline para a orientação de desenvolvedores de robots
MétodoURL “/robots.txt” localizado na raiz do servidorconteúdo do arquivo indica a política desejada do servidor em relação a robôs.Este arquivo pode ser construído automaticamente a partir de outros localizados nos diretórios particulares que são originados a partir da raiz.
Web Robots e Meta-Dados
Meta-DadosDados sobre os dadosInformações contidas em um documento web, trazendo informações sobre o documento e/ou sobre partes e trechos do documentofacilita a descoberta e o acesso a documentosconvenções para que o acesso aos meta-dados se dê de maneira organizada e eficiente
HistóricoMETA tagsXML (Extensible Markup Language)RDF (Resource Description Framework)
A Web Semântica
Uso de XML e Meta-DadosDados “tipados” em páginas WebPáginas para serem lidas por seres humanos e por web-robots
Web RobotsExtrair informações como preços e tipos de produtos de maneira generalizadainterpretação das informações contidas em páginas webNovos mecanismos de indexação e busca de informações na web
Agentes de Interface
Interface Homem-Computadora interface perfeita
não requer habilidades especiais, não requer treinamento, deve ser instintiva
entretantonenhuma interface é realmente perfeitainterfaces convencionais procuram mimetizar objetos familiares do cotidiano (botões, formulários, folhas de papel, etc)metáfora do desktop
Nova MetáforaAntropomorfismo: ao invés de uma oficina engenhosa, uma secretária eficiente !
Agentes de Interface
Agentes de Desktopcorporificam a idéia de uma interface homem-computador inteligentepersonagens que habitam o computador, com capacidade de comunicação com o usuário, realizando ações em seu nomeassistente do usuário - amigo e aliado dentro do computador, pronto a ajudá-lo no que for necessário
Característicasatenção a todas as atividades do usuáriocapacidade de aprendizagemfamiliaridade com múltiplos usuárioscapacidade de predizer os desejos e necessidades do usuáriofamiliaridade com as possibilidades do sistema
Papéis de um Agente de Interface
Conselheirooferece ajuda e instruções sobre a aplicação em focopode avisá-lo de maneiras mais eficientes em obter o resultado desejado
Guiaconduz o usuário por um roteiro previamente especificado
Empregadorealiza tarefas ordenadas pelo usuário
Representanteatua na ausência do usuário, representando sua autoridade
Facilitadorentra em contato com outros agentes e/ou usuários de modo a satisfazer os desejos do seu usuário
Implementando Agentes de Interface
Divide-se em 2 grandes áreasimplementação do avatarimplementação da inteligência do avatar
Implementação do AvatarComputação Gráfica e AnimaçãoArquiteturas HierárquicasExemplos
Microsoft - MSAgentesExtempo - LiveComics
Implementação da Inteligência do Avatarinteligência artificial e processamento de linguagem natural
Agentes Móveis
Mobilidadepropriedade ortogonal de um agentenem todos os agentes necessitam ser móveis
Agentes Estacionáriospermanecem em seu site original e se comunicam com o resto do mundo por meio da rede - executam somente no sistema onde foram originalmente executadosutilizam algum mecanismo de comunicação para acessar outros agentes ou recursospodem ser extremamente úteis e poderosos
a falta de mobilidade não é necessariamente uma fraqueza do agente
Agentes Móveis
Agente Móvelnão está ligado ao sistema que o inicioulivre para viajar por entre hosts em uma redeuma vez criado em uma máquina/sistema hospedeiros, ele pode transportar seu estado e código consigo para outras máquinas/sistemas na rede, onde continua sua execução
Estadovalores dos atributos do agente necessários para que ele continue sua execução após o transporte
Códigodentro de um contexto orientado a objetos, o código das classes necessárias para que o agente possa executar
Agentes Móveis
Definição de um Agente Móvelum agente móvel é um agente que não está ligado permanentemente ao sistema que o iniciou enquanto processoele possui a habilidade única de se transportar de um sistema a outro em uma rede, mantendo seu contexto original antes do transporteesta habilidade para viajar, permite ao agente móvel se mover para o sistema que contém o recurso com o qual o agente deseja interagirpode portanto tirar vantagem disso para estar na mesma máquina ou rede onde busca informações, e com isso ser muito mais eficiente em sua tarefa
Boas Razões para Usar Agentes Móveis
Agentes Móveis reduzem o tráfego na redepodem resolver problemas de latência na redepodem encapsular protocolosexecutam de maneira assíncrona e autônomapodem adaptar-se dinamicamentesão naturalmente heterogêneossão Robustos e Tolerantes a Falhasprovêm um paradigma poderoso e uniforme para programação em redepodem revolucionar o design e desenvolvimento de sistemas distribuídos
Aplicações de Agentes Móveis
Comércio Eletrônicoagentes podem vasculhar a rede e negociar em nome de quem os enviou
Assistente Pessoalassistentes podem efetuar tarefas na rede em nome de seus criadores. Estes podem desligar seus micros da rede
Negociação Seguraagentes podem mover-se para sites seguros a fim de negociar
Busca de Informação Distribuídaao invés de concentrar busca em um só site, distribui agentes pela rede
Processamento Paraleloagentes podem gerenciar processos paralelos
Aplicações de Agentes Móveis
Serviços de Telecomunicação via Redeagentes podem reconfigurar dinamicamente redes de telecomunicações, mantendo-a coesa
Aplicações de Workflow e Groupwareagentes móveis podem cooperar em nome de co-participantes de um grupo de trabalho
Monitoração e Notificaçãoagente pode monitorar uma determinada fonte de informações de maneira independente de onde se originou
Disseminação de Informaçãoagentes vêm até você com a informação desejada (tecnologia push - aplicada a agentes móveis)
Plataformas de Agentes Móveis em Java
Plataformas HistóricasTelescript (1o. sistema de agentes móveis comercial)Odissey (General Magic Inc.)
Agletsdesenvolvido pela IBMinspirado no modelo de applets: aglet = agent + applet
Voyagerdesenvolvido pela Recursion Software (ObjectSpace)ORB completo, com capacidades para agentes móveis
Padronização de Agentes Móveis - MASIF
Mobile Agent System Interoperability Facility (MASIF)
desenvolvido pelas empresas: Crystaliz, General Magic, GMD Fokus, IBM Corporation e Open Groupsubmetido ao Object Management Group (OMG)
Tópicos AbordadosGerenciamento de AgentesTransferência de AgentesNomes de Agentes e de Sistemas de AgentesTipos de Sistemas de Agentes e Sintaxe de Localização
Sistemas Multi-Agentes
Por quê ?Ambientes não são estáticos - partes não-estáticas do ambiente podem ser modelados como outros agentesRiqueza nas possibilidades comportamentais - complexidade no comportamento emergente
cooperação - agentes interagem entre sicolaboração - agentes agem por um objetivo comumcompetição - agentes possuem objetivos conflitantes
Sistemas Hierárquicos DistribuídosAgentes constituídos por múltiplos sub-agentes
Problemas complexos podem demandar soluções deste tipo
Sistemas Multi-Agentes
ProblemaAgentes precisam se comunicarComo se dará esta comunicação ?
O que comunicar ?Como comunicar ?
Comunicação entre AgentesLinguagens de Agentes
Linguagens de Comunicação de Agentes (ACL)Linguagens de Representação de Conhecimento
Ontologias
Comunicação entre Agentes
Teoria dos Atos Comunicativosderivada da análise linguística da comunicação humanacom uma linguagem, um falante de uma língua não somente efetua uma declaração, mas realiza uma ação mensagens são ações, ou atos comunicativosem outras palavras, quando um agente emite uma mensagem a outro agente, ele realiza um ato comunicativoeste ato comunicativo está relacionado à atitude mental do agente emissor, bem como ao impacto ou reação que se espera que este ato irá causar no estado mental do receptor
Comunicação entre Agentes
Linguagem Humanaatos comunicativos são interpretados a partir da mensagem e do contexto
Nem sempre esta interpretação é óbvia:“Saia da minha frente !” (Comando)“Por favor, saia da minha frente” (Pedido)“Você poderia sair da minha frente ?” (Pergunta)“Eu gostaria que você saísse da minha frente” (Informação)
Linguagem de Agentesé necessário deixar explícito o ato comunicativo relacionado à mensagem
Comunicação entre Agentes
Linguagem de Comunicação entre Agentes (ACL)
linguagem em que deve ser codificada parte da mensagem, dando conta do ato comunicativo pretendido pelo agente
KQML - Knowledge Query and Manipulation LanguageFIPA-ACL - Foundation for Intelligent Physical Agents
Linguagem de Conteúdo (CL)linguagem em que deve ser codificado o conhecimento que se deseja compartilhar com o destinatário da mensagem
KIF - Knowledge Interchange FormatFIPA Content Language Library (FIPA-CLL), etc.
Conclusão
Agentes de SoftwareNovo gênero de softwareGrande potencialidade para novos tipos de aplicaçõesAvanços na pesquisa e em desenvolvimento
Engenharia de Software Orientada a AgentesAplicações imediatas em Java
Ferramentas comerciais e open-sourceJá estão entre nós
mesmo que não sejamos capazes de percebê-losWeb Semântica
Promessa ainda não realizadaNovos níveis de programação para Web