Escolar Documentos
Profissional Documentos
Cultura Documentos
• Unidade de Ensino: 3
• Competência da Unidade: Compreender os fundamento
de sistemas distribuídos
Redes e Sistemas • Resumo: Conhecer os conceitos de sistemas
Distribuídos distribuídos, bem como processos, comunicação e
aspectos de projeto
Sistemas Distribuídos
• Palavras-chave: sistemas distribuídos
Prof. Dr. Gilberto Fernandes Junior • Título da Teleaula: Sistemas Distribuídos
• Teleaula nº: 3
1 2
Contextualização
• Conceitos de Sistemas Distribuídos
• Processos e Comunicação em Sistemas Distribuídos
• Aspectos de Projeto dos Sistemas Distribuídos
Fundamentos de
sistemas distribuídos
3 4
• Um sistema distribuído é um conjunto de Apl. A Apl. B Apl. A • Disponibilidade alta e fácil acesso ao sistema e a
computadores interligados via rede, mas, todos os seus recursos, tanto pelas máquinas que
para o usuário final das aplicações, que são MIDDLEWARE
fazem parte do sistema distribuído como pelo usuário
executadas através deles, aparenta ser um SO SO SO final.
Local 1 Local 2 Local 3
sistema único • Confiabilidade maior que nos sistemas centralizados.
Fonte: elaborado pelo autor
Aspectos Teorema CAP (consistência, disponibilidade e
• Funcionamento independente resiliência (tolerância a falhas))
• Hardwares diversificados • Aumento de Desempenho, já que há múltiplas
• Middleware instancias, tanto de hardware quanto de software,
para realizar o processamento necessário.
5 6
1
14/02/2023
Objetivos Desafios
• Ocultar ao usuário que os recursos do sistema são • Heterogeneidade: operar em nós com características
distribuídos – IMPORTANTE! de hardware diferentes, e suportar diferentes sistemas
• Deve ser aberto, ou seja, deve facilitar a inclusão de operacionais
novas máquinas e recursos no ambiente em • Segurança: garantir confidencialidade, integridade e
funcionamento – Expansão facilitada disponibilidade – Problema: Ataques DoS!
• Tolerância a falhas: capacidade do sistema
distribuído se auto recuperar na ocorrência de uma (ou
mais) falhas
• Escalabilidade, concorrência e abertura
7 8
Desvantagens: escalabilidade e
produtividade, linguagens de programação
antigas, tamanho
servidor, falta de interface gráfica.
9 10
11 12
2
14/02/2023
13 14
Computação em Cluster
• Conjunto de máquinas com hardwares semelhantes.
15 16
17 18
3
14/02/2023
Sincronização de Relógio
Exemplos de Sistemas
distribuídos
19 20
Descrição da SP Resolução da SP
O objetivo desta SP é dar exemplos motivacionais de Pesquisa na WEB
sistemas distribuídos atuais, ilustrando seu papel • O Google, líder de mercado em tecnologia de pesquisa
predominante e a enorme diversidade de aplicações na Web, fez um trabalho significativo no projeto de
associadas a eles! uma sofisticada infraestrutura de sistema distribuído
para dar suporte à pesquisa (e a outros aplicativos e
serviços, como o Google Earth).
• Isso representa uma das maiores e mais complexas
instalações de sistemas distribuídos da história da
computação
21 22
Resolução da SP Resolução da SP
Massively multiplayer online games (MMOGs) Finanças e Comércio
Desafios • crescimento do e-Commerce: Amazon e eBay
• tempos de resposta rápidos • tecnologias de pagamento subjacentes: PayPal
• Propagação de eventos em tempo real para muitos • surgimento associado de operações bancárias e
jogadores negócios online e também os complexos sistemas de
• manutenção de uma visão coerente do mundo disseminação de informações para mercados
compartilhado. financeiros.
23 24
4
14/02/2023
Resolução da SP
Gerenciamento Ambiental
O uso de tecnologia de sensores (interligados em rede)
para monitorar e gerenciar o ambiente natural;
Qual o principal
emitir alerta precoce de desastres naturais, como componente de um
terremotos, enchentes ou tsunamis e coordenar a
resposta de emergência;
Sistema distribuído?
o cotejamento e a análise de parâmetros ambientais
globais para entender melhor fenômenos naturais
complexos, como a mudança climática.
25 26
Processos e Threads
Permite que a comunicação e processamento de clientes
e servidores ocorram com alto nível de performance
Processos e Threads Processo: Programa em execução sob controle do SO
• alto custo de gerenciamento do S.O. (granularidade)
não é suficiente para sistemas distribuídos
• solução - nível de granularidade mais fino “threads”.
Thread: Cada thread executa sua propria porção de
Código
• Vários Threads podem estar subordinados a um mesmo
processo
27 28
29 30
5
14/02/2023
31 32
33 34
Servidor
Cliente
Fonte: adaptado de: TANENBAUM, A. S; STEEN, M. V. Sistemas Distribuídos - Princípios e Paradigmas. 2. ed. São Paulo: Pearson, 2008.
35 36
6
14/02/2023
Descrição da SP
• Implementar uma aplicação simples de chat em JAVA
utilizando sockets TCP!
Aspectos de Projeto
dos Sistemas
Distribuídos
37 38
Segurança Segurança
• Muito importante, já que a comunicação entre as Pontos de atenção em relação à segurança, no projeto
máquinas de um sistema distribuído sempre ocorre por de sistemas distribuídos:
meio de redes de comunicação, tipicamente cabeadas. • Portas são expostas;
• Confidencialidade e Integridade • Redes não são seguras;
• Exercício de equilíbrio entre custo e ameaças • A validade das chaves criptográficas
deve ser limitada;
• Algoritmos de criptografia podem ter falhas;
• Hackers.
39 40
41 42
7
14/02/2023
Heterogeneidade
• Sistema que contenha em sua composição máquinas
(nós) de sistemas operacionais, recursos (hardware) e
até mesmo fabricantes diferentes Dúvidas?
• Protocolos e middlewares para comunicação
Comp. 1 Comp. 2 Comp. 3
MIDDLEWARE
SO SO SO
Local 1 Local 2 Local 3
Fonte: elaborado pelo autor
43 44
Recapitulando
• Conceitos de Sistemas Distribuídos
45 46