You are on page 1of 8

Manual do Sistema Aglets

1 Instalao
1.1 Desenvolvimento 1.1.1 Diretrios Escolher os drives\diretrios utilizados para desenvolvimento e instalao. A .. mostra os 4 diretrios e como eles sero referenciados no texto deste manual. Descrio Pacote Java Pacote do Aglets Programa Instalado Programa em desenvolvimento Referncia no texto (JDK_HOME) (AGLET_HOME) (PROG_INSTALL) (PROG_DEVEP) Sugesto C:\JDK1.1.8 C:\Aglets C:\Projeto F:\Projetos\Aglets

1.1.2 Passos de instalao Instalar JDK: (JDK_HOME) Descompactar AgletsXXX.zip (AGLET_HOME) Trocar diretrio principal no intuito de manter portabilidade com verses subsequentes(XXX) Criar os diretorios de desenvolvimento e instalao (PROG_INSTALL) (PROG_DEVEP) Transfira o contedo do diretrio (AGLET_HOME)\public para os diretrios de instalao(PROG_INSTALL) e desenvolvimento (PROG_DEVEP) para que possamos usar os exemplos para testar o sistema. Se estiver instalando o sistema pronto, coloque-o no diretrio (PROG_INSTALL). Criar Arquivo para configurar e desconfigurar as SetPaths.bat UnSetClassPath.bat variveis de ambiente Criar o arquivo de propriedades para Devep.props desenvolvimento. Criar o arquivo de propriedades de instalao e Install.props coloque no diretrio de instalao. tahiti.bat Modificar o arquivo para inicializar o servidor. Copiar o agletsd.bat para tahiti.bat e acrescentar o tem 1.1.5 - colocar no diretrio de desenvolvimento e de instalao. Criar os "shortcuts" adequados

1.1.3 Variveis de Ambiente SetPaths.bat Para poder compilar e executar os programas em desenvolvimento necessrio configurar algumas variveis de ambiente. A varivel CLASSPATH deve conter os diretrios e pacotes de classes JAVA utilizadas na compilao dos programas, contudo no devem ficar l depois da operao. set set set set set set JDK_HOME = (JDK_HOME) AGLET_HOME = (AGLET_HOME) PROG_INSTALL = (PROG_INSTALL) PROG_DEVEP = (PROG_DEVEP) PATH = %PATH%;%JDK_HOME%\bin; CLASSPATH = %CLASSPATH%;C:\jdk1.1.8\lib\classes.zip; %AGLET_HOME%\lib\aglets.jar; outros pacotes... %AGLET_HOME%\public; %PROG_DEVEP%;

UnSetClassPath.bat Retira os diretrios extras colocados apenas para compilao. set CLASSPATH = C:\jdk1.1.8\lib\classes.zip; Compila.bat sempre bom colocar todos os arquivos a serem compilados num .bat para no precisar escrever tudo um milho de vezes. javac <Arquivo1.java> <Arquivo1.java>...<Arquivon.java> 1.1.4 Arquivo de Propriedades Alem das opes colocadas aqui, as principais configuraes do arquivo de propriedades se referem aos diretrios onde sero colocadas as classes. importante ter um arquivo de propriedades para o processo de desenvolvimento e outro para a verso final do sistema. O desenvolvimento deve ser feito em diretrios separados e depois a verso final posta no diretrio de instalao. Devep.props aglets.home = (AGLET_HOME) # O sistema ir criar o diretrio .aglets sob este # diretrio contendo as informaes do usurio e # atributos do servidor. user.home = (PROG_DEVEP) maf.port=4434 verbose = true # aqui devem ficar as classes para rodar em local aglets.class.path= (PROG_DEVEP);(AGLET_HOME)\\public;

# O diretrio a seguir deve conter todas as classes que # no esto no (AGLET_HOME) e que iro ser TRANSFERIDAS. # Os exemplos fornecidos pelo pacote tambm devem ficar # neste diretrio. aglets.public.root = (PROG_DEVEP) aglets.secure = true #aglets.startup=(Aglet inicial) # se no colocar Resolve=true ambientes em rede no vo # conseguir transferir aglets atp.resolve=true #atp.domain=trl.ibm.co.jp atp.offline=false atp.authentication=false #atp.secureseed=true - default #atp.secureseed=false - mais rpido 1.1.5 Servidor Alterar o inicio do arquivo abaixo para os diretrios escolhidos em tahiti.bat ... set JDK_HOME = (JDK_HOME) set AGLET_HOME = (AGLET_HOME) ... Crie um "shortcut" para chamaro servidor e passar o arquivo de propriedades. %PROG_DEVEP%\tahiti -f Devep.props 1.2 Operao 1.2.1 Arquivo de Propriedades Install.props aglets.home = (AGLET_HOME) user.home = (PROG_INSTALL) maf.port=4434 verbose = false # aqui devem ficar as classes para rodar em local aglets.class.path=(AGLET_HOME)\\public;(PROG_INSTALL); # O diretrio a seguir deve conter todas as classes que # no esto no (AGLET_HOME) e que iro ser TRANSFERIDAS. # Os exemplos fornecidos pelo pacote tambm devem ficar # neste diretrio. aglets.public.root = (PROG_INSTALL)

aglets.secure = true aglets.startup=(Aglet inicial) # se no colocar Resolve=true ambientes em rede no vo # conseguir transferir aglets atp.resolve=false #atp.domain=trl.ibm.co.jp atp.offline=false atp.authentication=false #atp.secureseed=true - default #atp.secureseed=false - mais rpido 1.2.2 Servidor Alterar o inicio do arquivo abaixo para os diretrios escolhidos em tahiti.bat ... set JDK_HOME = (JDK_HOME) set AGLET_HOME = (AGLET_HOME) ... Criar "shortcut" e chamar: Crie um "shortcut" para chamaro servidor e passar o arquivo de propriedades. %AGLET_HOME%\bin\tahiti -f Install.props

2 Testes
2.1 Navegao 2.1.1 Exemplo 1 - Hello Aglet Aps rodar o servidor nos computadores ao longo da rede, rode o servidor de instalao e tente rodar o Aglet "HelloAglet" entre os nos da rede e verifique se eles esto indo e voltando. Repita o mesmo procedimento para os servidor de desenvolvimento mas mantenha os de instalao nas mquinas remotas. 2.2 Implementao Devemos agora implementar, executar e navegar um Agente simples para verificar se nossa plataforma de desenvolvimento e operao est ok. Para compilar um programa java voc deve criar um arquivo *.class. Isto feito atravs do compilador javac ou, se voc estiver usando algum ambiente como o visual J++, os comandos de compilao do mesmo. Se voc estiver usando o compilador javac, no se esquea de configurar as variveis de ambiente, voc pode fazer isso usando o *.bat criado no tem : SetPaths javac nomedoarquivo.java

Depois de terminar de compilar, antes de rodar os programas, reconfigure as variveis de ambiente: UnSetPaths O arquivo *.class criado deve estar no diretrio de desenvolvimento: PROG_DEVEP, porem, se voc quiser coloc-lo num subdiretrio, o que aconselhvel, utilize uma clusula package no inicio do arquivo com o nome do subdiretrio. Para rodar o programa dentro do servidor Tahiti basta colocar o nome do diretrio depois ponto (.) e o nome da classe: Ex. Projeto1.Aglet1 A seguir mande o sistema criar a classe. 2.2.1 Exemplo 1 - Ida O exemplo abaixo ir saltar para o endereo definido pela urldest. A sada e a chegada do agente poder ser observada pela tela do servidor Tahiti. package Projeto1; //Subdiretrio onde o arquivo vai ficar import com.ibm.aglet.Aglet; import java.net.URL; public class Aglet1 extends Aglet { // Variveis do agente // private int Inicio=1; public void run() { try{ // Definir o endereo de destino // URL urldest = new URL("atp://192.168.0.2"); if(Inicio==1) { Inicio = 0; dispatch(url); //Comando de movimentao } } catch(Exception e) { System.out.println("Erro:"+e.getMessage()); } } }

2.2.2 Exemplo 2 - Ida e Volta e "Ping-Pong" Como pode-se observar o mtodo run chamado a cada vez que o agente chega a algum lugar ou quando ele criado. As variveis do agente iro manter seu contedo entre os saltos. O exemplo abaixo far o agente dar um salto e retornar ao endereo original. A urldest ir conter o destino e a urlback deve conter o endereo de volta do agente. A condio da linha if(Inicio==0) ir ser aplicada apenas quando o agente chegar ao destino. Nesse momento podemos repor o valor da varivel inicio para 0 e assim faremos ele ir outra vez para urldest, ou podemos colocar o valor 2 e assim o agente ir terminar ao retornar. package Projeto1; //Subdiretrio onde o arquivo vai ficar import com.ibm.aglet.Aglet; import java.net.URL; public class Aglet1 extends Aglet { // Variveis do agente // private int Inicio=1; public void run() { try{ // Definir o endereo de destino // URL urldest = new URL("atp://192.168.0.2"); URL urlback = new URL("atp://192.168.0.1"); if(Inicio==1) { Inicio = 0; dispatch(url); //Comando de movimentao } if(Inicio==0) { Inicio = 2; // vai e volta //Inicio = 1;// faz ping pong dispatch(urlback); } if(Inicio==2) dispose(); } catch(Exception e) { System.out.println("Erro:"+e.getMessage()); } } }

2.3 Acesso aos recursos Devemos configurar as permisses dos aglets e da mquina virtual JAVA para os recursos que desejarmos utilizar. Isto pode ser feito atravs da interface grfica ou alterando o arquivo aglets.policy que se encontra no subdiretrio security do diretrio .aglets. Este arquivo composto de sees "grant", seguido do "codebase" e a lista de permies. Os "codebases" indicam a partir de onde o sistema ir encontrar os programas dos agentes. Existem 3 tipos de "codebases", os que esto locais na mquina(seo codeBase "file:///-/")', os que esto em outro ponto da rede(codeBase "atp://*:*/") e os que so obtidos atravs de um servidor WEB(codeBase "http://*:*/"). Cada tipo de permisso tem os seus valores possveis e isto explicado na documentao anexa do aglets e no arquivo de exemplo sample.policy:
grant codeBase "atp://*:*/" { ... permission java.io.FilePermission "c:\\-", "read,write"; }; grant codeBase "http://*:*/" { ... permission java.io.FilePermission "c:\\-", "read,write"; }; grant codeBase "file:///-/" { ... permission java.io.FilePermission "c:\\-", "read,write"; }

2.3.1 Arquivos Para ler ou escrever em arquivos devemos configurar suas permisses. Isto pode ser feito atravs da interface grfica ou alterando o arquivo aglets.policy que se encontra no subdiretrio security do diretrio .aglets. A permisso para ler e escrever num diretrio tem o seguinte formato: permission java.io.FilePermission "Diretrio\arquivo", "read,write,delete"; No e exemplo damos permisso para escrita e leitura em todo o disco C: permission java.io.FilePermission "c:\\-", "read,write";

File .exists() RandomAccessFile

.writeBytes(..) .readLine();

You might also like