1 / 23

Sistemas Distribuídos

Sistemas Distribuídos. Carlos A. G. Ferraz DI/UFPE Aula 06. Tópicos. O Modelo Cliente/Servidor (cont.) RPC. O Modelo Cliente/Servidor (cont.). Servidores “Gordos”: fazem maior parte das operações Exemplos: Servidores de transação Servidores de objetos Servidores de groupware.

nieve
Download Presentation

Sistemas Distribuídos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 06

  2. Tópicos • O Modelo Cliente/Servidor (cont.) • RPC

  3. O Modelo Cliente/Servidor (cont.) Servidores “Gordos”: fazem maior parte das operações Exemplos: • Servidores de transação • Servidores de objetos • Servidores de groupware

  4. O Modelo Cliente/Servidor (cont.) Clientes “Gordos” / Servidores “Magros” Exemplos: • Servidores de arquivos • Servidores de banco de dados

  5. O Modelo Cliente/Servidor (cont.) Endereçamento: • Máquina.processo • Broadcasting • Servidor de nomes

  6. Cliente/Servidor: Endereçamento Máquina.processo 1 cliente servidor 2 1. Pedido para 243.0 2. Resposta para 199.0

  7. Cliente/Servidor: Endereçamento Broadcasting 3 cliente servidor 4 1 2 1. Broadcast 2. “Here I am” 3. Pedido 4. Resposta

  8. Cliente/Servidor: Endereçamento Servidor de nomes 4 1 servidor cliente servidor de nomes 3 2 1. Procura 2. Resposta do servidor de nomes 3. Pedido 4. Resposta

  9. Cliente/Servidor: Endereçamento Problemas: • Máquina.processo: não transparente • Broadcasting: sobrecarga no sistema • Servidor de nomes: centralizado

  10. O Modelo Cliente/Servidor (cont.) Primitivas: • Bloqueantes (síncronas) • Não-bloqueantes (assíncronas)

  11. (a) Blocking send parada durante transmissão da mensagem (b) Nonblocking send com cópia perda de tempo para a cópia tx em background (c) Nonblocking send programação mais difícil cliente Cliente/Servidor: Primitivas (a) executando executando bloqueado envio da mensagem (b) bloq. executando executando msg copiada p/ buffer envio da mensagem

  12. Cliente/Servidor: Primitivas • A vantagem de melhor desempenho de primitivas não-bloqueantes pode ser desfeita pela seguinte desvantagem: o sender não pode modificar o buffer de mensagem até que a mensagem seja enviada - seria um grande erro gravar sobre a mensagem • O pior é o processo nunca poder saber quando pode reusar o buffer -> solução por timeout

  13. Cliente/Servidor: Primitivas • Assim como send pode ser bloqueante ou não-bloqueante, receive também pode • Quase sempre a versão bloqueante de receive é mais simples e preferida

  14. Cliente/Servidor: Primitivas Passagem de mensagem: • Sem buffer: o servidor tem que chamar receive antes que o cliente chame outro send • Com buffer: o servidor, ao chamar receive, retira uma mensagem do “mailbox” ou bloqueia se não houver mensagem no buffer

  15. Cliente/Servidor: Primitivas Primitivas confiáveisversusnão-confiáveis: • Não-confiáveis: não há garantias de entrega Ex: correio

  16. núcleo núcleo núcleo núcleo Cliente/Servidor: Primitivas Primitivas confiáveis: 1 1 servidor cliente servidor cliente 3 2 4 3 2 1. Request (cliente-servidor) 2. ACK (núcleo-núcleo) 3. Reply (servidor-cliente) 4. ACK (núcleo-núcleo) 1. Request (cliente-servidor) 2. Reply (servidor-cliente) 4. ACK (núcleo-núcleo)

  17. RPC • Protocolo Pedido-Resposta • Integração relativamente transparente com linguagem de programação

  18. RPC (cont.) • Evitar passagem de endereço e variáveis globais • Novos tipos de erros em função da distribuição • Incl.: tratamento de exceções (ex.: atraso de comunicação -> timeout)

  19. RPC (cont.) • Clientes acessam serviços fazendo RPCs para operações nas interfaces de servidores • Stubs: transparência de acesso • tratamento de algumas exceções no local • marshalling • unmarshalling

  20. RPC (cont.) Binder • Ligação dinâmica • Transparência de localização

  21. RPC (cont.) Sun x ANSA • IDL: Sun só permite um argumento e um resultado • ANSA fornece nomes de interface, SUN fornece números de programa e versão • Concorrência: ANSA fornece um pacote de threads; SunOS não, Solaris sim.

  22. RPC: Sun x ANSA (cont.) • Semântica de chamada: ao-menos-uma-vez (Sun), no-máximo-uma-vez (ANSA) • Limitações no tamanho de argumentos e resultados: sim (Sun), não (ANSA) • Transparência: Sun não fornece transparência de localização

  23. RPC (cont.) Considerações finais: • RPC assíncrono • Comunicação em grupo

More Related