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?