FOG Computing
Il Fog Computing è concepito come un'estensione del cloud. Il termine "Fog" è stato originariamente definito da Cisco nel tentativo di descrivere la necessità di una piattaforma di abilitazione in grado di far fronte ai requisiti posti dai servizi Internet degli oggetti critici (IoT).
Il "fog computing" è caratterizzato da una piattaforma altamente virtualizzata che fornisce servizi di elaborazione, archiviazione e networking tra dispositivi terminali e data center di cloud computing tradizionali, in genere, ma non esclusivamente situati ai margini della rete".
Figura 12: Fog Computing
Le implementazioni di applicazioni IoT stanno introducendo nuovi requisiti che le attuali impostazioni del cloud non possono soddisfare in modo adeguato. Questi requisiti includono geo-distribuzione, bassa latenza, consapevolezza della posizione e supporto della mobilità. Per soddisfare i suddetti requisiti, la comunità di ricerca ha proposto nuove tecnologie, una tra queste risulta essere proprio il Fog Computing. Questo è una rete che si interpone tra i Data Center Cloud e le varie tipologie di utenza.
Fog computing è un'architettura che estende le funzioni tradizionalmente centralizzate del cloud computing fino al limite e nelle immediate vicinanze delle cose in una rete di Internet of Things. Il FC migliorerà la qualità dei servizi forniti riducendo il ritardo nel trasporto dei dati tra i nodi appartenenti al livello fog e il cloud. Tutto ciò non deve essere vista come una sostituzione del cloud, ma come l’introduzione di un nuovo componente che riesce a migliore i servizi offerti dal cloud per le applicazioni critiche.
Figura 13: Il Cloud
Il livello FOG è stato pensato come soluzione per far fronte a requisiti come geografia distribuita, Quality of Service, latenza minima, i quali sono richiesti da applicazioni critiche IoT.
Figura 14: Fog Attributes
L’immagine sopra rappresenta alcuni degli attributi fondamentali che caratterizzano il Fog Computing.
I nodi del livello Fog devono offrire gli stessi servizi indipendentemente dalla natura del dispositivo. Dato che i nodi del livello Fog posseggono risorse limitate (batterie) e sono presenti in numero notevole nella rete, devono poter essere ricaricati nel modo meno dispendioso possibile (ad esempio attraverso pannelli solari, turbina eolica, ecc.).
I nodi possono utilizzare la loro disposizione in modo ottimale (ad esempio single-hop basate su WiFi) per prevenire il ritardo della trasmissione dell’informazione; supportano applicazioni distribuite, che richiedono ampie distribuzioni spaziali, come le applicazioni basate su Wireless Sensor Network (WSN). Per garantire l'affidabilità dei dispositivi serviti, i cloni corrispondenti devono essere eseguiti su server di nebbia come macchine virtuali o contenitori isolati.
L’architettura per il “Fog Computing” più utilizzata è a tre livelli:
- Il livello più basso è quello degli IoT, i dispositivi intelligenti definiti come Terminal Nodes;
- Il livello centrale è detto Fog, costituito da dispositivi di rete quali router, gateway, switch e access point;
- Il livello superiore è costituito dai cloud server in cui vi è spazio sufficiente per l’archiviazione e l’elaborazione.
Figura 15: Panoramica Fog Computing
Edge Computing
Un’architettura di Edge Computing è un’architettura distribuita di Micro Data Center, ciascuno in grado di immagazzinare ed elaborare i dati a livello locale e trasmettere questi dati a un data center centralizzato o a un repository di storage in cloud.
I data center centralizzati hanno da tempo reso evidenti i propri svantaggi, quali il costo, la poca agilità, la grande quantità di energia richiesta. Negli ultimi anni il Cloud ha risolto questo problema: spostando i carichi di lavoro nella nuvola ha permesso di ridurre sensibilmente i costi del data center e si ha inoltre la possibilità di accedere a risorse storage e potenza di calcolo virtualmente illimitate e disponibili on demand.
Non tutte le applicazioni, però, sono portabili nel cloud. Esistono particolari situazioni che, anzi, accentuano i limiti tipici delle infrastrutture di questo tipo. Uno dei più rilevanti è legato all’impossibilità di stabilire connessioni sempre affidabili – in grado di sostenere, per esempio, i flussi continui di dati provenienti da sensori e oggetti connessi in ottica IoT. Un altro è quello legato alla latenza, quindi al tempo necessario per trasmettere un pacchetto dati attraverso la rete pubblica che il cloud sfrutta.
Per ovviare a questi problemi, negli ultimi anni si sta affermando un nuovo approccio, battezzato Edge Computing che, a detta di diversi analisti, guadagna consensi crescenti, in molteplici segmenti e in diversi ambiti applicativi. Pensiamo ad esempio al mondo dell’automotive e dell’autonomous driving. Impensabile pensare allo sviluppo di auto a guida autonoma senza il contributo dell’edge computing. Le applicazioni di intelligenza artificiale devono girare lì dove i dati vengono generati, per consentire livelli di latenza minimi e minimi tempi di reazione.
L’Egde Computing è una componente sempre più importante delle infrastrutture IoT (Internet of Things), specie nei casi in cui si renda necessaria una risposta tempestiva e autonoma da parte dei dispositivi, sulla base degli input ricevuti. Ciò è particolarmente vero in settori come l’automotive, dove i dispositivi IoT rivestono un ruolo decisivo per la sicurezza delle persone, o l’industria manifatturiera, dove la capacità delle macchine di agire autonomamente in base alle circostanze è uno degli ingredienti principali dell’Industria 4.0.
Le stime di sviluppo della IoT prevedono la diffusone di un numero di dispositivi IoT che va da 25 a 50 miliardi, cioè una quantità che potrebbe arrivare fino a 7 dispositivi per abitante della Terra. È difficile pensare che ci sia un’infrastruttura Cloud in grado di processare in tempo reale la quantità di dati che tali dispositivi genererebbero, a causa sia delle imitazioni di banda che del tempo di latenza, fattori entrambi impliciti nelle infrastrutture di rete.
Dunque per rendere davvero utili gli oggetti IoT che stiamo disseminando ormai ovunque, è indispensabile spostare quanta più intelligenza possibile dal Cloud verso l’Edge, ovvero la parte periferica dell’infrastruttura IoT.
Figura 16: Edge Computing