0% acharam este documento útil (0 voto)
36 visualizações75 páginas

Vagas Remotas para Desenvolvedor Backbone JS

Enviado por

contapacesso
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
36 visualizações75 páginas

Vagas Remotas para Desenvolvedor Backbone JS

Enviado por

contapacesso
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Disciplina: Sistemas Distribuídos

Sistemas de Informação
8º Período

Prof. Cristiano Vieira


2020
1
Sistemas Distribuídos

Introdução aos Sistemas


Distribuídos

AULA 1

2
Definição

 Sloman, 1987
“Um sistema de processamento distribuído é tal
que, vários processadores e dispositivos de
armazenamento de dados, comportando
processos e/ou bases de dados, interagem
cooperativamente para alcançar um objetivo
comum. Os processos coordenam suas
atividades e trocam informações por
passagem de mensagens através de uma rede
de comunicação”

3
Definição

 Andrew Tanenbaum
“Coleção de computadores independentes que se
apresenta ao usuário como um sistema único e
consistente (coerente)”

 Coulouris
“Coleção de computadores autônomos interligados
através de uma rede de computadores e equipados
com software que permita o compartilhamento dos
recursos do sistema: hardware, software e dados”

4
5
Motivação

 Crescente dependência por parte dos usuários


 Demanda maior que avanços combinados de
hardware e software centralizados
 Características inexistentes em sistemas
centralizados como tolerância a falhas (fault
tolerance)

6
2
O que é um Sistema Distribuído?
Um sistema distribuído é uma coleção de hosts
autônomos, conectados através de uma rede de
computadores. Cada host executa componentes e
opera um middleware de distribuição, o qual
habilita os componentes a coordenarem suas
atividades de tal forma que usuários percebam o
sistema como um ambiente computacional
único e integrado.

7
Características de Sistemas Centralizados
 Um componente, com partes não autônomas
 Componentes são compartilhados por todos os
usuários durante todo o tempo
 Todos os recursos acessíveis (tipicamente)
 Software ‘roda’ em um único processo
 Ponto de controle único
 Ponto de falha único

8
Características de Sistemas Distribuídos
 Múltiplos componentes autônomos
 Componentes não são compartilhados por todos
os usuários
 Recursos podem não ser acessíveis
 Software ‘roda’ em processos concorrentes e em
processadores distintos
 Múltiplos pontos de controle
 Múltiplos pontos de falha (!!!)

9
Um sistema distribuído

10
O que é um Sistema Distribuído?

Component1 Componentn
Component1 Componentn
Middleware
Middleware
Network Operating System
Network Operating System Hostn-1
Host2 Hardware
Hardware

Component1 Componentn
Component1 Componentn
Middleware
Middleware
Network Operating System
Network Network Operating System
Hardware Host1 Hostn
Hardware

11
Infraestrutura do Setor Bancário

Serviço de Serviços de
Informações Autorização
de Clientes

Estação de
Negócios
Serviço de Banco
de Dados de Produtos

Serviços de
Marketing
Serviços em Mainframes 12
Requisitos

 Tempo para se chegar ao mercado


 Desenvolvimento de novas aplicações com
tecnologia recente
 Integração de novas aplicações tem se tornado
cada vez mais difícil
 Escalabilidade
 Administração de milhões de contas e clientes
 Milhares de usuários concorrentes
 Confiabilidade

13
Requisitos (cont.)

 Heterogeneidade de Hardware
 Mainframes (Unisys, IBM, etc.)
 Servidores SUN SPARC
 PCs
 Heterogeneidade de Sistema Operacional
 VMs, UNIX, Linux, Windows, OSX
 Heterogeneidade de Linguagem de
Programação
 PHP, C/C++, Visual Basic, Java

14
Tecnologia de Objetos Distribuídos
 Componentes de prateleira encapsulam a
funcionalidade da aplicação
 Resolvendo o problema de distribuição em um
nível mais elevado de abstração
 Resolvendo o problema da heterogeneidade
 Escalabilidade da solução

15
Por que Tecnologia de Objetos Distribuídos

 Permite uma visão uniforme de todos os


serviços da empresa e de como acessá-los
 Provê um nível apropriado de abstração
 Preserva o investimento encapsulando
aplicações legadas
 Permite explorar as vantagens da tecnologia
de objetos em novos projetos
 Uma forma natural de resolver:
 distribuição
 heterogeneidade
16
Compartilhamento de Recursos
 Habilidade de usar qualquer hardware, software
ou dados em qualquer lugar do sistema
 Gerenciador de recursos
 Controla o acesso aos recursos
 Provê um esquema de nomes para os recursos
 Controla acessos concorrentes aos recursos

17
Compartilhamento de Recursos (2)
 Modelo de compartilhamento
 Cliente / Servidor
 Baseado em objetos
 Define:
 a forma pela qual recursos são providos
 formas de uso dos recursos
 como o provedor do recurso e os usuários
interagem entre si e com o gerenciador

18
Cases

19
Case 1: Gerência de Configuração Boeing 777

20
Problemas a serem resolvidos

 Escala
 3.000.000 de peças por aeronave
 A configuração de cada aeronave é diferente
 Regulamentos demandam que registros sejam
mantidos para cada peça de uma aeronave
 Aeronave evolui durante manutenções
 Produção de 500 aeronaves por ano
 Banco de dados de configuração cresce 1,5 bilhão
de partes a cada ano
 Tempo de vida de uma aeronave: 30 anos
 45.000 engenheiros necessitam acesso on-line aos
dados de configurações
21
Problemas a serem resolvidos (cont.)
 Integração de componentes de prateleira
 Infra-estrutura de TI se tornou inadequada
 Mas a empresa não podia se dar ao luxo de re-
construir toda a sua infra-estrutura de TI
 Componentes foram comprados de diversos
fabricantes especializados
 Banco de dados relacional
 Planejamento de recursos da empresa (ERP)
 Planejamento de projetos auxiliado por computador
 Componentes precisavam ser integrados

22
Problemas a serem resolvidos (cont.)
 Heterogeneidade
 20 máquinas de banco de dados Sequent para
gerenciar os dados de configuração de aviões
 200 servidores de applicações UNIX
 Estações de trabalho NT e UNIX para os
engenheiros

23
Case 2: Napster

24
Outros Exemplos Similares
 Similares ao NAPSTER
 EMULE
 BITORRENT
 SKYPE (VoIP)
 MSN MESSENGER, YAHOO
 Outros
 APLICAÇÕES DE MULTIMÍDIA
 WEB conferência
 Difusão de streams on-line (voz, vídeo)

25
Case 3: Cluster (JAGUAR)

JAGUAR
Cluster de máquinas do Oak Ridge National
Laboratory (EUA)
Primeiro da lista dos TOP 500 SUPERCOMPUTERS
INSTALADO EM 2009
224.162 CORES 1.759.000 Gflops

FONTE http://www.top500.org/list/2010/06/100

Solução: agrupamento físico de Cluster atual:


máquinas de menor porte = cluster: https://tecnoblog.net/104684/ib
•Mesmo espaço geográfico m-sequoia-supercomputador/
•Normalmente dentro da mesma
organização, com software/hardware http://www.top500.org/list
homogêneos
•Softwares: OpenMosix, Condor e
Oscar 26
Case: Cluster

CLUSTERS ou AGRUPAMENTOS
 Máquinas conectadas por rede de alta
velocidade
 Necessidade de alto desempenho computacional

 Evitar custo de máquinas de alto desempenho

 Objetivo: compartilhar recursos computacionais

 De processamento
 De armazenamento
 De memória
 Outros 27
Cluster

Clusters são utilizados para...


 Aumentar a disponibilidade de serviço
 se um nodo falha, outro assume
 Equilibrar carga de trabalho
 um ou mais computadores do cluster atuam como
distribuidores da carga entre os demais
 Alto desempenho
 Para resolver tarefas complexas que podem ser
decompostas em sub-tarefas, cada uma rodando num
nodo do cluster.
 Implementação mais comum: LINUX e software livre
para implementar paralelismo = Beowulf cluster

28
29
30
31
32
33
34
35
A evolução dos
sistemas distribuídos

principais eventos

36
Breve Histórico

 Apareceu no fim da década de 60 dentro do


contexto de Sistemas Operacionais.
 A motivação foi a criação de unidades de
hardware denominadas canais ou dispositivos
de controle.
 Estes dispositivos funcionavam independente
de um processador de controle e podiam
fazer operações de E/S concorrentemente
com a execução de um programa.

37
Breve Histórico (2)
 Um canal que comunicava-se com o
processador central através de uma interrupção.
 Com a introdução dos canais, partes de um
programa poderiam funcionar de forma
imprevisível.
 Logo após o aparecimento dos canais, foram
desenvolvidos as máquinas multiprocessadas.
 Estas máquinas permitiam que aplicações
diferentes pudessem ser executadas em
processadores diferentes ao mesmo tempo.

38
Breve Histórico (3)
 Permitiam também que uma aplicação pudesse
ser executada mais rapidamente se fosse
reescrita de forma a utilizar múltiplos
processadores.

39
ARPANet
 Advanced Research Projects Agency Network - 1969
 Departamento de Defesa dos EUA
 bases militares e departamentos de pesquisa do governo

 universidades e outras instituições que faziam trabalhos envolvidos


à defesa
 primeira rede à base de comutação de pacotes
 backbone subterrâneo

 mainframes

 NCP (Network Control Protocol)

 compartilhamento de arquivos, acesso remoto, correio eletrônico

 precursora da Internet
 ARPANet (academia) e MILNET (militar)

 TCP/IP ( Transfer Control Protocol/Internet Protocol) – 1983

40
Ethernet
 Protocolo para rede local de computadores
 Camadas física (1) e de enlace (3) da rede
 Xerox PARC, 1973, Robert Metcalfe
 inspirado na ALOHAnet: rede por rádio, Hawaii,
anos 60
 padrão de fato: DEC, Intel e Xerox, 1980
 produção em escala: baixo custo
 computadores pessoais

41
Internet
 DNS (Domain Name System) – 1984
 FTP (File Transfer Protocol) – 1985
 SNMP (Simple Mail Transfer Protocol)
 POP3 (Post Office Protocol)
 IMAP (Internet Message Access Protocol)
 SSH (Secure Shell)
 VNC (Virtual Network Computing)
 computadores pessoais

42
World Wide Web – WWW
 CERN (Suíça)
 Tim Berners-Lee
 1980: ENQUIRE
 compartilhamento de informações sobre pesquisa

 sistema de hipertexto (origem em 1960: Projeto Xanadu)

 1990: World Wide Web


 união com a Internet

 sistema cliente-servidor

 HTTP (HyperText Transfer Protocol)

 HTML (HyperText Markup Language)

 URI (Uniform Resource Identifier)

 1993:
 CERN libera a WWW

 Navegador Mosaic, precursor do Netscape

43
Motores de Busca
 Information Retrieval
 início:1970 (aprox.)
 formalização do conceito de hipertexto: 1972
 consolidação: 1978 (aprox.)
 modelos probabilísticos
 Yahoo!
 Altavista
 Google:
 alta disponibilidade
 desempenho
 escalabilidade
 baixo custo operacional

44
Colaboração na Internet
 Mensagem instantânea (síncronos)
 Chats (assíncronos)
 Vídeoconferência (streams)
 Redes sociais
 Wiki

45
Transmissão de Mídia
 canais de rádio e TV
 podcast
 voz/telefonia sobre IP (redes convergentes)
 Napster (1999 – 2002)
 BitTorrent – 2003 (Peer-to-Peer)
 eDonkey – 2000
 KaZaA – 2002

46
Internet – Número de Hosts

47
Internet – Número de Servidores Web

48
Internet – Mercado de Servidores Web

49
Os benefícios de sistemas distribuídos

50
Benefícios
 Comunicação de dados
 Compartilhamento de recursos
 Integração e cooperação
 Confiabilidade e disponibilidade
 Crescimento gradativo do poder computacional
 Relação custo/benefício
 Implantação de aplicações

51
Os problemas em sistemas distribuídos

52
Paradigma de programação
 processos e mensagens
 chamada remota de procedimento
 memória compartilhada distribuída
 eventos (publish/subscribe)

53
Depuração de aplicações distribuídas
 difícil reprodução de erros
 teste isolados e testes de integração
 ambientes de simulação
 alto custo de desenvolvimento
 alto custo de manutenção

54
Confiabilidade e disponibilidade do meio
 falhas de rede
 falhas de processadores
 falhas
 fail-silent
 bizantinas
 redundância: alto custo
 física
 lógica

55
Tipos de falhas

56
Segurança do meio
 ataques
 acessam serviços que atendem via rede
 exploram fragilidades de código
 alteram o código do serviço
 instalam código “maléfico” ao sistema
 fazem sobrecarga de requisições
 criptografia
 assinatura digital
 autenticação
 autorização
 firewalls

57
Desempenho das aplicações
 latência
 não-determinismo
 exigências de tempo real
 sincronismo de eventos

58
Consistência das aplicações
 sincronismo de relógios físicos
 sincronismo de eventos (relógios lógicos)
 atomicidade no envio de mensagens
 acesso concorrente
 compartilhamento de recursos
 servidores multi-threaded
 transação distribuída
 tolerância a falhas
 backward recovery
 forward recovery

59
Escalabilidade dos sistemas
 desempenho estável
 crescimento no número de usuários
 crescimento no volume de dados
 crescimento no volume de requisições
 técnicas básicas
 replicação
 cache

60
Gerações de Sistemas Distribuidos

61
Heteregoneidade
 protocolos de rede
 sistemas operacionais
 linguagens de programação

62
Transparência em
Sistemas Distribuídos
Transparência
 acesso
 localização
 falha
 replicação
 migração
 concorrência
 desempenho
 paralelismo
 escalabilidade
 persistência
 transação

64
Transparência
 Um sistema distribuído deve ser percebido
por seus usuários e pelos programadores de
aplicações como um sistema único e coeso
 ao invés de uma coleção de máquinas
separadas
 Várias dimensões de transparência
identificadas pelo modelo ISO RM-ODP
 Modelo de Referência para Sistemas
Distribuídos Abertos
 Representam as diversas propriedades que
um sistema distribuído deve possuir

65
Transparências de Distribuição

Scalability Performance Failure


Transparency Transparency Transparency

Migration Replication Concurrency


Transparency Transparency Transparency

Access Location
Transparency Transparency

66
Transparência de Acesso

 Permite que objetos e informações remotas


sejam acessados usando operações
idênticas
 Mascara as diferentes formas de acesso
empregadas por cada tecnologia utilizada
 Exemplos:
 Operações de acesso a um sistema de arquivos
distribuído com NFS (Network File System)
 Navegação na WEB
 Consultas em SQL

67
Transparência de Localização
 Permite que objetos e informações sejam
acessados sem o conhecimento de sua
localização
 Exemplos:
 Arquivos acessados via NFS
 Páginas na WEB (*)
 Tabelas em um banco de dados distribuído

68
Transparência de Concorrência
 Permite que vários processos operem
concorrentemente usando objetos de
informação compartilhados sem interferirem
entre si
 Exemplos:
 NFS
 Caixa eletrônico
 Sistema gerenciador de bancos de dados (SGBD)

69
Transparência de Replicação

 Permite que múltiplas instâncias de objetos


de informação sejam usados para melhorar
o desempenho e a confiabilidade
 Sem que os usuários ou programadores de
aplicações tomem conhecimento da
existência das réplicas
 Exemplos:
 SGBD distribuído
 Espelhamento de páginas WEB

70
Transparência de Falhas
 Mascara a ocorrência de falhas
 Permite que usuários e aplicações completem
suas tarefas normalmente a despeito de falhas
em alguns componentes do sistema
 Exemplo:
 Transações em um SGBD

71
Transparência de Migração
 Permite a movimentação de um objeto dentro
do sistema distribuído sem afetar as
operações dos usuários ou dos programas de
aplicação
 Duas variantes:
 Migração propriamente dita: com relação ao
objeto migrado
 Relocação: com relação a outros objetos no
sistema
 Exemplos:
 NFS
 Páginas WEB
72
Transparência de Desempenho
 Permite que o sistema distribuído seja
reconfigurado para melhorar o desempenho
para refletir mudanças na carga de
processamento
 Através de replicação e migração
 Exemplo:
 Utilitário make distribuído
 Programa é compilado em várias máquinas em paralelo,
transparentemente para o usuário

73
Transparência de Escala
 Permite que o sistema e as aplicações possam
ser expandidos em escala sem a necessidade de
mudanças em sua estrutura ou nos algoritmos
utilizados
 Exemplo:
 WWW
 Bancos de dados distribuídos

74
Pontos-Chave

 O que é um Sistema Distribuído


 Adoção de sistemas distribuídos é regida
por requisitos não-funcionais
 Necessidades de distribuição são
transparentes aos usuários e projetistas de
aplicações
 Várias dimensões de transparência
 Dimensões de transparência dependem
entre si

75

Você também pode gostar