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

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

Sistemas Distribuídos

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


SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

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

Distributed Systems Principles and Paradigms

Capítulo 7 CAMADA DE TRANSPORTE

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Protocolos Hierárquicos

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

Prof. Marcelo Cunha Parte 5

3. Comunicação em Sistemas Distribuídos

REDES DE COMPUTADORES

Comunicação em Sistemas Distribuídos

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

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

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

Sistemas Distribuídos

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

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

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Redes de Computadores

Redes de computadores. Redes para Internet

Redes de Computadores II

AULA Redes de Computadores e a Internet

Rede de Computadores II

Tecnologia de Redes de Computadores - aula 5

O modelo ISO/OSI (Tanenbaum,, 1.4.1)


Redes de Computadores

Professor: Gládston Duarte

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

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

Considerações no Projeto de Sistemas Cliente/Servidor

REDES DE COMPUTADORES. Arquiteturas de Redes

Revisão. Karine Peralta

MODELO CLIENTE SERVIDOR

Sockets. Bruno Guimarães Lucas Rossini

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


Rede de Computadores

Sistemas Distribuídos. Coulouris Capítulo 4

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Redes de Computadores Modelo de referência TCP/IP. Prof. MSc. Hugo Souza

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Redes de Computadores

Serviços Web: Introdução

Sistemas Distribuídos

Comunicação. Parte II

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

Unidade 2.1 Modelos de Referência

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de Página

Arquitetura de Redes de Computadores. Bruno Silvério Costa

1 Redes de Computadores - TCP/IP Luiz Arthur

TECNOLOGIA WEB INTERNET PROTOCOLOS

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

Aula 6 Modelo de Divisão em Camadas TCP/IP

Camada de Transporte

REDES DE COMPUTADORES

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

6 de Julho de Exercício 23 Para que servem portas na camada de transporte?

Sistemas Distribuídos

Sistemas Distribuídos. Introdução

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

Redes de Computadores Aula 3

(Open System Interconnection)

SISTEMAS DISTRIBUIDOS

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

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

O que são DNS, SMTP e SNM

Unidade 2.1 Modelos de Referência. Bibliografia da disciplina. Modelo OSI. Modelo OSI. Padrões 18/10/2009

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

Curso de Aprendizado Industrial Desenvolvedor WEB

Comunicação de Dados

Sistemas distribuídos:comunicação

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

Programação com sockets (em Java)

Sistemas Distribuídos Arquiteturas Middlewares

Arquitetura de Rede de Computadores

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

Foi inicialmente desenvolvido como parte de um

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Nome dos Alunos

Claudivan C. Lopes

SISTEMAS DISTRIBUÍDOS

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

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

TECNOLOGIAS WEB AULA 2 PROF. RAFAEL DIAS

SISTEMAS OPERACIONAIS

CAMADA DE REDE. UD 2 Aula 3 Professor João Carneiro Arquitetura de Redes 1º e 2º Semestres UNIPLAN

Camada de Transporte TCP/IP e Aplicação

Protocolos de Redes Revisão para AV I

Transcrição:

Sistemas Distribuídos Professora: Ana Paula Couto DCC 064

Comunicação- Protocolos, Tipos, RPC Capítulo 4

Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação (Camada de Middleware) Persistência e Sincronização Chamada de Procedimento Remoto (RPC) Operação Básica Passagem de Parâmetros

Comunicação entre Processos Coração de qualquer Sistema Distribuído Como processos em diferentes máquinas trocam informações? Não é uma tarefa trivial! Desejável obter modelos onde a complexidade da comunicação seja transparente para o desenvolvedor

Modelo Cliente-Servidor Participantes são divididos em: Servidores: implementam um serviço específico Clientes: solicitam ao servidor um determinado serviço e espera pela resposta Comportamento requisição-resposta

Protocolos em Camadas

Protocolos em Camadas

Camada Física Responsável pelo envio de bits Trata da padronização das interfaces elétrica, mecânica e de sinalização Protocolos são dependentes do meio de transmissão do link

Camada Enlace Responsável pelo envio de frames entre os links Característica importante: um datagrama pode ser manipulado por diferentes tipos de protocolos da camada de enlace: Ethernet (CSMA/CD), PPP Cada protocolo diferente pode ou não implementar um conjunto de serviços. Ex.: entrega confiável da informação

Camada Rede Redes de longa distância são constituídas de muitos nós com diferente caminhos entre eles. Como definir um caminho entre um par origem-destino? Roteamento é a principal tarefa da camada de rede Internet Protocol: protocolo sem conexão, onde pacotes são roteados de forma independente best-effort service

Camada de Transporte Responsável pela comunicação lógica entre diferentes processos sendo executados em diferentes hosts (fim-a-fim) Protocolos da camada de transporte não estão implementados nos roteadores Pode fornecer os seguintes serviços: multiplexing/demultiplexing transmissão confiável garantias de banda, retardo

Protocolos de Transporte na Internet Transmission Control Protocol (TCP) Orientado a Conexão Confiável, porém lento Universal Datagram Protocol (UDP) Sem conexão Rápido, porém não confiável Escolha está ligada as caracteristicas da aplicação!

Camada de Aplicação Distinção entre aplicação para redes e protocolos da camada de aplicação Protocolo: pequena (talvez grande) peça de uma aplicação Ex.1: Aplicação WEB HTTP Ex.2: Aplicação Email SMTP Protocolos definem: tipos de mensagens trocadas, sintaxe

Camada de Middleware Camada de software que é situada logicamente entre uma camada de nível mais alto, composta de usuários e aplicações e uma camada subjacente, que consiste de facilidades básicas de comunicação Inúmeros protocos para suportar serviços de middleware: Autenticação: não estão vinculados a uma aplicação Comprometimento Comunicação: Serviços de comunicação de alto nível

Camada de Middleware

(Sockets) Como os processos executando em diferentes máquinas trocam informação? Em uma visão pilha de protocolos TCP/IP Enviando mensagens através da utilização de sockets Socket: ponto final de uma comunicação fullduplex entre dois processos Processo casa / Socket Porta Socket: Porta entre o processo da aplicação e o protocolo de transporte

(Sockets) Informações são string de bytes, sem significado aparente Não existe a transparência de distribuição: toda a comunicacão está está explícita, através de procedimentos send e receive Funções mais sofisticadas devem ser feitas na camada de aplicação Por que não oferecer comunicação de alto nível, indepedente da aplicação?

Solução! Middleware de comunicação Tipos: Chamadas de Procedimento Remoto Comunicação orientada a Mensagens Comunicação orientada a fluxo

Tipos de Comunicação (Middleware) Persistência Persistente: Mensagem é armazenada pelo middleware de comunicação durante o tempo que for necessário para entregá-la ao receptor. Transiente: Mensagem é armazenada somente durante o tempo em que a aplicação remetente e a aplicação receptora estiverem executando

Tipos de Comunicação (Middleware) Sincronização Assíncrona: Remetente continua sua execução imediatamente após ter apresentado sua mensagem para transmissão Síncrona: Remetente é bloqueado até saber que sua requisição foi aceita Middleware avise que se encarregará da transmissão Requisiçao ser entregue ao receptor Ate o instante que o receptor retornar uma resposta

Tipos de Comunicação (Middleware) Granularidade Discreta: Partes se comunicam por mensagens e cada mensagem forma uma unidade de informação completa Fluxo: Várias mensagens,sendo que as mensagens estão relacionadas uma com as outras pela ordem ou pela relação temporal

Chamada de Procedimento Remoto Birrell and Nelson (1984) Permite a processos chamar procedimentos localizados em outras máquinas Desenvolvedor não precisa se preocupar mais com detalhes de implementação de rede (sockets nunca mais!) Conceitualmente simples, mas...

RPC - Complicações Arquiteturas de duas máquinas podem ser diferentes Espaço de endereçamento diversos Passagem de parâmetros

RPC Como funciona? A idéia fundamental é fazer com que uma chamada de procedimento remoto pareça com uma chamada local Transparência

RPC Como funciona? Transparência conseguida com o uso de stubs (apêndices) Stub do cliente responsável por empacotar os parâmetros em uma msg e enviar a msg para a máquina do servidor. Quando resposta chega, resultado é copiado para cliente, e controle volta a ele Stub do servidor responsável por desempacotar parâmetros, chamar o procedimento do servidor e retornar resposta para máquina do cliente

RPC Como funciona? Máquina Cliente Máquina Servidora Cliente Chamada Retorno Empacota Parâmetros Desempacota Resultado Desempacota Parâmetros Empacota Resultado Chamada Retorno Servidor Stub do Cliente SO Stub do Servidor SO Transporte de mensagens na rede

RPC Como funciona?

Passos seguidos por um RPC 1. Procedimento do cliente chama stub cliente de modo usual 2. Stub do cliente constrói uma msg e chama o SO 3. SO envia msg para SO remoto 4. SO remoto repassa msg para stub do servidor 5. Stub do servidor desempacota parâmetros e chama procedimento servidor 6. Procedimento servidor executa e retorna o resultado 7. Stub do servidor empacota resultado em uma msg e chama SO 8. SO remoto envia msg para SO da máquina cliente 9. SO do cliente passa msg para stub cliente 10. Stub cliente desempacota resultado, repassando-o para o cliente

RPC Passagem de Parâmetros Função do stub do cliente é pegar seus parâmetros, empacotá-los em uma mensagem e enviá-los ao stub do servidor (montagem de parâmetros - parameter marshaling). Operação parece simples, mas: Arquiteturas diferentes? Passagem de ponteiros (diferente espaço de endereçamento)?

RPC Passagem de Parâmetros por valor

RPC Passagem de parâmetros por valor A chamada do procedimento remoto add somente funcionará se as máquinas do cliente e do servidor forem idênticas Problemas: Representação diferentes para caracteres Ordenação de bytes Solução: Cliente diz seu tipo. Conversão feita pelo servidor se tipos forem diferentes.

RPC Passagem de parâmetros por referência Problema: um ponteiro é significativo somente dentro do espaço de endereço do processo no qual está sendo usado read(fd,buf,nbytes) (executado no servidor de arquivos) fd inteiro que indica um arquivo buf endereço do vetor de caracteres nbytes total de bytes a serem lidos

RPC Passagem de parâmetros por referência Mecanismo de passagem de parâmetro copiar/restaurar Variável é copiada na pilha do cliente (passagem de parâmetro por valor) Variável é manipulada no servidor Valor de retorno sobreescre o valor original na pilha do cliente

RPC Passagem de parâmetros por referência No caso do read, stub do cliente sabe que o segundo parâmetro aponta para um conjunto de caracteres Suponha que o cliente saiba o tamanho do vetor Solução: Copiar o vetor para a mensagem e enviar ao servidor Stub do servidor, chama o servidor com um ponteiro para este vetor Modificação feita pelo servidor é armazenada diretamente no vetor que está no stub Ao enviar o vetor de volta ao stub do cliente, o vetor é copiado de volta ao cliente

RPC Linguagem de Programação de Interface - IDL Interface consiste em um conjunto de procedimentos que podem ser chamados por um cliente e que são implementados por um servidor Utilização de interface simplifica consideravelmente aplicações cliente-servidor baseadas em RPCs Gerar completamente stubs de cliente e servidor - todos os sistemas de middleware baseados em RPC oferecem uma IDL para suportar desenvolvimento de aplicação

RPC 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