Sistemas Distribuídos - Aula 06

841 views
735 views

Published on

Objetos Distribuídos e Invocação Remota
Java RMI

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

  • Be the first to like this

No Downloads
Views
Total views
841
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
70
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sistemas Distribuídos - Aula 06

  1. 1. SISTEMAS DISTRIBUÍDOS OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1
  2. 2. INTRODUÇÃO RPC: • chamada de procedimento remoto; • programas clientes chamarem procedimentos de programas servidores. RMI: • invocação de método remoto; • objetos de diferentes processos se comunicam; • objeto que está em um processo pode invocar métodos de um objeto que está em outro processo. 2
  3. 3. INTRODUÇÃO Middleware Software que fornece um modelo de programação acima dos blocos de construção básicos de processos e passagem de mensagens. Fornece: invocações a métodos remotos, transparência da localização e independência dos detalhes dos protocolos de comunicação, sistemas operacionais e hardware. 3
  4. 4. INTERFACES EM SISTEMAS DISTRIBUÍDOS 4
  5. 5. INTERFACES EM SISTEMAS DISTRIBUÍDOS Para controlar as interações entre módulos em sistemas distribuídos, são definidas interfaces para cada módulo. 5
  6. 6. INTERFACES EM SISTEMAS DISTRIBUÍDOS Interfaces de serviço: • Cada servidor fornece um conjunto de procedimentos que estão disponíveis para uso dos clientes. Interfaces remotas: • Especifica os métodos de um objeto que estão disponíveis para invocação por parte dos objetos de outros processos. • Podem passar objetos com argumentos e resultados dos métodos. 6
  7. 7. COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS 7
  8. 8. COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS 8
  9. 9. O MODELO DE OBJETO DISTRIBUÍDO Cada processo contém um conjunto de objetos, dos quais alguns podem receber invocações a métodos locais e remotos e outros somente locais. Objetos podem invocar métodos de um objeto remoto se tiverem acesso á sua referência de objeto remoto. Todo objeto remoto tem uma interface remota especificando quais métodos podem ser invocados de forma remota. 9
  10. 10. INTERFACES REMOTAS A classe de um objeto remoto implementa os métodos de sua interface remota. Objetos em outros processos somente invocam métodos pertencentes à interface remota. 10
  11. 11. IMPLEMENTAÇÃO DE RMI 11
  12. 12. IMPLEMENTAÇÃO DE RMI Software RMI: camada de software – middleware – entre os objetos do aplicativo e os módulos de comunicação e de referência remota. 12
  13. 13. IMPLEMENTAÇÃO DE RMI • Proxy: torna a invocação do método remoto transparente ao cliente, comportando-se como um objeto local para o invocador; mas, em vez de executar uma invocação local, ele a encaminha em uma mensagem para um objeto remoto. Existe um proxy para cada objeto remoto que um processo faz referência. 13
  14. 14. IMPLEMENTAÇÃO DE RMI • Despachante: um servidor tem um despachante e um esqueleto para cada classe que representa o objeto remoto. O despachante recebe uma mensagem de requisição do módulo de comunicação e seleciona o método apropriado no esqueleto, despachando a mensagem de requisição. 14
  15. 15. IMPLEMENTAÇÃO DE RMI • Esqueleto: desempacota os argumentos na mensagem de requisição e invoca o método correspondente no servente. Depois, espera que a requisição termine e empacota o resultado em uma mensagem de resposta que é enviada ao método do proxy que fez a requisição. 15
  16. 16. JAVA RMI Extensão do modelo de objeto Java para dar suporte para objetos distribuídos em Java. Permite que objetos invoquem métodos em objetos remotos usando a mesma sintaxe de invocações locais. Mais simples construir aplicações RMI do que aplicações com RPC ou CORBA. 16
  17. 17. JAVA RMI Necessita de tratar a exceção Remote Exception e implementar a interface Remote. Exige suporte a TCP/IP e um serviço de nomes de objetos (rmiregistry), que acompanha o JAVA JDK/SDK. • O serviço de nomes RMI Registry oferece informações sobre a localização dos objetos remotos. • Traduz uma tabela de nomes textuais na forma //nomeComputador:porta/nomeObjeto em objetos remotos contidos no computador. 17
  18. 18. JAVA RMI Geração de classes proxies, despachantes e esqueletos: são geradas automaticamente por um compilador de interface. O conjunto de métodos oferecidos por um objeto remoto é definido como uma interface Java implementada do objeto remoto. O compilador para Java RMI gera as classes de proxy, despachante e esqueleto a partir da classe do objeto remoto. 18
  19. 19. INTERFACES REMOTAS NO JAVA RMI As interfaces remotas são definidas pela ampliação de uma interface chamada Remote, do pacote java.rmi. Os métodos disparam a exceção RemoteException, além das possíveis exceções do aplicativo. 19
  20. 20. INTERFACE REMOTA - CALCULADORA 20
  21. 21. IMPLEMENTAÇÃO DA INTERFACE – CALCULADORAIMPL 21
  22. 22. SERVIDOR 22
  23. 23. CLIENTE 23
  24. 24. RODANDO EXEMPLO Javac *.java Rmic CalculatorImpl (cria o Stub) Rmiregistry (levanta o servidor de nomes RMI) Java CalculatorServer Java CalculatorClient 24
  25. 25. SISTEMAS DISTRIBUÍDOS OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA ARTHUR EMANUEL DE OLIVEIRA CAROSIA 25

×