• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Rmi (remote method invocation)
 

Rmi (remote method invocation)

on

  • 1,509 views

 

Statistics

Views

Total Views
1,509
Views on SlideShare
1,507
Embed Views
2

Actions

Likes
1
Downloads
25
Comments
0

1 Embed 2

http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Rmi (remote method invocation) Rmi (remote method invocation) Presentation Transcript

    • RMI (Remote MethodInvocation)
      Acadêmico: Helio Henrique Lopes Costa Monte Alto
      R.A.: 53729
      Disciplina: Sistemas Distribuídos
      Professor: Flávio Arnaldo Braga da Silva
    • Sumário
      Introdução
      Portabilidade
      Vantagens
      Funcionamento
      Arquitetura
      Exemplos
      RMI x CORBA x Web Services
      Aplicações
      Referências
    • Introdução
      Objetos distribuídos:
      Forma de implementar aplicações cliente/servidor;
      Isolam clientes da implementação dos serviços;
      Protocolo básico:
      Cliente manda mensagem a um objeto remoto (através de uma interface de serviços);
      Objeto interpreta mensagem;
      Objeto seleciona um comportamento, que será executado pelo próprio objeto ou por um broker (intermediário / agente);
    • Introdução
      RMI (Remote MethodInvocation) genérico:
      “A RPC (Remote Procedure Call) está para a RMI assim como a chamada de procedimento está para a invocação de objetos.” (Coulouris et al., 2007)
      Implementada em uma camada de middleware;
      Camada de middleware (Coulouris et al., 2007)
    • Introdução
      O que é Java RMI?
      Interface de programação (API) para Java
      RPC com a flexibilidade do Java, i. e., da orientação a objetos
      Ex: polimorfismo
      Objetos distribuídos
      Comunicação entre JVMs
    • Introdução
      Filosofia do Java: “Escreva uma vez, rode em qualquer lugar”;
      RMI estende esse modelo: “Rode em todos os lugares”;
    • Portabilidade
      Conexão com sistemas legados:
      JNI (Java Native Interface);
      Conexão com bancos de dados:
      JDBC (Java DatabaseConnectivity)
    • Sumário
      Introdução
      Portabilidade
      Vantagens
      Funcionamento
      Arquitetura
      Exemplos
      RMI x CORBA x Web Services
      Aplicações
      Referências
    • Vantagens
      Em relação a sistemas RPC tradicionais:
      Abordagem orientada a objetos;
      Passagem de mensagens com tipos complexos: objetos;
      Flexibilidade de implementações
      Vários comportamentos podem ser definidos para uma mesma interface;
      Ex: mudança de política;
    • Vantagens
      Padrões de projeto de OO:
      Melhoram qualidade do código
      Fácil de escrever / fácil de usar:
      Aplicações cliente/servidor;
      Permite desenvolver sem se preocupar com detalhes de comunicação;
      3 linhas de código para declarar um servidor;
      Desenvolvimento rápido, rápida prototipação;
    • Vantagens
      Segurança:
      Proteção contra código malicioso;
      Mecanismos próprios do Java;
      Políticas de segurança;
      RMISecurityManager;
      Conexão com sistemas legados;
      Escreva uma vez, rode onde quiser;
      Coletor de lixo distribuído;
      Computação paralela;
    • Sumário
      Introdução
      Portabilidade
      Vantagens
      Funcionamento
      Arquitetura
      Exemplos
      RMI x CORBA x Web Services
      Aplicações
      Referências
    • Funcionamento
      Funcionamento básico
      Em (1), busca pelo serviço e pega o endereço. Em (2), ele acessa o serviço pegando uma referência à interface do objeto. Em (3), ele chama um método fornecido pelo objeto
    • Funcionamento
      Considerações importantes:
      Os métodos do objeto remoto podem ser chamados como se fossem de um objeto local;
      Objetos remotos podem ser passados por parâmetro ou retornados como resultado;
      Objetos são definidos como:
      Interface: define os comportamentos, i. e., os métodos disponíveis; é a classe à qual o cliente referencia;
      Implementação: implementa os comportamentos, que são executados remotamente no servidor;
    • Sumário
      Introdução
      Portabilidade
      Vantagens
      Funcionamento
      Arquitetura
      Exemplos
      RMI x CORBA x Web Services
      Aplicações
      Referências
    • Arquitetura
    • Arquitetura
      Gerenciador de referências remotas:
      mapeamento de referências locais/remotas;
      Stub:
      proxy presente no lado do cliente
      comporta-se como objeto local, mas em vez de executar uma invocação local, encaminha uma mensagem a um objeto remoto
      Skeleton:
      invoca o método correspondente à invocação do cliente;
    • Sumário
      Introdução
      Portabilidade
      Vantagens
      Funcionamento
      Arquitetura
      Exemplos
      RMI x CORBA x Web Services
      Aplicações
      Referências
    • Exemplos
      Criando uma interface do objeto remoto
    • Exemplos
      Criando a classe que implementará a interface FileInterface
    • Exemplos
      Criando o servidor
    • Exemplos
      Criando um cliente
    • Sumário
      Introdução
      Portabilidade
      Vantagens
      Funcionamento
      Arquitetura
      Exemplos
      RMI x CORBA x Web Services
      Aplicações
      Referências
    • RMI x CORBA x Web Services
      Web Services diferem bastante dos outros dois:
      Não há objetos em WS;
      Maior interoperabilidade:
      Ótimo para Web, usando HTTP, por exemplo;
      Desempenho geralmente pior:
      HTTP e XML geram muita carga quando deve haver muitas trocas de mensagens;
      Custo do processamento (parsing) de XML é mais alto;
    • RMI x CORBA x Web Services
      Geração de componentes do cliente e servidor para as três tecnologias (GRAY, 2004)
    • RMI x CORBA x Web Services
      Medidas de tempo de CPU (GRAY, 2004)
      Análises de tráfego (GRAY, 2004)
    • Sumário
      Introdução
      Portabilidade
      Vantagens
      Funcionamento
      Arquitetura
      Exemplos
      RMI x CORBA x Web Services
      Aplicações
      Referências
    • Aplicações
      Sistemas distribuídos complexos;
      Clusters de estações de trabalhos;
      Sistemas de gerenciamento de redes;
      Aplicações distribuídas que requerem escalabilidade;
    • Referências
      COULOURIS G., DOLLIMORE J., KINDBERG T. “SistemasDistribuídos: Conceitos e Projeto”. Bookman. Quartaedição. 2007.
      Distributed Java Programming with RMI and CORBA. Disponívelemhttp://java.sun.com/developer/technicalArticles/RMI/rmi_corba/. AcessadoemJunho de 2011;
      GRAY, N. A. B. Comparison of Web Services, Java-RMI, and CORBA service implementations. Fifth Australasian Workshop on Software and System Architectures. 2004
      Java Remote Method Invocation - Distributed Computing for Java. Disponívelem: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138781.html. Acessado em Junho de 2011;
      MAASSEN, J., et al. An efficient implementation of Java's remote method invocation. Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming. 1999;
      Tutorial RMI - Remote Method Invocation.Disponívelem : http://www.devmedia.com.br/post-6442-Tutorial-RMI-Remote-Method-Invocation.html. Acessado em Junho de 2011