31
+ Sistemas Distribuídos 2013.1 – Eng. Computação Prof. Jairson Rodrigues Aula 01 – Conceitos de Sistemas Distribuídos FUNDAMENTOS

Aula 01 Fund a Mentos Intros d

Embed Size (px)

DESCRIPTION

Aula 1 SD

Citation preview

Page 1: 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

Page 2: Aula 01 Fund a Mentos Intros d

+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

Page 3: Aula 01 Fund a Mentos Intros d

+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

Page 4: Aula 01 Fund a Mentos Intros d

+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

Page 5: Aula 01 Fund a Mentos Intros d

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

Page 6: Aula 01 Fund a Mentos Intros d

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

Page 7: Aula 01 Fund a Mentos Intros d

+

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

Page 8: Aula 01 Fund a Mentos Intros d

+ 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

Page 9: Aula 01 Fund a Mentos Intros d

+ 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

Page 10: Aula 01 Fund a Mentos Intros d

+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

Page 11: Aula 01 Fund a Mentos Intros d

+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

Page 12: Aula 01 Fund a Mentos Intros d

+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

Page 13: Aula 01 Fund a Mentos Intros d

+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

Page 14: Aula 01 Fund a Mentos Intros d

+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

Page 15: Aula 01 Fund a Mentos Intros d

+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)

!  ...

Page 16: Aula 01 Fund a Mentos Intros d

+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

Page 17: Aula 01 Fund a Mentos Intros d

+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

Page 18: Aula 01 Fund a Mentos Intros d

+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

Page 19: Aula 01 Fund a Mentos Intros d

+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

Page 20: Aula 01 Fund a Mentos Intros d

+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

Page 21: Aula 01 Fund a Mentos Intros d

+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

Page 22: Aula 01 Fund a Mentos Intros d

+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

Page 23: Aula 01 Fund a Mentos Intros d

+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

Page 24: Aula 01 Fund a Mentos Intros d

+Desafios

21/08/13 CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues

Escalabilidade – Evolução

25

da Internet

Page 25: Aula 01 Fund a Mentos Intros d

+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

Page 26: Aula 01 Fund a Mentos Intros d

+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

Page 27: Aula 01 Fund a Mentos Intros d

+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

Page 28: Aula 01 Fund a Mentos Intros d

+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

Page 29: Aula 01 Fund a Mentos Intros d

+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

Page 30: Aula 01 Fund a Mentos Intros d

+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

Page 31: Aula 01 Fund a Mentos Intros d

+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