Sistemas Distribuídos Tipos e Arquiteturas de Sistemas Distribuídos Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/std 15 de outubro de 2015 1/25
Tipos de Sistemas Distribuídos 2/25
Sistemas de computação distribuídos 2/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas Aglomerado de computadores semelhantes Mesmo sistema operacional e conectados através de uma rede local O administrador é dono de todo do cluster Usado para processamento paralelo mestre distribui tarefas pelos nós Ex: cluster Beowulf criado pela NASA em 1994 2/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas Tianhe-2 - China - O mais rápido atualmente 33.86 PFlop/s 3.120.000 núcleos 3/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas Titan - EUA - O segundo mais rápido atualmente 17.59 PFlop/s 560.640 núcleos 3/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas Tupã - Brasil - Em 2010 ficou na posição 29/500 258TFlop/s R$ 23 milhões e é 2.580 mais rápido que um core i7 3/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas Cluster Beowulf - simples, porém acessível 3/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas Cluster com Playstation3 Em 2010 a força aérea americana fez um com 1.760 PS3, obtendo 500TFlop/s posição 33/500 3/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas Cluster com 32 raspberry PI Linux 3/25
Sistemas de computação distribuídos Cluster: agrupamento de máquinas 3/25
Sistemas de computação distribuídos Grades computacionais ou Grid Cluster Ambiente homogêneo: hardware, sistema operacional, rede local, administração central Grid Ambientes heterogêneos: cada nó pode ter um hardware, S.O., rede, domínio administrativo e poĺıticas de segurança diferentes Middleware é responsável por prover abstração para esta heterogeneidade Grids geralmente são usadas para constituir Organizações Virtuais Diversas instituições colaboram com seus recursos (cluster, armazenamento, etc.) Poĺıticas de uso determinam quanto tempo cada organização poderá usar a grid 4/25
Sistemas de computação distribuídos Cloud Computing ou Computação em Nuvem Computação em Nuvem permite que recursos computacionais possam ser providos de maneira rápida e com mínimo esforço de gerenciamento por parte do provedor de serviço Permite adicionar ou remover recursos de acordo com a demanda Similar as redes de energia e de telefonia 5/25
Sistemas de computação distribuídos Cloud Computing ou Computação em Nuvem Computação em Nuvem consiste em oferecer como serviço aplicações, bem como softwares e hardwares que hospedam estas aplicações A nuvem é conjunto de hardware e software no datacenter Modelo de implantação Nuvem privada Toda a nuvem a construída dentro dos limites de uma instituição e é voltada exclusivamente para seus usuários Ex: Nuvem USP http://goo.gl/bk24xr Nuvem pública Oferece os serviços e a tarifação é feita de acordo com o uso A nuvem armazena dados de diferentes clientes Ex: Amazon EC2 http://goo.gl/igka8k 6/25
Sistemas de computação distribuídos Cloud Computing ou Computação em Nuvem 7/25
Sistemas de computação distribuídos Cloud Computing ou Computação em Nuvem 7/25
Sistemas de computação distribuídos Cloud Computing ou Computação em Nuvem 7/25
Sistemas de computação distribuídos Cloud Computing ou Computação em Nuvem 7/25
Sistemas de computação distribuídos Cloud Computing ou Computação em Nuvem 7/25
Sistemas de computação distribuídos Cluster, Grid e Cloud 8/25
Sistemas de informação distribuídos 9/25
Sistemas de informação distribuídos Processamento de Transações 9/25
Sistemas de informação distribuídos Processamento de Transações 9/25
Sistemas de informação distribuídos Processamento de Transações Sistema do hotel indisponível, ou o hotel não tem mais vaga (acesso concorrente de diversos clientes) 9/25
Sistemas de informação distribuídos Processamento de Transações 9/25
Sistemas de informação distribuídos Processamento de Transações Transações tem por objetivo garantir a integridade de recursos Recurso acessado por diversos processos de forma concorrente Processo realizando operações sobre um ou mais recursos Modo de operação das transações 1 Indicar início da transação 2 Realizar operações sobre os recursos 3 Indicar o término da transação commit tenta salvar as alterações abort ignora as alterações e volta para os valores originais Ou todas as operações na transação são executadas ou nenhuma delas será executada 10/25
Sistemas de informação distribuídos Características das Transações Atômica Para um observador externo, a transação é indivisível É executada em sua totalidade ou não executa Consistente Toda transição leva o sistema de um estado válido para um outro estado válido Isolada Transações concorrentes não geram interferência entre si Duráveis Uma vez que a transação foi concluída com sucesso (commit), então as modificações feitas por ela são permanentes 11/25
Sistemas distribuídos ubíquos 12/25
Sistemas distribuídos ubíquos Formado por dispositivos móveis pequenos, alimentados por bateria e com conexão sem fio Ex: Laptop, tablet, celular, dispositivos de automação residencial ou para saúde, rede de sensores sem fio Requisitos para sistemas ubíquos Reagir a mudanças do contexto O dispositivo deve estar continuamente ciente das mudanças no ambiente Encorajar composições ad hoc Deve ser fácil cooperar com outros dispositivos Compartilhamento de recursos é algo impĺıcito Prover facilidades para compartilhar informações 12/25
Sistemas distribuídos ubíquos Internet das Coisas IoT 13/25
Arquiteturas para Sistemas Distribuídos 14/25
Arquiteturas para Sistemas Distribuídos Organização dos Sistemas Distribuídos Estilos de arquitetura formas de projetar o software do SD Camadas Objetos Eventos Espaço de dados compartilhados Arquitetura de sistema organização do SD em máquinas reais Centralizados Descentralizados Híbridos 14/25
Arquitetura de software Estilos de arquitetura Estilos são definidos por componentes de software (processos) e como estes se conectam uns aos outros Baseada em camadas Baseada em objetos Baseada em eventos Espaço de dados compartilhados 15/25
Arquitetura de software Estilos de arquitetura Estilos são definidos por componentes de software (processos) e como estes se conectam uns aos outros Baseada em camadas Baseada em objetos Baseada em eventos Espaço de dados compartilhados Keyword expression Query generator Database queries Database with Web pages User interface HTML page containing list HTML generator Ranking component Ranked list of page titles Web page titles with meta-information User-interface level Processing level Data level Processos das camadas superiores invocam processos das camadas inferiores Conhecem a pilha TCP/IP? 15/25
Arquitetura de software Estilos de arquitetura Estilos são definidos por componentes de software (processos) e como estes se conectam uns aos outros Baseada em camadas Baseada em objetos Baseada em eventos Espaço de dados compartilhados Cada objeto contém um estado e é capaz de realizar operações que podem ser invocadas por outros objetos O objeto seria um componente de software Os conectores entre os objetos podem ser representadas por chamadas de procedimento remoto (RPC) 15/25
Arquitetura de software Estilos de arquitetura Estilos são definidos por componentes de software (processos) e como estes se conectam uns aos outros Baseada em camadas Baseada em objetos Baseada em eventos Espaço de dados compartilhados Comunicação entre os processos é feita através de eventos, que podem ou não conter dados O barramento de eventos (middleware) é o responsável pelo transporte Ex: Sistema publish/subscribe Processos registram o interesse em determinados eventos (subscribe) Processos publicam eventos Middleware notifica somente os processos que assinaram aquele evento 15/25
Arquitetura de software Estilos de arquitetura Estilos são definidos por componentes de software (processos) e como estes se conectam uns aos outros Baseada em camadas Baseada em objetos Baseada em eventos Espaço de dados compartilhados desacoplamento espacial um processo não precisa referenciar diretamente um outro 15/25
Arquitetura de software Estilos de arquitetura Estilos são definidos por componentes de software (processos) e como estes se conectam uns aos outros Baseada em camadas Baseada em objetos Baseada em eventos Espaço de dados compartilhados Semelhante ao baseado em eventos, porém os dados persistem no middleware Acontece também o desacoplamento temporal Dados persistem, mesmo se os processos não estiverem mais ativos 15/25
Centralizada Trata-se do modelo cliente-servidor e os processos são divididos em dois grupos Servidor Processo que implementa um serviço Cliente Processo que envia um pedido ao servidor e aguarda por sua resposta 16/25
Centralizada Trata-se do modelo cliente-servidor e os processos são divididos em dois grupos Servidor Processo que implementa um serviço Cliente Processo que envia um pedido ao servidor e aguarda por sua resposta Em um sistema distribuído, é possível que um servidor seja cliente para invocar um outro serviço User interface User-interface level Keyword expression Query generator Database queries Database with Web pages HTML page containing list HTML generator Ranking component Ranked list of page titles Web page titles with meta-information Processing level Data level 16/25
Centralizada Organização mais comum de aplicações cliente-servidor: cliente e servidor executando em máquinas distintas Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine (a) (b) (c) (d) (e) (a) Cliente como terminal burro Ex: Xorg Ao cliente cabe apenas apresentar a interface gráfica 17/25
Centralizada Organização mais comum de aplicações cliente-servidor: cliente e servidor executando em máquinas distintas Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine (a) (b) (c) (d) (e) (b) Cliente fica somente com o frontend Toda lógica da aplicação fica no servidor 17/25
Centralizada Organização mais comum de aplicações cliente-servidor: cliente e servidor executando em máquinas distintas Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine (a) (b) (c) (d) (e) (c) Parte da lógica da aplicação fica no cliente Ex: Validações sobre preenchimento de formulários seria feita antes de enviar pela rede 17/25
Centralizada Organização mais comum de aplicações cliente-servidor: cliente e servidor executando em máquinas distintas Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine (a) (b) (c) (d) (e) (d) Toda a aplicação fica no cliente e esta invoca o servidor de Banco de Dados Organização bem comum em sistemas de gestão comercial, etc. 17/25
Centralizada Organização mais comum de aplicações cliente-servidor: cliente e servidor executando em máquinas distintas Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine (a) (b) (c) (d) (e) (e) Cliente armazena parte do banco de dados Ex: Cache do navegador web 17/25
Centralizada Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine 1 Qual destas seria mais fácil manter? 2 Qual destas está em evidência atualmente? (a) (b) (c) (d) (e) 18/25
Centralizada Client machine User interface User interface User interface Application User interface Application User interface Application Database User interface Application Application Application Database Database Database Database Database Server machine 1 Qual destas seria mais fácil manter? 2 Qual destas está em evidência atualmente? (a) (b) (c) (d) (e) Clientes leves thin client Maior facilidade para manter Aplicar atualização Pior desempenho depende da latência da rede Clientes pesados fat client Dificuldade para manter Diferentes versões de S.O Conflitos com outros softwares Instalação e atualização demandam mais tempo Melhor desempenho Não depende muito da rede 18/25
Descentralizada Redes Par a Par (Peer-to-Peer P2P) Todas as máquinas poderão buscar por serviços, bem como provê-los Cada máquina possui toda a lógica para atuar como cliente e servidor Centralizada vs Descentralizada Qual destas é mais escalável? 19/25
conexão entre dois nós da rede overlay é chamada de enlace virtual, e corresponde à rota entre os Arquitetura de sistema respectivos nós na rede física. Cada nó é responsável por processar e rotear pacotes segundo critérios específicos da rede overlay. As conexões entre os nós do overlay são implementadas na rede física Descentralizada usando alguma forma de tunelamento (isto é, os pacotes da rede overlay são encapsulados em pacotes Aplicações da rede subjacente), descentralizadas e não necessitam seguir necessitam nenhuma topologia estabelecer predeterminada. previamente Assim como emum canal uma camada de de comunicação rede típica, as funções principais de uma rede overlay são o encaminhamento de pacotes, Oque estabelecimento determina como osde nóscanais da rede processam de comunicação um pacote em entre trânsito os para nósque deele umchegue sistema ao seudistribuído, destino, e o roteamento, resultaquemé ouma processo rede atravésobreposta do qual o conhecimento (overlay) sobre as diferentes rotas entre nósrede da rede lógica é calculado, construída armazenado sobree disseminado. uma rede física existente rede overlay rede física Figura 2.1: Rede overlay sobreposta a uma rede física Redes P2P são comumente utilizadas para distribuição de conteúdo Compartilhamento de arquivos, mensageiros instantâneos, voz sobre IP Recentemente, um número crescente de autores passou a defender a idéia de que a Internet está 20/25 engessada em razão de seu próprio sucesso: a rede que um dia foi essencialmente acadêmica e por
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood + tabela cache) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood + tabela cache) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood + tabela cache) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood + tabela cache) 8 21/25
Descentralizada Redes P2P não estruturadas Busca por conteúdo Ex: Gnutella Cada nó possui um índice parcial que representa um subconjunto de todos os nós participantes da rede não existe nó central 5 7 1 initial 3 13 4 2 9 6 11 10 12 final 14 Busca por inundação (flood + tabela cache) 8 21/25
Descentralizada Redes P2P não estruturadas com Ultrapeers Ex: Kazaa initial final Busca por inundação é muito custosa Supernós concentram índices de seus vizinhos 22/25
Descentralizada Redes P2P não estruturadas com Ultrapeers Ex: Kazaa initial query final Busca por inundação é muito custosa Supernós concentram índices de seus vizinhos 22/25
Descentralizada Redes P2P não estruturadas com Ultrapeers Ex: Kazaa initial query final Busca por inundação é muito custosa Supernós concentram índices de seus vizinhos 22/25
Descentralizada Redes P2P não estruturadas com Ultrapeers Ex: Kazaa initial final Busca por inundação é muito custosa Supernós concentram índices de seus vizinhos 22/25
Descentralizada Redes P2P não estruturadas com Ultrapeers Ex: Kazaa initial queryhit final Busca por inundação é muito custosa Supernós concentram índices de seus vizinhos 22/25
Descentralizada Redes P2P não estruturadas com Ultrapeers Ex: Kazaa initial queryhit final Busca por inundação é muito custosa Supernós concentram índices de seus vizinhos Temos aqui duas redes sobrepostas: uma para os supernós e outra para os nós comuns Como determinar quem será supernó? 22/25
Híbrida: Combina centralizada com descentralizada Nó central mantém um índice sobre os demais nós ativos na rede e os os recursos disponibilizados por estes Ex: Bittorrent Arquivos são fracionados em blocos e estes são compartilhados Requisitante obtém blocos sem ordem específica para depois combiná-las e obter o arquivo desejado Arquivo.torrent contém informações sobre o tracker Tracker servidor que mantém a lista de nós ativos para um determinado.torrent 23/25
Híbrida: Combina centralizada com descentralizada Nó central mantém um índice sobre os demais nós ativos na rede e os os recursos disponibilizados por estes Ex: Bittorrent Arquivos são fracionados em blocos e estes são compartilhados Requisitante obtém blocos sem ordem específica para depois combiná-las e obter o arquivo desejado Arquivo.torrent contém informações sobre o tracker Tracker servidor que mantém a lista de nós ativos para um determinado.torrent Onde está ponto crítico de falha ou gargalo de desempenho? 23/25
Híbrida: Combina centralizada com descentralizada Nó central mantém um índice sobre os demais nós ativos na rede e os os recursos disponibilizados por estes Ex: Bittorrent Arquivos são fracionados em blocos e estes são compartilhados Requisitante obtém blocos sem ordem específica para depois combiná-las e obter o arquivo desejado Arquivo.torrent contém informações sobre o tracker Tracker servidor que mantém a lista de nós ativos para um determinado.torrent Onde está ponto crítico de falha ou gargalo de desempenho? R: trackers 23/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Híbrida Ex: Bittorrent (figura wikipedia) Motivo de sucesso Encontrou uma forma para acabar com nós egoístas Um nó P ao notar que um nó Q está pegando muito mais do que cedendo, então P diminui sua taxa de envio para Q 24/25
Exercícios 1 Ler seções 4.1 e 4.2 do minicurso sobre Internet das coisas http://docente.ifsc.edu.br/mello/std/artigos/aula-04-iot-minicurso 2 Pesquise sobre Napster, Whatsapp, Popcorn Time e para cada um desses responda Qual o estilo de arquitetura? Qual a arquitetura de sistema? 3 Pesquise sobre os produtos do Amazon AWS 4 Pesquise sobre soluções de Virtual Desktop Infrastructure (VDI) Como funciona? Quais vantagens? Quais requisitos? 25/25