Você está na página 1de 40

Metas de um Sistema Distribuído

Sistemas Distribuídos

Mauro Lopes Carvalho Silva

Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Instituto Federal de Educação Ciência e Tecnologia do Maranhão

Sistemas Distribuídos 8º Período

Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Sistemas Distribuídos – 8º Período

Objetivos

Nesta aula iremos apresentar as metas de um Sistema Distribuído . De forma simples, a meta

básica é prover acesso a recursos de forma

transparente, no entanto vamos aprofundar de que forma isto pode ser realizado . Serão abordados aqui as metas: Abertura, Transparência e Escalabilidade em Sistemas Distribuídos.

Sistemas Distribuídos 8º Período

as metas: Abertura, Transparência e Escalabilidade em Sistemas Distribuídos. Sistemas Distribuídos – 8º Período

Plano de Aula

Metas de um Sistema Distribuído

Introdução

Abertura

Transparência

Escalabilidade

Sistemas Distribuídos 8º Período

– Introdução – Abertura – Transparência – Escalabilidade Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Introdução Um Sistema Distribuído tem como meta

principal facilitar o acesso do usuário a recursos

remotos e compartilhar estes recursos com outros usuários de forma controlada ;

Meta importante de um SD é esconder o fato de que seus processos e recursos estão fisicamente distribuídos através de vários computadores (Transparência ) ;

Outra meta importante é a Abertura . Um SD aberto é um sistema que oferece serviços de acordo com regras

padrões ;

Outra meta importante é a capacidade de crescimento do sistema (Escalabilidade ) .

Sistemas Distribuídos 8º Período

meta importante é a capacidade de crescimento do sistema ( Escalabilidade ) . Sistemas Distribuídos –

Metas de um Sist. Distribuído

Abertura em Sistemas Distribuídos

Diz - se que um sistema computacional é aberto

se ele pode ser estendido e reimplementado de

várias maneiras;

Um Sistemas Distribuído aberto esta relacionado

ao grau com que novos serviços podem ser

adicionados e disponibilizados para uso por uma variedade de programas clientes; Importante : A especificação e a documentação das principais interfaces de software dos componentes de um sistema estão disponíveis para os desenvolvedores de softwares.

Sistemas Distribuídos 8º Período

de um sistema estão disponíveis para os desenvolvedores de softwares. Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído Abertura em Sistemas Distribuídos

Você já ouviu falar em RFC?

Você já ouviu falar em OMG?

Os Sistemas Distribuídos projetados a partir de padrões públicos são chamados de sistemas distribuídos abertos , para reforçar o fato de que

eles são extensíveis;

Eles podem ser ampliados em nível de :

hardware (adição de computadores a rede, p.ex) ;

software (adição de novos serviços ou reimplementação dos antigos) .

; • software (adição de novos serviços ou reimplementação dos antigos) . Sistemas Distribuídos – 8º

Sistemas Distribuídos 8º Período

Metas de um Sist. Distribuído

Abertura em Sistemas Distribuídos

De forma resumida : A Abertura é uma característica

que determina se um sistema pode ser estendido de

diferentes maneiras ;

Hardware:

Inclusão de dispositivos de fabricantes distintos ;

Software

Módulos de SO

Protocolos de Comunicação

Recursos compartilhados

Imaginem então os vários componentes de hardware e software de variados fabricantes . Como na prática todos estes componentes trabalham?

Sistemas Distribuídos 8º Período

de variados fabricantes . Como na prática todos estes componentes trabalham? Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Abertura em Sistemas Distribuídos

Interoperabilidade :

• “Define até que ponto duas implementações de

sistemas ou componentes de fornecedores diferentes

devem coexistir e trabalhar em conjunto, com base na confiança mútua nos serviços de cada um,

especificados por um padrão comum” ;

• “Capacidade de um sistema (informatizado ou não) de se comunicar de forma transparente (ou o mais próximo

disso) com outro sistema (semelhante ou não)”.

Sistemas Distribuídos 8º Período

(ou o mais próximo disso) com outro sistema (semelhante ou não)” . Sistemas Distribuídos – 8º

Metas de um Sist. Distribuído

Abertura em Sistemas Distribuídos

Portabilidade:

“Caracteriza até que ponto uma aplicação desenvolvida

para um sistema distribuído A pode ser executada, SEM MODIFICAÇÃO, em um sistema distribuído B que implementa as mesmas interfaces que A ;

“Habilidade de reusar um código existente ao invés de refazê -lo quando este é movido de um ambiente para outro”.

Sistemas Distribuídos 8º Período

invés de refazê - lo quando este é movido de um ambiente para outro” . Sistemas

Metas de um Sist. Distribuído

Abertura em Sistemas Distribuídos

De forma resumida :

Os sistemas abertos são caracterizados pelo fato de

suas principais interfaces serem publicadas; Os sistemas distribuídos abertos são baseados na estipulação de um mecanismo de comunicação

uniforme e em interfaces publicadas para acesso aos

recursos compartilhados ;

Os sistemas distribuídos abertos podem ser constituídos a partir de hardware e software heterogêneo,

possivelmente de diferentes fornecedores . Para que

um sistema funcione corretamente, a compatibilidade deve ser cuidadosamente testada e verificada .

Sistemas Distribuídos 8º Período

corretamente, a compatibilidade deve ser cuidadosamente testada e verificada . Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Abertura em Sistemas Distribuídos

Metas de um Sist. Distribuído • Abertura em Sistemas Distribuídos Sistemas Distribuídos – 8º Período

Sistemas Distribuídos 8º Período

Metas de um Sist. Distribuído • Abertura em Sistemas Distribuídos Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Abertura em Sistemas Distribuídos

IMPORTANTE: PADRONIZAÇÃO!!!!!

Sistemas Distribuídos 8º Período

• Abertura em Sistemas Distribuídos IMPORTANTE: PADRONIZAÇÃO!!!!! Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos Uma das principais necessidades dos Sistemas

Distribuídos é tornar o ambiente de rede invisível

provendo a visão de um ambiente único para o usuário ;

A transparência é definida como sendo a

ocultação, para um usuário final ou para um programador de aplicativos , da separação dos componentes em um sistema distribuído de modo

que o sistema seja percebido como um todo , em

vez de uma coleção de componentes independentes.

Sistemas Distribuídos 8º Período

percebido como um todo , em vez de uma coleção de componentes independentes. Sistemas Distribuídos –

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos

A ANSA e o RM -ODP definem 8 formas de transparência.

– A ANSA e o RM -ODP definem 8 formas de transparência. Falta uma, Escalabilidade –

Falta uma, Escalabilidade veremos ela de forma individual, não somente a transparência!!!

Sistemas Distribuídos 8º Período

– veremos ela de forma individual, não somente a transparência!!! Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos - Acesso Permite que recursos locais e remotos sejam

acessados com uso de operações idênticas;

Ocultar máquinas;

Mais importante:

diferenças entre arquiteturas

de

Acordo sobre como os dados devem ser representados ;

Exemplo:

Imaginamos diferentes máquinas com diferentes SOs , como seria a nomeação de arquivos.

Como estas máquinas entendem os tipos de dados em uma aplicação?

Sistemas Distribuídos 8º Período

– Como estas máquinas entendem os tipos de dados em uma aplicação? Sistemas Distribuídos – 8º

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos - Localização

Permite

que recursos

sejam acessados

sem

conhecimento de sua localização física ou na rede ;

Usuários não são capazes de dizer a localização física do recurso;

Nomeação:

www. google . com nome não dá pistas da localização física de um dos servidores google?

Sistemas Distribuídos 8º Período

→ nome não dá pistas da localização física de um dos servidores google? Sistemas Distribuídos –

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos - Migração

Permite a movimentação de recursos e clientes

dentro de um sistema sem afetar a operação de

usuários e programas;

Recursos podem migrar de uma localidade para

outra, por questões de desempenho, segurança, etc;

Esta ação deve ser feita de forma automática pelo sistema;

O objeto deve manter o mesmo nome ;

Deve garantir a continuidade de comunicação .

O objeto não sabe que mudou de lugar !!!

Sistemas Distribuídos 8º Período

a continuidade de comunicação . – O objeto não sabe que mudou de lugar !!! Sistemas

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos - Relocação

Oculta do cliente que um recurso possa ser movido

para outra localização durante o uso;

Exemplos:

Celular se movimentando dentro da mesma

área de cobertura;

Um automóvel passando por várias redes de acesso sem fio, com conexão ininterrupta;

Sistemas Distribuídos 8º Período

passando por várias redes de acesso sem fio, com conexão ininterrupta; Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos - Replicação Permite que várias instâncias de recursos sejam

usadas para aumentar a confiabilidade e o

desempenho, sem conhecimento das réplicas por parte dos usuários ou dos programadores de

aplicativos;

das réplicas por parte dos

O conhecimento

usuários deve ser mascarado; Relação com a transparência de localização;

Perigoso: Problemas de consistência

Sistemas Distribuídos 8º Período

a transparência de localização; – Perigoso : Problemas de consistência Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Transparência Concorrência

em

Sistemas

Distribuídos

-

Permite

que

vários

processos

operem

concorrentemente, usando

compartilhados sem interferência entre eles;

recursos

Compartilhamento competitivo de recursos:

Deve -se garantir a consistência;

Criar travas de acesso;

Tratamento mais refinado: uso de transações ;

Sistemas Distribuídos 8º Período

Criar travas de acesso ; – Tratamento mais refinado: uso de transações ; Sistemas Distribuídos –

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos - Falhas

Permite a ocultação de falhas, possibilitando que

usuários e programas aplicativos concluam suas

tarefas, a despeito da falha de componentes de hardware ou software;

Usuário não pode perceber que um recurso deixou

de funcionar bem ;

Mascarar falhas é uma das questões mais difíceis!!

Recurso morto ou incrivelmente lento? Como saber?

Sistemas Distribuídos 8º Período

mais difíceis!! – Recurso morto ou incrivelmente lento? Como saber? Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Transparência em Sistemas Distribuídos

Almejar

excessivo:

transparência

completa pode

ser

Usuários podem estar em continentes diferentes ;

Esconder falhas de rede e de nós é (na teoria e na prática) extremamente difícil ;

Não é possível distinguir entre um computador lento e um

falho ;

Não é possível ter certeza de que um servidor executou uma operação antes de falhar ;

Transparência total tem custo no desempenho - Exemplos:

Mantendo caches Web exatamente atualizados com a cópia principal ;

Forçando escrita de disco (flush) para tolerância a falhas ;

Sistemas Distribuídos 8º Período

principal ; – Forçando escrita de disco (flush) para tolerância a falhas ; Sistemas Distribuídos –

Metas de um Sist. Distribuído

Escalabilidade em Sistemas Distribuídos

Um sistema é descrito escalável se permanece

eficiente quando há um aumento significativo

no número de recursos e no número de usuários .

Controlar o custo dos recursos físicos ;

Controlar a perda de desempenho;

Impedir que os recursos de software se esgotem;

Evitar gargalos de desempenho.

Sistemas Distribuídos 8º Período

que os recursos de software se esgotem; – Evitar gargalos de desempenho. Sistemas Distribuídos – 8º

Metas de um Sist. Distribuído

Escalabilidade em Sistemas Distribuídos

A escalabilidade pode ser medida segundo três

dimensões:

Escalabilidade de tamanho: é fácil adicionar mais usuários e recursos no sistema ;

Escalabilidade geográfica: usuários e recursos

podem estar distantes entre si ;

Escalabilidade administrativa: é fácil gerenciar,

abranja muitas organizações

mesmo que

administrativas diferentes;

Observação : A maioria dos sistemas leva em conta, e até um certo ponto, escalabilidade de tamanho . Hoje em dia, os desafios estão em escalabilidade geográfica e administrativa .

Sistemas Distribuídos 8º Período

em dia, os desafios estão em escalabilidade geográfica e administrativa . Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Escalabilidade em Sistemas Distribuídos

Metas de um Sist. Distribuído • Escalabilidade em Sistemas Distribuídos Sistemas Distribuídos – 8º Período

Sistemas Distribuídos 8º Período

Metas de um Sist. Distribuído • Escalabilidade em Sistemas Distribuídos Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Escalabilidade em Sistemas Distribuídos

Metas de um Sist. Distribuído • Escalabilidade em Sistemas Distribuídos Sistemas Distribuídos – 8º Período

Sistemas Distribuídos 8º Período

Metas de um Sist. Distribuído • Escalabilidade em Sistemas Distribuídos Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Escalabilidade em Sistemas Distribuídos

Quando um sistema escalável contém essas várias

dimensões, muitas vezes apresenta queda de

desempenho na medida em que é ampliado.

um ambiente

Perigoso :

Pensar distribuído em

centralizado.

Conceito

Exemplo

Serviços Centralizados

Único servidor para todos os dados

Dados Centralizados

Lista telefônica on-line

Algoritmos Centralizados

Fazer roteamento com base em informações completas

Sistemas Distribuídos 8º Período

Algoritmos Centralizados Fazer roteamento com base em informações completas Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Escalabilidade em Sistemas Distribuídos

Problemas relacionados a Escalabilidade de

tamanho :

Ao inserirmos continuamente mais usuários tendemos a chegar a um ponto onde o servidor centralizado atinja seu limite operacional, transformando -se no gargalo do sistema . Mesmo que admitamos que esse servidor tenha capacidade de processamento e de armazenagem

ilimitadas, ainda assim sofrerá restrições devido a sua capacidade de

comunicação ser limitada .

Sistemas Distribuídos 8º Período

sofrerá restrições devido a sua capacidade de comunicação ser limitada . Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD

Ocultar latência de comunicação;

Distribuição;

Replicação.

Sistemas Distribuídos 8º Período

– Ocultar latência de comunicação; – Distribuição; – Replicação. Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD Ocultar latência de comunicação :

A ideia central é simples : evita -se esperar por respostas

a requisições remotas (e lentas) . Uma requisição a uma máquina remota fica pendente, enquanto esta é liberada para continuar executando trabalhos úteis ao

lado requisitante .

é liberada para continuar executando trabalhos úteis ao lado requisitante . Sistemas Distribuídos – 8º Período

Sistemas Distribuídos 8º Período

é liberada para continuar executando trabalhos úteis ao lado requisitante . Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD Ocultar latência de comunicação :

Evitar esperar por respostas ; fazer outra coisa:

Usar comunicação assíncrona ;

Ter

respostas/solicitações que cheguem; Problema: nem toda aplicação se encaixa nesse modelo.

para

tratador

separado

um

Sistemas Distribuídos 8º Período

nem toda aplicação se encaixa nesse modelo. para tratador separado um Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD

Distribuição :

A ideia é distribuir entre vários computadores os serviços e dados . Decompondo os componentes em

partes menores, que por sua vez são distribuídas por

todo o sistema distribuído .

sua vez são distribuídas por todo o sistema distribuído . Sistemas Distribuídos – 8º Período O

Sistemas Distribuídos 8º Período

O espaço de nomes do DNS é organizado em hierarquia em uma árvore de domínios, dividida em

zonas de superposição em

acordo com a figura . Assim, nenhum servidor prestará todos os serviços nem possuirá todos os dados, portanto se um servidor falhar, nem tudo está perdido .

prestará todos os serviços nem possuirá todos os dados, portanto se um servidor falhar, nem tudo

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD Distribuição :

Particionar dados e computações entre múltiplas máquinas:

Mover computações para os clientes (AJAX) ;

Serviços

de

distribuição

de

nomes

descentralizados (DNS);

Serviços de informação descentralizados (WWW)

Sistemas Distribuídos 8º Período

descentralizados (DNS); – Serviços de informação descentralizados (WWW) Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD Replicação/caching :

Aumenta a disponibilidade dos serviços e melhora o balanceamento de carga no

melhoria do

sistema,

resultando

na

“desempenho”;

Caching é uma forma de replicação geralmente controlada pelo cliente. A existência de várias cópias pode levar a problemas de consistência ;

necessário ter garantias fortes de

Se

consistência tem de se atualizar as cópias imediatamente.

for

Sistemas Distribuídos 8º Período

de – Se consistência tem de se atualizar as cópias imediatamente. for Sistemas Distribuídos – 8º

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD Replicação/caching :

Fazer cópias de dados em máquinas distintas:

Servidores de arquivos e bancos de dados replicados;

Sites Web espelhados;

Caches Web (em navegadores e proxies [HTTP caching proxy] ) ;

Cache de arquivos (no servidor e no cliente) ;

Sistemas Distribuídos 8º Período

[HTTP caching proxy] ) ; – Cache de arquivos (no servidor e no cliente) ; Sistemas

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD Algoritmos Descentralizados

Características dos algoritmos descentralizados :

Nenhuma máquina tem informações completas sobre o estado do sistema ;

As máquinas tomam decisões tendo como base somente

informações locais ;

A falha de uma máquina não arruína o algoritmo;

Não há nenhuma premissa implícita quanto à existência de um relógio global.

Sistemas Distribuídos 8º Período

há nenhuma premissa implícita quanto à existência de um relógio global. Sistemas Distribuídos – 8º Período

Metas de um Sist. Distribuído

Técnicas para aplicar a Escalabilidade em SD

Aplicar

técnicas

de

escalabilidade

é

relativamente fácil, exceto por :

A existência de múltiplas cópias (por exemplo, caches replicados) pode levar a inconsistências :

alteração de uma cópia a faz distinta das demais;

Manter cópias sempre consistentes de maneira geral requer sincronização global para cada modificação;

Sincronização global dificulta escalabilidade.

Observação

Se

necessidade de sincronização global, mas tolerar

inconsistências, podemos reduzir a

podemos tolerar

inconsistências é dependente da aplicação .

Sistemas Distribuídos 8º Período

reduzir a podemos tolerar inconsistências é dependente da aplicação . Sistemas Distribuídos – 8º Período

Dúvidas

Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva Sistemas Distribuídos – 8º Período

Página do Professor Mauro:

http://www.dai.ifma.edu.br/~mlcsilva

Sistemas Distribuídos 8º Período

Dúvidas Página do Professor Mauro: http://www.dai.ifma.edu.br/~mlcsilva Sistemas Distribuídos – 8º Período

Próxima Aula

Tipos de Sistemas Distribuídos (Cluster e Grid)

Próxima Aula • Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos – 8º Período

Sistemas Distribuídos 8º Período

Próxima Aula • Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos – 8º Período