Top Banner
Sistemas Distribuídos Introdução
41

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

Feb 01, 2018

Download

Documents

tranbao
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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