• Nenhum resultado encontrado

ach 2147 desenvolvimento de sistemas de informação distribuídos

N/A
N/A
Protected

Academic year: 2021

Share "ach 2147 desenvolvimento de sistemas de informação distribuídos"

Copied!
22
0
0

Texto

(1)

ach 2147 — desenvolvimento de sistemas de informação distribuídos

comunicação

Daniel Cordeiro 18 e 20 de abril de 2018

Escola de Artes, Ciências e Humanidades | EACH | USP

(2)

protocolos em camadas

• Camadas de baixo nível

• Camada de transporte

• Camada de aplicação

• Camada do middleware

(3)

modelo de comunicação básico

Physical Data link Network Transport Session Application Presentation

Application protocol Presentation protocol

Session protocol Transport protocol Network protocol Data link protocol Physical protocol

Network

1 2 3 4 5 7 6

Desvantagens:

• Funciona apenas com passagem de mensagens

• Frequentemente possuem funcionalidades desnecessárias

• Viola a transparência de acesso

(4)

camadas de baixo nível

Camada física: contém a especificação e implementação dos bits em um quadro, e como são transmitidos entre o remetente e destinatário

Camada de enlace: determina o envio de séries de bits em um quadro, permite detecção de erro e controle de fluxo Camada de rede: determina como pacotes sãoroteadosem uma

rede de computadores Observação:

Em muitos sistemas distribuídos, a interface de mais baixo nível é a interface de rede.

(5)

camada de transporte

Importante:

A camada de transporte fornece as ferramentas de comunicação efetivamente utilizadas pela maioria dos sistemas distribuídos.

Protocolos padrões da Internet

TCP: orientada a conexão, confiável, comunicação orientada a fluxo de dados

UDP: comunicação de datagramas não confiável (best-effort) Nota:

IP multicasting é normalmente considerado um serviço padrão (mas essa é uma hipótese perigosa)

(6)

camada de middleware

Middleware foi inventado para prover serviços e protocolos frequentemente usadosque podem ser utilizados por várias aplicaçõesdiferentes.

• Um conjunto rico deprotocolos de comunicação

• (Des)empacotamento[(un)marshaling] de dados, necessários para a integração de sistemas

• Protocolos de gerenciamento de nomes, para auxiliar o compartilhamento de recursos

• Protocolos de segurançapara comunicações seguras

• Mecanismos de escalabilidade, tais como replicação e caching Observação:

O que realmente sobra são protocolos específicos de aplicação.

(7)

tipos de comunicação

Client

Server

Synchronize after processing by server Synchronize at

request delivery Synchronize at

request submission

Request

Reply Storage

facility Transmission

interrupt

Time

• Comunicaçãotransientevs. persistente

• Comunicaçãoassíncronavs. síncrona

(8)

tipos de comunicação

Client

Server

Synchronize after processing by server Synchronize at

request delivery Synchronize at

request submission

Request

Reply Storage

facility Transmission

interrupt

Time

Transiente vs. persistente

Comunicação transiente: remetente descarta a mensagem se ela não puder ser encaminhada para o destinatário Comunicação persistente: uma mensagem é guardada no

remetente pelo tempo que for necessário, até ser entregue no destinatário

(9)

tipos de comunicação

Client

Server

Synchronize after processing by server Synchronize at

request delivery Synchronize at

request submission

Request

Reply Storage

facility Transmission

interrupt

Time

Pontos de sincronização

• No envio da requisição

• Na entrega da requisição

• Após o processamento da requisição

(10)

cliente/servidor

Computação Cliente/Servidor geralmente é baseada em um modelo decomunicação transiente síncrona:

• Cliente e servidor devem estar ativos no momento da comunicação

• Cliente envia uma requisição e bloqueia até que receba sua resposta

• Servidor essencialmente espera por requisições e as processa

Desvantagens de comunicação síncrona:

• o cliente não pode fazer nenhum trabalho enquanto estiver esperando por uma resposta

• falhas precisam ser tratadas imediatamente (afinal, o cliente está esperando)

• o modelo pode não ser o mais apropriado (mail, news)

(11)

cliente/servidor

Computação Cliente/Servidor geralmente é baseada em um modelo decomunicação transiente síncrona:

• Cliente e servidor devem estar ativos no momento da comunicação

• Cliente envia uma requisição e bloqueia até que receba sua resposta

• Servidor essencialmente espera por requisições e as processa Desvantagens de comunicação síncrona:

• o cliente não pode fazer nenhum trabalho enquanto estiver esperando por uma resposta

• falhas precisam ser tratadas imediatamente (afinal, o cliente está esperando)

• o modelo pode não ser o mais apropriado (mail, news)

(12)

trocas de mensagem

Middleware orientado a mensagens

tem como objetivo provercomunicação persistente assíncrona:

• Processos trocam mensagens entre si, as quais são armazenadas em uma fila

• O remetente não precisa esperar por uma resposta imediata, pode fazer outras coisas enquanto espera

• Middleware normalmente assegura tolerância a falhas

(13)

RPC — Chamadas a

procedimentos remotos

(14)

chamadas a procedimentos remotos (rpc)

• Funcionamento básico de RPCs

• Passagem de parâmetros

• Variações

(15)

funcionamento básico de rpc

• Desenvolvedores estão familiarizados com o modelo de procedimentos

• Procedimentos bem projetados operam isoladamente (black box)

• Então não há razão para não executar esses procedimentos em máquinas separadas

Conclusão

Comunicação entre o chamador &

chamado podem ser escondida com o uso de mecanismos de

chamada a procedimentos. Call local procedure and return results Call remote

procedure Return

from call Client

Request Reply

Server

Time Wait for result

(16)

funcionamento básico de rpc

Implementation of add

Client OS Server OS

Client machine Server machine

Client stub

Client process Server process

1. Client call to procedure

2. Stub builds message

5. Stub unpacks message 6. Stub makes

local call to "add"

3. Message is sent across the network

4. Server OS hands message to server stub Server stub

k = add(i,j) k = add(i,j)

proc: "add"

int: val(i) int: val(j)

proc: "add"

int: val(i) int: val(j)

proc: "add"

int: val(i) int: val(j)

1. Procedimento no cliente chama o stubdo cliente

2. Stubconstrói mensagem; chama o SO local

3. SO envia msg. para o SO remoto 4. SO remoto repassa mensagem para o

stub

5. Stubdesempacota parâmetros e chama o servidor

6. Servidor realiza chamada local e devolve resultado para ostub 7. Stubconstrói mensagem; chama SO 8. SO envia mensagem para o SO do

cliente

9. SO do cliente repassa msg. para o stub

10. Stubdo cliente desempacota resultado e devolve para o cliente

(17)

rpc: passagem de parâmetros

Empacotamento de parâmetros

há mais do que apenas colocá-los nas mensagens:

• As máquinas cliente e servidor podem terrepresentação de dados diferentes(ex: ordem dos bytes)

• Empacotar um parâmetro significatransformar um valor em uma sequência de bytes

• Cliente e servidor precisam concordar com a mesma regra de codificação (encoding):

• Como osvalores dos dados básicos(inteiros, números em ponto flutuante, caracteres) são representados?

• Como osvalores de dados complexos(vetores,unions) são representados?

• Cliente e servidor precisaminterpretar corretamente as

mensagens, transformando seus valores usando representações dependentes da máquina

(18)

rpc: passagem de parâmetros

Algumas suposições:

• semântica decopy in/copy out: enquanto um procedimento é executado, nada pode ser assumido sobre os valores dos parâmetros

• Todosos dados são passado apenas por parâmetro. Exclui passagem dereferências para dados (globais).

Conclusão

Não é possível assumir transparência total de acesso.

(19)

rpc: passagem de parâmetros

Algumas suposições:

• semântica decopy in/copy out: enquanto um procedimento é executado, nada pode ser assumido sobre os valores dos parâmetros

• Todosos dados são passado apenas por parâmetro. Exclui passagem dereferências para dados (globais).

Conclusão

Não é possível assumir transparência total de acesso.

(20)

rpc assíncrono

Ideia geral

Tentar se livrar do comportamento estrito de requisição–resposta, mas permitir que o cliente continue sem esperar por uma resposta do servidor.

Call local procedure Call remote

procedure Return

from call Request Accept request

Wait for acceptance

Call local procedure and return results Call remote

procedure

Return from call

Client Client

Request Reply

Server Time Server Time

Wait for result

(a) (b)

(21)

rpc síncrono diferido

Call local procedure Call remote

procedure

Return from call Client

Request Accept request Server

Time Wait for

acceptance

Interrupt client

Return

results Acknowledge

Call client with one-way RPC

Variação

Cliente pode também realizar uma consulta (poll) (bloqueante ou não) para verificar se os resultados estão prontos.

(22)

rpc na prática

C compiler Uuidgen

IDL compiler

C compiler C compiler

Linker Linker

C compiler

Server stub object file

Server object file

Runtime library

Server binary Client

binary

Runtime library Client stub

object file Client

object file

Client stub

Client code Header Server stub

Interface definition file

Server code

#include

#include

Referências

Documentos relacionados

Surdez de condução ou condutiva: localiza-se no nível do ouvido externo e/ou médio (redução da intensidade dos sons que alcançam o ouvido interno - o som chega mais fraco)..

2019 2021 2022 2023 2T20 Estruturação do financiamento Início da construção 2T19 Licença de instalação 4T19 Criação da joint venture Construção 1S22 Início da operação

apenas sendo feita em proporções diferentes pela Fundação e pelo INSS. Além disso, existem dois benefícios adicionais. Em primeiro lugar, o INSS fará os pagamentos retroativos do

8° Fica o Poder Executivo autorizado, consoante § 7° do artigo 137 da Lei Orgânica do Município de São Paulo, a abrir créditos adicionais suplementares por decreto,

Ação revisionai de aluguel de imóvel urbano / Fábio Hanada, Andréa Ranieri Hanada; [Colab.] Luiz Roberto de Azevedo Soares Cury, Alexandre da Silva

Considerando que a Política Nacional de Atenção Hospitalar no âmbito do SUS estabelece as diretrizes para a organização do componente hospitalar da Rede de Atenção

1. Os interessados nesta licitação deverão, às suas expensas obter as informações necessárias à correta avaliação dos custos e prazos que terão para o cumprimento do

kroyeri from Anchieta Municipality, Espírito Santo State, during the period from January to December 2008, monthly samplings with one-hour-long were conducted to verify the number of