24
SISTEMAS DISTRIBUÍDOS CAPÍTULO 4 – COMUNICAÇÃO Slides cedidos pela professora Aline Nascimento e do livro texto

Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

SISTEMAS DISTRIBUÍDOSCAPÍTULO 4 – COMUNICAÇÃO

Slides cedidos pela professora Aline Nascimento e do livro texto

Page 2: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

CHAMADA DE PROCEDIMENTO REMOTO

Resumindo:

Permite a um cliente o acesso a um serviço remoto por meio

de uma simples chamada a um procedimento local

Possibilita que programas clientes sejam escritos de modo

simples

Pode localizar automaticamente o servidor correto

Estabelece a comunicação entre software cliente e software

servidor

Page 3: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

RPC ASSÍNCRONA

Fornecem facilidades de modo a não bloquear o cliente

quando não há nenhum resultado a esperar

Page 4: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

RPC ASSÍNCRONA

Também podem ser úteis quando uma resposta será

retornada mas o cliente não está preparado para esperar

por ela

Enquanto espera, o cliente pode realizar outras tarefas

São combinadas duas RPCs assíncronas denominada RPC assíncrona deferida

O cliente pode, também, não esperar aceite do servidor e

continuar sua execução RPC de uma via

Quando a confiabilidade não é garantida, o cliente não saberá se a requisição será ou não processada

Page 5: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

RPC ASSÍNCRONA DEFERIDA

Page 6: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

COMUNICAÇÃO ORIENTADA A MENSAGEM

Quando não se pode adotar que o lado receptor está

executando no momento em que uma requisição é emitida,

o que fazer?

Como contornar estas limitações Troca de mensagens

Mensagens podem ser trocadas quando processos estão ou

não em funcionamento

Existe a possibilidade de armazenamento para posterior

tratamento

Page 7: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

COMUNICAÇÃO ORIENTADA A MENSAGEM

Muitos SDs são construídos em cima do modelo simples

orientado a mensagem oferecido pela camada de transporte

Algumas interfaces da camada de transporte foram

padronizadas: padrão POSIX

Page 8: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

SOCKETS

Um socket é um terminal de comunicação para o qual uma

aplicação pode ler/escrever dados que devem ser

recebidos/enviados pela rede subjacente

Sockets são abstrações que representam pontos de

comunicação através dos quais processos se comunicam

Protocolo de transporte específico

Orientado a conexão: TCP (Transport Control Protocol)

Sem conexão: UDP (User Datagram Protocol)

Page 9: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

SOCKETS

Para que dois computadores possam trocar informações

cada um utiliza um socket

Sockets adotam o paradigma cliente-servidor

Page 10: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

PRIMITIVAS DE SOCKET PARA TCP/IP

Page 11: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

FUNCIONAMENTO DE SOCKETS

receive

send receive

send

Page 12: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

SISTEMA COM SOCKETS (SERVIDOR)

from socket import *s = socket(AF_INET, SOCK_STREAM) s.bind((HOST, PORT)) s.listen(1) (conn, addr) = s.accept() # returns new socket and addr. client while True: # foreverdata = conn.recv(1024) # receive data from clientif not data: break # stop if client stoppedconn.send(str(data)+"*") # return sent data plus an "*"

conn.close() # close the connection

Page 13: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

SISTEMA COM SOCKETS (CLIENTE)

from socket import *s = socket(AF_INET, SOCK_STREAM)s.connect((HOST, PORT)) # connect to server (block until accepted)s.send('Hello, world') # send same datadata = s.recv(1024) # receive the responseprint data # print the results.close() # close the connection

Page 14: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

FACILITANDO O USO DE SOCKETS

Sockets exigem programação de baixo nível que induz a

erros

São sempre utilizados no modelo cliente-servidor

Alternativa: ZeroMQ

Provê um nível de expressão mais alto fazendo o

pareamento de sockets: um para enviar mensagens de um

processo P e um correspondente no processo Q para

receber mensagens. Toda comunicação é assíncrona.

Three patterns

Page 15: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

FACILITANDO O USO DE SOCKETS

Três padrões:

Request-reply

Publish-subscribe

Pipeline

Page 16: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

REQUEST-REPLY

Page 17: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

REQUEST-REPLY

Page 18: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

PUBLISH-SUBSCRIBE

Page 19: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

PIPELINE

Page 20: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

PIPELINE

Page 21: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

PIPELINE

Page 22: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

COMUNICAÇÃO ORIENTADA A MENSAGEM (CONT)

Interface de Troca de Mensagens (MPI)

Surgiu da consideração de que Sockets são insuficientes

para escrever com facilidade aplicações de alta eficiência

Sockets apresentam problemas de abstração, suportando

apenas primitivas simples send e receive

Sockets são considerados inadequados para protocolos

proprietários desenvolvidos para redes de alta velocidade

Tais protocolos requeriam uma interface que pudesse manipular

características mais avançadas

Page 23: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

MPI (MESSAGE PASSING LIBRARY)

Inicialmente, bibliotecas prioritárias de trocas de mensagens

eram incorporadas aos multicomputadores de alto

desempenho

Evolução natural definição de um padrão para troca de

mensagens, independente de hardware e de plataforma

MPI foi projetada para aplicações paralelas, para

comunicação transiente

Considera que falhas sérias como quedas de processos ou

partições da rede sejam fatais e não requeiram recuperação

automática

Page 24: Sistemas Distribuídos - UFFsimone/sd/contaulas/aula8.pdf · 2019-05-02 · Enquanto espera, o cliente pode realizar outras tarefas São combinadas duas RPCs assíncronas denominada

MPI – COMO FUNCIONA?

A comunicação ocorre dentro de um grupo conhecido de processos

Cada grupo recebe um identificador groupID

Cada processo dentro de um grupo também recebe um indentificador processID

O par (groupID, processID) identifica fonte ou destinatário de

uma mensagem

Vários grupos de processos podem estar envolvidos em um serviço de computação, podendo estar em execução ao mesmo tempo