Veja Sistema de Memória Compartilhada Distribuída em Java
Veja também Construindo e utilizando Proxies no mesmo site.
Compilação
Como no sistema original, basta executar o comando
$ant
a partir do diretorio-base para gerar o pacote shmem.jar
Utilização
A ídeia principal desse projeto era criar um mecanismo simples de gerar proxies para objetos a serem compartilhados num GlobalSpace. O processo todo divide-se em duas etapas:
- Configuração
- Um programa lê um arquivo .class e mostra uma interface gráfica ao usuário. Lá, ele pode marcar quais metodos envolvem alteração do estado do objeto (ou seja, escrita)
- O usuário fornece o nome da classe e o nome do arquivo xml onde ele quer que a configuração seja gravada
- Clica um botao e o programa gera o arquivo para ele
- Criação do arquivo-fonte
- Um outro programa lê os dois arquivos (.class e .xml) e gera um arquivo .java, que pode ser compilado com o resto do programa
A classe gerada possui muitas semelhanças e algumas diferenças com relação à classe original:
- Os métodos private, protected, static não são traduzidos
- Métodos da classe de origem com a mesma assinatura de métodos existentes na classe br.shmem.SharedReference recebem, na classe gerada, o nome original acrescido de "Proxy"
- Por exemplo, toString() vira toStringProxy()
- Todos os métodos podem lançar, além das exceptions que a classe de origem lança, uma exceção br.shmem.ShmemException
Scripts
Para facilitar o uso, colocamos no subdiretório bin da distribuição 3 scripts, utilizados conforme as instruções a seguir:
- bin/configurator <class_file>
- Lê o arquivo class_file e gera um XML para ele
- bin/shmemc <class_file> <xml_file>
- Gera um arquivo .java a partir dos parâmetros
- bin/build <class_file> <xml_file>
- Chama os dois scripts acima, assumindo que o arquivo XML gerado pelo configurator tera o nome fornecido pelo parametro
LOCALCLASSPATH
Classes adicionais que podem ser necessárias para carregar a classe envolvida devem estar no CLASSPATH ou na variável LOCALCLASSPATH no momento da execução do programa
JDOM
O compilador usa, para manipular os arquivos XML, o pacote JDOM, disponivel gratuitamente.
Autores: