Background Image
Table of Contents Table of Contents
Previous Page  70 / 86 Next Page
Information
Show Menu
Previous Page 70 / 86 Next Page
Page Background

SOFTWARE

|

IoT

70

EMBEDDED

55 • FEBBRAIO • 2015

Cloud, gli sviluppatori Qt possiedono una

gamma di strumenti cloud basati su API e

conformi a REST (RESTful) e un pacchetto

di API Qt Cloud per l’uso diretto da parte dei

client Qt. Questi servizi (Fig. 3) comprendono

l’Enginio Data Storage, il Managed WebSo-

ckets per collegamenti bidirezionali in tempo

reale e il Managed Runtimes per trasferire

porzioni di implementazione o di calcolo —

scritte con tecnologie lato server tradizionali,

o utilizzando direttamente le API Qt — sul

lato server scalabile.

Soprattutto per sistemi che raccolgono e ana-

lizzano grosse quantità di dati — i sistemi

Big Data — questa architettura lato server

scalabile aiuta a mantenere i dispositivi em-

bedded nel campo sempre ragionevolmente in

funzione.

Supporto multipiattaforma

Oltre allo stack software del nucleo dell’IoT,

lo sviluppatore deve anche considerare il

supporto a lungo termine, la manutenzione,

gli upgrade e le migliorie. Man mano che

evolvono, i sistemi basati su IoT devono dare

la possibilità di integrare nuovi componenti

che possano lavorare bene con i dispositivi

esistenti. Il problema degli sviluppatori di

sistemi embedded è la varietà di piattaforme

che devono supportare. Serve un ambiente di

sviluppo che permetta al software di essere

utilizzato in un ampia varietà di ambienti

dalle caratteristiche molto diverse, con il mi-

nimo numero di modifiche al codice sorgente.

I sistemi IoT comprendono non solo la cre-

azione di dispositivi embedded intra-connes-

si, ma anche la disponibilità di applicazioni

client per interagire con i dispositivi embed-

ded e i relativi dati. Oggi possono essere mol-

te le piattaforme supportate: servizi web su

browser, telefoni, tablet e computer desktop

con sistema Android, iOS o Windows. L’uso

di una tecnologia multipiattaforma può con-

tribuire a servire gran parte delle attuali – e

future – piattaforme.

Il codice scritto in ambiente Qt gira su un’am-

pia varietà di sistemi operativi, da piatta-

forme intese per sistemi profondamente em-

bedded basati su sistemi operativi in tempo

reale, a Linux embedded fino a macchine

interamente desktop e dispositivi mobili. La

normale logica di business può essere utiliz-

zata su nodi di sensore e dispositivi mobili su

cui gira software con grafica intensiva come

Android.

Qt fornisce un elevato grado di portabilità at-

traverso classi e strumenti, oltre che funzio-

ni di interfaccia utente. Grazie alla varietà

di strumenti grafici, gli sviluppatori possono

massimizzare la portabilità, pur continuando

a mantenere la capacità di calibrare l’appli-

cazione in base al tipo di sistema utilizzato.

Ad esempio, un sensore wireless indossabile

a display può usare una grafica semplice ba-

sata su icone statiche e caratteri. Il display

di un’applicazione Android può invece sfrut-

tare appieno le animazioni e le funzioni mul-

titocco.

Tra i tool Qt per lo sviluppo di interfacce gra-

fiche vi sono Qt Quick e Qt Widgets, prin-

cipalmente ottimizzate per interfacce per lo

più statiche; queste sono utili nei dispositivi

con potenza di elaborazione limitata e display

piccoli e semplici. Qt Quick (Fig. 4) utilizza

il linguaggio QML che offre un approccio di-

chiarativo di alto livello alla progettazione

dell’interfaccia e può essere utilizzato insie-

me da progettisti e sviluppatori.

È progettato per supportare i moderni

processi di prototipazione rapida e per creare

interfacce tattili altamente interattive.

Grazie all’impiego di HTML5 nell’interfaccia

grafica, Qt è in grado di offrire un completo

motore di rendering basato su Chromium, il

Qt WebEngine.

Per un’applicazione che può essere eseguita

su più piattaforme – embedded, mobili o de-

sktop – il codice della logica di business che

utilizza Qt può essere condiviso fino all’80%.

Utilizzando le caratteristiche di Qt Quick,

l’interfaccia grafica può essere progettata

per essere adattabile a piattaforme di diffe-

renti dimensioni.

Se per ambienti diversi occorrono layout se-

parati, un livello comune o componenti comu-

ni e stili con file di layout piccoli e separati

aiutano a massimizzare il riuso di codice. An-

che se i target sono diversi, è sufficiente una