• Non ci sono risultati.

co I dati rumorosi riducono la probabilità di deduzione, di individuazione (seppur

1.1 “ I NTERNET OF T HINGS ”.

1.2. A PPS PER SMART DEVICES

Le apps sono applicazioni software tipicamente sviluppate per un compito specifico e destinate a una serie particolare di dispositivi intelligenti (interconnessi): smartphone, tablet e televisori connessi a Internet. Le apps elaborano le informazioni in modo compatibile alle caratteristiche specifiche del dispositivo, interagendo strettamente con l'hardware e il sistema operativo montati su di esso (quindi tipicamente si distinguono apps per Android, oppure apps per iOS270 ).

I sistemi operativi mobili sono progettati per esporre specifiche funzionalità di accesso per il tramite di API (Application Programming Interface). L'accesso può essere diretto a sensori - ad esempio di prossimità, di audio/video integrati nella fotocamera, oppure al giroscopio, alla bussola o all'accelerometro; ad interfacce di rete – quali ad esempio Wi-Fi, Bluetooth, NFC; oppure a servizi e strutture dati nativi – quali ad esempio il calendario, la rubrica dei contatti.

Grazie a queste API gli sviluppatori di apps possono accedere alla memoria e al sistema operativo del dispositivo per raccogliere, modificare, cancellare, inviare dati; modificare le impostazioni del dispositivo; acquisire dati univoci dello stesso (e quindi identificativi dell'utilizzatore) quali ad esempio numero di cellulare o codici IMEI, IMSI, UDID.

La apps possono, quindi, assimilarsi alle tradizionali applicazioni software scritte ed eseguite in compatibilità ad un sistema operativo installato sul personal computer, per il tramite di un ambiente di sviluppo di SDK – Software Developmet Kit, con la differenza di essere caratterizzate una semplificazione e un approccio implementativo a basso livello, volto ad ottenere leggerezza, essenzialità e velocità, in linea con le limitate risorse hardware dei dispositivi mobili rispetto agli ambienti desktop.

Le apps si suddividono in apps native, web apps, apps ibride271. Le apps native, sono scaricate,

installate ed eseguite interamente nel dispositivo mobile, e quindi mirate allo specifico sistema operativo, sviluppate nel codice nativo dello stesso272; la capacità elaborativa e computazionale del dispositivo sono essenziali al funzionamento dell'app; le apps native sono rilasciate da un

270 Android e iOS, sono i principali sistemi operativi mobili (OS) oltre a: Windows Phone, Symbian, Blackberry 10 (QNX); ed

altri meno diffusi o in disuso, quali Bada e dei sistemi GNU/Linux, embedded come Embedded Linux, Tizen (successore di LiMo e MeeGo), Sailfish OS, Maemo, MeeGo, Ångström, Ubuntu Touch/Ubuntu Phone, Firefox OS, Open webOS, Openmoko, ed altri.

Cfr https://it.wikipedia.org/wiki/Smartphone

271 In argomento per i dettagli si rimanda ai seguenti articoli:

Mobile Apps, di Giulio Roggero I parte: Applicazioni mobili, un mercato maturo e in crescita, (Febbraio 2014)

http://www.mokabyte.it/2014/02/mobileapps2014-1/

II parte: Trend e tecnologie. Pro e contro delle app native e ibride, (Aprile 2014)

http://www.mokabyte.it/2014/04/mobileapps2014-2/

app store dedicato. L'interazione diretta con le API messe a disposizione dal costruttore del sistema operativo garantirà accesso immediato a tutte le funzionalità del dispositivo oltre a permettere prestazioni ottimali e migliorarne l'usabilità. Questa tipologia di apps ampliano, quindi, le caratteristiche native del dispositivo incluse all'interno del sistema operativo, estendendo e personalizzandone le funzioni embedded native.

In un contesto desktop le apps native sono sovrapponibili alle tradizionali applicazioni eseguibili su personal computer (in genere rilasciate in formato eseguibile, distinto dall'estensione .exe).

Le web apps consistono in un collegamento verso un applicativo remoto - implementato in un linguaggio cross-platform (ad esempio HTML5), per il tramite di un livello software di interfaccia distinto, allocato sul dispositivo mobile o anch'esso su un server remoto: in pratica l'app gira e viene fruita all'interno di un runtime custom contenuto nel web browser del dispositivo.

Questa soluzione comporta importanti conseguenze in termini di funzionamento: il vantaggio principale di una web app consiste nel fatto di non incidere se non minimamente sulle capacità di memoria e di calcolo del dispositivo in quanto il nucleo elaborativo e/o l'interfaccia utente dell'applicazione sono collocati su server remoti; ulteriore vantaggio delle web apps è quello di poterle rilasciare come un sito web senza passare dallo store e quindi essere indipendente dal vendor; al contempo le web apps sono fruibili da tutti i web browser desktop.

Di contro il funzionamento di una web app richiede il costante accesso a internet, le sue prestazioni dipenderanno strettamente dalla velocità di connessione, presentando comunque negazioni di accesso a molti dei sensori hardware del device, per limitazioni esposte dalla sandbox del web browser.

In un contesto desktop le web apps sono sovrapponibili alle tradizionali applicazioni eseguibili nei web browser, nativamente o per il tramite di plug-in.

Le apps ibride girano all'interno di un runtime custom che contiene una web view (analogo al web browser delle web apps). Il runtime espone questa web view con APIs che "avvolgono" quelle del dispositivo mobile ed espongono le proprie in JavaScript. È quindi sufficiente invocare queste APIs e dalla web view per poter accedere all'hardware del dispositivo come, ad esempio l'accelerometro, i contatti o la fotocamera del telefono, funzionalità proibite da un web browser normale. Questo approccio rimane svincolato dallo store e dal vendor per se non per l'SDK (in ragione dell'utilizzo di HTML5 implementante il wrapper), con delle performance

intermedie tra le apps native (in assoluto più efficienti) e le web apps.

In un contesto desktop le apps ibride sono sovrapponibili alle java applet o active-x eseguibili tramite i corrispondenti runtime environment.

Figura 4.3 - Confronto tra web apps e apps ibride273.

Le applicazioni e i servizi resi dalle apps sono numerosissime e variano per tipologia, esponendo funzioni di navigazione Internet e comunicazione (e-mail, messaggistica, telefonia); intrattenimento (giochi, film/audio, musica), lettura di quotidiani e news; phone-banking, servizi finanziari; negozi virtuali e servizi di retail; geolocalizzazione di persone, mezzi di trasporto; misurazione di performance fisiche; sportive; gestione degli indicatori di salute; servizi pubblicitari contestuali o personalizzati.

Le apps vengono offerte all'utente finale gratuitamente o a un costo minimo, la base di utilizzatori può variare da pochi individui a molti milioni. Secondo un report pubblicato da IDC – Internation Data Corporation274, nel 2015 sono state installate circa 156 miliardi di apps per

un guadagno diretto pari a circa 34,2 miliardi di dollari e con una previsione per il 2020 di 210 miliardi di installazioni all’anno e un guadagno diretto stimato in 57 miliardi di dollari.

273 Cfr http://www.mokabyte.it/2014/04/mobileapps2014-2/

274 Per un maggior dettaglio si rimanda alla risorsa disponibile su http://www.pcprofessionale.it/blog/mercato-app/, e

all'articolo I numeri del mercato delle app - Google Play genera il maggior numero di download, ma è l'App Store di Apple che crea il

I principali attori coinvolti nello sviluppo, nella distribuzione e nella gestione delle apps sono quattro275, e comprendono:

i. gli sviluppatori di applicazioni: creano apps e/o le mettono a disposizione di utenti finali. La categoria comprende aziende del settore privato o organizzazioni del settore pubblico che commissionano lo sviluppo di applicazioni, le società o le persone fisiche che creano e lanciano applicazioni. Progettando e/o creando il software che girerà sugli smartphone, gli sviluppatori discriminano in che misura l'applicazione potrà accedere a diverse categorie informazioni e procedere al loro processamento sia nel dispositivo che attraverso risorse informatiche remote;

ii. i produttori di sistemi operativi e di dispositivi: rispetto al funzionamento e alla gestione delle apps il loro ruolo attiene principalmente l'esposizione delle APIs, e l'implementazione delle funzionalità di sicurezza, in particolare quelle di tipo privacy by design;

iii. gli app store: provvedono alla distribuzione e alla commercializzazione delle apps; tipicamente sono associati e vincolati a un sistema operativo, anche se parallelamente alla loro diffusione le apps sono reperibili direttamente dai siti di coloro che le sviluppano, dalle aziende o qualsiasi privato che voglia mettere a disposizione una propria applicazione;

iv. terze parti coinvolte nell'ambito dell'utilizzo, dei servizi e nei prodotti erogati dalle apps: in questo gruppo rientrano parti coinvolte in servizi considerabili accessori per tipologia ma non per rilevanza o diffusione; rappresentano esempi i fornitori intermediari per prodotti di pubblicità contestuale o personalizzata, oppure per i servizi trasversali di tracciamento e marcatura del dispositivo tramite cookies, od ancora per servizi analitici degli indicatori di utilizzo, popolarità e fruibilità delle apps.

La stretta e silenziosa interazione con il sistema operativo consente alle apps di accedere ad un numero notevolmente maggiore di dati rispetto a un browser o navigatore tradizionale, abilitandole a raccogliere grandi quantità di informazioni, di elaborarle per fornire servizi accessori e innovativi all'utente finale. Molte delle informazioni accedute e trattate sono dati personali, identificativi, informazioni private che concernono non solo il proprietario del dispositivo ma anche altri utenti (si pensi ad esempio ad immagini, video o ai contatti inclusi nella rubrica).

Tuttavia, le stesse fonti di dati possono essere ulteriormente elaborate, di solito per generare un flusso di entrate, con modalità che possono essere ignorate o indesiderate dall'utente finale rappresentando quindi tanto un fattore di vulnerabilità, tanto significative implicazioni di rischio per la privacy e la protezione dei dati personali.

In analogia all'IoT i dati generati dalle Apps concorrono a comporre il volume e la varietà dei Big Data, e se considerati in una prospettiva semantica, ad essere trattati secondo lo schema Big Data; questo argomento sarà illustrato e approfondito nel seguente paragrafo 1.3. "Big Data" e Data Mining.