Dal modello client-server al cloud computing: storia di un’evoluzione
Il cloud da qualche anno è sulla bocca di tutti, in ambito IT, per quanto molti non abbiano troppo chiaro il concetto in questione e tendano a liquidarlo, semplicisticamente, come una nuvola dalle non meglio specificate caratteristiche. In questo articolo illustreremo il passaggio (se preferite l’evoluzione) dal modello client-server a quello cloud-based, mostrando i pregi ed i difetti dell’uno e dell’altro.
Architettura client-server: quando nasce?
Il modello di comunicazione client server è stato sviluppato originariamente negli anni 70 presso Xerox PARC, ed è diventato uno standard della comunicazione via rete: e-mail, WWW e condivisioni di rete di dispositivi si basano su questo tipo di modello.
Il modello client-server è una particolare struttura applicativa di rete che suddivide in due attori principali i partecipanti ai vari processi: da un lato i client, che sono i service requesters o coloro che richiedono i dati, e dall’altra i server, che offrono determinati servizi sotto determinate politiche. Un server in ambito web non è altro che un host che fa funzionare uno o più programmi, e che condividono risorse di vario genere con svariati client secondo le politiche più disparate (condivise, dedicate, cloud e così via): in condizioni normali e senza nessun altra ipotesi, comunque, si tratta di un modello diffuso universalmente in ambito di applicazioni web.
Se il client-server è comodo ed altrettanto semplice, pone un limite enorme: cosa succede se volessimo implementare servizi che richiedono più di un server? Analogamente: cosa succede se il server venisse sovraccaricato di richieste e non riuscisse ad “accontentare” tutti i client?
Client-server: alcuni esempi
Riportiamo nel frattempo alcuni esempi di architetture client-server utilizzate comunemente nella pratica: molte di loro sono già ampiamente noti a chi lavora usualmente su internet. La maggioranza di quelli comunemente utilizzati, compresi quelli in lista, sono gratuiti.
- FileZilla: si tratta di un client FTP per caricare e scaricare file da un server remoto;
- Outlook: si tratta di un client di posta per inviare e visualizzare messaggi da un server di posta elettronica;
- Internet Explorer/Mozilla Firefox/Opera/Chrome… : sono tutti esempi di client per il WWW, ovvero per visualizzare ed interagire con blog, forum, portali e servizi web di ogni genere;
- uTorrent: un esempio di client per il protocollo bittorrent;
- ssh, ovvero il terminale remoto utilizzato comunemente per controllare macchine da remoto.
La cosa essenziale da inquadrare, a questo punto, è che il cloud non si contrappone al modello a singolo server, bensì ne rappresenta una delle più naturali evoluzioni.
Cloud computing: come nasce (e si sviluppa)
Il mondo del marketing cosiddetto 2.0 non conosce limitazioni di alcun genere, ed è molto comune che determinate evoluzioni tecnologiche prendano piede parallelamente a quelle utilizzate di solito, tant’è che – pochi sanno – le prime tracce di architetture cloud risalgono agli anni 50, con i primi mainframe accessibili da remoto. L’origine del termine “cloud” non è di suo troppo chiara, per quanto sia stata utilizzata in numerose discipline (matematica, informatica, fisica, astronomia e naturalmente metereologia) ad indicare un agglomerato dalla forma indefinita di “punti“, che forma un’entità astratta unica (una nuvola, per l’appunto). Originariamente, in ambito di telefonia, il cloud indicava semplicemente una rete di connessione di vari punti, e successivamente venne utilizzata nei primi diagrammi che schematizzavano la rete internet. Con riferimento al cloud computing, ovvero alle operazioni che è possibile effettuarvi, compare in due documenti: uno della Compaq (1996) e uno, successivo, utilizzato da Amazon (2006). Il cloud permette di aggirare i limiti del modello client-server, facendo in modo di renderla non più un server passivo bensì una piattaforma software distribuita a tutti gli effetti.
Il cloud computing indica attualmente server configurati per funzionare non più, semplicemente, come server che attendono le richieste dei client (e le soddisfano in ordine temporale), bensì come piattaforme dei servizi più generici, e soprattutto non per forza legati alla generazione di pagine HTML. Servizi quali ‘SaaS’ (Software as a Service), ‘PaaS’ (Platform as a Service), ‘IaaS’ (Infrastructure as a Service), ‘HaaS’ (Hardware as a Service) e più genericamente ‘EaaS’ (Everything as a Service) fanno riferimento a infrastrutture, servizi di comunicazione che abbiano come comune denominatore un singolo client, ignaro di ciò che avviene “dietro le quinte”, che pero’ sfrutta servizi di alto livello con qualche semplice click: gli esempi più noti di infrastrutture cloud sono in effetti alcuni programmi di webmail (Gmail) e per lo storage dei file (Google Drive). Il vantaggio di questo paradigma progettuale consiste nel riuscire a gestire al meglio le richieste, che non sono quindi più a carico di un singolo server, bensì si configurano in modo più ampio come servizi gestiti da più nodi, snelli, veloci e rapidi.
Problematiche del cloud: la privacy
Come evidenziato da un articolo (fonte) di qualche anno fa, i servizi di posta e documenti online su cloud sono caratterizzati da un problema di fondo: salvo particolari accorgimenti, infatti, tali dati sono salvati in chiaro, e teoricamente qualsiasi super-ammiistratore potrebbe leggerli indebitamente o addirittura modificarli, motivo per cui – ad esempio – qualcuno avanza dei dubbi sul fatto che si possano utilizzare per finalità di backup di dati riservati (anche se, nella pratica, possono essere utilizzati anche per questo, con un certo livello di sicurezza, come abbiamo spiegato nel tutorial su Duplicity). Le soluzioni per risolvere questo problema, attualmente non ancora di banalissima realizzazione, sono i seguenti:
- utilizzo di password forti, eventualmente mediante autenticazione robusta a più livelli;
- utilizzo di chiavi pubbliche e private per garantire l’autenticità del richiedente il servizio.
Ovviamente la questione è tutt’altro che risolta, e molti problemi sono aperti nonchè periodicamente dagli esperti di sicurezza informatica di tutto il mondo.
Nota: l’immagine dell’architettura cloud è tratta da ieeeiitr.com, mentre quella del client server da diario20112012.wordpress.com