Rmi sistemas distribuidos

Disponível somente no TrabalhosFeitos
  • Páginas : 9 (2232 palavras )
  • Download(s) : 0
  • Publicado : 30 de maio de 2012
Ler documento completo
Amostra do texto
1. Introdução
O RMI (Remote Method Invocation) é uma tecnologia suportada pela plataforma Java que facilita o desenvolvimento de aplicações distribuídas. Como o próprio nome indica, o RMI permite ao programador invocar métodos de objetos remotos, ou seja, que está alojado em máquinas virtuais Java distinta, duma forma muito semelhante às invocações a objetos locais. De certa forma, à custa dealgum esforço adicional de engenharia de software, o programador pode desenvolver aplicações totalmente distribuídas como se de aplicações locais se tratassem, sendo quase toda a comunicação entre máquinas virtuais Java assegurada transparentemente pelo próprio RMI.
Evidentemente, há algumas diferenças fundamentais entre uma aplicação distribuída e uma aplicação não distribuída. A principal é a deque numa aplicação distribuída há uma infra-estrutura de comunicação subjacente que impõe um conjunto de condicionalismos à própria aplicação: risco de falhas de comunicação, latências variáveis, limites de banda, falha de servidores, etc... O RMI permite lidar com facilmente algumas destas contingências embora, como iremos ver futuramente, não com todas. Por outro lado, um ambiente distribuídosignifica normalmente (embora não necessariamente) que existe um suporte heterogéneo de hardware e de plataformas (Unix, Linux, Windows, etc.). Como é usado a tecnologia Java, o RMI torna esta heterogeneidade menos preocupante, resultando numa boa solução global para o programador no desenvolvimento de aplicações distribuídas.
2. Conceitos Básicos
Uma noção central ao RMI é o da separação entreinterface e implementação de uma classe, que é aliás compatível com a filosofia OO. A particularidade mais relevante desta separação é que o RMI permite que a interface e a respectiva implementação se localizem em JVM's diferentes. O RMI torna possível que uma determinada aplicação cliente adquira uma interface (que define o comportamento) referente a uma classe (que contém a implementação) quecorre numa JVM diferente. Relembre-se que uma interface em Java não possui código de implementação o que significa que neste caso toda a computação subjacente à interface corre numa JVM distinta. A comunicação entre interface e a implementação é assegurada pelo RMI recorrendo a TCP/IP. A próxima figura tenta ilustrar este processo em alto nível:

[pic]
Figura 1
3. As Camadas RMI
O sistema RMIesconde do programador um grande conjunto de operações e recursos que estão envolvidos no processo de invocação. Decompondo o sistema RMI é possível identificar 3 camadas que vamos listar por ordem de proximidade ao programador (i.e., de cima para baixo relativamente à figura 1):
1. A camada de stub/skeleton, responsável por receber as chamadas da aplicação cliente feitas à interface e porencaminhá-las para o objeto remoto.
2. A camada de Referências Remotas (Remote Referência Layer), que lida com a gestão e com a interpretação das referências remotas.
3. A camada de Transporte, que assegura a ligação entre as máquinas virtuais através de TCP/IP.
[pic]
Figura 2
3.1 Camada Stubs e Skeletons
A camada mais próxima do programador, ou seja, da aplicação cliente e do objeto remoto,é a camada Stubs/Skeletons. Os Stubs são classes usadas do lado da aplicação cliente e funcionam como Proxies entre a aplicação cliente e o objeto remoto. Os Stubs recebem os parâmetros dos métodos exportados pelo objeto remoto (definidas pela interface da classe remota) e encaminha para o lado do servidor onde serão interpretados por uma instância de uma classe Skeleton. O Skeleton recebe osparâmetros enviados pelo Stub e executa as respectivas chamadas no objeto remoto. Em sentido inverso, os Skeletons são também responsáveis por receber o valor de retorno do método remoto (local na sua perspectiva) e direcioná-los para os Stubs dos clientes correspondentes.
3.2 Camada de Referências Remotas
Esta camada mantém as referências entre os clientes e os objetos remotos e estabelece a...
tracking img