UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa

Slides:



Advertisements
Apresentações semelhantes
Interações cliente/servidor usando o UDP
Advertisements

Comunicação entre processos distribuídos
Bruno Rafael de Oliveira Rodrigues
Ir p/ primeira página Cliente/Servidor Modelo usado para construir aplicações Servidor em número de porta conhecido – Aceita requisições e executa serviços.
Comunicação Distribuída
Objetos Distribuídos e Invocação Remota
Sistemas Paralelos e Distribuídos
Sistemas Distribuídos Comunicação Objetos Distribuídos e RMI - Parte 2 - Instituto de Informática – UFG Verão 2005 Baseado em: Tanenbaum, Capítulo 2.
1 Introdução aos Sockets (Java) Tiago Semprebom DAS – Departamento de Automação e Sistemas UFSC – Universidade Federal de Santa Catarina.
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI Sockets Abril, 98Isidro Vila Verde 1 Formato das estruturas de dados Estrutura.
Obtenção de IP TCP UDP.
CCNA 1 – Camadas de Transporte e de Aplicação do TCP/IP
Sistemas Distribuídos
Comunicação Entre Processos Sockets - Java
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Comunicação entre Processos - Sockets. Conceitos Básicos Sockets são uma forma de IPC ( InterProcess Communication ) fornecida pela 4.3 BSD que fornecem.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
IIS Web Server.
Protocolo TCP e UDP Ricardo Costa Nº 10 12ºL.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
Desenvolvimento de Aplicações TCP/IP com Sockets Márcio de Sousa Dias
Arquitetura TCP/IP Aplicação Transporte Rede Enlace Física.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Passagens de Mensagens Prof. Dr. Norian Marranghello
Protocolos de Comunicação e Passagem de Mensagens
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Servidor WEB IGOR ALVES. O protocolo HTTP 1990 surgimento da aplicação www Grande quantidade de informação que pode ser acessada por demanda Buscadores.
TÉCNICO EM INFORMÁTICA Linguagem e Técnica de Programação III PROF. MARCELO N. SANTOS
Capítulo 2 Redes de computadores e a Internet Camada de aplicação Prof. Gustavo Wagner.
Renato Abreu ADMINISTRAÇÃO DE REDES EM SOFTWARE LIVRE Administração de Redes em Software Livre – GNU/Linux Servidor DHCP Professor: Renato Abreu.
Wireshark Captura de Protocolos da camada de aplicação Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Maicon de Vargas Pereira.
Desenvolvimento de Aplicações Web com Java - Servlets e JSP Autor: Juliano Marcos Martins.
Curso Superior em Redes de Computadores SMTP Prof. Sales Filho.
1 Sistemas Distribuídos – Capítulo 4 - Aula 5 Aula de hoje Chamada de Procedimento Remoto - RPC Aula Passada Clusters de Servidores Migração de Código.
Programação em Java Sockets Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Protocolo TCP/IP Secção Objectivos Reconhecer os protocolos mais comuns Definir o protocolo TCP/IP Entender o sistema de endereçamento IP e a utilização.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa
Camada de Rede.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Prof. Msc. Diovani Milhorim
Redes de Computadores e Aplicações – Modelo TCP/IP
Administração e serviços de redes
Sistemas Distribuídos Aula 6
Webservices Rest.
Curso Superior em Redes de Computadores
Protocolo HTTP Protocolo de Transferência de Hipertexto
Arquitetura de Redes: TCP/IP
Soquetes (1) SOCKET Uma interface local, criada por aplicações, ponto final de comunicação no qual os processos de aplicação podem tanto enviar quanto.
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA
Programação para Dispositivos Móveis: API Web e Comandos Gerais
Redes de Computadores 5º Semestre Aula 07 Prof
Técnico em informática 2017
responsabilidades dessas camadas?
Redes de comunicação Aula 06 - Comutação
Introdução a Redes v5.1 Capítulo 3 Protocolos e Comunicações em Rede.
Introdução a Redes v5.1 Capítulo 9: Camada de Transporte.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Prof. Msc. Diovani Milhorim
TCP vs UDP CRD Filipe Pacheco.
Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro Departamento de Ciência da Computação Universidade.
Gestão de Armazenagem WMS
Exercícios IPsec e LDAP
SISTEMAS DISTRIBUIDOS
SISTEMAS DISTRIBUIDOS
SISTEMAS DISTRIBUIDOS
Transcrição da apresentação:

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Ciência da Computação 2o. Semestre / 2006 Prof. Fábio M. Costa Aula 11-12: Middleware: Comunicação Inter-Processos Protocolos requisição-e-resposta

Instituto de Informática - UFG Comunicação Cliente-Servidor ● Modelo geral: requisição-e-resposta ● Variantes: – síncrona: cliente bloqueia até receber a resposta – assíncrona: cliente recupera (explicitamente) a resposta em um instante posterior ● não-bloqueante ● Implementação sobre protocolo baseado em datagramas é mais eficiente – evita: reconhecimentos redundantes, mensagens de estabelecimento de conexão, controle de fluxo

Instituto de Informática - UFG Protocolo requisição-e-resposta Request ServerClient doOperation (wait) (continuation) Reply message getRequest execute method message select object sendReply

Instituto de Informática - UFG Operações utilizadas para implementar o protocolo de requisição-e-resposta public byte[] doOperation (RemoteObjectRef o, int methodId, byte[] arguments) envia uma mensagem de requisição para o objeto remoto e retorna a resposta. Os argumentos especificam o objeto remoto, o método a ser chamada e os argumentos para aquele método. public byte[] getRequest (); obtém uma requisição de um cliente através de uma porta servidora. public void sendReply (byte[] reply, InetAddress clientHost, int clientPort); envia a mensagem de resposta para o cliente, endereçando-a a seu endereço IP e porta.

Instituto de Informática - UFG Estrutura de mensagens de requisição-e-resposta messageType requestId objectReference methodId arguments int (0=Request, 1= Reply) int RemoteObjectRef int or Method array of bytes Identificador da mensagem request ID + ID do processo que fez a requisição

Instituto de Informática - UFG Modelo de falhas ● Suposições – processos: páram após falha – canais: podem omitir mensagens ● Timeouts: em doOperation – detectar que a resposta (ou a requisição) foi perdida ● alternativas de tratamento: – sinalizar a falha para o cliente (uma boa opção?) – repetir o envio da requisição (um certo número de vezes) ● até ter certeza sobre a natureza da falha (quem falhou? O canal ou o processo?)

Instituto de Informática - UFG Modelo de falhas (2) ● Descarte de mensagens duplicadas – o servidor deve distinguir requisições novas de requisições retransmitidas ● apropriado re-executar a requisição? ● Em caso de perda da resposta – servidor re-executa a requisição para gerar novamente a resposta? – servidor mantém um histórico das respostas geradas para o caso de precisar retransmitir? ● o histórico precisa conter apenas a última resposta enviada para cada cliente. Por que? Suficiente?

Instituto de Informática - UFG Exercício de Programação 3 ● Implementar o protocolo de requisição de resposta básico – Sem objetos (chamada de procedimentos remotos) – Utilizar sockets TCP ou UDP (justificar a escolha) – Exemplificar o uso do protocolo com uma aplicação simples com dois ou três procedimentos ● Entrega: 08/09

Instituto de Informática - UFG Protocolos de troca de mensagens em RPC R Request RRReply RRAAcknowledge reply Request Reply Cliente Servidor Cliente NomeMensagens enviadas pelo ● Tipo de garantia (confiabilidade) em cada caso? ● Que tipo de aplicação em cada caso?

Instituto de Informática - UFG Protocolo de transporte utilizado: TCP ● não impõem limites no tamanho das mensagens – na verdade, cuida da segmentação de forma transparente – permite argumentos de tamanho arbitrário (ex.: listas) ● transferência confiável – lida com mensagens perdidas e duplicadas ● controle de fluxo ● overhead reduzido em sessões longas (muitas requisições e respostas sucessivas)

Instituto de Informática - UFG Protocolo de transporte utilizado: UDP ● se mensagens têm tamanho fixo ● se sessões são curtas (apenas uma requisição e sua resposta) – não compensa o overhead do handshake TCP ● se operações são idemponentes – mensagens duplicadas (retransmissões) podem ser re-processadas sem problema ● otimização do protocolo de confiabilidade para casos específicos

Instituto de Informática - UFG HTTP como protocolo de requisição-e- resposta ● Tipo RR ● Regras para o formato de mensagens – Marshalling ● Conjunto fixo de métodos: PUT, GET, POST,... ● Permite negociar o tipo do conteúdo (MIME) ● Autenticação (senhas, credenciais, desafios) ● Conexões persistentes para amortizar o custo de abrir e fechar conexões TCP

Instituto de Informática - UFG Mensagem de requisição HTTP GET// 1.1 URL or pathname metho d HTTP versionheader s message body

Instituto de Informática - UFG Mensagem de resposta HTTP HTTP/1.1200OK resource data HTTP versionstatus codereasonheadersmessage body

Instituto de Informática - UFG Sockets BSD baseados em datagramas ServerAddress and ClientAddress are socket addresses Sending a messageReceiving a message bind(s, ClientAddress) sendto(s, "message", ServerAddress) bind(s, ServerAddress) amount = recvfrom(s, buffer, from) s = socket(AF_INET, SOCK_DGRAM, 0)

Instituto de Informática - UFG Sockets BSD baseados em streams Requesting a connectionListening and accepting a connection bind(s, ServerAddress); listen(s,5); sNew = accept(s, ClientAddress); n = read(sNew, buffer, amount) s = socket(AF_INET, SOCK_STREAM,0) connect(s, ServerAddress) write(s, "message", length) s = socket(AF_INET, SOCK_STREAM,0) ServerAddress and ClientAddress are socket addresses