Sistemas Distribuídos Prof. Eriko Werbet [email protected].

19
Sistemas Distribuídos Prof. Eriko Werbet [email protected]

Transcript of Sistemas Distribuídos Prof. Eriko Werbet [email protected].

Page 1: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos

Prof. Eriko [email protected]

Page 2: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Introdução aos Sistemas Distribuídos

Capítulo 1 – Aula 1

Page 3: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

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

Page 4: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

Introdução

Computadores de grande porte

(1945)Desenvolvimento de microprocessadores

(1980)Redes de

Computadores

Page 5: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

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]

Page 6: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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]

Page 7: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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

Page 8: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

Definição de Sistemas Distribuídos (4)

Um sistema distribuído organizado como middleware.

Observe que a camada de middleware se estende por múltiplos computadores.

1.1

Page 9: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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.

Page 10: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

Objetivos de um Sistema Distribuído

Conectar usuários e recursos• Recursos podem ser qualquer coisa

• Necessidade de aumento de segurança

• Aumento de comunicação indesejada

Transparência Flexibilidade Escalabilidade

Page 11: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

Transparência em Sistema Distribuídos

Diferentes formas de transparência em um sistema distribuído

Transparência Descrição

AcessoOculta diferenças em representação de dados e como um recurso é acessado

Localização Oculta onde um recurso está localizado

MigraçãoOculta que um recurso pode ser movido para outra localização

RelocaçãoOculta que um recurso pode estar se movendo para outra localização

Replicação Oculta que um recurso pode ser replicado

ConcorrênciaOculta que um recurso pode ser compartilhado por vários usuários concorrentes

Falha Oculta falha e recuperação de um recurso

PersistênciaOculta se um recurso (software) está em memória ou disco

Page 12: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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)

Page 13: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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

Page 14: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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

Page 15: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

Problemas de escalabilidade

Exemplos de limitações de escalabilidade.

Conceito Exemplo

Serviços centralizadosUm ú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

Tamanho do sistema distribuído

Page 16: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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

Page 17: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

Sistemas Distribuídos – Capítulo 1 – Introdução aos Sistemas Distribuídos

Técnicas para escalabilidade (1) Ocultar latência de comunicação

• Comunicação assíncrona

• Reduzir a comunicação geral

Distribuição Replicação

• Caching • Problema de consistência

Page 18: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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

Page 19: Sistemas Distribuídos Prof. Eriko Werbet eriko.werbet@gmail.com.

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