Uno dei fattori tecnologici che più di altri ha permesso la definizione e la diffusione del paradigma dell’IoT è il Cloud Computing. Esso diventa infatti front-end e back- end per il paradigma dell’IoT, svolgendo la funzione di aggregatore, custode ed elaboratore dei dati generati dai prodotti e dai processi intelligenti.
Per chiarire ulteriormente il ruolo del Cloud Computing in questo contesto, si pensi all’Internet of Things come al sistema nervoso, dove il complesso del corpo umano rappresenta l’intera economia. Nello specifico di questa metafora, dove la rete di sensori e connessioni è assimilabile al sistema nervoso periferico (ovvero quello formato dai neuroni che si sviluppano attraverso tutto il corpo di un essere umano) e gli oggetti sono organi e tessuti resi sensibili e in grado di muoversi dai neuroni del sistema, il Cloud Computing è assimilabile al sistema nervoso centrale: ad esso infatti sono riservate le funzioni di ricezione, trasmissione e analisi delle informazioni e degli stimoli (interni ed esterni) che giungono dal sistema periferico, dagli oggetti appunto.
Questa metafora consente di sottolineare il ruolo centrale che il Cloud Computing svolge all’interno del paradigma dell’IoT, diventando il centro verso cui l’intero sistema tende, una sorta di “sala di controllo” che consente di gestire e organizzare nel suo complesso le soluzioni IoT, fornendo anche una base per la rielaborazione dei dati generati e la creazioni di nuovi servizi a partire da essi.
Figura 10: Il Cloud Computing
Il National Institute of Standards and Technology (NIST), l’istituto più autorevole in materia di modelli e architetture Cloud, ha rilasciato una definizione standard per descrivere il Cloud Computing: «Un modello conveniente per l’abilitazione, l’accesso e la configurazione di risorse in rete facenti parte di un pool condiviso».
Secondo i primi modelli di architettura IoT, i dispositivi alla periferia della rete rappresentavano semplicemente degli strumenti per raccogliere dati, mentre le risorse di calcolo necessarie a elaborare quei dati e analizzarli per trarne informazioni utili al business erano concentrati nei Corporate Data Center oppure nel Cloud. Tale architettura si è presto rivelata incapace di far fronte all’aumento esponenziale dei device installati e all’eccessiva mole dei dati raccolti. Per evitare tempi di latenza molto lunghi legati al trasferimento dei dati, sono stati sviluppati sistemi in grado di distribuire l’intelligenza anche in periferia, seconde le logiche dell’Edge Computing.
I tre tipi di servizi che rientrano nella definizione di Cloud Computing sono:
- Software come Servizio (SaaS), cioè la possibilità di utilizzare le applicazioni del fornitore che funzionano sull'infrastruttura del Cloud, solitamente tramite un client (per esempio un browser web come Google Chrome);
- Piattaforma come Servizio (PaaS), ovvero utilizzare il Cloud come piattaforma per creare e gestire applicazioni grazie agli strumenti resi disponibili dal fornitore;
- Infrastruttura come Servizio (IaaS), dove al cliente vengono forniti vari tipi di risorse computazionali come network, spazi di archiviazione o capacità di elaborazione, che il cliente può utilizzare a piacimento per far girare il proprio software, come sistemi operativi o applicazioni.
In tutti questi tre servizi c’è un elemento in comune: il cliente non ha il controllo dell'infrastruttura Cloud, ma può utilizzarne alcune risorse (applicazioni tramite SaaS per esempio). Oltre a quelli elencati qui sopra, a volte si parla anche di Dati come Servizio (DaaS), dove il fornitore mette a disposizione dei clienti le proprie banche dati per conservare e gestire i loro dati.
Figura 11: Cloud Service Models
Riprendendo sempre una definizione del National Institute of Standards and Technology (NIST), un’agenzia del governo dedicata alla definizione di standard in grado di guidare i progressi dell’industria e del commercio, si evincono cinque caratteristiche essenziali che il Cloud deve avere per essere definito tale:
- Self-Service: l’utente può richiedere i servizi in autonomia, senza l’intervento dei gestori dell’infrastruttura o dei service provider;
- Accessibilità globale: i servizi devono essere disponibili in rete e accessibili attraverso meccanismi standard che promuovono l’utilizzo di piattaforme eterogenee, come smartphone, tablet e laptop;
- Condivisione delle risorse: le risorse di calcolo del fornitore sono messe in comune per servire molteplici consumatori utilizzando un modello condiviso, con le diverse risorse fisiche e virtuali assegnate e riassegnate dinamicamente in base alla domanda;
- Rapida elasticità: le risorse possono essere acquisite e rilasciate elasticamente, in alcuni casi anche automaticamente, per scalare rapidamente verso l’esterno e l’interno in relazione alla domanda;
- Misurabilità dei servizi: i sistemi Cloud controllano automaticamente e ottimizzano l’uso delle risorse, facendo leva sulla capacità di misurazione ad un livello di astrazione appropriato per il tipo di servizio. L’utilizzo delle risorse può essere monitorato, controllato e segnalato, fornendo trasparenza sia per il fornitore che per l’utilizzatore del servizio.
Il Cloud è oggetto di interesse di numerose aziende, in quanto incrementa la quantità di servizi che possono offrire ai propri utenti. Nell’ambito mobile, per esempio, gli usi del Cloud sono innumerevoli: dal salvataggio di foto alla memorizzazione in remoto dei contatti della rubrica fino al ritrovamento di uno smartphone smarrito.
Tutti i colossi dell'informatica offrono servizi Cloud, come Microsoft (Office Online, One Drive e altri), Apple (ICloud), Google (Google Drive) o Amazon (Amazon Cloud Drive). I servizi Cloud tra i vantaggi offrono prezzi competitivi, grande scalabilità, nessuna necessità di installazione; tra gli svantaggi ci sono la dipendenza da una connessione Internet per l'utilizzo, mancanza di trasparenza (dato che l'infrastruttura non è controllata direttamente dai clienti), problemi di sicurezza dei dati e una legislazione non al passo con i tempi, che tutela scarsamente il cliente.
Vista la natura del Cloud Computing, la sua scalabilità e gli altri vantaggi ad esso connessi, la convergenza con gli IoT è uno sviluppo facilmente prevedibile: IoT può beneficiare delle risorse del Cloud per superare i suoi limiti tecnici riguardo la conservazione e l'elaborazione dei dati, e il Cloud ne può beneficiare estendendo il suo utilizzo alle reti di sensori di IoT, quindi agli "oggetti" reali.