Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni9 pagine

Trasp Calc Distr

Caricato da

umberto piscopo
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
5 visualizzazioni9 pagine

Trasp Calc Distr

Caricato da

umberto piscopo
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Leonardo Galteri - Trasparenza nel calcolo distribuito

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

1 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

Indice

1. CONDIVISIONE DELLE RISORSE ............................................................................................ 3


2. TIPI DI TRASPARENZA DELLA DISTRIBUZIONE ...................................................................... 4
3. LIVELLI DI TRASPARENZA .................................................................................................... 7
BIBLIOGRAFIA ............................................................................................................................ 9

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

2 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

1. Condivisione delle risorse

Anche se è tecnicamente fattibile mettere in piedi un sistema distribuito, ciò non implica
automaticamente che farlo sarebbe un'idea intelligente, o comunque la soluzione migliore. Un sistema
distribuito dovrebbe rendere le risorse di facile accesso; dovrebbe nascondere il fatto che le risorse sono
distribuite su una rete; dovrebbe essere aperto; e dovrebbe essere scalabile.
Uno degli obiettivi primari di un sistema distribuito è semplificare il processo attraverso il quale gli
utenti (e le applicazioni) possono accedere e collaborare su risorse distanti. Il termine "risorse" può riferirsi
a quasi tutto; tuttavia, alcuni tipi comuni di risorse includono periferiche, strutture di archiviazione, dati,
file, servizi e reti, per citare solo alcuni esempi.
Ci sono molte motivazioni diverse per desiderare di mettere in comune le risorse disponibili. Uno
dei motivi più importanti sono le motivazioni economiche. Ad esempio, è più conveniente disporre di
un'unica struttura di archiviazione di fascia alta e affidabile condivisa da più utenti piuttosto che dover
acquisire e mantenere lo storage su base individuale per ciascun utente. La connessione di persone e
risorse semplifica la cooperazione e lo scambio di informazioni, come dimostra la popolarità di Internet, che
ha protocolli semplici per il trasferimento di file, posta, documenti, audio e video.
La connessione di utenti e risorse semplifica inoltre la condivisione delle informazioni. La
connettività resa disponibile da Internet ha reso possibile la collaborazione di gruppi di persone
geograficamente lontane attraverso l'uso di vari tipi di groupware, ovvero grazie all’uso di software che
consente l'editing collaborativo, la teleconferenza e altre attività simili. Questo fenomeno è risultato
evidente in seguito a quelle multinazionali di sviluppo software che hanno esternalizzato una parte
significativa della loro produzione di codice in Asia.
Tuttavia, la popolarità delle reti peer-to-peer per la condivisione di file, come BitTorrent, è
probabilmente il miglior esempio di condivisione delle risorse nei sistemi distribuiti. Gli utenti sono in grado
di trasferire i dati molto facilmente su Internet grazie a questi sistemi distribuiti, che rendono tutto il
processo abbastanza semplice. La distribuzione di elementi multimediali, come musica e video, è spesso
menzionata in combinazione con le reti peer-to-peer (P2P). In altre applicazioni, la tecnologia viene
utilizzata allo scopo di distribuire enormi quantità di dati, come nel caso degli aggiornamenti software, dei
servizi di backup e della sincronizzazione dei dati su numerosi server.

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

3 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

2. Tipi di trasparenza della distribuzione

Nascondere il fatto che le operazioni e le risorse di un sistema distribuito sono fisicamente


distribuite tra diversi computer, alcuni dei quali possono trovarsi a grandi distanze fisiche l'uno dall'altro, è
uno degli obiettivi più importanti di un tale sistema. In altre parole, si cerca di rendere la distribuzione dei
processi e delle risorse trasparente, o in altre parole, invisibile, alle applicazioni e agli utenti finali.
L'idea di trasparenza può essere applicata a una varietà di componenti che costituiscono un sistema
distribuito; gli elementi considerati più cruciali sono:
• Accesso: nascondere le differenze nella rappresentazione dei dati e nella modalità di accesso a un
oggetto
• Posizione: nascondere dove si trova un oggetto
• Riposizionamento: nascondere che un oggetto può essere spostato in un'altra posizione mentre è in
uso
• Migrazione: nascondere che un oggetto potrebbe spostarsi in un'altra posizione
• Replica: nascondere che un oggetto è replicato
• Concorrenza: nascondere che un oggetto può essere condiviso da più utenti indipendenti
• Errore: nascondere l'errore e il ripristino di un oggetto

La parola "oggetto" potrebbe riferirsi a un processo o a una risorsa in questo contesto. Il concetto
di trasparenza dell'accesso si riferisce al processo di occultamento delle discrepanze nella rappresentazione
dei dati e al modo in cui è possibile accedere agli oggetti. L’obiettivo è quello di mascherare le variazioni
nelle architetture dei diversi computer, ma ciò che è più essenziale è che arriviamo a un accordo su come i
dati dovrebbero essere rappresentati dalle varie macchine e sistemi operativi. Ad esempio, un sistema
distribuito può essere costituito da sistemi informatici alimentati da una varietà di sistemi operativi,
ognuno dei quali è noto per avere le proprie convenzioni di denominazione dei file.
I problemi di accesso includono, ma non sono limitati a, differenze nelle convenzioni di
denominazione, differenze nelle operazioni sui file e differenze nel modo in cui deve avvenire la
comunicazione di basso livello con altri processi. Si cerca di nascondere questo tipo di differenze agli utenti
e alle applicazioni quando possibile.
La posizione di un processo o di una risorsa è una categoria essenziale che rientra nella categoria
dei tipi di trasparenza. Gli utenti del sistema non sono in grado di determinare la posizione precisa di un
elemento nel sistema, che è ciò che si intende con il termine "trasparenza della posizione". Quando si tratta

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

4 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

di ottenere la trasparenza geografica, la denominazione è un ruolo vitale da svolgere. In particolare, la


trasparenza della posizione può spesso essere ottenuta assegnando solo nomi logici alle risorse. I nomi
logici sono nomi in cui la posizione di una risorsa non è contenuta in modo nascosto all'interno del nome.
Un esempio di questo tipo di nome è lo URL (Unified Resource Locator)
[Link] che non fornisce alcuna informazione sulla posizione precisa del
server Web primario utilizzato da Google. L'URL non fornisce alcun suggerimento sul fatto che il file
[Link] sia sempre stato posizionato nella posizione attuale o se sia stato trasferito lì relativamente di
recente. Ad esempio, anche se l'intero sito Web è stato trasferito da un data center a un altro, gli utenti
non dovrebbero essere consapevoli di tale cambiamento. Questo è un esempio di trasparenza del
riposizionamento, che sta acquisendo un'importanza crescente nel contesto del cloud computing.
La trasparenza della migrazione è offerta da un sistema distribuito quando supporta la mobilità dei
processi e delle risorse avviati dagli utenti, senza influire sulla comunicazione e sulle operazioni in corso.
Mentre la trasparenza della rilocazione si riferisce all'essere spostati dal sistema distribuito, la trasparenza
della migrazione si riferisce all'essere spostati dall'utente. Un esempio comune di questo fenomeno è la
comunicazione che può avvenire tra telefoni cellulari, nonostante il fatto che le parti coinvolte possano
muoversi, i telefoni cellulari consentono loro di continuare la loro conversazione. Il monitoraggio e la
tracciabilità online degli elementi mentre vengono trasferiti da una posizione all'altra è un altro esempio
pienamente rilevante. Un altro esempio è partecipare a teleconferenze (parzialmente) utilizzando
dispositivi dotati di Internet mobile.
La replicazione è un componente essenziale dell'architettura dei sistemi distribuiti. Ad esempio, le
risorse potrebbero essere duplicate per migliorarne le prestazioni, la disponibilità o entrambe individuando
una copia della risorsa in prossimità della posizione da cui si accede. La pratica di mascherare il fatto che
esistono diverse copie di una risorsa o che molti processi funzionano in qualche tipo di modalità lockstep in
modo che uno possa subentrare quando un altro fallisce, viene definita trasparenza della replicazione. È
essenziale che tutte le copie abbiano lo stesso nome per nascondere correttamente la replicazione agli
utenti. Per questo motivo, un sistema che fornisce trasparenza della replicazione dovrebbe in genere offrire
anche la trasparenza della posizione, poiché sarebbe difficile fare riferimento a copie situate in varie
posizioni senza di essa.
Come appena visto, uno degli obiettivi primari dei sistemi distribuiti è quello di facilitare la
condivisione delle risorse disponibili. Non sempre viene adottato un approccio cooperativo alla
condivisione delle risorse, come nel caso, ad esempio, della distribuzione dei canali di comunicazione.
D'altra parte, ci sono molti casi di risorse condivise in modo competitivo. Ad esempio, due utenti separati
potrebbero aver salvato singolarmente i propri file sullo stesso file server o potrebbero accedere alle stesse

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

5 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

tabelle in un database condiviso. Entrambi questi scenari sono esempi di utenti indipendenti. In situazioni
come questa, è essenziale che gli utenti non siano consapevoli del fatto che stanno condividendo la stessa
risorsa tra loro. Il termine per questo tipo di comportamento è trasparenza della concorrenza. Il fatto che
l'accesso simultaneo a una risorsa condivisa mantenga lo stato originale della risorsa è un aspetto
significativo da prendere in considerazione. I meccanismi di blocco, attraverso i quali agli utenti viene a loro
volta consentito l'accesso esclusivo alla risorsa che cercano, sono un modo per stabilire la coerenza. L'uso
delle transazioni fornisce una tecnica più sofisticata. Tuttavia, può essere difficile implementare le
transazioni in un sistema distribuito, in particolare quando la scalabilità è un problema.
Ultimo ma sicuramente non meno importante, è essenziale che un sistema distribuito fornisca una
visibilità completa su tutti i guasti. Ciò indica che un utente o un'applicazione non è consapevole del fatto
che un componente del sistema non funziona come dovrebbe e che il sistema è in grado di ripristinare
l'errore in seguito (e automaticamente). Il mascheramento dei guasti è uno dei problemi più difficili da
risolvere nei sistemi distribuiti, e può anche essere impossibile se vengono fatte certe ipotesi che sembrano
ragionevoli. L'incapacità di distinguere tra un processo terminato e uno che risponde molto lentamente è
l'ostacolo principale che deve essere superato per mascherare e recuperare con successo in modo
trasparente dai fallimenti. Ad esempio, se un browser tenta di accedere a un server Web occupato, la
connessione alla fine scadrà e il browser indicherà che la pagina Web richiesta non è disponibile. In quel
momento, l'utente non ha modo di sapere se il server è veramente inattivo o se c'è solo molto traffico sulla
rete.

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

6 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

3. Livelli di trasparenza

Sebbene sia ormai ampiamente risaputo che la trasparenza della distribuzione sia da preferire per
qualsiasi sistema distribuito, ci sono circostanze in cui non è una buona idea sforzarsi di nascondere
impunemente tutte le caratteristiche di distribuzione agli utenti.
Un esempio diretto di ciò sarebbe quello di richiedere che una newsletter venga inviata alla casella
di posta all'ora normale delle sette del mattino ora locale, anche se ora la persona ricevente si trova
dall'altra parte del pianeta e vive in un fuso orario diverso. La newsletter del mattino che riceve non sarà lo
stesso di quello che quella persona è abituata a ricevere. Inoltre, non ci si può aspettare che un sistema
distribuito su vasta area che collega un processo a Baltimora a un processo a Roma nasconda il fatto che è
fisicamente impossibile inviare un messaggio da un processo all'altro in meno di circa 35 millisecondi.
L'utilizzo di una rete di computer sembra richiedere molte centinaia di millisecondi, secondo i risultati dei
test pratici.
La velocità della luce non è l'unica cosa che potrebbe rallentare la trasmissione di un segnale. La
limitata capacità di elaborazione e i ritardi causati dagli switch intermedi sono altri fattori. Un alto livello di
apertura spesso va a scapito delle prestazioni complessive di un sistema, tuttavia non è sempre così. Molte
applicazioni di Internet, ad esempio, possono continuamente tentare di entrare in contatto con un server
prima di rinunciare. Di conseguenza, tentare di mascherare un errore temporaneo del server prima di
tentare di utilizzare un altro server potrebbe potenzialmente rallentare l'intero sistema. In uno scenario
come questo, sarebbe stato preferibile rinunciare prima, o per lo meno, consentire all'utente di
interrompere tutti gli sforzi per stabilire un contatto. Un altro esempio di ciò sarebbe la situazione in cui
dobbiamo garantire che numerosi duplicati, ognuno dei quali si trova in un continente diverso, siano
sempre identici. In altre parole, se viene apportata una modifica ad una copia, essa dovrebbe essere
apportata a tutte le copie prima di consentire a qualsiasi altro processo di procedere. È impossibile
nascondere agli utenti il fatto che una singola procedura di aggiornamento potrebbe richiedere anche
alcuni secondi per essere completata, e questo è ovvio per quanto precedentemente detto.
Ultimo ma non meno importante, ci sono alcuni scenari in cui non è minimamente evidente che
nascondere o distribuire qualcosa sia una decisione intelligente. Poiché i sistemi distribuiti vengono
rapidamente estesi a dispositivi che le persone portano con sé e poiché l'intero concetto di localizzazione e
consapevolezza del contesto sta diventando sempre più essenziale, potrebbe essere più vantaggioso
rivelare apertamente la dispersione piuttosto che tentare di nasconderla. L'utilizzo di servizi basati sulla
posizione, che sono spesso disponibili sui telefoni cellulari, è un esempio ovvio. Questi servizi consentono

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

7 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

agli utenti di fare cose come identificare il ristorante da asporto cinese più vicino a loro o determinare se
qualcuno dei loro amici si trova nella zona.
Ci sono una serie di altre ragioni sollevate in opposizione alla distribuzione trasparente. Alla luce del
fatto che la completa trasparenza della distribuzione non è raggiungibile, dobbiamo riflettere se sia
prudente o meno agire come se fossimo in grado di raggiungerla. Sarebbe molto più vantaggioso rendere
chiara la distribuzione in modo che l'utente e lo sviluppatore dell'applicazione non siano mai indotti a
credere che esista una cosa come la trasparenza. L'effetto finale sarà che gli utenti avranno una
comprensione molto migliore del comportamento di un sistema distribuito, che potrebbe occasionalmente
comportarsi in modi inaspettati, e sarà quindi molto più attrezzato per far fronte a questo comportamento.
La conclusione è che la ricerca della trasparenza della distribuzione può essere un obiettivo interessante
quando si costruiscono e implementano sistemi distribuiti; tuttavia, questo obiettivo dovrebbe essere
valutato insieme ad altre considerazioni, che comprendono le prestazioni e la comprensibilità. C'è la
possibilità che il prezzo di una completa apertura sia incredibilmente costoso.

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

8 di 9
Leonardo Galteri - Trasparenza nel calcolo distribuito

Bibliografia

• M. van Steen and A.S. Tanenbaum, Distributed Systems, 3rd ed., [Link],

2017.

Attenzione! Questo materiale didattico è per uso personale dello studente ed è coperto da copyright. Ne è
severamente vietata la riproduzione o il riutilizzo anche parziale, ai sensi e per gli effetti della legge sul diritto
d’autore (L. 22.04.1941/n. 633).

9 di 9

Potrebbero piacerti anche