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.