Buscar

Aula 2 Sistemas Distribuidos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Distribuídos 
Prof. Carlos Viana 
Introdução 
• Como já vimos, hoje os sistemas 
computacionais são baseados em aplicações 
que funcionam de forma distribuída, o mundo 
é globalizado e como tal, as aplicações devem 
seguir o conceito de distribuição. 
Introdução 
• “Um sistema distribuído é um conjunto de 
computadores independentes que se 
apresenta a seus usuários como um sistema 
único e coerente” 
 (Tanenbaum/Van Steen) 
Introdução 
• Para suportar computadores e redes 
heterogêneas e, simultaneamente, oferecer uma 
visão de sistema único, os sistemas distribuídos 
costumam ser organizados por meio de uma 
camada de software. 
• Que é situada logicamente entre uma camada de 
nível mais alto, composta de usuários e 
aplicações, e uma camada subjacente, que 
consiste em sistemas operacionais e facilidades 
básicas de comunicação. 
Introdução 
Meta 
• Na hora de pensarmos em desenvolver um 
sistema distribuído, temos que pensar em 
alguns aspectos importantes para que ele 
valha a pena, ele tem que atender a quatro 
metas importantes: 
– Fácil acesso aos recursos; 
– Transparência da distribuição; 
– Ser aberto; 
– Ser extensível; 
 
Acesso a recursos 
• “A principal meta de um sistema distribuído é 
facilitar aos usuários, e as aplicações, o acesso 
a recursos remotos e seu compartilhamento 
de maneira controlada e eficiente.” 
 (Tanenbaum/Van Steen) 
 
Acesso a recursos 
• Estes recursos podem ser: 
– Impressoras; 
– Computadores; 
– Facilidades de armazenamento; 
– Dados; 
– Páginas web; 
– Redes; 
– Etc; 
Exemplo 
• É mais barato que uma impressora seja 
compartilha por diversos usuários de um 
pequeno escritório do que comprar e manter 
uma impressora direcionada a cada usuário. 
Impressora Rede 
Transparência da 
Distribuição 
• Uma meta importante de um sistema distribuído é a 
capacidade de se apresentar como um sistema único, 
mesmo que seus processos estejam em 
computadores diferentes. 
Site Decolar .com 
Tipos de Transparência 
Transparência de Acesso 
• Trata da forma de acesso aos recursos pelos 
usuários de máquinas com arquiteturas 
diferentes, os sistemas operacionais devem 
entrar em acordo de como os dados podem 
ser representados. 
• Exemplo: 
– Em um sistema distribuído, podemos encontrar 
sistemas operacionais diferentes, que tenham 
suas próprias convenções pra nomes de arquivos. 
Transparência de Localização 
• Refere-se ao fato de um usuário não poder 
dizer a localização física de um recurso no 
sistema. A nomeação desempenha um papel 
importante para conseguir transparência de 
localização. 
• Por exemplo: 
– http://www.joaquimnabuco.edu.br/index.html , 
só por esta URL não é possível definir onde esta o 
servidor principal. 
Transparência de Migração 
• Pegando um gancho no exemplo anterior, o 
URL também não dá nenhuma dica se o 
index.html sempre esteve nesta localização ou 
foi transferido para lá recentemente. 
• Então, os recursos podem ser movimentados 
sem afetar o modo como podem ser 
acessados. 
Transparência de Relocação 
• É a possibilidade de relocar recursos enquanto 
estão sendo usados sem que os usuários ou 
aplicações percebam. 
• Exemplo: 
– Rede de comunicação de celular, onde a 
comunicação é garantida, mesmo que o usuário 
esteja em movimento; 
Transparência de Replicação 
• A replicação esta associada ao fato de existir 
várias copias de um recurso, para isto, cada 
replica deve ter o mesmo nome e os sistemas 
devem ser capazes, também de suportar 
transparência de localização. 
• Exemplo: 
– Disponibilizar uma cópia perto do lugar onde ele vai 
ser acessado, para aumentar a disponibilidade 
(cache). 
– Uso de um sistema de replicação de dados entre sites 
de produção e contingência; 
 
Replicação Banco Dados 
Transparência de Concorrência 
• Quando estamos em um sistema distribuído os 
recursos são compartilhados, neste sentido pode 
haver a concorrência de um determinado recurso 
compartilhado, isto acontece muito em sistemas 
de comunicação. 
• Exemplo: 
– Dois usuários independentes, em que cada um pode 
ter armazenado seus arquivos no mesmo servidor de 
arquivos ou acessar a mesma tabela em um banco de 
dados. 
 
 
Transparência de Concorrência 
• Neste sentido, é importante que o acesso ao recurso fique em 
estado consistente, isto pode ser conseguido através do 
sistema de travas de acesso, o que dá ao usuário, um por vez, 
acesso exclusivo ao recurso desejado. 
Transparência à Falhas 
• É a capacidade de um sistema distribuído deve ter de 
ser recuperar de uma falha sem que o usuário perceba 
que ela ocorreu. 
• Esta é uma tarefa muito difícil de ser executada, quase 
impossível, o grande desafio esta em conseguir 
distinguir se um recurso esta parado ou muito lento. 
• Exemplo: 
– Quando solicitamos uma página web e o tempo de espera 
do browser se esgota e ele avisa que a página não esta 
disponível, o usuário não tem como saber se realmente o 
servidor esta fora do ar. 
Grau de Transparência 
• Embora a transparência total em sistemas 
distribuídos seja um ponto importante, há 
situações em que esta total transparência não 
seja aconselhável. 
• Por exemplo, solicitar que seu jornal 
eletrônico apareça em sua caixa postal antes 
das 7 horas da manhã, hora local, enquanto 
você esteja no outro lado do mundo, onde o 
fuso horário é diferente. 
Grau de Transparência 
• A transparência em projetos distribuídos é 
uma das metas principais, mais dever ser 
levado em consideração outros aspectos, 
como o desempenho e facilidade de 
compreensão. 
Abertura 
• Uma meta importante aos sistemas 
distribuídos é a abertura, os sistemas devem 
ser capazes de atender as regras de 
padronização e semântica dos serviços. 
• Por exemplo, em redes de computadores há 
regras padronizadas que regem o formato, o 
conteúdo e o significado de mensagens 
enviadas e recebidas. 
Abertura 
Abertura 
• Em sistemas distribuídos estas regras são 
descritas por meio de interfaces, que são 
descritas por meio de uma linguagem de 
definição de interface (Interface Definition 
Language – IDL). 
• Exemplo: 
– OMG IDL; 
– JAVA IDL; 
Abertura 
• “Completude e neutralidade são importantes 
para interoperabilidade e portabilidade” 
 (Blair e Stefani, 1998) 
Abertura 
• Interoperabilidade: 
Caracteriza até que ponto 
duas implementações de 
sistemas ou componentes 
de sistemas diferentes 
devem coexistir e 
trabalhar em conjunto, 
com base na mera 
confiança mutua, através 
de um padrão comum. 
Abertura 
• Portabilidade: 
Caracteriza até que 
ponto uma aplicação A 
pode ser executada, 
sem modificação, em 
um sistema distribuído 
diferente B. 
 
Extensível 
• Define a capacidade de se adicionar novos 
componentes ou substituir componentes 
existentes sem afetar os que continuam no 
mesmo lugar. 
• Exemplo: 
– Ser fácil adicionar partes que são executadas em 
um sistema operacional diferente, ou até mesmo 
substituir todo um sistema de arquivo. 
 
 
Escabilidade 
• A escabilidade de um sistema pode ser 
medido segundo, no mínimo, três dimensões 
diferentes (Neuman, 1994): 
– Tamanho: Fácil adicionar mais usuários e recursos; 
– Geografia: Onde os usuários e recursos podem 
estar distantes uns dos outros; 
– Administração: Fácil de gerenciar, mesmo que 
abranja muitas organizações administrativas; 
 
Problemas Escabilidade 
• Relação ao tamanho: 
– Servidores Centralizados: um único servidor para todos 
usuários; 
– Dados Centralizados: uma única lista telefônica on-line;;– Algoritmos Centralizados: Fazer roteamento com base em 
informações completas; 
• Uma máquina tem informação completa sobre o estado do 
sistema, ou as máquinas tomam decisões baseadas em 
informações de outros nós, ou uma falha de um nó pode 
arruinar o algoritmo, ou assume-se que existe um relógio 
global. 
• Mas por vezes é inevitável ter centralização (dados 
confidenciais de bancos, etc.). 
Problemas Escabilidade 
• Relação à distância geográfica: 
• Em LAN´s é comum usar comunicação síncrona: 
– Um Cliente envia o pedido e fica bloqueado à espera de 
uma resposta. 
• Numa WAN a comunicação pode durar três ordens 
de grandeza mais (centenas de milisegundos): 
– Se uma aplicação tem componentes centralizados fica 
também limitada em termos geográficos. 
Problemas Escabilidade 
• Relação à facilidade de administração: 
• São necessários dois tipos de medidas de 
segurança quando o sistema distribuído se 
expande para um novo domínio: 
– O sistema tem de se proteger de ataques vindos 
do novo domínio; 
– O domínio tem de se proteger de ataques vindos 
do sistema distribuído; 
Técnicas de escalabilidade 
• Há basicamente apenas três técnicas para 
ampliar sistemas: 
– Ocultar latências de comunicação; 
– Distribuição; 
– Replicação; 
Ocultar latência na comunicação 
• Ocultar latência na comunicação é importante 
para conseguir escabilidade geográfica; 
• Usar comunicação assíncrona para evitar 
bloquear processos à espera de receber 
respostas; 
– Tratamento de respostas como eventos; 
– Usar várias tarefas em paralelo para continuar 
processamento; 
Ocultar latência na comunicação 
Distribuição 
• Distribuir entre vários computadores os 
serviços e dados. Decompondo os 
componentes em partes menores, que são 
distribuídas por todo o sistema distribuído: 
– Exemplos: DNS e Web; 
• Nenhum servidor prestará todos os serviços 
nem possuirá todos os dados: 
– Se um servidor falhar, nem tudo está perdido. 
Distribuição 
Replicação 
• Aumenta a disponibilidade dos serviços e 
melhora o balanceamento de carga no sistema. 
Aumenta a disponibilidade do serviço nas zonas 
da rede onde há réplicas. 
• Cache é uma forma de replicação controlada pelo 
cliente. A existência de várias cópias pode levar a 
problemas de consistência. 
• Se for necessário ter garantias fortes de 
consistência tem de se atualizar as cópias 
imediatamente (ex: Internet banking). 
 
Replicação 
Ciladas 
• Sistemas distribuídos são diferentes do 
software tradicional porque os componentes 
estão dispersos por uma rede; 
• Não levar essas dispersão em conta durante o 
projeto é o que torna tantos sistemas 
desnecessariamente complexos; 
Ciladas 
• Segundo Peter Deutsch, existem as seguintes 
premissas falsas e que todos adotam ao 
desenvolver uma aplicação distribuída: 
– A rede é confiável; 
– A rede é segura; 
– A rede é homogênea; 
– A topologia não muda; 
– A latência é zero; 
– A largura de banda é infinita; 
– O custo do transporte é zero; 
– Há só um administrador; 
 
Ciladas 
• Observe que estas premissas se referem a 
sistemas distribuídos: confiabilidade, 
segurança, heterogeneidade e topologia de 
rede; latência e largura de banda; custo de 
transporte e ,por fim, domínios 
administrativos; 
Traceroute 
• Traceroute é uma ferramenta que permite descobrir o 
caminho feito pelos pacotes desde a sua origem até o seu 
destino. Ele é usado para testes, medidas e gerenciamento 
da rede. 
• O traceroute pode ser utilizado para detectar falhas como, 
por exemplo, gateways intermediários que descartam 
pacotes ou rotas que excedem a capacidade de um 
datagrama IP. 
• Com esta ferramenta, o atraso da "viagem" do pacote entre 
a origem e gateways intermediários são reportados, 
permitindo determinar a contribuição de cada gateway 
para o atraso total da "viagem" do pacote desde a origem 
até o seu destino. 
Traceroute 
• O comando traceroute envia pacotes de pesquisa UDP 
(UDP probe packets) com um pequeno "time-to-live" 
máximo (variável Max_ttl), e então, espera por pacotes 
de resposta "ICMP TIME_EXCEEDED" dos gateways que 
estão no caminho. 
• Os pacotes UDP começam com um valor Max_ttl de 1 
hop, que é incrementado de 1 hop a cada vez, até que 
uma mensagem "ICMP PORT_UNREACHABLE" é 
retornada. Esta mensagem indica que o host destino 
foi localizado ou que o comando traceroute atingiu o 
valor máximo de hops permitido para o "trace". 
Traceroute 
• traceroute [-m Max_ttl] [-n] [-p Port] [-q 
Nqueries] [-r] [-s SRC_Addr] [-t TypeOfService] [-
v] [-w WaitTime] Host [PacketSize] 
• O único parâmetro obrigatório para o comando 
traceroute é o nome ou o o número IP do host 
destino. O tamanho do pacote UDP (UDP probe 
packet) é de 38 bytes, mas pode ser aumentado 
especificando o tamanho do pacote (em bytes) 
após o nome ou número IP do destino. 
Duvidas

Continue navegando