o modelo aglet n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
O Modelo Aglet PowerPoint Presentation
Download Presentation
O Modelo Aglet

Loading in 2 Seconds...

play fullscreen
1 / 91
xerxes-hodges

O Modelo Aglet - PowerPoint PPT Presentation

192 Views
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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().