Sistemas distribuídos aula 1
-
Upload
renato-william -
Category
Internet
-
view
131 -
download
0
Transcript of Sistemas distribuídos aula 1
SISTEMAS DISTRIBUÍDOS
PROFESSOR – RENATO WILLIAM
Bibliografia
Distributed Systems: Concepts and Design (5th Edition) by: George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair
Sistemas Distribuídos – Desenvolvendo aplicaçõesde alta performance no Linux
Uirá Ribeiro
Definição
“ Um sistema distribuído é um conjunto decomputadores independentes entre si quese apresenta a seus usuários como umsistema único e coerente” – Tanenbaum/Van Steen
Hardware: máquinas autônomas
Software: os usuários pensam do sistemacomo um único computador
Definição
“ Coleção de computadores autônomosinterconectados por uma rede, com softwareprojetado para produzir uma aplicação integrada”
Sistemas compostos por hardware e softwarelocalizados em lugares físicos distintos que secomunicam através de mensagens enviadas viauma rede de computadores. (Coulouris et al)
Sistemas distribuídos
Concorrência:
Execução concorrente de programas é a norma, compartilhandorecursos como páginas Web ou arquivos como necessário.
Processos executam em paralelo (concorrência não é paralelismo)
Não existe relógio global
Coordenação por mensagens
Falhas independentes
Tratamento de exceções, design pensando em falhas
Por que ter sistemas distribuídos?
A principal motivação para construir e usarsistemas distribuídos é proveniente do desejode compartilhar recursos (hardware esoftware).
Exemplos de Sistemas DistribuídosFinance and commerce eCommerce e.g. Amazon and eBay, PayPal, online
banking and trading
The information society Web information and search engines, ebooks, Wikipedia; social
networking: Facebook and MySpace.
Creative industries and entertainment online gaming, music and film in the home, user-
generated content, e.g. YouTube, Flickr
Healthcare health informatics, on online patient records, monitoring
patients
Education e-learning, virtual learning environments; distance
learning
Transport and logistics GPS in route finding systems, map services: Google Maps,
Google Earth
Science The Grid as an enabling technology for collaboration
between scientists
Environmental management sensor technology to monitor earthquakes, floods or
tsunamis
Sistemas distribuídos
Pesquisa na WEB.
10 bilhões por mês;
A tarefa de um mecanismo de pesquisa naweb é de indexar todo o conteúdo da WWW,abrangendo uma grande variedade deestilos de informação, incluindo páginasWeb, fontes multimídia e livros.
Exemplo do Google:
Infraestrutura física espalhada ao redordo mundo
Sistemas de arquivos distribuídos
Um sistema associado dearmazenamento de arquivos
Um modelo de programação
Tendências em Sistemas Distribuídos
O surgimento da tecnologia Pervasiva ( estar em todolugar, porém, sem ser percebido.)
O surgimento da computação ubíqua, combinado aodesejo de suportar mobilidade do usuário em sistemasdistribuídos.
A crescente demanda por serviços de multimídia.
A visão dos sistemas distribuídos como um serviço público.
Sistemas Distribuídos
Vantagens
Economia: melhor relação custo/desempenhoEficiência: maior poder total de computação
Distribuição inerente: máquinas espacialmenteseparadas
Confiabilidade: se uma máquina falha, o sistema comocomo um todo pode ainda sobreviver
Crescimento incremental: poder computacionaladicionado em incrementos
Sistemas Distribuídos
Desvantagens
Pouco software disponível
Networking: a rede pode causar problemas
Segurança: várias portas de acesso
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012
intranet
ISP
desktop computer:
backbone
satellite link
server:
☎
network link:
☎
☎
☎
Figure 1.3A typical portion of the Internet
A internet é um sistema distribuído muito grande.
Instructor’s Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012
Figure 1.4Portable and handheld devices in a distributed system
Computação móvel e ubíqua
a computação ubíqua é a utilização de vários equipamentoscomputacionais de pequeno porte e baratos em residênciasou escritórios.
Já o termo “ubíquo” nos dá a noção de que o acesso aos serviços está sempre presente, podendo ser acessado em qualquer lugar (SBA, 2006).
Também se denomina “computação pervasiva”.
Dispositivos incorporados em aparelhos, como máquinas delavar, aparelhos de som de alta fidelidade, carros, geladeiras eetc.
Middleware Campo da computação distribuída, é um
programa de computador que faz a mediaçãoentre software e demais aplicações.
É utilizado para mover ou transportarinformações e dados entre programas dediferentes protocolos de comunicação,plataformas e dependências do sistemaoperacional.
Camada de software que fornece uma abstraçãode programação
WebCasting
O “webcasting” ou “webstreaming” consiste natransmissão de sinal de audio evídeo através da internet, paraqualquer dispositivo que lhetenha acesso.
O webcasting consiste natransmissão de sinal de vídeoatravés da internet.
Computação Distribuída como um serviço público
Recursos Físicos
Armazenamento e processamento disponíveis paracomputadores ligados em redes, eliminando a necessidade depossuírem eles próprios os recursos.
Serviços de Software
Alugueis de software
Calendários distribuídos
Computação em Nuvem Serviço Público
Uma nuvem é definida como um conjunto de serviços deaplicativo, armazenamento e computação baseada na internet.
Infraestrutura física ou virtual por meio de software baseadosna utilização em vez de aquisição.
Computação em Nuvens
Implementação feita em Cluster decomputadores.
Escala e desempenho
Cluster:
Conjunto de computadores interligados quecooperam estreitamente para fornecer um únicorecurso de computação integrado de altodesempenho.
Projetos
NOW
Project Berkeley
Beowulf da Nasa
Os servidores blade, Trata-se de um formato
que visa aumentar ainda mais a densidade
dos servidores, permitindo o compartilhamento
de componentes em comum, como discos ópticos e fontes de alimentação.
Desafios
Heterogeneidade:
Conjunto heterogêneo de computadores em redes.
Redes
Hardwares de Computadores
Sistemas Operacionais
Linguagens de Programação
Implementações de diferentes desenvolvedores
Desafios
Sistemas abertos ●
…pode ser estendido e reimplementado de várias
maneiras
deve-se publicar a especificação e a documentação
das principais interfaces de software
a integração de componentes escritos por diferentes
programadores é problemática
Desafios
Segurança
Confidencialidade (Proteção contra exposição para pessoas nãoautorizadas).
Integridade ( Proteção contra alteração ao dano).
Disponibilidade ( proteção contra interferência com os meios deacesso aos recursos)
Ataque de negação de serviço(denial of service).
Interrupção de serviço por algum motivo.
Desafios
Escalabilidade
Escalas diferentes, podendo funcionar desde de uma intranet até a internet
Um sistema é dito escalável quando permanece eficiente quando há o aumento significativo do número de recursos e usuários.
Controlar o custo dos recursos físicos:
É medida que a demanda por um recurso aumenta, deve ser possível, a um custo razoável, ampliar o sistema para atende-la.
Controlar perda de Desempenho
A perda de desempenho máxima não deve ser maior que log(n)
Impedir que os recursos se esgotem
Preparar o sistema para suportar um crescimento futuro
Exemplo do IP
Evitar gargalos de desempenho
Os algoritmos devem ser descentralizados para evitar gargalos de desempenho
Escalabilidade
Tratamento de Falhas
Pode ocorrer no hardware e software
Falhas em SDs são consideradas parciais, enquanto alguns componentes falham outros continuam funcionando.
Detecção de falhas
Soma de verificação verificação de arquivos corrompidos
Mascaramentos de falhas
Retransmissão de mensagens
Gravação de dados em dois discos
Tratamento de Falhas
Tolerância a falhas
Maioria dos serviços da internet apresentam falhas.
Recuperação de falhas
Envolve projetar o software de modo que o estado
anterior possa ser recuperado após uma falha.
Redundância:
Haver pelo menos duas rotas diferentes
Banco de dados replicado
Ter pelo menos dois servidores de Nomes replicados
Concorrência
Trabalha sobre a possibilidade que vários clientes
possam acessar um recurso compartilhado ao
mesmo tempo
A presença de múltiplos usuários é uma fonte de
pedidos concorrentes para seus recursos
Em ambiente concorrente, cada recurso deve ser
projetado para manter sempre a consistência
Desafios
Transparência
É a ocultação da separação dos componentes de um sistema distribuído,
Para que assim, um usuário final ou um programador de aplicativos
perceba ou utilize o sistema como um todo e não como componentes
independentes
Exemplos de transparências:
De Software
De acesso
De Desempenho
De falhas
De localização
Replicação
Mobilidade
de escalabilidade