Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar...

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

Transcript of Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar...

Page 1: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Sistemas Distribuídos

Professora: Ana Paula CoutoDCC 064

Page 2: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Sistemas Distribuídos Basedos na Web

Capítulo 12

Page 3: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação

Page 4: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Introdução (1) Sistema para acessar documentos → Servidores

mantêm conjuntos de documentos enquanto clientes fornecem a usuários uma interface de fácil utilização para apresentar os documentos

O “conceito” de Web foi criado em 1989, no CERN: permitir aos pesquisadores acessar documentos compartilhados por meio de um sistema simples de hipertexto

Grande impulso com o surgimento de interfaces gráficas para o acesso dos documentos (Mosaic)

Page 5: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Introdução (2)

Atualmente, o conceito de Web é muito mais amplo, estendendo a sua funcionalidade para diversos serviços

Diversos conceitos subjacentes à tecnologia da Web são baseados nos princípios que estudamos na disciplina

Page 6: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Arquitetura

A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990

Documentos passaram de puramente estáticos e passivos para dinamicamente gerados

Adicionalmente, muitas organizações começaram a suportar serviços em vez de apenas documentos

Page 7: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Sistemas tradicionais baseados na Web (1)

Existe uma clara distinção entre os sistemas Web que estavam disponíveis no inicio e os que são utilizados hoje

Sistemas baseados na Web são organizados como arquiteturas cliente-servidor:

– Núcleo de um site é formado por um processo que tem acesso a um sistema de arquivos local que armazena documentos

– Documentos são referenciados através de um localizador uniforme de recurso (URL)

Page 8: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Sistemas tradicionais baseados na Web (2)

Uma URL:– Especifica onde um documento está

localizado.– Muitas das vezes possui o nome DNS de um

servidor, juntamente com um nome de arquivo pelo qual o servidor pode consultar o documento em seu sistema de arquivos local.

– Especifica o protocolo de camada de aplicação para transferir o documento pela rede.

Page 9: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Sistemas tradicionais baseados na Web (3)

Cliente:– Interação é feita por meio de um browser– A comunicação entre um browser e um

servidor obedece ao protocolo de transferência de hipertexto (HTTP)

Page 10: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Documentos Web (1) Um documento ou página Web consiste de um

conjunto de objetos– Um objeto é um arquivo –

HTML,JPEG,GIF, applet Java, audio – que é endereçavel usando uma URL

A maioria das páginas Web consiste de um arquivo de base HTML (linguagem de marcação de hipertexto) e vários objetos referenciados

– No entanto, a linguagem de marcação XML (linguagem extensível de marcação) está tornando-se popular. Motivo: Maior flexibilidade para definir qual deve ser a aparência de um documento

Page 11: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Documentos Web (2)

HTML e XML podem incluir links que referenciam documentos embutidos → referências a arquivos que devem ser incluídos para tornar um documento completo

– Como os browsers farão para manipular os diferentes formatos de arquivos e modos de interpretar os documentos embutidos?

• Necessário especificar o tipo de documento embutido e um modo de permirtir que um browser manipule dados de um tipo específico

Page 12: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Documentos Web (3)

Cada documento embutido tem um tipo Mime (trocas de multiuso do correio de Internet) associado

– Originalmente desenvolvido para fornecer informações sobre o conteúdo do corpo de uma mensagem enviada como parte de correio eletrônico

– Distingue vários tipos de conteúdos de mensagens: tipos de alto nível e subtipos

– Tipo do documento é representado como uma combinação de tipo de alto nivel e subtipo.

Page 13: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Documentos Web (4)

Page 14: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Documentos Web (5)

Em alguns casos, quando o tipo de documento ainda não é padrão, o servidor Web deverá fornecer a aplicação que “decodificará” o documento

– Pode ser um programa separado, que será executado à parte de um browser

– Pode ser um plug-in, que pode ser instalado como parte do browser

Quando certos tipos alcançam popularidade, os programas que os “decodificam” são fornecidos juntamente com os browsers ou suas atualizações

Page 15: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Arquitetura Multicamadas (1)

Inicialmente, sistema cliente-servidor de duas camadas, relativamente simples

Atualmente, essa arquitetura simples foi ampliada com numerosos componentes para suportar o tipo de documentos avançados

Aprimoramento com o suporte para interação simples do usuário → CGI

– Novo padrão pelo qual um servidor Web pode executar um programa tomando os dados do usuário como entrada

– Dados são enviados através de formulários

Page 16: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Arquitetura Multicamadas (2)

Page 17: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Arquitetura Multicamadas (3)

Sites Web atuais são organizados conforme uma arquitetura de três camadas:

– Servidor Web → definição tradicional– Servidor de Aplicação → executa todos os

tipos de programas, que podem ou não acessar camada de banco de dados

– Servidor de Banco de Dados → dados a serem pesquisados

Page 18: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Serviços Web (1)

Consideremos uma livraria eletrônica.– Fazer o pedido de compra de um livro

requer selecionar o livro, pagar e garantir sua entrega

– Neste caso, temos um serviço Web complexo, formado por vários serviços básicos

– A complexidade aumenta se considerarmos serviços Web oferecidos que combinam serviços de diferentes provedores

Page 19: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Serviços Web (2)

Para serviços compostos, é importante que o cliente veja um serviço coerente

Importante: Protocolos de coordenação são usados, com o objetivo de descrever as várias etapas que precisam ocorrer para que o serviço possa ser bem sucedido.

– Dificuldade: como os participantes desse protocolo vão realizar as etapas corretas no momento correto? Coordenador único

Page 20: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Processos – Clientes (1) Programas clientes são chamados browsers Ideal que sejam independentes da plataforma na qual

serão executados

Page 21: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Processos – Clientes (2) Um outro processo do lado do cliente é um proxy

Web– Originalmente, era usado para permitir um

a browser manipular protocolos de camada de aplicação que não fossem o HTTP

Page 22: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Processos – Clientes (3)

Nos sistemas atuais, proxies são usados para:– Filtrar requisições e respostas– Armazenar informações: cache

Page 23: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Processos – Servidores (1)

É importante que o servidor tenha alta capacidade de configuração e que seja independente de plataformas específicas

Page 24: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Processos – Servidores (2) O servidor mais popular é o Apache Para prover independência de plataforma, fornece

o seu ambiente de execução básico, que é ampliado para atender a uma plataforma específica

– Apache Portable Runtime – fornece interface independente de plataforma para manipulação de arquivos, trabalhos em rede, threads, etc

– Todas as requisições que são feitas obedecem a um modo de comunicação orientado a conexão, baseado em TCP

Page 25: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Processos – Servidores (3)

Page 26: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Clusters de Servidores Web (1) Para evitar a sobrecarga de um servidor, pode-se replicar

o servidor em um cluster de servidores e um mecanismo separado, como um front end, para redirecionar requisições de clientes a uma das réplicas

Page 27: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Clusters de Servidores Web (2)

Front ends:– Camada de transporte: Repassa os dados

enviados ao longo da conexão TCP para um dos servidores, dependendo de certa medição de carga. Desvantagem: Não pode levar em conta o conteúdo da requisição HTTP

– Distribuição em função de conteúdo: front end inspeciona uma requisição HTTP que chega e depois decide para qual servidor ele deve repasssar essa requisição

Page 28: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Clusters de Servidores Web (2)

Outras alternativas:– DNS de varredura cíclica: um único nome

de dominio é associado com vários endereços IP → browser cliente recebe uma lista de endereços e normalmente escolhe o primeiro da lista → servidores DNS movem em círculo as entradas das listas

– Servidores com mesmo endereço em uma única LAN em broadcast → todos os servidores receberão a requisiçao, e através da execução de um algoritmo distribuído, decidem qual o servidor que manipulará a requisição

Page 29: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Comunicação (1)

Protocolo de transferência de hipertexto– Toda comunicação entre clientes e

servidores é baseada no protocolo de transferência de hipertexto (HTTP)

– Protocolo simples, um cliente envia uma mensagem de requisição a um servidor e espera por uma mensagem de resposta

– Protocolo sem estado → não requer que um servidor mantenha informações sobre seus clientes

Page 30: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Comunicação – Conexões HTTP (1)

Não persistente versus persistente

Page 31: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Comunicação – Métodos HTTP (1)

head, get, put, post, delete

Page 32: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Nomeação

Para identificar um documento Web, são usados identificadores uniformes de recursos (URIs)

Um localizador uniforme de recurso (URL) é uma URI que identifica um documento pela inclusão de informações sobre como e onde acessá-lo → referência a um documento que depende de localização

A sintaxe de uma URI depende do esquema associado: http, ftp ou telnet

Page 33: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Nomeação

Page 34: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Nomeação

Page 35: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Sincronização

Devido a estrutura 'tradicional' de sistemas Web a questão de sincronização não vinha recebendo muita 'atenção'

– A organização estrita cliente – servidor, na qual servidores não trocavam informações com outros servidores

– Sistema que, na maioria da vezes, é somente de leitura

No entanto, novos serviços Web necessitam de sincronização e coordenação: elaboração colaborativa de documentos e serviços Web

Page 36: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Consistência e Replicação

Para garantir desempenho e disponibilidade, replicação é a técnica utilizada em sistemas Web

Problema: Consistência! Utilização de caches!

Page 37: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Consistência e Replicação – Proxy de cache

A cache do lado do cliente pode ocorrer em dois lugares:

– No browser: sempre que um documento for buscado, ele é armazenado na cache do browser, de onde será carregado da próxima vez → clientes podem configurar a cache para verificação de consistência

– Proxy Web: aceita requisições e repassa para servidores → cache compartilhada

Page 38: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Consistência e Replicação – Proxy de cache

Outras maneiras de organização de cache:– Cache cooperativa ou distribuída:

• Sempre que ocorrer uma ausência dea cache em um proxy Web, é feita uma verificação em alguns proxies vizinhos para ver se um deles contém o documento

• Primordialmente com caches Web que pertencem à mesma organização e que estão na mesma LAN

Page 39: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Consistência e Replicação – Proxy de cache

Page 40: Sistemas Distribuídos - tlc-networks.polito.it · Arquitetura A idéia inicial de suportar documentos distribuídos evolui desde seu início, na década de 1990 Documentos passaram

Consistência e Replicação – Proxy de cache

Outras maneiras de organização de cache:– Cache Hierárquica:

• Caches são colocadas em uma região ou até mesmo em um país

• Assim, caches são pesquisadas de uma maneira hierárquica, o que pode aumentar a latência de resposta

• No entanto, é alta a probabilidade de encontrar uma cópia de documentos populares em uma cache mais próxima