69
IoT |
SOFTWARE
EMBEDDED
55 • FEBBRAIO • 2015
in cloud, è possibile
riadattare dinami-
camente la capacità
e la potenza di ela-
borazione senza in-
fluenzare i singoli
dispositivi collegati.
Inoltre, la perdita
occasionale di con-
nessione su un dispo-
sitivo non influisce
s igni f i cat ivamente
sulle altre parti del
sistema. Resta co-
munque il requisito
della disponibilità,
ma solo per il cloud
back-end. Pertanto,
se si vuole garanti-
re l’operatività di un
dispositivo non con-
nesso al back-end,
occorre progettare bene una cache e una logi-
ca di tipo off-line.
REST Assured: funzionalità
di alto livello con Qt
Anche se l’idea dell’IoT porta con sé la possi-
bilità di costruire sistemi in rete versatili e a
prova di futuro, esistono alcune problemati-
che di sviluppo ad essa collegate che devono
essere affrontate. L’architettura di Internet e
del World-Wide Web offre strumenti che faci-
litano alcuni aspetti della creazione dell’IoT.
Ad esempio, l’architettura REST (Represen-
tational State Transfer), basata sul funzio-
namento di base del protocollo HTTP, offre
una versatilità significativamente maggiore
rispetto alle tradizionali architetture client-
server, come SOAP.
Un’API REST permette a utenti e server di
interagire in maniera complessa senza che
il client debba conoscere nel dettaglio tutti i
possibili servizi prima di collegarsi al server
(Fig. 2).
Questo è molto importante quando conside-
riamo l’estensibilità di un sistema con dispo-
sitivi e servizi arbitrari. Un semplice identi-
ficatore universale di risorsa (URI, Universal
Resource Identifier) è tutto ciò che è richiesto
per consentire al client di trovare il server.
Da questo punto in poi, server e client con-
durranno una serie di negoziazioni e di tra-
smissioni di dati tramite operazioni HTTP
che danno informazioni sui servizi offerti e
su come accedere ad essi.
Anche se i meccanismi centrali del REST
disponibili in HTTP sono versatili, essi fun-
zionano a basso livello. Una piattaforma
applicativa come Qt può estrapolare questi
dettagli di basso livello attraverso l’impiego
di classi di uso, abbinando classi di alto li-
vello orientate agli oggetti ad altre porzioni
dell’applicazione.
Poiché Qt è basato su C++, il codice embed-
ded di livello più basso usato ad esempio per i
collegamenti hardware, può essere integrato
nello stesso software senza dover isolare par-
ti di codice. La combinazione del REST con
le classi Qt offre ai dispositivi IoT un modo
pratico non solo di acquisire dati e inviarsi
comandi l’uno all’altro, ma anche di comu-
nicare con i server cloud, integrandoli nelle
periferiche locali.
Non occorre sviluppare da zero i servizi cloud
per ogni applicazione. Grazie ai servizi Qt
Fig. 3 – Esempio di servizio Qt Cloud: Engino Data Storage




