Agentes Móveis

Propaganda
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:
o
o
o

Estado:
o

não está ligado ao sistema que o iniciou;
livre para viajar entre hosts numa rede;
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.
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
O que é um Agente Móvel? (2/2)

Definição de um Agente Móvel
o
o
o
o
um agente móvel é um agente que não está ligado
permanentemente ao sistema que o iniciou enquanto processo;
possui a habilidade única de se transportar de um sistema para
outro numa rede, mantendo o seu contexto original antes do
transporte;
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;
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.
Aplicações de Agentes Móveis
(1/2)

Automação de processos
 Aplicações Internet
 Comércio electrónico
o

Procura de informação distribuída
o

agentes podem percorrer a rede e negociar em nome de quem
os enviou
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
Aplicações de Agentes (2/2)

Negociação Segura
o

Processamento Paralelo
o

agentes podem gerir processos paralelos
Serviços de Telecomunicações via Rede
o

agentes podem mover-se para sites seguros com a finalidade de
negociar
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
Ideia

Originalmente surge com Jim White que propõe uma linguagem
para agentes móveis chamada Telescript TM da General Magic.
Ideia
Service
Client
Network
PC
Server
Service
Client
Network
PC
Server
Ideia
Service
Client
Network
PC
Server
Client
Client
Network
PC
Server
Service
Conceitos: Locais

Locais: um local oferece um serviço aos agentes móveis para estes
entrarem
Directory
Shopping app
Network
Ticketron
Electronic Shopping Center
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.
Go
Directory
Shopping app
Network
Ticketron
Electronic Shopping Center
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.
Directory
Shopping app
Network
Ticketron
Electronic Shopping Center
Conceitos: Meeting
Directory
Shopping app
Ticketron
Electronic Shopping Center
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.
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....?
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.
Plataformas de Agentes Móveis

Agent Tcl

Concordia

Odyssey

Voyager

Aglets
Agent Tcl (1/5)


Plataforma desenvolvida no Dartmouth College,
Hanover - USA
Funcionalidades suportadas:
o Migração de agentes
o
o
o
Comunicação de agentes
Utilização de várias linguagens (actualmente Tcl/Tk)
Vários mecanismos de transporte (actualmente TCP/IP)
Agent Tcl (2/5)

A arquitectura tem 4 níveis
distintos:
Agentes
o Interpretador
o Servidor
o API de transporte
o
Agent Tcl (3/5)

Existem dois tipos de comunicação:
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 agentes
o 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.)
Agent Tcl (5/5)

Vantagens:
o “Leve”
o Simples
o Largamente disponível (mesmo o código fonte)
o Extensível
o Embebível noutras aplicações

Desvantagens:
o Tcl não é uma linguagem potente
Concordia (1/3)


Desenvolvido pela Mitsubishi
Framework de desenvolvimento e gestão de agentes
móveis em Java
 Componentes:
o
o
o
o
o
o
o
o
Agent Manager
Security Manager
Persistence Manager
Inter-Agent Communication Manager
Queue Manager
Directory Manager
Administration Manager
Agent Tool Library
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)
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
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 Agent
o classe Worker, derivada de Agent
Agent:
o

Java Thread
Worker:
o
conjunto de tarefas e conjunto de destinos
Odyssey (2/2)

Place:
o
o
o
o
contexto onde se executa um agente
agentes movem-se de Place a Place
pode ter controlo de acesso
primeiro place criado: BootPlace
• quando destruído, destrói todo o sistema de agentes
 Outras Classes:
o
o
o
o
Ticket
Means
Petition
ProcessName
Voyager (1/2)

Linha de produtos da Objectspace para o desenvolvimento de aplicações
distribuídas
 Principais Componentes:
o
o
o
o
o
o
Voyager ORB (Free)
Voyager ORB Professional
• ORB + Serviços
Voyager Management Console
Voyager Security
Voyager Transactions
Voyager Application Server
Voyager (2/2)

Recursos:
o
o
o
o
o
o
o
o
o
habilitação remota de
classes
criação remota de classes
carregamento dinâmico de
classes
mensagens remotas
gestão de excepções
garbage-collection
distribuído
agregação dinâmica
CORBA
mobilidade
o
o
o
o
o
o
o
o
o
o
agentes móveis autónomos
activação dinâmica e
persistência
applets e servlets
multicast
publish-subscribe
RMI
Timers
Thread Pooling
mensagens avançadas
segurança
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:
Plataforma de construção de aplicações baseadas em agentes móveis
o Tecnologia de agentes móveis 100% pure Java
o Desenvolvida no IBM Tokyo Research Laboratory
o

Java Aglet API (J-AAPI):
Destinada a programadores de aplicações agente
o define métodos para a criação, gestão de mensagens, despacho,
retorno, activação, desactivação, clonagem e eliminação de aglets.
o
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
o
o
o
o
Aglet: define os métodos básicos
Aglet Context: trata mensagens e interacção com o exterior
Aglet Proxy: evita o acesso aos métodos da classe
Itinerary: especifica o plano de viagem da aglet
Message: para comunicação síncrona e assíncrona
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
AWB (4/8)

Para criar uma aglet basta implementar a classe abstracta Aglet e
implementar os métodos que são executados:
o
o
o
o
o
o
o
o
onCreation() – sempre que o agente for criado
onDisposing() – sempre que o agente é destruído
onDispatching() – sempre que o agente se move para outro
servidor
onArrival() – sempre que o agente chega a um servidor
onDeactivation() – sempre que o agente é desactivado
onActivaction() – sempre que o agente é activado
onDialog() – define como o agente responde a pedidos de
diálogo
run() – código principal do agente
AWB (5/8)

Mobilidade:
o
o
o
A captura/restauração do estado é baseada na seriação de
objectos do Java
A migração é iniciada através da invocação do método
dispatch()
Os agentes indicam o destino através de itineraries
AWB (6/8)


Comunicação:
o Baseada na classe Message da J-AAPI
o Depois da criação a mensagem é enviada para o proxy
o O receptor trata a mensagem através do método handleMessage
o 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;
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ódigo
o Camada 2 – Segurança ao nível de acesso às classes
o 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
O servidor decide se confia ou não numa aglet através da sua
informação de autenticação
Dependendo da confiança, o servidor garante acesso a certos
recursos
AWB (8/8)

Vantagens:
o
o
o
o
o

Os agentes são em Java
Agentes muito “leves”
Bibliotecas bem estruturadas para várias utilizações
Ambiente já totalmente operacional
Suporte de Segurança
Desvantagens:
o
o
Não há código fonte disponível
Ainda não é comercial/suporte ainda não definido
Comparação entre Plataformas de
Agentes Móveis (1/3)
Comparação entre Plataformas de
Agentes Móveis (2/3)
Conclusões (1/2)
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
o
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.
Download