Você está na página 1de 40

Sistemas Distribuídos

Professora: Ana Paula Couto


DCC 064
Sistemas Distribuídos
Basedos na Web

Capítulo 12
Agenda
 Arquitetura
 Processos
 Comunicação
 Nomeação
 Sincronização
 Consistência e Replicação
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)
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
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
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)
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.
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)
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
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
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.
Documentos Web (4)
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
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
Arquitetura Multicamadas (2)
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
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
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
Processos – Clientes (1)
 Programas clientes são chamados browsers
 Ideal que sejam independentes da plataforma na qual
serão executados
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
Processos – Clientes (3)

 Nos sistemas atuais, proxies são usados para:


– Filtrar requisições e respostas
– Armazenar informações: cache
Processos – Servidores (1)

É importante que o servidor tenha alta capacidade


de configuração e que seja independente de
plataformas específicas
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
Processos – Servidores (3)
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
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
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
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
Comunicação – Conexões HTTP (1)

 Não persistente versus persistente


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

 head, get, put, post, delete


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
Nomeação
Nomeação
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
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!
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
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
Consistência e Replicação –
Proxy de cache
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

Você também pode gostar