16 Nov 2010
Inserito da: Andrea Lanfranchi in: Internet, Mondo IT, Programmazione
Le applicazioni basate su Fat-Client si riferiscono alla categorie delle applicazioni multistrato dove (nel modello più semplice) la parte client del codice (ovvero tutta quella parte costituita dai programmi con cui l’utente finale interagisce direttamente) risiedono e “girano” nel contesto del Desktop PC mentre la parte server (generalmente i programmi che gestiscono l’interazione con i database relazionali) risiedono e girano sul server di rete.
Al contrario, nel modello basato su Thin-Client, si rifersice alle applicazioni multistrato dove la parte di codice con la quale l’utente integragisce risiede e viene fatta girare all’interno di un browser ma l’esecuzione del codice che l’utente invoca avviene interamente all’interno del server di rete, non nel PC.
Fatte queste precisazioni è bene prendere in esame quattro regole fondamentali :
Nessuna riduzione nelle risorse di calcolo necessarie.
Una applicazione Fat-Client utilizza le risorse di calcolo e la potenza messa a disposizione dal desktop pc e dalla banda disponibile per la LAN. In un tipico modello Fat-Client, quasi tutto il carico di lavoro viene eseguito dal pc desktop.
Per esempio, in una applicazione Fat-Client che serva 500 utenti, quasi il 90% delle risorse di calcolo sono impegnate dai pc che, in modo asincrono eseguono l’applicazione, mentre solo il rimanente 10% viene impegnato dal server.
Il deployment di una applicazione Fat-Client generalmente comporta l’utilizzazione dei PC già esistenti nella struttura ed un server (database/application) relativamente piccolo. Solo qualora il numero di client dovesse aumentare significativamente, potrebbe essere necessario ampliare il database server.
Quando si migra da un modello Fat ad uno Thin-Client, le necessarie risorse di calcolo non spariscono per magìa: deve essere comunque disponibile la medesima capacità di calcolo. Ma siccome non si sta più utilizzando la potenza di calcolo offerta dal Pc è necessario dotare il server applicativo di quella potenza extra dovuta al numero di unità di processo che sono state spostate dal client al server. In altre parole il nuovo server deve essere in grado di svolgere anche le attività che svolgevano i singoli pc.
In conclusione la modifica del modello non comporta nessuna ottimizzazione delle risorse a parità di applicazione: si tratta solo di modificarne la distribuzione caricando di più i server nel modello Thin-Client.
Nessuna riduzione delle risorse di banda
E’ opinione tanto diffusa quanto errata che la migrazione ad un modello Thin-Client possa portare dei benefici in termini di risparmio su costose strutture di comunicazione. La realtà e molto diversa e per rendersene conto basta provare ad accedere ad un applicazione server web durante un momento di picco oppure parlare con un ISP su quali siano i costi da sostenere per ospitare un servizio applicativo in modo affidabile.
Una efficace soluzione Thin-Client richiede ingenti costi in infrastrutture: a partire dai server, dagli switch, dai router fino a considerare i costi elevatissimi di una Intranet geografica.
La potenza di calcolo complessiva non cambia.
Per applicazioni identiche ci vogliono sempre e comunque x unità di processo per servire un singolo utente sia nel caso di un Fat-Client che nel caso di un Thin-Client. Ma mentre nel primo caso è il PC che svolge la maggior parte del lavoro, nel secondo caso lo stesso lavoro viene ricaricato sul server.
La migrazione da un modello Fat-Client ad un modello Thin-Client sicuramente aumenterà i costi complessivi dell’applicazione.
Se immaginiamo di migrare 500 utenti da un modello Fat ad uno Thin la prima cosa che salta all’occhio è il fatto che, di certo, non si smonta la ram in eccesso dai PC per montarla sui server e non si può rimandare indietro mezza CPU per chiedere un rimborso. Non vi è nessun beneficio immediato in termini di risparmio economico che potrà avvenire se, e solo se, i prossimi pc verranno acquistati con caratteristiche di capacità di calcolo molto ridotte.
Se il modello Fat comporta l’installazione del codice dell’applicazione su ogni macchina si potrebbero ridurre i costi di manutenzione del software client adottando un modello Thin-Client, ma se, come dovrebbe essere, il codice viene distribuito mediante idonei application server, allora i risparmi offerti da un modello Thin sarebbero veramente minimi.
In realtà, in ogni caso, i risparmi sarebbero minimi comunque dato che la maggior parte delle risorse di manutenzione viene impiegata per il buon funzionamento della rete, delle applicazioni desktop come Microsoft Office, Outlook, Autocad ecc. e quindi fondamentalmente il numero di risorse uomo allocate per queste attività non cambia.
Perchè il costo di un’applicazione Thin client è di molto superiore ad una equivalente ma basata su Fat client ?
Dalla lettura delle prime quattro regole esposte all’inizio appare evidente come i principali problemi siano :
Quando si aggiungono utenti ad una applicazione Fat, il 90% del carico di lavoro viene assolto dal Pc mentre l’aumento di carico di lavoro del server è marginale. Al contrario, in un modello Thin-Client, per ogni utente aggiunto da servire, il server dovrà fornire la maggior parte delle risorse di calcolo necessarie per la nuova sessione e, in assenza, tutti gli altri sperimenteranno un degrado generalizzato delle performance.
In una applicazione Fat la potenza di calcolo è decentralizzata al contrario di quanto avviene nel modello Thin che, per naturale conseguenza, a parità di hardware, raggiungerà molto prima il limite critico di utenti servibili.
Quindi perchè è sempre più alto il numero delle applicazioni Thin Client ?
Molte aziende adottano questo modello seguendo alcune linee guida
Tutto quanto sopra poi non sfugge ad una regola che impera sovrana nel mondo IT : il trend della moda. Fino a solo un paio d’anni fa lo sviluppo di applicazioni di Thin-Client era considerato il non plus ultra della modernità per raggiungere in modo uguale utenze disomogenee per quanto riguarda gli apparati e i sistemi operativi (un’applicazione Web funzionerà verosimilmente allo stesso modo sia con Windows che con Linux). Tuttavia l’evoluzione ha negato se stessa: l’avvento in massa degli smart-phone e dei piccoli PDA, a bordo dei quali il browser è molto poco efficiente, ha messo in gioco un terzo modello, il Tick-Client, che sfrutta al meglio le risorse di calcolo offerte dall’hardware presso cui è ospitato e rimanda al modello web solo per quanto riguarda l’effettiva trasmissione dei dati.
Non va sottovalutato anche un fatto essenziale : quasi tutte le applicazioni Thin-Client si basano sul paradigma web/http che, come noto, è un protocollo di comunicazione privo di congnizione di stato. Ne consegue che le applicazioni Thin, per quanto concerne il loro lato server, sono molto più onerose delle omologhe applicazioni basate su Fat-Client in quanto ad ogni richiesta di sessione devono ricostruire lo stato originario. Non ultima la sempre maggiormente estremizzata ricerca di far assomigliare le interfacce Thin a delle vere e proprie interfacce Fat iniettando nel codice HTML sempre più pesanti informazioni grafiche, codice di scripting ecc. che ha come effetto indesiderato quello di aumentare notevolmente la richiesta di banda.
Insomma … pensare che una nuova applicazione possa avere come unica soluzione quella di essere sviluppata necessariamente come Thin-Client può essere un grave errore.
Un commento
Luca
03-Dic-2010 1Complimenti Andrea, ottimo articolo, le cui conclusioni condivido al 90%, in base alla mia esperienza.
La realtà dei fatti, per quanto ho visto/vissuto sulla mia pelle, è che le applicazioni fat-client – ovvero il client-server classico – sono spesso più facili da realizzare per i programmatori e più performanti per gli utenti. Inoltre le interfacce native sono e saranno sempre più potenti e veloci di quelle web.
E’ innegabile peraltro il vantaggio delle applicazioni web-based di essere disponibili su qualunque PC senza bisogno di essere installate: sono quindi ideali per l’utilizzo occasionale o in mobilità e sicuramente sono più facili da manutenere a livello di deployment (anche se al giorno d’oggi quasi tutti i software desktop si “aggiornano da soli” scaricando le versioni più aggiornate in autonomia).
Come al solito, quindi, si tratta di valutare caso per caso: e non è impossibile che una stessa applicazione mischi le due architetture, presentando un impianto fat-client ma rendendo disponibili anche alcune funzionalità in modalità web-based.
Personalmente, come progettista e programmatore, credo il boom del modello thin-client (e la fissazione per le SOA, le applicazioni web & C.) abbia utilmente posto l’attenzione su un fatto: tutte le applicazioni, anche quelle fat-client, devono essere comunque progettate accuratamente e non “approfittare” del fatto che girano in LAN per sprecare risorse o effettuare query gigantesche quando hanno bisogno di due colonne o di una COUNT. E così anche il porting di alcune funzioni su web diventa più facile e performante.
Quindi ben vengano design pattern, MVC e compagnia… progettare e programmare con criterio porta comunque vantaggi in termini di performance, manutenibilità e scalabilità.