Você está na página 1de 24

Sistemas Distribuídos

Sistemas Distribuídos – Introdução


Prof. CARLOS WAGNER
Sistemas Distribuídos
Introdução

Os sistemas de computação estão passando por uma revolução.


Desde 1945, quando começou a era moderna dos
computadores, até aproximadamente 1985, os computadores eram
grandes e caros.
Mas foi em meados da década de 80 que dois avanços começaram
a mudar esta situação.
O primeiro passo foi o desenvolvimento de microprocessadores em
grande quantidade.

2
Sistemas Distribuídos
Introdução
O segundo desenvolvimento foi a invenção de redes de
computadores de alta velocidade.

Redes locais ou LANs permitem que centenas de


máquinas localizadas dentro de um edifício esteja
conectadas de modo tal que informações possam ser
transferidas entre máquinas em alguns microssegundos.

Redes de longa distância ou WANs permitem que milhões


de máquinas no mundo inteiro se conectem.
4
Sistemas Distribuídos

Introdução
O resultado dessas tecnologias é que ficou fácil e
viável montar sistemas de computação composto por
grandes quantidades de computadores conectados por
uma rede de alta velocidade.
Estes sistemas costumam ser denominados redes de
computadores ou sistemas distribuídos.

5
Sistemas Distribuídos
Definição
Um sistema distribuído é um conjunto de computadores
independentes que se apresenta a seus usuários como
um sistema único e coerente.
Aspectos importantes desta definição:
Um sistema distribuído consiste em componentes
(computadores) autônomos.
Os usuários (pessoas ou programas) acham que estão
tratando com um único sistema.
6
Sistemas Distribuídos
Definição
Os componentes autônomos precisam colaborar.
Esta colaboração é o cerne (parte importante) do
desenvolvimento de sistemas distribuídos.

Não é adotada nenhuma premissa em relação ao tipo de


computadores nem ao modo que eles são interconectados.

Dentro de um único sistema, poderíamos ter computadores


centrais (mainframes) de alto desenvolvimento até pequenos
nós em redes de sensores.
7
Sistemas Distribuídos

Características
Transparente para o usuário:

Diferenças entre os vários computadores.

Modo em que os computadores se comunicam.

Organização interna do sistemas distribuídos.
Usuários e aplicações podem interagir com um
sistema distribuído de maneira consistente e uniforme.
8
Sistemas Distribuídos
Características
Facilidade de expandir ou aumentar a escala de sistemas
distribuídos.
Consequência direta de ter computadores
independentes e de ocultar como estes
computadores realmente fazem parte do sistema.
Estar continuamente disponível, embora algumas partes
possam estar temporariamente com problemas.
Usuários e aplicações não devem perceber quais são
as partes que estão sendo substituídas ou
concertadas, ou quais as novas partes adicionadas.
9
Sistemas Distribuídos

Para suportar computadores e redes heterogêneos e,


simultaneamente, oferecer uma visão de sistema único, os
sistemas distribuídos costumam ser organizados por meio de
uma camada de software.

Esta camada situada 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.

Por isso, tal sistema distribuído às vezes é denominado


middleware.
10
Sistemas Distribuídos

A camada de middleware se estende por várias máquinas e


oferece a mesma interface a cada aplicação.
Nesta figura temos 4 computadores em rede e 3 aplicações,
das quais a aplicação B é distribuída para os computadores 2 e 3.
A mesma interface é oferecida a cada aplicação.
11
Sistemas Distribuídos

11
Sistemas Distribuídos

O sistema distribuído proporciona os meios para


que os componentes de uma única aplicação
distribuída se comuniquem uns com os outros,
mas também permite que diferentes aplicações
se comuniquem.

Ele oculta, do melhor e mais razoável modo


possível, as diferenças em hardware e sistemas
operacionais para cada aplicação.
12
Sistemas Distribuídos

Metas
O fato de montar sistemas distribuídos não quer dizer
necessariamente que seja uma boa ideia.
Temos quatro metas importantes que devem ser cumpridas na
construção de um sistema distribuído para que valha a pena o
esforço:

Acesso fácil aos recursos,

Transparência da distribuição,

Ser aberto,

Poder ser expandido (escalabilidade).
13
Sistemas Distribuídos

Metas – Acesso fácil a recursos


A principal meta dos sistemas distribuídos é facilitar aos usuários e às
aplicações o acesso de recursos remotos e seu compartilhamento
de maneira controlada e eficiente.
Os recursos podem ser muito abrangentes, mas podemos exemplificar:

Impressoras;

Computadores;

Facilidade de armazenamento;

Dados;

Páginas web;

Redes.

14
Sistemas Distribuídos

Metas – Acesso fácil a recursos


Conectar usuários e recursos facilita a colaboração e a
troca de informações, o que é claramente ilustrado pela
internet.
A medida que a conectividade e o compartilhamento
crescem, a segurança se torna cada vez mais
importante.
15
Sistemas Distribuídos

Metas – Transparência da distribuição


Uma importante meta é ocultar o fato de que seus
processos e recursos estão fisicamente distribuídos
por vários computadores.
Um sistema distribuído é capaz de se apresentar a
usuários e aplicações como se fosse apenas um
único sistema de computador é denominado
transparente.
16
Sistemas Distribuídos
Metas – Transparência da distribuição
Tipos de transparência que existem em sistemas
distribuídos:
Transparência Descrição
Acesso Oculta diferenças na representação de dados e no modo de acesso a um recurso
Localização Oculta o lugar em que um recurso está localizado
Migração Oculta que um recurso pode ser movido para outra localização
Relocação Oculta que um recurso pode ser movido para outra localzação enqanto em uso
Replicação Oculta que um recurso é 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

17
Sistemas Distribuídos

Metas – Abertura
Um sistema distribuído aberto é um sistema que
oferece serviços de acordo com as regras
padronizadas que descrevem a sintaxe e a semântica
destes serviços.
Exemplo:
Em redes de computadores há regras padronizadas
que governam o formato, o conteúdo e o significado
de mensagens enviadas e recebidas. (protocolos).
18
Sistemas Distribuídos
Metas – Abertura
Em sistemas distribuídos estes serviços são especificados por meio
de interfaces, que costumam ser descritas em uma linguagem de
definição de interfaces (Interface Definition Language – IDL).
As IDL especificam com precisão os nomes das funções que estão
disponíveis, junto com os tipos dos parâmetros, os valores de
retorno, as possíveis exceções que podem surgir e assim por diante.
A parte difícil é especificar com precisão o que estes serviços fazem
(semântica das interfaces).
Na prática, são dadas de modo informal por meio de linguagem
natural.
19
Sistemas Distribuídos

Metas – Escalabilidade
A escalabilidade de um sistema pode ser medida em
3 dimensões diferentes:
Escalável em relação a seu tamanho.
Significa que é fácil adicionar mais usuários e
recursos ao sistema.
Escalável em termos geográficos.
Sistema no qual usuários e recursos podem
estar longe uns dos outros.
21
Sistemas Distribuídos

Metas – Escalabilidade
A escalabilidade de um sistema pode ser medida em
3 dimensões diferentes:
Escalável em termos administrativos.
Fácil de gerenciar, mesmo que abranja muitas
organizações administrativas diferentes.
Sistemas escaláveis em uma ou mais destas
dimensões muitas vezes apresentam perda na
capacidade de desempenho à medida que é
ampliado. 22
Sistemas Distribuídos
Metas – Tratamento de falhas
Às vezes, os sistemas de computador falham. Quando
ocorrem falhas no hardware ou no software, os programas
podem produzir resultados incorretos ou podem parar antes de
terem concluído a computação pretendida.
As falhas em um sistema distribuído são parciais, isto é, alguns
componentes falham, enquanto outros continuam funcionando.
Portanto, o tratamento de falhas é particularmente difícil.

23
Sistemas Distribuídos

Metas – Técnicas para falhas


Por exemplo, somas de verificação podem ser
usadas Para detectar dados corrompidos em uma
mensagem ou em um
O desafio é gerenciar a ocorrência de falhas que
não podem ser detectadas, mas que podem ser
suspeitas.

24
Sistemas Distribuídos

Metas – Técnicas para tratamento de falhas


Mascaramento de falhas: algumas falhas detectadas
podem ser ocultas ou se tornar menos sérias. Dois
exemplos de ocultação de falhas:

Mensagens podem ser retransmitidas quando não
chegam;

Dados de arquivos podem ser gravados em dois
discos, para que, se um estiver danificado, o outro
ainda possa estar correto.
25

Você também pode gostar