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 33<br />
A infra-estrutura CORBA, representada pelos ORBs (Object Request Brokers) se encarrega de<br />
traduzir e enviar a requisição para o objeto em questão. Esse objeto pode estar sendo gerenciado<br />
por outro ORB, tipicamente localizado em outra máquina. Nesse caso, a requisição é enviada<br />
pela rede utilizando o protocolo IIOP (Internet Inter-ORB Protocol). Esse fato, combinado com<br />
o mapeamento das interfaces IDL para outras linguagens, permite que os clientes utilizem objetos<br />
não só escritos em linguagens diferentes, mas também escritos para máquinas de plataformas<br />
diferentes. Essa é a base da interoperabilidade oferecida por CORBA.<br />
A especificação CORBA também descreve serviços [OMG, 1998] que os desenvolvedores de<br />
aplicações podem utilizar para gerenciar os objetos. Por exemplo, o Serviço de Nomes (Naming<br />
Service) permite encontrar objetos através de um identificador único.<br />
É importante notar que CORBA é somente a especificação de uma arquitetura. Existem várias<br />
implementações, nem todas completas. A plataforma Java oferece uma implementação que inclui<br />
a parte básica descrita até agora, incluindo também o Serviço de Nomes. Essa implementação foi<br />
utilizada na construção do sistema Andante.<br />
4.2.4 Aglets<br />
Na infra-estrutura do Andante, o gerenciamento de agentes é baseado em Aglets, um middleware<br />
que dá suporte ao desenvolvimento de sistemas baseados em agentes móveis. Ele é distribuído<br />
na forma de um pacote chamado Aglets Software Development Kit (ASDK), que é escrito em<br />
Java e foi originalmente desenvolvido pela IBM [IBM Aglets, URL]. Hoje é um projeto de código<br />
aberto [Aglets, URL]. O ASDK oferece uma API e aplicações para a implementação e gerenciamento<br />
em tempo de execução de agentes móveis [Lange and Oshima, 1998b].<br />
Aglets oferecem apenas a migração fraca (veja a Seção 2.1) devido à limitação de Java de não<br />
permitir a manipulação do estado de execução. Sempre que chega ao destino, um agente retoma<br />
a sua execução a partir do início. Embora a migração forte seja desejável, principalmente para<br />
agentes móveis, o programador do agente, com um esforço adicional, pode obter um resultado<br />
semelhante utilizando o estado do próprio agente. Antes de migrar, um agente pode armazenar<br />
informações que o ajudem a continuar a execução depois de chegar ao destino.