Sistemas Distribuídos
Prof. Dr. José R. Torres Neto
2.
Estilos Arquitetônicos
2
Estilo arquitetônico
Estilo arquitetônico é determinado por:
◎ Componentes: unidade com interfaces requeridas e fornecidas bem definidas
que é substituível dentro de seu ambiente
◎ Conexões: o modo como os componentes estão ligados
◎ Dados intercambiados: forma da troca dos dados entre componentes
◎ Formas de configuração: maneiras como os componentes são configurados
3
Arquiteturas
a) Arquiteturas em camadas b) Arquiteturas baseadas em objetos
◎ Componentes/objetos conectados por
◎ Componentes interagindo uma chamada de procedimento
hierarquicamente entre remoto
camadas
4
Arquiteturas de Sistemas
Arquiteturas baseadas em eventos Arquiteturas centrada em dados
◎ Publish/Subscibe: componentes ◎ Componentes utilizam um
publicam eventos para seus repositório de compartilhamento
assinantes de dados
5
Arquiteturas centralizadas
MODELO CLIENTE-SERVIDOR
Processos são divididos em dois grupos:
o Servidor: processo que implementa um
serviço específico.
o Cliente: processo que requisita um
serviço ao servidor.
Forma de interação: requisição-resposta
6
Arquiteturas centralizadas
ARQUITETURA MODELO CLIENTE-SERVIDOR
Vantagens da arquitetura cliente-servidor:
Centralização do controle, gerenciamento
eficiente de recursos.
Desvantagens da arquitetura cliente-servidor:
Dependência do servidor, possível sobrecarga de
comunicação.
7
Arquiteturas centralizadas
ARQUITETURA DE CAMADAS DE APLICAÇÃO
Modularidade, abstração,
facilidade de desenvolvimento e manutenção.
À respeito de muitas aplicações e escalabilidade:
o Nível de interface de usuário
o Nível de processamento
o Nível de dados
8
Arquiteturas centralizadas
ARQUITETURA DE CAMADAS DE APLICAÇÃO
o Nível de interface de usuário
Tudo que é necessário para realizar a
interação do usuário com a aplicação.
9
Arquiteturas centralizadas
ARQUITETURA DE CAMADAS DE APLICAÇÃO
o Nível de processamento
Conjunto relativamente grande de
programas, cada um com capacidades de
processamento bastante simples.
10
Arquiteturas centralizadas
ARQUITETURA DE CAMADAS DE APLICAÇÃO
o Nível de dados
programas que mantêm os dados
propriamente ditos (persistentes) sobre os
quais as aplicações agem em suas operações.
11
Arquiteturas centralizadas
ARQUITETURA MULTIDIVIDIDAS
Da perspectiva de Gerenciamento de Sistema:
o Clientes gordos (fat clients)
o Clientes magros (thin clients)
Arquitetura de duas divisões (físicas):
o A máquina cliente
o A máquina servidora
12
Arquiteturas centralizadas
ARQUITETURA MULTIDIVIDIDAS
Da perspectiva de Gerenciamento de Sistema:
o Clientes gordos (fat clients)
o Clientes magros (thin clients)
Arquitetura de três divisões (físicas):
o A máquina cliente
o Servidor de aplicação
o A máquina servidora
13
Arquiteturas multidivididas
Distribuição Vertical
Aplicações divididas em uma interface de
usuário em:
o Componentes de processamento
o Nível de dados
Ø Componentes logicamente diferentes
em máquinas diferentes
Ø Funções subdivididas lógica e
fisicamente por várias máquinas
Ø Cada máquina é projetada para um
conjunto específico de funções
14
Arquiteturas descentralizadas
Distribuição Horizontal
o Cliente e Servidor são subdivididos em partes
logicamente equivalentes
o Cada parte parte opera em sua propria porção do
conjunto de dados (equilíbrio da carga)
o Papeis não são bem definidos
o Autonomia e capacidade de adaptação dos nós na
rede
Ex: Peer-to-peer (P2P)
15
Arquiteturas descentralizadas:
Peer-to-peer
o Processos são todos iguais
o Servente: cada processo age como cliente e servidor ao
mesmo tempo
o O cliente inicia a requisição
o Redes de sobreposição: rede onde os nós são formados
pelos processos e os enlaces denotam os canais de
comunicação
Ø Arquiteturas estuturadas e não estruturadas
16
Arquiteturas Peer-to-peer
Estruturada
o Rede de sobreposição é construída usando um procedimento de determinísticoformados pelos
processos
o DHT – Distributed Hash Table (tabela de hash distribuída): procedimento mais usado para
organizar processos
Ø Dados e nós recebem uma chave aleatória (id 128 ~ 160 bits)
ØDada uma chave de um dado, deve-se mapear o dado para o identificador de um nó
ØRequisição é roteada entre os nós da rede até o alcançar o nó com o dado solicitado
ØQuando um nó entra na rede, ele recebe um espaço do conjunto de índices dos arquivos.
Quando o nó sai da rede, ele libera o espaço designando os índices para outro nó.
17
Arquiteturas Peer-to-peer
Estruturada – mecanismo de Chord
o Nós organizados logicamente na topologia anel
o Cada nó possuir um identificador
18
Arquiteturas Peer-to-peer
Não-estruturada
o Algoritmos que utilizam mecanismos aleatórios para construção da sobreposição de rede
o Cada nó mantém uma lista dos nós vizinhos
o Dados armazenados aleatoriamente
o Busca por inundação (flooding): tempestade de broadcast
19
Arquiteturas Peer-to-peer
Super pares
o Nós com vida longa e de alta disponibilidade
(“gateway”)
o Desafio quando a rede cresce
o Nós diretórios
o Quando um nó se junta a rede, ele entra no
grupo de um líder
o Como eleger um líder?
20
Arquiteturas híbridas
Soluções cliente-servidor combinadas como uma arquitetura descentralizada
Centralizada + Descentralizada
Centralizada: Servidor de diretório
Descentralizada: Distribuição de
conteúdo. (Skype, Bittorrent, WhatsApp)
21