Sistemas Distribuídos
Prof. Eriko Werbet
[email protected]
Introdução aos Sistemas
Distribuídos
Capítulo 1 – Aula 1
Introdução aos Sistemas
Distribuídos

Material baseado no
livro
Distributed Systems:
Principles and Paradigms
Prentice Hall
Copyright © Andrew S.
Tanembaum, Maarten van
Steen, 2001
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Introdução
Computadores de
grande porte
(1945)
Desenvolvimento de
microprocessadores
(1980)
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Redes de
Computadores
Definição de Sistemas Distribuídos (1)

Algumas definições encontradas na literatura:
•
•
•
•
Um sistema composto por processadores que se comunicam
através de várias linhas de comunicação como barramentos de
alta velocidade ou linhas telefônicas. Cada processador possui
sua memória local particular, inacessível aos outros
processadores [Peterson 85]
Um conjunto de elementos de computação que cooperam
entre si através da troca de informações [Lages 86]
Um sistema executando em uma coleção de computadores
sem memória compartilhada, e que é percebido por seus
usuários como um único computador [Tanenbaum 92]
Um sistema no qual componentes de hardware e/ou software,
localizados em diferentes computadores conectados em rede,
se comunicam e coordenam suas ações apenas através da
troca de mensagens [Coulouris et al. 01]
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Definição de Sistemas Distribuídos (2)

Um Sistema distribuído é:
• “Uma coleção de computadores independentes
que parecem aos usuários como um único
computador” [Tanenbaum &van Steen 01]
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Definição de Sistemas Distribuídos (3)

Características chaves
• As diferenças entre os vários computadores que
•
•
•
compõem o SD e o modo como eles se
comunicam não são visíveis aos usuários
Usuários e aplicações podem interagir com o
sistema distribuído de forma consistente e
uniforme, independente de onde e como
interações acontecem
Sistema modular e escalável
Continuamente disponível
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Definição de Sistemas Distribuídos (4)
1.1
Um sistema distribuído organizado como middleware.
Observe que a camada de middleware se estende por múltiplos
computadores.
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Exemplo de Sistemas Distribuídos



Conjunto de
processadores alocados
dinamicamente
Sistema de arquivos único
Balanceamento de carga
para execução de
comandos
O sistema como um todo é visto e age como um único
sistema de tempo compartilhado clássico.
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Objetivos de um Sistema Distribuído

Conectar usuários e recursos

Transparência
Flexibilidade
Escalabilidade


• Recursos podem ser qualquer coisa
• Necessidade de aumento de segurança
• Aumento de comunicação indesejada
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Transparência em Sistema
Distribuídos
Transparência
Descrição
Acesso
Oculta diferenças em representação de dados e como
um recurso é acessado
Localização
Oculta onde um recurso está localizado
Migração
Oculta que um recurso pode ser movido para outra
localização
Relocação
Oculta que um recurso pode estar se movendo para
outra localização
Replicação
Oculta que um recurso pode ser replicado
Concorrência
Oculta que um recurso pode ser compartilhado por
vários usuários concorrentes
Falha
Oculta falha e recuperação de um recurso
Persistência
Oculta se um recurso (software) está em memória ou
disco
Diferentes formas de transparência em um sistema distribuído
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Transparência em Sistema
Distribuídos

Exemplos de transparência:
•
•


Ferramenta para “exploração” de arquivos que mantêm
as mesmas opções de navegação para pastas locais e
remotas
API para acessar dados que utiliza as mesmas
operações para dados locais e remotos
Exemplos de falta de transparência:
•
•
Sistema distribuído onde só é possível acessar arquivos
remotos via FTP
Serviço de jogos on-line que precisa ser tirado do ar para
acrescentar ou trocar um servidor
Classificação quanto à dificuldade de
implementação (hierarquia de dependência) e
nível (usuário ou programador)
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Flexibilidade

Um sistema distribuído aberto é um
sistema que oferece serviços de acordo
com regras padronizadas que descrevem
a sintaxe e semântica desses serviços
• IDL – Interface Definition Language

Um sistema aberto deve ser extensível
• Facilidade de extensão e atualização
• Adição de novos recursos e serviços
• Re-implementação de serviços existentes
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Escalabilidade

Capacidade do sistema permanecer operando de forma
efetiva mesmo diante de um aumento significativo do
número de usuários e/ou dos recursos disponíveis

Escalabilidade é um dos mais importantes objetivos de
projeto para desenvolvedores de sistemas distribuídos.

Escalabilidade
• Tamanho do sistema distribuído
• Distribuição geográfica
• Administração do sistema distribuído
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Problemas de escalabilidade

Tamanho do sistema distribuído
Conceito
Exemplo
Serviços centralizados
Um único servidor para todos os usuários
Dados centralizados
Uma única agenda telefônica on-line
Algoritmos centralizados
Realizar roteamente com base em
informações centralizadas
Exemplos de limitações de escalabilidade.
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Problemas de escalabilidade


Tamanho do sistema distribuído
Distribuição
• Escalabilidade geográfica
• Ampliar sistemas distribuídos projetados para redes
locais baseado em comunicação síncrona
• Comunicação não-confiável e ponto-a-ponto

Administração do sistema distribuído
• Domínio de Administração independente
• Conflito de políticas
• Uso de recursos
• Gerenciamento
• Segurança
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Técnicas para escalabilidade (1)

Ocultar latência de comunicação

Distribuição
Replicação

• Comunicação assíncrona
• Reduzir a comunicação geral
• Caching
• Problema de consistência
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Técnicas para escalabilidade (2)
1.4
Diferença entre permitir que:
a)
Um servidor ou
b) Um cliente verifique os formulários a medida que eles são preenchidos
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Técnicas para escalabilidade (3)
1.5
Exemplo de dividir o espaço de nomes DNS em zonas
Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos
Download

Sistemas Distribuídos