41
Agentes Inteligentes e Agentes Inteligentes e Sistemas Multi-agente Sistemas Multi-agente (UE11) Agentes Móveis (UE11) Agentes Móveis

Agentes Inteligentes e Sistemas Multi-agente (UE11) Agentes Móveis

Embed Size (px)

DESCRIPTION

Agentes Inteligentes e Sistemas Multi-agente (UE11) Agentes Móveis. Questões. O que é um Agente móvel? Que tipo de sistemas (aplicações) posso construir usando agentes móveis? Que ferramentas há para o auxílio na construção de agentes móveis?. O que é um Agente Móvel? (1/2). Agente Móvel: - PowerPoint PPT Presentation

Citation preview

Page 1: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Agentes Inteligentes e Agentes Inteligentes e Sistemas Multi-agenteSistemas Multi-agente

(UE11) Agentes Móveis (UE11) Agentes Móveis

Page 2: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

QuestõesQuestões

O que é um Agente móvel? Que tipo de sistemas (aplicações) posso construir

usando agentes móveis? Que ferramentas há para o auxílio na construção de

agentes móveis?

Page 3: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

O que é um Agente Móvel? (1/2)O que é um Agente Móvel? (1/2)

Agente Móvel:o não está ligado ao sistema que o iniciou;o livre para viajar entre hosts numa rede;o uma vez criado numa máquina/sistema hospedeiros, ele pode

transportar o seu estado e código consigo para outras máquinas/sistemas na rede, onde continua a sua execução.

Estado:o valores dos atributos do agente necessários para que ele

continue a sua execução após o transporte Código:

o dentro de um contexto orientado a objectos, o código das classes necessárias para que o agente se possa executar

Page 4: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

O que é um Agente Móvel? (2/2)O que é um Agente Móvel? (2/2)

Definição de um Agente Móvelo um agente móvel é um agente que não está ligado

permanentemente ao sistema que o iniciou enquanto processo;o possui a habilidade única de se transportar de um sistema para

outro numa rede, mantendo o seu contexto original antes do transporte;

o esta habilidade para viajar, permite que o agente móvel possa mover-se para o sistema que contém o recurso com o qual o agente deseja interagir;

o pode portanto tirar vantagem disso para estar na mesma máquina ou rede onde busca informações, e com isso ser muito mais eficiente na sua tarefa.

Page 5: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Aplicações de Agentes Móveis Aplicações de Agentes Móveis (1/2)(1/2)

Automação de processos Aplicações Internet Comércio electrónico

o agentes podem percorrer a rede e negociar em nome de quem os enviou

Procura de informação distribuída

o ao invés de concentrar a procura num só site, distribui agentes pela rede para efectuarem a procura

Assistente Pessoal

o assistentes podem efectuar tarefas na rede em nome de seus criadores

Page 6: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Aplicações de Agentes (2/2)Aplicações de Agentes (2/2) Negociação Segura

o agentes podem mover-se para sites seguros com a finalidade de negociar

Processamento Paralelo

o agentes podem gerir processos paralelos Serviços de Telecomunicações via Rede

o agentes podem reconfigurar uma rede de telecomunicações de forma dinâmica, mantendo-a coesa

Aplicações de Workflow e Groupware

o agentes móveis podem cooperar em nome de co-participantes de um grupo de trabalho

Page 7: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

IdeiaIdeia

Originalmente surge com Jim White que propõe uma linguagem para agentes móveis chamada Telescript TM da General Magic.

Page 8: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

IdeiaIdeia

Client Service

Network

PC Server

Client Service

Network

PC Server

Page 9: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

IdeiaIdeia

Client Service

Network

PC Server

Client Service

Network

PC Server

Client

Page 10: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Conceitos: LocaisConceitos: Locais

Locais:Locais: um local oferece um serviço aos agentes móveis para estes entrarem

Shopping app Electronic Shopping CenterNetworkDirectory Ticketron

Page 11: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Conceitos: Agentes e ViagensConceitos: Agentes e Viagens

Agentes ocupam um certo local Um agente pode mover-se de local para local preservando o seu estado Cada agente é independente dos outros agentes

Cada agente move mover-se de um local para outro podendo usar os serviços localmente no sítio em que se encontra e voltar para trás quando necessário.

Shopping app Electronic Shopping CenterNetworkDirectory Ticketron

Go

Page 12: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Conceitos: Agentes e ViagensConceitos: Agentes e Viagens

Agentes ocupam um certo local Um agente pode mover-se de local para local preservando o seu estado Cada agente é independente dos outros agentes

Cada agente move mover-se de um local para outro podendo usar os serviços localmente no sítio em que se encontra e voltar para trás quando necessário.

Shopping app Electronic Shopping CenterNetworkDirectory Ticketron

Page 13: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Conceitos: MeetingConceitos: Meeting

Shopping app Electronic Shopping CenterDirectory Ticketron

Page 14: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Conceitos: AutoridadeConceitos: Autoridade

Segundo a tecnologia Telescript é possivel delegar autoridade em agentes (e de um agente noutro agente)

Além disso os agentes podem ter permits (permissões) para entrar em determinados locais ou não.

Page 15: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

HistorialHistorial

Equipa liderada por Steve Schramm criou a tecnologia e implementou os servidores

Na AT&T uma equipa liderada por Alex Gillon usou a tecnologia para criar o serviço AT&T Personal Link.

Uma outra equipa da General Magic criou Motorola Envoy.

.... O que se passa agora....?

Page 16: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Plataformas de AgentesPlataformas de Agentes

Plataformas de agentes móveis:o Ferramentas que suportam e ajudam a criação de agentes

móveis, fornecendo uma estrutura que facilita a sua implementação.

Page 17: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Plataformas de Agentes MóveisPlataformas de Agentes Móveis

Agent Tcl

Concordia

Odyssey

Voyager

Aglets

Page 18: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Agent Tcl (1/5)Agent Tcl (1/5) Plataforma desenvolvida no Dartmouth College, Hanover

- USA Funcionalidades suportadas:

o Migração de agenteso Comunicação de agenteso Utilização de várias linguagens (actualmente Tcl/Tk)o Vários mecanismos de transporte (actualmente TCP/IP)

Page 19: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Agent Tcl (2/5)Agent Tcl (2/5)

A arquitectura tem 4 níveis distintos:

o Agenteso Interpretadoro Servidoro API de transporte

Page 20: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Agent Tcl (3/5)Agent Tcl (3/5) Existem dois tipos de comunicação:

Page 21: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Agent Tcl (4/5)Agent Tcl (4/5) Um agente pode ser programado em qualquer linguagem para a

qual exista interpretador (compatível) A única linguagem suportada é o Tcl A migração é transparente para o programador Servidor:

o Presente em todas as máquinas capazes de executar agenteso Leve, pois parte das funcionalidades são atribuídas a agentes

específicos (Gestão de recursos, tolerância a faltas, comunicação local, etc.)

Page 22: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Agent Tcl (5/5)Agent Tcl (5/5) Vantagens:

o “Leve”o Simpleso Largamente disponível (mesmo o código fonte)o Extensívelo Embebível noutras aplicações

Desvantagens:o Tcl não é uma linguagem potente

Page 23: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Concordia (1/3)Concordia (1/3) Desenvolvido pela Mitsubishi Framework de desenvolvimento e gestão de agentes

móveis em Java Componentes:

o Agent Managero Security Managero Persistence Managero Inter-Agent Communication Managero Queue Managero Directory Managero Administration Managero Agent Tool Library

Page 24: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Concordia (2/3)Concordia (2/3) Agent Manager:

o providencia a infra-estrutura de comunicação que permite a mobilidade dos agentes

Security Manager:o protege os recursos e garante a segurança e integridade dos

agentes e dos seus dados Persistence Manager:

o mantém o estado dos agentes e objectos que transitam na rede. Permite a reiniciação de um agente, no caso de uma falha no servidor

Inter-Agent Comunication Manager:o gere o registo e notificação de eventos entre agentes. Permite

eventos do tipo Multicast (múltiplos destinatários)

Page 25: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Concordia (3/3)Concordia (3/3) Queue Manager:

o responsável pela sequenciação e envio garantido entre servidores Concordia

Directory Manager:o providencia um serviço de nomes para aplicações e agentes

Administration Manager:o providencia administração remota de um sistema Concordia.

Somente um em toda a rede Agent Tool Library:

o ferramentas de desenvolvimento do Concordia: APIs Concordia (Administration APIs, Lightweight Agent Transport APIs, Service Bridge API, etc.) e classes de agentes necessárias para o desenvolvimento de agentes móveis usando o Concordia

Page 26: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Odyssey (1/2Odyssey (1/2)) Sistema de Agentes implementado como um conjunto de

bibliotecas de classes Java que providencia suporte a aplicações de agentes móveis

Principiais classes:o classe Agento classe Worker, derivada de Agent

Agent:

o Java Thread Worker:

o conjunto de tarefas e conjunto de destinos

Page 27: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Odyssey (2/2)Odyssey (2/2) Place:

o contexto onde se executa um agente o agentes movem-se de Place a Placeo pode ter controlo de acessoo primeiro place criado: BootPlace

• quando destruído, destrói todo o sistema de agentes Outras Classes:

o Ticketo Meanso Petitiono ProcessName

Page 28: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Voyager (1/2)Voyager (1/2) Linha de produtos da Objectspace para o desenvolvimento de aplicações

distribuídas Principais Componentes:

o Voyager ORB (Free)o Voyager ORB Professional

• ORB + Serviçoso Voyager Management Consoleo Voyager Securityo Voyager Transactionso Voyager Application Server

Page 29: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Voyager (2/2)Voyager (2/2) Recursos:

o habilitação remota de classes

o criação remota de classeso carregamento dinâmico de

classeso mensagens remotaso gestão de excepçõeso garbage-collection

distribuídoo agregação dinâmicao CORBAo mobilidade

o agentes móveis autónomoso activação dinâmica e

persistênciao applets e servletso multicasto publish-subscribeo RMIo Timerso Thread Poolingo mensagens avançadaso segurança

Page 30: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

O que são Aglets? (1/8)O que são Aglets? (1/8) Aglets são agentes móveis programados em Java, baptizadas com

o nome da sua workbench (Aglets Workbench ou AWB) Aglet = applet + agente AWB:

o Plataforma de construção de aplicações baseadas em agentes móveiso Tecnologia de agentes móveis 100% pure Javao Desenvolvida no IBM Tokyo Research Laboratory

Java Aglet API (J-AAPI):

o Destinada a programadores de aplicações agenteo define métodos para a criação, gestão de mensagens, despacho,

retorno, activação, desactivação, clonagem e eliminação de aglets.

Page 31: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

AWB (2/8)AWB (2/8) A AWB disponibiliza várias ferramentas de suporte às aglets:

o Um construtor visual de Aglets – “Tazza”o Um gestor visual de Aglets – “Tahiti”o Um construtor/lançador de Aglets para a WWW – “Fiji”o Fornece ainda um conjunto de bibliotecas de classes Java para

a construção dos agentes J-AAPI – Classes/Interfaces:

o Aglet: define os métodos básicos o Aglet Context: trata mensagens e interacção com o exterioro Aglet Proxy: evita o acesso aos métodos da classeo Itinerary: especifica o plano de viagem da agleto Message: para comunicação síncrona e assíncrona

Page 32: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

AWB (3/8)AWB (3/8) Na arquitectura da AWB temos dois tipos de serviços:

o Aglet Viewers:o Pequenos, existentes usualmente em utilizadores

o Aglet Servers:o Servidores poderosos, operados por prestadores de serviços

Page 33: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

AWB (4/8) Para criar uma aglet basta implementar a classe abstracta Aglet e

implementar os métodos que são executados:o onCreation() – sempre que o agente for criadoo onDisposing() – sempre que o agente é destruídoo onDispatching() – sempre que o agente se move para outro

servidoro onArrival() – sempre que o agente chega a um servidoro onDeactivation() – sempre que o agente é desactivado o onActivaction() – sempre que o agente é activadoo onDialog() – define como o agente responde a pedidos de

diálogoo run() – código principal do agente

Page 34: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

AWB (5/8)AWB (5/8) Mobilidade:

o A captura/restauração do estado é baseada na seriação de objectos do Java

o A migração é iniciada através da invocação do método dispatch()

o Os agentes indicam o destino através de itineraries

Page 35: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

AWB (6/8)AWB (6/8) Comunicação:

o Baseada na classe Message da J-AAPIo Depois da criação a mensagem é enviada para o proxyo O receptor trata a mensagem através do método

handleMessageo Existe um gestor de mensagens que suporta o controlo de

concorrência para as mensagens recebidas Envio de uma mensagem:

AgletProxy proxy = new AgletProxy ( );Message yourName = new Message ( “What is your name?” );Proxy.sendMessage(yourName);

o Recepção de uma mensagem:

public boolean handleMessage ( Message msg ) {if ( “your name?” ).equals( msg.kind ) ) {

msg.sendReply ( “Leonel” );return true;

}else return false;

Page 36: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

AWB (7/8)AWB (7/8)

Segurança:o O Modelo de Segurança do AWB é baseado no Modelo de

Segurança do Java e funciona por camadas:o Camada 1 – Segurança ao nível do códigoo Camada 2 – Segurança ao nível de acesso às classeso Camada 3 – Segurança ao nível de dados (encriptação)

o O Gestor de Segurança reconhece dois tipos de aglets:o Aglets Trusted (Confiáveis)o Aglets Untrusted (Desconfiáveis)

o O servidor decide se confia ou não numa aglet através da sua informação de autenticação

o Dependendo da confiança, o servidor garante acesso a certos recursos

Page 37: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

AWB (8/8)AWB (8/8) Vantagens:

o Os agentes são em Javao Agentes muito “leves”o Bibliotecas bem estruturadas para várias utilizaçõeso Ambiente já totalmente operacionalo Suporte de Segurança

Desvantagens:

o Não há código fonte disponívelo Ainda não é comercial/suporte ainda não definido

Page 38: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Comparação entre Plataformas de Comparação entre Plataformas de Agentes Móveis (1/3)Agentes Móveis (1/3)

Page 39: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Comparação entre Plataformas de Comparação entre Plataformas de Agentes Móveis (2/3)Agentes Móveis (2/3)

Page 40: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Conclusões (1/2)Conclusões (1/2)o Futuramente os agentes poderão ser bastante úteis para os utilizadores

humanos, realizando tarefas em nome desses utilizadores (e.g. compras online, pesquisa de informação, pagamento de contas, etc.)

o Agentes móveis são agentes que não estão confinados à máquina que os criou. Estes agentes são livres para navegarem numa rede “saltando” de servidor em servidor

o Em cada instante os agentes móveis tentam interagir com os recursos que acham mais adequados. Se um servidor fica muito “pesado” computacionalmente, o agente abandona-o para localizar um outro servidor onde possa continuar a sua execução

Os agentes tornam muito mais fácil o desenvolvimento de vários tipos de sistemas complexos

Os agentes não são os “salvadores da pátria”. Apenas são apropriados na implementação de um certo tipo de aplicações (agent-based applications). Noutros domínios outras tecnologias serão mais apropriadas

Page 41: Agentes Inteligentes e  Sistemas Multi-agente (UE11) Agentes Móveis

Conclusões (2/2Conclusões (2/2))

No entanto, ainda não há uma plataforma de facto que seja a melhor e mais usada no mercado.

As plataformas existentes são ainda bastante limitadas.