1 / 91

O Modelo Aglet

O Modelo Aglet. Elementos Básicos Modelo de Eventos Modelo de Comunicação. Introdução. O Modelo de Objeto Aglet Projetado para se beneficiar das características de agentes em Java, enquanto sobrepujando algumas das deficiências no sistema de linguagem.

Download Presentation

O Modelo Aglet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. O Modelo Aglet Elementos Básicos Modelo de Eventos Modelo de Comunicação

  2. Introdução • O Modelo de Objeto Aglet • Projetado para se beneficiar das características de agentes em Java, enquanto sobrepujando algumas das deficiências no sistema de linguagem. • Um agente móvel é um objeto móvel que tem sua própria thread de controle, é dirigido a evento e se comunica por passagem de mensagem.

  3. Elementos Básicos • O modelo aglet define um conjunto de abstrações e o comportamento necessário para influenciar a tecnologia de agentes móveis em redes de longa distância, como a Internet, ou em redes locais que sigam a mesma tecnologia.

  4. Aglet Proxy Contexto Identificador Abstrações Chaves

  5. Aglet • Um aglet é um objeto Java móvel que visita hosts habilitados à aglets, em uma rede de computadores

  6. Proxy • Um 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. Isto significa que um aglet e seu proxy podem estar separados, de modo que um proxy local oculta o afastamento do aglet.

  7. Contexto • Um contexto é um lugar de trabalho do aglet. • Corresponde aproximadamente ao conceito de “place”. • O ambiente no qual os aglets operam. • O sistema operacional para o aglet. • Lugar no qual um aglet pode executar.

  8. Contexto • É um objeto estacionário que provê o meio para manter e gerenciar aglets rodando em um ambiente de execução uniforme, onde o host é seguro contra aglets maliciosos.

  9. Contexto • É um nodo em uma rede que pode rodar múltiplas “engines” e cada “engine” pode ter múltiplos contextos.

  10. Relação entre Host, “Engine” e Contexto Host Contexto A Contexto C Contexto B “Engine” Processo Servidor Rede

  11. Contextos • Contextos são nomeados e assim podem ser localizados pela combinação do endereço da sua “engine” ( processo servidor) e de seu nome.

  12. Identificador • Um identificador é ligado a cada aglet. • É globalmente único e imutável durante o tempo de vida do aglet.

  13. Comportamento suportado pelo Modelo Aglet • Conjunto mínimo de operações para criar e gerenciar um ambiente de agentes móveis distribuído: • Existem dois modos para a proporcionar vida a um aglet: (a) instanciada a partir de sua criação (creation); (b) copiado de um aglet existente (cloning).

  14. Comportamento suportado pelo Modelo Aglet • Para controlar a população de aglets, pode-se destruí-los (disposal). • Aglets são móveis em dois diferentes modos: ativamente e passivamente.

  15. Abordagem Ativa da Mobilidade • É caracterizada por um aglet migrando ele próprio a partir de seu host corrente para um host remoto. • ( “dispatching” = despachando, expedindo)

  16. Abordagem Passiva da Mobilidade • Um host remoto puxa um aglet, longe de seu host corrente. • ( “retracting” = retirar, recolher )

  17. Recursos • Quando aglets estão rodando, eles ocupam recursos. • Para reduzir o consumo de recurso, aglets podem dormir temporariamente, liberando o recurso ( “deactivation” ), e mais tarde pode ser trazido de volta ao modo rodando ( “activation”).

  18. Troca de Informação • Múltiplos aglets podem trocar informação para realizar uma determinada tarefa. • ( “messaging” )

  19. Aglet API • Fácil para aprender a usar e suficientemente abrangente e robusta para aplicações reais. • A lista seguinte resume as operações fundamentais de um aglet: “creation”, “cloning”, “dispatching”, “retraction”, “activation”, “deactivation” “disposal”.

  20. Operações Fundamentais • “Creation” ( NOVO AGLET CRIADO ) • 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 que ele tem inicializado bem sucedidamente.

  21. Operações Fundamentais • “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.

  22. Operações Fundamentais • “Dispatching” • Expedindo um aglet de um contexto a outro, ele será removido do contexto corrente e inserido no contexto destino, onde ele reiniciará a execução (thread de execução não migra). • O aglet é “puched” a seu novo contexto.

  23. Operações Fundamentais • “Retraction” • 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.

  24. Operações Fundamentais • “Activation” and “Deactivation” • A desativação de um aglet corresponde a, temporariamente, a parar sua execução e armazenar seu estado em memória secundária. • A ativação de um aglet restaurará ele no mesmo contexto.

  25. Operações Fundamentais • “Disposal” • O “disposal de um aglet parará sus execução e removerá ele de seu contexto corrente.

  26. O Ciclo de Vida de um Aglet Context A Context B Dispose Dispatch Clone Aglet Aglet Retract Create Deactivate Activate Class File Disk Storage

  27. O Modelo de Eventos para Aglets • O modelo de programação aglet é baseado em evento. • O modelo permite ao programador “plug in” listerners customizados (especializados) dentro de um aglet. • Listeners detém eventos particulares no ciclo de vida de um aglet e permite ao programador tomar uma ação, por exemplo, quando um aglet está sendo despachado.

  28. O Modelo de Eventos • Existem três tipos de listeners : • Clone Listener • Mobility Listener • Persistence Listener

  29. O Modelo de Eventos • Clone Listener • Ouve eventos de clonagem. • Customizar este listener para tomar ações específicas quando: • (a) um aglet é para ser clonado, • (b) quando o clone é realmente criado, ou • (c) após a clonagem ter tomado lugar.

  30. O Modelo de Eventos • Mobility Listener • Ouve eventos de mobilidade. • Usa-se este listener para tomar ação quando: • (a) um aglet é despachado para outro contexto; • (b) um aglet é “retracted” de um outro contexto; • (c) o aglet, realmente, chega em um novo contexto.

  31. O Modelo de Eventos • Persistence Listener • Ouve para eventos persistentes. • Permite ao programador tomar ação quando: • (a) um aglet é para ser desativado, ou • (b) após ele ter sido ativado.

  32. Relacionamento entre um Aglet e seus Listeners Aglet CloneListener Clone Events MobilityListener Mobility Events Persistence Events PersistenceListener

  33. O Modelo de Comunicação Aglet • Aglets se comunicam por passagem de messagem. • A facilidade de passar mensagem permite aglets a criar e trocar mensagens em modos flexíveis. • Por default, um aglet não manipula mensagens concorrentemente.

  34. O Modelo de Comunicação Aglet • Isto significa que todas as mensagens são manipuladas uma-a-uma. • São componentes do modelo de comunicação: - Aglet , AgletProxy - Message - Future Reply - Reply Set

  35. O Modelo de Comunicação do Aglet Aglet/Aplication Message Message Proxy Aglet Reply Reply

  36. O Modelo de Comunicação Aglet • Message. • Uma mensagem é um objeto trocado entre aglets. • É permitido a passagem de mensagem assícrona, bem como, a passagem de mensagem síncrona entre aglets. • Passagem de mensagem pode ser usado por aglets para colaborar e trocar informação em um modo acoplado fracamente.

  37. O Modelo de Comunicação Aglet • Future replay • É usado em envio de mensagem assíncrono, como uma manipulação que permite o sender de uma mensagem receber um reply assincronamente.

  38. O Modelo de Comunicação Aglet • Reply Set • Um reply set pode conter múltiplos reply futuros e é usado para obter resultados quando também torna-se disponíveis. • Com este objeto, o sender pode também escolher para obter o primeiro resultado e ignorar respostas subsequentes.

  39. Aglet Package – The Aglet API • É um pacote Java consistindo de classes e interfaces. Mais notadamente com as classes: - Aglet - AgletProxy - AgletContext - Message - FutureReply - AgletID

  40. Aglet Package – The Aglet API • Usa-se para criar e operar aglets. • Contém métodos: - inicializar um aglet - manipular mensagens - despachar ou expedir um aglet - desativar ou ativar - retirar ou recolher (retracting) - clonagem - desfazer-se de um aglet (disposing)

  41. API Aglet • Simples • Flexível • É um pacote Java consistindo de classes e interfaces. • Nome completo do pacote: com.ibm.aglet

  42. Classe Aglet • É a classe-chave da API. • Classe abstrata que o desenvolvedor usa como classe base para criar agltes customizados. • Métodos para controlar seu próprio ciclo de vida: cloning, dispatching, deactivating, e disposing o próprio aglet

  43. Classe Aglet • Métodos para serem sobrepostos em suas subclasses pelo programador do aglet e provê o programador com os necessários “ganchos” para customizar o comportamento do aglet.

  44. Classe Aglet • Esses métodos são invocados pelo sistema quando certos eventos tomam lugar no ciclo de vida de um aglet.

  45. Classe Aglet • Método dispatch: causa um aglet mover do host local ao host de destino, que é dado como argumento. • Método Deactivate: permite um aglet ser armazenado em memória secundária.

  46. Classe Aglet • Método clone gera uma nova instância do aglet, a qual tem o estado do aglet original. • A classe Aglet é tambme usada para acessar os atributos associados com um aglet. • O objeto AgletInfo, o qual pode ser obtido por getAgletInfo(), contém os atributos embutidos do aglet, tais como seu tempo de criação e o código-base.

  47. Classe Aglet • Como também seus atributos dinâmicos, tais como seu tempo de chegada e o endereço do seu contexto corrente. • Como criar um aglet customizado ? • 1. Importar o pacote aglet, que contém todas definições da API Aglet

  48. Classe Aglet • Seja definir uma classe aglet MyFirstAglet, que herda da classe Aglet. import com.ibm.aglet.*; public class MyFirstAglet extends Aglet { // Put os métodos do aglet aqui }

  49. Classe Aglet • O aglet precisa fazer inicializações específicas quando ele é criado: sobrepor seu método onCreation(). public void onCreation(Object init) { // Fazer alguma inicialização aqui ... }

  50. Classe Aglet • Quando um aglet é criado ou quando ele chega em um novo contexto, é dado a ele, sua própria thread de execução através de uma invocação de sistema de seu método run().

More Related