Elementos de um Sistema de Agentes Móveis

Propaganda
Elementos de um Sistema de
Agentes Móveis
Agentes e Places
Comportamento de Agentes
Comunicação
Padronização OMG/MASIF
Introdução
• Objetivo: entendimento dos elementos de um
sistema de agentes móveis.
• O modelo conceitual básico de agentes móveis:
baseado sobre dois conceitos:
Agente e Place
• Essências do comportamento de um agente:
Criação, liberação, transferência sobre a rede,
e conceitos de comunicação de agentes.
• Breve overview do MASIF
Agente e Place
• Os dois conceitos fundamentais no modelo de
agentes móveis são agente e seu ambiente de
execução, o qual chamaremos de place.
• Agente: um agente móvel é uma entidade que tem
cinco atributos:
identificador, interface, estado,
implementação e principals.
Agente
• Quando o agente se move na rede, ele leva
estes atributos com ele.
• State: necessário para que o agente retorme
a execução após a viagem.
• Implementação: necessária para execução
de agente independente de localização.
Agente
• Interface: necessária para a comunicação
do agente.
• Identificador: necessário para reconhecer e
localizar agentes viajando na rede.
• Principals: necessários para determinar
responsabilidade legal e moral.
Agentes
• Hipótese básica: agentes são construídos de
acordo aos princípios da programação
orientada -a-objeto.
• Conceitos da OO:
classe, instanciação, estado, variável de
instância.
Propriedades de Agentes
Principals
Interface
Implementation
I
State
Identificador
Estado / State
• Quando um aglet viaja, ele transporta seu
estado com ele.
• No sentido de retomar execução no host
destino.
• O estado do agente, em qualquer tempo é
um “snapshot” de sua execução.
• O estado pode ser partido entre o estado de
execução e o estado de objeto.
Estado
• Estado de execução é o o seu estado de
runtime (incluindo o contador de programa
e a pilha).
• Estado do Objeto é o valor das variáveis de
instância no objeto.
Estado
• Agentes não são sempre requeridos
capturar e transportar seu estado de
execução com ele, no sentido de retomar
execução no host destino.
• Em muitos casos, uma aproximação será
suficiente.
Estado
• Os valores das variáveis de instância podem
auxiliar o agente, a determinar o que fazer
quando ele retoma execução no destino.
Estado
• Esta é uma aproximação apropriada para
agentes baseados em Java que geralmente
não podem acessar seu estado de execução.
• Java não provê acesso à informação da
pilha.
Implementação
• Um agente necessita código para executar.
• Quando ele migra, ele tem a opção de
executar seu código de implementação, ou
chegar no destino, vendo qual código já está
lá, e recuperar qualquer código faltando,
através da rede (código sob demanda).
Interface
• Um agente provê uma interface que permite
outros agentes interagirem com ele.
• Uma interface é uma assinatura de métodos
que permite outros agentes e aplicações
acessarem métodos sobre o agente,
permitindo agentes se comunicarem.
Identificador
• Todo agente tem um identificador que é
único durante seu tempo de vida.
• Agentes requerem identificadores de modo
que eles possam ser identificados e
localizados.
Principals
• Um principal é uma entidade cuja
identidade pode ser autenticada por
qualquer sistema que o principal pode tentar
acessar.
• Um principal pode ser um indivíduo, uma
organização ou uma corporação.
Principals
• Uma identidade consiste de um nome e
possivelmente outros atributos.
• Para agentes, existem pelo menos dois
principals:
- Manufacturer
- Proprietário
Principals
• Manufacturer: o autor (isto é, o provedor
da implementação do agente).
• Proprietário: o principal que tem a
responsabilidade legal e moral para o
comportamento do agente (por exemplo, o
criador do aglet).
Place
• O ambiente no qual os agentes operam.
• Agentes viajam entre places.
• A visão mais comum de um place é aquela
de um contexto no qual um agente pode
executar.
• Ver figura PLACE AND ENGINE.
Place e Engine
Host
Agents
Place
Engine
Resouces
Place
• Pode-se considerar como um ponto de
entrada onde agentes visitantes podem
executar.
• Um place provê um conjunto de serviços,
uniforme, que o agente pode contar,
independente de sua localização específica.
Place
• Pode-se considerar como o sistema
operacional para o agente.
• Existem quatro papéis importantes para
places:
Engine, Resources,
Localização, Principals
Engines
• Em um sistema de agentes móveis, o engine é
identificado como a máquina virtual Java e o
sistema operacional da máquina.
• Máquina Virtual e sistema operacional para um ou
mais places e seus agentes.
• Places não podem eles próprios executarem
agentes.
Engines
• A engine define uma estrutura hierárquica.
• Um dado computador em uma rede pode
hospedar múltiplos engines; cada engine
pode reter múltiplos places, e cada place
contém múltiplos agentes.
• Ver figura The Agent Model Pyramid.
Host
Engines
Places
Agents
Engines
• O fato que um engine pode conter mais do
que um place, requer que places tenham
nomes únicos dentro de um engine.
• Alguns sistemas de agentes podem não ter o
conceito de place explícito.
Engines
• Em tais sistemas pode-se considerar a
própria engine como um tipo de place.
Recursos
Localização
Principals
Comportamento do Agente
• Dois aspectos:
- Criação do agente.
- Destruição do agente.
Criação e Destruição
• Um agente é criado em um place.
• A criação pode ser iniciada ou por um outro
agente residindo no mesmo place ou por um
outro agente ou um sistema que não é de
agentes fora do place.
Criação e Destruição
• Ao criador é requerido autenticar-se ao
place, estabelecendo a autoridade e
credenciais que o novo agente possuirá.
• O criador supre também argumentos de
inicialização para o agente sendo criado.
Criação e Destruição
• A definição de classe necessária para
instanciar o agente pode estar presente no
host local ou em um host remoto, ou se
necessário, pode ser provido pelo criador.
• O processo de criação envolve três etapas:
Agent Transfer
Sender
Receiver
Suspend Execution
Resume Execution
Serialize Agent
Deserialize Agent
Encode Data
Decode Data
Transfer Data
Receice Data
NETWORK
SERVER
Class Code
(c)
(b)
ORIGIN
(a)
DESTINATION
Agent
Agent
Class Code
Class Code
COMUNICAÇÃO
SÍNCRONA
NOW-TYPE
MESSAGE
RECEIVER
SENDER
COMUNICAÇÃO
ASSÍNCRONA
FUTURE –TYPE
MESSAGE
RECEIVER
SENDER
ONE WAY – TYPE
MESSAGE
RECEIVER
SENDER
Download