Sistemas
Distribuídos
Aula 2 – Introdução aos Sistemas Distribuídos
Sumário
• I n t r o d u ç ã o a o s S i s t e m a s D i s t r i b u í d o s ;
• D e f i n i ç ã o e c a r a c t e r í s t i c a s d e S D s ;
• Va n t a g e n s e I n c o n v e n i ê n c i a s d e S D s ;
• N e c e s s i d a d e s e d e s a f i o s d e S D s
• E x em p los e Objetivos.
História
• Computadores iniciais: Caros e grandes
• Anos 50 e 60
• Multiprogramação: diversos programas executados
concorrentemente pela CPU
❖Objetivo: otimizar a utilização da CPU
• Início dos anos 60: Sistemas Time Sharing
✓Evolução do hardware: Redução do tamanho, do
preço, aumento da velocidade
• Primeiro passo na direção dos Sistemas Distribuídos
✓ Incorpora dois conceitos fundamentais:
❖ Partilha de recursos
❖ Acesso remoto
3
História (Cont.)
• Final dos anos 60 e início dos anos 70: Surgimento das redes
• Final dos anos 60 e início dos anos 70: Unix
• Final dos anos 70: Protocolo TCP/IP
✓Início dos anos 80: Estações de trabalho
✓Início dos anos 80: microprocessadores e estações de trabalho
✓redução do custo (em relação aos mainframes)
• Final dos anos 80: estações de trabalho ligadas em rede
✓diversos serviços para comunicação entre pessoas/máquinas
❖ FTP, TELNET, E-mail...
4
Motivação
• Avanços em microeletrônica (processadores mais rápidos e baratos)
• Avanços em comunicações
✓redes mais eficientes e confiáveis
• Popularidade das redes de computadores
✓redes de telefonia móvel, redes corporativas, redes caseiras
✓redes de computadores de alta velocidade (Myrinet ~2Gb/s)
• Partilha de recursos
✓Componentes de Hardware (disco, impressora)
✓Software (Ficheiros, bases de dados, programas)
✓Outros (vídeo, áudio)
5
Sistemas Distribuídos
O que é um sistema distribuído?
A collection of independent computers
that appears to its users as a single
coherent system (Tanenbaum, 2023).
Sistema computacional com diversas partes
Diferentes programas a executar em diferentes
computadores;
Partes interagem para oferecer funcionalidades.
Principais Características
Qual principal característica de um
sistema distribuído?
diferença com sistemas centralizados
Comunicação
Diferentes partes precisam comunicar
para se computar
comunicação →troca de informação
Fonte de grandes problemas
muito mais difícil de construir
Principais Características (Cont.)
•Processos são executados concorrentemente
✓não existe um controle global
✓processos utilizam troca de mensagens para coordenar suas ações
•Inexistência de relógio global
✓noção de tempo global é importante na coordenação de processos
✓sincronização de relógios possui um limite de precisão
•Falhas independentes
✓a falha de um dos componentes (rede, máquinas, programas) não
implica a falha do sistema como um todo.
8
Vantagens de SDs
❑ Maior funcionalidade
✓ as vezes não é possível a solução ser centralizado;
❑ Maior escalabilidade
✓ Responde a grandes necessidades;
❑ Maior robustez
✓ Funciona mesmo com falhas;
❑ Maior transparência
✓ Esconde do utilizador aspetos irrelevantes
❑ Facilidade de expansão
✓ permite aumentar o poder de processamento
/armazenamento sem desfazer daquilo que já
possui, isto é, de maneira gradativa
Desvantagens dos SDs
•Maior dificuldade na garantia de segurança;
•Maior complexidade no desenvolvimento das
soluções;
•Gestão de recursos mais complexa;
•Alto custo para implementar aplicações colaborativas
• Causas:
✓recursos são fisicamente separados
✓mensagens podem atrasar
✓mensagens podem ser perdidas
✓Entre outros aspetos
10
Necessidades e desafios
• Comunicação segura
✓Quem enviou ?
✓Os dados foram modificados durante a transmissão?
✓Alguém não autorizado teve acesso aos dados?
• Confiabilidade em um ambiente não confiável
✓Máquinas podem falhar, mas o SD deve falhar parcialmente
✓Internet é uma rede não segura;
• Localização
✓colocar os recursos em um determinado local e permitir a localização destes
recursos quando necessário
• Coordenação
✓acordo entre os componentes distribuídos sobre o que fazer e de que forma
11
Exemplo Genérico
Vários tipos de
“computadores”
Vários tipos de papel
(role)
Várias formas de
comunicação
Várias camadas
lógicas
* Retirado de um artigo científico que propõe uma arquitetura para a
aplicação de localização de dispositivos em ambientes internos
Heterogêneo!
Exemplo Específico: Email
Vários tipos de
“computadores”
Vários tipos de
papel (role)
Várias formas de
comunicação
Várias camadas
lógicas
Realidade ainda mais complicada!
Vários tipos de
“computadores”
Vários tipos de
papel (role)
Várias formas de
comunicação
Várias camadas
lógicas
Realidade ainda mais complicado
Exemplo Específico: Jogos
Outros Exemplos
•Amazon Marketplace
•Google
•Yahoo
•Facebook
•Twiter
•Youtube
Presença Definitiva
Sistemas distribuídos veio para ficar;
Praticamente tudo que utilizamos hoje faz
parte de algum sistema distribuído;
Exemplo de sistema não distribuído?
Jogos simples, como xadrez ou tetris;
Simulação ou computação numérica;
Algoritmo de Dijkstra para encontrar distâncias.
Mas temos versões distribuídas
de todos estes exemplos!
Computação Distribuidos Vs Paralela
Sistemas forte e fracamente acoplado
Partilha de memoria; comunicação frequente
Objetivos da Disciplina
Quais os desafios ao construir um
sistema distribuído?
Como tais desafios são superados?
Estudo de aspetos e técnicas gerais
encontradas em muitos sistemas distribuídos
Foco em técnicas e não em tecnologias
ex. Cliente/Servidor x HTTP
Muitos!
Exemplo: Ordenação
Exemplo: Coordenação
Dúvidas…
FIM 21

SD_Aula_02_Introdução ao SD.pdf

  • 1.
    Sistemas Distribuídos Aula 2 –Introdução aos Sistemas Distribuídos
  • 2.
    Sumário • I nt r o d u ç ã o a o s S i s t e m a s D i s t r i b u í d o s ; • D e f i n i ç ã o e c a r a c t e r í s t i c a s d e S D s ; • Va n t a g e n s e I n c o n v e n i ê n c i a s d e S D s ; • N e c e s s i d a d e s e d e s a f i o s d e S D s • E x em p los e Objetivos.
  • 3.
    História • Computadores iniciais:Caros e grandes • Anos 50 e 60 • Multiprogramação: diversos programas executados concorrentemente pela CPU ❖Objetivo: otimizar a utilização da CPU • Início dos anos 60: Sistemas Time Sharing ✓Evolução do hardware: Redução do tamanho, do preço, aumento da velocidade • Primeiro passo na direção dos Sistemas Distribuídos ✓ Incorpora dois conceitos fundamentais: ❖ Partilha de recursos ❖ Acesso remoto 3
  • 4.
    História (Cont.) • Finaldos anos 60 e início dos anos 70: Surgimento das redes • Final dos anos 60 e início dos anos 70: Unix • Final dos anos 70: Protocolo TCP/IP ✓Início dos anos 80: Estações de trabalho ✓Início dos anos 80: microprocessadores e estações de trabalho ✓redução do custo (em relação aos mainframes) • Final dos anos 80: estações de trabalho ligadas em rede ✓diversos serviços para comunicação entre pessoas/máquinas ❖ FTP, TELNET, E-mail... 4
  • 5.
    Motivação • Avanços emmicroeletrônica (processadores mais rápidos e baratos) • Avanços em comunicações ✓redes mais eficientes e confiáveis • Popularidade das redes de computadores ✓redes de telefonia móvel, redes corporativas, redes caseiras ✓redes de computadores de alta velocidade (Myrinet ~2Gb/s) • Partilha de recursos ✓Componentes de Hardware (disco, impressora) ✓Software (Ficheiros, bases de dados, programas) ✓Outros (vídeo, áudio) 5
  • 6.
    Sistemas Distribuídos O queé um sistema distribuído? A collection of independent computers that appears to its users as a single coherent system (Tanenbaum, 2023). Sistema computacional com diversas partes Diferentes programas a executar em diferentes computadores; Partes interagem para oferecer funcionalidades.
  • 7.
    Principais Características Qual principalcaracterística de um sistema distribuído? diferença com sistemas centralizados Comunicação Diferentes partes precisam comunicar para se computar comunicação →troca de informação Fonte de grandes problemas muito mais difícil de construir
  • 8.
    Principais Características (Cont.) •Processossão executados concorrentemente ✓não existe um controle global ✓processos utilizam troca de mensagens para coordenar suas ações •Inexistência de relógio global ✓noção de tempo global é importante na coordenação de processos ✓sincronização de relógios possui um limite de precisão •Falhas independentes ✓a falha de um dos componentes (rede, máquinas, programas) não implica a falha do sistema como um todo. 8
  • 9.
    Vantagens de SDs ❑Maior funcionalidade ✓ as vezes não é possível a solução ser centralizado; ❑ Maior escalabilidade ✓ Responde a grandes necessidades; ❑ Maior robustez ✓ Funciona mesmo com falhas; ❑ Maior transparência ✓ Esconde do utilizador aspetos irrelevantes ❑ Facilidade de expansão ✓ permite aumentar o poder de processamento /armazenamento sem desfazer daquilo que já possui, isto é, de maneira gradativa
  • 10.
    Desvantagens dos SDs •Maiordificuldade na garantia de segurança; •Maior complexidade no desenvolvimento das soluções; •Gestão de recursos mais complexa; •Alto custo para implementar aplicações colaborativas • Causas: ✓recursos são fisicamente separados ✓mensagens podem atrasar ✓mensagens podem ser perdidas ✓Entre outros aspetos 10
  • 11.
    Necessidades e desafios •Comunicação segura ✓Quem enviou ? ✓Os dados foram modificados durante a transmissão? ✓Alguém não autorizado teve acesso aos dados? • Confiabilidade em um ambiente não confiável ✓Máquinas podem falhar, mas o SD deve falhar parcialmente ✓Internet é uma rede não segura; • Localização ✓colocar os recursos em um determinado local e permitir a localização destes recursos quando necessário • Coordenação ✓acordo entre os componentes distribuídos sobre o que fazer e de que forma 11
  • 12.
    Exemplo Genérico Vários tiposde “computadores” Vários tipos de papel (role) Várias formas de comunicação Várias camadas lógicas * Retirado de um artigo científico que propõe uma arquitetura para a aplicação de localização de dispositivos em ambientes internos Heterogêneo!
  • 13.
    Exemplo Específico: Email Váriostipos de “computadores” Vários tipos de papel (role) Várias formas de comunicação Várias camadas lógicas Realidade ainda mais complicada!
  • 14.
    Vários tipos de “computadores” Váriostipos de papel (role) Várias formas de comunicação Várias camadas lógicas Realidade ainda mais complicado Exemplo Específico: Jogos
  • 15.
  • 16.
    Presença Definitiva Sistemas distribuídosveio para ficar; Praticamente tudo que utilizamos hoje faz parte de algum sistema distribuído; Exemplo de sistema não distribuído? Jogos simples, como xadrez ou tetris; Simulação ou computação numérica; Algoritmo de Dijkstra para encontrar distâncias. Mas temos versões distribuídas de todos estes exemplos!
  • 17.
    Computação Distribuidos VsParalela Sistemas forte e fracamente acoplado Partilha de memoria; comunicação frequente
  • 18.
    Objetivos da Disciplina Quaisos desafios ao construir um sistema distribuído? Como tais desafios são superados? Estudo de aspetos e técnicas gerais encontradas em muitos sistemas distribuídos Foco em técnicas e não em tecnologias ex. Cliente/Servidor x HTTP Muitos!
  • 19.
  • 20.
  • 21.