Este blog Mudou

Este Blog mudou-se para:

quarta-feira, 6 de setembro de 2006

Inteligência Artifical Aplicada a Jogos

Um artigo sobre as técnicas de inteligência artificial usada especialmtne em jogs como age of empires e warcraft


IA aplicada a jogos.odt

sexta-feira, 1 de setembro de 2006

Exemplo Java RMI

Aqui você verá uma descrição breve da teoria envolvida no funcionamento das Remote method Invocation do JAVA definidos no pacto java.rmi. No próximo artigo enviarei um exemplo simples Ok? Vamos lá.

Resumo
Este artigo trata do pacote java.rmi da API Java que define classes e métodos para acesso a objetos distribuídos. Aqui estão uma descrição breve da API e os métodos mais comuns, além da descrição dos aspectos teóricos envolvidos no acesso remoto a objetos em JAVA.

1. Introdução
O pacote RMI está disponível no JDK (Java development kit) desde a versão 1.1 o formato como os objetos são acessados a partir de aplicações locais é semelhante ao formato usado pela arquitetura CORBA a Ilustração 1 representa o formato usado pelas requisições RMI.

Para que os objetos possam se comunicar usando o pacote RMI é necessário definir uma interface que estenda a interface Remote, assim o objeto que deseja ser executado e acessado remotamente deve implementar essa interface.

Segue o exemplo de uma definição da interface Remote:

Assim basta que a classe que tem a implementação dos métodos implemente esta interface para que esteja disponível para ser chamada remotamente.

2. Arquitetura RMI
A arquitetura RMI é composta das classes e interfaces de acesso a métodos remotos, o funcionamento interno deste recurso é possível graças a dois mecanismos Stubs e Skeletons. Iremos definir estes mecanismos neste item.

Um Stub fica localizado localmente e para o objeto que acessa métodos remotos age como o
objeto remoto, ele implementa a mesma interface antes publicada e registrada no servidor RMI. A função do Stub é portanto, encapsular uma série de operação necessárias ao acesso a objetos
remotos.

As atividades deste mecanismo estão descritas a seguir:
● Iniciar a conexão com a máquina virtual Java remotamente;
● Serializar e transmitir os objetos para a máquina virtual remota;
● Aguardar o resultado à chamada do método remoto;
● Desserializar os objetos ou exceções recebidos pela requisição;
● Retornar o valor ao objeto que o pediu.

Já no lado do servidor onde os objetos remotos estão sendo armazenados a forma de tratar as
chamadas remotas é utilizando um Skeleton. Este Skeleton assim como no Stub é responsável por encapsular a série de atividades necessárias para a decodificação, execução e o envio dos resultados de uma chamada.

As atividades executadas pelo Skeleton são as seguintes:
● Desserializar os objetos da requisição atual;
● Invocar o método do objeto correspondente;
● Serializar e enviar o resultado do método como resposta.

A partir da versão 2 do Java um novo protocolo de comunicação foi escrito de modo que as
ações executadas pelo Skeleton agora são executadas por um código genérico, assim não é necessário criar uma classe Skeleton.

3. Um Exemplo simples

Aguarde o próximo capítulo... ;)