• Non ci sono risultati.

Progettazione e realizzazione di un sistema grafico per la visualizzazione delle misure effettuate dal sistema crowdsourcing Portolan

N/A
N/A
Protected

Academic year: 2021

Condividi "Progettazione e realizzazione di un sistema grafico per la visualizzazione delle misure effettuate dal sistema crowdsourcing Portolan"

Copied!
95
0
0

Testo completo

(1)

U

niversità di

P

isa

F

acoltà di

I

ngegneria

C

orso di

L

aurea

S

pecialistica in

I

ngegneria

I

nformatica

P

rogettazione e realizzazione di un sistema grafico

per la visualizzazione delle misure effettuate

dal sistema crowdsourcing

P

ortolan

Relatori:

Prof. Luciano Lenzini

Prof. Alessio Vecchio

Ing. Valerio Luconi

Candidato:

Alessandro Gnesi

(2)

1 Abstract

L’evoluzione di Internet è un fenomeno inarrestabile ed il suo studio impegna costantemente un gran numero di ricercatori. Portolan è uno dei progetti attualmente attivi che hanno lo scopo di studiare la topologia della rete.

Questa tesi contribuisce a tale progetto realizzando un framework che rende disponibile ai ricercatori un set di pratici strumenti grafici utilizzabili per l’analisi, in tempo reale e per mezzo di un dispositivo mobile, della grande mole di dati raccolti.

Il sistema realizzato prevede l’impiego di un’architettura client-server nella quale il client è un’applicazione destinata all’installazione su dispositivi mobili con sistema operativo Android, mentre il server ha lo scopo di interagire con un database contenente i dati da fornire all’applicazione client.

Fornisce altresì un set di strumenti grafici di analisi, utilizzabili da tutti gli utenti dell’applicazione Portolan per smartphone, al fine di permettere loro di meglio comprendere le proprie abitudini di utilizzo della rete Internet da dispositivo mobile.

(3)

Sommario

1 Introduzione ... 1

1.1 Introduzione al sistema di misura crowdsourcing Portolan ...1

1.2 Obiettivi della tesi ...1

1.3 Contenuto della tesi ...2

2 Portolan ... 4

2.1 Le misurazioni della topologia di Internet ...4

2.1.1Le tecniche di misura ...5

2.1.2I progetti ...7

2.1.2.1 CAIDA Archipelago (ARK)..………. 7

2.1.2.2 DIMES……….………. 8

2.1.2.3 RIPE RIS……….……….………. 9

2.1.2.4 Route Views………...………. 10

2.1.3Portolan ... 11

2.2 Le misure di campo per reti cellulari ... 12

2.3 Architettura del sistema ... 14

2.3.1 Client ... 15

2.3.2 Server... 15

2.4 Servizi per l’utente ... 16

2.5 I database ... 19

2.5.1 La tabella “Polling_history” ... 19

2.5.1 La tabella “Net_stats” ... 21

3 Gli strumenti grafici ... 24

3.1 Ricerca di uno strumento grafico ... 24

3.1.1Google Charts ... 24

3.1.2Charts4j ... 27

3.1.3AChartEngine ... 29

3.1.4AndroidPlot ... 31

(4)

4 Struttura del sistema ... 36

4.1 Descrizione complessiva del sistema ... 36

4.2 Architettura del client ... 37

4.2.1Modulo “Graphical User Interface” ... 38

4.2.2 Modulo principale “Main” ... 39

4.2.3Modulo “Get_data” ... 43

4.2.4Modulo “JSON_parser” ... 44

4.2.5Modulo “Chart” ... 44

4.3 Architettura del server ... 49

4.4 Flussi di esecuzione ... 51

4.4.1Flusso di esecuzione tra client e server ... 51

4.4.2 Flusso di esecuzione tra i moduli del client ... 52

4.4.3 Flusso di esecuzione tra i moduli del server ... 55

5 I grafici ... 57

5.1 Statistiche delle tecnologie utilizzate globalmente per eseguire le attività di polling ... 57

5.2 Statistiche di utilizzo delle stazioni radio base ... 63

5.3 Statistiche di utilizzo dei trasmettitori di segnale radio cellulare da parte di un utente ... 66

5.4 Mappa rappresentante le posizioni del trasmettitore di segnale radio cellulare attualmente in uso e dei trasmettitori presenti nell’intorno del dispositivo ... 71

5.5 Statistiche delle tecnologie utilizzate dal dispositivo per la connessione alla rete dati ... 74

5.6 Statistiche di utilizzo dei trasmettitori di segnale radio cellulare da parte del dispositivo ... 79

5.7 Versione ottimizzata per il progetto Portolan di una mappa rappresentante la posizione del trasmettitore di segnale radio cellulare in uso e dei trasmettitori presenti nell’intorno del dispositivo ... 80

6 Conclusioni e sviluppi futuri ... 82

(5)

Elenco delle immagini

2.1 Evoluzione della copertura dei monitor dal 13 Settembre 2013 al 14

Novembre 2014 8

2.2 Utenti attivi nel progetto DIMES al 14 Novembre 2014 9 2.3 Dislocazione dei Remote Route Collectors 10 2.4 Rappresentazione delle misurazioni di segnale di campo nell’area della

città di Pisa 13

2.5 Rappresentazione dell’architettura del progetto Portolan 14 2.6 Alcuni dei servizi per l’utente disponibili in Portolan - Screenshot

dall’applicazione 17 3.1 Combo Chart, Line Chart e Bar chart realizzabili utilizzando Google

Charts 25

3.2 Pie Chart, Scatter Chart e Gauge realizzabili utilizzando Google Charts 25 3.3 Geo Chart, Table e Treemap realizzabili utilizzando Google Charts 25 3.4 Esempio di grafico a torta realizzato con Charts4j 27 3.5 Esempio di grafico a barre sovrapposte realizzato con Charts4j 28 3.6 Esempio di grafico a barre affiancate realizzato con Charts4j 28 3.7 Esempio di grafico lineare realizzato con AChartEngine 30 3.8 Esempio di grafico a barre realizzato con AChartEngine 30 3.9 Grafico a barre realizzato con AndroidPlot 31 3.10 Grafico lineare con effetti di ombreggiatura realizzato con AndroidPlot 32 3.11 Grafico a torta realizzato con AndroidPlot 32 4.1 Le componenti fondamentali dell’architettura 36 4.2 Rappresentazione delle logiche di interazione tra i moduli

dell’applicazione client 37 4.3 Interfaccia grafica iniziale dell’applicazione client 38

(6)

4.4 Interfaccia grafica per permettere all’utente l’immissione dell’intervallo di date da estrarre per la generazione del grafico statistico dei polling 40 4.5 Interfaccia grafica per permettere all’utente l’immissione

dell’intervallo di date da estrarre e dell’ID per la generazione del grafico statistico di una cella 40 4.6 Interfaccia grafica per permettere all’utente l’immissione

dell’intervallo di date da estrarre e dell’ID per la generazione del grafico statistico relativo alle celle visitate da un utente 41 4.7 Interfaccia grafica per permettere all’utente l’inserimento dei dati

identificativi di una cella per la generazione di una mappa con la relativa posizione 41 4.8 Interfaccia grafica per permettere all’utente l’immissione

dell’intervallo di date da estrarre per la generazione del grafico statisticorelativo alle tecnologie radio di cui fa uso 42 4.9 Particolare dell’asse delle ascisse di un grafico 45 4.10 Particolare dell’asse delle ordinate di un grafico 45 4.11 Particolare dei bottoni per l’interazione con il grafico 46 4.12 Dettaglio dello strumento per l’inclusione nella rappresentazione

grafica dei dati relativi alle tecnologie utilizzate 46 4.13 Dettaglio di una cella in uso, localizzata con un segnaposto sulla

mappa 47

4.14 Dettaglio di una cella non utilizzata, localizzata mediante un segnaposto sulla mappa 48 4.15 Dettaglio del fumetto generato al tocco di una cella in uso 48 4.16 Rappresentazione delle logiche di interazione tra i moduli del server

remoto 50

4.17 Flusso di esecuzione tra applicazione client e server 52 4.18 Flusso di esecuzione necessario al recupero dei dati 53 4.19 Flusso di esecuzione necessario alla conversione del file JSON ed alla

generazione di un grafico 54 4.20 Flusso di esecuzione necessario all’estrazione dei dati dal database del

progetto Portolan 56 5.1 Interfaccia grafica iniziale dell’applicazione 58

(7)

5.2 Interfaccia grafica per permettere all’utente l’immissione dell’intervallo di date desiderato 59 5.3 Esempio di grafico relativo alle tecnologie utilizzate per eseguire le

attività di polling con barre visualizzate in maniera sovrapposta 60 5.4 Grafico relativo alle tecnologie utilizzate per eseguire le attività di

polling con barre visualizzate in maniera continua (a sinistra) ed in maniera affiancata (a destra) 61 5.5 Esempio di scelta selettiva dei dati da rappresentare nel grafico: solo

dati relativi alla tecnologia 3G (sinistra), comparazione dei dati relativi a tecnologie 2G e 3G (centro), comparazione dei dati relativi a tecnologie 2G e Wi-Fi (destra) 62 5.6 Esempio di ingrandimento del grafico 62 5.7 Esempio dei dati dettagliati relativi ad un giorno 63 5.8 Interfaccia grafica per permettere l’immissione dell’ID della cella e

dell’intervallo di date desiderato 64 5.9 Esempio di grafico statistico sull’utilizzo di un trasmettitore di segnale

radio cellulare 65 5.10 Esempio di grafico statistico sull’utilizzo di un trasmettitore di segnale

radio cellulare con informazioni relative alla barra selezionata 66 5.11 Interfaccia grafica per permettere l’immissione dell’ID di un utente e

dell’intervallo di date desiderato 67 5.12 Esempio di grafico statistico sul numero di celle visitate giornalmente

da un utente 68

5.13 Esempio di grafico statistico sul numero di utenti che hanno agganciato gli stessi trasmettitori di segnale radio cellulare rispetto all’utente selezionato 69 5.14 Esempio di mappa con la posizione delle celle che sono state

agganciate da un utente 70 5.15 Esempio di mappa con la posizione approssimative dei trasmettitori

che sono stati agganciati da un utente e fumetto contente i relativi

dati tecnici 70

5.16 Interfaccia grafica per permettere l’immissione dei dati tecnici relativi alla cella di cui si vuole conoscere la posizione sul territorio 72 5.17 Esempio di mappa con le posizioni del trasmettitore del segnale radio

cellulare attualmente in uso (segnaposto colorato) e di quelli noti nelle vicinanze (segnaposto grigio) 73 5.18 Interfaccia grafica per permettere la scelta dell’intervallo di date

(8)

5.19 Grafico a torta relativo alle tecnologie di accesso alla rete dati impiegate nel giorno in corso 76 5.20 Riepilogo delle tecnologie di accesso alla rete utilizzate nel giorno in

corso 77

5.21 Grafico relativo alle tecnologie di accesso alla rete utilizzate nei giorni

selezionati 78

5.22 Aggiornamento automatico della mappa con lo storico delle celle

(9)

1

1 Introduzione

1.1 Introduzione al sistema di misura crowdsourcing

Portolan

La storia di Internet ha inizio negli anni ’60 e la sua crescita nel tempo è stata costante ed inarrestabile. La sua espansione, molto rapida ed apparentemente caotica, pone i ricercatori nella difficoltà di riuscire a comprendere le leggi che ne regolano l’evoluzione a vari livelli di astrazione (router, AS, etc.).

A tale scopo sono nati molti progetti di ricerca tra cui Portolan, un’infrastruttura di misura di tipo crowdsourcing e mobile la cui funzione è quella raccogliere dati ed informazioni relative allo stato della rete. In particolare, utilizzando un sottoinsieme di tali dati, Portolan costruisce la topologia di Internet a livello di Autonomous Systems.

Il progetto Portolan, presentato nel secondo capitolo di questa tesi, coinvolge un elevato numero di utenti, di conseguenza le misure effettuate generano una notevole mole di dati. Tali dati, in concreto, sono valori numerici contenuti nelle tabelle di un database e racchiudono informazioni preziose per i ricercatori ma risultano difficilmente interpretabili senza l’ausilio di strumenti di analisi realizzati ad-hoc.

1.2 Obiettivi della tesi

Il sistema Portolan non disponeva di pratici e rapidi strumenti di analisi dei dati collezionati.

Lo scopo di questa tesi è stato quello di realizzare un framework contenente strumenti destinati ai ricercatori del progetto che permettano loro di esplorare i dati raccolti, secondo un sistema request-response, direttamente dal proprio dispositivo

(10)

2

mobile, per mezzo di opportune rappresentazioni grafiche di semplice ed immediata comprensione.

Inoltre è stata considerata la natura crowdsourcing del progetto Portolan ovvero l’aspetto per cui una maggiore e capillare diffusione dell’applicativo migliora di conseguenza la quantità e l’utilità dei dati raccolti. Per raggiungere tale scopo occorre catturare l’attenzione degli utilizzatori e fornire loro delle valide motivazioni che li spingano ad aderire al progetto.

Si è quindi deciso di realizzare un insieme di funzionalità che, come benefit per l’utente che installa l’applicazione sul proprio dispositivo mobile, permettono l’accesso ad una parte degli strumenti sviluppati per i soli ricercatori. In tal modo, grazie al lavoro svolto in questa tesi, anche gli utenti dell’applicazione Portolan possono effettuare limitate analisi relative alla propria esperienza di fruizione di Internet da dispositivo mobile.

L’architettura del framework realizzato si compone di due elementi fondamentali: un client ed un server interagenti.

Il client consiste in un’applicazione per sistema operativo Android ed ha lo scopo di permettere all’utente di lanciare le funzioni implementate, inserendo gli input necessari, e di ottenere i risultati delle elaborazioni sotto forma di grafici.

Il server remoto, coinvolto nell’interazione con il client, è il server del progetto Portolan. Esso si occupa di ricevere le richieste provenienti dal client, interrogare il database per estrarre i dati desiderati, infine riorganizzarli e trasmetterli al dispositivo mobile.

Sono state inoltre realizzate funzioni che permettono all’utente di visualizzare la posizione di trasmettitori di segnale radio cellulare su mappe. Per ottenere tale funzionalità è stata implementata la logica necessaria ad interagire con il server del progetto OpenCellID, un database pubblico che raccoglie informazioni su posizione e caratteristiche delle antenne cellulari.

1.3 Contenuto della tesi

Il resto della tesi è strutturato come segue.

(11)

3

preceduto, ne viene descritto il funzionamento, la struttura ed infine vengono esposti nel dettaglio il tipo di dati collezionati ed il loro utilizzo ai fini della ricerca. Nel capitolo 3 sono presentati gli strumenti grafici presi in analisi durante la realizzazione di questa tesi, mostrando, per ciascuno di essi, le caratteristiche principali, i pro ed i contro. Al termine viene illustrato lo strumento scelto per essere impiegato in questa tesi fornendo le motivazioni della scelta.

Nel capitolo 4 è descritto il framework realizzato nell’ambito di questa tesi, descrivendo i moduli che lo compongono, le interazioni tra di essi e le soluzioni tecniche adottate.

Nel capitolo 5 sono mostrati i risultati grafici ottenibili, da parte dell’utente, nell’utilizzo del framework. Le descrizioni sono corredate da screenshot ed immagini realizzate in occasione di casi d’uso reali, evidenziando i flussi logici tra le interfacce e le possibilità di interazione a disposizione dell’utente.

Infine nel capitolo 6 la tesi si conclude fornendo un resoconto del lavoro svolto e la presentazione dei possibili sviluppi futuri.

(12)

4

2 Portolan

PORTOLAN è un sistema crowdsourcing nato da una collaborazione tra Università di Pisa ed IIT, Istituto di Informatica e Telematica del CNR, con lo scopo di collezionare misure di rete.

Le misure sono effettuate da terminali mobili sparsi sul territorio e coordinati da un server seguendo un'architettura client-server. I dati raccolti potranno essere analizzati al fine di migliorare le conoscenze attuali di Internet ad un livello di astrazione di Autonomous System (AS) 1 e generare mappe della copertura del

segnale della rete cellulare.

2.1 Le misurazioni della topologia di Internet

La crescita di Internet ha avuto un forte incremento a partire dagli inizi degli anni 1990: il primo miliardo di utenti attivi è stato raggiunto in oltre 10 anni (attorno al 2005), per il secondo miliardo sono stati necessari cinque anni, mentre per il terzo circa tre anni. Un ritmo di crescita molto importante sia come utenti che come infrastruttura, che ha portato ad oggi a connettere quasi quattro miliardi di persone e coinvolgere economicamente migliaia di fornitori di servizi, di contenuti, imprese, reti accademiche e di distribuzione di contenuti [1].

Parallelamente è nata la necessità di scoprire le leggi che regolano tale crescita e la topologia della rete. Disporre di un accurato grafo della topologia della rete Internet, infatti, sarebbe molto importante in ambito networking e non solo, permettendo di realizzare algoritmi o protocolli di rete ottimali per prestazioni e scalabilità ed apportando notevoli benefici in vari settori quali:

 studio e contenimento della diffusione di worm e virus;

 relazioni di business tra ISP 2;

1 Un Autonomous System (AS) è un insieme di reti sottoposte allo stesso controllo operativo e soggette

a comuni e ben definite politiche di routing. [2]

(13)

5

 sviluppo e miglioramento di scalabilità ed efficienza dei protocolli;

 tecniche per la memorizzazione di dati distribuiti;

 studio di anomalie all’interno delle reti;

 studi socio-economici su sviluppo e copertura di Internet;

 investimenti finanziari mirati nelle aree a differente sviluppo;

 progettazione di strategie per garantire la connettività ad Internet anche in caso di malfunzionamenti locali o in casi catastrofici come calamità naturali (fault-tolerance);

 monitoraggio della connettività e verifica delle configurazioni;

La maggiore difficoltà nello studio della topologia di Internet deriva dal fatto che la rete mondiale non è sotto il controllo di un’unica entità amministrativa ma è formata da tanti AS ognuno dei quali è progettato ed amministrato da un ISP in maniera del tutto indipendente dagli altri [2]. Gli ISP in genere operano come entità commerciali perciò sono riluttanti a rivelare pubblicamente la loro struttura e le caratteristiche delle loro reti, sia per ragioni di concorrenza che di business. Per raggiungere l'obiettivo di realizzare un grafo della struttura di Internet e scoprirne le sue proprietà sono state sviluppate una serie di infrastrutture di misura grazie alle quali, negli ultimi quindici anni, la comunità scientifica ha potuto realizzare misurazioni indirette ed analisi della topologia della rete globale.

Purtroppo le campagne di analisi realizzate finora si basano su monitor fissi con una copertura e visione della rete limitate, inoltre molti degli strumenti e delle metodologie di analisi sono ancora poco sviluppati. Ne consegue che, nonostante i molti sforzi, ad oggi non è ancora stata ottenuta una reale ed affidabile mappa della topologia di Internet [3].

2.1.1

Le tecniche di misura

I metodi di misurazione sono in genere classificati come passivo o attivo.

I metodi passivi utilizzano dei monitor3 che collezionano gli aggiornamenti BGP

(Border Gateway Protocol [4]) e ne esaminano le tabelle per estrarre informazioni riguardo la raggiungibilità di un dato percorso.

(14)

6

Un vantaggio di tale approccio è il fatto che permette la raccolta di dati richiedendo un minimo sforzo nelle misure poiché non vi è alcuna necessità di implementare un'infrastruttura per esplorare la rete ma i dati sono raccolti da router BGP adiacenti, chiamati peer, che si scambiano messaggi contenenti le tabelle di raggiungibilità tra gli AS.

Purtroppo i percorsi BGP disponibili pubblicamente non coprono effettivamente l’intera struttura della rete globale a causa di problemi come aggregazione di rotte, mascheramento di percorsi sub-ottimali, vincoli di visibilità e politiche di filtraggio applicate dagli ISP che amministrano gli AS [5].

Le metodologie di analisi attive si riferiscono a tecniche che prevedono l’utilizzo di monitor, posizionati in punti strategici della rete, i quali iniettano opportunamente pacchetti con l’obiettivo di sondare la rete. Il metodo di misurazione attiva più comunemente utilizzato è traceroute.

Traceroute è uno strumento di diagnostica di rete, creato da Van Jacobson nel 1989, che permette di scoprire come risulta instradato un pacchetto di dati nel passare da un computer di origine (il source) ad una macchina di destinazione (il target).

Gli strumenti di traceroute forniscono una misura attiva perciò, a condizione di disporre di monitor opportunamente posizionati, hanno il potenziale teorico di raggiungere e sondare qualsiasi angolo di Internet. Purtroppo un normale strumento di traceroute è soggetto ad errori qualora siano presenti router che attuano politiche di load-balancing, router con firewall configurati in modo tale da negare una risposta al mittente oppure esistenza di particolari politiche di routing che causano instradamenti artificiosi dei pacchetti.

Per tentare di contrastare questa problematica sono stati realizzati degli strumenti più performanti e sofisticati come il Paris Traceroute [6].

Un gran lavoro di ricerca è stato realizzato grazie a questi strumenti, ma nonostante ciò la

struttura di Internet non è stata interamente coperta e rimane ancora un gran numero di link da scoprire [3, 5].

(15)

7

2.1.2

I progetti

Ad oggi sono in corso diversi progetti di ricerca aventi come scopo la definizione della mappa

topologica di Internet. Tra quelli che utilizzano tecniche di misura attive i più conosciuti ed avanzati sono CAIDA Archipelago e DIMES mentre esempi di progetti che sfruttano tecniche di misura passive sono RIPE RIS e Route Views.

2.1.2.1

CAIDA Archipelago (ARK)

[7]

Cooperative Association for Internet Data Analysis (CAIDA) [

7

] è un’organizzazione che prevede un impegno di collaborazione tra organizzazioni provenienti da settori commerciali, governativi e della ricerca accumunati dal forte interesse a mantenere la solidità, la scalabilità e l'efficienza di utilizzo di Internet, sempre in linea con la sua costante crescita.

Le finalità del progetto CAIDA sono:

 fornire informazioni riguardo l’infrastruttura di Internet, il suo comportamento, il suo utilizzo e la sua evoluzione;

 promuovere un ambiente collaborativo in cui i dati possono essere acquisiti, analizzati e condivisi.

A partire dal 1998 CAIDA esegue misurazioni della rete e sviluppa strumenti di raccolta dati e di analisi su grande scala della topologia di Internet e delle sue prestazioni.

Inoltre CAIDA ospita anche il progetto Archipelago Measurement Infrastructure

(Ark) 4 in cui oltre 100 monitor dislocati su tutto il pianeta (Figura 2.1), utilizzando

metodi di misurazione attivi di Traceroute, hanno il compito di sondare diverse liste di indirizzi IP pubblici in modo tale da raccogliere i dati necessari a studiare differenti aspetti della rete Internet. I dati ottenuti dalle analisi sono quindi organizzati, memorizzati in file e trasferiti in un archivio centrale.

(16)

8

La tipologia di monitor utilizzata in questo progetto è fissa ed il loro numero è relativamente esiguo con la diretta conseguenza di ottenere una capacità di scoperta di link e nodi della rete proporzionalmente limitata.

Figura 2.1 – Evoluzione della copertura dei monitor dal 13 Settembre 2013 al 14 Novembre 2014 - Immagine tratta dal sito del progetto [7]

2.1.2.2

DIMES

[8]

Distributed Internet MEasurements and Simulations (DIMES) [8] è un progetto

distribuito ovvero si avvale della capacità di calcolo degli elaboratori di proprietà degli utenti che decidono di prendere parte all’iniziativa di ricerca collettiva (Figura

2.2). Il software necessario (client) può infatti essere utilizzato su qualsiasi

(17)

9

Essendo la partecipazione al progetto libera e volontaria ne consegue che il numero più o meno elevato di partecipanti influenza direttamente la potenza di calcolo distribuita disponibile per le elaborazioni.

Il metodo di raccolta dei dati di DIMES si basa su misurazioni attive di Traceroute.

Figura 2.2 – Utenti attivi nel progetto DIMES al 14 Novembre 2014 Immagine tratta dal sito del progetto [8]

2.1.2.3

RIPE RIS

[9]

Il Réseaux IP Européens Network Coordination Center (RIPE NCC) [9], uno dei cinque Regional Internet Registry (RIR), fornisce servizi Internet come la gestione dei prefissi Internet.

RIPE NCC ha tra i suoi progetti attivi il Routing Information Service (RIS) che, utilizzando dei Remote Route Collectors, raccoglie e memorizza le informazioni di routing (BGP) da diverse postazioni del pianeta (Figura 2.3). Il metodo di raccolta dei dati utilizzato è quindi di tipo passivo.

Tutti i dati collezionati sono memorizzati in database pubblicamente accessibili tramite appositi strumenti.

(18)

10

Figura 2.3 – Dislocazione dei Remote Route Collectors Immagine tratta dal sito del progetto [9]

2.1.2.4

Route Views

[10]

Route Views [10] è un progetto di Università dell’Oregon che è stato

originariamente concepito come uno strumento dedicato agli operatori di Internet per permettere loro di acquisire informazioni in tempo reale sul sistema di routing di Internet dal punto di vista di diverse dorsali e posizioni differenti.

Il progetto Route Views è stato originariamente motivato dall’interesse da parte degli operatori nel determinare il modo di operare del sistema di routing globale ma i dati raccolti si sono rivelati utili anche in molte altre ricerche ed ambiti di studio spesso in collaborazione con altri enti di ricerca come ad esempio CAIDA.

(19)

11

2.1.3

Portolan

Portolan utilizza metodi di analisi attivi come il traceroute. Per superare le limitazioni nella scoperta della totalità dei link e dei nodi esistenti, tipici dei progetti precedenti, in cui le analisi sono lanciate da un numero limitato di monitor fissi posizionati nel core della rete, Portolan sfrutta un paradigma innovativo che incrementa notevolmente il numero di monitor, spostandoli dal core della rete ai suoi bordi, li rende mobili e coordinati da un server.

Le misurazioni relative alla struttura di Internet ed alla sua topologia nei progetti precedentemente illustrati sono effettuate verticalmente:

con un approccio top-down ovvero dal core della rete verso l’esterno

con un approccio bottom-up ovvero dagli estremi della rete verso il suo centro

In Portolan l'innovativo approccio al problema di sondaggio della rete Internet adottato è sia di tipo verticale bottom-up sia di tipo orizzontale bottom-to-bottom, cioè tra gli utenti finali. Tutto ciò necessita di una completa rielaborazione del sistema di misura rispetto ai progetti precedenti.

Il metodo di raccolta dati ed interazione con i client utilizzato nel progetto Portolan [11] è definito crowdsourcing. Tale connotazione si concretizza nel proporre un’attività partecipativa ovvero la realizzazione libera e volontaria di un compito specifico: gli utenti sono invitati ad aderire al progetto installando un’applicazione sul proprio smartphone e permettendone l’esecuzione in background.

In cambio l’utente che accetta di partecipare ottiene l’accesso ad una vasta gamma di strumenti diagnostici di rete ed a strumenti di misurazione della copertura di campo.

Lo smartphone dell'utente diventa così il centro del sistema di misura agendo da monitor mobile e permettendo al server di Portolan di sondare la rete su scala locale ottenendo così dati molto dettagliati.

I risultati di questo metodo di analisi, eseguito da numerosi client, sono delle campagne di misura ben mirate ed esaurienti che possono essere analizzate al fine

(20)

12

di ottenere una mappa di Internet il più precisa possibile e generare mappe della copertura del segnale della rete cellulare.

2.2 Le misure di campo per reti cellulari

Negli ultimi anni le reti mobili hanno visto un enorme incremento del loro utilizzo da parte di milioni di utenti che sempre più sentono la necessità di avere costantemente a disposizione un accesso non cablato alla rete Internet (nel 2013 il 73,4% della popolazione mondiale connessa ha effettuato almeno un accesso al web tramite dispositivi mobili).

Essere a conoscenza della qualità del collegamento delle reti mobili sul territorio è di fondamentale importanza sia per gli utenti finali, che possono così scegliere l'operatore che fornisce la migliore copertura, sia per gli operatori di rete stessi, che possono utilizzare le mappe di copertura per migliorare il servizio offerto ai clienti con investimenti di risorse mirati.

Uno dei principali studi con l’obiettivo di generare una mappa della copertura della rete cellulare è Open Signal [12]. Nell’ambito di tale progetto, attivo dal 2010, l’approccio scelto per la misurazione capillare sul territorio dei valori della potenza del segnale è stato di tipo crowdsourcing: a causa della vastità delle aree in cui sono presenti le reti mobili da sondare appare vincente la scelta di affidare agli utenti stessi, sparsi sul territorio, il compito di effettuare le misurazioni necessarie.

Il Progetto Portolan utilizza analoghi metodi di osservazione e misura: i dati sono raccolti dagli smartphone dei volontari che partecipano al progetto per poi essere inviati al server.

In Figura 2.4 sono mostrati i risultati dei dati raccolti relativi alla qualità del segnale nell’area della città di Pisa.

(21)

13

Figura 2.4 – Rappresentazione delle misurazioni di segnale di campo nell’area della città di Pisa - ©Google 2014

Le modalità di campionamento per le misurazioni del segnale di campo sono due:

 attiva

 passiva

La modalità attiva esegue una misura del segnale della rete cellulare nel momento in cui l’utente avvia manualmente e volontariamente lo strumento di analisi tramite un’interazione diretta con l’applicazione (client) installata sul proprio smartphone.

La modalità passiva esegue una misurazione sfruttando una speciale funzione presente nei cellulari con sistema operativo Android [13] chiamata “Passive Provider”. Essa permette di conoscere la posizione GPS [14] dell’utente senza realmente avviare una misurazione della posizione. Le coordinate sono così ottenute dall’applicazione Portolan passivamente ovvero solo quando già altre applicazioni o servizi (es. Google Maps 5 ) ne hanno fatto richiesta, attivando il

ricevitore GPS.

Ciò permette di raccogliere campioni senza gravare ulteriormente sulle prestazioni dello smartphone ed evitando consumi di batteria nascosti in quanto il modulo GPS non si attiva mai all’insaputa dell’utente. Ogni campione GPS viene associato al

5 http://www.maps.google.it

(22)

14

relativo valore di potenza del segnale ed inviato al server. Infine, per evitare la produzione di informazioni ridondanti, la logica di esecuzione su smartphone genera un nuovo campione solo quando è rilevata una variazione nella posizione GPS del dispositivo e / o una modifica della potenza del segnale.

2.3 Architettura del sistema

A livello infrastrutturale il progetto Portolan utilizza due componenti fondamentali:

 un largo numero di client, ovvero i dispositivi di telefonia mobile (smartphone) degli utenti aderenti al progetto, che agiscono come monitor mobili della rete;

 un server centrale che gestisce le campagne di misura, coordina i client, colleziona i risultati e, dopo averli processati ed analizzati, li memorizza in opportuni database.

Una rappresentazione dell’architettura del progetto Portolan è disponibile in Figura

2.5

Figura 2.5 – Rappresentazione dell’architettura del progetto Portolan

Smartphone degli utenti (client)

(23)

15

2.3.1

Client

Per raggiungere gli obiettivi del progetto è indispensabile collezionare una grande quantità di informazioni. Ne consegue la necessità di coinvolgere un numero crescente di partecipanti ed eseguire numerose misurazioni [15].

Data la natura mobile degli strumenti coinvolti, è importante che l'applicazione client soddisfi i bisogni tipici di tali ambiti di lavoro ovvero:

 efficienza energetica;

 scalabilità in base alle caratteristiche hardware dello specifico terminale in uso;

 ottimizzazione del traffico dati in ingresso ed uscita dal terminale.

Nonostante tali limitazioni progettuali ed implementative devono comunque essere sempre pienamente garantite le funzionalità chiave del software:

 esecuzione di misurazioni autonome richieste dall'utente e presentazione dei risultati;

 partecipazione alle campagne di misura necessarie al progetto portando a termine i compiti assegnati;

 invio al server dei dati collezionati.

Al fine di completare una campagna di misura, ottenendo risultati significativi per la ricerca, ogni dispositivo mobile deve periodicamente notificare al server il suo stato operativo eseguendo un’attività di polling ovvero, ad intervalli regolari, deve inviare una richiesta al server per ottenere istruzioni relativamente alle prossime attività da compiere. Tali richieste contengono informazioni sulla posizione geografica e di rete dello smartphone come ad esempio le coordinate spaziali di latitudine e longitudine del dispositivo, l'indirizzo IP e l’ID della cella in cui sta operando [16].

2.3.2

Server

Nell'architettura di Portolan il server considera l’insieme degli smartphone come una rete di sensori mobili. L’agente umano, ovvero il team di ricercatori responsabili del

(24)

16

progetto, può selezionare i task da eseguire e quindi recuperare i risultati ottenendo un'esperienza d'uso analoga all'interazione con una sensor-network [17].

I compiti che spettano al server consistono nel:

 gestire i client ovvero i monitor mobili;

 gestire e supervisionare le campagne di misura lanciate;

collezionare i risultati, processarli e memorizzarli in opportuni database. I ricercatori possono imporre al server l'esecuzione di una nuova campagna di misurazione tramite un macro-task descrittivo. Il server scompone tale macro-task in vari micro-task che assegna ai client. La politica di assegnazione dei micro-task ad uno smartphone si basa sia sulla posizione geografica in cui si trova sia sulla sottorete in cui attualmente sta operando.

Tali informazioni sono ricavate dai dati ricevuti regolarmente dai dispositivi quando questi effettuano l’attività di polling.

Il server assegna quindi l’esecuzione di un nuovo task ad un client basandosi sullo stato di quest’ultimo e sulla presenza in coda di ulteriori operazioni da espletare.

2.4 Servizi per l’utente

Il paradigma del crowdsourcing prevede che i volontari che aderiscono al progetto ne traggano benefici sotto varie forme come ad esempio servizi accessori o informazioni utili.

Nel caso del software Portolan sono stati inclusi vari strumenti avanzati di analisi della rete che l’utente può lanciare in autonomia (Figura 2.6). I risultati dell’esecuzione di questi strumenti forniscono all’utilizzatore preziose informazioni sulla qualità della rete in uso e sul proprio ISP.

(25)

17

Figura 2.6 – Alcuni dei servizi per l’utente disponibili in Portolan Screenshot dall’applicazione

Paris traceroute con Multipath Detection Algorithm

Questo strumento avvia l’esecuzione di un traceroute con l'algoritmo Paris traceroute che è in grado di rilevare la presenza di load balancers nel percorso attraversato. Opzionalmente si può utilizzare il Multipath Detection Algorithm [18,19], un algoritmo che permette di scoprire tutti i percorsi disponibili tra la sorgente e la destinazione.

ISP Traceroute

Questo strumento esegue uno speciale traceroute che si differenzia da quello in versione classica in quanto non mostra soltanto le interfacce IP interessate dal percorso dei dati ma permette di ottenere informazioni sugli ISP attraversati.

Ping

Ping (Packet internet grouper) [20] è un'utility che fornisce informazioni sul tempo necessario, espresso in millisecondi, affinché uno o più pacchetti dati raggiungano

(26)

18

un dispositivo di rete e tornino indietro all'origine. L’utilizzo pratico di questo algoritmo è la verifica della presenza e della connettività di un altro computer connesso in rete, valutandone le latenze di trasmissione. Portolan permette all’utente di eseguire un ping verso un indirizzo IP oppure verso un nome di dominio prescelto.

Wi-Fi scanner

Grazie a questo strumento l’utente può eseguire la scansione di tutte le reti LAN senza fili disponibili nell’area di utilizzo dello smartphone e visualizzarne un elenco. È possibile escludere dalla scansione le reti non libere ovvero quelle che richiedono un’autenticazione con password.

Stima del Maximum Throughput

Questa funzionalità di Portolan permette all’utilizzatore di stimare il throughput massimo che può essere raggiunto attraverso un percorso Internet i cui estremi sono il proprio smartphone ed il server di Portolan.

La stima viene effettuata eseguendo un insieme predefinito di tentativi di connessione: 20 tentativi in download e 20 tentativi in upload. Al termine delle misurazioni l’utente, tramite un grafico, ottiene informazioni utili riguardo la velocità ottenuta in ogni tentativo [21].

BitTorrent test

Spesso gli ISP decidono di limitare il traffico dati degli utenti per motivazioni economiche e per evitare la saturazione delle proprie reti. Uno dei servizi solitamente soggetti a questo tipo di restrizioni è BitTorrent [22].

Il test offerto da Portolan emula il protocollo BitTorrent e stima le prestazioni di download e di upload dei relativi pacchetti confrontandoli con le prestazioni che si ottengono all’invio ed alla ricezione di pacchetti di dati standard, proponendo all’utilizzatore i risultati ottenuti mediante una chiara forma grafica.

Copertura GSM / UMTS

Utilizzando questo strumento è possibile verificare la potenza del segnale radio GSM / UMTS ed ottenere informazioni riguardo la qualità del segnale del proprio

(27)

19

operatore telefonico. Inoltre è possibile monitorare la copertura del segnale percorrendo un tragitto, combinando le informazioni ottenute dalle proprie misurazioni a quelle effettuate dagli altri utiilizzatori di Portolan e sovrapponendole alle mappe stradali e satellitari fornite dal servizio Google Maps.

2.5 Il database

Le informazioni fornite al server tramite il polling, le misurazioni automatiche e le misurazioni lanciate dall’utente sono analizzate, classificate e conservate in un apposito database.

Per la realizzazione di questa tesi sono state utilizzate due tabelle presenti nel database del progetto: la tabella “Polling_history”, che raccoglie le informazioni ricavate dalle attività di polling dei client verso il server, e la tabella “Net_stats”, che raccoglie le statistiche di utilizzo della rete da parte dei dispositivi.

2.5.1

La tabella “Polling_history”

All'interno della tabella “Polling_history” esiste una entry per ogni azione di polling effettuata da ciascun client.

Le informazioni conservate sono:

Timestamp

Fornisce l'informazione della data e dell'ora in cui l’attività di polling è stata eseguita.

ID

Durante il processo di registrazione necessario ad ogni utente per prendere parte al progetto Portolan, ogni dispositivo ottiene un ID generato in maniera pseudo-casuale, che viene successivamente utilizzato per identificare il singolo smartphone oppure per potervi interagire in modo selettivo. Il campo ID

(28)

20

memorizza il codice alfanumerico assegnato al client. Tale codice non fornisce alcuna informazione tale da permettere di risalire all'identità fisica del proprietario o all'utilizzatore del dispositivo, garantendo quindi il completo anonimato.

Network type

I dispositivi mobili hanno accesso alla rete Internet, indispensabile alla

trasmissione dei dati, utilizzando il segnale radio fornito da un’infrastruttura di antenne RBS – Radio Base Station [23] oppure utilizzando il segnale radio erogato da una rete di access-point Wi-Fi. Il campo Network type riporta l'informazione del tipo di infrastruttura di accesso in uso da parte del client. I valori possibili sono quindi “mobile” oppure “wifi”.

Connection type

Un telefono cellulare può utilizzare diversi tipi di tecnologie di trasmissione dei dati tramite rete cellulare. L'informazione contenuta in questo campo permette di conoscere se il client fa uso di tecnologia di seconda generazione (2G) oppure di terza generazione (3G). Esiste un terzo possibile stato che ha valore “NONE” utilizzato nel caso in cui il terminale si stia connettendo alla rete Internet utilizzando un accesso Wi-Fi.

Latitudine e longitudine

Questo campo conserva le coordinate geospaziali, espresse in gradi, in cui si trova il dispositivo al momento dell’attività di polling. Nel caso in cui il modulo GPS del dispositivo non sia disponibile ed attivo, il contenuto di questo campo assume il valore di default “91” per la latitudine e “181” per la longitudine.

Country code

Ad ogni nazione è assegnato un codice univoco seguendo il codice ISO 3166-1

alpha-2 [24]. Il valore contenuto in questo campo esprime perciò la nazione in

cui si trova lo smartphone.

Cell ID

Questo campo contiene tre informazioni:

- il Cell ID, un codice univoco identificativo della RBS – Radio Base Station a cui il modulo radiomobile del dispositivo è agganciato;

(29)

21

Station a cui appartiene quella in uso;

- il PSC – Primary Scambling Code, codice utilizzato nella modulazione della frequenza del segnale nell'ambito della tecnologia radiomobile di terza generazione (3G). Questo campo ha valore “-1” se la tecnologia in uso è di seconda generazione (2G).

Operatore

Ad ogni operatore telefonico è assegnato un codice alfanumerico. Il valore contenuto in questo campo esprime perciò la compagnia fornitrice dei servizi telefonici all’utente.

IP

In questo campo è memorizzato l'indirizzo IP pubblico in uso al device.

AS number

Questo campo contiene l'identificativo dell'AS a cui appartiene l'indirizzo IP pubblico assegnato al device.

Last operation

In questo campo è indicata l'ultima funzionalità che il server ha comandato di eseguire al client.

Portolan version

Questo campo indica la versione del software Portolan installato sullo smartphone.

2.5.2

La tabella “Net_stats”

All'interno della tabella “Net_stats” ogni entry identifica l’utilizzo di un tipo di tecnologia di accesso alla rete cellulare, per un certo intervallo di tempo, nel corso della giornata.

(30)

22

ID

Il campo ID memorizza il codice alfanumerico assegnato al client. Tale codice non fornisce alcuna informazione tale da permettere di risalire all'identità fisica del proprietario o all'utilizzatore del dispositivo, garantendo quindi il completo anonimato.

Net

In questo campo è contenuto l’identificatore della tecnologia utilizzata dall’utente. I valori possibili per questo campo sono:

 WI-FI  LTE  HSPA  EDGE  UMTS  UNKNOWN  GPRS  HSDPA  OFFLINE  HSPA  Date

Fornisce l'informazione della data.

Start

Questo campo contiene l’orario in cui il dispositivo mobile dell’utente ha iniziato ad utilizzare la tecnologia di accesso.

Finish

Questo campo contiene l’orario in cui il dispositivo mobile dell’utente ha terminato l’utilizzo della tecnologia di accesso.

Bytes_sent

In questo campo sono memorizzati i byte inviati dall’applicazione Portolan installata sul dispositivo nel periodo di tempo che ha utilizzato una data tecnologia di accesso.

(31)

23

Bytes_received

In questo campo sono memorizzati i byte ricevuti dall’applicazione Portolan installata sul dispositivo nel periodo di tempo che ha utilizzato una data tecnologia di accesso.

(32)

24

3 Gli strumenti grafici

I dati raccolti grazie al progetto Portolan racchiudono una grande quantità di informazioni. Di conseguenza la loro analisi genera risultati che, per mole e complessità, sono tali da poter disorientare l’utente finale. Si è scelto quindi di fornirne opportune rappresentazioni grafiche in quanto di più semplice ed immediata comprensione.

In questo capitolo è presentato il lavoro di ricerca, studio e valutazione che ha portato alla scelta dello strumento grafico ottimale da utilizzare.

3.1 Ricerca di uno strumento grafico

La ricerca della soluzione ottimale alla realizzazione di rappresentazioni grafiche dei dati, per mezzo di interfacce interattive idonee all’ambito di lavoro Portolan, ha reso necessario lo studio e la valutazione di molte tipologie di architetture, Application Programming Interface (API) e strumenti grafici.

Di seguito sono descritte le principali soluzioni tecniche prese in esame, evidenziandone le qualità positive e negative emerse.

3.1.1 Google Charts [25]

Google Charts [25] è un framework creato per convertire tabelle di dati in grafici.

Questo strumento, sfruttando le potenzialità del linguaggio HyperText Markup

Language 5 (HTML5) [26] e della tecnologia Scalable Vector Graphics (SVG) [27],

permette di creare grafici e diagrammi di grande impatto visivo, utilizzando un servizio remoto disponibile sui server gestiti da Google. I tipi e modelli a

(33)

25

disposizione dello sviluppatore sono molto vari come ad esempio line chart, bar chart, pie chart, grafici con mappe geografiche, scatter chart e diagrammi di Venn. Alcuni esempi delle tipologie di grafici realizzabili utilizzando Google Charts sono mostrati in Figura 3.1, in Figura 3.2 ed in Figura 3.3.

Figura 3.1 - Combo Chart, Line Chart e Bar chart realizzabili utilizzando Google Charts. Esempi tratti dal sito del progetto [25] - ©Google, 2014

Figura 3.2 – Pie Chart, Scatter Chart e Gauge realizzabili utilizzando Google Charts. Esempi tratti dal sito del progetto [25] - ©Google, 2014

Figura 3.3 – Geo Chart, Table e Treemap realizzabili utilizzando Google Charts. Esempi estratti dal sito del progetto [25] - ©Google, 2014

(34)

26

Se le necessità richiedessero un modello differente rispetto a quelli proposti, utilizzando lo strumento Google Charts Editor, allo sviluppatore è permesso di variare a piacere i parametri di configurazione ed ottenere nuovi modelli e rappresentazioni.

I grafici creati tramite Google Charts sono di fatto delle immagini in formato

Portable Network Graphics (PNG) [28] che possono essere scaricate in locale

oppure recuperate quando necessario tramite una connessione Internet.

L’utilizzo di Google Charts è agevolato dalla possibilità di sfruttare le API offerte e generare un Uniform Resource Locator (URL) [29] univoco che permette di identificare l’immagine del grafico richiesto come una risorsa raggiungibile all’interno della rete Internet. Nel dettaglio, all’esecuzione di una richiesta di tipo

HTTP GET [30] verso tale URL, il grafico è generato dinamicamente e la sua

immagine può essere così recuperata ed impiegata dove necessario.

Analizzando un qualsiasi URL generato dallo strumento Google Charts si può notare come esso contenga tutte le informazioni indispensabili per la creazione dello schema grafico. Ad esempio, tra i vari parametri, sono presenti la dimensione da assegnare al grafico, i valori degli elementi, i nomi degli stessi ed inoltre i colori, gli stili e varie preferenze.

Di conseguenza impostando opportunamente i campi dell’URL con i valori desiderati, il servizio Google Charts fornisce, in maniera immediata e dinamica, una rappresentazione grafica personalizzata di tutte le informazioni trasmesse.

Questa soluzione risulta molto pratica nel caso che sia richiesto di generare rappresentazioni non troppo complesse, viceversa si incorre nella limitazione tecnica per cui, essendo la lunghezza massima di un URL fissata a 2048 caratteri, non è possibile trasmettere un set di dati ed impostazioni che contenga un numero elevato di informazioni.

Per superare questa limitazione i valori da rappresentare possono essere memorizzati all’interno di vari tipi di sorgenti, come ad esempio le Google Fusion

Tables [31], al fine di renderli disponibili allo strumento Google Charts. Così

facendo si ottiene anche un ulteriore vantaggio: nel caso in cui i dati di origine subiscano delle modifiche o aggiornamenti, la URL dell’immagine del grafico precedentemente creata non deve essere modificata ma viene rigenerata

(35)

27

correttamente, in maniera automatica, nel momento stesso in cui un sito web oppure un’applicazione tenta nuovamente di visualizzarla, recuperandola dalla rete. Per la creazione dei grafici in Google Charts è utilizzata la tecnologia HTML5/SVG perciò questo strumento possiede un’ampia compatibilità tra i browser internet (Firefox, Chrome, Opera, Internet Explorer…) e portabilità tra le piattaforme (computer desktop, iPhone, iPad, Android…). Per gli utenti finali esiste quindi il vantaggio che, per riuscire a visualizzare i grafici proposti, non sussiste la necessità di installare alcun plugin o software aggiuntivi bensì è sufficiente l’impiego di un browser, solitamente già installato sul dispositivo.

3.1.2 Charts4j [32]

Charts4j [32] è un set di API realizzato in linguaggio JAVA [33], scalabile,

computazionalmente efficiente e distribuito liberamente con licenza MIT [34]. Questa libreria è realizzata completamente in linguaggio JAVA, quindi

perfettamente compatibile con il sistema operativo Android, con lo scopo di permettere agli sviluppatori di interagire in maniera pratica con gli strumenti di Google Charts, utilizzando funzioni semplici ed intuitive, senza il bisogno di integrare librerie grafiche speciali. I modelli realizzabili sono perciò quelli messi a disposizione da Google Charts.

Alcuni esempi di grafici ottenuti utilizzando la libreria Charts4j sono i grafici a torta (Figura 3.4), i grafici a barre sovrapposte (Figura 3.5) ed i grafici a barre affiancate

(Figura 3.6).

(36)

28

Figura 3.5 - Esempio di grafico a barre sovrapposte realizzato con Charts4j

Figura 3.6 - Esempio di grafico a barre affiancate realizzato con Charts4j

Nel dettaglio le funzioni rese disponibili da Charts4j assolvono al compito della creazione in maniera semplice e dinamica dell’URL necessario ad interagire con i servizi di Google Charts.

Di conseguenza, una volta ottenuto l’URL come output, configurato in base ai parametri impostati nell’applicazione a tempo di esecuzione, lo si può utilizzare per eseguire una richiesta di tipo HTTP GET [7] al fine di recuperare dal servizio Google Charts la risorsa grafica desiderata e presentarla all’utente.

(37)

29

La risorsa così acquisita è a tutti gli effetti un’immagine statica, in formato PNG. Nell’ottica di permettere all’utilizzatore dell’applicazione la possibilità di interagire con il grafico mostrato sul display del dispositivo, ad esempio fornendo nuove e più dettagliate informazioni oppure presentando nuovi grafici, l’utilizzo di un’immagine statica rende poco efficace e complessa la corretta identificazione degli eventi generati dall’utente che, tipicamente, nei moderni dispositivi mobili, si realizzano mediante dei tocchi delle dita sul display.

Inoltre la presentazione di ogni grafico comporta per l’utente l’impiego di una risorsa spesso limitata e costosa quale è la connessione dati, indispensabile al recupero dell’immagine attraverso la rete Internet.

3.1.3 AChartEngine [35]

AChartEngine [35] è una libreria per lo sviluppo di software in ambiente Android,

distribuita con licenza d’uso Apache License 2.0 [36].

AChartEngine supporta una gran varietà di grafici e tipologie di rappresentazioni inoltre, essendo stato sviluppata appositamente per Android, tra le API disponibili è presente anche un set di funzioni utili alle tipiche attività presenti in un’applicazione dotata di interfaccia grafica ovvero la generazione di nuove schermate e la cattura di eventi scatenati dall’interazione dell’utente con il dispositivo.

Il progetto di AChartEngine ha avuto inizio nel 2009. La prima release (versione 0.1.0), risalente al 16 Febbraio 2009, permetteva la realizzazione grafica di un limitato numero di modelli come Line chart, Area chart, Scatter chart, Time chart e Bar chart.

Nel corso degli anni gli sviluppatori hanno rilasciato nuove versioni dello strumento che aggiungevano funzioni e servizi mantenendo però la retrocompatibilità con tutte le versioni di Android precedenti. AChartEngine ha infatti il pregio di essere utilizzabile su sistema operativo Android a partire dalla versione 1.6 “Donut”.

L’ultima release di AChartEngine (versione 1.1.0) è stata distribuita il 15 Maggio 2013 ed aggiunge nuovi modelli e rappresentazioni come la possibilità di inserire

(38)

30

testo personalizzato ai grafici, la possibilità di inclinare a piacere i grafici a torta, l’utilizzo di sfumature di colore, il supporto alla rappresentazione di testo su più righe e molti altri miglioramenti e correzioni di bug segnalati dagli utilizzatori.

Alcuni esempi di grafici realizzabili utilizzando la libreria AChartEngine sono i Line chart (Figura 3.7) ed i Bar chart (Figura 3.8).

Figura 3.7 - Esempio di grafico lineare realizzato con AChartEngine

(39)

31

Nonostante il discreto lavoro svolto dagli sviluppatori di AChartEngine, questo strumento appare ancora piuttosto acerbo e primitivo. L’interesse della comunità di sviluppatori Android nei suoi confronti è abbastanza limitato e gli aggiornamenti, volti alla correzione degli errori e dei bug segnalati, sono piuttosto rari.

Infine un aspetto importante da considerare è il supporto tecnico disponibile (documentazione tecnica, tutorial, esempi, forum…) che nel caso del progetto AChartEngine appare insufficiente a garantirne un impiego con esito proficuo nell’ambito di un sistema complesso come Portolan.

3.1.4 AndroidPlot [37]

AndroidPlot [37] è una API per Android, distribuita con licenza d’uso Apache License 2.0 [36], che consente la creazione di grafici statici e dinamici.

AndroidPlot supporta molti tipi di grafici e tipologie di rappresentazioni. Il suo sviluppo è stato concentrato sulla sola piattaforma Android perciò risulta estremamente ottimizzato e, tra le API disponibili, fornisce anche un set di funzioni utili alle tipiche attività delle applicazioni dotate di interfaccia grafica ovvero la generazione di nuove schermate e la cattura di eventi scatenati dall’interazione dell’utente con il dispositivo.

Alcuni esempi di grafici realizzabili utilizzando la libreria AndroidPlot sono i grafici a barre (Figura 3.9), i grafici lineari con effetti di ombreggiatura e sfumature di colore

(Figura 3.10) ed evoluti grafici a torta con avanzate possibilità di personalizzazione

(Figura 3.11).

(40)

32

Figura 3.10 - Grafico lineare con effetti di ombreggiatura realizzato con AndroidPlot

Figura 3.11 - Grafico a torta realizzato con AndroidPlot

Uno dei punti di forza di questa libreria è l’ampia retrocompatibiltà di versioni di sistema operativo infatti è utilizzabile sia su dispositivi dotati di Android versione 1.6 “Donut”, sia su tutti i dispositivi più recenti. Essendo Portolan un progetto crowdsourcing, soddisfare la possibilità di essere funzionante su una gamma di dispositivi più ampia possibile risulta di estrema importanza.

(41)

33

Inoltre il progetto AndroidPlot può vantare una dettagliata documentazione e tutorial nonché una notevole comunità di sviluppo la quale offre supporto, tramite dei forum dedicati, agli sviluppatori durante la scrittura del codice delle proprie applicazioni.

3.2 Valutazione conclusiva degli strumenti grafici

L’ambito d’utilizzo mobile dell’applicazione Portolan per sistemi operativi Android deve soddisfare particolari vincoli come la modesta capacità di calcolo, di spazio di archiviazione ed una limitata autonomia energetica dei dispositivi sui quali è installata. Inoltre, essendo Portolan un progetto crowdsourcing, è importante garantirne la compatibilità con la maggior parte dei dispositivi esistenti in modo da favorirne la massima diffusione.

A fronte di tali considerazioni appare positivo l’impiego degli strumenti offerti da Google Charts, in modo tale da non dover includere librerie aggiuntive e sollevare il device dal compito di eseguire le computazioni necessarie alla creazione dei grafici desiderati.

Permane tuttavia la necessità di generare un URL apposito che determini le informazioni ed i modelli da rappresentare. Nell’ottica di permettere all’utente finale di Portolan ampia libertà nella scelta sia della quantità di dati da graficare, ad esempio in base a criteri come intervalli temporali, sia della tipologia, ad esempio in base a criteri parametrici, il processo di creazione dell’URL può risultare complesso da realizzare dinamicamente, a tempo di esecuzione dell’applicazione.

L’impiego di Charts4j permette di ottenere molti dei vantaggi offerti da Google Charts, compresa l’elevata compatibilità con i device, mettendo a disposizione funzioni semplici ed intuitive. I grafici possono così essere facilmente impostati e creati anche a tempo di esecuzione.

L’impiego di un servizio remoto per la generazione della risorsa grafica comporta tuttavia delle limitazioni da non sottovalutare. Prima fra tutte la disponibilità: nel caso che i server che forniscono il servizio di realizzazione dei modelli grafici non

(42)

34

siano momentaneamente raggiungibili, le funzionalità di Portolan, direttamente dipendenti, non sarebbero utilizzabili.

Inoltre la tecnica di trasmettere al servizio grafico le impostazioni ed i dati, inserendoli all’interno di un URL, oltre ad essere poco pratica, a causa della limitata lunghezza massima possibile della stringa (2048 caratteri), pone anche problemi di sicurezza in quanto comporta la trasmissione di dati sensibili, estratti dal database di Portolan, tramite un canale non crittografato, quindi non sicuro, verso un servizio esterno gestito da terze parti.

Riguardo la realizzazione di ogni grafico, essa avviene tramite la creazione in remoto di un’immagine in formato PNG perciò il suo recupero, tramite la rete Internet, comporta per l’utente l’impiego di una risorsa spesso modesta e costosa quale è la connessione dati. Un ulteriore aspetto negativo è legato al fatto che l’utilizzo di un’immagine, in quanto risorsa statica, esclude un suo pratico utilizzo all’interno di un’applicazione Android, ad esempio nel caso in cui sia necessario implementare funzionalità avanzate come le interazioni da parte dell’utente, tramite tocchi sul display del device.

Per questi motivi la ricerca della soluzione più adatta alla creazione di grafici e diagrammi si è spostata verso strumenti che non utilizzino servizi remoti gestiti da terze parti, maggiormente integrati col sistema operativo per il quale è stato realizzato Portolan, tali che offrano all’utente maggiori possibilità di interazione, minore dispendio di risorse ed, allo sviluppatore, una minore complessità di realizzazione del software.

Tramite la libreria realizzata dal progetto AChartEngine la creazione dei grafici avviene localmente, sfruttando le capacità di calcolo dello stesso dispositivo mobile. AChartEngine, essendo stato sviluppato appositamente per Android, dispone anche di un set di funzioni utili alle tipiche attività presenti in un’applicazione dotata di interfaccia grafica, permettendo di fornire una migliore esperienza d’uso all’utilizzatore dell’applicazione.

I motivi per cui non è stato adottato questo strumento grafico sono da ricercarsi sia nella scarsa documentazione tecnica disponibile, sia nel fatto che in Portolan è già stata integrata una libreria con funzionalità simili perciò, l’utilizzo di questa ulteriore ed analoga libreria, avrebbe creato ridondanza inutile e controproducente.

(43)

35

La libreria adottata per la realizzazione di questa tesi è stata quindi AndroidPlot poiché risultata soddisfacente sotto tutti gli aspetti richiesti di ampia compatibilità, di efficienza computazionale e di sicurezza. Inoltre, come già detto, AndroidPlot è stata impiegata anche per la rappresentazione delle informazioni statistiche per la funzionalità Maximum Throughput Estimator di Portolan quindi risulta già inclusa tra i set di API dell’applicazione; al fine di preservare le ridotte richieste di spazio di archiviazione del software, essendo quest’ultimo, nell’ambito di programmazione mobile, una risorsa limitata, è apparsa una scelta efficiente riutilizzare le stesse librerie già presenti piuttosto che includerne delle ulteriori, analoghe per caratteristiche e funzionalità.

(44)

36

4 Struttura del sistema

Al fine di realizzare dei modelli e dei grafici che supportino l’utente nell’analisi dei dati raccolti nell’ambito del progetto Portolan, è stato realizzato il framework oggetto di questa tesi.

In questo capitolo è descritta la struttura del sistema, l’architettura delle componenti ed il flusso delle informazioni tra i moduli creati.

4.1 Descrizione complessiva del sistema

L’architettura del sistema si può sintetizzare in due componenti fondamentali: un client ed un server interagenti, come mostrato in Figura 4.1.

Figura 4.1 – Le componenti fondamentali dell’architettura

L’applicazione client risiede sul dispositivo mobile e si occupa di:

 interagire con l’utente, raccogliendo gli input forniti, e restituire i risultati

 interagire con il server remoto, inviando le richieste delle informazioni desiderate dall’utente e ricevendo i dati da elaborare

 elaborare i dati ricevuti dal server

A seconda dei dati richiesti dall’utente il server remoto coinvolto nell’interazione è il server del progetto Portolan oppure è il server del progetto OpenCellID [38].

In entrambi i casi il comportamento del server remoto è il medesimo e consiste nel:

 ricevere le richieste da parte dell’applicazione client

 estrarre i dati richiesti dal database corretto

 restituire le informazioni desiderate all’applicazione client

(45)

37

4.2 Architettura del client

Per permettere all’applicazione client di eseguire le operazioni necessarie ad interagire con l’utente e con il server, sono stati progettati vari moduli logici:

 modulo “Graphical User Interface”

 modulo principale “Main”

 modulo “Get_data”

 modulo “Chart”

 modulo “JSON_parser”

I moduli coinvolti e le azioni da essi intraprese dipendono dalle richieste effettuate dall’utente.

In Figura 4.2 è possibile osservare una rappresentazione grafica delle logiche di interazione tra i moduli dell’applicazione client.

Figura 4.2 - Rappresentazione delle logiche di interazione tra i moduli dell’applicazione client

Graphical User Interface

Main

Get_data JSON_parser Chart

Server remoto

(46)

38

4.2.1

Modulo “Graphical User Interface”

Il modulo Graphical User Interface è una semplice interfaccia grafica tramite la quale l’utente può interagire con l’applicazione ed avviare le azioni richieste (Figura

4.3).

Figura 4.3 – Interfaccia grafica iniziale dell’applicazione client

Essa propone all’utente la scelta delle possibili informazioni da visualizzare:

 statistiche relative alle tecnologie utilizzate per eseguire le attività di polling da parte dei terminali aderenti al progetto Portolan;

 statistiche relative al numero di utenti che si sono agganciati ad una data cella;

 statistiche relative alle celle agganciate da un utente;

 ubicazione sul territorio e caratteristiche tecniche di una cella e delle dieci celle più prossime ad essa.

Sono inoltre state implementate varianti dei grafici precedentemente elencati con lo scopo di integrarli all’interno dell’applicazione Portolan:

(47)

39

 statistiche di utilizzo delle tecnologie cellulari da parte dell’utente;

 ubicazione sul territorio e caratteristiche tecniche della cella attualmente in uso e di tutte le celle il cui segnale radio riesce ad essere percepito dal terminale.

L’utente può comandare l’operazione da compiere tramite il tocco dell’area dello schermo su cui è rappresentato il pulsante associato all’azione desiderata.

4.2.2

Modulo principale “Main”

Il modulo logico principale “Main” si occupa di gestire ed eseguire le azioni che sono state richieste dall’utente tramite la “Graphical User Interface”. In base al tipo di elaborazione necessaria esso mostra, sul display, dei campi da compilare così che l’utente, inserendo i parametri voluti, possa raffinare la richiesta.

I campi da compilare possono essere relativi ai seguenti parametri:

 un intervallo di date, nel caso in cui siano stati richiesti grafici relativi alle statistiche di polling (Figura 4.4)

 un intervallo di date e l’ID di una cella, nel caso in cui siano stati richiesti grafici relativi alle statistiche di connettività di una cella (Figura 4.5)

 un intervallo di date e l’ID di un utente, nel caso in cui siano stati richiesti grafici relativi alle statistiche di utilizzo delle celle radio da parte di un utente (Figura 4.6)

 i dati identificativi di una cella, nel caso in cui sia stato richiesto il disegno della mappa della posizione sul territorio di una cella (Figura 4.7)

 un intervallo di date, nel caso siano stati richiesti grafici relativi alle statistiche di utilizzo delle tecnologie radio per il terminale su cui è installata l’applicazione (Figura 4.4)

Riferimenti

Documenti correlati

Per Kelsen la scienza del diritto può rivolgere la sua atten- zione o alle scelte effettivamente operate dagli interpreti autorizzati a produrre diritto (ed allora si

Ogni giorno pubblichiamo tre file, intorno alle 1730, dove i principali indicatori (tamponi, casi positivi, ospedalizzazione e terapie intensive) sono presentati

2S: CAPITOLATO D’APPALTO ED ELENCO PREZZI PER LA COSTRUZIONE DI

I dati quantitativi estratti dalle linee di fratturazione di ciascun campione sono stati successivamente utilizzati per costruire degli istogrammi; in particolare

• parziale, se esistono istanze della generalizzazione che non sono istanze di nessuna specializzazione (esempio: entità studente, specializzata in laureato ed erasmus). •

Copyright 2020® PoliS-Lombardia - È vietata ogni riproduzione, anche parziale, non autorizzata.. DATI ED ELABORAZIONI SU

Di quest'ultima vengono indicati il numero degli sportelli operativi, il numero dei comuni dove è presente almeno uno sportello bancario ed infine il numero delle aziende bancarie

•i tempi delle P e delle S vengono poi trasferiti in un foglio di calcolo riportando anche la distanza foro-piastra (onde P) e foro-trave (onde S). •considerato che la