Buscar

arquitetura de SD

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando