apresentação do powerpoint...introdução essa aula trata como os processos se comunicam em um...

29
Invocação Remota Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29

Upload: others

Post on 27-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Invocação Remota

Prof. Leonardo Barreto Campos

http://sites.google.com/sitew/leonardobcampos 1/29

Page 2: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Sumário

Introdução

Chamada de Procedimento Remoto

Invocação a Método Remoto

Leitura Complementar

Bibliografia

2/29http://sites.google.com/sitew/leonardobcampos

Page 3: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Introdução

Essa aula trata como os processos se comunicam

em um sistema distribuído, examinando, em

particular, os paradigmas de invocação remota;

◦ Portanto, continuamos com nosso estudo dos conceitos de

middleware, abordando a camada da comunicação entre

processos;

3/29http://sites.google.com/sitew/leonardobcampos

Page 4: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Introdução

Examinaremos duas técnicas de invocação remota

mais importantes para a comunicação em sistemas

distribuídos, são elas:

◦ A Chamada Remota de Procedimento, do inglês, Remote

Procedure Call (RPC) e

◦ Invocação Remota de Métodos, do inglês, Remote Method

Invocation (RMI);

4/29http://sites.google.com/sitew/leonardobcampos

Page 5: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Introdução

A Chamada Remota de Procedimento (RPC):

◦ Permite aos programas clientes chamarem procedimentos

de forma transparente em programas servidores que estejam

sendo executados separados e, geralmente, em

computadores diferentes do cliente;

Invocação Remota de Métodos (RMI):

◦ Semelhante à RPC, mas para objetos distribuídos. Permite

assim a um objeto que está em um processo invocar os

métodos de um objeto que está em outro processo;

◦ Não deve ser confundido com exemplos particulares de

invocação a método remoto, como a RMI Java;

5/29http://sites.google.com/sitew/leonardobcampos

Page 6: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Analisemos três questões importantes de projeto

para entendermos o conceito de RPC, são elas:

◦ Programação com interfaces

◦ Semântica de chamada RPC

◦ Transparência

6/29http://sites.google.com/sitew/leonardobcampos

Page 7: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Programação com interfaces:

◦ Os programas só se preocupam com a abstração oferecida

pela interface de serviço e não precisam conhecer os

detalhes da implementação;

7/29http://sites.google.com/sitew/leonardobcampos

Page 8: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Programação com interfaces:

◦ Os programas não precisam conhecer a linguagem de

programação nem a plataforma de base utilizadas para

implementar o serviço;

◦ Dessa forma, até mesmo a interface pode mudar (evolução

de software), contando que permaneça compatível com a

original;

8/29http://sites.google.com/sitew/leonardobcampos

Page 9: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Linguagens de definição de interface, do inglês,

Interface Definition Language (IDL):

◦ Projetadas para permitir que procedimentos implementados

em diferentes linguagens invoquem uns aos outros;

◦ Uma IDL fornece uma notação para definir interfaces, na

qual cada um dos parâmetros de uma operação pode ser

descrito como sendo de entrada ou de saída, além de ter seu

tipo especificado;9/29http://sites.google.com/sitew/leonardobcampos

Page 10: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Exemplo simples de IDL do CORBA (Common

Object Request Broker Architecture):

10/29http://sites.google.com/sitew/leonardobcampos

Page 11: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

◦ O método addPerson

especifica seu argumento

como in, significando que se

trata de um argumento de

entrada (input);

11/29http://sites.google.com/sitew/leonardobcampos

Page 12: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

◦ O método getPerson,

recupera uma instância

Person pelo nome, especifica

seu segundo argumento

como out, significando que se

trata de um argumento de

saída (output);

12/29http://sites.google.com/sitew/leonardobcampos

Page 13: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Estudos de caso de IDLs:

◦ XDR – eXternal Data Representation da Sun;

◦ IDL do CORBA;

◦ Linguagem de descrição de serviços Web (Web Services

Description Language – WSDL)

◦ Buffers de protocolo utilizados no Google para armazenar e

trocar muitos tipos de informações estruturadas

13/29http://sites.google.com/sitew/leonardobcampos

Page 14: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Semântica de chamada RPC:

◦ Três diferentes formas para garantias de entrega, são elas:

14/29http://sites.google.com/sitew/leonardobcampos

Page 15: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Semântica de chamada RPC:

◦ Reenvio: retransmite a mensagem de requisição até que

uma resposta seja recebida ou que se presuma que o

servidor falhou;

15/29http://sites.google.com/sitew/leonardobcampos

Page 16: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Semântica de chamada RPC:

◦ Filtragem: são usadas retransmissões para eliminar

requisições duplicadas no servidor;

16/29http://sites.google.com/sitew/leonardobcampos

Page 17: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Semântica de chamada RPC:

◦ Retransmissão de resultados: manter um histórico das

mensagens de respostas a fim de permitir que os resultados

perdidos sejam retransmitidos sem uma nova execução das

operações no servidor

17/29http://sites.google.com/sitew/leonardobcampos

Page 18: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Transparência:

◦ RPC deve oferecer transparência de localização e acesso,

ocultando o local físico do procedimento e também

acessando procedimentos locais e remotos da mesma

maneira;

◦ Outro consenso é o de que as chamadas remotas devem se

tornar transparentes, no sentido de a sintaxe de uma

chamada remota ser a mesma de uma chamada local, mas a

diferença entre chamadas locais e remotas deve ser

expressa em suas interfaces;

18/29http://sites.google.com/sitew/leonardobcampos

Page 19: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Implementação de RPC:

◦ Geralmente, a RPC é implementada sobre um protocolo de

requisição-resposta, vejamos:

19/29http://sites.google.com/sitew/leonardobcampos

Page 20: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Implementação de RPC:

◦ O procedimento stub se comporta como um procedimento

local para o cliente, mas em vez de executar a chamada, ele

empacota o identificador de procedimento e os argumentos

em uma mensagem de requisição:

20/29http://sites.google.com/sitew/leonardobcampos

Page 21: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Implementação de RPC:

◦ A mensagem de requisição é enviada para o servidor por

meio de seu módulo de comunicação:

21/29http://sites.google.com/sitew/leonardobcampos

Page 22: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Implementação de RPC:

◦ O processo servidor contém um despachante junto a um

procedimento stub de servidor e um procedimento de serviço

para cada procedimento na interface de serviço:

22/29http://sites.google.com/sitew/leonardobcampos

Page 23: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Implementação de RPC:

◦ O despachante seleciona um dos procedimentos stub de

servidor, de acordo com o identificador de procedimento

presente na mensagem de requisição:

23/29http://sites.google.com/sitew/leonardobcampos

Page 24: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Chamada de Procedimento Remoto

Implementação de RPC:

◦ Então, o procedimento stub de servidor desempacota os

argumentos presentes na mensagem de requisição, chama o

procedimento de serviço correspondente e empacota os

valores de retorno para a mensagem de resposta:

24/29http://sites.google.com/sitew/leonardobcampos

Page 25: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Invocação a Método Remoto

RMI está intimamente relacionada à RPC, mas é

estendida para o mundo dos objetos distribuídos:

◦ Características comuns:

Suportam programação com interfaces

São construídas sobre protocolos de requisição-resposta

Oferecem um nível de transparência semelhante

◦ Diferenças:

O programador pode usar todo o poder expressivo da

POO (objetos, classe, heranças, etc) no desenvolvimento

de software de sistemas distribuídos;

Todos os objetos têm referências exclusivas e tais

referências também podem ser passadas como

parâmetros (semântica mais rica do que na RPC);

25/29http://sites.google.com/sitew/leonardobcampos

Page 27: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Leitura Complementar

Link:

http://sites.google.com/sitew/leonardobcampos 27/29

Page 28: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Leitura Complementar

Link:

http://sites.google.com/sitew/leonardobcampos 28/29

Page 29: Apresentação do PowerPoint...Introdução Essa aula trata como os processos se comunicam em um sistema distribuído, examinando, em particular, os paradigmas de invocação remota;

Bibliografia

George Coulouris, Jean Dollimore, Tim Kindberg,

Sistemas Distribuídos – Conceitos e Projeto, 5th Ed.,

Bookman, 2013.

http://sites.google.com/sitew/leonardobcampos 29/29