Your SlideShare is downloading. ×
0
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

4,060

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,060
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
174
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Comunicação Distribuída – RPC Prof. Adriano Teixeira de Souza
  • 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.  Motivação: ◦ Dificuldade em programar para Ambientes distribuídos ◦ Desvantagem do socket ◦ Foco na aplicação Prof. Adriano Teixeira de Souza
  • 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.  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.  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.  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. 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. Prof. Adriano Teixeira de Souza
  • 10. Prof. Adriano Teixeira de Souza
  • 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. 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.  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.  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

×