Concetti Chiave

  • Un sistema distribuito elabora informazioni su più calcolatori, consentendo una comunicazione tramite scambio di messaggi tra componenti hardware e software.
  • Le applicazioni nei sistemi distribuiti sono logicamente indipendenti e possono funzionare come client, server o una combinazione di entrambi, collaborando per obiettivi comuni.
  • I sistemi distribuiti offrono alta affidabilità e tolleranza ai guasti grazie alla ridondanza, limitando l'impatto di eventuali guasti a rallentamenti piuttosto che a guasti totali.
  • Questi sistemi permettono l'integrazione di diverse macchine e offrono trasparenza di accesso, facendo apparire le risorse come se fossero su una singola macchina.
  • La scalabilità dei sistemi distribuiti consente una crescita illimitata, ma comporta anche complessità nella gestione, nella sicurezza e nella produzione di software.

Definizione di sistema distribuito

➔ Definizione generica: Un sistema distribuito è:

◆ un sistema in cui l’elaborazione delle informazioni è distribuita su più calcolatori anziché centralizzata su una singola macchina;

◆ un sistema in cui i componenti hardware o software posizionati in calcolatori collegati in rete comunicano e coordinano le proprie azioni solo tramite lo scambio di messaggi [Coulouris & Dollimore] ;

◆ un sistema in cui il fallimento di un calcolatore di cui nemmeno conosci l’esistenza può rendere inutilizzabile il tuo calcolatore [Lamport] .

Caratteristiche delle applicazioni

➔ Definizione astratta: Un sistema distribuito è costituito da un insieme di applicazioni logicamente indipendenti che collaborano per il perseguimento di obiettivi comuni attraverso un’infrastruttura di comunicazione hardware e software N.B. Le applicazioni che vengono eseguite nei sistemi distribuiti possono assumere diversi ruoli: client quando utilizzano servizi messi a disposizione da altre macchine, server quando offrono servizi ad altre macchine ed actor quando invece sono una combinazione di client e server.

Affidabilità e tolleranza ai guasti

➔ Affidabilità e tolleranza ai guasti: Data la ridondanza di macchinari, questo tipo di sistema è possibile prevenire il guasto dei componenti predisponendo contromisure automatiche (per esempio indicando via software che componente utilizzare in caso di avaria). Ci si ritroverà quindi in una situazione di guasto parziale, dove il malfunzionamento di una macchina comporterà solo un rallentamento del sistema e non l’avaria totale. N.B. Chiaramente questo vantaggio non sarà valido per le macchine che vantano di una buona indipendenza rispetto al sistema.

Integrazione e trasparenza

➔ Integrazione: Questo tipo di sistemi sono in grado di mettere in comunicazione tra di loro svariate macchine estremamente diverse tra di loro anche come tipologia, purché siano in grado di interfacciarsi allo stesso sottosistema di comunicazione.

➔ Trasparenza: Lavorando con il sistema non ci si accorgerà di lavorare con più macchine, ma bensì con una sola. In particolare secondo l’ANSA saranno di particolare importanza la trasparenza di accesso e di locazione, ovvero i dati devono essere accessibili e locati come se fossero su una singola macchina.

Economicità e apertura

➔ Economicità: I costi di un sistema distribuito di elaboratori risulterà più basso rispetto a quelli di un mainframe. Inoltre va tenuto presente della possibilità di ampliare il proprio parco macchine obsoleto (legacy) con nuove più aggiornate senza gettare le precedenti, ma sfruttando il principio di integrazione. Infine grazie all’affinità del sistema di connettività e collaborazione sarà possibile condividere tra più macchine risorse ed apparecchiature costose.

➔ Apertura: Grazie alla definizione di protocolli standard saranno possibili processi di interoperabilità - la possibilità di implementazione su diverso hardware - , portabilità - la possibilità di implementazione su diverso software - ed ampliabilità - la possibilità di ampliamento sia hardware che software.

Scalabilità e svantaggi

➔ Scalabilità: La crescita di un sistema distribuito non è limitata come nel caso dei sistemi centralizzati e comporta l’aumento del carico delle richieste. Svantaggi dei sistemi distribuiti

➔ Produzione del software: Più complesso da produrre, che necessita di standard e tecnologie di portabilità multipiattaforma.

➔ Complessità: Un sistema distribuito è fisicamente più complesso da gestire rispetto ad uno centralizzato e richiede complicate tecniche di comunicazione.

➔ Sicurezza: Essendo per definizione distribuito su più host al fine di impedire l’intercettazione dei dati sono necessari accorgimenti di tutela degli utenti.

➔ Comunicazione: Affinché i computer possano comunicare tra loro sono necessari nuovi sistemi e nuove tecnologie telematiche.

Domande da interrogazione

  1. Cos'è un sistema distribuito?
  2. Un sistema distribuito è un sistema in cui l'elaborazione delle informazioni è distribuita su più calcolatori, i quali comunicano e coordinano le proprie azioni tramite lo scambio di messaggi, e il guasto di un calcolatore può influenzare l'intero sistema (Coulouris & Dollimore; Lamport).

  3. Quali sono le caratteristiche delle applicazioni in un sistema distribuito?
  4. Le applicazioni in un sistema distribuito sono logicamente indipendenti e possono assumere ruoli diversi: client, server o actor, collaborando per obiettivi comuni attraverso un'infrastruttura di comunicazione (definizione astratta).

  5. Come si garantisce l'affidabilità in un sistema distribuito?
  6. L'affidabilità è garantita attraverso la ridondanza dei macchinari e contromisure automatiche che prevengono guasti, permettendo di affrontare guasti parziali senza compromettere l'intero sistema.

  7. Qual è il vantaggio della trasparenza in un sistema distribuito?
  8. La trasparenza consente agli utenti di interagire con il sistema come se fosse un'unica macchina, senza accorgersi della presenza di più calcolatori, facilitando l'accesso e la locazione dei dati (ANSA).

  9. Quali sono alcuni svantaggi dei sistemi distribuiti?
  10. Gli svantaggi includono la complessità nella produzione del software, la gestione fisicamente più complessa rispetto ai sistemi centralizzati, e la necessità di misure di sicurezza per proteggere i dati durante la comunicazione tra più host.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community