Scalabilità

Da Wikipedia, l'enciclopedia libera.

Nelle telecomunicazioni, nell'ingegneria del software e in altre discipline, il termine scalabilità si riferisce, in termini generali, alla capacità di un sistema di "crescere" o "decrescere" (aumentare 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 del software, maggiore potenza di processore o processori aggiuntivi). Quanto un determinato sistema sia scalabile dipende dalla sua architettura; 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".

Indice

[modifica] Esempi di scalabilità

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 la 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 tavola di instradamento di ogni nodo cresce secondo il O(log N), dove N è il numero di nodi che compongono la rete.

[modifica] Classificazioni

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 vien 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 della singola macchina) e scalabilità orizzontale (relativa all'aggiunta di altre macchine in distribuzione di carico).

[modifica] La scalabilità in economia aziendale

Un significato simile è attribuito al termine quando esso viene impiegato in un contesto commerciale: con scalabilità di una azienda si intende che il modello di business utilizzato ha il potenziale per indurre una crescita economica dell'azienda stessa.

[modifica] Voci correlate

Strumenti personali