I progettisti possono sfruttare i nuovi dispositivi mobili e le tecnologie cloud all'interno dei sistemi embedded di ultima generazione. L'espressione mobile computing non è un concetto nuovo. Dai primi calcolatori palmari al computer portatile Osborne 1, la promessa di dati, calcoli e comunicazioni portatili si è lentamente mossa dal concetto alla realtà per circa 40 anni. Negli ultimi quattro anni, la giusta combinazione di tecnologia e innovazione ha trasformato lo smartphone da strumento di business a computer portatile accessibile e altamente funzionale. Inoltre, l'ecosisitema del software mobile (sia web che nativo) ha permesso una maggiore espandibilità e aumentato l'aspettativa generale verso i telefoni. La relativamente recente ascesa dei tablet ha frammentato ulteriormente un già complesso panorama tecnologico. In assenza di un vero e proprio leader di mercato e in presenta di molte innovazioni all'orizzonte, il settore del mobile computing è ancora lontano dal consolidamento in una architettura comune del tipo "Wintel". Le sfide sono accompagnate da opportunità di nuove funzionalità fornite dagli ingegneri che realizzano sistemi di monitoraggio e controllo embedded. Senza alcun costo hardware aggiuntivo, è possibile fornire agli utenti un'interfaccia completa e specializzata accessibile da ovunque. Questo articolo analizza alcune delle tendenze e delle scelte necessarie a livello di piattaforma per estendere un sistema embedded su dispositivi mobili.
Tendenze tecnologiche e frammentazione
La frammentazione nel mercato mobile non sparirà così presto. Considerando il solo mercato degli smartphone, dal 2009 la quota di mercato ha sperimentato un notevole cambio. In questo arco di tempo, Android e iOS hanno preso quota e Blackberry OS, Symbian e Windows Mobile non sono affatto scomparsi. Il mercato dei tablet è ancora più instabile, con iOS proprietario di una grossa fetta di mercato e diversi grandi produttori, tra cui Google, Microsoft, RIM e HP, impegnati nello sviluppo di nuove leve di concorrenti. In definitiva, con tutte le informazioni disponibili oggi, la scelta sembra essere orientata verso una delle due piattaforme dominanti. In presenza di un mercato così immaturo, è impossibile predire come sarà il panorama nei prossimi due anni. Un'altra forza dirompente potrebbe facilmente cambiare le regole del gioco ancora una volta. Considerando che molti sistemi di misura e controllo embedded hanno una durata di oltre cinque anni, la cosa migliore da fare è utilizzare cicli di progettazione brevi, iterativi e flessibili e nel frattempo monitorare il mercato per un'innovazione importante.
Cloud Computing
Oltre all'ubiquità delle reti connesse, una delle principali tecnologie abilitanti nella rivoluzione mobile è il cloud computing. Nell'ambito delle misure embedded e applicazioni di controllo, il cloud computing fornisce generalmente uno dei seguenti benefici:
- Aggregazione di dati - Se la distanza tra gli elementi del sistema è misurabile in kilometri anziché in millimetri, sarebbe opportuno considerare i sistemi di archiviazione dei dati nel cloud. Ad esempio, nel caso di un'applicazione per il monitoraggio delle condizioni di ciascuna scatola ingranaggi in un impianto eolico con centinaia di turbine, la raccolta dei dati può diventare estremamente scomoda e costosa. Grazie all'archiviazione cloud, questi sistemi possono memorizzare i dati in un archivio comune in modo da poter essere raccolti, analizzati e confrontati in tutta semplicità.
- Accesso ai dati - In alcuni casi, è difficile accedere fisicamente al sistema di monitoraggio e controllo embedded. Ad esempio, in un'applicazione per il monitoraggio dello stato di salute di un conduttura nelle terre remote dell'Alaska, non sarebbe necessario inviare un tecnico per scaricare le informazioni e controllare lo stato del sistema. Se i dati sono archiviati nel cloud, è possibile accedere da ovunque, incluso i Pc e dispositivi mobili connessi.
- Scaricamento - Le enormi risorse di elaborazione disponibili nel cloud offrono un'opportunità per il alleggerire il software da pesanti task di elaborazione, come nel caso di sofisticate elaborazioni di immagini o segnali oppure la compilazione e lo sviluppo di codice.
Ad esempio, National Instruments ha recentemente introdotto un servizio di compilazione su cloud per NI LabView Fpga che consente di scaricare e parallelizzare compilazioni per chip Fpga (Field-programmable gate array). Molte aziende offrono servizi e archiviazione su cloud. Molte di queste richiedono il pagamento di una piccola quota per il setup e calcolano il prezzo sulla domanda, in modo che il costo sia proporzionale alla quantità di risorse utilizzate. Anche National Instruments fornisce un Technical Data Cloud progettato specificamente per l'archiviazione e l'accesso di dati di misura.
Sicurezza dei sistemi embedded
Sfortunatamente, permettere l'accesso remoto a sistemi embedded comporta dei rischi aggiuntivi che devono essere affrontati, il più importante dei quali è legato alla sicurezza del sistema. Le definizioni di “abbastanza sicuro” sono alquanto relative e possono variare enormemente. La sicurezza, sostanzialmente, è una scelta di compromesso; più è sicuro il sistema maggiore sarà l'investimento di tempo e costo a scapito della convenienza. Pertanto, è necessario valutare l'investimento adatto in sicurezza per ciascuna applicazione sulla base dei rischi di guasti. Per i sistemi di controllo embedded e monitoraggio, le misure di sicurezza possono essere classificate secondo i seguenti quattro livelli: applicazione, sistema operativo, rete e fisico. È importante avere una certa protezione su ciascun livello. Alcune best practice sulla sicurezza nei sistemi embedded possono essere raccomandate per tutti i requisiti base, mentre altre sono necessarie per i bisogni più avanzati. Ecco una lista delle aree dove è possibile assicurare il proprio sistema operativo e rete:
Base
• disabilitare qualsiasi servizio lasci aperte le porte di rete (come FTP
• abilitare il supporto SSL per qualsiasi servizio web
• installare aggiornamenti di sicurezza e patch dal proprio fornitore di sistema operativo
• impostare software antivirus e firewall
Avanzato
• modificare tutte le porte di rete impostate di default
• impostare un firewall abilitato per la VPN
• abilitare una lista bianca per applicazioni di terze parti
• criptare tutti i segnali di comunicazione interna ed esterna.
Supporto di molteplici piattaforme
Esistono tecnologie emergenti che rendono il supporto multi-piattaforma un'opzione possibile. Ci sono alcuni ostacoli per il concetto generale di applicazioni multi-piattaforma, così come questioni da considerare in ciascun approccio di implementazione.
Esperienza dell'utente multi-piattaforma
Considerando soltanto Android e iOS, ciascuna piattaforma offre dei modelli di esperienza utente leggermente diversi. Ciò che un utente Android potrebbe considerare normale, potrebbe essere sconvolgente per un utente iOS. Questo rende limitante lo sviluppo multi-piattaforma, dato che bisogna evitare le operazioni che non sono comuni tra le due maggiori piattaforme. Ecco alcuni esempi:
• La maggior parte degli sviluppatori Android rifugge da un unico pulsante per la navigazione, ma questa pratica è comune su iPhone-
• Alcuni elementi iOS sono ridondanti con i pulsanti Android. Alcuni esempi includono pulsanti di Indietro e Applica, nonché barre di ricerca in cima alle liste di visualizzazione. Molti utenti sono in grado di usarle ma sono immediatamente considerate come peculiari, cosa che al contrario inficia la percezione dell'app. Alcuni elementi iOS devono essere sostituiti dalle convenzioni Android. Un primo esempio di questo è il pulsante Detail Disclosure, che non esiste su Android.
La tecnologia HTML5
L'approccio più efficace per il supporto multi-piattaforma consiste nel creare un'applicazione web con HTML5. Questa tecnologia è diventata il modo migliore per presentare contenuti dinamici nel browser mobile. Perfino Adobe ha recentemente modificato la propria strategia da mobile Flash verso HTML5, e Microsoft ha annunciato che il proprio S.O. Metro non supporterà plug-in in favore dell'HTML5. Questa tecnologia sembra essere promettente, ma gli strumenti sono immaturi ed esistono questioni sulla ricchezza di esperienza fornita con HTML5 confrontata con tecnologie desktop come Silverlight e Flash.