Upload
tranbao
View
220
Download
0
Embed Size (px)
Citation preview
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