• Nenhum resultado encontrado

Sistemas Distribuídos - Cap 1_parte_1

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Distribuídos - Cap 1_parte_1"

Copied!
37
0
0

Texto

(1)

Introdução à

Sistemas

Distribuídos

Capítulo 1 – Parte 1

(2)

Definição de Sistema Distribuído (SD)

“Um sistema distribuído é uma coleção de computadores

independentes que aparenta ao usuário ser um computador

único.” [Tanenbaum]

Essa definição tem vários aspectos importantes:

• Um SD consiste em componentes;

• Usuários acham que estão tratando com um único sistema;

• Componentes autônomos precisam colaborar;

• Nenhuma premissa em relação ao tipo de computadores;

(3)

Avanços Tecnológicos

Invenção de redes de computadores de alta velocidade

(anos 70):

Rede local (Local Area Network - LAN)

Rede global (Wide Area Network - WAN)

Desenvolvimento de microprocessadores potentes (anos 80).

(4)

Considerações

É relativamente fácil agrupar um grande número de CPUs,

conectando-as por uma rede de alta velocidade.

O software para sistemas distribuídos é completamente

diferente do software para sistemas centralizados e está

apenas começando a se desenvolver.

(5)

Exemplos de Sistemas Distribuídos

Um rede de computadores de uma empresa.

Uma rede bancária, com computadores centrais, agências,

caixas-eletrônicos.

Um sistema de reservas, venda e emissão de passagens

aéreas.

Um sistema de controle de estoque, vendas e entregas numa

cadeia de lojas.

Um portal de informações na internet, com vídeos, músicas,

notícias, chat, previsão do tempo, etc...

(6)

Exemplo: Bit Torrent

(7)

Vantagens de Sistemas Distribuídos sobre Sistemas

Centralizados

• Melhor relação custo/benefício.

• Capacidade de processamento além dos limites práticos de SC (velocidade da luz, aquecimento).

• Maior confiabilidade e disponibilidade.

• Crescimento gradativo da capacidade de processamento.

• Compartilhamento de dados comuns entre usuários.

• Compartilhamento de recursos de hardware e software.

• Comunicação entre pessoas.

(8)

Desvantagens de Sistemas Distribuídos sobre

Sistemas Centralizados

Falta de software adequado.

Falhas e saturação da rede de comunicação podem eliminar

as vantagens de SD.

Segurança pode ser comprometida: fácil acesso a dados e

recursos reservados.

(9)

Classificação dos SDs

Sistemas Distribuídos Sistemas Multiprocessadores Sistemas Multicomputadores • A memória é compartilhada. • Fortemente acoplado. • A memória é segregada. • Fracamente acoplado.

(10)

Sistemas Distribuídos Heterogêneos

Sistemas distribuídos costumam ser organizados por meio de

uma camada de software para suportar computadores e

redes heterogêneas e, simultaneamente, oferecer uma visão

de sistema único para o usuário ou aplicação.

Middleware

Situado logicamente entre uma camada de nível mais alto,

composta de usuários e aplicações, e uma camada adjacente

(SOs e comunicação).

(11)

Características de um Middleware

Oculta a heterogeneidade: diferenças de Hardware, Protocolos

de Comunicação e Sistemas Operacionais para cada aplicação.

Oculta a distribuição, isto é, o fato que a aplicação está sendo

(12)

Metas de Sistemas Distribuídos

O fato de ser possível montar SDs, não significa que seja

uma boa idéia.

Existem 4 metas importantes que devem ser cumpridas na

construção de um sistema distribuído para que valha a pena

o esforço de implementação.

Acesso à Recursos;

Transparência na distribuição;

Abertura;

(13)

Acesso a Recursos

Facilitar aos usuários e aplicações acesso a recursos

remotos e o compartilhamento de maneira controlada e

eficiente.

Razão óbvia:

Economia!

Os recursos remotos podem ser os mais diversos como:

Impressoras, computadores, dados, página Web.

Conectividade e compartilhamento de informações.

(14)

Transparência da Distribuição

Consiste em ocultar o fato de que os processos e recursos

estão fisicamente distribuídos por vários computadores.

Tipos:

• Acesso; • Localização; • Migração; • Replicação; • Concorrência;

(15)

Transparência da Distribuição

Transparência de Acesso

• Ocultar diferenças em representação de dados, e o modo como os recursos podem ser acessados por usuários.

• Exemplo: representação de inteiros little endian, big endian.

• No método little-endian o valor mais significativo é colocado nos bytes de menor numeração. Já no método big-endian o valor mais

significativo é colocado nos bytes de maior numeração, é também conhecido como convenção left-right.

• Por exemplo, o número 104 em little-endian é apresentado na ordem 401 e em big-endian na ordem 104.

(16)

Transparência da Distribuição

Transparência de Localização

• Ocultar o lugar em que o recurso está localizado.

• Nomeação: Pode se conseguir

transparência de localização ao se atribuir somente nomes lógicos aos recursos.

(17)

Transparência da Distribuição

Transparência de Migração

• Recursos podem ser movimentados sem afetar o modo como podem ser acessados.

• Exemplo: Mudança de um servidor WEB.

Transparência de Relocação

• Recursos podem ser relocados enquanto estão sendo acessados.

• Exemplo: uso móvel de laptops (redes wireless).

(18)

Transparência da Distribuição

Transparência de Replicação

• Ocultar o fato de que existem várias cópias de um recurso (redundância).

• Aumentar a disponibilidade, confiabilidade ou melhorar o desempenho.

(19)

Transparência da Distribuição

Transparência de Concorrência

• Ocultar o fato que 2 ou mais usuários estejam acessando um recurso no mesmo instante.

• Exemplo: Quantos usuários estão neste momento comprando uma passagem aérea?

(20)

Transparência da Distribuição

Transparência à Falha

• Ocultar do usuário que um

recurso deixou de funcionar bem e que o sistema se recuperou da falha.

• A principal dificuldade para mascarar falhas está na

incapacidade de distinguir entre um recurso morto e um recurso que está funcionando de

maneira degradada (lento).

Erro

(21)

Transparência da Distribuição

Transparência é sempre requerida?

• Bela meta no projeto e na implementação de sistemas distribuídos, mas deve ser considerada em conjunto com outras questões, como desempenho e facilidade de compreensão.

• Nem sempre vale a pena tentar conseguir total transparência, pois o preço que se paga por isso pode ser surpreendentemente alto.

(22)

Abertura

Um SD aberto é um sistema que oferece serviços de acordo

com regras padronizadas que descrevem a sintaxe e a

semântica desses serviços.

Em redes de computadores: Protocolos (regras padronizadas

que governam o formato, o conteúdo e o significado das

mensagens enviadas e recebidas).

Em SDs: Linguagem de definição de interface (IDL)

(23)

Abertura

Proporciona os seguintes benefícios:

Interoperabilidade

• Caracteriza até que ponto duas implementações de sistemas ou componentes de fornecedores diferentes devem coexistir e trabalharem conjunto.

Portabilidade

• Caracteriza até que ponto uma aplicação desenvolvida para uma sistema distribuído A pode ser executada, sem modificação, em um sistema distribuído diferente B que

implementa as mesmas interfaces que A.

Extensibilidade

• Deve ser fácil adicionar novos componentes ou substituir existentes sem afetar os que continuam no mesmo lugar.

(24)

Abertura

Para se conseguir flexibilidade em SDs abertos é crucial que

o sistema seja organizado como um conjunto de

componentes relativamente pequenos e de fácil substituição

ou adaptação.

As interfaces precisam ser bem definidas:

• Interface com o nível mais alto: Usuários e aplicação.

• Interface com partes internas do próprio sistema: Importante descrever como as partes internas de um SD interagem.

(25)

Escalabilidade

Um sistema é descrito como escalável se permanece eficiente

quando há um aumento significativo no número de recursos e

usuários. Exemplo: Internet

35.424.956 171.638.297 2003 5.560.866 56.218.000 1999 0 130.000 1989 0 188 1979 Servidores Web Computadores com IP registrados na

Internet Ano

(26)

Escalabilidade

Pode ser medida segundo três dimensões:

Tamanho: Facilidade em adicionar mais usuários e recursos

ao sistema.

Geográfico: Usuários e recursos podem estar longes uns

dos outros.

Administrativo: Facilidade de gerenciamento, mesmo que

(27)

Problemas de Escalabilidade

Tamanho – Problemas: Servidores Centralizados:

• Utilização de um único servidor: gargalo, à medida que o número de usuários e aplicações cresce.

• Em alguns casos é inevitável.

• Exemplo: Serviço de gerenciamento de informações altamente confidenciais. Copiar o servidor para diversas

localizações pode tornar o serviço menos seguro.

CPD

Área restrita com proteção de segurança

(28)

Problemas de Escalabilidade

Tamanho – Problemas: Dados Centralizados:

• Conservação de dados em um único repositório: gargalo

promovido pela saturação em todas as linhas de comunicação que acessam o repositório.

• Exemplo: Cadastro de

endereços e telefones de 50 milhões de pessoas.

Cadastro

(29)

Problemas de Escalabilidade

Tamanho – Problemas: Algoritmos Centralizados:

• Evitar troca de mensagens ao colher informações de todas as maquinas executar um algoritmo único propagar as informações por todo o sistema.

• Péssima idéia!! 1. Coleta de Informações 2. Execução de Algoritmo Centralizado 3. Propagação de Informações

(30)

Geográfico – Problemas:

• Dificuldade de ampliar sistemas distribuídos existentes que foram originalmente projetados para redes locais: originalmente baseados em comunicação síncrona.

• Comunicação em redes de longa distancia é não confiável e ponto-a-ponto.

• Já as redes locais tem alta

confiança, com base em broadcast

Problemas de Escalabilidade

O computador B pergunta para todas as estações qual está executando o serviço que precisa. As estações que possuírem o serviço respondem ao computador B.

Rede Local

Rede de Longa Distância

A B C D

T U

(31)

Administrativo – Problemas:

• Políticas conflitantes em relação à utilização: recursos, gerenciamento e segurança.

• Confiança não ultrapassa as fronteiras do domínio.

• Exemplo: 4 organizações

compartilham um mesmo sistema distribuído. Os usuários da

Organização A confiam nos

componentes que residam dentro de seu domínio.

Problemas de Escalabilidade

Organização A Organização B Organização C Organização D Sistema Distribuído

(32)

Ocultar latências de comunicação

• Evitar esperar por respostas a requisições remotas

• Solução: Reduzir comunicação global, passando parte da computação do servidor para o cliente que esta requerendo o serviço.

• Exemplo: Acesso a banco de dados por meio de formulários.

• Importante para conseguir Escalabilidade Geográfica

Técnicas de Escalabilidade

(a) O servidor verifica os erros de sintaxe antes de executar uma entrada.

(b) O cliente recebe o código para preencher os formulários e verificar as entradas. O

(33)

Distribuição (1/2)

• Dividir um componente em partes menores e espalhar as sub-partes pelo sistema.

• Exemplo: DNS

(34)

Distribuição (2/2)

• Como obter o endereço da rede do servidor hospedeiro do endereço nl.vu.cs.flits

Técnicas de Escalabilidade

1) O nome é passado ao servidor da Zona Z1, que retorna o endereço para a Zona Z2 para qual o resto do nome (vu.cs.flits) pode ser entregue.

(35)

Replicação

• Aumenta a disponibilidade dos recursos: cópia dos recursos.

• Equilibra a carga entre os componentes: melhor desempenho.

• Sistemas com ampla dispersão geográfica: ocultar os problemas de latência com cópias próximas.

E a Escalabilidade Administrativa? • Problemas políticos estão envolvidos

• P2P – usuários finais tomam o controle: Vários problemas de direitos autorais.

(36)

Caso Napster

Seu criador visava facilitar a forma como obtinha música

MP3 na Internet.

1999

Série de ações legais e o serviço foi fechado.

2001

Passou a vender as músicas arquivadas aos usuários, com

repasse de direitos autorais.

2002

• Novos programas que faziam o mesmo que o Napster surgiram:

(37)

Premissas falsas adotadas ao se desenvolver pela primeira vez um SD: • Rede é confiável. • Rede é segura. • Rede é homogênea. • Topologia constante. • Latência zero.

• Largura de banda é infinita.

• Custo de Transporte é zero.

• Existe somente um administrador.

Referências

Documentos relacionados