Tipos de redes. Comunicação. Protocolos (2) Protocolos (1) Nível de ligação 2-2 2-1. mensagem como aparece na rede. Cada nível adiciona seu cabeçalho



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

Sistemas Distribuídos

Remote Procedure Call

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

UNIVERSIDADE. Sistemas Distribuídos

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma 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 Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Sistemas Distribuídos

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

Comunicação. Parte II

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


Comunicação em Sistemas Distribuídos

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

Distributed Systems Principles and Paradigms

Adriano Reine Bueno Rafael Barros Silva

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Sistemas distribuídos:comunicação

SISTEMAS DISTRIBUIDOS

Sistemas Distribuídos

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

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Considerações no Projeto de Sistemas Cliente/Servidor

O que são DNS, SMTP e SNM

Capítulo 7 CAMADA DE TRANSPORTE

Comunicação entre Processos

Permite o acesso remoto a um computador;

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

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

Sistemas Distribuídos. Coulouris Capítulo 4

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Universidade de Brasília

Sistemas Distribuídos

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

REDES DE COMPUTADORES

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

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

Sistemas Distribuídos RPC

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

Cap 01 - Conceitos Básicos de Rede (Kurose)

CAMADA DE TRANSPORTE

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

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

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Protocolos Hierárquicos

3. Comunicação em Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

REDES DE COMPUTADORES

Sistemas Distribuídos

Comunicação entre Processos

TECNOLOGIA WEB INTERNET PROTOCOLOS

Prof. Marcelo Cunha Parte 5

Sockets. Bruno Guimarães Lucas Rossini

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Protocolos Multimídia. Alunos: Roberto Schemid Rafael Mansano

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

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

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

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.

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

Invocação de Métodos Remotos RMI (Remote Method Invocation)

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

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

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

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

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Redes de Computadores Aula 3

OProtocolo RPC é um dos protocolos de aplicação mais utilizados, pois permite

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Paradigma Cliente/Servidor

Redes de Computadores e a Internet

Sistemas Distribuídos

Aula 2 Arquitetura de Redes. Prof. Dr. S. Motoyama

Protocolos de Redes Revisão para AV I

Introdução ao Modelos de Duas Camadas Cliente Servidor

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

REDES DE COMPUTADORES

Redes de Computadores. Camada de Transporte

Tipos de Servidores. Servidores com estado

Invocação de Métodos Remotos

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

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Redes de Computadores. Prof. André Y. Kusumoto

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

O espaço de nomes DNS Registros de recursos de domínio Servidores de nome

Transcrição:

Tipos de redes Comunicação Range Bandwidth (Mbps) Latency (ms) LAN 1-2 kms 10-1000 1-10 WAN worldwide 0.010-600 100-500 MAN 2-50 kms 1-150 10 Wireless LAN 0.15-1.5 km 2-11 5-20 Wireless WAN worldwide 0.010-2 100-500 Internet worldwide 0.010-2 100-500 Protocolos (1) Protocolos (2) 2-1 2-2 níveis, interfaces e protocolos no modelo OSI. Protocolos orientados a conexão e sem conexão mensagem como aparece na rede. Cada nível adiciona seu cabeçalho Nível de ligação 2-3 Tratativas entre recebedor e enviante no nível de ligação. 1

TCP Cliente-Servidor Protocolos Middleware 2-4 2-5 operação normal de TCP. TCP Transacional. modelo de referência adaptado para comunicação em rede. Protocolos para suportar serviços de Middleware Comunicação em Sistemas Distribuídos Chamada Remota de Procedimento - RPC Chamada de Procedimento Convencional O mecanismo de RPC integra o protocolo RR usado para comunicação Cliente/Servidor com as linguagens de programação convencionais permitindo clientes comunicar com servidores através de chamadas de procedimentos. A chamada remota segue o modelo da chamada local sendo que o procedimento chamado executa em um processo diferente normalmente em um computador diferente. Passagem de parâmetro chamada local: pilha antes da chamada pilha enquanto procedimento está ativo Stubs Cliente e Servidor Princípio do RPC entre um programa cliente e servidor. Passos em RPC Cliente chama stub cliente Stub client constrói mensagem, chama SO local SO cliente envia mensagem para SO remoto SO remoto entrega mensagem para stub servidor Stub servidor retira parametros, chama servidor Servidor realiza trabalho, retorna resultado para stub Stub servidor coloca na mensagem, chama SO local SO servidor envia mensagem para SO cliente SO cliente entrega mensagem para stub cliente Stub retira resultado, retorna para cliente 2

Passos em RPC Passando Parâmetros (1) 2-8 Trocando parâmetros em RPC Passando Parâmetros (2) Especificação de parâmetros e geração de stubs procedimento Mensagem correspondente. mensagem original no Pentium mensagem depois de recebida em SPARC mensagem depois de invertida Chamada Remota de Procedimento (RPC) Parâmetros A escolha da semântica de passagem de parâmetros é crucial para o projeto de um mecanismo de RPC : - Call-by-Value : cópia dos valores na mensagem - Call-by-Reference, Pointers: cópia da estrutura de dados (array) na mensagem e refaz na volta, no cliente (call-by-copy/restore). - Passagem de Pointers é um problema - proibir - copiar só quando necessário Chamada Remota de Procedimento (RPC) Especificação de um servidor de arquivos Specification of file_server version 2.0 long read (in char fname[n_size], out char buffer [b_size], in long bytes, in long position); long write(in char fname[n_size], in char buffer [b_size], in long bytes, in long position); int create(in char fname[n_size], in int mode); int delete(in char fname[n_size]); end_specification; 3

Chamada Remota de Procedimento (RPC) Modelos Extendidos Doors RPC se tornou um padrão de fato para comunicação em sistemas distribuídos. Extensões ao modelo original foram propostas para solucionar alguns problemas: - RPC leve - RPC Assíncrona O principio de uso de doors como mecanismo de IPC. RPC Assíncrona (1) RPC Assíncrona (2) 2-12 2-13 interconexão entre cliente e servidor RPC tradicional interação usando RPC assíncrona cliente e servidor interagindo com RPC assíncrona Programa Cliente / Servidor square.x rpcgen 2-14 square.h client.c square_clnt.c square_xdr.c square_svc.c server.c gcc gcc Passos escrevendo cliente e servidor em DCE RPC. client server 4

Ligação Cliente Servidor Ligação Cliente Servidor Servidor Exportação Nome do servidor Nº da versão Identificador Manipulador 2-15 Ligador Cliente Identificador Manipulador Importação Nome do servidor Nº da versão Solicitar a importação C/S binding em DCE. Invocação Remota de Métodos RPC tornando-se padrão de comunicação e tecnologia baseada em objetos apresentando aspectos importantes com relação a adaptabilidade, porque não aplicar o princípio RPC em objetos. encapsulamento de operações e dados (objetos) operações (métodos) acessadas via interfaces objeto servidor (coleção de objetos) stub cliente (proxy) implementa interface stub servidor (skeleton) Objetos Distribuídos 2-16 Organização comum de um objeto remoto com proxy no lado cliente. Objetos Distribuídos Objetos tempo de compilação: objetos nível de linguagem, a partir dos quais proxy e skeleton são automaticamente gerados. Objetos tempo de execução: implementados em qualquer linguagem, necessitam utilização de um adaptador de objeto que faz com que a implementação pareça como um objeto. Objeto transiente: existe apenas em virtude de um servidor, se o servidor termina o objeto tambem. Objeto persistente: existe independente de um servidor, se o servidor termina o estado do objeto e código permanecem (passivos) no disco. Ligação Cliente-Objeto Referência a Objeto : ter uma referência ao objeto permite um cliente se ligar a um objeto: Referência denota servidor, objeto e protocolo de comunicação Cliente carrega código stub associado Stub é instanciado e inicializado para objeto específico Formas de Ligação: Implícito: invoca métodos diretamente no objeto referenciado. Explícito: cliente deve primeiro explicitamente ligar-se ao objeto antes de invoca-lo. 5

Remote Method Invocation Remote Method Invocation (RMI) é um mecanismo próprio de Java, similar a RPC. RMI permite um programa Java em uma máquina invocar um método remoto em um objeto remoto. Remote Method Invocation Remote Method Invocation (RMI) é o mecanismo Java, que gera as classes proxy de forma automática. O usuário codifica os objetos cliente e serviço. O compilador RMI gera o código responsável pela comunicação na rede. Marshalling dos Parâmetros Passagem de Parâmetros 2-18 http://java.sun.com/docs/books/tutorial/rmi/overview.html Passando um objeto por referência ou por valor. Comunicação orientada a mensagens Comunicação orientada a mensagens Comunicação Síncrona X Assíncrona. Sistema de Fila de Mensagens. Conversores de Mensagens (Message Brokers). Chamada de procedimento remoto e invocação remota de objetos contribuem para esconder a comunicação em sistemas distribuídos, geralmente baseado no modelo C-S (síncrono). Algumas vezes nenhum destes mecanismos é adequado. Não podemos assumir que o lado recebedor está executando qdo requisição é emitida. Natureza síncrona de RPC e RMI não é adequada, cliente não pode fazer outra coisa enquanto espera. Algumas vezes o mecanismo adequado é mensagens, ou seja, o modelo síncrono não é apropriado (mail, news). 6

Comunicação Orientada a Mensagens (1) Comunicação Orientada a Mensagens (2) Aplicações executadas no host, ambiente oferece interface para comunicação 2-20 Organização geral de um sistema de comunicação no qual nodos (hosts) estão conectados através de uma rede processos enviam mensagens (colocadas em filas) uns para os outros enviante não precisa esperar por resposta imediata, pode fazer outras coisas Ambiente prove tolerância a falhas Exemplo: correio eletrônico host executa agente do usuário (aplicação de e-mail) cada host está conectado a 1 servidor interface no host usuário para agente enviar msg para dest. Agente submete msg, host manda para servidor local servidor verifica destino, envia para servidor alvo armazena buffer do receptor senão armazena msg no local Persistência e Sincronismo em Comunicação (1) Comunicação Persistente mensagem submetida para transmissão é armazenada no sistema de comunicação até entregar para o recebedor aplicação enviante não precisa continuar executando aplicação recebedora não precisa estar executando na sub. Comunicação Transiente mensagem é armazenada apenas enquanto as aplicações enviante e recebedora estão executando se não é possível entregar msg ao próximo servidor msg descartada serviço de transporte, se roteador não pode entregar msg para próximo (destino), descarta msg Persistência e Sincronismo em Comunicação (2) Comunicação assíncrona enviante continua depois de submeter msg msg armazenada em buffer local no enviante ou no servidor de comunicação Comunicação síncrona o enviante é bloqueado até sua msg ser armazenada em buffer local no recebedor ou realmente entregue a forma mais forte é qdo o enviante fica bloqueado até o recebedor processar a msg Várias combinações destes tipos de comunicação Persistência e Sincronismo em Comunicação (3) Persistência e Sincronismo em Comunicação (4) 2-22.2 2-22.1 Comunicação persistente assíncrona Comunicação persistente síncrona Comunicação transiente assíncrona - UDP Comunicação transiente síncrona, baseada na recepção 7

Persistência e Sincronismo em Comunicação (5) Comunicação Transiente orientada a mensagem Sockets Interface Passagem de Mensagem (MPI) Comunicação transiente síncrona, baseada na entrega Comunicação transiente síncrona, baseada na resposta - RPC Sockets (1) Sockets (2) Primitive Socket Bind Listen Accept Connect Send Receive Close Meaning Create a new communication endpoint Attach a local address to a socket Announce willingness to accept connections Block caller until a connection request arrives Actively attempt to establish a connection Send some data over the connection Receive some data over the connection Release the connection Comunicação orientada a conexão usando sockets. Primitivas Socket para TCP/IP. Message-Passing Interface (MPI) Comunicação Persistente Orientada a Mensagem Primitiva MPI_bsend MPI_send MPI_ssend MPI_sendrecv MPI_isend MPI_issend MPI_recv MPI_irecv Significado Anexa mensagem de saída à um buffer local de envio Envia uma mensagem e espera até copiar para buffer local ou remoto Envia uma mensagem e espera até recebedor iniciar Envia uma mensagem e espera resposta Passa referência para mensagem de saída e continua Passa referência para mensagem de saída e espera até recebedor iniciar Recebe uma mensagem; bloqueia se não tem Verifica se existe mensagem, mas sem bloqueio Sistemas de filas de mensagens, fornece suporte para comunicação persistente assíncrona, enviante e receptor não precisam estar ativos. Diferente de sockets e MPI, suportam transferência de msg que podem levar minutos. Abordagem geral Algumas primitivas de MPI. 8

Modelo Fila de Mensagens (1) Modelo Fila de Mensagens (2) 2-26 Primitive Put Get Poll Notify Meaning Anexa uma mensagem em uma fila especificada Bloqueia até que a fila não esteja vazia e remove a primeira mensagem Verifica uma fila determinada e remove mensagem se tiver. Sem bloqueio. Instala um tratador para ser chamado quando uma mensagem é colocada na fila. Quatro combinações para comunicação fracamente acoplada usando filas. Interface básica para uma fila em um sistema de fila de mensagens. Arquitetura Geral de um Sistema de Fila de Mensagens (1) Arquitetura Geral de um Sistema de Fila de Mensagens (2) Mensagens colocadas em filas fontes (local, LAN) Mensagens lidas de filas locais Mensagens contém endereço destino Coleção de filas distribuída através de várias máquinas Sistema tem mapeamento de filas para localizações na rede (DNS) Filas são gerenciadas por gerentes de fila Gerentes de fila interagem com a aplicação, podem funcionar como roteadores (serviço de nomes, segurança, tolerância a falhas, multicast) Relação entre endereçamento nível de fila e nível de rede. Arquitetura Geral de um Sistema de Fila de Mensagens (3) Conversores de Mensagem 2-29 Organização geral de um sistema com roteadores. Aplicação de sistema de mensagem integração de aplicações (novas,existentes) em único, coerente sistema de informações distribuído. Integração requer aplicações entendam mensagens recebidas, formatos iguais (enviante, receptor). Mesmo que alguns formatos comuns existam, a abordagem geral é aprender a conviver com formatos diferentes, tentar fornecer meios para conversão. Sistemas de filas de mensagens conversões são tratadas por nodos especiais na rede de filas, message brokers 9

Message Brokers Exemplo: IBM MQSeries 2-30 2-31 Organização geral de um conversor de mensagem em um sistema de fila de mensagem. Channels Message Transfer (1) Attribute Transport type FIFO delivery Message length Setup retry count Delivery retries Description Determines the transport protocol to be used Indicates that messages are to be delivered in the order they are sent Maximum length of a single message Specifies maximum number of retries to start up the remote MCA Maximum times MCA will try to put received message into queue Some attributes associated with message channel agents. The general organization of an MQSeries queuing network using routing tables and aliases. Message Transfer (2) Primitive Description MQopen Open a (possibly remote) queue MQclose Close a queue MQput Put a message into an opened queue MQget Get a message from a (local) queue Primitives available in an IBM MQSeries MQI Comunicação orientada a stream Comunicação concentrado na troca de unidades de informação completas e mais ou menos independentes, sem importar que tempo ela se dá, ou seja, tempo não influi na correção. Existem formas de comunicação onde tempo é crucial, áudio. Facilidades que sistemas distribuídos oferecem para trocar informações dependentes do tempo, áudio e vídeo streams. Mídia contínua - relação temporal entre os diferentes itens de dados é fundamental para interpretação correta do significado. Considere movimento, uma série de imagens sendo mostradas com espaços uniformes (30-40mseg por imagem). Mídia discreta - relação temporal não é fundamental para interpretação correta. 10

Comunicação orientada a stream Capturar troca de informação dependente de tempo - stream de dados (data stream), seqüência de dados, aplicado tanto a mídia contínua quanto discreta (pipes, TCP/IP). Transmissão assíncrona, itens no stream são transmitidos um após outro sem restrições temporais, arquivo. Transmissão síncrona, existe um retardo máximo definido para cada unidade sem importar se a transferência é mais rápida, sensor de temperatura. Transmissão isócrona, é necessário que unidades sejam transferidas no tempo, sujeito a um máximo e mínimo retardo (jitter limitado). Stream pode ser simples (mono) ou complexo (estéreo, filme) Stream de dados (1) Preparação de um stream entre 2 processos através de uma rede. Stream de dados (2) Stream de dados (3) 2-35.2 Preparação de um stream direto entre 2 dispositivos através de uma rede. Um exemplo de multicasting um stream para vários receptores. Especificando QoS (1) Especificando QoS (2) Características da Entrada Serviço necessário tamanho máximo unidade (bytes) taxa de tokens (bytes/sec) tamanho recipiente (bytes) taxa máxima de transmisão (bytes/sec) Sensibilidade de perda (bytes) intervalo de perda (µsec) perda consecutiva (data units) retardo mínimo notado (µsec) jitter máximo (µsec) Qualidade da garantia Especificação de fluxo. O princípio do algoritmo token bucket. 11

Estabelecendo um Stream Estabelecendo um Stream Após especificação o SD pode alocar recursos (banda, buffer, processamento) para estabelecer um stream que satisfaz os requisitos de QoS. Organização básica de protocolo para reserva de recursos em um sistema distribuído - RSVP Synchronization Mechanisms (1) Synchronization Mechanisms (2) 2-41 12