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/clien
teServidor.map&mode=map
Arquiteturas multicamadas
http://localhost:8081/cgi-
bin/mapserv.exe?map=/ms4w/apps/mapas/mapfiles/clien
teServidor.map&mode=map&layer=rvia
Arquiteturas multicamadas
http://localhost:8081/cgi-
bin/mapserv.exe?map=/ms4w/apps/mapas/mapfiles/clien
teServidor.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 Web
Servidor 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
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
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?

Sistemas Distribuídos baseados na Web

  • 1.
  • 2.
    Roteiro  Arquitetura  Processos Comunicação  Nomeação  Sincronização  Consistência e Replicação  Segurança
  • 3.
  • 4.
    Sistemas tradicionais baseados naweb Exemplo: http://localhost/clientServer/index.html
  • 5.
    Documentos  HTML  XML Interpretadores de conteúdo  MIME(Multipurpose Internet Mail Exchange) – trocas multiuso do correio da Internet
  • 6.
  • 7.
    Arquiteturas multicamadas  CGI(Commom Gateway Interface) – Interface comum de gateway
  • 8.
  • 9.
  • 10.
  • 11.
    Arquiteturas multicamadas • ServidorWeb – 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
  • 13.
  • 14.
  • 15.
    Clientes • O clienteWeb 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 processodo 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 servidorWeb 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.
  • 18.
  • 19.
    Clusters de servidoresWeb • 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 servidoresWeb • 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.
  • 21.
  • 22.
    Clusters de servidoresWeb • 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.
  • 23.
  • 24.
    Protocolos de comunicação •Sistemas Web – protocolo HTTP • Serviços Web – protocolo SOAP
  • 25.
    Protocolo de transferênciade 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
  • 26.
    Protocolo de transferênciade hipertexto • Métodos HTTP
  • 27.
    Protocolo simples deacesso 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.
  • 28.
  • 29.
    Nomeação • A webusa 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
  • 30.
  • 31.
    Sincronização • Devido aestrutura 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.
  • 32.
  • 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.
  • 34.
  • 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
  • 37.
  • 38.
    Segurança • A abordagemutilizada 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, AndrewS. e STEEN, Marteen Van. Sistemas Distribuídos: princípios e paradigmas - 2ª ed. - São Paulo: Pearson Prentice Hall, 2007.
  • 40.
  • 41.