Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho...

42
Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho ( [email protected] )

Transcript of Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho...

Page 1: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sistemas DistribuídosAula 01 - Introdução

Prof. Hélio de Sousa Lima Filho ([email protected])

Page 2: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Referencial Bibliográfico

• Coulouris, George; Dollimore, Jean e Kindberg, Tim. Sistemas Distribuídos: conceitos e projeto. (Capítulo 01).

• Tanenbaum, Andrew S., Steen, Maarten V.. Sistemas Distribuidos: principios e paradigmas. (Capítulo 01).

2Sistemas Distribuídos

Page 3: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sumário

1. Definições2. Exemplos de Sistemas e Aplicações

Distribuídas3. Desafios em Sistemas Distribuídos4. Vantagens/Desvantagens de Sistemas

Distribuídos

3Sistemas Distribuídos

Page 4: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sumário

1. Definições2. Exemplos de Sistemas e Aplicações

Distribuídas3. Desafios em Sistemas Distribuídos4. Vantagens/Desvantagens de Sistemas

Distribuídos

4Sistemas Distribuídos

Page 5: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

1945 à1955: O Início

• Programador tinha que reservar hora para usar o computador!

5Sistemas Distribuídos

Page 6: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

1955 à1965: Processamento Batch

• Tarefas eram enfileiradas• Programas em lotes.

6Sistemas Distribuídos

Page 7: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

1965 à1980: Timesharing

• Menor tempo da obtenção da resposta de programas!

7Sistemas Distribuídos

Page 8: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

A partir de 1980Sistemas Distribuídos

• Comunicação entre maquinas

• Independência maior dos usuários

• Compartilhamento de recursos

8Sistemas Distribuídos

Page 9: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sistemas Distribuídos

• Conceito– “Um sistema distribuído é aquele no qual os

componentes localizados em computadores interligados em rede se comunicam e coordenam suas ações apenas passando mensagens.“[Coulouris, 2005]

9Sistemas Distribuídos

Page 10: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sistemas Distribuídos

• Conceito– “Um sistema distribuído é um conjunto de

computadores independentes que se apresenta a seus usuários como um sistema unico e coerente.“[Tanenbaum, 2007]

10Sistemas Distribuídos

Page 11: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sistemas Distribuídos

• Conceito– “Um sistema distribuído são vários

computadores fazendo algo juntos.“[Mulender, 1993]

– “Você sabe que tem um sistema distribuído quando a falha de um computador no qual nunca ouviu falar o impede de fazer qualquer coisa." :) [Mulender, 1993]

11Sistemas Distribuídos

Page 12: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Características de Sistemas Distribuídos

• Conjunto de maquinas autônomas• Interconectadas por canais de

comunicação• Comunicação por troca de mensagens• Ausência de um estado global• Independência de falhas• Ausência de sincronização de relógios• Estado compartilhado da aplicação

12Sistemas Distribuídos

Page 13: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sumário

1. Definições2. Exemplos de Sistemas e Aplicações

Distribuídas3. Desafios em Sistemas Distribuídos4. Vantagens/Desvantagens de Sistemas

Distribuídos

13Sistemas Distribuídos

Page 14: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Unix Distribuído

• Extensões do modelo unix para suportar:– Comunicação entre processos– Servidores na rede (servidor de arquivos,

impressão e etc.)• Implementações de Unix distribuído:

– SUN OS, SOLARIS– Linux (Debian, Fedora, Kurumin, Pux)

• Vantagens do Unix distribuído:– NFS (Network File System)– NIS (Network Information System)

14Sistemas Distribuídos

Page 15: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Aplicações Comerciais

• Sistema de reserva de passagem aéreas• Sistema de bancos para interconexões

entre agências e terminais• Sistemas para controle de estoque,

vendas e entrega

15Sistemas Distribuídos

Page 16: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Aplicações Comerciais

• Requisitos– Alto grau de confiabilidade– Alto grau de segurança e privacidade de

informações– Suportar concorrência de usuários– Garantir tempo de resposta satisfatório– Suportar massiva distribuição– Suportar extensabilidade– Suportar integração entre sistemas operados por

diferentes organizações

16Sistemas Distribuídos

Page 17: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Internet e Intranet

• Exemplos:– Correio eletrônico– Serviço de news– WWW (World Wide Web)– Transferência de arquivos

• Requisitos:– Alta extensabilidade– Mecanismo de resolução de nomes– Esquema de roteamento e endereçamento– Controle de acesso e segurança

17Sistemas Distribuídos

Page 18: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Computação Móvel e Ubíqua

• Avanços tecnológicos na miniaturização dos dispositivos + rede sem fio– Integração dos dispositivos de

comunicação pequenos e portáveis aos sistemas distribuídos

– Usa informações do ambiente para construir modelos computacionais dinamicamente

18Sistemas Distribuídos

Page 19: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Computação Móvel e Ubíqua

• Computação móvel– Execução de tarefas enquanto o usuário se

movimenta, e se distancia do seu ambiente local

19Sistemas Distribuídos

Page 20: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Computação Móvel e Ubíqua

• Acesso em qualquer lugar a qualquer momento

20Sistemas Distribuídos

Page 21: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Computação Móvel e Ubíqua

• Computação Pervasiva:– Computador embarcado no ambiente de

forma despercebida– Usa informações do ambiente para construir

modelos computacionais dinamicamente• Computação Ubíqua:

– Computação móvel em larga escala + Pervasiva

21Sistemas Distribuídos

Page 22: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Computação Móvel e Ubíqua

22Sistemas Distribuídos

Page 23: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Computação Móvel e Ubíqua

• Requisitos– Suporte transparente à mobilidade– Tratamento de contexto– Otimização de espaço de armazenamento,

largura de banda, uso de energia– Formatação, compressão, entrega e

apresentação de conteúdo adaptável à largura de banda e recursos do dispositivo

23Sistemas Distribuídos

Page 24: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sumário

1. Definições2. Exemplos de Sistemas e Aplicações

Distribuídas3. Desafios em Sistemas Distribuídos4. Vantagens/Desvantagens de Sistemas

Distribuídos

24Sistemas Distribuídos

Page 25: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Heterogeneidade• Abertura• Segurança• Extensabilidade• Manipulação de falhas• Concorrência e Paralelismo• Transparência

25Sistemas Distribuídos

Page 26: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Diversas Heterogeneidades– Hardware, Software, Redes, Sistemas

Operacionais, Linguagens, Implementações de diferentes fabricantes.

• Solução– Uso de Protocolos e padrões comuns

• Protocolos da Internet (IP)

26Sistemas Distribuídos

Page 27: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Abertura– Capacidade de um sistema poder ser estendido

(em relação a hardware e software) e ser interoperável com outros sistemas

– Abertura resulta da especificação de interfaces, de tornar as especificações publicas e de padronizá-las

– Especificações podem vir a serem • padrões estabelecidos por organizações de

padronização• padrões estabelecidos pelo uso

27Sistemas Distribuídos

Page 28: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Abertura– Padronizações existentes:

• Modelo de referência OSI• Padronizações de protocolos (RFCs)

– Acrônimo de Request of Comments– Série evolutiva de relatórios, proposta e padrões de

protocolos que descrevem o funcionamento interno de protocolos da internet

• Modelo de referência TCP/IP– Especificações Java

28Sistemas Distribuídos

Page 29: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Abertura– Padronizações Suportam:

• Extensabilidade de hardware: adição de novos computadores ao sistema

• Extensabilidade de software: introdução de novos serviços ou versão nova de um sistema

• Independência de fabricantes

29Sistemas Distribuídos

Page 30: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Segurança– Confidencialidade

• Proteção contra acesso indevido

– Integridade• Proteção contra alteração ou corrupção

– Disponibilidade• Proteção contra impedimento de acesso

– Desafios• Transmissão/Armazenamento seguro de informações• Impedimento de acesso

30Sistemas Distribuídos

Page 31: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Paralelismo– Processos executam simultaneamente em

processadores diferentes• Concorrência

– Processos executam concorrentemente a um mesmo processador e acessam recursos comuns

31Sistemas Distribuídos

Page 32: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Oportunidade de Concorrência e paralelismo em um SD:– Requisições concorrentes para utilização de um

mesmo recurso ou acesso a um mesmo serviço– Servidores executando em mais de uma máquina

podem juntos fornecer um serviço– Execução de uma atividade em paralelo pode

executar em mais de uma máquina do SD.• Interações concorrentes têm que ser

sincronizadas para garantia de consistência do estado da aplicação

32Sistemas Distribuídos

Page 33: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Extensabilidade– Reflete a capacidade de um sistema suportar

aumento da escala sem perda de eficiência• Desafios:

– Controlar o custo dos recursos físicos– Controlar perda de desempenho– Evitar gargalos de desempenho– Prevenir escassez de elementos de software:

endereços IP´s

33Sistemas Distribuídos

Page 34: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Técnicas para suportar extensabilidade– Replicação de recursos

• Dispositivos, dados, serviços

– Caching• Armazenamento de dados recentes próximo ao uso

– Estruturação dos serviços visando o crescimento incremental

• Hierárquica (DNS), Balanceamento de carga

– Evitar centralização de algoritmos, dados e componentes

34Sistemas Distribuídos

Page 35: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Manipulação de Falhas– Ocorrência de falhas

• Produzir resultados incorretos• Causar interrupção de serviços

– Mecanismos devem ser desenvolvidos para se garantir o correto funcionamento do sistema, mesmo na ocorrência de falhas

– Recuperação de falhas– Tolerância a falhas

• Garante a correção e disponibilidade do sistema

35Sistemas Distribuídos

Page 36: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Transparência– Abstração de aspectos específicos do

sistema subjacente– Sistema é visto como um todo e não como

uma coleção de partes

36Sistemas Distribuídos

Page 37: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Tipos de Transparência– Acesso

• Usuário não distingue entre o acesso local ou remoto– Localização

• Não sabe-se onde o recurso encontra-se– Migração

• Oculta que um recurso pode ser movido para uma outra localização

– Realocação• Oculta que um recurso pode ser movido para uma

outra localização enquanto em uso

37Sistemas Distribuídos

Page 38: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desafios em SD´s

• Tipos de Transparência– Replicação

• Oculta que um recurso e replicado– Concorrência

• Oculta que um recurso pode ser compartilhado por diversos usuários concorrentes

– Falha• Oculta a falha e a recuperação de um recurso

38Sistemas Distribuídos

Page 39: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Sumário

1. Definições2. Exemplos de Sistemas e Aplicações

Distribuídas3. Desafios em Sistemas Distribuídos4. Vantagens/Desvantagens de Sistemas

Distribuídos

39Sistemas Distribuídos

Page 40: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Vantagens dos SD´s

• Pessoas, sistemas, organizações, dados são inerentemente distribuídos

• Compartilhamento de recursos• Aumento da confiabilidade• Aumento do desempenho• Crescimento incremental• Flexibilidade

40Sistemas Distribuídos

Page 41: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Desvantagens dos SD´s

• Sincronização• Falhas• Suporte a escalabilidade• Segurança

– Pode afetar a consistência, desempenho, disponibilidade e etc.

41Sistemas Distribuídos

Page 42: Sistemas Distribuídos Aula 01 - Introdução Prof. Hélio de Sousa Lima Filho (helio.filho@gmail.com)helio.filho@gmail.com.

Exercícios

• Dê exemplo de aplicações/sistemas para os seguintes tipos do requisito de transparência:– Acesso, localização, migração, realocação,

replicação, concorrência e falha.

42Sistemas Distribuídos