Sistemas Distribuídos Sistemas de Ficheros Distribuídos: CODA e Intermezzo.
Sistemas Distribuídos - Aula 06
-
Upload
arthur-emanuel -
Category
Technology
-
view
392 -
download
3
description
Transcript of Sistemas Distribuídos - Aula 06
![Page 1: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/1.jpg)
1
SISTEMAS DISTRIBUÍDOS
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA
ARTHUR EMANUEL DE OLIVEIRA CAROSIA
![Page 2: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/2.jpg)
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.
![Page 3: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/3.jpg)
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.
![Page 4: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/4.jpg)
4
INTERFACES EM SISTEMAS DISTRIBUÍDOS
![Page 5: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/5.jpg)
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.
![Page 6: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/6.jpg)
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.
![Page 7: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/7.jpg)
7
COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS
![Page 8: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/8.jpg)
8
COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS
![Page 9: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/9.jpg)
9
O MODELO DE OBJETO DISTRIBUÍDOCada 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.
![Page 10: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/10.jpg)
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.
![Page 11: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/11.jpg)
11
IMPLEMENTAÇÃO DE RMI
![Page 12: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/12.jpg)
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.
![Page 13: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/13.jpg)
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.
![Page 14: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/14.jpg)
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.
![Page 15: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/15.jpg)
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.
![Page 16: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/16.jpg)
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.
![Page 17: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/17.jpg)
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.
![Page 18: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/18.jpg)
18
JAVA RMIGeraçã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.
![Page 19: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/19.jpg)
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.
![Page 20: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/20.jpg)
20
INTERFACE REMOTA - CALCULADORA
![Page 21: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/21.jpg)
21
IMPLEMENTAÇÃO DA INTERFACE – CALCULADORAIMPL
![Page 22: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/22.jpg)
22
SERVIDOR
![Page 23: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/23.jpg)
23
CLIENTE
![Page 24: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/24.jpg)
24
RODANDO EXEMPLO
Javac *.java
Rmic CalculatorImpl (cria o Stub)
Rmiregistry (levanta o servidor de nomes RMI)
Java CalculatorServer
Java CalculatorClient
![Page 25: Sistemas Distribuídos - Aula 06](https://reader033.fdocument.pub/reader033/viewer/2022061213/5496d01fb47959564d8b50c2/html5/thumbnails/25.jpg)
25
SISTEMAS DISTRIBUÍDOS
OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA
ARTHUR EMANUEL DE OLIVEIRA CAROSIA