Sistemi Distribuiti
Reti di Calcolatori a.a. 2003/2004
Prof. Roberto Baldoni
Ing. Sara Tucci Piergiovanni
Ing Alessia Milani
Una definizione

Un sistema distribuito è costituito da un
insieme di computers spazialmente
separati dove sono dislocati componenti
hardware e software che comunicano e
coordinano tra loro le loro azioni attraverso
scambio di messaggi
Obiettivo primario:
Condivisione dati/risorse

Condivisione dei dati come in
database distribuiti. In questo
modo più organizzazioni
possono condividere i propri
dati.

Problemi: esempio
sincronizzazione e
coordinamento
Conseguenze
nei sistemi distribuiti le precedenti
tecniche devono essere implementate
tenendo presente:
Concorrenza spaziale oltre che temporale
2. No clock globale
3. Guasti indipendenti
1.
Esempi di sistemi distribuito
Ma anche.....
Extranets
Overlay Networks
Grid
Ubiquitous Computing
Caratteristiche..e Sfide
Eterogeneità
 Openess
 Sicurezza
 Scalabilità
 Gestione dei guasti
 Concorrenza
 Trasparenza

Eterogeneità





Networks
Hardware
Operating Systems
Programming Languages
Implementations from different Developers
Soluzioni
 Middleware
 Mobile code and Virtual Machine
Openess





Caratteristica di un sistema di essere esteso e reimplementato
Condizione necessaria documentazione e specifica delle
interfacce software chiave dei componenti di un sistema
...ma questo è solo il punto di partenza
Il numero a volte elevatissimo (a volte ordine di decine di
migliaia) di sviluppatori di software indipendenti rende lo
sviluppo di una piattaforma distribuita un lavoro molto
complesso e difficile da gestire
Esempi:


RFC per internet
JBoss per le piattaforme J2EE
Sicurezza

Confidenzialità (protezione contro l’intercettazione di dati
da parte di individui non autorizzati)

Integrity (protezione contro l’alterazione di dati)

Availability (protezione contro l’interferenza nell’accesso
ad una risorsa)
Scalabilità

Un sistema è scalabile se rimane operativo con
adeguate prestazioni anche se il numero di
risorse e di utenti aumenta sensibilmente
Computers connected to the internet
Date
1979, Dec.
1989, July
1999, July
Web servers
Computers
188
0
130,000
56,218,000
0
5,560,866
Scalabilità (ii)
Il progetto di un sistema scalabile presenta quattro principali
problemi:

Estendibilità del sistema


Controllare le perdite di prestazioni



Usare algoritmi che non richiedono di dialogare con tutto il set di
user di un sistema distribuito
Usare algoritmi che non richiedono di accedere all’intero set di dati
Prevenire che finiscano le risorse software del sistema


Aggiungere server al volo
Indirizzi IP
Evitare i colli di bottiglia nel sistema

Centralizzato vs distributed DNS
Gestione dei Guasti

Scoperta dei guasti


Mascheramento dei guasti


Esempio: intrusion tolerant system
Recupero da guasti


Esempio: Ritrasmissione sui canali
Tolleranza ai guasti


Esempio: Checksum per scoprire pacchetti corrotti
Esempio: completamento di long running computation
Ridondanza

Esempio: DNS
Concorrenza

Accesso multiplo a risorse condivise




Se clienti accedono metodi di read e write di una variabile
condivisa
Che valori ritornano le read?
Coordinamento
Sincronizzazione
Trasparenza








Accesso: permette di accedere a risorse locali e remote con le stesse modalità
Locazione: permettere di accedere alle risorse senza conoscerne la locazione
Concorrenza: permette ad un insieme di processi di operare concorrentemente su
risorse condivise senza interferire tra loro
Guasti: permette il mascheramento dei guasti in modo che gli utenti possano
completare le operazioni richieste anche se occorrono guasti hw e/o sw
Mobilità: permette di spostare risorse senza influenzare le operazioni utente
Prestazioni: permette di riconfigurare il sistema al variare del carico
Scalabilità: permette al sistema e alle applicazioni di espandersi in modo scalabile
senza modificare la struttura del sistema e degli algoritmi applicativi
Le prestazioni di una soluzione basata su sistema distribuito non sempre
migliorano rispetto ad una basata su sistema centralizzato. Il middleware,
necessario per fornire servizi che sfruttano le caratteristiche di un sistema
distribuito, in generale può diminuire le prestazioni
Stratificazione hw e sw
Modelli di interazione
client/server
peer-to-peer
Modelli di interazione


La scelta del modello di interazione impatta su
scalabilità, disponibilità, costo, sicurezza, prestazioni
Es. client/server con servizio replicato:
Affidabilità, Scalabilità
Prestazioni: la replicazione
impone un lavoro extra per:
mantenere la consistenza delle
repliche, gestione dei guasti
Web proxy server
Web
server
Client
Proxy
server
Client
Web
server
Web applets
a) client request res ults in the dow nloading of applet c ode
Client
Applet code
Web
s erv er
b) client interac ts w ith the applet
Client
Applet
Web
s erv er
Thin clients and compute servers
Compute server
Network computer or PC
Thin
Client
network
Application
Process
Spontaneous networking in a
hotel
Music
service
gateway
Alarm
service
Internet
Hotel wireless
network
Discovery
service
Camera
TV/PC
Laptop
PDA
Guests
devices
Real-time ordering of events
s end
X
receiv e
1
m1
2
Y
receiv e
4
s end
3
m2
receiv e
Phy sical
time
receiv e
s end
Z
receiv e
receiv e
m3
A
t1
t2
m1
m2
receiv e receiv e receiv e
t3
Processes and channels
process p
process q
send m
receiv e
Communic ation c hannel
Outgoing mess age buffer
Incoming mes sage buffer
Middleware: problemi da affrontare

Eterogeneità: OS, velocità dei clock, rappresentazione dei dati, memoria,
architettura hw

Asincronia locale: anche se i clock fossero gli stessi, il carico (diverso per ogni
nodo), le diverse configurazioni di OS, e gli interrupt creano schedulazioni diverse dei
processi in esecuzione (nondeterminismo)
 Mancanza di conoscenza globale: la conoscenza si propaga attraverso
messaggi i cui tempi di propagazione sono MOLTO più lenti degli eventi interni.
 Asincronia di rete: i tempi di propagazione dei messaggi potrebbero essere
impredicibili.


Guasti di nodi e/o parti di rete
Sicurezza: nei sistemi centralizzati non si espone informazione al mondo esterno
attraverso comunicazioni.

Mancanza di un ordinamento globale degli eventi
CIO’ LIMITA L’INSIEME dei problemi computazionalmente risolvibili
(algoritmi deterministici) su alcuni SISTEMI DISTRIBUITI
Scarica

Sistemi Distribuiti