tesi magistrale 2014
DESCRIPTION
Tesi magistrale in ingegneria informatica Progettazione e sviluppo di un gateway per la gestione efficiente a servizi e risorse per l'accesso locale e remoto in scenari di Internet of Things attraverso tecniche di Cloud ComputingTRANSCRIPT
PROGETTAZIONE E SVILUPPO DI UN GATEWAY PER LA GESTIONE EFFICIENTE E L’ACCESSO A SERVIZI E RISORSE LOCALI E REMOTE
IN SCENARI DI INTERNET OF THINGS ATTRAVERSO TECNICHE DI CLOUD COMPUTING
DESIGN AND IMPLEMENTATION OF A GATEWAY FOR THE EFFICIENT MANAGEMENT AND ACCESS TO LOCAL AND REMOTE SERVICES AND RESOURCES IN INTERNET OF THINGS
SCENARIOS THROUGH CLOUD COMPUTING TECHNIQUES
Relatore:Chiar.mo Prof. Simone Cirani
Correlatore:Dott. Ing. Marco Picone
Tesi di Laurea Magistrale di:Mirko Mancin
Introduzione
Internet of Things (IoT) = Infrastruttura di rete globale e dinamica con capacità di
auto-configurazione che conterà decine di miliardi di dispositivi eterogenei sempre connessi
Gartner says the Internet of Things Installed Base will grow to 26 Billion units by 2020
Scenari applicativi dell’IoT
Eterogeneità
Connect All IP-based Smart Objects
• Nuovi metodi per raggiungere bassissimo consumo energetico e garantire l’interoperabilità
• Utilizzo dello stack protocollare fornito da IPv6
• Nuovi protocolli “lightweight” (ad es. CoAP/UDP)
Smart Objects
Caratterizzati da:
• Alto rate di pacchetti brevi
• CPU dimensionata in base alle esigenze di elaborazione
• Accesso e memorizzazione efficiente dei dati
Come può essere usato
• Reti di sensori a basso consumo, chiamate anche Low-power and Lossy Networks (LLN)
• In reti che supportano per IPv6 tramite 6LoWPAN
Esempio di uno smart object sviluppato
“Uno Smart Object è un dispositivo con una propria capacità elaborativa, periferiche di I/O ed interfacce di rete che permettono una connessione sia a Internet (tramite IP) sia con altri oggetti simili”
Extended Internet
L’IoT Hub rappresenta un ponte tra Internet e Internet of Things
IoT Hub
Svolge un ruolo centrale e fondamentale all’interno di una rete IoT locale e come ponte tra Internet e Internet of Things
Local Hub
• Semplifica l’interazione e la comunicazione tra nodi e servizi eterogenei all’interno e all’esterno della rete.
• Dispositivo con risorse di calcolo maggiori rispetto ad uno Smart Object e non presenta vincoli di basso consumo.
• Offre alcuni servizi essenziali ed altri opzionali, in base allo scenario d’utilizzo come ad esempio servizi di storage/caching, di proxy, di origin server, ecc.
• Possibilità di accedere in modo trasparente, sicuro e standard ad uno o più IoT Hub
• Focus sulle risorse e sui dati senza preoccuparsi dei dettagli della rete
Obiettivi:
• Progettazione di un nuovo livello di astrazione per le reti IoT esistenti
• Clonare e virtualizzare gli Hub locali per la gestione trasparente delle risorse in Cloud
• Soluzione per accesso remoto trasparente
Lo scopo è creare un’architettura:
• Scalabile
• Affidabile
• Performante
Obiettivi della Tesi
L’Architettura Generale
Remote Hub a
Hub
Replica Manager
Cloud Access Control
Broker
VPNLocal Hub a
Smart Objects
HubHubLocal Hub
HubRemote Hub
MQTT
Comunicazione con gli Hub
Use Cases - Polling
Cloud Access Control
Smart Object(Server)
Cloud IoT Hub
“select”
Cloud IoT Hub
Cloud IoT Hub
IoT Hub
“polling”
VPN
RichiestaRisposta
• Client vuole avere informazioni da uno specifico Smart Object
• Lo Smart Object viene interrogato in polling dall’IoT Hub.
• I meccanismi di sincronizzazione degli Hub aggiornano i dati sul Cloud
Use Cases - Observing
Cloud Access Control
Cloud IoT Hub
“select”
Cloud IoT Hub
Cloud IoT Hub
IoT Hub
“polling”
VPN
RichiestaRisposta
Smart Object(Server)
“observing”- proxy -
• Client vuole osservare una specifica risorsa offerta da uno Smart Object
• Il Client effettua una singola richiesta allo Smart Object dichiarando il proprio interesse per la risorsa
• Lo Smart Object risponde alla prima richiesta all’IoT Hub Locale.
• L’Hub locale si sincronizza con il suo clone in Cloud che provvederà a rispondere alla richiesta originale
• Ad ogni variazione delle risorsa lo Smart Object invierà un messaggio al suo Hub che sincronizzandosi con
il proprio clone inoltrerà il messaggio al Client interessato.
Use Cases - Pushing
Cloud IoT Hub
Cloud IoT Hub
Cloud IoT Hub
IoT Hub
“polling”
VPN
Smart Object(Client)
“pushing”
• Lo SmartObject si comporta come un client:
Non detiene le risorse localmente
Pubblica i dati sull’IoT Hub
• I dati aggiornati vengono sincronizzati con il Cloud automaticamente.
• Le risorse salvate e sincronizzate sono disponibili per i client esterni interessati
L’Architettura Cloud
Replica Manager
Cloud Access Control
La piattaforma Cloud per il sistema sviluppato è stata realizzata tramite l’utilizzo
della suite Open Source OpenStack
I servizi e moduli che sono stati progetti e sviluppati lato Cloud sono:
• Replica Manager, per la gestione delle repliche degli IoT Hub
• Broker per la comunicazione tra gli Hub con protocollo MQTT secondo il
pattern Publish/Subscribe
• Servizi REST, per il controllo e la gestione degli accessi dall’esterno
• Cloudify Module, per l’analisi delle metriche relative al Cloud
Remote Hub
Broker
Local Hub
MQTT
Il Protocollo di Sincronizzazione
• Lo scambio viene garantito in due fasi tramite uno scambio di messaggi secondo
il protocollo 2PC (2 Phase Protocol Commit)
• Il protocollo è indipendente dal tipo di agente che lo esegue (non c’è distinzione
tra Hub locali e remoti)
• Il protocollo è stato incapsulato tramite il protocollo MQTT
• Ogni variazione nella lista delle risorse viene notificata dall’Hub sorgente a quello
destinatario
• All’arrivo di una nuova risorsa da sincronizzare, l’Hub ricevente “manda in
loopback” il messaggio entrante emulando quindi l’arrivo di un pacchetto
tradizionale e lasciando inalterato il flusso operativo di gestione delle risorse
Remote Hub
Broker
Local Hub
MQTT
Local Hub
Remote Hub
• Dongle USB: ha come obiettivo la riduzione dei costi provenienti dall’acquisto di nodi general purpose che sfruttano tale
protocollo e per permettere di avere dei dispositivi plug&play da utilizzare in diversi scenari applicativi (IoT Hub/Gateway
e/o dei nodi “foglia” da inserire all’interno di una rete esistente).
• Shield “Arduino-like”: consente di avere accesso a tutti i pin disponibili del microcontrollore ed interfacciarsi per esempio
ad un Arduino o ad un’altra scheda esterna per la gestione della parte di sensing.
Al progetto hanno lavorato anche:
Ing. Giovanni Franco (Professore del corso di Costruzioni Elettroniche)
Alessandro Padovani, Studente Ingegneria Elettronica
Andrea Picchi, Studente Ingegneria Elettronica
Nicola Pignoloni, Studente Ingegneria Elettronica
Eduard Ionut Chirica, Studente Ingegneria Elettronica
Gli Smart Object sviluppati
Conclusioni
Sviluppo di un'architettura per raggiungere una rete IoT in remoto “virtualizzando” le funzionalità della rete fisica.
Il Cloud rende fruibili i servizi ubiquitari.
L’architettura realizzata si compone quindi dei seguenti elementi:
• Una rete IoT con differenti Smart Object;
• Il Cloud che ospita diverse istanze di macchine virtuali che costituiscono le virtualizzazioni degli IoT Hub;
• Un protocollo di sincronizzazione che tiene sincronizzati gli Hub (locale e remoto)
• Un server REST che tramite delle API, interagisce con il Cloud e visualizza le diverse risorse disponibili grazie alla
presenza degli IoT Hub remoti
Il tutto è stato validato e testato per garantire il funzionamento e l’interoperabilità tra i diversi elementi.
Sviluppi Futuri
• Integrare l’architettura proposta in un testbed reale per poter far misurazioni di latenza e performance rispetto al
carico di rete
• Aggiungere opportuni livelli di sicurezza e di autenticazione/autorizzazione per permette l’accesso al Cloud e agli Hub
in modo sicuro
• Creazione di una serie di API per la gestione unica del Cloud senza ricorrere alle dashboard OpenStack e Cloudify. Con
tale servizio è possibile per esempio integrare nuove funzionalità quali interfacce custom, integrazione di un’App ad-hoc
per dispositivi mobile, ecc.
PROGETTAZIONE E SVILUPPO DI UN GATEWAY PER LA GESTIONE EFFICIENTE E L’ACCESSO A SERVIZI E RISORSE LOCALI E REMOTE
IN SCENARI DI INTERNET OF THINGS ATTRAVERSO TECNICHE DI CLOUD COMPUTING
DESIGN AND IMPLEMENTATION OF A GATEWAY FOR THE EFFICIENT MANAGEMENT AND ACCESS TO LOCAL AND REMOTE SERVICES AND RESOURCES IN INTERNET OF THINGS
SCENARIOS THROUGH CLOUD COMPUTING TECHNIQUES
Relatore:Chiar.mo Prof. Simone Cirani
Correlatore:Dott. Ing. Marco Picone
Tesi di Laurea Magistrale di:Mirko Mancin