Folder Open Duotone Icon

I sistemi distribuiti: caratteristiche

Avatar Mario Giagnotti

·

·

4 min read

sistemi distribuiti

In questo articolo, I sistemi distribuiti: caratteristiche, spiego l’evoluzione dei sistemi informativi. Inizialmente i sistemi erano centralizzati, attualmente sono sistemi distruibuiti. Vedremo qual è stato il percorso che ha consentito di sviluppare i sistemi distribuiti, le loro caratteristiche ed i vantaggi

Indice dei contenuti

In questo articolo, I sistemi distribuiti: caratteristiche, spiego l’evoluzione dei sistemi informativi. Inizialmente i sistemi erano centralizzati, attualmente sono sistemi distruibuiti. Vedremo qual è stato il percorso che ha consentito di sviluppare i sistemi distribuiti, le loro caratteristiche ed i vantaggi

Introduzione

A partire dagli anni Quaranta del Novecento ha preso avvio l’era dei moderni calcolatori elettronici. Tuttavia, è soprattutto dagli anni Ottanta che il settore dell’informatica ha vissuto una profonda trasformazione, grazie a due sviluppi tecnologici fondamentali: la diffusione dei microprocessori e la nascita delle reti di computer interconnessi.

Questi elementi hanno reso possibile la realizzazione di sistemi di calcolo sempre più potenti, flessibili e complessi, aprendo la strada alle moderne architetture dei sistemi informativi.

Evoluzione delle architetture dei sistemi informativi

Nel corso del tempo, le architetture dei sistemi informativi si sono evolute passando da modelli fortemente centralizzati a soluzioni distribuite. Questa evoluzione è stata guidata dalla necessità di garantire maggiore flessibilità, affidabilità e collaborazione, soprattutto all’interno di organizzazioni complesse e geograficamente distribuite.


Sistemi centralizzati

Nei sistemi centralizzati, applicazioni e dati risiedono su un unico nodo di elaborazione, generalmente un grande elaboratore o host centrale. Questo nodo rappresenta l’unico componente realmente autonomo del sistema ed è condiviso da più utenti, che accedono alle risorse in modo concorrente.

In tale contesto, tutte le risorse sono concentrate in un unico punto e risultano sempre disponibili, ma il sistema è fortemente dipendente dal corretto funzionamento del nodo centrale.


Sistemi distribuiti

I sistemi distribuiti si basano su un approccio radicalmente diverso. Le applicazioni sono costituite da più processi cooperanti, eseguiti in parallelo su unità di elaborazione autonome e collegate tramite una rete di comunicazione.

Un sistema informatico può essere definito distribuito quando almeno una delle seguenti condizioni è soddisfatta:

  • l’elaborazione è distribuita tra più host che collaborano tra loro;
  • i dati sono memorizzati su più nodi, dando origine a una base di dati distribuita.

Definizione di sistema distribuito

Nel corso degli anni sono state formulate numerose definizioni di sistema distribuito. Tra le più significative si ricordano:

Secondo Andrew Tanenbaum, un sistema distribuito è un insieme di calcolatori indipendenti che, agli occhi dell’utente, appare come un unico sistema coerente.
Per Coulouris e Dollimore, si tratta di un sistema in cui componenti hardware e software, situati su computer collegati in rete, comunicano e coordinano le proprie attività esclusivamente tramite lo scambio di messaggi.
Leslie Lamport propone una definizione più provocatoria, affermando che un sistema distribuito è tale quando il guasto di un calcolatore, di cui l’utente ignora persino l’esistenza, può rendere inutilizzabile il proprio computer.

In questa trattazione adotteremo una definizione più generale:
un sistema distribuito è costituito da un insieme di applicazioni logicamente indipendenti che collaborano per il raggiungimento di obiettivi comuni, sfruttando un’infrastruttura di comunicazione hardware e software.


Ruoli delle applicazioni nei sistemi distribuiti

All’interno di un sistema distribuito, ogni componente esegue un programma che può assumere ruoli diversi a seconda del contesto operativo. In particolare, si distinguono:

  • Client, quando un’applicazione richiede servizi messi a disposizione da altri componenti;
  • Server, quando fornisce servizi ad altre applicazioni;
  • Actor, quando un’applicazione può assumere alternativamente il ruolo di client o di server.

Classificazione dei sistemi distribuiti

I sistemi distribuiti possono essere classificati in tre grandi categorie.

I sistemi di calcolo distribuiti sono progettati per ottenere elevate prestazioni computazionali. In questa categoria rientrano il cluster computing, basato su computer omogenei collegati in rete, e il grid computing, che sfrutta risorse di calcolo eterogenee.

I sistemi informativi distribuiti comprendono applicazioni come il Web e i moderni sistemi transazionali. Essi integrano spesso sistemi legacy con nuove tecnologie di comunicazione, consentendo la gestione di transazioni complesse e distribuite.

I sistemi distribuiti pervasivi rappresentano una generazione più recente, caratterizzata da connessioni wireless e dispositivi diffusi nell’ambiente, come reti di sensori, sistemi domestici intelligenti, personal area network e wearable computing.


Vantaggi dei sistemi distribuiti

I sistemi distribuiti offrono numerosi vantaggi rispetto ai modelli centralizzati.

Uno degli aspetti più rilevanti è l’affidabilità: grazie alla ridondanza, il sistema può continuare a funzionare anche in presenza di guasti parziali. L’adozione di meccanismi di recupero automatico consente alle componenti non guaste di sostituire quelle danneggiate.

Un altro vantaggio significativo è la capacità di integrazione di componenti eterogenei, sia dal punto di vista hardware sia software. Tecnologie standard come Ethernet, insieme a linguaggi di scambio dati come XML e JSON, facilitano l’interoperabilità tra sistemi moderni e legacy.

La trasparenza rappresenta un obiettivo fondamentale: l’utente percepisce il sistema come un unico elaboratore, senza essere consapevole della complessità sottostante. A questo scopo si introducono diverse forme di trasparenza, come quella di accesso, di locazione, di replica, di guasto e di scalabilità.

Dal punto di vista economico, i sistemi distribuiti offrono un migliore rapporto costo/prestazioni rispetto ai grandi sistemi centralizzati, consentendo di utilizzare hardware standard e facilmente espandibile.

Infine, la scalabilità orizzontale permette di aumentare le prestazioni aggiungendo nuove risorse, senza interrompere il funzionamento del sistema.


Svantaggi dei sistemi distribuiti

Accanto ai numerosi vantaggi, i sistemi distribuiti presentano anche alcune criticità.

La produzione del software risulta più complessa e ha richiesto l’evoluzione di linguaggi, strumenti e modelli di sviluppo. La diffusione di TCP/IP, delle architetture Web e di linguaggi come Java ha contribuito a semplificare questo processo.

La complessità strutturale aumenta rispetto ai sistemi centralizzati, rendendo più difficile la progettazione, la gestione delle prestazioni e l’instradamento dei dati.

Un aspetto particolarmente delicato è la sicurezza: la presenza di più nodi e connessioni amplia la superficie di attacco, rendendo necessarie misure di protezione avanzate per garantire riservatezza e integrità delle informazioni.

Infine, la comunicazione richiede infrastrutture di rete sempre più performanti, in grado di supportare un numero crescente di utenti e applicazioni ad alta intensità di banda.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *