AGLETS
SISTEMAS DISTRIBUIDO
INTRODUÇÃO
Aglets são objetos Java com a capacidade de se mover de uma máquina para outra em uma rede, levando consigo o código de programa e o estado dos objetos que compõe o aglet. A migração inicia com a interrupção da execução do aglet na máquina origem, seu despacho para uma máquina remota e o reinicio da execução após sua chegada ao destino.
Mecanismos de segurança impedem que aglets não autorizados (untrusted) tenham acesso a determinados recursos do sistema, tornando o sistema implementado com aglets seguro. A biblioteca de classes de aglets foi concebida por pesquisadores da IBM, tendo este projeto os seguintes objetivos:
- Fornecer um modelo compreensivo e simples de programação utilizando agentes móveis, sem no entanto implicar em modificações na máquina vitual Java ou em código nativo;
- Disponibilizar mecanismos de comunicação poderosos e dinâmicos que permitissem agentes se comunicarem outros agentes, fossem eles conhecidos ou não;
- Projetar uma arquitetura de agentes móveis que permitisse extensibilidade e reusabilidade;
- Obter uma arquitetura altamente coerente com o modelo tecnológico Web/Java.
Baseado nesta biblioteca, foi desenvolvida o Fiji kit que permite criar aplets na qual executam contextos aglets e podem criar, despachar e receber agentes de páginas Web.
1. AGLETS
Aglets consistem em uma biblioteca arquitetural de classes (framework) e programas de suporte implementados em Java. O Aglets utiliza-se da capacidade multiplataforma de Java para criar uma arquitetura simples, que suporta a migração e execução de código entre computadores hosts interligados através da Internet.
1.1 Aglets API
Esta seção apresentará em mais detalhes o modelo da biblioteca Aglets/API. A figura abaixo apresenta elementos básicos da biblioteca, como descritos abaixo:
Aglet - é o elemento básico da biblioteca e consiste em um objeto Java móvel autônomo, pois possui sua própria thread de execução e reativo pois pode responder a mensagem externas.
Proxy - é um objeto que representa um aglet, e tem por objetivo fornecer transparência de localidade e proteção a métodos públicos.
Context - é um objeto estacionário que provê um ambiente para manutenção e gerenciamento de aglets em execução.
Message - é um objeto transmitido entre aglets, permitindo passagem de mensagens síncronas e assíncronas, usados para colaboração e troca de informações.
Future reply - é um manipulador para tratamento de resultados de envio assíncrono de mensagens.
Identifier - cada aglet possui um único e global identificador que é imutável durante todo seu ciclo de vida.
A API aglet define a funcionalidade básica para agentes móveis no modelo de aglets. As seguintes classes e interfaces estão definidas no pacote com.ibm.aglet : A classe abstrata Aglet define os métodos fundamentais associados a agentes móveis, tais como :
Já AgletID encapsula os atributos que permitem identificar cada aglet de forma unívoca. A interface AgletProxy oferece um handle para manipular e estabelecer mecanismos de comunicação para um aglet. Um objeto AgletProxy age
Ferramenta