O Modelo Aglet
Elementos Básicos
Modelo de Eventos
Modelo de Comunicação
Introdução

Desenvolvido por IBM Japão

Objetivos



Fornecer um modelo simples e
compreensivo de programação de agentes
móveis.
Disponibilizar mecanismos de comunicação
poderosos e dinâmicos.
Projetar uma arquitetura de agentes
móveis que permite extensibilidade e
reusabilidade.
Introdução


Modelo projetado para se beneficiar das
características de agentes em Java,
enquanto sobrepujando algumas das
deficiências no sistema de linguagem.
Aglet é um objeto móvel que tem sua
própria thread de controle, é dirigido a
evento e se comunica por passagem de
mensagem.
Introdução

Características dos aglets





Autonomia
Habilidade social
Mobilidade
Persistência
Reatividade
O Modelo Aglet
Elementos Básicos
Modelo de Eventos
Modelo de Comunicação
Elementos Básicos

Abstrações





Aglet
Context
Identifier
Message
Proxy

Comportamento








Creation
Cloning
Disposal
Dispatching
Retraction
Activation
Deactivation
Messaging
Principais Abstrações

Aglet


É um objeto Java capaz de mover-se em
uma rede de computadores.
Context

É um objeto estacionário que provê o meio
para manutenção e gerenciamento de
aglets em execução.
Principais Abstrações

Identifier


É um valor global e imutável dado a um
aglet a fim de identificá-lo univocamente.
Message

É um objeto transmitido entre aglets para
troca de informações.
Principais Abstrações

Proxy


É um objeto representante de um aglet,
que serve como protetor do aglet, quanto
ao acesso direto a seus métodos públicos.
Provê transparência de localização para o
aglet, isto é, oculta o aglet de sua
localização real.
Comportamento

Instanciação de um aglet



A partir de sua criação (creation)
Através de cópia de um aglet existente
(cloning)
Destruição de um aglet

Disposal
Comportamento

Mobilidade



Economia de recursos



Ativa (dispatching)
Passiva (retraction)
Activation
Deactivation
Troca de informações

Messaging
Operações

Creation

Toma lugar em um contexto.

É atribuído um identificador ao novo aglet.

É inserido dentro do contexto e inicializado.

O aglet inicia a execução logo após ser
inicializado com sucesso.
Operações

Cloning



Produz uma cópia quase idêntica do aglet
original, no mesmo contexto.
A única diferença é o identificador atribuído
e o fato que a execução reinicia no novo
aglet.
Threads de execução não são clonadas.
Operações

Disposal


Execução do aglet é finalizada.
Remoção do aglet de seu contexto
corrente.
Operações

Dispatching



Operação é solicitada no host corrente.
Aglet é removido do contexto corrente e
inserido (“pushed”) no contexto destino
(código + estado).
No destino, reinicia a execução (thread de
execução não migra – mobilidade fraca).
Operações

Retraction


Operação é solicitada no host remoto.
A retração de um aglet “pull” (puxa) ele a
partir do seu contexto corrente e o insere
dentro do contexto, no qual a retração foi
solicitada.
Operações

Deactivation

A desativação de um aglet corresponde a,
temporariamente, parar sua execução e
armazenar seu estado em memória
secundária.
Operações

Activation

A ativação de um aglet o restaura no
mesmo contexto.
Ciclo de Vida de um Aglet
Context A Dispose
Clone
Context B
Dispatch
Aglet
Aglet
Retract
Create
Class
File
Deactivate
Activate
Disk
Storage
Ciclo de Vida de um Aglet
Context A Dispose
Clone
Context B
Dispatch
Aglet
Aglet
Retract
Create
Class
File
Deactivate
Activate
Disk
Storage
O Modelo Aglet
Elementos Básicos
Modelo de Eventos
Modelo de Comunicação
Modelo de Eventos



O modelo de programação aglet é
baseado em eventos.
O modelo permite ao programador
“plug in” listerners personalizados
(especializados) dentro de um aglet.
Listeners detêm eventos particulares no
ciclo de vida de um aglet e permitem ao
programador tomar uma ação.
Modelo de Eventos

Tipos de eventos e respectivos listeners
Aglet
Clone Events
CloneListener
Mobility Events
MobilityListener
Persistency Events
PersistencyListener
Modelo de Eventos

CloneListener


Ouve eventos de clonagem
Personaliza-se este listener para tomar
ações específicas


Antes da clonagem
Depois da clonagem
Modelo de Eventos

MobilityListener


Ouve eventos de mobilidade
Personaliza-se este listener para tomar
ações específicas



Antes do despacho
Durante retração
Depois que o aglet chegou em um novo
contexto
Modelo de Eventos

PersistencyListener


Ouve eventos persistentes
Personaliza-se este listener para tomar
ações específicas


Antes da desativação
Após ativação
O Modelo Aglet
Elementos Básicos
Modelo de Eventos
Modelo de Comunicação
Modelo de Comunicação



Aglets se comunicam por passagem de
mensagem.
A facilidade de passar mensagem
permite aos aglets criar e trocar
mensagens de forma flexível.
Por padrão, um aglet não manipula
mensagens concorrentemente.
Modelo de Comunicação

Componentes do modelo de
comunicação





Aglet
Proxy
Message
Future Reply
Reply Set
Modelo de Comunicação
Aglet/Aplication
Message
Message
Proxy
Aglet
Reply
Reply
Componentes



Aglet
Proxy
Message



Uma mensagem é um objeto trocado entre aglets.
É permitida a passagem de mensagem assícrona,
bem como, a passagem de mensagem síncrona
entre aglets.
Passagem de mensagem pode ser usada por
aglets para colaborar e trocar informação em um
modo acoplado fracamente.
Componentes

Future Reply

É usado em envio de mensagem
assíncrono, como uma manipulação que
permite ao remetente de uma mensagem
receber uma resposta (reply)
assincronamente.
Componentes

Reply Set


Pode conter múltiplos reply futuros e, é
usado para obter resultados quando se
tornam disponíveis.
Com este objeto, o remetente pode
escolher obter o primeiro resultado e
ignorar respostas subseqüentes.
Download

O Modelo Aglet