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



Documentos relacionados
Sistemas Distribuídos

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

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

Processos (Threads,Virtualização e Migração de Código)

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


SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Camada de Transporte TCP/IP e Aplicação

UNIVERSIDADE. Sistemas Distribuídos

Capítulo 7 CAMADA DE TRANSPORTE

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Redes de computadores. Redes para Internet

Sistemas Distribuídos

Sistemas Distribuídos. Introdução

Protocolos Hierárquicos

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

AULA Redes de Computadores e a Internet

Sistemas Distribuídos

REDES DE COMPUTADORES

Redes de Computadores Aula 3

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

Prof. Marcelo Cunha Parte 5

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

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

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

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Sistemas Distribuídos

Redes de Computadores

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

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

SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

SISTEMAS DISTRIBUIDOS

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

TECNOLOGIA WEB INTERNET PROTOCOLOS

Redes de Computadores II

MODELO CLIENTE SERVIDOR

Rede de Computadores II

Fundamentos de Redes de Computadores. Elementos de Redes Locais

Sistemas Distribuídos: Conceitos e Projeto Threads e Migração de Processos

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

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

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

Rede de Computadores

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Redes de Computadores

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

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Aula 11 Comutação de pacotes. Prof. Dr. S. Motoyama

Distributed Systems Principles and Paradigms

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

Sistemas Distribuídos. Coulouris Capítulo 4

Cap 03 - Camada de Aplicação Internet (Kurose)

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

Tabela de roteamento

Capítulo 7 CAMADA DE TRANSPORTE

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

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

Redes de Computadores

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

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

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

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

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

Relatorio do trabalho pratico 2

Considerações no Projeto de Sistemas Cliente/Servidor

REDES DE COMPUTADORES. Arquiteturas de Redes

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

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Sockets. Bruno Guimarães Lucas Rossini

Redes de Computadores I Internet - Conceitos

CAMADA DE TRANSPORTE

Sistemas Distribuídos

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Curso de Aprendizado Industrial Desenvolvedor WEB

Revisão. Karine Peralta

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

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

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

Tecnologia de Redes de Computadores - aula 5

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

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

A Camada de Transporte

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

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

Camada de Transporte

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Assumiu em 2002 um novo desafio profissional como empreendedor e Presidente do Teleco.

Serviço de datagrama não confiável Endereçamento hierárquico. Facilidade de fragmentação e remontagem de pacotes

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

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


Professor: Gládston Duarte

Introdução ao Modelos de Duas Camadas Cliente Servidor

ESTUDOS REALIZADOS. Camada Física. Redes de Computadores AULA 13 CAMADA DE REDE. Camada Física Camada de Enlace Subcamada de Acesso ao Meio AGORA:

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

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

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

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Transcrição:

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos 1

Clusters de Servidores Conjunto de máquinas conectadas por uma rede, no qual cada máquina executa um ou mais servidores. Estas máquinas estão conectadas por uma rede local, com alta largura de banda e baixa latência.

Clusters de Servidores

Clusters de Servidores - Comutador Forma o ponto de entrada para o cluster de servidores, oferecendo um único endereço de rede. Considerando TCP, o comutador aceita requisições e as transfere a um dos servidores Identifica o melhor servidor a tratar a requisição

Clusters de Servidores - Comutador

Clusters de Servidores Distribuídos Conjunto de máquinas que possivelmente muda dinamicamente, com vários pontos de acesso também possivelmente variáveis, mas se apresenta ao mundo externo como um única e poderosa máquina.

Clusters de Servidores Distribuídos Vários pontos de acesso Estabilidade no acesso Alto desempenho Flexibilidade

Migração de Código Em alguns casos é importante migrar código de uma máquina para outra Problema: como fazer esta tarefa em sistemas heterogêneos!

Por que Migrar Código? Principal razão: Aumento de Desempenho

Migração de Código - Desempenho Envio de processos de máquinas sobrecarregadas para máquinas com cargas mais leves Evitar grande quantidade de mensagens trocadas entre aplicações cliente-servidor: Ex.1: operações de banco de dados que envolvem uma grande quantidade de dados(aplicação cliente servidor) Ex.2: formulários enviados do servidor cliente (applets)

Modelos para Migração de Código Migração de código é algo muito mais amplo: podemos também migrar status de um programa, sinais pendentes e outras partes do ambiente

Modelos para Migração de Código Processo consiste em três segmentos[fuggeta et al 1998]: Segmento de código: contém o conjunto de instruções que compõem o programa que está em execução Segmento de recursos: contém referências a recursos externos (arquivos, impressoras,outros processos, bibliotecas) Segmento de execução: armazenar o estado em execução de um processo no momento da migração (dados privados, pilha,contador de programa)

Modelos para Migração de Código Mobilidade pode ser de dois tipos: Mobilidade Fraca: possível transferir somente o segmento de código, junto com alguns dados de inicialização. Requer somente que a máquina-alvo possa executar o código (portabilidade). Ex: applets Java Mobilidade Forte: segmento de execução também pode ser transferido. O processo em execução pode ser parado e movido para uma outra máquina e retomar a execução no ponto original. Mais geral, porém mais difícil de ser implementada

Modelos para Migração de Código Em relação do ponto de ínicio da migração: Iniciada pelo remetente: a migração é iniciada na máquina em que o código está em execução no momento em questão. Ex: enviar programa de busca pela Internet a um servidor de banco de dados para realização de pesquisas agente móvel que passa de site para site Iniciada pelo destinatário: Iniciativa da migração de código é tomada pela máquina-alvo. Ex: Applets java

Modelos para Migração de Código

Migração e recursos locais Segmentos de recursos requerem uma atenção especial O segmento de recurso nem sempre pode ser transferido junto com outros segmentos sem ser trocado Ex.: Comunicação de um processo sendo feita através de uma porta TCP. Ao mudar de localização, este processo deverá devolver a porta e requisitar uma nova no destino

Migração e recursos locais Três tipos de vinculações processo-recurso [Fuggetta et al, 1998]: Vinculação por identificador Processo requer exatamente o recurso referenciado (URL de um site) Vinculação por valor É necessário somente um valor Se outro recurso fornece o mesmo valor, execução não é afetada (bibliotecas padronizadas) Vinculação por tipo Processo requer um recurso de um tipo específico (monitores, impressoras)

Migração e recursos locais Três tipos de vinculações recurso-máquina: Recursos não ligados: recursos podem ser movidos com facilidade entre máquinas diferentes(arquivos de dados) Recursos amarrados: recursos podem ser movidos ou copiados, mas só a custo relativamente alto ( banco de dados locais) Recurso fixos: recursos estão intimamente vinculados a uma máquina ou ambiente especifico e não podem ser movidos dispositivos locais

Migração em Sistemas Heterogêneos Migração em sistemas heterogêneos requer Que o segmento de código possa ser executado em cada plataforma Que o segmento de execução possa ser adequadamente representado em cada plataforma Efeito global: Migrar sistema operacional inteiro, em vez de migrar processos

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 User 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 full-duplex 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, independente 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 (Servidor de emails) 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ção ser entregue ao receptor Até 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