330 likes | 521 Views
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.
E N D
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
Abstrações Aglet Context Identifier Message Proxy Comportamento Creation Cloning Disposal Dispatching Retraction Activation Deactivation Messaging Elementos Básicos
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 • Ativa (dispatching) • Passiva (retraction) • Economia de recursos • 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.
Dispose Clone Dispatch Retract Deactivate Create Activate Ciclo de Vida de um Aglet Context A Context B Aglet Aglet Class File Disk Storage
Context A Context B Dispose Clone Dispatch Aglet Aglet Retract Deactivate Activate Create Class File Disk Storage Ciclo de Vida de um Aglet
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. • Listenersdetê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 CloneListener Clone Events MobilityListener Mobility Events PersistencyEvents 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
Aglet/Aplication Message Message Proxy Aglet Reply Reply Modelo de Comunicação
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.