Sistemas Distribuídos Baseados na Web

Download Report

Transcript Sistemas Distribuídos Baseados na Web

SISTEMAS
DISTRIBUÍDOS
BASEADOS NA WEB
Aula de 31/08/2011
Livro Tanembaum, Cap. 12
Arquitetura
• As referências aos documentos Web são realizadas por
meio do localizador uniforme de recurso (Uniforme
Resource Locator – URL)
• A comunicação entre um navegador e um servidor Web é
padronizado: ambos obedecem ao protocolo de
transferência de hipertexto (Hypertext Transfer Protocol –
HTTP)
• Os documentos Web são escritos utilizando uma
linguagem de marcação denominada HTML (Hypertext
Markup Language), ou, linguagem de marcação de
hipertexto.
• Outra maneira de construir documentos Web é
utilizando a linguagem extensível de marcação
(eXtensible Markup Language – XML) que proporciona
mais flexibilidade para definir qual deve ser a aparência
do documento.
• HTML e XML também podem incluir todos os tipos
de rótulos que referenciam documentos embutidos,
isto é, referência a arquivos que devem ser incluídos
para tornar um documento completo.
• Cada documento (embutido) tem um tipo Mime
associado. Mime representa Multipurpose Internet Mail
Exchange (troca multiuso do correio da Internet).
• O Mime distingue vários tipos de conteúdos de mensagens.
• Esses tipos também são usados na WWW.
• A combinação de HTML com scripting proporciona
um poderoso meio para construção de documentos.
Um dos primeiros mecanismos criados foi Common
Gateway Interface (Interface comum de gateway), ou
simplesmente CGI.
Serviços Web
• Permite o oferecimento de serviços gerais para
aplicações remotas sem interações imediatas de
usuários finais.
• Um componente importante da arquitetura de
serviços Web é formado por um serviço de diretório
que armazena descrições de serviços.
• Esse serviço obedece ao padrão integração, descoberta e
descrição universal (Universal Description, Discovery and
Integration – UDDI)
• Esse padrão contém descrições de serviços, permitindo assim que
clientes procurem esses serviços.
• Serviços são descritos por meio da linguagem de
definição de serviços Web (Web Services Definition
Language – WSDL).
• Uma descrição WSDL contém as definições exatas das interfaces
fornecidas por um serviço, isto é, especificação de
procedimentos, tipo de dados, a localização do serviço, etc.
• Essa descrição pode ser traduzida automaticamente para
apêndices do lado do cliente e do lado do servidor.
• Um elemento central de um serviço Web é a
especificação do modo como ocorre a comunicação.
Para cumprir essa finalidade é utilizado o protocolo
simples de acesso a objeto (Simples Object Access
Protocol – SOAP).
Processos
• O cliente Web mais importante é um software
denominado navegador Web, também conhecido como
browser.
• Esse programa capacita um usuário a navegar pelas páginas web
buscando essas páginas em servidor, e em seguida,
apresentando-as na tela do usuário.
• Outro processo do lado do cliente que costuma ser
utilizado é o Proxy Web
• Esse componente permite que o navegador manipule
protocolos da camada de aplicação que não fossem o HTTP, por
exemplo, FTP.
• Servidor Web Apache
• O Apache é o servidor Web mais utilizado no mundo, e é formado
por uma peça complexa de software.
• É um servidor independente de plataforma, e fornece seu
próprio ambiente de execução básico, denominado Apache
Portable Runtime (APR).
• Clusters de Servidores WEB
• São utilizados para minimizar problemas de sobrecarga em
servidores Web.
• Uma solução prática é replicar um servidor em um cluster de
servidores e usar um mecanismo separado, tal como um
front-end, para redirecionar requisições de clientes a uma das
réplicas.
Comunicação
• Toda comunicação entre clientes e servidores na
Web é baseada no protocolo de transferência de
hipertexto (Hipertext Transfer Protocol – HTTP).
• O HTTP é um protocolo cliente-servidor simples: Um
ciente envia uma mensagem de requisição a um
servidor e espera por uma mensagem de resposta.
• Ele é um protocolo sem estado, isso significa que não
mantém nenhuma conexão entre o cliente e o servidor.
• As principais operações suportadas por HTTP são
listadas a seguir:
Nomeação
• Os nomes usados na Web são denominados
identificadores uniformes de recursos (Uniform
Resource Identifiers), ou simplesmente URI.
• A URL é um URI que identifica um documento pela inclusão
de informações sobre como e onde acessá-lo.
Consistência e Replicação
• Tem como objetivo garantir o desempenho e a
disponibilidade dos documentos Web.
• Pode ser implementada através de Caches associadas a
Proxy Web.
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.
Exercícios
• 1. Até que ponto o e-mail é parte de um modelo de
documento Web?
• 2. Em muitos casos, sites Web são projetados para
serem acessados por usuários. Contudo, quando se trata
de serviços Web, vemos que sites Web tornam-se
dependentes uns dos outros. Considerando a arquitetura
em três camadas da Figura 12.2, na sua opinião onde a
dependência ocorreria?
• 3. Por que conexões persistentes em geral melhoram o
desempenho em comparação com conexões não
persistentes?
• 4. Explique as diferenças entre um plug-in, um applet, um
servlet e um programa CGI.
• 5. Como o grau de personalização das páginas Web está
cada vez maior (porque elas podem ser geradas
dinamicamente para clientes, sob demanda), poderíamos
argumentar que logo todas as caches Web serão
obsoletas. Ainda assim, é muito provável que isso não
aconteça no futuro imediato. Explique o porquê.
• 6. Em princípio, há três técnicas diferentes para
redirecionar clientes: transferência TCP, redirecionamento
baseado em DNS e redirecionamento baseado em HTTP.
Quais são as principais vantagens e desvantagens de
cada técnica?