Sistemas Distribuídos baseados na Web

Post on 21-Jun-2015

1.723 views 35 download

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

Sistemas Distribuídos baseados na Web Equipe: Rafael Chagas

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

Arquitetura

Sistemas tradicionais baseados na web

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

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

multiuso do correio da Internet

Documentos Tabela de MIMEs

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

gateway

Arquiteturas multicamadas

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

Arquiteturas multicamadas

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

Arquiteturas multicamadas

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

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

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

Serviços Web

Princípio de um serviço web

Processos

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.

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.

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.

Servidores

Organização geral do servidor Web Apache

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.

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.

Clusters de servidores 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.

Comunicação

Protocolos de comunicação

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

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

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

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.

Nomeação

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

Sincronização

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.

Consistência e Replicação

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.

Consistência e Replicação

Princípio da cache colaborativa

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

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

Segurança

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.

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.

Obrigado!

Dúvidas?