Sistemas Distribuídos - Comunicação Distribuída – RPC

5.550 visualizações

Publicada em

Publicada em: Tecnologia, Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
5.550
No SlideShare
0
A partir de incorporações
0
Número de incorporações
240
Ações
Compartilhamentos
0
Downloads
199
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sistemas Distribuídos - Comunicação Distribuída – RPC

  1. 1. Comunicação Distribuída – RPC Prof. Adriano Teixeira de Souza
  2. 2.  Estratégias diferentes que permitem a comunicação entre aplicações distribuídas. Tipos distintos de comunicação em um sistema distribuído: ◦ Sockets ◦ RPC – Remote Procedure Call ◦ RMI - Remote Method Invocation ◦ CORBA – Commom Object Request Broker Architecture ◦ EJB – Enterprise Java Bean ◦ Web Services Prof. Adriano Teixeira de Souza
  3. 3.  Motivação: ◦ Dificuldade em programar para Ambientes distribuídos ◦ Desvantagem do socket ◦ Foco na aplicação Prof. Adriano Teixeira de Souza
  4. 4.  Objetivo ◦ Tornar fácil a implementação de aplicações distribuídas ◦ Permitir chamada de procedimento remoto como se fosse local Prof. Adriano Teixeira de Souza
  5. 5.  Um processo A chama um procedimento p de um processo B, entrando em estado de espera O processo B passa a executar o procedimento p, e ao seu término faz um reply para o processo A O processo A volta à sua execução normal após ter recebido o reply Prof. Adriano Teixeira de Souza
  6. 6.  Marshalling: ◦ Linearização de uma coleção de itens de dados estruturados ◦ Tradução dos dados em formato externo Unmarshalling: ◦ Tradução do formato externo para o local ◦ Restauração dos itens de dados de acordo com sua estrutura Prof. Adriano Teixeira de Souza
  7. 7.  Esconde o código das chamadas a rede em procedimentos chamados stubs. ◦ Stubs – procedimentos que contem código de chamadas de rede ◦ Esconde detalhes como socket. Prof. Adriano Teixeira de Souza
  8. 8. 1. Criar aplicação convencional2. Dividir o programa em duas partes3. Criar uma especificação rpcgen4. Executar o rpcgen5. Criar servidor6. Criar cliente7. Compilar cliente8. Compilar servidor9. Executar servidor e cliente Prof. Adriano Teixeira de Souza
  9. 9. Prof. Adriano Teixeira de Souza
  10. 10. Prof. Adriano Teixeira de Souza
  11. 11.  Client stub ◦ intercepta a chamada ◦ empacota os parâmetros (marshalling) ◦ envia mensagem de request ao servidor Server stub ◦ recebe a mensagem de request ◦ desempacota os parâmetros (unmarshalling) ◦ chama o procedimento, passando os parâmetros ◦ empacota o resultado ◦ envia mensagem de reply ao cliente Client stub ◦ recebe a mensagem de reply ◦ desempacota o resultado ◦ passa o resultado para o cliente Prof. Adriano Teixeira de Souza
  12. 12. Máquina do Cliente Máquina do Servidor 2 4 1 empacota desempacota 5 0 6 parâmetros parâmetros cliente servidor desempacota empacota 11 7 resultados resultados 10 8 Kernel Kernel 3 transporte de mensagens 9 via rede Prof. Adriano Teixeira de Souza
  13. 13.  Uma maneira de fazer comunicação em sistemas distribuídos de uma forma transparente. Proposta por Birrel e Nelson em 1984. ◦ Birrell & Nelson 1984: A. D. Birrell and B. J. Nelson. ``Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1):39-59 Um procedimento numa máquina A chama um procedimento numa máquina B. Para o programador, tudo se parece como se os dois procedimentos fizessem parte do mesmo programa. Prof. Adriano Teixeira de Souza
  14. 14.  O sistema (middleware) se encarrega da comunicação entre as máquinas. Implementação popular: Sun rpcgen desenvolvido no final dos anos 80. Desenvolvimentos da idéia de RPC: ◦ CORBA - Common Object Request Broker Architecture ◦ Java RMI - Remote Method Invocation ◦ DCOM - Distributed Component Object Model Prof. Adriano Teixeira de Souza

×