25
SISTEMAS DISTRIBUÍDOS OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1

Sistemas Distribuídos - Aula 06

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Sistemas Distribuídos - Aula 06

1

SISTEMAS DISTRIBUÍDOS

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

ARTHUR EMANUEL DE OLIVEIRA CAROSIA

Page 2: Sistemas Distribuídos - Aula 06

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

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

4

INTERFACES EM SISTEMAS DISTRIBUÍDOS

Page 5: Sistemas Distribuídos - Aula 06

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

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

7

COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS

Page 8: Sistemas Distribuídos - Aula 06

8

COMUNICAÇÃO ENTRE PROCESSOS DISTRIBUÍDOS

Page 9: Sistemas Distribuídos - Aula 06

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

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

11

IMPLEMENTAÇÃO DE RMI

Page 12: Sistemas Distribuídos - Aula 06

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

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

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

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

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

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

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

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

20

INTERFACE REMOTA - CALCULADORA

Page 21: Sistemas Distribuídos - Aula 06

21

IMPLEMENTAÇÃO DA INTERFACE – CALCULADORAIMPL

Page 22: Sistemas Distribuídos - Aula 06

22

SERVIDOR

Page 23: Sistemas Distribuídos - Aula 06

23

CLIENTE

Page 24: Sistemas Distribuídos - Aula 06

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

25

SISTEMAS DISTRIBUÍDOS

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

ARTHUR EMANUEL DE OLIVEIRA CAROSIA