RMI (Remote MethodInvocation)<br />Acadêmico: Helio Henrique Lopes Costa Monte Alto<br />R.A.: 53729<br />Disciplina: Sist...
Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x COR...
Introdução<br />Objetos distribuídos:<br />Forma de implementar aplicações cliente/servidor;<br />Isolam clientes da imple...
Introdução<br />RMI (Remote MethodInvocation) genérico:<br />“A RPC (Remote Procedure Call) está para a RMI assim como a c...
Introdução<br />O que é Java RMI? <br />Interface de programação (API) para Java<br />RPC com a flexibilidade do Java, i. ...
Introdução<br />Filosofia do Java: “Escreva uma vez, rode em qualquer lugar”;<br />RMI estende esse modelo: “Rode em todos...
Portabilidade<br />Conexão com sistemas legados: <br />JNI (Java Native Interface);<br />Conexão com bancos de dados: <br ...
Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x COR...
Vantagens<br />Em relação a sistemas RPC tradicionais:<br />Abordagem orientada a objetos;<br />Passagem de mensagens com ...
Vantagens<br />Padrões de projeto de OO:<br />Melhoram qualidade do código<br />Fácil de escrever / fácil de usar: <br />A...
Vantagens<br />Segurança:<br />Proteção contra código malicioso;<br />Mecanismos próprios do Java;<br />Políticas de segur...
Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x COR...
Funcionamento<br />Funcionamento básico<br />Em (1), busca pelo serviço e pega o endereço. Em (2), ele acessa o serviço pe...
Funcionamento<br />Considerações importantes:<br />Os métodos do objeto remoto podem ser chamados como se fossem de um obj...
Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x COR...
Arquitetura<br />
Arquitetura<br />Gerenciador de referências remotas: <br />mapeamento de referências locais/remotas;<br />Stub: <br />prox...
Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x COR...
Exemplos<br />Criando uma interface do objeto remoto<br />
Exemplos<br />Criando a classe que implementará a interface FileInterface<br />
Exemplos<br />Criando o servidor<br />
Exemplos<br />Criando um cliente<br />
Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x COR...
RMI x CORBA x Web Services<br />Web Services diferem bastante dos outros dois:<br />Não há objetos em WS;<br />Maior inter...
RMI x CORBA x Web Services<br />Geração de componentes do cliente e servidor para as três tecnologias (GRAY,  2004)<br />
RMI x CORBA x Web Services<br />Medidas de tempo de CPU (GRAY, 2004)<br />Análises de tráfego (GRAY,  2004)<br />
Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x COR...
Aplicações<br />Sistemas distribuídos complexos;<br />Clusters de estações de trabalhos;<br />Sistemas de gerenciamento de...
Referências<br />COULOURIS G., DOLLIMORE J., KINDBERG T. “SistemasDistribuídos: Conceitos e Projeto”. Bookman. Quartaediçã...
Upcoming SlideShare
Loading in...5
×

Rmi (remote method invocation)

1,383

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,383
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Rmi (remote method invocation)

  1. 1. RMI (Remote MethodInvocation)<br />Acadêmico: Helio Henrique Lopes Costa Monte Alto<br />R.A.: 53729<br />Disciplina: Sistemas Distribuídos<br />Professor: Flávio Arnaldo Braga da Silva<br />
  2. 2. Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x CORBA x Web Services<br />Aplicações<br />Referências<br />
  3. 3. Introdução<br />Objetos distribuídos:<br />Forma de implementar aplicações cliente/servidor;<br />Isolam clientes da implementação dos serviços;<br />Protocolo básico:<br />Cliente manda mensagem a um objeto remoto (através de uma interface de serviços);<br />Objeto interpreta mensagem;<br />Objeto seleciona um comportamento, que será executado pelo próprio objeto ou por um broker (intermediário / agente);<br />
  4. 4. Introdução<br />RMI (Remote MethodInvocation) genérico:<br />“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) <br />Implementada em uma camada de middleware;<br />Camada de middleware (Coulouris et al., 2007)<br />
  5. 5. Introdução<br />O que é Java RMI? <br />Interface de programação (API) para Java<br />RPC com a flexibilidade do Java, i. e., da orientação a objetos<br />Ex: polimorfismo<br />Objetos distribuídos<br />Comunicação entre JVMs<br />
  6. 6. Introdução<br />Filosofia do Java: “Escreva uma vez, rode em qualquer lugar”;<br />RMI estende esse modelo: “Rode em todos os lugares”;<br />
  7. 7. Portabilidade<br />Conexão com sistemas legados: <br />JNI (Java Native Interface);<br />Conexão com bancos de dados: <br />JDBC (Java DatabaseConnectivity)<br />
  8. 8. Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x CORBA x Web Services<br />Aplicações<br />Referências<br />
  9. 9. Vantagens<br />Em relação a sistemas RPC tradicionais:<br />Abordagem orientada a objetos;<br />Passagem de mensagens com tipos complexos: objetos;<br />Flexibilidade de implementações<br />Vários comportamentos podem ser definidos para uma mesma interface;<br />Ex: mudança de política;<br />
  10. 10. Vantagens<br />Padrões de projeto de OO:<br />Melhoram qualidade do código<br />Fácil de escrever / fácil de usar: <br />Aplicações cliente/servidor;<br />Permite desenvolver sem se preocupar com detalhes de comunicação;<br />3 linhas de código para declarar um servidor;<br />Desenvolvimento rápido, rápida prototipação;<br />
  11. 11. Vantagens<br />Segurança:<br />Proteção contra código malicioso;<br />Mecanismos próprios do Java;<br />Políticas de segurança;<br />RMISecurityManager;<br />Conexão com sistemas legados;<br />Escreva uma vez, rode onde quiser;<br />Coletor de lixo distribuído;<br />Computação paralela;<br />
  12. 12. Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x CORBA x Web Services<br />Aplicações<br />Referências<br />
  13. 13. Funcionamento<br />Funcionamento básico<br />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<br />
  14. 14. Funcionamento<br />Considerações importantes:<br />Os métodos do objeto remoto podem ser chamados como se fossem de um objeto local;<br />Objetos remotos podem ser passados por parâmetro ou retornados como resultado;<br />Objetos são definidos como:<br />Interface: define os comportamentos, i. e., os métodos disponíveis; é a classe à qual o cliente referencia;<br />Implementação: implementa os comportamentos, que são executados remotamente no servidor;<br />
  15. 15. Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x CORBA x Web Services<br />Aplicações<br />Referências<br />
  16. 16. Arquitetura<br />
  17. 17. Arquitetura<br />Gerenciador de referências remotas: <br />mapeamento de referências locais/remotas;<br />Stub: <br />proxy presente no lado do cliente<br />comporta-se como objeto local, mas em vez de executar uma invocação local, encaminha uma mensagem a um objeto remoto<br />Skeleton:<br />invoca o método correspondente à invocação do cliente;<br />
  18. 18. Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x CORBA x Web Services<br />Aplicações<br />Referências<br />
  19. 19. Exemplos<br />Criando uma interface do objeto remoto<br />
  20. 20. Exemplos<br />Criando a classe que implementará a interface FileInterface<br />
  21. 21. Exemplos<br />Criando o servidor<br />
  22. 22. Exemplos<br />Criando um cliente<br />
  23. 23. Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x CORBA x Web Services<br />Aplicações<br />Referências<br />
  24. 24. RMI x CORBA x Web Services<br />Web Services diferem bastante dos outros dois:<br />Não há objetos em WS;<br />Maior interoperabilidade:<br />Ótimo para Web, usando HTTP, por exemplo;<br />Desempenho geralmente pior:<br />HTTP e XML geram muita carga quando deve haver muitas trocas de mensagens;<br />Custo do processamento (parsing) de XML é mais alto;<br />
  25. 25. RMI x CORBA x Web Services<br />Geração de componentes do cliente e servidor para as três tecnologias (GRAY, 2004)<br />
  26. 26. RMI x CORBA x Web Services<br />Medidas de tempo de CPU (GRAY, 2004)<br />Análises de tráfego (GRAY, 2004)<br />
  27. 27. Sumário<br />Introdução<br />Portabilidade<br />Vantagens<br />Funcionamento<br />Arquitetura<br />Exemplos<br />RMI x CORBA x Web Services<br />Aplicações<br />Referências<br />
  28. 28. Aplicações<br />Sistemas distribuídos complexos;<br />Clusters de estações de trabalhos;<br />Sistemas de gerenciamento de redes;<br />Aplicações distribuídas que requerem escalabilidade;<br />
  29. 29. Referências<br />COULOURIS G., DOLLIMORE J., KINDBERG T. “SistemasDistribuídos: Conceitos e Projeto”. Bookman. Quartaedição. 2007.<br />Distributed Java Programming with RMI and CORBA. Disponívelemhttp://java.sun.com/developer/technicalArticles/RMI/rmi_corba/. AcessadoemJunho de 2011;<br />GRAY, N. A. B. Comparison of Web Services, Java-RMI, and CORBA service implementations. Fifth Australasian Workshop on Software and System Architectures. 2004<br />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;<br />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;<br />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<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×