Aula 01 Fund a Mentos Intros d
-
Upload
onnezimo-barbosa -
Category
Documents
-
view
14 -
download
3
description
Transcript of Aula 01 Fund a Mentos Intros d
+
Sistemas Distribuídos 2013.1 – Eng. Computação
Prof. Jairson Rodrigues
Aula 01 – Conceitos de Sistemas Distribuídos
FUNDAMENTOS
+Apresentação
! Geral ! Habilitar o aluno a reconhecer as principais características e
algoritmos em um sistema distribuído.
! Específicos ! Familiarizar o aluno com o modelo distribuído de computação;
! Apresentar os principais conceitos envolvidos no projeto e no desenvolvimento de sistemas distribuídos;
Objetivos da Disciplina
2
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+Apresentação
! Conceitos
! Modelos de Sistemas Distribuídos
! Comunicação entre Processos Distribuídos
! Objetos Distribuídos e Invocação Remota
! Processos e Threads
! Suporte do Sistema Operacional
Conteúdo Programático
3
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+Apresentação
! Sistemas de Arquivos Distribuídos
! Sistemas P2P
! Relógios e Sincronização
! Algoritmos de Coordenação e Acordo
! Transações Distribuídas e Controle de Concorrência
! Estudo de Caso: Projetando Sistemas Distribuídos (Google)
Conteúdo Programático
4
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
6
" Introdução " Modelos de Sistemas " Comunicação entre Processos " Invocação Remota " Comunicação Indireta " Suporte do S.O.
Fundamentos " Objetos Distribuídos e
Componentes " Web Services " Sistemas Peer-to-Peer
Middleware
" Serviços de Nome " Sistemas de Arquivo Distribuídos
Serviços do Sistema " Tempo e Estados Globais " Coordenaçõ e Acordo
Algoritmos Distribuídos
" Controle de Concorrência " Transações Distribuídas
Dados Compartilhados " Computação em Nuvem " Virtualização " Computação Ubíqua e Pervarsiva " Universal Description, Discovery and Integration - UDDI " Serviços de Autenticação – Oauth " Sistemas Multimídia Distribuídos " Arquitetura Orientada a Serviços – SOA " Simple Object Access Protocol - SOAP
Seminários
O Sistema Distribuído GOOGLE
Estudo de Caso
Roteiro
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
7
" Introdução " Modelos de Sistemas " Comunicação entre Processos " Invocação Remota " Comunicação Indireta " Suporte do S.O.
Fundamentos " Objetos Distribuídos e
Componentes " Web Services " Sistemas Peer-to-Peer
Middleware
" Serviços de Nome " Sistemas de Arquivo Distribuídos
Serviços do Sistema " Tempo e Estados Globais " Coordenaçõ e Acordo
Algoritmos Distribuídos
" Controle de Concorrência " Transações Distribuídas
Dados Compartilhados " Computação em Nuvem " Virtualização " Computação Ubíqua e Pervarsiva " Universal Description, Discovery and Integration - UDDI " Serviços de Autenticação – Oauth " Sistemas Multimídia Distribuídos " Arquitetura Orientada a Serviços – SOA " Universal Description, Discovery and Integration - UDDI
Seminários
O Sistema Distribuído GOOGLE
Estudo de Caso
Aula de Hoje
+
AGENDA Definições
Exemplos e Aplicações
Motivos para distribuição
Consequências da distribuição
Desafios
Exercícios
FUNDAMENTOS
Aula 01 – Conceitos de Sistemas Distribuídos
+ Definições
! “Definir exatamente um SD é perigoso, pois uma característica importante (ou que pode ser importante no futuro) pode ser esquecida” (Mullunder)
! Podemos pensar sistema distribuído como aquele “sistema em que uma interrupção em uma máquina ou serviço que você nem sabia que existia faz com que o seu computador deixe de funcionar”.
O que é um Sistema Distribuído?
9
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+ Definições
! “Um sistema em que componentes de hardware e software localizados em computadores em rede se comunicam e coordenam suas ações por passagem de mensagens.” (Coulouris)
! “Coleção de computadores independentes que se apresentam aos seus usuários como um único sistema coerente” (Tanenbaum)
! “Conjunto de computadores autônomos conectados por uma rede, cada um deles equipado com um software de SD” (Coulouris)
! “Sistema com várias entidades de processamento e vários dispositivos de armazenamento, conectados entre si por uma rede” (Mullunder)
Com mais formalidade
10
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+Exemplos e Aplicações O maior e melhor deles… A Internet
11
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+Exemplos e Aplicações Mais exemplos: uma Intranet (LAN, MAN, WAN…)
12
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+Exemplos e Aplicações Mais exemplos: Computação móvel e ubíqua
13
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+Exemplos e Aplicações Mais exemplos: Computação nas Nuvens
14
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
+Domínios de Aplicação
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
15
! Finanças e Comércio ! Amazon, eBay, Paypal, Internet Banking, Caixa Eletrônico
! Engenhos de busca e informação na web ! Google, Yahoo, Wikipedia, Facebook, MySpace
! Indústrias Criativas e Entretenimento ! Jogos online, compra de música e filmes, Youtube, Flickr
! Medicina ! Monitoramento remoto de pacientes, prontuários online
+Exemplos e Aplicações
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
16
! Educação ! Educação à Distância (EAD), Ambientes virtuais de aprendizado
! Transportes e Logística ! Sistemas de rota e localização, Google Maps, Google Earth
! Monitoramento Ambiental ! Sensores para monitoramento de terremotos e tsunamis
! Política e Organizacional do Estado ! A eleição eletrônica brasileira; Imposto de Renda de Pessoa
Física (IRPF – Receita Federal)
! ...
+Motivos para Distribuição
! Distribuição funcional: os recursos naturalmente estão distribuídos ! Necessidade para compartilhar recursos (HW + SW) entre
usuários finais, outros sistemas ou objetos distribuídos
! Componentes de hardware: como impressoras e discos
! Entidades lógicas: arquivos, objetos remotos
! Recursos de alto nível: páginas web, bancos de dados
! Servicos: motores de busca: (Google, Yahoo etc…), conversores de moeda
! Razões econômicas: supercomputadores são mais poderosos, porém muito mais caros
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
17
+Motivos para Distribuição
! Distribuição inerente, que provém do domínio da aplicação ! Caixas e sistema de controle de estoque em supermercados; ! Terminais de acesso e servidores para processamento de
transações bancárias.
! Aumento da capacidade computacional ! 10.000 CPUs, executando 50 MIPS resulta em 500.000 MIPS. Cada
instrução executa em 0.002 nsec. Um único processador deste derreteria imediatamente nestas condições.
! Distribuição para balanceamento de carga
! Separação física: segurança, questões de estrutura, confidencialidade, disponibilidade...
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
18
+Consequências da Distribuição
! Concorrência ! Execução concorrente é norma;
! Acesso simultâneo a páginas, arquivos, serviços etc;
! Necessário coordenacão de recursos
! Inexistência de relógio global ! Troca de mensagens precisa de noção de tempo;
! Necessidade de sincronização de relógios;
! Não há noção global única de tempo
! Falhas independentes ! Resultam em isolamento das partes conectadas
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
19
+Desafios
! Desafios reais para desenvolvedores: ! Heterogeneidade
! Abertura
! Segurança
! Escalabilidade
! Tratamento de Falhas
! Concorrência
! Transparência
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Características de SD’s Robustos e de Qualidade
20
+Desafios
! Qualifica aquilo que varia e é diferente: ! Infra-estrutura de rede; ! Hardware dos computadores; ! Sistemas Operacionais; ! Linguagens de Programação; ! A implementação por diferentes programadores.
! Middleware - Soluciona a heterogeneidade através da criação de uma camada intermediária
! Código Móvel ! Enviado do servidor para execução no destino; ex: Applets Java. ! Necessidade de Máquina Virtual; ex: Java Virtual Machine
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Heterogeneidade
21
+Desafios
! Característica dos sistemas de informação serem expansíveis e re-implementados de várias maneiras. ! Grau de extensibilidade - capacidade de acoplar novas
funcionalidades a uma aplicação, de forma que não seja necessário realizar grandes mudanças em outras partes dela.
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Abertura
22
+Desafios
! Que sejam conhecidas as interfaces através da publicação de sua documentação
! Que haja um mínimo de padronização por que senão o processo se torna lento e moroso para atingir os objetivos
! Exemplo de publicação de interface: Requests For Comments ou RFCs – www.ietf.org
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Abertura – Condições Necessárias
23
+Desafios
! Proporcionar o nível de confidencialidade exigido pelos usuários
! Garantir a integridade dos dados
! Manter a disponibilidade do sistema
! Problemas ainda sem solução definitiva ! Ataques de DoS e DDoS ! Segurança de Código Móvel
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Segurança
24
+Desafios
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Escalabilidade – Evolução
25
da Internet
+Desafios
! Um sistema possui escalabilidade se permanece eficiente quando há um aumento significativo de número de recursos e de usuários
! Necessidades ! Controlar custos dos recursos físicos ! Controlar a perda de desempenho ! Impedir que recursos de software se esgotem
! Evitar gargalos de desempenho
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Escalabilidade
26
+Desafios
! Ocorrência de Falhas Parciais – alguns componentes falham, outros continuam funcionando
! Técnicas e Procedimentos ! Detecção
! Mascaramento
! Tolerância
! Recuperação
! Redundância
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Tratamento de Falhas
27
+Desafios
! O ato de competir por um recurso com vários clientes simultaneamente.
! Objetos de um SD devem ser capazes de operar corretamente em um ambiente concorrente
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Concorrência
28
+Desafios
! Esconder a natureza distribuída dos recursos utilizados para realizar tarefas dos usuários ! Acesso
! Concorrência
! Falha
! Migração
! Expansão
! Localização
! Replicação
! Desempenho
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Transparência
29
+Desafios
! De acesso – uso de recurso local ou remoto através de operações idênticas
! De localização – uso de recurso sem conhecer seu endereço físico
! De replicação – redundância de instâncias de recursos usados para aumentar a disponibilidade e o desempenho
! De desempenho – sistema pode ser reconfigurado para aumentar o desempenho à medida que a carga varia
! De concorrência – processos operam concorrentemente usando recursos compartilhados sem interferência entre eles;
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Transparência
30
+Desafios
! De falha – permitir usuários e aplicações prosseguirem em suas tarefas sem o conhecimento de falhas de HW e SW
! De migração – mudança de localização dos recursos e cliente sem afetar operações de usuários ou aplicações
! De expansão – sistemas e aplicações se expandem sem afetar a estrutura do sistema ou os algoritmos da aplicação
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Transparência
31
+Referências
! Sistemas Distribuídos – Princípios e Paradigmas, 2ª Edição – Prentice Hall. Tanenbaum, Andrew; Van Steen, Maarten
! Sistemas Distribuídos – Conceitos e Projeto, 4ª Edição – Bookman. Coulouris, George; Dollimore, Jean; Kindberg, Tim
21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues
Bibliografia, fontes, créditos, imagens…
32