Sistemas Distribuídos baseados na Web

41
Sistemas Distribuídos baseados na Web Equipe: Rafael Chagas

description

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.

Transcript of Sistemas Distribuídos baseados na Web

Page 1: Sistemas Distribuídos baseados na Web

Sistemas Distribuídos baseados na Web Equipe: Rafael Chagas

Page 2: Sistemas Distribuídos baseados na Web

Roteiro Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Segurança

Page 3: Sistemas Distribuídos baseados na Web

Arquitetura

Page 4: Sistemas Distribuídos baseados na Web

Sistemas tradicionais baseados na web

Exemplo: http://localhost/clientServer/index.html

Page 5: Sistemas Distribuídos baseados na Web

Documentos HTML XML Interpretadores de conteúdo MIME(Multipurpose Internet Mail Exchange) – trocas

multiuso do correio da Internet

Page 6: Sistemas Distribuídos baseados na Web

Documentos Tabela de MIMEs

Page 7: Sistemas Distribuídos baseados na Web

Arquiteturas multicamadas CGI (Commom Gateway Interface) – Interface comum de

gateway

Page 8: Sistemas Distribuídos baseados na Web

Arquiteturas multicamadas

http://localhost:8081/cgi-bin/mapserv.exe?map=/ms4w/apps/mapas/mapfiles/clienteServidor.map&mode=map

Page 9: Sistemas Distribuídos baseados na Web

Arquiteturas multicamadas

http://localhost:8081/cgi-bin/mapserv.exe?map=/ms4w/apps/mapas/mapfiles/clienteServidor.map&mode=map&layer=rvia

Page 10: Sistemas Distribuídos baseados na Web

Arquiteturas multicamadas

http://localhost:8081/cgi-bin/mapserv.exe?map=/ms4w/apps/mapas/mapfiles/clienteServidor.map&mode=legend&layer=rvia

Page 11: Sistemas Distribuídos baseados na Web

Arquiteturas multicamadas

• Servidor Web – Apache, IIS• Servidor de Aplicação – Jboss, GlassFish, Apache TomCat• Banco de Dados – PostgreSQL, MySQL, Oracle

Browser Servidor WebServidor de Aplicação

Banco de Dados

Page 12: Sistemas Distribuídos baseados na Web

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

Page 13: Sistemas Distribuídos baseados na Web

Serviços Web

Princípio de um serviço web

Page 14: Sistemas Distribuídos baseados na Web

Processos

Page 15: Sistemas Distribuídos baseados na Web

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.

Page 16: Sistemas Distribuídos baseados na Web

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.

Page 17: Sistemas Distribuídos baseados na Web

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.

Page 18: Sistemas Distribuídos baseados na Web

Servidores

Organização geral do servidor Web Apache

Page 19: Sistemas Distribuídos baseados na Web

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.

Page 20: Sistemas Distribuídos baseados na Web

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.

Page 21: Sistemas Distribuídos baseados na Web

Clusters de servidores Web

Page 22: Sistemas Distribuídos baseados na Web

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.

Page 23: Sistemas Distribuídos baseados na Web

Comunicação

Page 24: Sistemas Distribuídos baseados na Web

Protocolos de comunicação

• Sistemas Web – protocolo HTTP• Serviços Web – protocolo SOAP

Page 25: Sistemas Distribuídos baseados na Web

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

Page 26: Sistemas Distribuídos baseados na Web

Protocolo de transferência de hipertexto• Métodos HTTP

Page 27: Sistemas Distribuídos baseados na Web

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.

Page 28: Sistemas Distribuídos baseados na Web

Nomeação

Page 29: Sistemas Distribuídos baseados na Web

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

recursoEx.: http://www.cs.vu.nl:80/globe

• URNs (Uniform Resource Name) – Nome uniforme de recursoEx.: urn:isbn:0451450523Utilização de resolvedor de URN

Page 30: Sistemas Distribuídos baseados na Web

Sincronização

Page 31: Sistemas Distribuídos baseados na Web

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.

Page 32: Sistemas Distribuídos baseados na Web

Consistência e Replicação

Page 33: Sistemas Distribuídos baseados na Web

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.

Page 34: Sistemas Distribuídos baseados na Web

Consistência e Replicação

Princípio da cache colaborativa

Page 35: Sistemas Distribuídos baseados na Web

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

Page 36: Sistemas Distribuídos baseados na Web

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

Page 37: Sistemas Distribuídos baseados na Web

Segurança

Page 38: Sistemas Distribuídos baseados na Web

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.

Page 39: Sistemas Distribuídos baseados na Web

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.

Page 40: Sistemas Distribuídos baseados na Web

Obrigado!

Page 41: Sistemas Distribuídos baseados na Web

Dúvidas?