Comunicação entre processos distribuídos Sistemas distribuídos.
Sistemas Distribuídos baseados na Web
-
Upload
rafael-chagas -
Category
Education
-
view
1.724 -
download
35
description
Transcript of Sistemas Distribuídos baseados na Web
![Page 1: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/1.jpg)
Sistemas Distribuídos baseados na Web Equipe: Rafael Chagas
![Page 2: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/2.jpg)
Roteiro Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Segurança
![Page 3: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/3.jpg)
Arquitetura
![Page 4: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/4.jpg)
Sistemas tradicionais baseados na web
Exemplo: http://localhost/clientServer/index.html
![Page 5: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/5.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/6.jpg)
Documentos Tabela de MIMEs
![Page 7: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/7.jpg)
Arquiteturas multicamadas CGI (Commom Gateway Interface) – Interface comum de
gateway
![Page 8: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/8.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/9.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/10.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/11.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/12.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/13.jpg)
Serviços Web
Princípio de um serviço web
![Page 14: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/14.jpg)
Processos
![Page 15: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/15.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/16.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/17.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/18.jpg)
Servidores
Organização geral do servidor Web Apache
![Page 19: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/19.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/20.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/21.jpg)
Clusters de servidores Web
![Page 22: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/22.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/23.jpg)
Comunicação
![Page 24: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/24.jpg)
Protocolos de comunicação
• Sistemas Web – protocolo HTTP• Serviços Web – protocolo SOAP
![Page 25: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/25.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/26.jpg)
Protocolo de transferência de hipertexto• Métodos HTTP
![Page 27: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/27.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/28.jpg)
Nomeação
![Page 29: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/29.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/30.jpg)
Sincronização
![Page 31: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/31.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/32.jpg)
Consistência e Replicação
![Page 33: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/33.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/34.jpg)
Consistência e Replicação
Princípio da cache colaborativa
![Page 35: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/35.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/36.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/37.jpg)
Segurança
![Page 38: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/38.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/39.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/40.jpg)
Obrigado!
![Page 41: Sistemas Distribuídos baseados na Web](https://reader035.fdocument.pub/reader035/viewer/2022081419/55865da9d8b42a2d108b46c0/html5/thumbnails/41.jpg)
Dúvidas?