You are on page 1of 11

José Carlos

Luiza Gabriela Felix Gonçalves


Paulo Henrique Damião Pires
Thiers Euler de Oliveira Fernandes

TRABALHO DE SISTEMAS DISTRIBUÍDOS:


RMI - JAVA

Santa Luzia
Faculdade da Cidade de Santa Luzia - FACSAL
2011
José Carlos
Luiza Gabriela Felix Gonçalves
Paulo Henrique Damião Pires
Thiers Euler de Oliveira Fernandes

TRABALHO DE SISTEMAS DISTRIBUÍDOS:


RMI - JAVA
Trabalho apresentado ao professor
Leandro como requisito da Matéria
Sistemas Distribuídos.

Santa Luzia
Faculdade da cidade de santa Luzia
2011
SUMÁRIO

1.INTRODUÇÃO AO RMI..............................................................................................4
2.CONCEITOS..................................................................................................................5
3.PRINCÍPIO DO RMI - INTERFACES..........................................................................6
4.ARQUITETURA EM CAMADAS DO RMI................................................................7
4.1A camada Stub & Skeleton...........................................................................................7
4.2A camada de Referências Remotas..............................................................................7
4.3A camada de Transporte...............................................................................................7
5.NAMING – SERVIÇO DE REGISTRO........................................................................9
6.REFERENCIAS BIBLIOGRÁFICAS.........................................................................10
“Feliz é aquele que crê no Senhor!”
Pois Ele é a essência da vida.
É a luz do mundo.
1. INTRODUÇÃO AO RMI

A tecnologia RMI (Remote Method Invocation), é uma abordagem de


introdução ao Java do prover o conceito de funcionalidades de plataformas de objetos
distribuídos. Foi primeiramente introduzida no Java, no JDK versão 1.1, elevando a
programação para redes em um patamar mais elevado. O RMI define um novo conceito
para a computação quanto à objetos distribuídos. Utilizando-se da tecnologia RMI o
programador pode desenvolver aplicativos que um objeto ativo em uma máquina virtual
Java utilize métodos de outras máquinas independentes da sua localização. Dessa forma
é possível que classes e objetos Java trabalhem com múltiplas JVM”s.

Figura 1: Funcionamento do RMI

Na figura 1 (acima) é mostrado o funcionamento do RMI de forma simples. O


aplicativo do cliente solicita um método (serviço) à interface. O Servidor “escuta” essa
chamada de método e, caso exista algum retorno, devolve para o cliente.
Claramente pode ser identificado que na arquitetura de aplicação distribuída impõe
condições à própria aplicação, como risco de falhas de comunicação, falhas de servidor,
largura de banda, etc. O RMI consegue lidar com algumas dessas condições, apesar de
não serem todas.

4
2. CONCEITOS

A ideia central do RMI é a separação entre interface e implementação de uma


classe, que claramente é compatível com a ideia de Orientação a Objetos. Essa
separação permite que a interface e a sua respectiva implementação estejam situadas em
JVM’s diferentes. Com isso é permitido aos programadores, desenvolverem programas
distribuídos em Java com a mesma sintaxe e semântica usada em programas não
distribuídos. Para isso, um mapeamento cuidadoso teve que ser feito de como classes e
objetos trabalham em uma única JVM para implementar um novo modelo de como as
classes e objetos trabalhariam num ambiente distribuído de computação (múltiplas
JVMs) . Os arquitetos do RMI tentaram fazer com que o uso dos objetos distribuídos
em Java fosse similar ao uso de objetos Java local. A arquitetura RMI define como se
comportam, como e quando exceções podem ocorrer, como a memória é gerenciada e
como os parâmetros são passados e retomados de métodos remotos.

5
3. PRINCÍPIO DO RMI - INTERFACES

A definição do comportamento e a implementação são conceitos separados. É


permitido no RMI tanto para o comportamento quanto para a implementação este
comportamento permanece separado e rodam em JVMs separadas. Então, a chave para
explicar RMI é lembrar que interfaces definem o comportamento e as classes definem
implementação.

6
4. ARQUITETURA EM CAMADAS DO RMI

Essencialmente ela é classificada em 3 camadas de abstração como mostra a


figura 2, a seguir:

Figura 2: Estrutura de Camadas RMI.

4.1 A camada Stub & Skeleton


É a camada mais próxima do programador. Os Stubs são classes usadas do lado
da aplicação do cliente e funcionam como Proxies entre a aplicação cliente e o objeto
remoto. Ela intercepta chamadas de métodos solicitadas pelo cliente para que a variável
de referencia da interface redirecione essas chamadas para o serviço RMI remoto com
os parâmetros definidos pela interface da classe remota.

4.2 A camada de Referências Remotas


Ela sabe interpretar e gerenciar referências feitas pelos clientes para os objetos
do serviço remoto, e estabelece a semântica da ligação RMI.

4.3 A camada de Transporte


Baseada nas conexões TCP/IP, assegurando a ligação entre as máquinas virtuais.
O RMI possui um protocolo denominado JRMP (Java Remote Method Protocol) que
permite ultrapassar alguns obstáculos que podem surgir na comunicação de rede via
TCP/IP. Por exemplo, o JRMP permite multiplexar várias ligações TCP/IP numa única
ligação TCP/IP ultrapassando imposições de utilização de apenas uma ligação em
alguns ambientes (ex.: certos browsers a executar aplicações RMI).

7
Através desta estrutura de camada, poderiam ser feitas modificações, trocas e melhoras
em cada uma das camadas sem interferir no sistema.

8
5. NAMING – SERVIÇO DE REGISTRO

Para ser encontrado um serviço na rede, antes é necessário que ele seja
registrado em um local onde a aplicação cliente possa procurá-lo e assim utilizar o
serviço. O próprio RMI possui este serviço que é o RMI Registry, acessado através da
classe Naming (estática) e através do método lookup() o cliente requisita o registo. Se
esse serviço for encontrado, o Serviço de Registos retorna um objeto Stub através do
qual se torna possível chamar os métodos do objeto remoto.

9
6. REFERENCIAS BIBLIOGRÁFICAS

http://www.guj.com.br/articles/37 - Acesso 24/03/2011


http://paginas.fe.up.pt/~eol/AIAD/aulas/JINIdocs/rmi1.html - Acesso 10/04/2011
http://pt.wikipedia.org/wiki/Java_%26_RMI - Acesso 10/04/2011

10

You might also like