Sistemas Distribuídos - · PDF fileDefinição Um sistema...

Post on 01-Feb-2018

220 views 0 download

Transcript of Sistemas Distribuídos - · PDF fileDefinição Um sistema...

Sistemas DistribuídosIntrodução

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

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

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

Por quê SDs? Vantagens:

● Cooperação e compartilhamento derecursos

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

disponibilidade e desempenho

Qual é a Importância?

Problemas!!!!

No pain, no gain!

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)

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

Middleware (2/3)

Middleware (3/3)

Exemplos:

● RPC: chamada de procedimento remoto

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

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

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

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 (??????)

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)

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?

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

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??

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

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

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

Meta IV – Escalabilidade (1b/7)

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

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)

Meta IV – Escalabilidade(3b/7)

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

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

Meta IV – Escalabilidade (6/7)

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

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!

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

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

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

Internet (1/2)

Internet (2/2)

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

Intranet (1/2)

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

Redes Móveis (1/2)

Redes Móveis (2/2)

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

WWW (1/2)

WWW (2/2)

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

● HTTP● URL● Arquitetura cliente-servidor

● Sistema aberto

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