ricardo r. gudwin - unicampgudwin/ftp/presentations/... · ricardo r. gudwin dca-feec-unicamp. o...

32
TECNOLOGIAS DE AGENTES DE SOFTWARE Ricardo R. Gudwin DCA-FEEC-UNICAMP

Upload: others

Post on 24-Jul-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

TECNOLOGIAS DE AGENTES DE SOFTWARE

Ricardo R. GudwinDCA-FEEC-UNICAMP

Page 2: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 3: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 4: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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)

Page 5: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 6: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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 ...

Page 7: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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.

Page 8: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 9: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 10: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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”

Page 11: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 12: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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.

Page 13: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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)

Page 14: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 15: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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 !

Page 16: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 17: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 18: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 19: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 20: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 21: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 22: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 23: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 24: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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)

Page 25: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 26: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 27: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 28: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 29: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 30: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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

Page 31: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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.

Page 32: Ricardo R. Gudwin - Unicampgudwin/ftp/presentations/... · Ricardo R. Gudwin DCA-FEEC-UNICAMP. O Que são Agentes de Software ? Programas de Computadores Ferramentas que auxiliam

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