Buscar

Sistemas Distribuídos (Aula-01 - Introdução)

Prévia do material em texto

Sistemas Distribuídos
Introdução (visão geral)
CURSO: Tecnologia em Análise e Desenvolvimento de Sistemas (TADS)
DISCIPLINA: Sistemas Distribuídos
PROFESSOR: Claudio Roberto de Lima Martins
cmartins.ifpa@outlook.com
1
mailto:cmartins.ifpa@outlook.com
Agenda
• Introdução
• Evolução Histórica
• Motivação
• Definição de Sistemas Distribuídos (SD)
• Características de SD 
• Desafios
• Exemplos
• Resumo
2
Introdução
• Redes de computadores estão presentes em toda parte!
▫ Redes móveis (Mobile phone networks)
▫ Redes corporativas (Corporate networks)
▫ Redes em fábricas
▫ Redes domésticas
▫ Redes indoor 
▫ Redes em aviões, trens, 
metrôs, ônibus, caros, etc.
todas elas, tanto separadamente como em 
conjunto, compartilham as características 
básicas relacionados a sistemas distribuídos. 
3
Evolução histórica
• Computadores iniciais: caros e grandes
▫ execução por um operador: setup do job (carregar cartões), 
executar programa, imprimir resultado
• Anos 50 e 60: batching, spooling, multiprogramação
▫ batching: juntar jobs semelhantes para processamento
▫ spooling: sobreposição de I/O e CPU
▫ multiprogramação: diversos programas sendo executados 
concorrentemente pela CPU
▫ Objetivo: otimizar a utilização da CPU 
4
Evolução histórica
• Não existia a interação entre usuário e computador
▫ alto custo para processos interativos: depuração
• Início dos anos 60: sistemas de time sharing
▫ utilização de diversos terminais “burros” conectados a um 
computador
▫ impressão de um computador por usuário
▫ tarefas principais/comuns são executadas pelo 
computador principal
 desenvolvimento dos minicomputadores: menores e mais rápidos!
▫ 1o. passo na direção dos sistemas distribuídos!
 compartilhamento de recursos
 acesso remoto
• Terminais e computador muito próximos
5
Evolução histórica
• Final dos anos 60 e início dos anos 70: surgimento 
das redes de computadores e do sistema operacional 
UNIX
▫ Ethernet – Xerox Palo Alto (1973): Local Area Network
 permitiu interligar mais computadores a distâncias 
maiores usando uma velocidade maior (e.g. rede de 
computadores de um prédio)
▫ ARPANet – DoD (1969): Wide Area Network
 interligação entre computadores localizados 
dispersamente (cidades e/ou países diferentes)
6
Evolução histórica
• Final dos anos 70: protocolo TCP/IP
▫ definição de padrão para comunicação entre computadores
• 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, MAIL
7
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 telefones celulares, redes corporativas, 
redes caseiras
▫ redes de computadores de alta velocidade (Myrinet 
~2Gb/s)
8
Motivação
• Compartilhamento de recursos
▫ Componentes de HW (disco, impressora)
▫ SW (arquivos, bases de dados, programas)
▫ Outros (vídeo, áudio)
• Relação custo/desempenho
▫ melhor utilizar diversos processadores 
interconectados do que um único computador 
centralizado
9
Definição de Sistema Distribuído
• O que é um Sistema Distribuído?
▫ Um sistema distribuído é uma coleção de 
computadores independentes que parecem um 
sistema único para o usuário [Tanenbaum].
▫ É um sistema onde os componentes de HW e SW, 
localizados em computadores interligados por 
uma rede, comunicam e coordenam suas ações 
somente através de troca de mensagens 
[Coulouris].
10
Outra definição de SD
• "Você sabe que tem um sistema distribuído quando a 
falha de um computador do qual você nunca ouviu 
falar faz com que você pare completamente de 
trabalhar." [Leslie Lamport]
- Dois aspectos:
▫ Hardware: autonomia
▫ Software: sistema único
11
Redes vs. Sistemas Distribuídos 
• Sistemas Distribuídos: 
▫ A existência de múltiplos computadores autonômos é transparente. 
• Porém,
▫ muitos problemas em comum, mas em diferentes níveis 
(ex: segurança, confiabilidade…) 
 Redes foca em pacotes, roteamento, etc., enquanto SD foca em 
aplicações.
 SD confia nos serviços fornecidos por uma rede de computadores.
Computer Networks
Distributed Systems
12
• Redes: 
▫ um meio de interconexão local ou à distância 
de computadores que trocando mensagens 
baseado em protocolos. As entidades na rede 
são visíveis e são explicitamente endereçaveis 
(Ex: endereço IP)
Características
• Processos são executados concorrentemente no 
sistema distribuído
▫ não existe um controle global!
▫ processos usam 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
13
Características
• Falhas independentes
▫ a falha de um dos componentes (rede, 
máquinas, programas) do sistema distribuído não 
implica na falha do sistema como um todo.
14
Vantagens
• Economia – melhor relação custo/desempenho
▫ Lei de Grosch: desempenho é proporcional ao 
quadrado do custo
 Lei válida somente para plataforma dos “mainframes”
• Velocidade
▫ 10.000 CPUs x 50 MIPS = 500.000 MIPS
▫ Uma CPU para isto deveria executar uma instrução a 
cada 0,002 nanosegundos (2 picosegundos).
15
Vantagens
• Exemplos de aplicações (sistemas) que devem 
empregar arquitetura distribuída:
▫ Sistema de reservas de passagens de viagens, hotéis, 
ingressos no cinema, teatro, etc.
▫ CSCW – computer supported cooperative work 
(Sistemas de Trabalho Cooperativo)
▫ CSCG – computer supported cooperative game 
(Sistemas de Jogos On-line)
16
Vantagens
• Maior confiabilidade (reliability) e disponibilidade
▫ grau de tolerância contra erros e falhas de componentes 
em um sistema
 5% fora do ar = 5% em perda de desempenho
▫ Aplicações críticas: aviação, reatores nucleares
▫ Replicação de componentes
• Facilidade de expansão
▫ permite aumentar o poder de 
processamento/armazenamento sem se desfazer daquilo 
que já possui, isto é, de maneira gradativa.
17
Vantagens
• Permite o compartilhamento de dados/informação
▫ desenvolvimento de software distribuído (e.g. 
Controle de Versão com Git ou CVS)
• Permite o compartilhamento de recursos
▫ economia (Ex. impressora, software, bases de dados, 
disco, pool de processadores)
18
Exemplo
• Impressão usando 
a rede web 
(usando o serviço 
de impressão do 
Google)
19
Desvantagens
• Maior dificuldade na garantia de segurança (crítico!)
• Desevolvimento de sw distribuído é mais complexo
• Gerência de recursos mais complexa
• Alto custo para implementar aplicações 
colaborativas
• Causas
▫ recursos são fisicamente separados
▫ mensagens podem atrasar
▫ mensagens podem ser perdidas
▫ ...
20
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
21
Desafios
• 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
22
Exemplos de Sistemas Distribuídos
• Internet: grande coleção de diferentes redes de 
computadores interconectadas. Comunicação 
através de troca de mensagens
▫ Serviços: www, ftp, mail
• Intranet: parte da Internet administrada 
separamente
▫ Políticas de segurança locais (firewall)
▫ Necessidades: serviço de compartilhamento de arquivos, 
firewalls para proteção, facilidade de instalação e 
suporte de software
23
Exemplos de SDs
• Computação móvel: avanços na miniaturização de 
dispositivos e redes sem fio
▫ Integração de pequenos dispositivos computacionais 
portáteis
▫ Laptops, PDAs,celulares, pagers, câmeras digitais, 
wearable devices, dispositivos integrados a utensílios
▫ Problemas: descoberta de recursos no ambiente, 
reconfiguração de dispositivos, privacidade e 
segurança
24
Exemplos de Aplicações com SDs
• Caixas automáticos de Banco
• Sistema de reserva de passagens
• SETI@home
• Netflix (serviço de streamming de video)
• Jogos “on line” 
• Sistemas de comunicação (Skype, WhatsApp)
• A arquitetura Blockchain (usado no BitCoin)
25
SETI@home -Search for Extraterrestrial Intelligence at Home
• Universidade da Califórnia, Berkeley
• Objetivo: utilizar a capacidade de processamento de 
centenas de milhares de computadores conectados à 
Internet na procura de inteligência extraterrestre
• Utilização:
▫ instalação de um programa (screensaver)
▫ quando o computador esta ocioso o programa 
realiza o download de um pacote de dados (work 
unit - ~340KB) obtidos por rádio-telescópio 
(Observatório de Arecibo) e faz uma procura por 
sinais extraterrestres
• Possui aproximadamente 3 milhões de usuários
26
https://setiathome.berkeley.edu/
https://setiathome.berkeley.edu/
SETI@home
27
Structure of the SETI@home data server
28
https://www.researchgate.net/publication/3422381_SETIhome-massively_distributed_computing_for_SETI
https://www.researchgate.net/publication/3422381_SETIhome-massively_distributed_computing_for_SETI
Netflix
http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html
O Netflix é uma plataforma de serviços de distribuição de filmes e séries de TV 
online, um serviço de streaming completo.
Baseado na “nuvem” em um sistema distribuídos em vários servidores espalhados 
no mundo.
29
http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html
http://www.techtudo.com.br/tudo-sobre/netflix.html
A arquitetura Blockchain
30
https://www.concrete.com.br/2017/08/25/blockchain-a-arquitetura-disruptiva/
https://www.concrete.com.br/2017/08/25/blockchain-a-arquitetura-disruptiva/
Resumo
• Sistemas Distribuídos estão em toda parte . 
• A Internet permite que os usuários em todo o mundo acessem 
seus serviços onde quer que estejam.
• Compartilhamento de recursos são os principais fatores de 
motivação para a construção de sistemas distribuídos. 
• Construção de SD produz muitos desafios
▫ Heterogeneidade, abertura, segurança, escalabilidade, 
tratamento de falhas, concorrência e transparência . 
• Sistemas distribuídos possibilitam a globalização: 
Comunidades (equipes virtuais, organizações, redes sociais), 
Ciência (e-Science), Negócios (e-Bussiness).
31
Aula 1 - Sistemas Distribuídos - Conceitos Básicos
https://www.youtube.com/watch?v=BSufWy0ZIeo
https://www.youtube.com/watch?v=BSufWy0ZIeo
Exercícios (selecionados do livro “Couloris” – cap1)
1. Cite cinco tipos de recurso de hardware e cinco tipos de 
recursos de dados ou de software que possam ser 
compartilhados com sucesso. Dê exemplos práticos de seu 
compartilhamento em sistemas distribuídos. 
2. Compare e contraste a computação em nuvem com a 
computação cliente-servidor mais tradicional. O que há de 
novo em relação à computação em nuvem como conceito? 
3. Use a World Wide Web como exemplo para ilustrar o conceito 
de compartilhamento de recursos, cliente e servidor. Quais 
são as vantagens e desvantagens das tecnologias básicas 
HTML, URLs e HTTP para navegação em informações? Alguma 
dessas tecnologias é conveniente como base para a 
computação cliente-servidor em geral? 
32
exercicios (cont)
4. Os recursos na World Wide Web e outros serviços 
são nomeados por URLs. O que denotam as iniciais 
URL? Dê exemplos de três diferentes tipos de 
recursos da Web que podem ser nomeados por 
URLs. 
5. Cite um exemplo de URL HTTP. Liste os principais 
componentes de um URL HTTP, dizendo como seus 
limites são denotados e ilustrando cada um, a partir 
de seu exemplo. Até que ponto um URL HTTP tem 
transparência de localização?
33
Resolução
34
1. Cite cinco tipos de recurso de hardware e cinco tipos de recursos de dados ou de software 
que possam ser compartilhados com sucesso. Dê exemplos práticos de seu compartilhamento 
em sistemas distribuídos. 
Hardware:
 CPU: servidor de computação (executa aplicativos intensivos em processador para 
clientes), servidor de objetos remoto (executa métodos em nome de clientes), programa 
worm (compartilha capacidade de CPU da máquina de mesa com o usuário local). A 
maioria dos outros servidores, como servidores de arquivos, fazem alguma computação 
para seus clientes, daí a sua CPU é um recurso compartilhado.
 Memória: cache de servidor (mantém as páginas web acessadas recentemente na sua 
RAM, para acesso mais rápido por outros computadores locais)
 Disco: servidor de arquivos, servidor de disco virtual (consulte o Capítulo 8), servidor 
de vídeo sob demanda (consulte o Capítulo 15).
 Tela (de vídeo): Os sistemas de janelas de rede, como o X-11, permitem que os 
processos em computadores remotos atualizem o conteúdo das janelas.
 Impressora: impressoras em rede aceitam trabalhos de impressão de muitos 
computadores. Gerenciando-os com um sistema de enfileiramento.
 Circuitos de rede: a transmissão de pacotes permite que muitos canais de comunicação 
simultâneos (fluxos de dados) sejam transmitidos nos mesmos circuitos.
35
Dados / software:
 Página da Web: os servidores web permitem que vários clientes compartilhem conteúdo de página 
somente leitura (geralmente armazenado em um arquivo, mas às vezes gerado on-the-fly).
 Sistema de Arquivos: os servidores de arquivos permitem que vários clientes compartilhem 
arquivos de leitura e gravação. Atualizações conflitantes podem resultar em resultados 
inconsistentes. Mais útil para arquivos que mudam com pouca freqüência, como binários de 
software.
 Objeto: as possibilidades para objetos de software são ilimitadas. Por exemplo. “Whiteboard” 
compartilhado (edição de imagem), documentos compartilhados (texto, planilha), agenda 
compartilhada, sistema de reserva de hospedagem, etc.
 Base de dados: as bases de dados destinam-se a registrar o estado definitivo de alguns conjuntos 
de dados relacionados. Eles foram compartilhados desde o surgimento dos computadores 
multiusuários. Eles incluem técnicas para gerenciar atualizações simultâneas.
 Conteúdo de notícias em newsgroup: O sistema de notícias faz cópias somente leitura das 
notícias publicadas recentemente disponíveis para clientes em toda a Internet. Uma cópia do 
conteúdo do newsgroup é mantida em cada servidor de notícias que é uma réplica aproximada 
daqueles em outros servidores. Cada servidor disponibiliza seus dados para vários clientes.
 Fluxo (streaming) de vídeo/áudio: os servidores podem armazenar vídeos inteiros em disco e 
entregá-los em velocidade de reprodução para vários clientes simultaneamente.
 Lock exclusivo: um objeto em nível de sistema fornecido por um servidor de bloqueio, permitindo 
que vários clientes coordenem seu uso de um recurso (como a impressora que não inclui um 
esquema de fila).
Resolução
36
2. Compare e contraste a computação em nuvem com a computação cliente-servidor mais 
tradicional. O que há de novo em relação à computação em nuvem como conceito? 
No livro, a computação em nuvem é definida em termos de: 
(1)suporte a serviços baseados na Internet (se aplicativos, armazenamento ou outros 
serviços baseados em computação), onde tudo é um serviço,
- é completamente consistente com a computação cliente-servidor e, de fato, os 
conceitos de cliente-servidor suportam a implementação da computação em nuvem.
(2) dispensar armazenamento local de dados ou software aplicativo. 
- destaca um dos elementos-chave da computação em nuvem em se mudar para um 
mundo onde você pode dispensar serviços locais. Esse nível de ambição pode ou não 
estar presente na computação cliente-servidor. 
A computação em nuvem promove uma visão da computação como uma utilidade e isso está 
ligadoa modelos de negócios frequentemente novos, em que os serviços podem ser 
alugados ao invés de serem propriedade, levando a uma abordagem mais flexível e elástica 
à prestação e aquisição de serviços. Esta é uma distinção fundamental na computação em 
nuvem e representa a novidade fundamental na computação em nuvem.
Para resumir, a computação em nuvem é parcialmente uma inovação técnica em termos do 
nível de ambição, mas em grande parte uma inovação de negócios em termos de 
visualização de serviços de computação como um utilitário.
Resolução
37
3. Use a World Wide Web como exemplo para ilustrar o conceito de compartilhamento de recursos, cliente e 
servidor. Quais são as vantagens e desvantagens das tecnologias básicas HTML, URLs e HTTP para navegação 
em informações? Alguma dessas tecnologias é conveniente como base para a computação cliente-servidor em 
geral? 
 Páginas da Web são exemplos de recursos que são compartilhados. Esses recursos são 
gerenciados por servidores Web.
 Arquitetura cliente-servidor. O Navegador da Web é um programa cliente (por exemplo, 
Firefox ou IE) executado no computador. O servidor Web acessa os arquivos locais que contêm 
as páginas da Web e os fornece ao cliente (processos do navegador).
 HTML é uma linguagem relativamente simples para analisar e processar, mas confunde 
apresentação com os dados subjacentes que estão sendo apresentados.
 Os URLs são localizadores de recursos eficientes, mas não são suficientemente ricos como 
links de recursos. Por exemplo, eles podem apontar para um recurso que foi realocado ou 
destruído; sua granularidade (como um recurso) é muito grosseira para muitos propósitos.
 O HTTP é um protocolo simples que pode ser implementado com uma pequena pegada e que 
pode ser usado em muitos tipos de transferência de conteúdo e outros tipos de serviço. Sua 
verbosidade (mensagens HTML tendem a conter muitas strings) torna ineficaz para passar 
pequenas quantidades de dados.
 HTTP e URLs são aceitáveis ​​como uma base para a computação cliente-servidor, exceto que 
(a) não há forte typechecking (serviços web operam por tipo de verificação de valor sem apoio 
do compilador), (b) há a ineficiência que mencionamos.
Resolução
38
4. Os recursos na World Wide Web e outros serviços são nomeados por URLs. O que denotam as 
iniciais URL? Dê exemplos de três diferentes tipos de recursos da Web que podem ser nomeados 
por URLs. 
URL siginifica Uniform Resource Locator (localizador de recurso uniforme).
Três exemplos de recursos que podem usar URLs: um arquivo ou uma 
imagem, filmes, som, qualquer coisa que pode ser processado, uma consulta 
a um banco de dados ou a um mecanismo de busca.
Resolução
39
5. Cite um exemplo de URL HTTP. Liste os principais componentes de um URL HTTP, dizendo 
como seus limites são denotados e ilustrando cada um, a partir de seu exemplo. Até que ponto um 
URL HTTP tem transparência de localização?
Exemplo de URL HTTP: http://ifpa.edu.br/index.php 
Principais componentes:
• Antes do “:” define o protocolo; ex: http ("HyperText Transport Protocol").
• A parte entre // e / é o nome do domínio no servidor web. Ex: ifpa.edu.br
• O resto (depois de /) refere-se à informação solicitada ao servidor (o 
recurso) que está dentro de um diretório usado no servidor web. Ex: o 
recurso “index.php” está localizado no diretório raiz do servidor ifpa.edu.br
Quanto à transparência: O nome do host "www" é independente da 
localização, por isso temos a transparência do local em que o endereço de um 
determinado computador não está incluído. Portanto, a organização pode 
mover o serviço da Web para outro computador. Porém, se a responsabilidade 
de fornecer um serviço de informações baseado em WWW se deslocar para 
outra organização, a URL precisaria ser alterada.
Referências
• Vídeo-Aulas de Sistemas Distribuídos da Univesp -
Universidade Virtual do Estado de São Paulo 
▫ https://youtu.be/e4zmQQU3ZqE
40

Continue navegando