sistemas distribuídos baseados na web
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
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?