sistemas distribuídos - instituto de computação - uffsimone/sd/contaulas/aula1.pdf · em um sd...

43
SISTEMAS DISTRIBUÍDOS CARACTERÍSTICAS Slides cedidos pela Professora Aline Nascimento

Upload: others

Post on 11-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

SISTEMAS DISTRIBUÍDOSCARACTERÍSTICAS

Slides cedidos pela Professora Aline Nascimento

Page 2: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

INTRODUÇÃO

As melhorias que ocorreram na tecnologia de computadores nos últimos 50 anos é muito grande, sem precedentes em outros setores

Rapidamente passamos de máquinas que custavam 100 milhões de dólares e executavam 1 instrução por segundo, para máquinas que custam 1000 dólares e são capazes de executar 10 milhões de instruções por segundo

Hoje em dia o computador mais rápido do mundo é o Tianhe-2. Sua capacidade foi medida em 33.86 petaflop/s

Comparando com o avanço na área automobilística, um RollsRoyce deveria custar 1 dólar!

Page 3: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

INTRODUÇÃO

Dois importantes avanços na tecnologia de computadores

surgiram na década de 80

Desenvolvimento de microprocessadores poderosos

Invenção de redes de interconexão de alta velocidade

Assim, foi possível montar sistemas de computadores

compostos por grandes quantidades de componentes

conectados por uma rede de alta velocidade.

Page 4: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

DEFINIÇÃO

Um sistema distribuído é uma coleção de computadores independentes que é visto pelo

usuário como um sistema único

Cada computador funciona independentemente de fazer parte ou

não do SD conjunto de componentes autônomos

O usuário não tem ciência que há diversos computadores, nem

onde estes estão localizados ideia de sistema único

Os componentes autônomos do sistema precisam colaborar

Page 5: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

COMPUTAÇÃO DISTRIBUÍDA

A computação distribuída envolve o projeto, implementação

e avaliação de algoritmos que executam em processadores

distintos, interconectados por meio de canais de

comunicação

Cenários de SDs: telecomunicações, serviços Web,

computação científica, controle de processos de tempo real,

“cidades inteligentes", etc.

Page 6: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PRINCIPAIS CARACTERÍSTICAS

A diferença entre os componentes e o modo como estes se

conectam estão em grande parte ocultas ao usuário

Os usuários e programas podem interagir com o SD de

maneira uniforme e consistente independentemente de onde

a interação ocorra

Desde poderosos computadores até nós de sensores podem

compor um SD

Os sistemas distribuídos devem ser fáceis de expandir e

escalar

Page 7: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PRINCIPAIS CARACTERÍSTICAS

Usuários não devem notar quando partes do sistema estão

sendo trocadas, adicionadas ou reparadas

A ideia é que o SD esteja continuamente disponível, ainda que

algumas de suas partes estejam desligadas.

Para suportar componentes e interconexões heterogêneas e

fornecer a visão de um sistema único, os SDs costumam ser

organizados por meio de uma camada de software chamada

de middleware

Page 8: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

SISTEMA DISTRIBUÍDO

Uma camada de SW é logicamente colocada entre o

usuário/aplicação e o sistema operacional → Middleware

Page 9: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

EXEMPLOS

Sistema que suporta um processamento automático de pedidos

Os usuários do departamento de vendas podem estar distribuídos por todo país

Pedidos são feitos de notebooks ou celulares conectados através da rede

Os pedidos chegam, são processados e enviados automaticamente para algum setor disponível

Usuários não sabem por onde os pedidos navegam pelo sistema

Para os usuários, o sistema parece que opera com um único banco de dados centralizado

Page 10: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

EXEMPLOS

Internet

A internet oferece um modelo uniforme e consistente de documentos distribuídos

Para ver um documento, o usuário necessita apenas ativar a referência

Não há necessidade de saber de qual servidor vem o documento

Publicar um documento é simples, basta que ele tenha um nome único

Neste caso, a Internet pode ser vista pelo usuário como um enorme sistema centralizado de documentos

Page 11: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Conectar usuários e recursos

Transparência

Abertura

Escalabilidade

Um SD deve oferecer fácil acesso aos recursos; deve ocultar razoavelmente bem o fato que os recursos são distribuídos; deve ser aberto e deve poder ser expandido.

Page 12: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Conectar usuários e recursos

Permitir que recursos remotos sejam facilmente acessados e compartilhados com outros usuários de maneira controlada

Impressoras, computadores, dados, arquivos, redes, páginas web, etc

Uma razão óbvia para o compartilhamento de recursos é a economia

Conectar usuários torna mais fácil a colaboração e troca de informações entre eles

A medida que o compartilhamento e a conectividade aumenta a segurança se torna mais importante

Page 13: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Alguns problemas de segurança:

Compra com cartão de crédito não se comprova que o

comprador é mesmo o dono do cartão, basta conhecer os

números

Rastreamento de comunicações para montar um perfil de

preferências de um usuário violação explícita de privacidade

Malas direta sem permissão

Page 14: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Transparência

Uma meta importante de um SD é esconder de usuários e aplicações que os recursos estão fisicamente distribuídos através de várias plataformas

Um SD que é capaz de se apresentar como um único sistema de computador é denominado transparente

Existem diferentes tipos de transparência em Sistemas Distribuídos

Porém, uma questão mais importante é definir se a transparência é sempre requerida. Isto é, se sempre vale a pena “pagar” por esta característica.

Page 15: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Transparência Descrição

Acesso Oculta diferenças na representação de dados e no modo de acesso a um recurso

Localização Oculta o lugar onde o recurso está localizado

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

Realocação Oculta que um recurso pode ser movido para outra localização enquanto ele está sendo usado

Replicação Oculta que um recurso é replicado

Concorrência Oculta que um recurso pode ser compartilhado por diversos usuários

Falhas Oculta a falha e a recuperação de um recurso

Page 16: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TRANSPARÊNCIA DE ACESSO

Um SD pode ter sistemas de computação que executam

diferentes sistemas operacionais e possuem máquinas com

diferentes tipos de arquiteturas

Deve existir um acordo sobre como os dados devem ser

representados por máquinas e SOs diferentes

Por exemplo, cada sistema operacional pode possuir suas

próprias convenções para nomeação de arquivos

Diferenças entre nomeação e o modo como os arquivos devem

ser manipulados devem ser ocultos aos usuários

Page 17: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TRANSPARÊNCIA DE LOCALIZAÇÃO

A nomeação em sistemas distribuídos desempenha papel

importante para se conseguir transparência de localização.

Assim, pode-se atribuir nomes lógicos aos recursos.

Os nomes lógicos não indicam a localização de um recurso

Exemplo: www.prenhall.com/index.html

A URL não dá nenhuma pista sobre a localização do servidor

WEB da Prentice Hall

Page 18: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TRANSPARÊNCIA DE MIGRAÇÃO

Acontece quando um recurso é migrado em tempo de

execução e o usuário não percebe esta mudança.

Exemplo: Uso móvel de Laptop, cujos usuários podem

continuar a usá-lo quando vão de um lugar para outro, sem

nem ao menos se desconectarem temporariamente.

Page 19: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TRANSPARÊNCIA DE REALOCAÇÃO

Esta transparência ocorre, quando os recursos podem ser

movimentados sem afetar o modo como eles podem ser

acessados.

Exemplo: www.prenhall.com/index.html

Não é possível determinar se o recurso index.html sempre

esteve na mesma localização ou se foi movido recentemente.

Page 20: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TRANSPARÊNCIA DE REPLICAÇÃO

A replicação é importante para aumentar a disponibilidade

ou aumentar o desempenho do sistema.

Para ocultar a replicação, é necessário que todas as réplicas

tenham o mesmo nome

Normalmente um SD que oferece transparência de

replicação também oferece transparência de localização,

pois caso contrário seria impossível se referir às réplicas em

diferentes localizações.

Page 21: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TRANSPARÊNCIA DE CONCORRÊNCIA

Uma das metas de um SD é fornecer compartilhamento de

recursos

Na transparência de concorrência deve se considerar que o

acesso concorrente a um recurso deve deixá-lo em estado

consistente

Para isso, deve se usar mecanismos que dão a cada

usuário, um por vez, acesso exclusivo ao recurso desejado

Page 22: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TRANSPARÊNCIA DE FALHA

O usuário não deve perceber que um recurso deixou de

funcionar bem, ou que o sistema está se recuperando de

uma falha.

É difícil de se implementar

O sistema é incapaz de distinguir entre um recurso morto ou

insuportavelmente lento

Page 23: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

GRAU DE TRANSPARÊNCIA

Um sistema distribuído totalmente transparente é desejável?

A transparência total é uma boa meta de projeto, mas deve

ser considerada com outras questões como:

Desempenho do sistema

Facilidade de compreensão

Quando o usuário conhece as limitações do sistema,

decorrentes do mesmo ser distribuído, ele possuirá maior

compreensão para entender o comportamento inesperado

de um SD

Page 24: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

EXEMPLOS

Situações em que tentar ocultar completamente os aspectos

da distribuição para os usuário não é uma boa ideia.

Em um SD de longa distância que conecta processos em São

Francisco a Amsterdã, por exemplo, não é possível enviar

mensagens em menos de 35 ms.

Dependendo da rede pode demorar centenas de milissegundos.

Além de considerar a velocidade de transmissão que é limitada

pela velocidade da luz, existe a capacidade de processamento

dos componentes intermediários.

Page 25: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

EXEMPLOS

Situações em que tentar ocultar completamente os aspectos

da distribuição para os usuário não é uma boa ideia.

Garantir que várias réplicas intercontinentais sejam consistentes

o tempo todo.

Uma única operação de atualização pode demorar alguns

segundos

Algo que não pode ser escondido do usuário

Page 26: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

EXEMPLOS

Situações em que tentar ocultar completamente os aspectos

da distribuição para os usuário não é uma boa ideia.

Crescimento do uso de dispositivos móveis tornam a noção de

localização e contexto cada vez mais importante.

Pra uma secretária é melhor enviar o trabalho para a impressora

ocupada mais próxima, ou desocupada em um país diferente?

Page 27: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Abertura

Sistemas abertos se caracterizam pelo fato de terem suas interfaces especificadas e publicadas

Um sistema aberto oferece serviços de acordo com regras padronizadas que descrevem a sintaxe e semântica destes serviços

Em redes de computadores as regras são formalizadas através de protocolos

Page 28: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Abertura

Os serviços são especificados por meio de interfaces

Uso da IDL (Interface Definition Language)

Sintaxe especifica com precisão os nomes das funções

que estão disponíveis, tipos dos parâmetros, valores de

retorno, e possíveis exceções que podem surgir.

Semântica feita normalmente em linguagem natural.

Page 29: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Abertura

Especificações devem ser completas e neutras.

Completa indica que tudo que é necessário para uma

implementação, foi especificado.

Neutras refere-se ao fato de que as especificações não

indicam como deve ser a aparência da implementação.

Completude e neutralidade são importantes para

interoperabilidade e portabilidade

Page 30: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Interoperabilidade: até que ponto 2 implementações de

fornecedores diferentes podem coexistir e trabalhar em

conjunto com base na mera confiança mútua.

Portabilidade: até que ponto uma aplicação

desenvolvida para o SD A, pode ser executada sem

modificações em um SD B, que implementa as mesmas

interfaces de A.

Page 31: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Para conseguir flexibilidade em um sistema distribuído

aberto, é importante que ele seja organizado como um

conjunto de componentes relativamente pequenos e de fácil

substituição ou adaptação

Devem ser definidas não somente interfaces de nível mais

alto, mas também definições de interface das partes internas

do sistema e como elas interagem

Page 32: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

OBJETIVOS

Escalabilidade

Capacidade de aumentar e manter o desempenho satisfatório

Pode ser medida através de 3 dimensões:

Tamanho: adicionar mais usuários ou recursos

Geografia: usuários e recursos podem estar separados por grandes

distâncias

Administração: fácil de gerenciar mesmo que tenha várias

organizações administrativas diferentes

Page 33: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PROBLEMAS DE ESCALABILIDADE - TAMANHO

Serviços, dados ou algoritmos centralizados podem ser um

gargalo quando o número de usuários aumenta

Page 34: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PROBLEMAS DE ESCALABILIDADE - TAMANHO

O servidor normalmente se transforma no gargalo à medida

que o número de usuários e aplicações cresce.

Mesmo que tenhamos capacidade de armazenamento e

processamento ilimitados a comunicação com o servidor

acaba impedindo o crescimento.

As vezes é inevitável oferecer um serviço centralizado:

Considere um sistema com informações médicas confidenciais ou de contas de banco.

Por questões de segurança é mais fácil gerenciar o serviço em um único servidor.

Page 35: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PROBLEMAS DE ESCALABILIDADE - TAMANHO

Algoritmos Centralizados sobrecarregam o sistema além de

criarem um único ponto de falha.

Devem ser usados algoritmos descentralizados

Nenhuma máquina tem informações completas sobre o estado do sistema.

As máquinas tomam decisões tendo como base somente informações locais.

A falha de uma máquina não arruína o algoritmo.

Não há nenhuma premissa implícita quanto à existência de um relógio global

Page 36: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PROBLEMAS DE ESCALABILIDADE - GEOGRÁFICA

Impossível prover comunicação síncrona para grandes

distâncias.

Comunicação em redes de longa distância não é confiável e

quase sempre é ponto a ponto.

Soluções centralizadas atrapalham a escalabilidade de

tamanho.

Imagine um único servidor de correios utilizado em um país inteiro.

Ao enviar um email ao seu vizinho, ele primeiro viajaria até o servidor central com certeza não é o melhor caminho

Page 37: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PROBLEMAS DE ESCALABILIDADE - ADMINISTRATIVA

Um problema importante é resolver políticas conflitantes em

relação a utilização/pagamento de recursos, gerenciamento

e segurança

Quando um SD se expande pra um outro domínio, é preciso

tomar medidas de segurança:

O SD tem que se proteger contra ataques maliciosos do novo

domínio e vice-versa

O problema é como impor as limitações de segurança

Page 38: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TÉCNICAS DE ESCALABILIDADE

Como tentar resolver os problemas de escalabilidade de

maneira geral?

Os problemas de escalabilidade normalmente aparecem

como problemas de desempenho causados por capacidade

limitada de servidores e rede

Existem basicamente três técnicas para ampliar sistemas:

Ocultar latências de comunicação

Distribuição

Replicação

Page 39: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TÉCNICAS DE ESCALABILIDADE

Uma maneira importante de lidar com a escalabilidade

geográfica é ocultar latências de comunicação.

Tipicamente SD baseados em redes locais utilizam

comunicação síncrona Em um sistema de larga escala e

longas distâncias isto seria impraticável

A ideia é simples: utilizar comunicação assíncrona e tentar

evitar esperar por respostas a requisições remotas.

Page 40: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TÉCNICAS DE ESCALABILIDADE

Ocultar latência de Comunicação

Page 41: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TÉCNICAS DE ESCALABILIDADE

Distribuição: envolve subdividir um componente em partes

menores, e espalhar esses componentes pelo sistema.

Page 42: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

TÉCNICAS DE ESCALABILIDADE

Replicação

Replicar componentes em um SD aumenta a disponibilidade e

ajuda a equilibrar a carga entre os componentes

aumentando o desempenho

Por exemplo, em um SD de longa distância, uma cópia por

perto pode diminuir bastante os problemas de latência

Replicação e Utilização de cache geram um outro problema: a

consistência dos dados

Page 43: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula1.pdf · Em um SD de longa distância que conecta processos em São Francisco a Amsterdã, por exemplo,

PRINCIPAIS CILADAS

Premissas falsas adotadas ao desenvolver uma aplicação

distribuída pela primeira vez

1. A rede é confiável

2. A rede é segura

3. A rede é homogênea

4. A topologia não muda

5. A latência é zero

6. A largura da banda é infinita

7. O custo de transporte é zero

8. Há apenas um administrador