Buscar

Fundamentos de Sistemas Distribuídos III

Prévia do material em texto

Leandro Villas 
MC714 - Sistemas Distribuídos 
Leandro Villas 
Fundamentos de Sistemas Distribuídos 
Definição 
Metas 
Tipos de sistemas distribuídos 
Arquiteturas 
Comunicação entre processos 
Sistemas de arquivos 
Serviços de nomes 
Coordenação 
Replicação 
Segurança 
Programa da Disciplina 
Aula anterior 
Aula de hoje 
Leandro Villas 
• SDs são complexas peças de software 
 
• Componentes estão espalhados por diversas 
máquinas 
Um componente é uma unidade modular com interfaces bem definidas que é 
substituível dentro do seu ambiente 
 
• Sistemas devem ser organizados adequadamente! 
• Organização lógica do conjunto de componentes 
• Organização física 
Para que definir um arquitetura? 
Leandro Villas 
Estilos Arquitetônicos 
• Arquiteturas em Camadas 
• Arquiteturas baseadas em objetos 
• Arquiteturas centradas em dados 
• Arquiteturas baseadas em eventos 
 
Arquitetura de Sistemas 
• Centralizadas 
• Distribuídas 
• Híbridas 
Aula de Hoje 
Leandro Villas 
• É formulado em termos de componentes 
 
• Modo como os componentes estão conectados 
uns aos outros 
 
• Dados trocados entre componentes 
 
• Maneira como os componentes são configurados 
em conjunto para formar um sistema 
Estilos Arquitetônicos 
Leandro Villas 
• A questão importante sobre um componente 
para SDs é que ele pode ser substituído 
 
• Um conceito um pouco mais difícil de entender é 
o de um conector 
• Um mecanismo que serve de mediador de 
comunicação ou da cooperação entre componentes 
• Ex: um conector pode ser formado pelas facilidades 
para chamadas de procedimento remotas, passagem 
de mensagens ou fluxo de dados 
 
Estilos Arquitetônicos 
Leandro Villas 
• Usando componentes e conectores, podemos 
chegar a várias configuraçõesque, por sua vez, 
foram classificadas em estilos arquitetônicos 
• Os mais importantes para SDs são: 
 Arquiteturas em Camadas 
 Arquiteturas baseadas em objetos 
 Arquiteturas centradas em dados 
 Arquiteturas baseadas em eventos 
Estilos Arquitetônicos 
Leandro Villas 
Ideia Básica 
Os componentes são organizados em 
camada 
 
Um componente na camada Ni tem 
permissão de chamar componentes na 
camada subjacente Ni-1 
 
Uma observação fundamental é que, em 
geral, o controle flui de camada para 
camada 
• Requisições descem pela a hierarquia 
• Resultados fluem para cima 
 
Arquiteturas em Camadas 
Estilo arquitetônico 
baseado em camadas 
 Camada N 
Camada N-1 
 Camada 2 
 Camada 1 
F
lu
x
o
 d
e
 r
e
q
u
is
iç
ã
o
 
F
lu
x
o
 d
e
 r
e
s
p
o
s
ta
 
Leandro Villas 
Estilo arquitetônico baseado em objetos 
Ideia Básica 
Cada objeto corresponde ao que definimos como componente, 
e esses componentes são conectados por meio de chamada de 
procedimento (remota) 
Arquiteturas baseadas em objetos 
• Um organização bem mais solta 
• Se ajusta à arquitetura de sistema 
cliente-servidor 
• Amplamente utilizada para sistemas 
de software de grande porte 
 
Leandro Villas 
Estilo arquitetônico de espaço de dados compartilhado 
Ideia Básica 
Processos se comunicam por meio de um repositório comum 
 
Sistemas distribuídos baseados na Web, em grande parte, 
são centrados em dados 
• Processos se comunicam por meio da utilização de serviços de 
dados baseados na Web 
Arquiteturas centradas em dados 
Leandro Villas 
Estilo arquitetônico baseado em eventos 
Ideia Básica 
Processos demonstram o interesse por um evento ou 
conjunto de eventos e esperam pela notificação de qualquer 
um desses eventos, gerados por um processo notificador 
Arquiteturas baseadas em eventos 
Processos fracamente acoplados 
• Em princípio, os processos não 
precisam se referir explicitamente 
uns aos outros 
Leandro Villas 
Estilos Arquitetônicos 
• Arquiteturas em Camadas 
• Arquiteturas baseadas em objetos 
• Arquiteturas centradas em dados 
• Arquiteturas baseadas em eventos 
 
Arquitetura de Sistemas 
• Centralizadas 
• Distribuídas 
• Híbridas 
Aula de Hoje 
Leandro Villas 
• Decisões a respeito de componentes de software, 
sua interação e sua colocação em máquinas reais 
 
• Três tipos: 
 Centralizadas 
 Descentralizadas 
 Híbridas 
Arquitetura de Sistema 
Leandro Villas 
Modelo Cliente-Servidor 
Servidor: processo que implementa um serviço específico 
Exempo: um serviço sistema de arquivo ou serviço de banco de dados 
 
Cliente: processo que requisita um serviço ao servidor 
 
Comportamento de requisição-resposta 
Arquiteturas Centralizadas 
Leandro Villas 
Protocolo sem conexão 
 
 Protocolo simples, que funciona bem em redes locais 
 
 Cliente empacota uma mensagem para o servidor, 
identificando o serviço que quer, junto com os dados 
de entrada necessários 
 
 Eficiente se NÃO ocorrem problemas 
Exemplo: Falhas → Transferência bancarias 
 
 Operações podem ser repetidas sem causar danos: 
idempotentes 
Exemplo: Consulta de saldo 
Arquiteturas Centralizadas 
Leandro Villas 
Protocolo orientado a conexão 
 
 Funciona bem em sistemas de longa distância, nos 
quais a comunicação é inerentemente não confiável 
Maioria dos protocolos de aplicação da Internet são baseados em 
conexão TCP/IP 
 
 Sempre que um cliente requisita um serviço, primeiro 
se estabelece conexão com o servidor e depois se 
envia a requisição 
 
 Estabelecer e encerrar uma conexão custa 
relativamente caro, em especial quando as 
mensagens de requisição e resposta forem pequenas 
 
Arquiteturas Centralizadas 
Leandro Villas 
Como distinguir entre cliente e servidor? 
 Exemplo: Servidor de banco de dados distribuído 
pode agir continuamente como um cliente porque 
está repassando requisições a servidores de arquivos 
 
 
Considerando que muitas aplicações cliente-
servidor visam a dar suporte ao acesso de usuários 
a banco de dados: 
 Nível de interface de usuário 
 Nível de processamento 
 Nível de dados 
 
 
Arquiteturas Centralizadas 
Leandro Villas 
• Nível de interface de usuário 
 Consiste em programas que permitam aos usuários 
finais interagir com aplicações 
• Nível de processamento 
 Normalmente contem as aplicações 
• Nível de dados 
 Consiste em um sistema de arquivos 
 Mais comum utilizar um banco de dados 
 Normalmente implementado no lado servidor 
 Mantem os dados consistentes 
Arquiteturas Centralizadas 
Leandro Villas 
Arquiteturas Centralizadas 
Leandro Villas 
• A organização mais simples é ter só dois tipos de 
maquinas: 
1. Uma máquina cliente que contém apenas os 
programas que implementam o nível de interface do 
usuário 
2. Uma máquina servidor que contém o resto, ou seja, 
os programas que implementam o nível de 
processamento e de dados 
 
Nessa organização tudo é manipulado pelo servidor 
Cliente nada mais é que um terminal “burro”, 
possivelmente com uma interface gráfica bonitinha 
Arquiteturas Centralizadas 
Leandro Villas 
Três Níveis lógicos → várias possibilidades para a 
distribuição física de uma aplicação cliente-servidor 
por várias máquinas 
Arquiteturas Centralizadas 
Leandro Villas 
• Ter na máquina cliente só a parte de 
interface de usuário 
• Parte da interface é dependente de 
terminal 
• Aplicações controlam remotamente a 
apresentação dos dados 
Arquiteturas Centralizadas 
Leandro Villas 
Três Níveis lógicos → várias possibilidades para a 
distribuição física de uma aplicação cliente-servidor 
por várias máquinas 
Arquiteturas Centralizadas 
Leandro Villas• Todo o software de interface de usuário 
no lado cliente 
• Nesse modelo, o software cliente não faz 
nenhum processamento exceto o 
necessário para apresentar a interface da 
aplicação 
Arquiteturas Centralizadas 
Leandro Villas 
Três Níveis lógicos → várias possibilidades para a 
distribuição física de uma aplicação cliente-servidor 
por várias máquinas 
Arquiteturas Centralizadas 
Leandro Villas 
Parte da aplicação no lado cliente 
Exemplos 
• Formulário que precise ser completamente 
preenchido antes do processamento. Cliente 
pode verificar a correção e consistência 
• Se necessário interagir com o usuário 
• Editor de texto com funções básicas no lado 
cliente e ferramentas avançadas de suporte, 
como verificação de ortografia e gramática, 
são executadas no servidor 
Arquiteturas Centralizadas 
Leandro Villas 
Três Níveis lógicos → várias possibilidades para a 
distribuição física de uma aplicação cliente-servidor 
por várias máquinas 
Arquiteturas Centralizadas 
Leandro Villas 
Aplicação é executada no cliente, mas todas 
as operações com arquivos ou entrada em 
banco de dados vão para o servidor 
 
Exemplo: 
Muitas aplicações bancárias executam na 
máquina de um usuário final na qual este 
prepara transações 
Uma vez concluída, a aplicação contata o banco 
de dados no servidor do banco e carrega as 
transações para processamento ulterior 
 
Arquiteturas Centralizadas 
Leandro Villas 
Três Níveis lógicos → várias possibilidades para a 
distribuição física de uma aplicação cliente-servidor 
por várias máquinas 
Arquiteturas Centralizadas 
Leandro Villas 
Disco local do cliente contém parte dos 
dados 
 
Exemplo: 
Ao consultar a Web com seu browser, um 
cliente pode construir gradativamente uma 
enorme cache em disco local com as 
páginas Web mais recentemente 
consultadas 
Arquiteturas Centralizadas 
Leandro Villas 
Arquitetura de três divisões em termos físicos 
 Um servidor às vezes pode precisar agir como um cliente 
 
Arquiteturas Centralizadas 
Leandro Villas 
Clientes e servidores são fisicamente subdivididos 
em partes logicamente equivalentes, mas cada parte 
está operando em sua própria porção do conjunto 
completo de dados 
 equilibra a carga!!!! 
 
Interação entre os processos é simétrica 
 Cada processo agirá como um cliente e um servidor ao 
mesmo tempo 
Arquiteturas Descentralizadas 
Leandro Villas 
Peer-to-Peer 
• Formado por um conjunto de nós, organizados em 
um overlay ou rede de sobreposição 
 
 Overlay: rede na qual os nós são os processos e os 
enlaces representam os canais de comunicação 
possíveis 
 
• Comunicação não pode ser feita diretamente 
 
• Arquiteturas estruturadas ou não-estruturadas 
Arquiteturas Descentralizadas 
Leandro Villas 
• Rede de sobreposição é construída com a 
utilização de um procedimento determinístico 
 
• Tabela de hash distribuída 
 
• Dados e nós recebem uma chave aleatória 
 
• Ao consultar um determinado item de dado, o 
endereço de rede do nó com o conteúdo é 
retornado 
 
• Requisição é roteada entre os nós até que o nó 
com o dado requisitado seja alcançado 
Arquiteturas Peer-to-Peer Estruturadas 
Leandro Villas 
• Algoritmos aleatório são usados para construir a 
rede de sobreposição 
 
• Cada nó mantem uma lista de vizinhos (visão parcial) 
 
• Dados também são espalhados aleatoriamente 
 
• Como encontrar os dados? 
 Inundar a rede com uma busca 
 
• Importante atualizar a lista de vizinhos 
 Mas como? 
Arquiteturas Peer-to-Peer não Estruturadas 
Leandro Villas 
• Gerenciamento de associação ao grupo 
 Grafo aleatório 
 
 Cada no 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 especifico 
 
 Nós trocam as listas de vizinhos em dois modos 
diferentes: pull (puxar) ou push (empurrar) 
Arquiteturas Peer-to-Peer não Estruturadas 
Leandro Villas 
• A medida que a rede cresce, localizar itens de 
dados em sistemas P2P não estruturados pode ser 
problemático 
 
• Nós que mantem 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 
Arquiteturas Peer-to-Peer Superpares 
Leandro Villas 
 
Arquiteturas Peer-to-Peer Superpares 
Leandro Villas 
• Sistemas distribuídos nas quais soluções cliente-
servidor são combinadas com arquiteturas 
descentralizadas 
 
 
• Exemplo: Sistemas distribuídos colaborativos 
 Principal objetivo é iniciar a troca de informações 
 Apos adição do nó na rede, a distribuição dos dados é 
feita de forma descentralizada 
 BitTorrent 
Arquiteturas Híbridas 
Leandro Villas 
Arquiteturas Híbridas 
Transfere porções do arquivo de outros usuários até 
que as porções transferidas possam ser montadas 
em conjunto, resultando no arquivo completo 
Leandro Villas 
Teste 02 
Leandro Villas 
Processos 
• Threads 
• Processos Clientes 
• Processos Servidores 
Próxima Aula

Continue navegando