Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas em Sistemas Distribuídos Sistemas Distribuídos Tércio de Morais1 1Ciência da Computação Universidade Federal de Alagoas - Campus Arapiraca Arapiraca, 21 de outubro de 2020 Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 1 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Arquitetura do Sistema Vamos considerar o modelo mais simples Já sabemos que nossa arquitetura será distribuída Como podemos distribuir os componentes da aplicação? Nossa arquitetura precisa ser eficiente Precisamos separar a aplicação da plataforma Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 2 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Arquitetura do Sistema Vamos considerar o modelo mais simples Já sabemos que nossa arquitetura será distribuída Como podemos distribuir os componentes da aplicação? Nossa arquitetura precisa ser eficiente Precisamos separar a aplicação da plataforma O que veremos nesta aula Estilos arquitetônicos Arquiteturas de Sistemas Middleware Autogerenciamento Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 2 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Modelos de Organização Quanto mais distribuído é um sistema, mais complexo é seu gerenciamento Necessidade de adotar modelos de organização eficientes Diferentes formas de organizar sistemas Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 3 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Modelos de Organização Quanto mais distribuído é um sistema, mais complexo é seu gerenciamento Necessidade de adotar modelos de organização eficientes Diferentes formas de organizar sistemas Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 3 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Modelos de Organização Quanto mais distribuído é um sistema, mais complexo é seu gerenciamento Necessidade de adotar modelos de organização eficientes Arquitetura de Software Organização de um sistema através da definição de componentes, suas propriedades externas e seus relacionamentos com outros softwares. Arquitetura de Software é crucial para o desenvolvimento de sistemas de grande porte. Diferentes formas de organizar sistemas Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 3 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Modelos de Organização Quanto mais distribuído é um sistema, mais complexo é seu gerenciamento Necessidade de adotar modelos de organização eficientes Diferentes formas de organizar sistemas Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 3 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Modelos de Organização Quanto mais distribuído é um sistema, mais complexo é seu gerenciamento Necessidade de adotar modelos de organização eficientes Diferentes formas de organizar sistemas Organização lógica e realização física Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 3 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Modelos de Organização Quanto mais distribuído é um sistema, mais complexo é seu gerenciamento Necessidade de adotar modelos de organização eficientes Diferentes formas de organizar sistemas Arquitetura lógica e Arquitetura de Sistemas Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 3 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Organização Lógica Elementos básicos de uma arquitetura Componente é uma unidade modular com interfaces públicas e bem definidas Conector é um mecanismo responsável por mediar a comunicação e cooperação entre os componentes Sockets e filas de mensagens são exemplos de mediadores de comunicação Componentes + Conectores = Diferentes configurações Diferentes configurações = Estilos Arquitetónicos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 4 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Organização Lógica Elementos básicos de uma arquitetura Componente é uma unidade modular com interfaces públicas e bem definidas Conector é um mecanismo responsável por mediar a comunicação e cooperação entre os componentes Sockets e filas de mensagens são exemplos de mediadores de comunicação Componentes + Conectores = Diferentes configurações Diferentes configurações = Estilos Arquitetónicos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 4 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Organização Lógica Elementos básicos de uma arquitetura Componente é uma unidade modular com interfaces públicas e bem definidas Conector é um mecanismo responsável por mediar a comunicação e cooperação entre os componentes Sockets e filas de mensagens são exemplos de mediadores de comunicação Componentes + Conectores = Diferentes configurações Diferentes configurações = Estilos Arquitetónicos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 4 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Estudo de Caso – Aracity Hardware Organização Lógica Elementos básicos de uma arquitetura Componente é uma unidade modular com interfaces públicas e bem definidas Conector é um mecanismo responsável por mediar a comunicação e cooperação entre os componentes Sockets e filas de mensagens são exemplos de mediadores de comunicação Componentes + Conectores = Diferentes configurações Diferentes configurações = Estilos Arquitetónicos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 4 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Estilo Arquitetónico É formulado em termos de . . . de componentes; de dados trocados pelos componentes; da forma como tais dados são trocados; e da forma como tais elementos são configurados em conjunto a formar um sistema. Estilos Fundamentais Arquiteturas em camadas Arquiteturas baseada em objetos Arquitetura centrada em dados Arquitetura baseada em eventos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 5 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Estilo Arquitetónico É formulado em termos de . . . de componentes; de dados trocados pelos componentes; da forma como tais dados são trocados; e da forma como tais elementos são configurados em conjunto a formar um sistema. Estilos Fundamentais Arquiteturas em camadas Arquiteturas baseada em objetos Arquitetura centrada em dados Arquitetura baseada em eventos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 5 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Estilo ArquitetónicoÉ formulado em termos de . . . de componentes; de dados trocados pelos componentes; da forma como tais dados são trocados; e da forma como tais elementos são configurados em conjunto a formar um sistema. Estilos Fundamentais Arquiteturas em camadas Arquiteturas baseada em objetos Arquitetura centrada em dados Arquitetura baseada em eventos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 5 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Estilo Arquitetónico É formulado em termos de . . . de componentes; de dados trocados pelos componentes; da forma como tais dados são trocados; e da forma como tais elementos são configurados em conjunto a formar um sistema. Estilos Fundamentais Arquiteturas em camadas Arquiteturas baseada em objetos Arquitetura centrada em dados Arquitetura baseada em eventos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 5 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Estilo Arquitetónico É formulado em termos de . . . de componentes; de dados trocados pelos componentes; da forma como tais dados são trocados; e da forma como tais elementos são configurados em conjunto a formar um sistema. Estilos Fundamentais Arquiteturas em camadas Arquiteturas baseada em objetos Arquitetura centrada em dados Arquitetura baseada em eventos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 5 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Estilo Arquitetónico É formulado em termos de . . . de componentes; de dados trocados pelos componentes; da forma como tais dados são trocados; e da forma como tais elementos são configurados em conjunto a formar um sistema. Estilos Fundamentais Arquiteturas em camadas Arquiteturas baseada em objetos Arquitetura centrada em dados Arquitetura baseada em eventos Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 5 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Arquitetura em Camadas Características Componentes dispostos em camadas A camada subjacente Li tem permissão para chamar componetes da camada subjacente Li−1 A camada Li−1 apenas responde às solicitações da camada superior Li Geralmente, as camadas são dispostas em uma mesma máquina Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 6 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Arquitetura em Camadas Figura: Arquitetura em camadas.Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 7 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Arquitetura Baseada em Objetos Cada objeto corresponde a um componente Se comunicam através de chamadas remotas amplamente usada no modelo de comunicação Cliente/Servidor Acoplamento mais fraco entre os elementos Figura: Arquitetura baseada em objetos.Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 8 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Arquitetura Baseada em Eventos Comunicação baseada na propagação de eventos e/ou dados Em SD: sistemas Publish/Subscribe Processos publicam eventos Sistemas de middleware asseguram a entrega da informação aos processos inscritos para recebé-la Publishers e subscribers não precisam se “conhecer” nem saber localizações Basta saber onde está o sistema de mensageria – middleware Esta arquitetura permite o fraco acoplamento temporal e espacial entre os comunicantes Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 9 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Exemplo de Arquitetura Figura: Arquitetura baseada em eventos. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 10 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Espaços Compartilhados de Dados Baseado no modelo de espaço de tuplas Repositório de dados Produtores armazenam tuplas no espaço Consumidores recuperam tuplas do espaço que casam com um determinado padrão Memória compartilhada e distribuída Acesso concorrente Implementações JavaSpace, Lisp, LUA, Prolog, Tcl etc. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 11 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Exemplo de Arquitetura Figura: Arquitetura espaço de tuplas. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 12 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Arquitetura de Sistemas Organização da Distribuição do Software Arquiteturas Centralizadas Arquiteutras Descentralizadas Arquiteturas Híbridas Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 13 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Arquiteturas Centralizadas O que é? O controle do sistema é centralizado e acessível remotamente. A comunicação segue o modelo Cliente/Servidor O cliente solicita algum serviço oferecido pelo servidor O servidor processa e responde ao cliente enviando uma mensagem de resposta Figura: Arquitetura Cliente/Servidor. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 14 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Arquiteturas Centralizadas::Camadas de Aplicação Na arquitetura Cliente/Servidor não está claro onde termina o cliente e começa o servidor quem é cliente, quem é servidor, quem, ora é cliente, ora é servidor Arquiteturas Centralizadas::Estilo em camadas Muito ultilizado na arquitetura cliente servidor Model, View, Control Arquiteturas Multidivididas Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 15 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Arquiteturas Centralizadas::Exemplo do estilo MVC Figura: Aplicação Cliente/Servidor no modelo MVC. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 16 / 31 Introdução Estilos Arquitetónicos Arquiteturade Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Arquiteturas Centralizadas::Arquiteturas Multidivididas Ideia básica As e camadas lógicas do estilo MVC podem ser distribuídas por n máquinas. Modelo mais simples Composta por pelo menos 2 nós (máqinas) O nó cliente contém apenas os componentes de interface com o usuário O nó servidor contém todo o resto: programas de processamento de dados Distribuíção de camadas e componentes A distribuíção das camadas, bem como seus componentes, pelos nós físicos pode variar bastante Da perspectiva do gerenciamento de sistemas podemos ter Clientes gordos – fat clients Clientes magros – thin client Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 17 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Arquiteturas Centralizadas::Arquiteturas Multidivididas Generalização da distribuição Figura: Aplicação Cliente/Servidor no modelo MVC. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 18 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Até agora . . . Aquiteturas cliente/servidor multidivididas Consequéncia da divisão de responsabilidades de uma aplicação entre o cliente e o servidor. Componentes logicamente diferentes em máquinas diferentes. Distribuição Vertical Distribuição Horizontal Cliente e/ou servidor podem ser divididos em partes logicamente equivalentes. Cada um operando em seu domínio ou atuando sobre uma porção de dados. Sistemas peer-to-peer – P2P Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 19 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Até agora . . . Aquiteturas cliente/servidor multidivididas Consequéncia da divisão de responsabilidades de uma aplicação entre o cliente e o servidor. Componentes logicamente diferentes em máquinas diferentes. Distribuição Vertical Distribuição Horizontal Cliente e/ou servidor podem ser divididos em partes logicamente equivalentes. Cada um operando em seu domínio ou atuando sobre uma porção de dados. Sistemas peer-to-peer – P2P Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 19 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Até agora . . . Aquiteturas cliente/servidor multidivididas Consequéncia da divisão de responsabilidades de uma aplicação entre o cliente e o servidor. Componentes logicamente diferentes em máquinas diferentes. Distribuição Vertical Distribuição Horizontal Cliente e/ou servidor podem ser divididos em partes logicamente equivalentes. Cada um operando em seu domínio ou atuando sobre uma porção de dados. Sistemas peer-to-peer – P2P Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 19 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Até agora . . . Aquiteturas cliente/servidor multidivididas Consequéncia da divisão de responsabilidades de uma aplicação entre o cliente e o servidor. Componentes logicamente diferentes em máquinas diferentes. Distribuição Vertical Distribuição Horizontal Cliente e/ou servidor podem ser divididos em partes logicamente equivalentes. Cada um operando em seu domínio ou atuando sobre uma porção de dados. Sistemas peer-to-peer – P2P Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 19 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Sistemas Peer-to-Peer Olhando de cima . . . Dentro de um sistema P2P, todos os processos são equivalentes. Cada processo atua tanto como cliente quanto como servidor. Comportamento Simétrico Redes de Sobreposição O conjunto de nós de uma arquitetura P2P são organizados em uma rede de sobreposição – rede overlay . Na rede overlay, os nós são formados pelos processos e os enlaces são representados pelos possíveis canais de comunicação. Tipos de Sistemas P2P Estruturados Não estruturados Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 20 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Exemplo de arquitetura P2P Figura: Rede P2P. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 21 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Peer-to-Peer Estruturadas Rede de sobreposição construída de forma determinística Usa procedimentos determinísticos na sua construção Implementação Tabela de Hash distribuída (Distributed Hash Table – DHT) Dados e nós recebem uma chave aleatória – Identificador Como implementar um esquema eficiente e determinístico que mapeie a chave de um dado para o identificador de um nó? Exemplo – Algoritmo Chord Figura: Rede P2P usando o algoritmo Chord. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 22 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Peer-to-Peer Estruturadas Algoritmo Chord Nós estão logicamente organizados em um anel. Item de dado com chave ki é mapeado para o nó com o menor identificador id ≥ ki =⇒ succ(k). Funções Mapeamento LOOKUP(k) Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 23 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Peer-to-Peer não estruturadas Algoritmo aleatório são usados para construir a rede de sobreposição Cada nó mantem uma lista de vizinhos – Visão parcial Construção parecida com um grafo aleatório Como encontrar os dados? Inundar a rede com uma busca Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 24 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Peer-to-Peer não estruturadas Algoritmo aleatório são usados para construir a rede de sobreposição Cada nó mantem uma lista de vizinhos – Visão parcial Construção parecida com um grafo aleatório Como encontrar os dados? Inundar a rede com uma busca Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 24 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Peer-to-Peer não estruturadas Gerenciamento de associação ao grupo Grafo aleatório Cada nó possui n vizinhos → visão parcial Nós trocam entradas regularmente de sua visão parcial Principal objetivo: atualizar saídas de nós, construir uma nova vizinhança de forma dinámica para alcançar uma característica em específico Nós trocam as listas de vizinhos em dois modos diferentes: pull (puxar) ou push (empurrar) A saída de um nó se torna simplificada Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 25 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Superpares (Superpeers) O problema da escalabilidade Gerenciamento Busca de dados Propagação de mensagensSuperpares Nós que mantém o índice de dados ou que agem como nós intermediários que possuem dados para disponibilizar os recursos a nós vizinhos Sempre que um nó comum se junta a rede,se liga a um dos superpares Problema: seleção do líder Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 26 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Exemplo de Superpares Figura: Rede P2P com superpares.Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 27 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Arquiteturas Híbridas Caracterização Combinação da arquitetura cliente/servidor e arquiteturas descentralizadas Sistemas de Servidor de Borda Servidores são disponibilizados na “borda” da rede. A “borda” representa a fronteira entre domínios da Internet e entre a Internet e redes corporativas. Exemplo: Internet Service Provider – ISP Sistemas Distribuídos Colaborativos Objetivo: iniciar a troca de informações. Após adição do nó na rede, a distribuição dos dados é feita de forma descentralizada – BitTorrent Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 28 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Autogerenciamento Requisitos de um SD Tratar adequadamente aspectos indesejáveis inerentes à rede Suportar o maior número possível de aplicações Transparéncia de distribuíção Middleware Camada intemediária (middle) responsável por abstrair complexidades inerentes à infraestrutura. O middleware prover abstrações de serviços do sistema operacional. Pode prover funcionalidades de adaptação para aplicações distribuídas. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 29 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Autogerenciamento Requisitos de um SD Tratar adequadamente aspectos indesejáveis inerentes à rede Suportar o maior número possível de aplicações Transparéncia de distribuíção Middleware Camada intemediária (middle) responsável por abstrair complexidades inerentes à infraestrutura. O middleware prover abstrações de serviços do sistema operacional. Pode prover funcionalidades de adaptação para aplicações distribuídas. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 29 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Autogerenciamento Adaptação automática Forte intercâmbio entre arquitetura de sitemas e arquitetura de software. Tanto componentes de software quanto recursos do sistema podem ser reconfigurados. Computação Autonómica Requisitos Componentes de um SD precisam ser monitorados e ajustados Desenvolver mecanismos de adaptação do sistema Onde e quando executar a adaptação Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 30 / 31 Introdução Estilos Arquitetónicos Arquitetura de Sistemas Autogerenciamento Autogerenciamento Funções básicas Monitoramento e controle Modelo de realimentação Figura: Modelo de realimentação de controle. Tércio de Morais Sistemas Distribuídos Arquiteturas em Sistemas Distribuídos 31 / 31 Introdução Estudo de Caso – Aracity Hardware Estilos Arquitetónicos Arquitetura em Camadas Arquitetura Baseada em Objetos Arquitetura Baseada em Eventos Arquitetura Baseada em Espaços Compartilhados de Dados Arquitetura de Sistemas Arquiteturas Centralizadas Arquitetura Descentralizadas Arquiteturas Híbridas Autogerenciamento
Compartilhar