Principali vantaggi e svantaggi dell’architettura client-server

Principali vantaggi e svantaggi dell’architettura client-server

Definizione client-server

Il client-server computing viene usato per descrivere un modello architetturale per lo sviluppo di sistemi computazionali. Questo modello è basato sulla distribuzione delle funzioni fra due tipi di processi autonomi e indipendenti: il server e il client.
Un client è un qualsiasi processo che richiede uno specifico servizio al processo del server. Un server è un processo che fornisce i servizi che sono stati richiesti dal client. I due processi possono risiedere nello stesso computer o su computer diversi, a patto che questi siano connessi da una rete. Un client pùo richiedere servizi a più server all’interno di una rete, senza preoccuparsi della posizione o delle caratteristiche fisiche del computer su cui si trova il processo del server. La rete che collega il client e il server diventa così il mezzo attraverso il quale i vari processi possono comunicare.
La caratteristica principale del client-server computing è la distribuzione dei compiti e delle funzioni, potendo così concentrare la potenza di calcolo dove vengono svolte le funzioni computazionalmente più complesse (generalmente è il server).

Principali vantaggi e svantaggi dell'architettura client-server

Vantaggi

Ci sono diversi vantaggi associabili al modello di client-server computing:

  • Prestazioni e carico di lavoro ridotto: l’elaborazione è ripartita tra il client e il server, quindi le prestazioni dell’applicazione non sono legate principalmente alle caratteristiche della postazione di lavoro (desktop); questa deve essere solamente in grado di eseguire il software del client (aumentando la durata dei vecchi PC, da un punto di vista dell’utilità nel tempo). Di conseguenza c’è anche l’effetto di riduzione del carico sulla rete che collega la stazione di lavoro al server, che invece di inviare tutte le richieste del client avanti e indietro, si limita a inviare solo le domande e le risposte dal server dell’applicazione.
  • Indipendenza dalla stazione di lavoro: gli utenti non sono limitati a un solo tipo di sistema o piattaforma, in quanto è possibile avere sistemi compatibili con tutte o quasi le stazioni di lavoro (in base al tipo e alla versione del sistema operativo), in modo del tutto trasparente.
  • Interoperabilità dei sistemi: il modello client-server, non permette solo di cambiare in modo del tutto trasparente una componente, ma dà anche la possibilità alle diverse componenti o sistemi (client, rete o server) di lavorare assieme.
  • Scalabilità: la natura modulare del sistema client-server permette sostituzioni senza danneggiare il resto del sistema. Per esempio, è possibile aggiornare il server ad una macchina più potente, senza cambiamenti visibili all’utente. Questa capacità di cambiare le componenti del sistema rende il modello client-server particolarmente aperto all’introduzione di nuove tecnologie, sia hardware che software.
  • Integrità dei dati: è preservata, in quanto il server pùo usufruire e fornire un numero di servizi che proteggano i dati come, l’archiviazione crittografata dei file, il backup in tempo reale (mentre i dati stanno venendo elaborati), il mirroring del disco (dove i dati sono automaticamente duplicati su un’altra partizione dello stesso disco fisso), la duplicazione dei dati (i dati vengono automaticamente scritti su un disco rigido diverso), l’elaborazione delle transazioni che consente di tenere traccia delle modifiche apportate ai dati e di correggere eventuali problemi che possono sorgere (ad esempio in caso di crash del server).
  • Accessibilità dei dati: poichè il server detiene la maggior parte dei dati in una posizione centralizzata, più utenti possono accedere e lavorare simultaneamente sui dati garantendone una maggiore condivisione.
  • Amministrazione del sistema: l’ambiente client-server è particolarmente maneggevole, favorendo una gestione centralizzata del sistema. Inoltre, poichè i dati sono centralizzati, la gestione di questi pùo anch’essa essere centralizzata. Alcune delle funzioni di amministrazione del sistema sono relative alla gestione della sicurezza, dell’integrità dei dati e il recupero del sistema in caso di fallimenti.
  • Servizi integrati: tutte le informazioni che il client ha il diritto di utilizzare sono disponibili sulla propria stazione di lavoro, tramite l’interfaccia, così che non vi sia la necessità di modificare le modalità di accesso diretto alle informazioni.
  • Mascheramento dell’accesso ftsico ai dati: l’accesso ai dati memorizzati in un punto qualsiasi della rete, dal PC locale, al server locale o anche al server su WAN, avviene utilizzando lo stesso tipo di richiesta dei dati. L’unica differenza pùo essere dovuta ad una riduzione delle prestazioni, ad esempio se la larghezza di banda della rete è insufficiente.
  • Indipendenza dal luogo di trattamento dei dati: gli utenti accedono tramite una stazione di lavoro senza nessuna preoccupazione riguardante l’ubicazione o la tecnologia dei processori coinvolti. Con un sistema utente centrico il desktop fornisce il punto di accesso al sistema (ed eventualmente al gruppo di lavoro, servizi aziendali inclusi), senza nessun legame con la piattaforma di esecuzione dell’applicazione.
  • Costi operativi ridotti: il costo dell’hardware e del software è in continua discesa, il che significa che il valore di calcolo è in continuo aumento. Il modello client-server offre un modo per sfruttare questo andamento, sostituendo i sistemi di grandi dimensioni spesso molto costosi, con quelli meno costosi e più piccoli ma collegati in rete.
  • Costo dell’hardware ridotto: il costo dell’hardware pùo essere ridotto, in quanto è solo il server che richiede lo spazio e la potenza di elaborazione sufficiente per memorizzare e gestire l’applicazione.
  • Costi di comunicazione sono ridotti: l’applicazione svolge parte delle operazioni lato client, inviando solo una richiesta per l’accesso ai servizi del server attraverso la rete, quindi una minore quantità di dati passa attraverso la rete.

Svantaggi

Pure gli svantaggi connessi all’uso del modello computazionale client-server sono diversi:

  • Costi di manutenzione: il principale svantaggio di questo modello è dato dall’aumento del costo del personale amministrativo e di sostegno per mantenere il server. In genere l’amministratore di rete pùo prendersi carico anche della gestione e manutenzione del server, di controllare l’accesso degli utenti ad esso e di supportare le relative applicazioni. Tuttavia, quando il numero degli utenti del server aumenta, o non appena aumenta la quantità di informazioni gestite dal server stesso, diviene necessario assumere un amministratore del server.
  • Costo della formazione: la formazione pùo comportare dei costi aggiuntivi, in quanto il personale d’amministrazione deve acquisire familiarità con il sistema operativo e l’applicazione, specialmente lato server.
  • Costo dell’hardware: quando si vuole avere un server con delle buone prestazioni e un’integrità dei dati ottima si verifica un aumento dei costi dell’hardware, dovuto all’acquisto di hardware ad alta potenza (grande quantità di RAM, spazio su disco rigido, …).
  • Costo del software: il costo complessivo del software è generalmente superiore a quello dei PC tradizionali.
  • Complessità: le componenti che costituiscono l’intero sistema client-server possono essere molte, e, più sono le componenti, più sono le cose che possono andare storte, rendendo più difficile individuare la sorgente del problema quando si verificano degli errori o, ancora peggio, quando il sistema si blocca.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

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