Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

58
Conceitos e Arquiteturas

description

Arquiteturas

Transcript of Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Page 1: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Conceitos e Arquiteturas

Page 2: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Grande porte físico limitações para acomodação

Grande consumo de energia sala especial, refrigeração

SO único dependência do fabricante

Terminais sem capacidade de processamento (“burros”)

Computadores com grande capacidade de processamento (mainframes)

...passado...passado

Motivação

Page 3: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Computadores diversos, todos com capacidade de processamento◦ Portes diversos◦ SOs diversos◦ Redes diversas

(Ethernet, ATM, com fio, sem fio...)

◦ Internet

A realidade dos últimos tempos...A realidade dos últimos tempos...Motivação

Page 4: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Dividindo para conquistar!!!Dividindo para conquistar!!!

A

B

C

D

Programa modularizado

Execução sequencial ou concorrente (threads)

distribuir

Motivação

Page 5: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Dividindo para conquistar!!!Dividindo para conquistar!!!

A

B

C

D

Programa modularizado

A

B

C

D

Motivação

Distribuindo...

Page 6: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Programa distribuído

Componentes interligados (comunicação)

Processamento (computação) distribuído ou paralelo

Dividindo para conquistar!!!Dividindo para conquistar!!!

A

C

D

B

Motivação

Page 7: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Pode ser mais confiável: toda função pode ser replicada◦ Quando um processador falha, outro pode continuar o

trabalho◦ Se um disco dá crash, arquivos gravados também em

outros discos não são perdidos Várias computações podem ser realizadas em

paralelo: um sistema distribuído pode realizar mais na mesma quantidade de tempo

Pode-se considerar tolerância a falha e possibilidade de paralelismo como as propriedades fundamentais de um sistema distribuído

Page 8: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Lamport: “Um sistema distribuído é aquele que faz você parar de ter o trabalho realizado quando uma máquina da qual você nunca ouviu falar falha”

Mais seriamente, Tanenbaum e van Renesse (1985):Um sistema (operacional) distribuído é aquele que aparece para os usuários como um sistema (operacional) centralizado ordinário, mas que executa em múltiplas CPUs independentes.O conceito chave é transparência, ou seja, o uso de múltiplos processadores deve ser invisível (transparente) para o usuário.Pode-se dizer que o sistema é visto como um “uniprocessador virtual”, e não como uma coleção de máquinas distintas.

Page 9: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

“Coleção de computadores independentes que aparecem para os usuários do sistema como um único computador.” (Tanenbaum & van Steen)

“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 et al)

Vários componentesConectados via uma redeCompartilhando recursosTransparência

• “Uma coleção de elementos de processamento interconectados, tanto logicamente como fisicamente, para execução cooperativa de programas de aplicação com o controle geral dos recursos centralizado.” (M. Eckhouse)

Page 10: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Pessoas são distribuídas, informação é distribuída◦ Desejo de comunicar e compartilhar informações

e recursosRelação desempenho/custoModularidadeExpansibilidade

◦ Sistemas distribuídos são capazes de crescimento incremental

Disponibilidade◦ SDs têm capacidade de replicação e redundância

Page 11: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Escalabilidade◦ Idealmente, sistemas distribuídos não devem ter

qualquer componente centralizado (cuja capacidade impõe limites para o tamanho máximo de um sistema), tal que a restrição ao crescimento não deve existir

Confiabilidade◦ Disponibilidade é apenas um aspecto de

confiabilidade◦ O sistema deve ser capaz de se recuperar de

falhas

Page 12: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Complexidade limita o que pode ser construído Schroeder chama os problemas causados pela

complexidade de problemas de sistema:◦ Interconexão: um grande número de problemas de

sistemas acontece quando componentes que antes operavam independentemente são interconectados

◦ Interferência: dois componentes de um sistema, cada um com comportamento razoável quando observados em isolamento, podem exibir comportamento indesejável quando combinados

◦ Propagação de efeito: “efeito cascata” de falhas pode derrubar um sistema inteiro se não houver cuidados no projeto

Page 13: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

◦ Efeitos de escala: um sistema que funciona bem com 10 nós pode falhar se crescer para centenas de nós

◦ Falha parcial Grande diferencial de sistemas distribuídos em

relação a sistemas centralizados, tradicionais Fonte considerável de complexidade no projeto de

aplicações tolerantes a falhas

Page 14: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Sistemas distribuídos são complexos porque o que eles têm que fazer é complexo

Exemplos:1. Gerenciamento do escalonamento de trens em uma

rede em que passageiros têm que trocar de trens para chegar em seus destinos – o problema da sincronização

2. Sistema de arquivos distribuídos É preciso prever aspectos como autenticação, controle de

acesso, controle de concorrência etc. Complexidade ainda maior quando há os requisitos de alta

disponibilidade e tolerância a falhas Aspectos como mecanismos de localização de arquivo,

coordenação de estado de servidor replicado, mecanismos de recuperação de falhas parciais etc.

Page 15: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

A solução simples nem sempre pode ser usada – às vezes é cara demais!

Exemplo:◦ Em uma rede de longa distância, interconectar todos os

pontos (nós) seria a solução mais simples, porém extremamente cara!

◦ A solução mais barata é fazer uma rede em que todos os nós são alcançáveis, porém não necessariamente de forma direta O custo dessa solução é mais baixo, porém a complexidade é

bastante aumentada: são necessários algoritmos de roteamento, “buferização” para gerenciar o tráfego multiplexado, mecanismos de controle de fluxo para prevenir congestionamento

etc.

Page 16: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Distribuição

Comunicação

Complexidade

Heterogeneidade

Transparência

demandam

Page 17: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

A maioria dos (grandes) sistemas (reais) de hoje precisam de comunicação

Os sistemas precisam ser modularizados para melhor legibilidade e menor complexidade no desenvolvimento

Do ponto de vista do usuário e do programador de aplicação, é preciso transparência

Tolerância a falha e possibilidade de paralelismo são propriedades fundamentais de um sistema distribuído

Boa relação desempenho/custo é um desafio alcançável

Continua...

Page 18: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Características-chave:◦ Escalabilidade◦ Confiabilidade (disponibilidade, tolerância a falhas,

segurança,...) Falha parcial é um grande diferencial de

sistemas distribuídos em relação a sistemas centralizados/tradicionais, mas também é fonte considerável de complexidade

Do ponto de vista de software, é preciso agregar outras funcionalidades às que os sistemas operacionais convencionais oferecem para dar suporte adequado a sistemas distribuídos

Page 19: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Características, Objetivose

Modelos Arquiteturais

Page 20: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Conjunto de máquinas autônomasInterconectadas por canais de comunicaçãoComunicando-se por troca de mensagensIndependência de falhas (falhas parciais)

• Ausência de relógio global• Ausência de estado global• Estado compartilhado da aplicação

(através de comunicação)

Page 21: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Conexão de usuários e recursos◦ Desejo de comunicar e compartilhar informações

e recursos

Transparência

Escalabilidade (scalability)

Abertura (openness)

Page 22: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Eficiência – desempenho produtivoConveniência – utilidade e aplicabilidadeRobustez – resistência a falha

◦ Disponibilidade: o sistema está no ar quando preciso (instante de tempo)

◦ Confiabilidade: o sistema não falha por um longo período de tempo E quando falha, a falha não provoca uma

“catástrofe”

Consistência – mesma visão de dadosTransparência

Page 23: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Localização: esconde onde o recurso está localizado Acesso: operações idênticas para acesso local e remoto Migração: esconde que um recurso pode se mover para

outra localização Relocação: esconde que um recurso pode ser movido para

outra localização enquanto está em uso Concorrência: compartilhamento de recursos sem

interferência entre processos concorrentes Falha: esconde a falha e recuperação de um recurso Replicação: esconde de usuários ou programadores de

aplicação a existência de réplicas de recursos

Page 24: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Capacidade de um sistema poder ser estendido (hw, sw) e de interoperar com outros sistemas

Resulta da especificação de interfaces, de tornar as especificações públicas e de padronizá-las

Especificações podem ser◦ padrões estabelecidos por organização de padronização◦ padrões estabelecidos pelo uso (de fato)

Page 25: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Conceito Exemplo

Serviços centralizados Um único servidor para todos os usuários

Dados centralizados Uma única lista telefônica on-line

Algoritmos centralizados

Roteamento baseado em informação completa

Page 26: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Um sistema continuará eficaz mesmo havendo um aumento significativo no número de recursos e de usuários

Desafios:◦ Controlar o custo de recursos◦ Controlar a perda de desempenho◦ Prevenir que os recursos acabem (ex., endereços

IP)

Page 27: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Heterogeneidade

Transparência

Tolerância a Falhas

Segurança

Escalabilidade

Concorrência

Abertura

Page 28: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Cliente-ServidorPeer-to-Peer

Objetos Distribuídos

Page 29: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Estrutura em termos de componentes especificados separadamente

Inter-relações de componentes

Divisão de responsabilidades entre componentes

Page 30: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

… invocation

invocation

Results

Results

Clients

Server

… invocation

invocation

Results

Results

ClientsService

Servidor Único Múltiplos Servidores

Page 31: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Vantagens de C/S

Melhor relação preço/desempenhoequipamentos mais baratosMaior facilidade de expansãoexpansão incremental dos serviçosÉ possível adotar soluções abertasintegrar soluções de diferentes fabricantesMenor impacto das falhasfalhas afetam somente parte do sistema

Page 32: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Desvantagens de C/S Software mais complexo é preciso quebrar a aplicação em partes Problemas de saturação da rede Maior dependência do meio de

comunicação interações devem ser bem projetadas Aspectos de segurança mais críticos dados confidenciais circulam na rede necessidade de criptografia

Page 33: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Uma aplicação distribuída pode ser vista como um conjunto de objetos

Objetos:◦ Consistem de dados + código◦ Podem ser clientes, servidores ou ambos◦ Interface esconde detalhes de implementação◦ Modelar com objetos não implica no uso de

programação orientada a objetos

Page 34: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Tanenbaum

and van Steen. Distributed System

s: Principles and Paradigms

© Prentice Hall 2002

Observe a separação entre interface e objeto

Interface local

Objeto remoto

Page 35: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Variações do Modelo C/S

Client

Proxy

Web

server

Web

server

serverClient

a) client request results in the downloading of applet code

Web server

ClientWeb serverApplet

Applet code

Client

b) client interacts with the applet

Agentes Móveis

Page 36: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Coordination

Application

code

Coordination

Application

code

Coordination

Application

code

Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000

Page 37: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Alguns tradeoffs devem ser considerados para selecionar a arquitetura mais apropriada, incluindo:◦ O crescimento potencial do número de usuários,◦ Custo e◦ Homogeneidade do ambiente computacional

futuro e do momento◦ Reatividade esperada◦ Taxa de rendimento (throughtput)◦ Balanceamento de carga◦ Qualidade de serviço◦ Tolerância a falhas◦ Segurança

Page 38: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Modelos fundamentaisModelos de interação C/S, variações, peer-to-peer Sincronizado, não sincronizado Ordenação de eventosModelos de falha Falhas por omissão Falhas de temporização Falhas arbitrárias Detecção, recuperação ou mascaramento de falhasModelos de segurança Proteção, anulação de ameaças Criptografia, autenticação

Page 39: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Infra-estruturas paraSistemas Distribuídos

Page 40: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Sistemas Operacionais Distribuídos

Sistemas Operacionais de Rede

Middleware

Page 41: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Hardware é importante para sistemas distribuídos...

Software é o que melhor diferencia sistemas distribuídos

Sistemas distribuídos são como sistemas operacionais tradicionais◦ Atuam como gerentes de recursos, permitindo que

múltiplos usuários ou aplicações compartilhem CPUs, memórias, periféricos, rede e dados

◦ Tentam esconder a heterogeneidade e complexidade do hardware (remoto, principalmente) ao fornecer uma máquina virtual (software) onde aplicações podem ser executadas mais facilmente

Page 42: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Fortemente acoplados◦ Tentam manter visão única e global dos recursos

gerenciados

Fracamente acoplados◦ Coleção de computadores, cada um executando

seu próprio sistema operacional◦ No entanto, estes sistemas operacionais

trabalham juntos para tornar os serviços e recursos de uns disponíveis aos outros

Page 43: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Sistemas operacionais fortemente acoplados para sistemas (computadores e programas) distribuídos, geralmente, são chamados de sistemas operacionais distribuídos (SODs) – visão única e global dos recursos

Sistemas operacionais fracamente acoplados são os sistemas operacionais de rede (SORs) – cada computador executando seu próprio SO, e vice-versa, um SO completo para cada computador

Para melhor suporte à transparência de distribuição são necessários melhoramentos ou serviços adicionais aos serviços de SORs, principalmente◦ Estes adicionamentos levaram ao chamado middleware

Page 44: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Sistema Descrição Principal objetivo

SOD SO fortemente acoplado para multi-processadores e multicomputadores homogêneos

Esconder e gerenciar recursos de hardware

SOR SO fracamente acoplado para multicomputadores heterogêneos (LAN/WAN)

Oferecer serviços locais para clientes remotos

Middleware Camada adicional sobre um SOR Prover transparência de distribuição

Page 45: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

SODs

Page 46: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Aplicações compartilham recursos e por isso precisam ser protegidas umas das outras◦ Ex: sejam aplicações A e B executando ao mesmo tempo,

A não pode alterar os dados de B simplesmente acessando a parte da memória onde os dados estão armazenados – conceito de espaço de endereçamento

Aplicações têm que usar apenas facilidades oferecidas pelo SO◦ Ex: uma aplicação não pode copiar mensagens

diretamente para uma interface de rede. Em vez disso, o SO oferece primitivas de comunicação

Page 47: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Sistema operacional multi-processador◦ Gerencia recursos de um multiprocessador

Sistema operacional multi-computador◦ Para multicomputadores homogêneos

A funcionalidade de SODs é essencialmente a mesma de SOs tradicionais/convencionais, exceto que SODs manipulam múltiplas CPUs

Page 48: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Objetivo: alto desempenho através de múltiplos processadores – o número de CPUs deve ser transparente para a aplicação

Suporte a múltiplos processadores com acesso a uma memória compartilhada

Proteção contra acesso concorrente para garantir consistência, através de primitivas de sincronização◦ Semáforo◦ Monitor

Page 49: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Não há compartilhamento de memória, mas sim comunicação – comunicação confiável é um aspecto importante e complexo

Page 50: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Exemplos de SODs

Amoebahttp://www.cs.vu.nl/pub/amoeba/

Mach

Chorus

Page 51: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

SOR

Page 52: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Em SORs, serviços estão disponíveis em máquinas distintas

Page 53: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Login remoto (rlogin)Cópia remota (rcp)

◦ É preciso saber onde (máquinas) os arquivos se localizam...

Pouca transparência!

Page 54: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)
Page 55: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Escalabilidade e abertura – SORs

Transparência e uso mais fácil – SODs

Page 56: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)
Page 57: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

NomeaçãoPersistênciaTransaçõesSegurança....

Page 58: Conceitos-Arquiteturas+InfrasSD (Helder-VAIO's conflicted copy 2013-06-04)

Sistemas homogêneosTransparência de distribuiçãoAlto desempenhoMemória compartilhadaControle de concorrência

Sistemas heterogêneosTransparência de distribuição e comunicaçãoServiçosAbertura

Sistemas heterogêneosPouca transparênciaEscalabilidadeComunicação