Credito immagine: gorodenkoff/iStock/GettyImages
I sistemi distribuiti sono sistemi informatici in cui più sistemi informatici lavorano insieme efficacemente come una singola unità. Esempi di sistemi distribuiti includono reti di distribuzione di contenuti utilizzate per servire siti Web e video online, supercomputer costruiti da più potenti processori matematici e database distribuiti utilizzati in molti online sistemi. I sistemi distribuiti possono essere più resilienti, più potenti e più veloci dei sistemi a computer singolo, ma possono anche richiedere più manutenzione e un'attenta riflessione sull'organizzazione e sui problemi che possono andare sbagliato.
Vantaggi di un sistema distribuito
Ci sono una serie di potenziali vantaggi nell'usare un sistema distribuito. Uno dei più facili da capire è la ridondanza e la resilienza. Se un'azienda serve il proprio sito Web da un insieme distribuito di server, anziché da un singolo server, potrebbe essere in grado di rimanere attiva anche se un server si guasta fisicamente. Se i dati vengono distribuiti tra più server o dischi, un evento comune nei moderni sistemi distribuiti, potrebbe non verificarsi alcuna perdita di dati anche se un dispositivo di archiviazione smette di funzionare.
Video del giorno
Velocità e distribuzione dei contenuti
I sistemi distribuiti possono anche essere più veloci dei sistemi a computer singolo. Uno dei vantaggi di un database distribuito è che le query possono essere indirizzate a un server con a particolari informazioni dell'utente, piuttosto che tutte le richieste che devono andare a una singola macchina che può essere sovraccarico.
Le richieste possono anche essere indirizzate a server fisicamente vicini o su una connessione di rete veloce a chi vuole i dati, il che può significare meno tempo e altre risorse allocate per gestire il traffico di rete e colli di bottiglia. Questo è un evento comune nelle reti di distribuzione dei contenuti utilizzate per i media online.
Ridimensionamento e parallelismo
Una volta che i sistemi distribuiti sono impostati per distribuire i dati tra i server coinvolti, possono anche essere facilmente scalabili. Se sono ben progettati, può essere semplice come aggiungere nuovo hardware e dire alla rete di aggiungerlo al sistema distribuito.
I sistemi distribuiti possono anche essere progettati per il parallelismo. Questo è comune nelle operazioni matematiche per cose come la modellazione del tempo e il calcolo scientifico, dove più potenti i processori possono suddividere parti indipendenti di simulazioni complesse e ottenere la risposta più velocemente di quanto farebbero per eseguirle serie.
Sfide di calcolo distribuito
Una grande sfida con il calcolo distribuito è che può essere difficile ragionare per i programmatori. Possono esserci difficoltà nel modo in cui distribuire i dati per garantire che i requisiti di resilienza siano soddisfatti in varie condizioni impreviste.
Se i dispositivi devono essere sincronizzati, possono esserci bug difficili da individuare che li fanno aspettare a vicenda trasmettere dati o tentare accidentalmente di leggere o scrivere lo stesso pezzo di dati contemporaneamente, causando errori.
La sicurezza e la privacy possono anche diventare un problema con i sistemi distribuiti, poiché i dati delle persone sono archiviati su più computer, a volte in più luoghi fisici. I sistemi distribuiti possono anche essere eccessivi per alcune attività, utilizzando più risorse fisiche e tempo di progettazione del necessario.