Upload
internet
View
122
Download
7
Embed Size (px)
Citation preview
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.
II
IdentificadorIdentificador
Interface
Implementation
State
Principals
Propriedades de Agentes
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.
ResoucesResouces
Agents
Place
Engine
Host
Place e Engine
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:
NETWORK
Transfer Data
Encode Data
Suspend Execution
Serialize Agent
Sender
Resume Execution
Deserialize Agent
Decode Data
Receice Data
Receiver
Agent Transfer
Agent Agent
Class Code Class Code
Class Code
ORIGIN DESTINATION
SERVER
(b) (a)
(c)
NOW-TYPE MESSAGE
COMUNICAÇÃO SÍNCRONA
SENDER
RECEIVER
COMUNICAÇÃO
ASSÍNCRONA
FUTURE –TYPE
MESSAGE
SENDER
RECEIVER
ONE WAY – TYPE MESSAGE
SENDER
RECEIVER