Sistemas Distribuídos baseados na Web.
Seminário desenvolvido para a avaliação da disciplina de Sistemas Cliente Servidor da Universidade Estadual de Montes Claros.
11. Arquiteturas multicamadas
• Servidor Web – Apache, IIS
• Servidor de Aplicação – Jboss, GlassFish, Apache TomCat
• Banco de Dados – PostgreSQL, MySQL, Oracle
Browser Servidor Web
Servidor de
Aplicação
Banco de
Dados
12. Serviços Web
• Definição: Serviço Web é um serviço tradicional(serviço de
nomeação, serviço de previsão de tempo, um fornecedor
eletrônico) que é oferecido pela internet.
• É uma solução utilizada na integração de sistemas e na
comunicação entre aplicações diferentes.
• UDDI (Universal Description, Discovery and Integration) –
Padrão integração, descoberta e descrição universal
• WSDL (Web Services Definition Language) – linguagem de
definição de serviços.
• SOAP (Simple Object Acess Protocol) – protocolo simples de
acesso a objeto
15. Clientes
• O cliente Web mais conhecido é o browser Web, ele serve
exclusivamente para fornecer uma interface para
apresentação de hiperlinks.
Componentes lógicos de um browser Web.
16. Clientes
• Outro processo do lado cliente é o proxy Web, originalmente,
tal processo era usado para permitir a um browser manipular
protocolos da camada de aplicação que não fossem o HTTP.
• Atualmente os proxies são utilizados para filtrar requisições e
respostas, e para o uso de cache.
17. Servidores
• O servidor Web mais popular é o Apache, estima-se que seja
utilizado para hospedar 70% de todos os sites Web.
• Ex.: Apache, IIS, entre outros;
• Características desejáveis para um servidor Web:
• Alta capacidade de configuração e extensibilidade;
• Independente de plataformas específicas.
• Ambiente de execução básica do Apache
• Apache Portable Runtime (APR) - interface independente de
plataforma para manipulação de arquivos, trabalhos em rede,
threads, etc
• Apache entende que todas as requisições que chegam obedecem
a um modo orientado de conexão baseado em TCP.
19. Clusters de servidores Web
• Um servidor Web tem grande facilidade de se sobrecarregar
devido ao grande número de requisições. Uma solução para
esse problema é replicar um servidor em um cluster de
servidores. Utilizando um front end para redirecionar as
requisições de clientes a uma das réplicas.
20. Clusters de servidores Web
• Front ends
• Camada de transporte - Repassa os dados enviados ao longo da
conexão TCP para um dos servidores, dependendo de certa
mediação de carga.
Desvantagem: Não se pode levar em consideração o conteúdo da
requisição.
• Camada de aplicação – O conteúdo da requisição é inspecionado,
depois decide para qual servidor a requisição será repassada.
Vantagem: Aumento de desempenho.
Desvantagem: Aumento do trabalho do front end.
Solução: Combinar os dois métodos.
22. Clusters de servidores Web
• Outras alternativas
• DNS de varredura cíclica – um único nome de domínio é
associado com vários endereços IPs, o browser cliente recebe a
lista de vários endereços, normalmente escolhe o primeiro
endereço da lista, a entrada da lista é movida pelo servidor de
DNS.
• Sem intermediário. Relacionar cada servidor com o mesmo
endereço IP, com servidores compartilhando o mesmo broadcast,
a partir de um algoritmo distribuído será escolhido qual servidor
executará a requisição.
25. Protocolo de transferência de
hipertexto
• O HTTP é um protocolo cliente-servidor relativamente
simples; um cliente envia uma mensagem de requisição a um
servidor e espera por uma mensagem de resposta.
• O HTTP é sem estado.
• Conexões HTTP
• O HTTP é baseado em TCP.
a) HTTP 1.0 – conexão não persistente b) HTTP 1.1 – conexão persistente
27. Protocolo simples de acesso a
objeto
• O protocolo simples de acesso a objeto (Simple Object Acess
Protocol – SOAP) é o padrão para comunicação com serviços
Web.
• A maioria das comunicações SOAP são implementadas por
meio do HTTP.
• Grande parte das mensagens SOAP são baseadas em XML.
• Gera gargalo de desempenho devido ao excesso de palavras.
29. Nomeação
• A web usa um sistema único de nomeação para referenciar
documentos. Os nomes usados são URIs (Uniform Resource
Identifiers) - Identificadores uniformes de recurso.
• URLs (Uniform Resource Locator) – Localizador uniforme de
recurso
Ex.: http://www.cs.vu.nl:80/globe
• URNs (Uniform Resource Name) – Nome uniforme de recurso
Ex.: urn:isbn:0451450523
Utilização de resolvedor de URN
31. Sincronização
• Devido a estrutura tradicional da web, a sincronização não foi
deixada de lado. Porém esse fato está mudando, com os
serviços Web de colaboração de documentos.
• O protocolo responsável por manipular documentos
distribuídos é o WebDAV (Distributed Authoring and
Versioning) – autoria e versões distribuídas na Web.
• Dois tipos de travas
• Trava de escrita exclusiva
• Trava de escrita compartilhada
• O WebDAV não trata as situações de queda de conexão, essa função fica em
aberto para implementações de acordo com a necessidade.
33. Consistência e Replicação
• Sistemas distribuídos baseados na web devem assegurar que
o acesso aos documentos cumpra rigorosos requisitos de
desempenho e disponibilidade.
• Proxy de cache da web:
• Browser;
• proxy Web;
• caches hierárquicas
• Caches são colocadas em uma região ou até mesmo em um país;
• alta a probabilidade de encontrar uma cópia de documentos
populares em uma cache mais próxima.
• cache distribuída ou cache colaborativa
• Verificação de proxies vizinhos;
• Utilizado quando caches Web pertencem à mesma organização e
que estejam na mesma LAN.
35. Consistência e Replicação
• Replicação para sistemas de hospedagem Web – redes de
entre de conteúdo (CDNs)
Organização geral de uma CDN como sistema de realimentação
36. Consistência e Replicação
• Replicação de aplicações web
• Esse esquema funciona bem quando a taxa de atualização for
baixa
• Replicação parcial, replicação total, caches cientes de
conteúdo, caches alheia ao conteúdo
Alternativa para cache e replicação com aplicações web
38. Segurança
• A abordagem utilizada para estabelecer um canal seguro entre
o cliente e o servidor é usar a camada de soquetes seguros
(Secure Socket Layer – SSL), é denominada formalmente por
protocolo de segurança na camada de transporte ( Transport
Layer Security).
• As características exatas do canal seguro são determinadas
durante seu estabelecimento, mas podem incluir
fragmentação e compressão de mensagens, que são aplicados
em conjunto com autenticação, integridade e
confidencialidade de mensagens.
39. Referências
• TANENBAUM, Andrew S. e STEEN, Marteen Van. Sistemas
Distribuídos: princípios e paradigmas - 2ª ed. - São Paulo:
Pearson Prentice Hall, 2007.