Escolar Documentos
Profissional Documentos
Cultura Documentos
● Recurso:
– Termo abstrato e compreende tanto objetos de hardware, como discos e
impressoras, quanto entidades de software como arquivos e banco de dados;
● Motivações:
– Economia: compartilhamento de impressoras, supercomputadores, sistemas
de armazenamento, etc...
– Colaboração e troca de informações: arquivos, correio eletrônico,
documentos, áudio e vídeo, teleconferência, etc...
Heterogeneidade
● Variedade e diferença em termos de:
– Hardware;
– Sistemas operacional;
– Rede;
– Linguagem de programação;
– Implementações de diferentes desenvolvedores.
● Exemplos de heterogeneidade na Internet:
– Diferentes implementações do mesmo conjunto de protocolos para diferentes
tipos de rede: IP, TCP, UDP, SMTP;
– Diferentes padrões de representação de dados: IDL, XML;
– Diferentes padrões de bibliotecas: POSIX, DLL;
– Diferentes padrões de invocação de serviços: COM, CORBA,RMI, SOAP;
– Diferentes plataformas de execução: JVM (Java), CLR (.NET).
Escalabilidade
● Capacidade do sistema permanecer operando de forma efetiva mesmo
diante de um aumento significativo do número de usuários e/ou dos recursos
disponíveis;
● Principais desafios:
– Controlar o custo dos recursos físicos;
– Controlar perdas de desempenho;
– Evitar “gargalos” de desempenho na rede ou nos próprios servidores.
● Se uma quantidade maior de usuários ou recursos devem ser considerados
deve-se tomar cuidado com serviços, dados centralizados:
Conceito Exemplo
Serviços Centralizados: Um único servidor para todos os usuários
Dados Centralizados: Uma única lista telefônica online
Algoritmos Centralizados: Multiplicação de cadeias de Matrizes de maneira
seqüencial.
Tolerância a falhas
● Falhas são inevitáveis em sistemas computacionais:
– Resultados incorretos;
– Interrupção não planejada do serviço antes de sua conclusão;
● Falhas em sistemas distribuídos são parciais;
● Técnicas de tratamento de falhas mais comuns:
– Detecção: bits de paridade, somas de verificação;
– Ocultamento: retransmissão de mensagens;
– Tolerância: informar o usuário do problema.
Transparência
● Abstração/Ocultação para os usuários e programadores de aplicação:
– Sistema percebido como um “todo” coerente ao invés de uma coleção de
partes independentes;
● Transparência de acesso:
– Permite o acesso a componentes remotos e locais através das mesmas
operações;
– Ex: Google Drive.
● Transparência de localização:
– Permite o acesso a componentes sem conhecimento da sua localização
física;
– Existência de um mecanismo que determina a localização baseada em um
nome;
– Ex: URL.
● Transparência de concorrência:
– Permite a execução concorrente de múltipla operações sobre o mesmo
conjunto de recursos sem causar interferência entre elas;
– Ex: Impressoras compartilhadas, leilão virtual.
● Transparência de escala:
– Permite a expansão do sistema e de suas aplicações sem exigir mudanças
significativas na infraestrutura existente;
● Transparência de Replicação:
– O usuário desconhece a existência de várias cópias do recurso;
– Fundamental para desempenho e tolerância a falhas.
● Transparência de falhas:
– A presença de falhas no sistema não é percebida pelos usuários;
– Implica na ausência de um ponto único de falha.
● Transparência de desempenho:
– Recurso adicionais são adicionados para suprir a nova demanda;
– Serviços oferecidos pela Amazon (elasticidade).
Concorrência
● Suporte para múltiplos acessos simultâneos a um ou mais recursos
compartilhados:
– Possibilidade de inconsistências quando os recursos são alterados
Segurança
● Proteção para recursos compartilhados:
– Confidencialidade (proteção contra usuários não autorizados):
Middleware
● Como suportar computadores e redes heterogêneos, oferecendo uma visão
de sistema único?
– Sistemas Distribuídos são organizados por meio de uma camada de
software.
Clusters
● Hardware consiste em um conjunto de estações de trabalho ou PCs
semelhantes;
● Conexão feita através de uma rede local;
● Em quase todos os casos, a computação de cluster é usada para
programação paralela na qual um único programa é executado em paralelo.
Supercomputadores
● Clusters altamente “tunados” usando processadores de prateleira
combinados a conexões de rede especiais e sistema operacional proprietário.
Grades Computacionais
● Computação em grade: muitos nós (clusters) de diversas origens e com
baixo acoplamento.
– Heterogêneos;
– Dispersos através de várias organizações;
● Recursos de diferentes organizações são reunidos para permitir a
colaboração de um grupo de pessoas ou instituições.
Sistemas Pervasivos
● Uma nova geração de sistemas distribuídos estão emergindo: sistemas de
computação móvel e pervasivos;
– Instabilidade é o comportamento esperado destes sistemas;
– Heterogeneidade de rede e de dispositivos;
– Problemas de segurança;
– Dispositivos de computação móveis e embutidos:
● Pequenos;
● Alimentação por bateria;
● Têm como objetivo a mobilidade;
● Se utilizam de conexão sem fio.
Referências
● Slides do Professor Flávio R. C. Sousa. “Introdução a Sistemas Distribuídos”.
Sistemas Distribuídos. Universidade Federal do Ceará.
● Slides do Professor Alexandre Nóbrega Duarte. “Introdução aos Sistemas
Distribuídos”. Computação Intensiva em Dados. Universidade Federal da
Paraíba.
● “Distributed Systems: Concepts and Design.” Third Edition. Coulouris, G.;
Dollimore, J.; Kindberg, T.