Escolar Documentos
Profissional Documentos
Cultura Documentos
Leandro Villas
Programa da Disciplina
Fundamentos de Sistemas Distribuídos
Definição
Metas Aula anterior
Tipos de sistemas distribuídos
Arquiteturas Aula de hoje
Leandro Villas
Aula de Hoje
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
Leandro Villas
Estilos Arquitetônicos
• É formulado em termos de componentes
Leandro Villas
Estilos Arquitetônicos
• A questão importante sobre um componente
para SDs é que ele pode ser substituído
Leandro Villas
Estilos Arquitetônicos
• 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
Fluxo de requisição
Fluxo de resposta
permissão de chamar componentes na
camada subjacente Ni-1
Uma observação fundamental é que, em Camada 2
Arquitetura de Sistemas
• Centralizadas
• Distribuídas
• Híbridas
Leandro Villas
Arquitetura de Sistema
• 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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
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
Nível de dados
Leandro Villas
Arquiteturas Centralizadas
• 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
Leandro Villas
Arquiteturas Centralizadas
Leandro Villas
Arquiteturas Centralizadas
• 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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
• 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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
• 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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
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
Leandro Villas
Arquiteturas Centralizadas
Arquitetura de três divisões em termos físicos
Um servidor às vezes pode precisar agir como um cliente
Leandro Villas
Arquiteturas Descentralizadas
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!!!!
Leandro Villas
Arquiteturas Descentralizadas
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
Leandro Villas
Arquiteturas Peer-to-Peer não Estruturadas
• 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)
Leandro Villas
Arquiteturas Peer-to-Peer Superpares
• 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
Leandro Villas
Arquiteturas Peer-to-Peer Superpares
Leandro Villas
Arquiteturas Híbridas
• 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
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
Próxima Aula
Processos
• Threads
• Processos Clientes
• Processos Servidores
Leandro Villas