sistemas distribuídos - · pdf filedefinição um sistema...

41
Sistemas Distribuídos Introdução

Upload: tranbao

Post on 01-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Sistemas DistribuídosIntrodução

Page 2: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Definição Um sistema distribuído é um conjunto de computadoresindependentes, interligados por uma rede de conexão, executando um software distribuído.

Processos● Executados concorrentemente● Interagem para alcançar um objetivo comum●Coordenação feita através de troca de mensagens, utilizando a rede de conexão

Page 3: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Evolução Computacional

● 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).

Page 4: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Sistemas Distribuídos

● É 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

Page 5: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Por quê SDs? Vantagens:

● Cooperação e compartilhamento derecursos

Benefícios:● Redução de custos, aumento da confiabilidade,

disponibilidade e desempenho

Page 6: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Qual é a Importância?

Page 7: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Problemas!!!!

No pain, no gain!

Page 8: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Mas como lidar com sistemas heterogêneos?

● Sistemas distribuídos costumam ser organizados por meio de uma camada de software MIDLLEWARE● Situado logicamente entre uma camada de nívelmais alto, composta de usuários e aplicações, e uma camada adjacente (SOs e comunicação)

Page 9: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Middleware (1/3)●Oculta a distribuição, isto é, o fato quea aplicação está sendo executada em diferentesmáquinas distribuídas geograficamente

●Oculta a heterogenidade: diferentessistemas operacionais, diferentes protocolosde comunicação

Page 10: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Middleware (2/3)

Page 11: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Middleware (3/3)

Exemplos:

● RPC: chamada de procedimento remoto

● Comunicação orientada a mensagens: WebShere (IBM)

Page 12: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta I – Acesso a recursosFacilitar aos usuários e aplicações acesso

a recursos remotos e o compartilhamento de maneira controlada e eficiente

● Razão óbvia: Economia● Impressoras, computadores, dados, página Web

● Conectividade e compartilhamento de informações

Problema: Segurança

Page 13: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta II – Transparência da Distribuição (1/5)

Consiste em ocultar o fato de que osprocessos e recursos estão fisicamentedistribuídos por vários computadoresTipos:● Acesso● Localização● Migração● Replicação● Concorrência● Falha

Page 14: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta II – Transparência da Distribuição (2/5)

Acesso:● Ocultar diferenças em representação de dados,e o modo como os recursos podem ser acessadospor usuários

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

Localização:●Usuários não podem dizer a localização física do recurso. Nomeação!

●Exemplo: www.google.com (??????)

Page 15: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta II – Transparência da Distribuição (3/5)

Migração:● Recursos podem ser movimentados sem afetaro modo como podem ser acessados

● Exemplo: Mudança de um servidor WEBRelocação:

●Recursos podem ser relocados enquanto estão sendoacessados

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

Page 16: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta II – Transparência da Distribuição (4/5)

Replicação:● Ocultar o fato de que existem várias cópias de um recurso

● Aumentar a disponibilidade ou melhorar o desempenhoConcorrência:

●Ocutar o fato que 2 ou mais usuários estejamacessando um recurso no mesmo instante

●Consistência?

Page 17: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta II – Transparência da Distribuição (4/5)

Falha:● Ocultar do usuário que um recurso deixou defuncionar bem e que o sistema se recuperouda falha

Page 18: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Transparência é semprerequerida?

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

Exemplos??

Page 19: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta III – Abertura (1/2)

Um SD aberto é um sistema que oferece serviçosde acordo com regras padronizadas que descrevema sintaxe e a semântica desses serviços Em redes de computadores: Protocolos

Em SDs: Linguagem de definição de interface (IDL)● Funções disponíveis, parâmetros, valores de retorno

Page 20: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta III – Abertura (2/2)

Interoperabilidade:● Caracteriza até que ponto duas implementaçõesde sistemas ou componentes de fornecedoresdiferentes devem coexistir e trabalhar em 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 Bque implementa as mesmas interfaces que A

Page 21: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (1a/7)

Três Dimensões:● Tamanho: Facilidade em adicionar mais usuáriose recursos ao sistema

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

● Administrativo: Facilidade de gerenciamento, mesmo que abranja muitas organizações administrativas diferentes

Page 22: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (1b/7)

Page 23: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (2/7)

Tamanho - Problemas:● Limitações de serviços centralizados, dados,algoritmos

● Servidores centralizados: Gargalo!!● Dados: Novamente, Gargalo!!● Algoritmos: - Sobrecarga na rede com todas mensagens enviadas a um nó - Falha de um nó não arruina o algoritmo

Page 24: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (3a/7)

Tamanho - Soluções:● Servidores centralizados Replicação →● Dados Distribuição (DNS,Web)→● Algoritmos: Roteamento (distance-vector) Exclusão Mútua (Ricart e Agrawala)

Page 25: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade(3b/7)

Page 26: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (4/7)

Geográfico - Problemas:● Retardo para propagação das informações● Não confiabilidade da rede de conexão● LANs Sistemas 'espalhados'geograficamente →

● Como localizar um serviço● Comunicação síncrona

Page 27: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (5/7)Geográfico - Soluções:

● LANs Sistemas 'espalhados'→● Comunicação assíncrona● Evitar comunicação global (applets Java,Javascripts)

● Retardo Replicar e posicionar servidores→em posições estratégicas

● Não confiabilidade Algoritmos com →mecanismo de ACKs e retransmissões

Page 28: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (6/7)

Administrativo - Problemas:● Políticas de utilização e pagamento dos recursos● Gerenciamento● Segurança

Page 29: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Meta IV – Escalabilidade (7/7)Adminstrativo- Soluções:

● Mais difícil de todas! ● Envolve $$$$, leis locais● Peer-to-peer: ok: controle feito pelosusuários finais; no entanto: nocivo para osISPs!

Page 30: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Ciladas!!!Premissas que podem ser adotadas aose desenvolver uma aplicação distribuída

● A rede é confiável● A rede é segura● A rede é homogênea● A topologia não muda● A latência é zero● A largura de banda é infinita● O custo de transporte é zero● Há somente um administrador

Page 31: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Tipos de SDsClassificação relacionada com a função principaldo sistema

● Computação Distribuída: oferecercomputação de alto desempenho

● Cluster versus Grade● Simulação de fenômenos físicos● Teste de novos protocos, aplicaçõesdistribuídas (PlanetLab, e.x)

● Sistemas de Informação: banco de dados● Sistemas Pervasivos: Redes de Sensores,Redes Celulares

Page 32: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Exemplos● InternetRedes de redes interconectadas, que secomunicam através dos protocolos IP

● IntranetRede com uma única administração, com políticasde segurança próprias

● Redes Móveis e Sistemas PervasivosLaptops, PDAs, celulares

● WebDisponibilização de serviços e informações via Internet

Page 33: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Internet (1/2)

Page 34: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Internet (2/2)

● Rede Heterogênea (pela própria definição)● Serviços: email,www,VoIP,tranferência de\arquivos

Page 35: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Intranet (1/2)

Page 36: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Intranet (2/2)

● Diversas LANs ligadas por um backbone● Serviços: impressoras, emails● Geralmente conecta a Internet via roteadores● Controle de fluxo de entrada e saída feitopor um firewall

Page 37: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Redes Móveis (1/2)

Page 38: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Redes Móveis (2/2)

● WLANs● Conectividade para dispositivos portáteis (laptops, celulares, PDAs)

Page 39: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

WWW (1/2)

Page 40: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

WWW (2/2)

● Compartilhamento de informação ● Baseado em tecnologias como:

● HTTP● URL● Arquitetura cliente-servidor

● Sistema aberto

Page 41: Sistemas Distribuídos - · PDF fileDefinição Um sistema distribuído é um conjunto de computadores independentes, interligados por uma rede de conexão, executando um software

Resumo

● Sistemas Distribuídos● Altamente difundidos atualmente● Baseado em um conjunto de diferentes tecnologias

● Entendimento dos conceitos e principiaisproblemas extremamente importantes para gerenciamento, implementação e programação