Java RMI - PowerPoint PPT Presentation

About This Presentation
Title:

Java RMI

Description:

Java RMI Jo o Gabriel (jggxm) – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 25
Provided by: jgg6
Category:
Tags: rmi | arquitetura | corba | java

less

Transcript and Presenter's Notes

Title: Java RMI


1
Java RMI
  • João Gabriel (jggxm)

2
RPC (Remote Procedure Call)
  • Tecnologia (Protocolo) de comunicação entre
    processos
  • Permite que um processo invoque um método de
    outro processo que esteja em seu espaço de
    endereçamento, mesmo que este esteja em outro
    host na rede
  • Torna mais fácil a implementação de aplicações
    distribuídas, pois abstrai o código referente à
    parte de comunicação

3
RMI (Remote Method Invocation)
  • Permite a chamada de métodos em objetos que estão
    em outra máquina virtual (geralmente em outro
    host) com a mesma sintaxe da invocação local
  • Implementação do RPC para Java
  • É exclusivo para aplicações em Java.
  • É tipicamente cliente-servidor.

4
Conceitos
  • Objeto Remoto É um objeto que pode receber
    invocações remotas.
  • Referência a objeto remoto Para que um objeto
    possa invocar métodos de um objeto remoto, ele
    deve ter acesso à referência do mesmo.

5
Conceitos (Continuação)
  • Interface Remota Todo objeto remoto possui uma
    interface que especifica quais dos métodos podem
    ser invocados remotamente.
  • Exceções Podem ocorrer por problemas
    decorrentes da distribuição ou na execução do
    método.

6
Considerações
  • As chamadas remotas têm um tempo de resposta
    maior do que as chamadas locais.
  • As chamadas remotas são mais vulneráveis e
    possuem falhas mais complexas.

7
Arquitetura
  • Stub
  • É uma classe gerada pelo compilador rmic no lado
    do cliente e implementa a mesma interface remota
    do lado do servidor.
  • Não implementa os métodos diretamente e sim
    traduz a invocação dos métodos para o servidor.

8
Arquitetura(Continuação)
  • Stub(Continuação)
  • Inicia a conexão com a JVM remota.
  • Serializa os parâmetros para a JVM remota
    (Marshaling).
  • Desserializa os resultados ou exceções de
    retorno.
  • Entrega ao cliente o resultado ou exceção.

9
Arquitetura(Continuação)
  • Skeleton
  • É gerado pelo compilador rmic e fica do lado do
    servidor.
  • Implementa a interface remota.
  • Desserializa(Unmarshaling) os parâmetros para o
    método remoto.
  • Invoca o método no objeto remoto.
  • Serializa o valor de retorno ou exceção e envia
    para o cliente.

10
Arquitetura(Continuação)
11
Arquitetura(Continuação)
  • Seria impraticável se para cada invocação de
    método remoto fosse necessário incluir a máquina
    e a porta de destino.
  • O RMI oferece um serviço de nomes (RMI Registry)
    que fornece informações sobre a localização de
    objetos remotos.

12
Arquitetura(Continuação)
13
Implementação
  • Inicialmente defina a interface remota.
  • Escreva o código do servidor que implementa a
    interface.
  • Escreva o código do cliente.
  • Execute o servidor
  • Execute o(s) cliente(s).

14
Exemplo
  • Peguem o exemplo clicando no link
  • http//www.cin.ufpe.br/jggxm/infra-software/

15
Exercício
  • Crie um programa que permite imprimir uma
    mensagem na tela de um computador remoto
    utilizando RMI

16
Concorrência
  • No nosso exemplo podemos perceber que caso dois
    clientes estejam acessando o mesmo objeto
    Produto, se um resolver alterar seu preço
    enquanto outro remove o mesmo poderá haver uma
    inconsistência.
  • Como resolver?

17
Concorrência(Continuação)
  • Basta colocarmos o modificador synchronized em
    cada método da classe do objeto remoto onde pode
    haver a geração de inconsistência.
  • Esse modificador faz com que um objeto que está
    sendo acessado só possa ser acessado novamente
    quando a tarefa que está sendo realizada sobre
    ele seja concluida.

18
Vantagens do RMI
  • Modelagem fácil e natural de sistemas
    distribuídos, abstraindo a parte de rede
  • Sintaxe da chamada de método local é igual à
    sintaxe da chamada de método remoto
  • Rápida difusão com a plataforma Java.

19
Desvantagens do RMI
  • Para cada máquina onde estão os objetos remotos
    deve haver um servidor de nomes para os mesmos
    serem registrados.
  • Como RMI usa comunicação síncrona, o cliente não
    pode fazer outra tarefa enquanto espera a
    resposta do servidor.
  • São necessárias configurações adicionais no
    firewall, causando restrições de acesso e
    desempenho.

20
RMI x CORBA (Vantagens)
  • RMI é similar a CORBA, porém mais simples pois
    não precisa lidar com diferentes linguagens de
    programação.
  • Como tudo é implementado em Java, não necessita
    de IDL, pois as interfaces são definidas usando
    as próprias interfaces de Java.

21
RMI x CORBA (Vantagens)
  • RMI permite que objetos possam ser passados por
    valor facilmente.
  • Com RMI objetos podem ser transferidos de
    servidores remotos para o cliente em tempo de
    execução de forma segura.

22
RMI x CORBA (Desvantagens)
  • RMI é limitado a Java.
  • Muitas vezes é necessário implementar partes do
    sistema em C por questões de eficiência e a
    integração com Java não é simples.

23
RMI x CORBA (Desvantagens)
  • Desempenho de RMI é menor em alguns casos.
  • A arquitetura de CORBA como um todo é mais
    abrangente.

24
Referências
  • http//www.ucb.br/prg/professores/fgoulart/gsi_rmi
    .pdf
  • http//www.dimap.ufrn.br/thais/SD20071/RPC-RMI.pd
    f
  • http//www.inf.pucrs.br/celso/SistemasDistribuido
    s/JavaRMI/RMI.pdf
  • https//dspace.ist.utl.pt/bitstream/2295/54860/1/0
    4_-_RMI.pdfsearch22invoke20rmi22
  • http//www.inf.ufsc.br/mario/ine6502ch2.pdf
Write a Comment
User Comments (0)
About PowerShow.com