Você está na página 1de 22

Captulo I Introduo aos Sistemas Distribudos

From: Wolfgang Emmerich


Engineering Distributed Objects
John Wiley & Sons, Ltd 2000

From: Coulouris, Dollimore and Kindberg


Distributed Systems: Concepts and Design
Edition 3, Addison-Wesley 2001

Paula Prata,
Departamento de Informtica da UBI
http://www.di.ubi.pt/~pprata

O que um sistema distribudo?

Conjunto de computadores ligados em rede, com software


que permita a partilha de recursos e a coordenao de actividades,
oferecendo idealmente um sistema integrado.
Caractersticas:
Comunicao atravs de mensagens
Concorrncia
Partilha de recursos
Sistema Assncrono
Falhas Independentes
Heterogeneidade
2

O que um sistema distribudo?


Caractersticas:
- Os componentes do sistema comunicam atravs de mensagens
(no existem variveis globais partilhadas)
modelos de programao: cliente/servidor, modelo baseado em objectos, ...
- Concorrncia: os vrios utilizadores utilizam o sistema em simultneo
( necessrio coordenar o acesso aos recursos partilhados: hw, sw, dados)
- Partilha de recursos
impressoras, discos, ferramentas para trabalho cooperativo, bases de dados
A partilha de recursos levanta questes de segurana
Gestores de recursos controlam o acesso a recursos partilhados
3

O que um sistema distribudo?


Caractersticas:
- Sistema Assncrono
no existe um relgio global
diferentes velocidades de processamento
no existe um limite para o tempo de comunicao
- Falhas Independentes
- falhas na rede (perda de mensagens, duplicao, reordenao)
- falhas em unidades de processamento
=> a falha de um componente no impede necessariamente
os outros de funcionar

O que um sistema distribudo?


Caractersticas:
- Heterogeneidade
Um sistema distribudo pode possuir:
. diferentes tipos de rede
. diferentes tipos de hardware
(diferentes representaes de dados, diferente cdigo mquina)
. diferentes sistemas operativos
(diferentes interfaces para os protocolos de comunicao)
. diferentes linguagens de programao
(diferentes representaes de estruturas de dados como arrays ou registos,...)
Para tentar resolver o problema da heterogeneidade define-se uma camada de
software intermdia: middleware
5

The Eight Fallacies of Distributed Computing


Essentially everyone, when they first build a distributed application,
makes the following eight assumptions.
All prove to be false in the long run and all cause big trouble and
painful learning experiences.
Peter Deutsch
1. The network is reliable
2. Latency is zero

first published the "8


Fallacies of Networking"
internally while working at
Sun Labs in 1991-92.

3. Bandwidth is infinite
4. The network is secure
5. Topology doesnt change
6. There is one administrator
7. Transport cost is zero
8. The network is homogeneous

Exemplos de sistemas distribudos:


A Internet

intranet
ISP

backbone

satellite link
desktop computer:
server:
network link:

7
Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000

Exemplos de sistemas distribudos:


O desenho e construo dos mecanismos de comunicao da Internet
(protocolos Internet) permitiu que um programa em execuo
num qualquer ponto da rede possa enviar mensagens a programas
em qualquer outro lugar.
Computadores na internet

Date
1979, Dec.
1989, July
1999, July

Web servers

Computers
188

130,000
56,218,000

0
5,560,866

8
Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000

Exemplos de sistemas distribudos:


Intranets
Desktop
computers

email server
print and other servers
Local area
network

Web server

email server
print

File server

other servers
the rest of
the Internet
router/firewall

9
Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000

Computao Mvel e Ubqua


Integrao de equipamento porttil em sistemas distribudos

Internet

Host intranet

WAP
gateway

Wireless LAN

Printer
Camera

Mobile
phone
Laptop

Home intranet

Host site
10

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

Computao Mvel e Ubqua


. Computadores portteis
. Telefones mveis
. PDAs - Personal Digital Assistants
. Mquinas fotogrficas digitais
. Pagers
...
. wearable devices, relgios com processador, ...
. Sistemas embebidos (= computadores dentro de um produto)
electrodomsticos, carros, ...

=> O termo computao Ubqua pretende designar sistemas cuja utilizao est de tal
forma integrada na funcionalidade do produto que transparente para o utilizador.
=> Maiores restries em termos de: custo, tamanho, potncia/autonomia
11

Outros Sistemas Distribudos:

. Correio electrnico
. World wide web
. Sistemas de ficheiros distribudos
Aplicaes crticas:
. Reserva de bilhetes em companhias de transportes
. Comrcio electrnico
. Mquinas Multibanco
=> Exigem fiabilidade e segurana

12

Desafios na implementao de sistemas distribudos:


Escalabilidade
Abertura
Tolerncia a Falhas
Segurana
Transparncia
Escalabilidade
Capacidade de o sistema se manter a funcionar de forma correcta e velocidade
desejada independentemente do nmero de utilizadores.
necessrio:
- desenhar o software de forma a que o aumento de utilizadores no exija
grandes alteraes
- evitar algoritmos e estruturas de dados centralizadas
(replicao de dados se necessrio)
13

Desafios na implementao de sistemas distribudos:


Escalabilidade (cont)
- controlar o aumento de custos devido disponibilizao de mais recursos
- controlar a perda de performance
(replicao de servios)
- evitar o transbordo de certos limites de recursos (ex. Endereo IP com 32 bits,
insuficiente)
Sistema Aberto (Openness)
Capacidade de o sistema ser extensvel, quer em hardware quer em software
- novos componentes devem poder ser adicionados sem por em causa o
funcionamento dos j existentes, e poder comunicar com eles

14

Desafios na implementao de sistemas distribudos:


Sistema Aberto (cont)
Para isso importante que:
- sejam conhecidas as interfaces dos novos componentes atravs da publicao da
sua documentao
- utilizar protocolos e formatos standard
Exemplo de publicao de interfaces:
Request For Comment (RFCs) www.ietf.org
Contm as especificaes dos protocolos internet desde o incio dos anos 80
Tolerncia a Falhas
Tolerar uma falha significa conter os seus efeitos de forma a que o sistema continue
a funcionar.
15

Desafios na implementao de sistemas distribudos:


Tolerncia a Falhas (cont)
- Deteco da falha
Dados corrompidos (mensagens ou ficheiros) podem ser detectados atravs
de somas de verificao.
- Localizao da falha
Se no houve resposta a um pedido, o que significa?
- falha na rede
- falha no n destino
como distinguir ?

16

Desafios na implementao de sistemas distribudos:


Tolerncia a Falhas (cont)
- Mascarar / Tolerar a falha
Algumas falhas podem ser ocultadas do utilizador se se
utilizar redundncia suficiente:
- quando uma mensagem no chega, pode ser retransmitida
- um ficheiro pode ser escrito em duplicado (um em cada disco)
- entre cada dois routers da internet, devem sempre existir dois
percursos
- uma base de dados pode ser replicada em vrios servidores
17

Desafios na implementao de sistemas distribudos:


Segurana
Manter recursos computacionais seguros significa:
- Manter o nvel de confidencialidade exigido pelos utilizadores
(proteco contra acessos no autorizados)
- Garantir a integridade dos dados
(proteco contra alterao ou corrupo de dados ou programas)
- Manter a disponibilidade do sistema
(proteco contra interferncias com os meios de acesso aos recursos)

Alguns problemas por resolver:


- Ataques do tipo negao de servio (denial of service)
- Segurana do cdigo mvel
18

Desafios na implementao de sistemas distribudos:


Transparncia
O sistema deve ser visto como um todo e no como uma coleco de componentes
distribudos.
No standard de Open Distributed Processing (ODP) foram definidos os seguintes
tipos de transparncia:
- Acesso

- Falhas

- Localizao

- Migrao

- Concorrncia

- Desempenho

- Replicao

- Escalabilidade

Mais Importantes:
Acesso e Localizao em conjunto so referidos como transparncia de rede

19

Desafios na implementao de sistemas distribudos:

Transparncia de acesso:
permite que o acesso a recursos locais e a recursos remotos seja feito atravs das
mesmas operaes (i., usando a mesma interface).
(ex. Samba vs FTP)

Transparncia de localizao:
permite que os recursos possam ser acedidos sem o conhecimento da sua
localizao.
(ex. Programas de correio electrnico)

Transparncia de concorrncia:
permite que os vrios clientes de um componente no necessitem de ter em conta
o acesso concorrente ao componente.

20

Desafios na implementao de sistemas distribudos:


Transparncia de replicao:
permite que os clientes de um componente no se apercebam se existe
replicao e esto a usar uma rplica e no o original; a utilizao de vrias
instncias de um componente pode ocorrer por razes de desempenho ou de
fiabilidade; os utilizadores do componente no necessitem de saber que o
componente possa ser replicado.

Transparncia de Falhas:
permite que o sistema funcione na presena de falhas de hardware ou
software sem que utilizadores e programadores saibam como as falhas foram
ultrapassadas.
(por ex. um sistema de e-mail pode retransmitir uma mensagem at que a mesma
seja entregue com sucesso)

Transparncia de Migrao:
permite que um recurso possa mudar de localizao sem que isso afecte a
sua utilizao.
(ex. Telemveis em movimento)
21

Desafios na implementao de sistemas distribudos:


Transparncia de Desempenho:
permite que o sistema seja reconfigurado para melhorar o seu desempenho sem
que os utilizadores se apercebam.

Transparncia de Escalabilidade:
permite que o sistema seja expandido sem que os utilizadores se apercebam de
como isso foi conseguido.

22

Você também pode gostar