Scalabilità

Da Wikipedia, l'enciclopedia libera.
Nota disambigua.svg Disambiguazione – Se stai cercando scalabilità di un'azienda, vedi Scalabilità (economia).

Il termine scalabilità, nelle telecomunicazioni, nell'ingegneria del software, in informatica e in altre discipline, si riferisce, in termini generali, alla capacità di un sistema di "crescere" o diminuire di scala in funzione delle necessità e delle disponibilità. Un sistema che gode di questa proprietà viene detto scalabile.

L'uso più tradizionale si riferisce alla scalabilità di carico, ovvero la capacità di un sistema di incrementare le proprie prestazioni (il proprio throughput nel caso di sistemi trasmissivi) se a tale sistema vengono fornite nuove risorse (per esempio, nel caso dell'Hardware, maggiore potenza di processore o processori aggiuntivi). Quanto un determinato sistema sia scalabile dipende dalla sua architettura software e/o architettura hardware; per esempio, la presenza di uno o più colli di bottiglia potrebbe rendere ininfluente l'aumento della potenza di calcolo complessiva. Questa dipendenza dall'architettura vale anche, in termini generali, per le altre accezioni in cui si può intendere il termine "scalabile".

Esempi di scalabilità[modifica | modifica wikitesto]

La scalabilità, nelle sue varie forme, è un parametro di qualità molto determinante in numerose famiglie di applicazioni software. Sistemi di online transaction processing o DBMS, per esempio, sono scalabili se possono essere messi in condizione di gestire più transazioni aggiungendo processori, memoria o dispositivi. In questo caso, il sistema stesso si presta a essere utilizzato in contesti molto semplici o molto complessi senza che questo richieda una sua riprogettazione.

In alcuni contesti esistono definizioni specifiche, più formali, del concetto di scalabilità; un protocollo di routing, per esempio, si dice scalabile se la dimensione della tabella di routing di ogni nodo cresce secondo il O(log N), dove N è il numero di nodi che compongono la rete.

Classificazioni[modifica | modifica wikitesto]

Nel caso dei sistemi software, la scalabilità può essere intesa come capacità di crescita lungo tre dimensioni:

Scalabilità di carico
Un sistema software dovrebbe aumentare le proprie prestazioni in funzione della potenza di calcolo complessiva che viene dedicata alla sua esecuzione. Per i sistemi distribuiti, di solito, l'enfasi viene posta sulla scalabilità rispetto al numero di processori piuttosto che rispetto alla potenza dei singoli processori impiegati;
Scalabilità geografica
Un sistema geograficamente scalabile è quello che mantiene inalterata la sua usabilità e utilità indipendentemente dalla distanza fisica dei suoi utenti o delle sue risorse;
Scalabilità amministrativa
Un sistema amministrativamente scalabile è quello che mantiene inalterata la sua gestibilità indipendentemente da quante organizzazioni lo utilizzano.

La scalabilità di carico può esplicarsi in scalabilità verticale (relativa all'aumento della capacità di elaborazione di una singola macchina) e scalabilità orizzontale (relativa all'aggiunta di altre macchine in distribuzione di carico).

Voci correlate[modifica | modifica wikitesto]

Controllo di autorità GND: (DE4520890-6