Sistemi Distribuiti Reti di Calcolatori a.a. 2003/2004 Prof. Roberto Baldoni Ing. Sara Tucci...
-
Upload
caprice-calabrese -
Category
Documents
-
view
219 -
download
0
Transcript of Sistemi Distribuiti Reti di Calcolatori a.a. 2003/2004 Prof. Roberto Baldoni Ing. Sara Tucci...
Sistemi Distribuiti
Reti di Calcolatori a.a. 2003/2004
Prof. Roberto BaldoniIng. Sara Tucci PiergiovanniIng 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:
1. Concorrenza spaziale oltre che temporale
2. No clock globale
3. Guasti indipendenti
Esempi di sistemi distribuito
inte
rnet
intr
anet
sist
ema
mob
ile
Ma anche.....ExtranetsOverlay NetworksGridUbiquitous 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 re-implementato 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
Date Computers Web servers
1979, Dec. 188 0
1989, July 130,000 0
1999, July 56,218,000 5,560,866
Computers connected to the internet
Scalabilità (ii) Il progetto di un sistema scalabile presenta quattro principali problemi:
Estendibilità del sistema Aggiungere server al volo
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 Indirizzi IP
Evitare i colli di bottiglia nel sistema Centralizzato vs distributed DNS
Gestione dei Guasti Scoperta dei guasti
Esempio: Checksum per scoprire pacchetti corrotti Mascheramento dei guasti
Esempio: Ritrasmissione sui canali Tolleranza ai guasti
Esempio: intrusion tolerant system Recupero da guasti
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
Client
Proxy
Web
server
Web
server
serverClient
Web appletsa) client request results in the downloading of applet code
Web server
ClientWeb serverApplet
Applet code
Client
b) client interacts with the applet
Thin clients and compute servers
ThinClient
ApplicationProcess
Network computer or PCCompute server
network
Spontaneous networking in a hotel
Internet
gateway
PDA
service
Music service
serviceDiscovery
Alarm
Camera
Guestsdevices
LaptopTV/PC
Hotel wirelessnetwork
Real-time ordering of eventssend
receive
send
receive
m1 m2
2
1
3
4X
Y
Z
Physical time
Am3
receive receive
send
receive receive receivet1 t2 t3
receive
receive
m2
m1
Processes and channels
process p process q
Communication channel
send
Outgoing message buffer Incoming message buffer
receivem
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