ComposiçËao e Performance Musical Utilizando Agentes Móveis
ComposiçËao e Performance Musical Utilizando Agentes Móveis
ComposiçËao e Performance Musical Utilizando Agentes Móveis
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CAPÍTULO 4. O SISTEMA ANDANTE 29<br />
Execução segura. Como foi feito para ser utilizado em redes como a Internet, o projeto da<br />
linguagem Java já levou em consideração algumas questões de segurança. Por exemplo, o<br />
modelo de acesso aos objetos impede que a memória seja corrompida ou acessada indevidamente.<br />
Mesmo que o bytecode seja alterado para tanto, a máquina virtual tem condições<br />
de barrar acessos não permitidos.<br />
Isso garante a proteção da máquina contra os numerosos<br />
tipos de ataques que exploram essa possibilidade. Portanto, em termos de acesso a<br />
informações privadas da máquina, é razoavelmente seguro receber agentes móveis de fontes<br />
não certificadas.<br />
Carregamento dinâmico de classes. Esse mecanismo da máquina virtual permite carregar e<br />
definir classes em tempo de execução. É uma característica essencial para receber e executar<br />
agentes de outras máquinas.<br />
Reflexão. A reflexão que permite a inspeção do sistema pelo próprio sistema em tempo de<br />
execução. Enquanto o sistema funciona, é possível obter informações de métodos de classes<br />
antes desconhecidas. Essa também é uma característica importante para executar código<br />
vindo de outras máquinas.<br />
Seriação de objetos. Java permite que um objeto, na verdade o seu estado, seja seriado, isto<br />
é, transformado numa seqüência de bytes para ser armazenado. O mesmo mecanismo,<br />
evidentemente, permite recuperar o objeto a partir da seqüência de bytes.<br />
Esse recurso<br />
facilita a migração de objetos entre as máquinas do sistema distribuído.<br />
Programação com múltiplos fluxos de execução (multi-threading). Um agente deve ser<br />
autônomo e por isso precisa poder executar suas ações independentemente das ações de<br />
outros agentes ou aplicações.<br />
A linguagem Java permite que um programa tenha mais<br />
de um fluxo de execução simultâneo, esse é um mecanismo muito útil para obtermos a<br />
autonomia.<br />
Java Swing. Java oferece uma sólida biblioteca para construção de interfaces gráficas. O nosso<br />
interesse está em criar rapidamente interfaces independentes de plataforma e que ofereçam<br />
um alto grau de interatividade com o usuário.