Aglets
Aglets é uma plataforma de agentes móveis baseada na linguagem Java e a origem da sua palavra vem da aglutinação das palavras AGent e appLET

Esta plataforma foi lançada em 1996 como resultado de trabalhos desenvolvidos nos laboratórios da IBM do Japão. Os objetos móveis do Aglets podem visitar diferentes locais em uma rede de computadores. Uma vez executando em um computador, um Aglet pode parar sua execução repentinamente, ser despachado para um outro computador e retomar sua execução neste novo computador, pois o Aglet leva consigo seu código e seu estado. Os Aglets são executados dentro de um contexto-aglet; este é o espaço de trabalho dos Aglets e tem como responsabilidade gerenciar os agentes em execução. Recentemente a IBM disponibilizou o código fonte do sistema sob licença pública na página do Aglets, aprovada como uma iniciativa de código aberto.

Você também pode baixar o manual de utilização do Aglets de Galeno Jung.
Download e Instalação
Instalação do Java

O ambiente Aglets necessita de uma máquina virtual Java para rodar e para o desenvolvimento de agente também é necessário um kit de desenvolvimento Java:

http://java.sun.com/javase/downloads/index_jdk5.jsp
Observação No windows instale o jdk no raiz. Caso contrário ele pode dar problemas na hora de executar o ant.

C:\jdk1.5.0\

Após instalação, a pasta bin do JDK deve ser incluída no PATH do sistema operacional e o desenvolvimento dos agentes pode ser feito em qualquer editor.

No WIndows, coloque o CLASSPATH, o JAVA_HOME e o diretório bin do java nas variáveis de ambiente do sistema:
1. Vá em Painel de Controle do Windows.
2. Acesse o ícone do Sistema.
3. Acesse a aba "Avançado".
4. Clique no botão Variáveis de ambiente.
5. Clique no botão Nova e acrescente:

	Nome: CLASSPATH
	Valor: .;JAVA_HOME

6. Clique no botão Nova e acrescente:

	Nome: JAVA_HOME
	Valor: C:\jdk1.5.0\

7. Clique no botão Nova e acrescente:

	Nome: PATH
	Valor: %PATH%;C:\jdk1.5.0\bin;

8. Clique em OK e feche.

Download do Aglets

O próximo passo é ir na página do Aglets e fazer download dos arquivos para instalação, fontes e manual do usuário:

Instalação do Aglets

Descompactar o arquivo aglets-2.0.2.jar no diretório "c:\aglets" no caso do Windows ou no diretório "/home/meu_usuario/aglets/" no caso do linux. Neste ponto, será criada uma estrutura de arquivos e diretórios da seguinte forma:

bin-> Scripts de instalação e execução
cnf-> Arquivos de configuração
lib-> Bibliotecas
META-INF.
public-> Onde irão ser armazenados os agentes desenvolvidos
INSTALL.html.
LICENSE.html.

Pelo prompt de comando:

Para permitir que os agentes acessem arquivos e executem outras operações que não seriam permitidas normalmente, edite o arquivo cnf/aglets.props e descomente a linha:

aglets.secure=false

No windows, copie o arquivo .keystore para o diretório do usuário:

C:\aglets\bin>copy .keystore "\Documents and Settings\meu_usuario"

Novamente pelo prompt de comando:

Para utilizar o ambiente de desenvolvimento Eclipse para desenvolver as aplicações de Aglets, basta seguir o tutorial de Aglets com Eclipse.
Programando Agentes

Os agentes no Aglets são criados estendendo-se a classe Aglet. Alguns métodos dessa classe, que podem ser sobrescritos, são invocados pelo ambiente para indicar eventos.

void onCreation(Object init)‏
void run()‏
void onDisposing()‏
boolean handleMessage(Message message)‏
void onCreation(Object init)‏

Este método é chamado logo após o agente ter sido criado e o parâmetro init contém um possível argumento passado ao agente na hora da criação, ou null

void run()

Este método é chamado quando um agente é:

void onDisposing()

Este método é chamado quando o agente estiver prestes a ser destruído, devido a uma chamada ao método dispose.

boolean handleMessage(Message message)‏

Este método é chamado sempre que uma mensagem chega ao agente e seu parâmetro é um atributo kind que identifica o tipo da mensagem.

O método deve retornar false caso a mensagem recebida não seja suportada. Neste caso uma exceção ocorrerá em quem mandou a mensagem.

Compilação
Para compilar o programa, pegue o código fonte MeuAgente.java e execute o seguinte comando:

javac -cp aglets-2.0.2.jar MeuAgente.java

Observe que neste caso, o arquivo aglets-2.0.2.jar deve estar no mesmo diretório do arquivo MeuAgente.java

Por fim, coloque os arquivos .class gerados pela compilação na pasta aglets\public\pacote, sendo que pacote é a pasta que foi criada para este exemplo
Criando Agentes

Os agentes podem ser criados pela interface gráfica Tahiti, via console ou via programação. Para criá-los pelo Tahiti, basta informar a classe (incluindo o nome do package). A opção "Add to List" adiciona o agente à lista de favoritos.

Para criar os agentes via console:

Para criar agente via programação, deve-se fazer da seguinte forma:

AgletProxy proxy = null;

AgletContext context = getAgletContext();

try {
	proxy = context.createAglet(null, "pacote.MeuAgente", );
} catch (Exception e)‏ {
	e.printStackTrace();
}
AgletProxy

É através de proxies que se interage com agentes. A classe AgletProxy oferece (entre outros) os seguintes métodos:

Object sendMessage(Message msg)‏
//Envia uma mensagem, e espera

void dispose()‏
//Destrói o agente

AgletProxy dispatch(URL address)‏
//Manda o agente para o endereço passado como parâmetro
Como fazer os agentes se econtrarem

Para fazer com que um agente possa enviar mensagens a outro é preciso primeiramente obter o proxy dele.

Na hora da criação do agente, o proxy já é retornado, o que fica fácil reconhecer o agente. Porém, quando os agentes não tem uma relação de “parentesco”, pode-se guardar o proxy do agente no AgletContext, associando-o a uma String.

AgletContext context = getAgletContext();

context.setProperty("XPT0", getProxy());

Dessa forma, outros agentes podem recuperar este proxy apenas lendo a propriedade do AgletContext.

AgletContext context = getAgletContext();

AgletProxy p = (AgletProxy) context.getProperty("XPT0");

Para exemplificar a comunicação entre agentes, baixe, compile e execute o arquivo MinhaAplicacao.java. Lembrando que ambos devem estar rodando no ambiente do Aglets.

javac -cp aglets-2.0.2.jar MinhaAplicacao.java
Veja também outros exemplos de agentes em aglets.

[voltar]