05.04.2015 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!