professor - sistemas distribuídosprofessor.pucgoias.edu.br/sitedocente/admin/arquivos... · 2014....

36
Sistemas Distribuídos Sistemas Distribuídos Computação Computação Aula 01-02: Introdução Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus

Upload: others

Post on 31-Dec-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

Sistemas DistribuídosSistemas Distribuídos

ComputaçãoComputação

Aula 01-02: IntroduçãoAula 01-02: Introdução

2o. Semestre / 2014

Prof. Jesus

Page 2: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

2

Agenda da ApresentaçãoAgenda da Apresentação

● Definição e surgimento de Sistemas Distribuídos

● Principais aspectos de Sistemas Distribuídos (Exemplos)

● Motivação e principais problemas● Transparência de distribuição● Aplicações

Page 3: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

Definição de Sistemas DistribuídosDefinição de Sistemas Distribuídos

● “Um sistema distribuído (SD) é um conjunto de computadores

independentes que se apresenta a seus usuários como um

sistema único e coerente” (Tanenbaum)

● “Um sistema em que componentes de hardware e software

localizados em uma rede se comunicam e

coordenam suas ações por passagem de mensagens”

(Coulouris et al.)

Page 4: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

Surgimento dos Sistemas DistribuídosSurgimento dos Sistemas Distribuídos

● Evolução tecnológica e expansão da utilização e interligação das redes de computadores

● Componentes de uma rede podem se comunicar com maior integração (qualidade de serviço)

● Emular o comportamento de ambientes centralizados

Page 5: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

5

Principais aspectos dos Sistemas Principais aspectos dos Sistemas DistribuídosDistribuídos

– Infra-estrutura para:● aplicações● serviços

– Estrutura física● múltiplos computadores conectados em rede

– Concorrência– Sem memória compartilhada

● sistema fracamente acoplado

– Sem relógio global– Falhas isoladas e independentes– Comunicação através de passagem mensagens

● tipicamente assíncronas

Page 6: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

6

Exemplos de Sistemas DistribuídosExemplos de Sistemas Distribuídos

● Internet

● Intranet (uma rede dentro da Internet gerenciada por alguma organização)

● Computação móvel e ubíqua.

Page 7: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

7

InternetInternet

intranet

ISP

desktop computer:

backbone

satellite link

server:

network link:

Fonte: CDK4

Page 8: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

8

InternetInternet

● Programas interagem através de mensagens

● Pode ser ampliado com novos servidores ou tipos de serviços

● Possui backbonesbackbones que são redes com alta capacidade de transmissão

Page 9: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

9

IntranetIntranet

the rest of

email server

Web server

Desktopcomputers

File server

router/firewall

print and other servers

other servers

print

Local areanetwork

email server

the Internet

Fonte: CDK4

Page 10: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

10

IntranetIntranet

● Porção da Internet administrada separadamente por uma organização e com políticas de segurança locais

● Pode ser composta por uma ou mais LANs

● Uma intranet geralmente é conectada à Internet através de um roteador

Page 11: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

11

IntranetIntranet

● Usuários (de outras intranets) acessar seus serviços

● Estas intranets precisam possuir políticas de segurança

● Proteger informações confidenciais

● Usam firewall para filtrar a entrada e saída de informações

Page 12: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

12

IntranetIntranet

● Firewall podem impedir acessos legítimos

● Devem ser complementados com mecanismos de segurança mais refinados

● Existem casos em que as organizações não desejam que suas intranets não se conectem à Internet

– Organizações militares em época de guerra, agências de segurança, etc.

Page 13: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

13

Computação móvel e ubíquaComputação móvel e ubíqua

● Móvel: dispositivos (smartphones, laptops, GPS) que utilizam conexões de rede sem fio que permite ao usuário acesso a serviços independente de sua localização física

● Ubíqua: existe sem a percepção da existência dela pois o computador está integrado ao ambiente. Ex.: sensores, eletrodomésticos inteligentes.

Page 14: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

14

Computação Móvel e UbíquaComputação Móvel e Ubíqua

Page 15: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

15

MotivaçãoMotivação

● Compartilhamento de recursos– Ex.: hardware, software, dados, serviços, etc.

● Elevada disponibilidade de serviço– Gerenciamento de recursos através de uma interface bem

definida

● Extensibilidade● Desempenho ● Confiabilidade (redundância, falhas parciais)● Suporte a organizações distribuídas

Page 16: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

16

Principais problemasPrincipais problemas

● Concorrência● Falhas parciais● Localização● Acesso● Migração● Replicação● Mobilidade● Contexto● Segurança● Larga escala● Heterogeneidade

cliente

Page 17: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

17

HeterogeneidadeHeterogeneidade

● Hardware– PCs, servidores, PDAs, smart phones, smart

cards, utilidades domésticas etc● Sistemas operacionais● Linguagens de programação● Tecnologias de rede

– Internet, WAP, Bluetooth– Ethernet, WiFi, WiMAX, ...

● Tecnologias de middleware● Políticas de gerenciamento

Page 18: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

18

Exemplo de ambiente heterogêneoExemplo de ambiente heterogêneo

Laptop

Mobile

PrinterCamera

Internet

Host intranet Home intranetWAP

Wireless LAN

phone

gateway

Host site

Fonte: CDK4

Page 19: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

19

Heterogeneidade Heterogeneidade

● Middleware– Camada de software que fornece uma forma de ocultar a

heterogeneidade do sistema. Ex.: RMI, CORBA, etc;

– Fornece também um modelo de programação independente de plataforma

● Código móvel e máquina virtual

– O primeiro se refere a um código enviado para outro computador e executado no seu destino. Ex.: Java applets.

– O segundo permite a execução de um código em diferentes tipos de hardware e/ou sistemas operacionais. Ex.: JVM (Máquina Virtual Java)

Page 20: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

20

MiddlewareMiddleware

Page 21: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

21

AberturaAbertura

● Facilidade de extensão e atualização

– Adição de novos recursos e serviços

– Re-implementação de serviços existentes

• Determina quanto o sistema pode ser estendido

– Extensão de hardware

• Adição de memória, periféricos...

– Extensão de software

• Recursos de software, protocolos, serviços...

• Grau de não interferência quando da inclusão de algo novo

Page 22: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

22

AberturaAbertura

● Depende de que as interfaces de acesso aos principais componentes do sistemas sejam conhecidas e estejam disponíveis para os programadores

● Exemplos de abertura na Internet

– Especificações controladas e atualizadas por um Comitê Gestor

– Novos produtos e serviços implementados de acordo com as especificações vigentes

– Conformidade da implementação deve ser testada e verificada para garantir o correto funcionamento do sistema

Page 23: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

23

AberturaAbertura

● Interfaces de sistemas abertos devem ser publicadas

● Devem fornecer um mecanismo de comunicação uniforme para compartilhamento de recursos

● Devem oferecer suporte a diferentes tipos de hardware e software mesmo que sejam de diferentes fornecedores

Page 24: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

24

SegurançaSegurança

● Proteção para recursos compartilhados– Confidencialidade (proteção contra usuários não autorizados) Ex.: Acesso a

dados sobre salário, histórico médico, endreço

– Integridade (proteção contra alteração e corrupção) Ex.: Alteração indevida de dados usados em transações bancárias

– Disponibilidade (proteção contra interferência ao meio de acesso) Ex.: Queda ou sobrecarga do servidor ou do meio de comunicação

● Principais mecanismos de segurança na Internet– Firewall

– Assinaturas digitais

– Canais de seguros de comunicação

● Desafios – Ataques de negação de serviço

– Segurança para código móvel

Page 25: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

25

EscalabilidadeEscalabilidade

● Capacidade do sistema permanecer operando de forma efetiva mesmo diante de um aumento significativo do número de usuários e/ou dos recursos disponíveis

● Principais desafios:

– Controlar o custo dos recursos físicos

– Controlar perdas de desempenho

– Prevenir o esgotamento dos recursos de software

– Evitar “gargalos” de desempenho na rede ou nos próprios servidores

● Principais técnicas:

– Replicação

– Caching

– Concorrência e paralelismo

Page 26: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

26

Tratamento contra falhasTratamento contra falhas

● Falhas são inevitáveis em sistemas computacionais

– Resultados incorretos

– Interrupção não planejada do serviço antes de sua conclusão

● Falhas em sistemas distribuídos são parciais

● Algumas falhas podem ser detectadas (usando checksums em arquivos) e outras não (falha em um servidor)

● Sistemas distribuídos devem oferecer alta disponibilidade de recursos mesmo diante da ocorrência de falhas

– Disponibilidade: medida da proporção do tempo que um recurso está disponível para uso

Page 27: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

27

Tratamento contra falhasTratamento contra falhas

● Técnicas de tratamento de falhas mais comuns:

– Detecção (ex. bits de paridade, checksums)

– Ocultamento (ex. retransmissão de mensagens)

– Tolerância (ex. informar o usuário do problema)

– Recuperação (ex. transações em BD’s)

– Redundância (ex. replicação de tabelas no DNS)

Page 28: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

28

ConcorrênciaConcorrência

● Suporte para múltiplos acessos simultâneos a um ou mais recursos compartilhados

– Possibilidade de inconsistências quando os recursos são alterados

● Serviços que representam recursos compartilhados devem ser responsáveis por garantir que as operações de acesso os mantenham em um estado consistente

– Válido para servidores e objetos de aplicações

● Técnicas mais comuns:

– Sincronização de acesso (ex.: exclusão mútua distribuída)

– Protocolos de controle de concorrência (ex.: 2 PCs)

Page 29: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

29

Transparências de distribuiçãoTransparências de distribuição

● Um SD deve se apresentar a usuários e aplicações como um sistema único (TRANSPARENTE)

● Tornar invisíveis as complicações geradas pela distribuição:

– para o programador de aplicações distribuídas

– para o usuário

– para o administrador do sistema

● Principais tipos de transparência

– acesso, localização, falha, migração, relocação, replicação, persistência, transação, concorrência

Page 30: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

30

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● Transparência de acesso: permite o acesso a componentes remotos e locais através das mesmas operações

● Transparência de localização: permite o acesso a componentes sem conhecimento da sua localização física

● Transparência de concorrência: permite a execução concorrente de múltipla operações sobre o mesmo conjunto de recursos sem causar interferência entre elas

● Transparência de replicação: permite usar múltiplas instâncias de um mesmo recurso lógico sem conhecimento da existência de réplicas pelos usuários e programadores

Baseado em: CDK4

Page 31: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

31

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● Transparência de falha: permite esconder a ocorrência de falhas dos usuários e programadores

● Transparência de mobilidade (migração): permite a realocação de recursos e aplicações sem afetar o seu uso

● Transparência de desempenho: permite a re-configuração do sistema para aumentar o seu desempenho conforme varia a carga de trabalho

● Transparência de escala: permite a expansão do sistema e de suas aplicações sem exigir mudanças significativas na infra-estrutura existente

Page 32: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

32

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● As duas formas mais importantes são acesso e localização.

– Suas presenças (ou ausências) afetam profundamente a maneira como os recursos são utilizados em um sistema distribuído

– Também conhecidas como transparência de rede

Page 33: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

33

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● Exemplos de transparência:

– Ferramenta para “exploração” de arquivos que mantêm as mesmas opções de navegação para pastas locais e remotas

– API para acessar dados que utiliza as mesmas operações para dados locais e remotos

● Exemplos de falta de transparência:

– Sistema distribuído onde só é possível acessar arquivos remotos via FTP

– Serviço de jogos online que precisa ser tirado do ar para acrescentar ou trocar um servidor

● Classificação quanto à dificuldade de implementação (hierarquia de dependência) e nível (usuário ou programador)

Page 34: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

34

Principais transparências de distribuiçãoPrincipais transparências de distribuição

● Níveis de transparência:

– Nível do usuário: distribuição física dos recursos é imperceptível para os usuários das aplicações (ex.: navegador da Web)

– Nível do programador: distribuição física dos recursos é imperceptível tanto para os usuários quanto para os programadores das aplicações (ex.: programação com middleware ou SO distribuído)

Page 35: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

35

Consórcio para integração de aplicaçõesConsórcio para integração de aplicações

• Consórcio que reúne cerca de 800 empresas envolvidas com tecnologia de objetos

–fabricantes de middleware e aplicações –instituições de pesquisa –usuários

• Missão

–“Criar um mercado de software baseado em componentes”

• Ênfase:

–Re-uso de componentes –Interoperabilidade e portabilidade de componentes –Desenvolvimento de componentes padronizados

Page 36: Professor - Sistemas Distribuídosprofessor.pucgoias.edu.br/SiteDocente/admin/arquivos... · 2014. 8. 8. · 26 Tratamento contra falhas Falhas são inevitáveis em sistemas computacionais

36

AplicaçõesAplicações

● Em princípio, qualquer aplicação convencional pode ser portada com sucesso para um ambiente de sistema distribuído

● Algumas áreas de aplicação emergentes– multimídia distribuída

– espaços ativos

– disseminação de informações

– computação móvel e ubíqua

– computação em grade

– redes de sensores