agentes inteligentes e sistemas multi-agente agentes móveis ist- 2003/2004 ana paiva

Post on 02-Jan-2016

28 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Agentes Inteligentes e Sistemas Multi-agente Agentes Móveis IST- 2003/2004 Ana Paiva. 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?. - PowerPoint PPT Presentation

TRANSCRIPT

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

Agentes Móveis Agentes Móveis IST- 2003/2004IST- 2003/2004

Ana PaivaAna Paiva

A. Paiva

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?

A. Paiva

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

A. Paiva

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.

A. Paiva

Aplicações de Agentes Móveis (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

A. Paiva

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

A. Paiva

Ideia

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

A. Paiva

Ideia

Client Service

Network

PC Server

Client Service

Network

PC Server

A. Paiva

Ideia

Client Service

Network

PC Server

Client Service

Network

PC Server

Client

A. Paiva

Conceitos: Locais

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

Shopping app Electronic Shopping CenterNetworkDirectory Ticketron

A. Paiva

Conceitos: 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

A. Paiva

Conceitos: 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

A. Paiva

Conceitos: Meeting

Shopping app Electronic Shopping CenterDirectory Ticketron

A. Paiva

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

A. Paiva

Historial

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

A. Paiva

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

A. Paiva

Plataformas de Agentes Móveis

Agent Tcl

Concordia

Odyssey

Voyager

Aglets

A. Paiva

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)

A. Paiva

Agent Tcl (2/5)

A arquitectura tem 4 níveis distintos:

o Agenteso Interpretadoro Servidoro API de transporte

A. Paiva

Agent Tcl (3/5)

Existem dois tipos de comunicação:

A. Paiva

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

A. Paiva

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

A. Paiva

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

A. Paiva

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)

A. Paiva

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

A. Paiva

Odyssey (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

A. Paiva

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

A. Paiva

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

A. Paiva

Voyager (2/2)

Recursos:o habilitação remota de

classeso 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

A. Paiva

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.

A. Paiva

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

A. Paiva

AWB (3/8)

Na arquitectura da AWB temos dois tipos de serviços:o Aglet Viewers:

o Pequenos, existentes usualmente em utilizadoreso Aglet Servers:

o Servidores poderosos, operados por prestadores de serviços

A. Paiva

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

A. Paiva

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

A. Paiva

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;

A. Paiva

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

A. Paiva

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

A. Paiva

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

A. Paiva

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

A. Paiva

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

A. Paiva

Conclusõ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

A. Paiva

Referências

• http://www.agentbuilder.com• http://193.113.209.147/projects/agents.htm• http://www.trl.ibm.com/aglets/index_e.htm• http://aglets.sourceforge.net/• http://www.dca.fee.unicamp.br/~gudwin/courses/IA009/Aulas.html

A. Paiva

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

top related