apresentação do powerpoint...introdução essa aula trata como os processos se comunicam em um...
TRANSCRIPT
Invocação Remota
Prof. Leonardo Barreto Campos
http://sites.google.com/sitew/leonardobcampos 1/29
Sumário
Introdução
Chamada de Procedimento Remoto
Invocação a Método Remoto
Leitura Complementar
Bibliografia
2/29http://sites.google.com/sitew/leonardobcampos
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
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
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
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
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
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
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
Chamada de Procedimento Remoto
Exemplo simples de IDL do CORBA (Common
Object Request Broker Architecture):
10/29http://sites.google.com/sitew/leonardobcampos
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Leitura Complementar
Link:
http://sites.google.com/sitew/leonardobcampos 26/29
Leitura Complementar
Link:
http://sites.google.com/sitew/leonardobcampos 27/29
Leitura Complementar
Link:
http://sites.google.com/sitew/leonardobcampos 28/29
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