Distributed Systems Principles and Paradigms



Documentos relacionados
Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Comunicação. Parte II


Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos. Coulouris Capítulo 4

Considerações no Projeto de Sistemas Cliente/Servidor

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

Sistemas Distribuídos

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Sistemas Distribuídos

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Message Oriented Middleware (MOM)

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

SISTEMAS DISTRIBUIDOS

Sistemas Distribuídos Arquiteturas Middlewares

Redes de Computadores Aula 3

Modelos de Arquiteturas. Prof. Andrêza Leite

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Sistemas Distribuídos

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Ciência de Computadores Sistemas Distribuídos e Móveis

Sistemas distribuídos:comunicação

Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos

Sistemas Distribuídos e Redes de Sensores

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Sistemas Cliente-Servidor

Sistemas Distribuídos

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Sistemas Distribuídos Aula 15

Sistemas Distribuídos

Remote Procedure Call. Programação distribuída e paralela (C. Geyer) RPC 1

Arquitetura de um sistema é a especificação de sua estrutura e de seus componentes

Sistemas Distribuídos Comunicação. Edeyson Andrade Gomes

MÓDULO 8 Modelo de Referência TCP/IP

Programação distribuída e paralela (C. Geyer) RPC 1

SISTEMAS DISTRIBUÍDOS

Redes de Computadores

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 17 de junho de 2015

Prof. Marcelo Cunha Parte 5

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

Passagem de Mensagens

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes.

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Redes de Computadores

Revisão. Karine Peralta

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

REDES DE COMPUTADORES

Serviços Web: Introdução

Protocolos Hierárquicos

Capítulo 7 CAMADA DE TRANSPORTE

Redes de Computadores

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Redes de computadores são sistemas complexos. Decomposição dos sistemas em elementos realizáveis

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

INE Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Modelos de Camadas. Professor Leonardo Larback

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Introdução à Redes de Computadores

Rede de Computadores

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz

MODELO CLIENTE SERVIDOR

Unidade 1. Conceitos Básicos

Sistemas Distribuídos

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

Rede de Computadores II

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Sistemas Distribuídos

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla

Introdução ao Modelos de Duas Camadas Cliente Servidor

Sistemas Distribuídos. Introdução

Universidade Tuiuti do Paraná Faculdade de Ciências Exatas. Tecnologia de Análise e Desenvolvimento de Sistemas. TCP/IP x ISO/OSI

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

Transcrição:

Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science (Tradução e Adaptação Ricardo Anido - IC/Unicamp) Capítulo 04: Comunicação Versão: 20 de março de 2014

2 / 16 Conteúdo Capítulo 01: Introdução 02: Arquiteturas 03: Processos 04: Comunicação 05: Nomeação 06: Sincronização 07: Consistência & Replicação 08: Tolerância a Falhas 09: Securança 10: Distribuição de Sistemas Baseados em Objetos 11: Sistemas de Arquivos Distribuídos 12: Sistemas Distribuídos Baseados na Web 13: Sistemas Distribuídos Baseados em Coordenação

3 / 16 Comunicação Protocolos em Camadas Camadas de baixo nível Camada de Transporte Camada de Aplicação Camada de Middleware

Comunicação 4 / 16 Modelo Básico de Rede Application Presentation Session Transport Network Data link Physical Application protocol Presentation protocol Session protocol Transport protocol Network protocol Data link protocol Physical protocol 7 6 5 4 3 2 1 Network Deficiências Foco apenas em passagem de mensagem Não raramente funcionalizades não necessárias ou não desejadas Viola transparência de acesso

5 / 16 Comunicação Camadas de baixo nível Recap Camada Física: contém a especificação e implementação de bits, e sua transmissão entre remetentes e destinatários Camada de enlace de dados: divide transmissão em pedaços, e fornece recuperação de erros e controle de fluxo. Camada de Rede: descreve como os pedaços de dados são roteados pela rede. Observação Para muitos sistemas distribuídos, a interface de mais baixo nível é a camada de rede.

6 / 16 Camada de Transporte Comunicação Importante A camada de transporte provê as facilidades de comunicação para sistemas distribuídos. Protocolos padrões da Internet TCP: orientada a conexão, confiável, orientada a streams (fluxo de bits) UDP: não confiável (melhor esforço), datagrama

7 / 16 Comunicação Camada de Middleware Observação Camada de middleware foi inventada para prover serviços e protocolos comuns que podem ser usadas por aplicações diferentes. Um rico conjunto de protocolos de comunicação (Un)marshaling de dados Protocolos de nomeação, para permitir compartilhamento de serviços Protocolos de Segurança, para comunicação segura Mecanismos para escalar aplicações, como replicação e cache

8 / 16 Tipos de comunicação Comunicação Client Request Synchronize at request submission Synchronize at request delivery Transmission interrupt Storage facility Synchronize after processing by server Reply Server Time Distinguir Comunicação Transiente versus persistente Comunicação Assíncrona versus síncrona

Comunicação Tipos de comunicação Client Synchronize at request submission Synchronize at request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time Transiente versus persistente Comunicação Transiente: Servidor descarta mensagem quando não pode ser entregue (próximo servidor ou destino) Comunicação Persistente: Uma mensagem é armazenada por tanto tempo quanto necessário para entrega. 9 / 16

Comunicação 10 / 16 Tipos de comunicação Client Synchronize at request submission Synchronize at request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time Locais de sincronização Na submissão de requisições Na entrega da requisição Após o processamento da requisição

Comunicação 11 / 16 Cliente/Servidor Observações Modelo Cliente/Servidor é geralmente baseado em comunicação transiente assíncrona: Cliente e servidor devem estar ativos ao mesmo tempo Cliente envia requisição e bloqueia até receber resposta Servidor essencialmente espera por requisições Deficiências de comunicação síncrona Cliente não pode fazer qualquer outro trabalho enquando espera O modelo pode não ser apropriado (mail, news)

Comunicação 11 / 16 Cliente/Servidor Observações Modelo Cliente/Servidor é geralmente baseado em comunicação transiente assíncrona: Cliente e servidor devem estar ativos ao mesmo tempo Cliente envia requisição e bloqueia até receber resposta Servidor essencialmente espera por requisições Deficiências de comunicação síncrona Cliente não pode fazer qualquer outro trabalho enquando espera O modelo pode não ser apropriado (mail, news)

Comunicação 12 / 16 Mensagens Middleware orientado a mensagens Provê comunicação persistente,assíncrona: Processos enviam mensgens entre si, que são enfileiradas Remetente não precisa esperar por resposta imediata, pode fazer outras tarefas Middleware geralmente garante algum tipo de tolerância a falhas

13 / 16 Comunicação Remote Procedure Call (RPC) 4.2 Remote Procedure Call Operação básica RPC Passagem de Parâmetros Variações

Comunicação 4.2 Remote Procedure Call RPC - operação básica Observação Modelo familiar a desenvolvedores Bem projetadas, podem operar com isolamento (black box) Não existe razão fundamental para não executar procedimentos em máquinas separadas Conclusão Comunicação entre chamador & chamado pode ser escondido usando esse mecanismo Client Server Call remote procedure Request Wait for result Reply Call local procedure and return results Return from call Time 14 / 16

RPC - operação básica Client machine Comunicação 4.2 Remote Procedure Call Server machine Client process k = add(i,j) proc: "add" int: val(i) int: val(j) 1. Client call to procedure Server stub Client stub 2. Stub builds message Server process Implementation of add k = add(i,j) proc: "add" int: val(i) int: val(j) 6. Stub makes local call to "add" 5. Stub unpacks message Client OS proc: "add" int: val(i) int: val(j) Server OS 4. Server OS hands message to server stub 3. Message is sent across the network 1 Procedimento cliente chama um stub 2 Stub empacota parâmetros, constrói mensagem, chama OS local 3 OS envia mensagem para OS servidor. 4 OS remoto entrega mensagem para stub. 5 Stub desempacota parâmetros e chama servidor 6 Servidor retorna resultado para stub 7 Stub empacota resultado, monta mensagem; calls OS. 8 OS servidor envia mensagem para OS cliente 9 OS entrega mensagem para stub 10 Stub cliente desepacota mensagem e entrega resultado para cliente 15 / 16

Comunicação 4.2 Remote Procedure Call 16 / 16 RPC: Passagem de parâmetros Tratamento (marshaling) de parâmetros Mais do que apenas montar mensagem: Cliente e servidor podem usar diferentes representação de dados (byte ordering) Empacotar um parâmetro significa transformar em uma sequência de byte Cliente e servidor devem concordar sobre a codificação: Como valores de dados básicos são representados (integers, floats, characters) Como dados complexos são representados (arrays, unions) Cliente e servidor devem interpretar corretamente as mensagens, transformando-as para representação independente de máquina.