Tecnologia rim

Disponível somente no TrabalhosFeitos
  • Páginas : 7 (1650 palavras )
  • Download(s) : 0
  • Publicado : 29 de maio de 2012
Ler documento completo
Amostra do texto
Tecnologia RIM

TERÇA-FEIRA, 17 DE AGOSTO DE 2010
RMI - Remote Method Invocation
RMI - Remote Method Invocation 

Resumo: Esta implementação teve como principal importância exemplificar a utilização da tecnologia RMI para a chamada de métodos em uma outra máquina virtual (JVM – Java Virtual Machine). Por meio da linguagem Java, foram implementadas duas aplicações que executam em um servidorjuntamente com o RMI Registry (serviço de diretórios simplificado). Quanto aos clientes, apenas haverá a chamada do método remoto através da rede para um servidor acionando um método e requerendo uma resposta. A rede é totalmente abstraída pelo RMI e o programador não precisa implementar as funções para tratar do envio e recebimento de mensagens. Os teste foram feitos com três, quatro, cinco eseis clientes com resultados positivos nas plataformas Linux e Windows.

01 - Introdução
O RMI - Remote Method Invocation ou Invocação Remota de Métodos é uma tecnologia desenvolvida pela Sun Microservice, que permite ao programador invocar métodos em outra JVM facilitando assim o desenvolvimento de aplicações distribuídas por utilizar a idéia da camada de Sistema baseado em Middleware [HOR].Essa tecnologia na verdade é um protocolo Java para comunicação que possibilita uma aplicação em Java fazer chamadas aos métodos de outra aplicação em Java, mesmo que esta outra aplicação esteja rodando em uma JVM situada em uma máquina diferente da aplicação que a chamou.
Algumas comparações entre aplicações distribuídas e centralizadas podem ser observadas abaixo no quadro quanto a utilização doRMI [COA].
Aplicações Distribuídas | Aplicações Centralizadas |
O objeto é instanciado pelo operador newpor um cliente remoto. | O objeto é instanciado pelo operador newem uma classe local. |
O objeto é exportado por meio de uma classe interface. | O objeto é local na classe. |
O objeto é acessado através de referência na interface remota. | O objeto é acessado através de referência nasclasses locais. |
O objeto é totalmente implementado dentro da classe de interface remota. | O objeto é implementado dentro da classe local. |
A referência para objeto é através de um stubno heap local que conecta ao skeleton que está no servidor. | A referência para objeto é dentro do heap |

Observando as características do RMI podemos observar que é bastante semelhante à arquiteturaCliente-Servidor devido às comunicações entre os clientes e o servidor. O servidor fica sempre disponível para uma requisição e o cliente apenas sabe qual o servidor e quais os métodos que ele pode invocar por meio de acesso ao servidor de nomes RMI Registry. O servidor recebe a requisição, processa usando os parâmetros enviados e retorna para o cliente a resposta. Todas essas transações são feitasatravés da camada de referência remota e utilizando um stud do lado do cliente e um skeleton do lado do servidor, conforme figura 01. 

Figura 01:  Arquitetura RMI

02 - Desenvolvimento
Para a implementação de qualquer aplicação utilizando a tecnologia RMI, é necessário codificar e compilar o código Java dos protótipos dos métodos (públicos e abstratos) para as interfaces da aplicação com o nomeaplicação.Java. Como estão mostradas na figura 02 as interfaces não contém código executável. Nessa classe de interface para os métodos, é obrigatório estender a classe Remote e a classe de exceção, em cada método, Java.rmi.RemoteException que possui um conjunto de exceções que tratam de chamadas a processos. 

Figura 02: As interfaces não contêm código executável, são processadas na implementação.O segundo passo é codificar e compilar o código Java dos métodos para as classes de implementação dos métodos remotos com o nome aplicacaoImp.java. Nessa classe de implementação deve-se estender a UnicastRemoteObject para se ligar ao sistema RMI e para ser possível declarar construtores que lançam RemoteException. Ela possui um método construtor que invoca super() e automaticamente o código...
tracking img