Sistemas Distribuídos



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

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos. Coulouris Capítulo 4

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

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

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


Sockets. Bruno Guimarães Lucas Rossini

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

Sistemas Distribuídos

REDES DE COMPUTADORES

Capítulo 7 CAMADA DE TRANSPORTE

Prof. Marcelo Cunha Parte 5

Sistemas Distribuídos

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Redes de Computadores

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

Informática I. Aula Aula 22-03/07/06 1

A Camada de Transporte

REDES DE COMPUTADORES

Redes de Computadores. Camada de Transporte

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

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

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

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

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

Tecnologia de Redes de Computadores - aula 1

INF1013 MODELAGEM DE SOFTWARE

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

Rede de Computadores II

CAMADA DE TRANSPORTE

Redes de Computadores II

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

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

SISTEMAS DISTRIBUÍDOS

Permite o acesso remoto a um computador;

Sistemas Distribuídos

Programação com sockets (em Java)

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

Redes de Computadores

Modelo Cliente/Servidor e Introdução a Sockets

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Arquitetura de Rede de Computadores

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

Entendendo como funciona o NAT

Programação de Sistemas

Programação de Sistemas

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Rede de Computadores

Camada de Transporte TCP/IP e Aplicação

Cliente-servidor com Sockets TCP

Arquitetura de Sistemas Operativos

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

MODELO CLIENTE SERVIDOR

Camada de transporte. Camada de transporte

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Programação de sockets com TCP

COMPARTILHAMENTO DO DISCO E PERMISSÕES DE REDE PÚBLICAS E DE GRUPOS DE TRABALHO.

Protocolos de Redes Revisão para AV I

REDES DE COMPUTADORES

Comunicação em Sistemas Distribuídos

Traceroute É uma ferramenta de diagnóstico que rastreia a rota de um pacote através de uma rede de computadores e que utiliza os protocolos IP e ICMP.

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

1 Redes de Computadores - TCP/IP Luiz Arthur

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

Programação de Sockets em C/C++

Camada de Transporte, protocolos TCP e UDP

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Preparando um esquema de endereçamento de sua rede

Revisão. Karine Peralta

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Aula 30 - Sockets em Java

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Redes de Computadores. Trabalho de Laboratório Nº7

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Sistemas Distribuídos

Endereçamento. Endereço IP. Exemplo. Endereço IP. Como verificar? Certo ou errado? 13/12/2011

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

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

Camada de Transporte

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

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

Camada de Transporte. Protocolos TCP e UDP

Java 2 Standard Edition Fundamentos de

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Claudivan C. Lopes

Arquitetura de Redes. Prof. Dr. S. Motoyama

Redes de Computadores

Aula 3. Objetivos. A internet.

Veja abaixo um exemplo de um endereço IP de 32 bits:

Aula 03 Regras de Segmentação e Switches

Transcrição:

Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com

Mecanismos de Comunicação

Voltando ao exemplo da calculadora... Rede local doméstica ufra.edu.br Internet Cliente Implementação

Mecanismos de comunicação Middleware Candidatos atuais a mecanismos de comunicação? Protocolos de Aplicação (ex., HTTP, SMTP, SOAP, etc) IPCs Tradicionais (ex., SOCKET, Memória Compartilhada,etc)

IPCs Tradicionais (SOCKETs) Pode ser usado para construir aplicações distribuídas. É a forma mais baixo nível de construção de aplicações distribuídas.

Pilha de protocolos dos Modelos OSI e TCP/IP

Visão Geral Socket Fonte: https://www.youtube.com/watch?v=aedv0wlwxts

Sockets UDP e TCP Ideia surgida com o sistema UNIX de Berkeley BSD Unix A comunicação entre dois processos consiste na transmissão de uma mensagem de um socket num processo para um socket em outro processo.

Sockets UDP e TCP Nos protocolos da internet, as mensagens são enviadas para um par: ENDEREÇO (IPv4 ou IPv6) PORTA O socket de um processo tem que ser conectado a uma porta local para que possa começar a receber mensagens Após criado o socket serve tanto para receber como para enviar mensagens O número de portas disponíveis por computador é 2 16 Para receber mensagens, um processo pode usar várias portas simultaneamente, mas não pode compartilhar uma porta com outro processo diferente no mesmo computador (Exceção: processos que usem IP multicast) Cada socket é associado a um determinado protocolo, UDP ou TCP.

Comunicação através do protocolo UDP A comunicação entre dois processos é feita através dos métodos send e receive. Um pacote de dados ( datagram ) é enviado por UDP sem confirmação ( acknowledgement ) nem retransmissão. O UDP não garante a entrega da mensagem. Nem a ordem de chegada das mensagens. A porta do servidor terá que ser conhecida pelos processos clientes. O cliente pode usar qualquer porta local para conectar o seu socket, não é necessário especificar a porta do cliente.

Comunicação através do protocolo UDP O processo que invocar o método receive (cliente ou servidor) recebe o IP e a PORTA do processo que enviou a mensagem, juntamente com os dados da mensagem. O receptor da mensagem, tem que definir um array (buffer) com dimensão suficiente para os dados da mensagem, caso contrário, a mensagem precisa ser fragmentada. O IP permite mensagens até 2 16 bytes, (tamanho padrão - 8KB)

UDP Send Operações não bloqueáveis send não bloqueável O processo retorna do send assim que a mensagem é enviada Se nenhum processo estiver ligado ao socket, a mensagem é descartada

UDP Receive Operações boqueáveis receive bloqueável O processo que executa o receive, bloqueia até que consiga ler a mensagem para o buffer do processo Enquanto espera por uma mensagem o processo pode criar uma nova thread para executar outras tarefas Ao socket pode ser associado um timeout, no o qual o receive desbloqueia o processo.

Classe DatagramSocket em Java Permite criar um socket na máquina local Possui os métodos send e receive Construtor sem argumentos, usa a primeira porta disponível (Cliente) Construtor com argumentos, especifica-se o nº da porta (Servidor) Se a porta já está em uso é lançada a exceção SocketException

UDPServer.java

UDPClient.java

Comunicação através do protocolo TCP Utiliza stream (fluxos) para ler/escrever dados. A aplicação é que decide quantos bytes devem ser enviados ou lidos da stream, sem a preocupação do tamanho máximo de pacotes. O protocolo TCP usa um esquema de confirmação de recepção das mensagens. Se necessário retransmite a mensagem.

Comunicação através do protocolo TCP Controle de fluxo de execução: O TCP tenta uniformizar as velocidades dos processos que lêem e escrevem de/numa stream. Se quem escreve é muito mais rápido do que quem lê, então o processo que escreve é bloqueado até que o outro processo leia dados suficientes. Ordenação e duplicação de mensagens: Identificadores de mensagens são associados com cada pacote de dados, permitindo ao receptor detectar e rejeitar mensagens duplicadas ou reordenar mensagens fora de ordem.

Comunicação através do protocolo TCP Modelo de comunicação: Quando dois processos tentam estabelecer uma ligação através de Sockets TCP, um dos processos desempenha o papel de cliente e outro de servidor. Depois de estabelecida a ligação podem comportar-se como processos pares.

TCPServer.java

TCPClient.java

Trabalho Desenvolver uma aplicação cliente/servidora que usa sockets como meio de comunicação. Ex.: Banco, Calculadora, Cadastro de usuário, biblioteca etc. Não precisa ter GUI. Máximo 2 pessoa. Código deverá ser commitado no github até às 23:59h do dia 29/08/2014 Código Fonte: TCP e UDP Socket https://github.com/adrianoavelar/sockets

Diagrama da Aplicação Interface da Aplicação Cliente Aplicação Servidora 1. Crie Objeto sc; 2. Abre conexão 3. Envia dados Notifica Responde Notifica SocketClient SocketServidor (TCP ou UDP) (TCP ou UDP)