O documento descreve os principais conceitos de sistemas distribuídos baseados na Web, incluindo sua história, arquitetura, processos, comunicação, nomeação, sincronização, consistência e replicação e falhas e segurança. O documento também fornece referências adicionais sobre o tópico.
1. Sistemas
Distribuídos
baseados na Web
Julio Cesar Rocha
Lucas Soares Silva
João Augusto Vianna
2. Sistemas Distribuídos baseados na Web
INTRODUÇÃO
• História
• Arquitetura
• Processos
• Comunicação
• Nomeação
• Sincronização
• Consistência e replicação
• Falhas e segurança
3. Sistemas Distribuídos baseados na Web
HISTÓRIA
• Criado no CERN por Tim Berners-Lee em
1980
• Uniu hipertexto e a Internet
• Troca de informações entre pesquisadores
• Criação do Mosaic em 1993
4. Sistemas Distribuídos baseados na Web
ARQUITETURA
• Uso do cliente-servidor
• URL para referenciar documentos
o http://www.meusite.com.br/arquivo.htm
• Cliente(navegador)
5. Sistemas Distribuídos baseados na Web
ARQUITETURA
• Documentos WEB
o texto, aúdio, vídeo
• Linguagens de marcação
o HTML
o XML
• Documentos embutidos
o MIME
8. Sistemas Distribuídos baseados na Web
Serviços WEB
• Oferece serviços gerais para aplicações
remotas sem interações imediatas de
usuários finais.
• UDDI - contém descrições de serviços,
permitindo assim que clientes procurem
esses serviços.
• WDSL - serviços são descritos por meio da
linguagem de serviços Web
10. Sistemas Distribuídos baseados na Web
PROCESSOS
Cliente
navegador
o proxy Web
• Navegador - programa que permite o
usuário navegar pela Web, buscando
páginas no servidor e mostrando as na tela
• Devem ser independentes da plataforma
12. Sistemas Distribuídos baseados na Web
PROCESSOS
• Servidor Web Apache
o servidor Web mais utilizado no mundo
o é um servidor independente de plataforma, e
fornece seu próprio ambiente de execução básico,
denominado Apache Portable Runtime (APR).
• Cluster de servidores
o minimizam problemas de sobrecarga em servidores
15. Sistemas Distribuídos baseados na Web
COMUNICAÇÃO
Protocolos utilizados:
• Sistemas Web tradicionais:
o HTTP
• Serviços Web em geral:
o Soap
16. Sistemas Distribuídos baseados na Web
PROTOCOLO HTTP
• Protocolo de transferência de hipertexto
(Hypertext Transfer Protocol)
• Toda comunicação cliente-servidor é
baseada no HTTP
o Cliente envia uma mensagem para o servidor e
espera por uma resposta
• É sem estado
o Não requer que o servidor mantenha informações
sobre seus clientes
17. Sistemas Distribuídos baseados na Web
PROTOCOLO HTTP
• Utiliza conexões TCP
• Sempre que o cliente emite uma requisição
uma conexão TCP é estabelecida
• Não se preocupa com requisições e
respostas perdidas
18. Sistemas Distribuídos baseados na Web
HTTP 1.0 E ANTERIORES
• Conexão não persistente
o Cada requisição requer o estabelecimento de uma
conexão separada
• Caro estabelecer conexões TCP
• É possível estabelecer conexões
simultâneas
o Utilizado para ocultar a latência causada pelo tempo
de estabelecimento de conexão
20. Sistemas Distribuídos baseados na Web
HTTP 1.1
• Conexão persistente
o Não é preciso de uma conexão separada para cada
par requisição-resposta
• Um cliente pode emitir várias requisições
sem esperar a resposta da anterior
22. Sistemas Distribuídos baseados na Web
MÉTODOS HTTP
Operação Descrição
Head Requisição para retornar o cabeçalho de um documento
Get Requisição para retornar um documento para o cliente
Put Requisição para armazenar um documento
Post Fornecer dados que devem ser anexados a um documento ou conjunto de documentos
Delete Requisição para apagar um documento
(c). Operações suportadas pelo HTTP
23. Sistemas Distribuídos baseados na Web
MENSAGENS HTTP
• Toda comunicação cliente-servidor ocorre
por meio de mensagens
o São reconhecidas somente mensagens de
requisição e resposta
Código Frase
200 OK
400 Bad Request (Requisição Inválida)
403 Forbidden (Proibido)
404 Not Found (Não Encontrado)
405 Method Not Allowed (Método Não Permitido)
(d). Exemplos de códigos de status das respostas do HTTP
24. Sistemas Distribuídos baseados na Web
SOAP
• Protocolo simples de acesso a objeto
(Simple Object Access Protocol)
• Parte da premissa que duas entidades que
se comunicam tem muito pouco
conhecimento em comum
• Possibilita por um meio simples que partes
diferentes, que saibam muito pouco uma da
outra, consigam se comunicar
25. Sistemas Distribuídos baseados na Web
SOAP
• Reforça o protocolo HTTP
o Utiliza HTTP para a maioria de suas comunicações
• As mensagens são em grande parte
baseadas em XML
• Utilização do XML questionada
o nterpretar mensagens XML costuma produzir um
sério gargalo de desempenho
26. Sistemas Distribuídos baseados na Web
NOMEAÇÃO
• Os nomes usados na Web sao
denominados identificadores uniformes de
recursos (Uniform Resource Identifiers), ou
URI
• A URL (Uniform Resource Locato), é um
URI que identifica um documento pela
inclusão de informações sobre como e onde
acessá-lo
29. Sistemas Distribuídos baseados na Web
SINCRONIZAÇÃO
• Existem duas razões para crer que a
sincronização em serviços Web não tem
sido levada muito a sério:
o Em arquiteturas cliente-servidor servidores não se
comunicam com servidores e nem clientes com
clientes
o A Web é considerada como um sistema que, na
maioria das vezes, é somente leitura
30. Sistemas Distribuídos baseados na Web
SINCRONIZAÇÃO
• Porém há uma demanda crescente para
fornecer suporte para autoria colaborativa
de documentos Web.
o WebDAV (Web Distributed Authoring and
Versioning) ou autoria e versões distribuídas na
Web
• O WebDav conta com dois tipos de travas
de escrita: a exclusiva e a compartilhada
31. Sistemas Distribuídos baseados na Web
WEBDAV
• Trava de escrita exclusiva
o Somente um cliente tem o poder de travar o
documento
• Trava de escrita compartilhada
o Vários clientes alteram o documento ao mesmo
tempo, porém deve existir um cuidado para não
ocorrer conflitos escrita-escrita
32. Sistemas Distribuídos baseados na Web
CONSISTÊNCIA E REPLICAÇÃO
• Tem como objetivo garantir o desempenho e
a disponibilidade dos documentos Web.
• Problema: Consistência!
• Solucão: Utilização de caches!
o Implementada através de Caches associadas a
Proxy Web.
33. Sistemas Distribuídos baseados na Web
CONSISTÊNCIA E REPLICAÇÃO
A cache do lado do cliente:
• No browser: documento armazenado na
cache do browser, de onde será carregado
da próxima vez. (configuração feita pelo
cliente)
Proxy Web: aceita requisições e repassa para
servidores → cache compartilhada
34. Sistemas Distribuídos baseados na Web
CONSISTÊNCIA E REPLICAÇÃO
Tipos de organização de cache:
- Cache cooperativa ou distribuída:
• Ausência da cache em proxy Web?
Verificação em alguns proxies vizinhos!
Primordialmente com caches Web que
pertencem à mesma organização e que estão
na mesma LAN
36. Sistemas Distribuídos baseados na Web
CONSISTÊNCIA E REPLICAÇÃO
Tipos de organização de cache:
- Cache Hierárquica:
• Caches posicionadas para uma região ou até
mesmo em um país
• Caches pesquisadas de maneira hierárquica!
Aumentar a latência de resposta
• Alta a probabilidade de encontrar cópia de
37. Sistemas Distribuídos baseados na Web
FALHAS E SEGURANÇA
Uma abordagem para estabelecer um canal
seguro na Web é usar a camada de soquetes
seguros (Secure Socket Layer – SSL),
implementada originalmente pela Netscape:
• Uma definição padronizada é denominada protocolo
de segurança na camada de transporte (Transport
Layer Security – TLS)
• Esse protocolo é independente de aplicação.
39. Sistemas Distribuídos baseados na Web
REFERÊNCIAS
[1] Tanenbaum, A. S; Sistemas distribuídos - Princípios e
Paradigmas; páginas 330-356.
[2] Sistemas Distribuídos e a WEB; Acessado em 10 de junho de
2012. http://www.sohand.icmc.usp.br/~rigolin/downloads/sistemasDist
ribuidosWeb_Rigolin_20071101.pdf
[3] Sistemas Distribuídos na Internet; Acessado em 11 de junho de
2012.
http://www.inf.unioeste.br/~marcio/SO/Aula10SistemasDistribuidos.pdf