Baixe o app para aproveitar ainda mais
Prévia do material em texto
Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 1 SISTEMAS DISTRIBUÍDOS Capítulo 2 Arquiteturas e Modelos de Sistemas Distribuídos Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 2 SISTEMAS DISTRIBUÍDOS Capítulo 2 Arquiteturas de Sistemas Distribuídos Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 3 NOTA PRÉVIA A estrutura da apresentação é semelhante e utiliza algumas das figuras do livro de base do curso G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems - Concepts and Design, Addison-Wesley, 5th Edition, 2011 Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 4 CONTEXTOS - ARQUITETURA Camadas de software Reparte a complexidade de um sistema, em várias camadas, com interfaces bem definidas entre si. Cada camada pode usar os serviços da camada abaixo, sem conhecimento dos detalhes de implementação. Arquitetura (distribuída) multinível/camada as camadas do sistema são atribuídas a processos/máquinas diferentes Arquitetura distribuída Especifica como se organizam e quais as interações entre os vários componentes de um sistema distribuído Em todos os casos há implicações no desempenho, fiabilidade e segurança do sistema Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 5 CAMADAS DE SOFTWARE - MIDDLEWARE O middleware fornece uma interface homogénea e serviços mais complexos que os disponibilizados pelo sistema de operação Limitações: algumas funcionalidades apenas podem ser implementadas de forma eficaz com o conhecimento da semântica da aplicação, pelo que fornecer essa funcionalidade no sistema de middleware seria contraproducente (correção de erros, segurança, etc.) Sistema de comunicações Sistema de operação Sistema de comunicações Sistema de operação Sistema de comunicações Sistema de operação N computadores interligados Sistema middleware Aplicação distribuída Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 6 ARQUITECTURA EM CAMADAS: MODELO 3-CAMADAS Em aplicações de acesso a sistemas de informação/ comércio eletrónico, etc. Arquitetura de três níveis (3-tier) - Apresentação - (Lógica) Aplicação - (Armazenamento) Dados Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 7 ARQUITECTURA DISTRIBUÍDA Arquitetura do sistema Organização de um sistema (complexo) em componentes mais simples com funcionalidades/responsabilidades próprias Arquitetura do sistema distribuído Define os componentes, o que fazem, onde estão e como interagem entre si. Terá implicações em diversas propriedades do sistema: desempenho, fiabilidade e segurança do sistema Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 8 ARQUITECTURA DISTRIBUÍDA Arquitetura de um sistema distribuído pode (e deve) ser determinada por diversos fatores: Requisitos funcionais: “tudo relacionado com o propósito direto (a função) do sistema” ex. Lógica de negócio Requisitos não funcionais: Desempenho (escalabilidade, latência), disponibilidade Custo (de: desenvolvimento, operação, manutenção) Segurança, confiabilidade Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 9 CLIENTE/SERVIDOR Sistema em que os processos podem ser divididos em dois tipos, de acordo com o seu modo de operação: Cliente: programa que solicita pedidos a um processo servidor Servidor: programa que executa operações solicitadas pelos clientes, enviando-lhes o respectivo resultado Cliente Servidor pedido resposta Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 10 CLIENTE/SERVIDOR: PROPRIEDADES Arquitetura mais simples, muito usada em sistemas pouco exigentes – ponto de partida para criar sistemas mais complexos... Positivo Interação simples facilita implementação Segurança apenas tem de se concentrar no servidor Negativo Servidor é um ponto de falha único Não escala para além dum dado limite (servidor pode tornar-se ponto de contenção/estrangulamento) Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 11 CLIENTE/SERVIDOR: COMPOSIÇÃO Arquiteturas mais sofisticadas, com novas propriedades, podem ser obtidas por composição do modelo C/S base Servidor [particionado, replicado, geo-replicado], P2P, 3-Camadas, etc. C S C S C S C S C S Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 12 Modelo alternativo para lidar com limitações do modelo cliente/servidor Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 13 MODELO PEER-TO-PEER (P2P) / ENTRE-PARES Todos os processos têm funcionalidades semelhantes Durante a sua operação podem assumir o papel de clientes e servidores do mesmo serviço em diferentes momentos Exemplos: partilha de ficheiros, VoIP, edição colaborativa C S C S C S C S Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 14 MODELO PEER-TO-PEER: PROPRIEDADES Positivo Não existe ponto único de falha (improvável que todos os pares falhem) Grande potencial de escalabilidade (+ pares --> + recursos) Baixo custo de operação (os pares contribuem c/ os recursos) Negativo Interação mais complexa (do que num sistema cliente/servidor) leva a implementações mais complexas Operações de pesquisa são complexas Maior número de computadores envolvidos pode colocar questões relativas a heterogeneidade e segurança Apropriado para ambientes em que todos os participantes querem cooperar para fornecer uma dado serviço Capacidade agregada muito maior que a capacidade individual de cada par Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 15 Variantes do modelo cliente/servidor para lidar com limitações de escalabilidade e tolerância a falhas Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 16 Servidor Cliente/servidor particionado Existem vários servidores com a mesma interface, cada um capaz de responder a uma parte dos pedidos Quando o servidor não pode responder: Redirige o cliente para outro servidor (iterativo); Ou, invoca pedido noutro servidor (recursivo) exemplo: DNS (.mz, .com, .org, etc.) Servidor Servidor Servidor VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente ClienteCliente Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 17 VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR Cliente/servidor particionado Positivo Permite distribuir a carga, melhorando o desempenho (potencialmente) Não existe um ponto de falha único Negativo Falha de um servidor impede acesso aos dados presentes nesse servidor Difícil de aplicar em alguns modelos de dados Sendo: w : nº de escritas; r : nº de leituras; n : nº de partições Cada partição recebe, em média: w / n + r / n pedidos ou seja, potencialmente divide as escritas e as leituras por todos os servidores, melhorando o desempenho do sistema Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 18 VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR Cliente/servidor replicado Existem vários servidores idênticos portanto, capazes de responder aos mesmos pedidos Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 19 VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR Cliente/servidor replicado Positivo Redundância - não existe um ponto de falha único Permite distribuir a carga, melhorando o desempenho, mas depende do rácio entre escritas e leituras) Negativo Custo da Coordenação - garantir coerência entre todas as réplicas Recuperar uma réplica que tenha falhado (sem parar o resto do sistema) Sendo: w : nº de escritas; r : nº de leituras; n : nº de réplicas Se todas as réplicas receberem todos os pedidos de escrita, cada réplica recebe: w + r / n pedidos Ou seja, as leituras podem ser distribuídas entre as réplicas, mas as escritas têm que ser feitas em todas elas Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 20 VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR Cliente/servidor geo-replicado Servidor replicado, com réplicas distribuídas geograficamente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 21 VARIANTES DO MODELO CLIENTE/SERVIDOR: SERVIDOR Cliente/servidor geo-replicado Positivo Proximidade aos clientes melhora a qualidade de serviço (latência) Redundância acrescida – as falhas das réplicas são (ainda) mais independentes Negativo Coordenação mais dispendiosa – maior separação física das réplicas traduz-se na utilização de canais com latência/atrasos significativos Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 22 VARIANTES DO MODELO CLIENTE/SERVIDOR: CLIENTE Cliente leve (thin client)/servidor O cliente apenas inclui uma interface (gráfica) para executar operações no servidor (ex.: browser + formulários) Positivo: Cliente pode ser muito simples (não implementa a lógica da aplicação) Negativo Maior peso no servidor (a lógica da aplicação reside no servidor) Impacto na interatividade (devido ao tempo de ida e volta da rede entre o cliente e o servidor) Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 23 VARIANTES DO MODELO CLIENTE/SERVIDOR: CLIENTE Cliente completo (estendido)/servidor O cliente executa localmente algumas operações que seriam executadas pelo servidor a lógica da aplicação reside em boa parte no cliente; o servidor fornece armazenamento exemplo: Google Docs, Gmail Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 24 VARIANTES DO MODELO CLIENTE/SERVIDOR: CLIENTE Cliente completo (estendido)/servidor Positivo: Permite funcionar desligado/offline, quando não é possível contactar o servidor (recorrendo a caching) Permite diminuir a carga do servidor e melhorar o desempenho e a interatividade Negativo: Implementação do cliente mais complexa Necessário tratar da coerência dos dados entre o cliente e o servidor Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 25 Variantes do modelo P2P com diferentes propriedades Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 26 VARIANTES DO MODELO PEER-TO-PEER Sistema P2P não estruturado As ligações entre os pares são formadas de forma não-determinista Quando se junta à rede, um par liga-se um conjunto de outros pares conhecidos (os seus vizinhos na rede P2P) Os vizinhos podem variar durante a execução do sistema e de sessão para sessão C S C S C S C S C S C S C S C S C S Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 27 VARIANTES DO MODELO PEER-TO-PEER Sistema P2P não estruturado Positivo: Simplicidade, robusto ao dinamismo da rede (churn) Negativo: Pesquisa pesada (geralmente por inundação), não determinista / incompleta Latência/escalabilidade depende da árvore formada xpto.mp3? xpto.mp3? .mp3? C S C S C S C S C S C S C S C S C S Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 28 VARIANTES DO MODELO PEER-TO-PEER Sistemas P2P estruturados Os membros do sistema além do endereço físico, têm um endereço lógico A topologia da rede reflete um relação determinista (matemática) entre os endereços lógicos dos pares Existem topologias para todos os gostos, por exemplo um anel 32 60 79 70 113 102 40 52 80 85 C S C S C S C S C S C S C S C S C S C S Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 29 VARIANTES DO MODELO PEER-TO-PEER Sistemas P2P estruturados Uma boa topologia, consegue custos de encaminhamento e pesquisas por identificador O(log N) Cada passo reduz o espaço de pesquisa/encaminhamento pela metade... Ideia: cada nó liga-se a nós noutros pontos da topologia P2P e usa essas ligações como atalhos: ex: O(log N) vizinhos 60 79 70 113 102 40 52 80 85 32 Lookup(80) Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 30 Podem existir mais componentes num sistema distribuído, cujo papel é simultaneamente cliente e servidor Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 31 NOÇÃO DE PROXY DE UM SERVIÇO Proxy de um serviço Processo que fornece um serviço recorrendo a um servidor (desse serviço) para executar o serviço Utilizaçõespossíveis Intermediário simples (apenas encaminha pedidos e respostas) Intermediário complexo (gateway) Transformação dos pedidos Serviço adicional, através do armazenamento de respostas a pedidos anteriores. Diminuição do tempo de resposta (latência inferior para o proxy) Diminuição da carga do servidor Mascarar falhas do servidor / desconexão Proxy Web server Web server server Servidor WEB Servidor WEB PROXY Browser Browser Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça e Sérgio Duarte – Copyright DI – FCT/ UNL / 32 SERVIDORES DA PERIFERIA Sistemas com servidores localizados na periferia da Internet Contratados junto dos ISP para responder a certos pedidos Objectos pesados como vídeos e imagens são servidos de cópias alojadas nos ISPs, obtidas a pedido. CDNs – Redes de distribuição de conteúdos pesados (exemplo: AKAMAI) Propriedades Menor latência, filtragem, distribuição de carga, etc. src: https://clickmotive.files.wordpress.com/2009/11/akamaiedgeplatform.jpg
Compartilhar