Sistemas Distribuídos Modelo Cliente-Servidor



Documentos relacionados
Comunicação em Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

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

Modelos de Sistemas Distribuídos O Modelo Cliente-Servidor

Comunicação. Parte II

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Comunicação em Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 12

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Redes de Computadores II

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

Camada de Transporte, protocolos TCP e UDP

3. Comunicação em Sistemas Distribuídos

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

Grupos de Processos (Comunicação Grupal)

Manual de Utilização

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Treze razões pelas quais uma rede wireless é lenta

Resolução da lista de exercícios de casos de uso

Laboratório I Prof. Hélder Sato MSc. 2/14/12 Laboratório I 1

REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

Redes de Computadores

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

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

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Interconexão de Redes. Aula 03 - Roteamento IP. Prof. Esp. Camilo Brotas Ribeiro cribeiro@catolica-es.edu.br

Execícios de Revisão Redes de Computadores Edgard Jamhour. Proxy, NAT Filtros de Pacotes

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

DÚVIDAS E PERGUNTAS FREQUENTES - RASTREADOR

DoS: Negação de Serviço e formas de defesa

Unidade 11: A Unidade de Controle Prof. Daniel Caetano

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

Sistemas Operacionais

Sincronização de Processos (5) Troca de Mensagens

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

Sistemas Operacionais. Prof. André Y. Kusumoto

Sumário INTRODUÇÃO... 4 PROTOCOLO ARP...5 ARP - ADDRESS RESOLUTION PROTOCOL...5 FUNCIONAMENTO DO PROTOCOLO ARP...5 CACHE ARP... 6

Gerenciamento de redes

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

1. O DHCP Dynamic Host Configuration Protocol

MODELAGEM E SIMULAÇÃO

Métodos de Sincronização do Kernel

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07. Prof. Moises P. Renjiffo

Gerência de Memória. Paginação

ARQUITETURA DE COMPUTADORES

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar


Sistemas distribuídos:comunicação

P Procedimento para Instalação do SisGEF 7.0 na Máquina Servidor

O que se tem, na prática, é a utilização do protocolo TCP/IP na esmagadora maioria das redes. Sendo a sua adoção cada vez maior.

Sistemas Distribuídos. Coulouris Capítulo 4

Sistemas Distribuídos: Conceitos e Projeto Java RMI

Usando o Conference Manager do Microsoft Outlook

Manual do Desktop Sharing. Brad Hards Tradução: Marcus Gama

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Arquitetura de processadores: RISC e CISC

Aleph. Entre Bibliotecas. Reunião da REJE 09 de novembro de 2011

Sistemas Distribuídos RPC

CÓPIA E EXPORTAÇÃO DE SALA

Uso das ferramentas de monitoramento de gerência de redes para avaliar a QoS da rede.

Arquitetura dos Sistemas Operacionais

MODELO CLIENTE SERVIDOR

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

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Sistemas Distribuídos

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

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

Controle da produção baseado em códigos de barras

Prof. Samuel Henrique Bucke Brito

Guia de utilização da notação BPMN

Redes de Computadores (LTIC) 2013/14. GRUPO 1 (7 valores) 1º Teste 1 de Abril de Nome: Nº de aluno:

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

Multiprocessamento. Multiprocessadores com memória distribuída (multicomputador)

Instalação do Sirius sem estações. O primeiro passo é instalar o Firebird 1.5, ele se encontra no CD de instalação do Sirius na pasta Firebird.

INSTITUTO EDUCACIONAL CÂNDIDA DE SOUZA FACULDADE DE ENGENHARIA DE MINAS GERAIS - FEAMIG. Setor de Tecnologia da Informação

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Aula 03-04: Modelos de Sistemas Distribuídos

O Manual do ssc. Peter H. Grasch

Redes de Computadores

Firewall IPTables e Exemplo de Implementação no Ambiente Corporativo.

Trabalho 3: Agenda de Tarefas

Paradigma Cliente/Servidor

Diagrama lógico da rede da empresa Fácil Credito

Sistemas Cliente-Servidor

Introdução a Computação

Transcrição:

Sistemas Distribuídos Modelo Cliente-Servidor Disciplina: Sistemas Distribuídos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computação Centro de Ciências Exatas, Ambientais e de Tecnologias Pontifícia Universidade Católica de Campinas Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 1 / 27

Sistema Centralizado! Computador central (mainframe) + conjunto de terminais + recursos centralizados recursos mainframe terminais Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 2 / 27

Sistema Distribuído! Grupo de computadores + suporte de comunicação + recursos compartilhados recursos C1 C2 C3 rede Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 3 / 27

Definição! Processamento cooperativo de requisições submetidas por um cliente a um servidor que as processa e retorna um resultado " clientes: processos que requisitam serviços; " servidores: processos que recebem requisições, realizam uma operação e retornam serviços! Uma máquina pode executar: " um simples processo (cliente ou servidor) " múltiplos clientes " múltiplos servidores " uma mistura dos dois (múltiplos clientes e servidores) Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 4 / 27

Definição cliente kernel request reply servidor kernel Rede Visão lógica da comunicação cliente/servidor cliente kernel request reply servidor kernel Rede Troca de mensagens que possibilita a comunicação cliente/servidor. Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 5 / 27

Definição cliente 1 request cliente 2... cliente n servidor recurso Vários clientes acessando um recurso de forma transparente através do servidor Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 6 / 27

Endereçamento! Para que um cliente possa mandar uma mensagem a um servidor ele precisa saber seu endereço! Existem várias formas de endereçamento! Principais: " por número de máquina " por processo " por nomes ASCII obtidos de um servidor de nomes (name server) Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 7 / 27

Endereçamento! Endereçamento por máquina " Utiliza o número da máquina para endereçamento # um processo por máquina # não é transparente simplicidade cliente kernel 1 2 servidor kernel 1 request to 243 2 reply to 199 Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 8 / 27

cliente kernel Endereçamento! Endereçamento por máquina " Pode-se utilizar uma combinação entre número da máquina e número do processo # não é transparente simplicidade não precisa de coordenação global (não há ambiguidade entre processos) 1 2 servidor kernel 1 request to 243.0 2 reply to 199.4 Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 9 / 27

Endereçamento! Endereçamento por processo " Associar a cada processo um endereço único que não contém o número da máquina " Duas alternativas para a escolha do número do processo: - Processo centralizado responsável pela alocação de endereços transparência # escalabilidade - Cada processo pega seu próprio endereço aleatoriamente de um grande espaço de dados transparência escalabilidade Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 10 / 27

Endereçamento! Endereçamento por processo " O cliente faz broadcast de um pacote especial para localização " O kernel que contém o processo devolve uma mensagem do tipo here I am transparência # gera carga extra no sistema cliente kernel 3 servidor 4 kernel 1 2 1 broadcast 2 here I am 3 request 4 reply Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 11 / 27

! Endereçamento por name server " Utiliza uma máquina extra para mapear nomes de serviços em endereços de máquinas " servidores são referenciados como strings e estas são embutidas nos programas transparência # requer um componete centralizado servidor kernel 3 4 Endereçamento cliente kernel 1 2 Name server kernel 1 NS lookup 2 NS reply 3 request 4 reply Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 12 / 27

Primitivas Bloqueantes e Não-bloqueantes! Primitivas Bloqueantes (síncronas) " a instrução seguinte ao send não é executada até que a mensagem tenha sido completamente enviada " a chamada receive não retorna o controle até que a mensagem tenha sido recebida e colocada no buffer! Primitivas Não-bloqueantes (assíncronas) " o send retorna o controle imediatamente, antes da mensagem ser realmente enviada " o receive passa para o kernel o ponteiro para o buffer e retorna imediatamente, antes de receber a mensagem Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 13 / 27

Primitivas Bloqueantes e Não-bloqueantes! Primitivas Bloqueantes (síncronas) " processo fica bloqueado durante a transferência da mensagem " melhor opção para envio de mensagens em condições normais: simples de entender simples de implementar performance para envio de mensagem # CPU fica ociosa durante a transmissão Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 14 / 27

Primitivas Bloqueantes e Não-bloqueantes! Primitivas Não-bloqueantes (assíncronas) " Primitivas não-bloqueantes com cópia - o kernel copia a mensagem para um buffer interno e então libera o processo para continuar # desempenho sobrepor processamento e transmissão da mensagem " Primitivas não-bloqueantes com interrupção - interrompe o processo que enviou a mensagem quando o buffer estiver livre para reutilização # programação difícil desempenho Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 15 / 27

! Primitivas não-bufferizadas Bufferização " O buffer para armazenar a mensagem deve ser especificado pelo programador " Existem duas estratégias a serem empregadas no caso de um send do cliente, sem um receive do servidor: - descartar mensagens inesperadas - temporariamente manter mensagens inesperadas! Primitivas bufferizadas " Existe um buffer para armazenar mensagens inesperadas " A primitiva de bufferização mais empregada define estruturas de dados chamadas mailbox Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 16 / 27

! Primitivas não-bufferizadas Bufferização " Descartando mensagens Implementação # O cliente pode ficar tentando reenviar mensagens # Podem ocorrer casos em que o cliente desista de enviar a mensagem " Temporariamente mantendo mensagens reduz a chance da mensagem ser descartada # introduz problema de gerenciamento e armazenamento de mensagens inesperadas Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 17 / 27

! Primitivas não-bufferizadas Bufferização " Passagem de mensagem não-bufferizada C A S Kernel Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 18 / 27

! Primitivas bufferizadas Bufferização " Um processo que está interessado em receber mensagens avisa ao kernel para criar uma mailbox informando o endereço de origem das mensagens " Todas as mensagens são colocadas na mailbox e uma chamada receive simplesmente remove mensagens dela reduz ainda mais a chance de mensagens serem descartadas # mailboxes são finitas e podem necessitar de estratégias análogas às adotadas anteriormente Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 19 / 27

! Primitivas bufferizadas Bufferização " Passagem de mensagem bufferizada C S Kernel A Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 20 / 27

Confiabilidade! Três diferentes alternativas podem ser utilizadas: " assumir que as primitivas não são confiáveis, alterando a semântica do send - o sistema não garante que as mensagens são enviadas - o usuário fica responsável por implementar comunicação confiável " primitivas confiáveis com mecanismos de acknowledgment do tipo: Request Ack Reply Ack " primitivas confiáveis com mecanismos de acknowledgment do tipo: Request Reply Ack! Combinações podem ser obtidas entre os mecanismos Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 21 / 27

Confiabilidade! Request Ack Reply Ack " somente quando o Ack é recebido, o processo é liberado " o Acknowledgment é feito entre kernels (transparente para o cliente ou servidor) " um Request/Reply com este mecanismo necessita de quatro mensagens 1. Request 2. Ack 3. Reply 4. Ack Kernel C 1 3 2 4 S Kernel Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 22 / 27

! Request Reply Ack " o Reply serve como um Ack Confiabilidade " o cliente fica bloqueado até a mensagem de Reply " se a mensagem de Reply demorar, o cliente reenvia a requisição " em alguns kernels não é necessário o Ack 1. Request 2. Reply 3. Ack C 1 2 S Kernel 3 Kernel Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 23 / 27

Alternativas de de Projeto Endereçamento por número de máquina por processo por nomes ASCII obtidos de um name server Bloqueante primitivas bloqueantes primitivas nãobloqueantes com cópia para o kernel primitivas nãobloqueantes com interrupção Bufferização não-bufferizado, descartando mensagens inesperadas não-bufferizado, mantendo temporariamente mensagens inesperadas mailboxes Confiabilidade não-confiáveis Request-Ack-Reply-Ack Request-Reply-Ack Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 24 / 27

Outras questões! As redes têm um tamanho máximo de pacote " mensagens maiores devem ser quebradas! O acknowledgment pode ser utilizado: " por pacote, ou " por mensagem % Dependendo da taxa de erros da rede Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 25 / 27

Exemplo de de Protocolo! Pacotes normalmente empregados no protocolo de comunicação REQ Request Cliente Servidor O cliente quer serviço REP Reply Servidor Cliente Resposta do servidor para o cliente ACK Ack Cliente/Servidor Outro O pacote anterior chegou AYA Are you alive? Cliente Servidor Verifica se o servidor está OK IAA I am alive Servidor Cliente O servidor está OK TA Try Again Servidor Cliente O servidor não tem espaço AU Address Unknown Servidor Cliente Nenhum processo usa o endereço Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 26 / 27

Exemplo de de Protocolo! Alguns exemplos de comunicação: Ago/2004 Sistemas Distribuídos - Edmar R. S. de Rezende 2004 27 / 27