Table Of ContentAlma Mater Studiorum Universita` di Bologna
·
SCUOLA DI SCIENZE
Corso di Laurea Magistrale in Informatica
STUDIO ED IMPLEMENTAZIONE DI
UN ALGORITMO PER LA GESTIONE
DELL’HANDOVER IN AMBIENTE
ANDROID
Relatore: Presentata da:
Chiar.mo Prof. Luca Milioli
Vittorio Ghini
Sessione III
Anno Accademico 2013/2014
Al professore Ghini per avermi dato questa opportunit`a
Alla mia famiglia, per il supporto e la pazienza
Ad Alessandra, per tutto il resto
”The question of whether a computer can think is no more
interesting than the question of whether a submarine can
swim.”
Edsger W. Dijkstra
(tratto da ”The threats to computing science” del 1984)
Introduzione
La telefonia, inventata nella prima meta` dell’ottocento `e considerata una
delle pietre miliari dello sviluppo della nostra societ`a. La possibilita` di co-
municare con persone che sono molto distanti da noi ha dato vita a nuovi
fenomeni sociali e soprattutto tecnologici. Conseguentemente alla sua nasci-
ta, il progresso ha portato alla realizzazione di strumenti sempre piu` evolu-
ti, arrivando ad una svolta con la telefonia mobile, l’antenata degli odierni
smartphone. Questi ultimi fondono le funzionalita` di un computer con la
semplicita` di utilizzo di un normale telefono cellulare, offrendo quindi la pos-
sibilita`diconnettersiatecnologiediaccessodiverseenonpiu` soloallecomuni
celle telefoniche GSM. Lo sviluppo tecnologico ha quindi portato il concetto
di connettivita` anche su questi dispositivi, fino ad arrivare al giorno d’oggi
in cui la sfida, che si presta a molteplici ambiti di utilizzo, `e quella di fornire
continuit`a di connessione e quindi dei servizi basati su di essa.
Atalpropositoilprocessoattoarisolveretaleproblema`echiamatohandover
e deve essere in grado di gestire l’eterogeneit`a delle diverse tipologie di rete
a cui un dispositivo pu`o connettersi. Tale sfida si presenta molto complessa,
vi sono attualmente molte soluzioni in fase di sviluppo che pero` non hanno
ancora trovato un riscontro talmente positivo da essere riportate sui disposi-
tivi in commercio. Inoltre tali soluzioni sono orientate, per facilita` di studio,
a tecnologie poco diffuse come WiMax. Proprio per questi ultimi aspetti
si `e deciso di progettare ed implementare una soluzione che dia una buona
base di partenza per risolvere tale problema in ambiente Android, affinch´e
si possa fornire uno strumento in grado di gestire il processo di handover su
i
ii INTRODUZIONE
dispositivi estremamente diffusi sul mercato tecnologico globale, in partico-
lare modo, a qualsiasi dispositivo mobile appartenente a questa categoria,
indipendentemente dalle specifiche tecniche.
Con questa tesi si vuole, prima di tutto, raccontare il processo di ana-
lisi iniziale descrivendo lo scenario in cui si propone tale soluzione, parten-
do quindi dal Capitolo 1. Successivamente nel Capitolo 2, si entra piu` nel
dettaglio descrivendo gli obbiettivi del progetto, anticipando ed analizzan-
do brevemente gli aspetti piu` importanti della soluzione proposta, nonch´e
ponendo l’attenzione sulle tecnologie attualmente discusse nello stato del-
l’arte. Prima di considerare gli aspetti progettuali ed implementativi, nel
Capitolo 3, si analizzano gli strumenti e le tecnologie utilizzati per sviluppa-
re l’applicazione. Si passa poi alla discussione delle fase di progettazione ed
implementazione, nei Capitoli 4 e 5, dove sono presentati dapprima gli algo-
ritmi dal punto di vista teorico e successivamente gli aspetti implementativi
piu` importanti, ponendo l’attenzione sulle problematiche scaturite durante
la scrittura vera e propria dell’applicazione. Quest’ultima viene presentata
nel Capitolo 6, evidenziando le funzionalita` messe a disposizione dell’utente.
L’elaborato prosegue poi, con un’analisi dei risultati ottenuti dalla soluzione
proposta, considerando inoltre qual’`e il contributo offerto rispetto a quanto
presente nello stato dell’arte attuale, rispettivamente nei Capitoli 7 e 8.
Infine si conclude con una visione d’insieme del lavoro svolto, ponendo l’at-
tenzione su quali possono essere gli sviluppi futuri.
Indice
Introduzione i
1 Scenario 1
1.1 Lato client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Lato server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Campi di utilizzo . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Vita quotidiana . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2 Internet of things . . . . . . . . . . . . . . . . . . . . . 6
1.3.3 Ambito medico . . . . . . . . . . . . . . . . . . . . . . 7
2 Obbiettivo del progetto 9
2.1 Lato client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Lato server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Stato dell’arte . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 MIH - Media Indipendent Handover . . . . . . . . . . . 31
2.3.2 Esempio nel mondo reale: integrazione tra WLAN e
WiMax. . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.3 Preconfigurazione dell’indirizzo IP e preautenticazione 37
2.3.4 Problematiche irrisolte . . . . . . . . . . . . . . . . . . 39
2.3.5 Conclusioni sullo stato dell’arte . . . . . . . . . . . . . 41
2.4 Contributo del lavoro . . . . . . . . . . . . . . . . . . . . . . . 42
3 Strumenti e tecnologie 45
3.1 Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
iii
iv INTRODUZIONE
3.2 Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.1 ADT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.2 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.2.3 RootTools e SupportLibrary . . . . . . . . . . . . . . . 62
3.3 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4 SQLite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5 RootToolKit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.5.1 L’applicazione SuperSu . . . . . . . . . . . . . . . . . . 68
3.6 Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6.1 Scansioni Wi-Fi in Android . . . . . . . . . . . . . . . 75
3.7 Connessione dati del provider telefonico . . . . . . . . . . . . . 76
3.7.1 GSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.7.2 GPRS . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.7.3 UMTS . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.7.4 LTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.7.5 HSPA e HSPDA . . . . . . . . . . . . . . . . . . . . . 87
3.8 GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4 Progettazione 93
4.1 Lato client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.1.1 Gestione del file build.prop . . . . . . . . . . . . . . . . 97
4.1.2 Progettazione dell’interfaccia utente . . . . . . . . . . . 98
4.1.3 Gestione delle fasi di vita di un activity . . . . . . . . . 99
4.1.4 Servizi . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.1.5 Broadcast Receivers ed Intent Broadcast . . . . . . . . 102
4.2 Lato server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.2.1 Base di dati . . . . . . . . . . . . . . . . . . . . . . . . 103
4.2.2 Oggetti WifiList e UmtsList . . . . . . . . . . . . . . . 106
4.2.3 Algoritmo di predizione dell’Oracolo . . . . . . . . . . 110
4.2.4 Creazione della lista delle connessioni candidate . . . . 116
4.2.5 Problemi emersi durante la progettazione . . . . . . . . 118
INDICE v
5 Implementazione 125
5.1 Panoramica del sistema . . . . . . . . . . . . . . . . . . . . . . 125
5.2 Problemi emersi durante l’implementazione . . . . . . . . . . . 129
5.2.1 Attivazione e disattivazione del GPS . . . . . . . . . . 129
5.2.2 Arrotondamento dei reali in SQLite . . . . . . . . . . . 132
5.2.3 Mancanze strutturali del file wpa supplicant.conf . . . 137
5.3 Dettagli implementativi . . . . . . . . . . . . . . . . . . . . . 138
5.3.1 Utilizzo degli Intent in casi particolari . . . . . . . . . 138
5.3.2 Implementazione dello ScanService . . . . . . . . . . . 141
5.3.3 Calcolo delle distanza tra due punti rappresentati con
coordinate GPS . . . . . . . . . . . . . . . . . . . . . . 144
5.3.4 Rooting dei dispositivi . . . . . . . . . . . . . . . . . . 145
5.3.5 Gestione del file wpa supplicant.conf . . . . . . . . . . 151
6 L’applicazione 163
7 Valutazione e prove sperimentali 173
7.1 Valutazione del comportamento in scenari caratteristici . . . . 174
7.2 Valutazione dell’algoritmo di predizione . . . . . . . . . . . . . 181
7.3 Presupposti all’integrazione con ABPS . . . . . . . . . . . . . 184
8 Contributo del lavoro 187
9 Conclusioni e sviluppi futuri 189
Bibliografia 191
Ringraziamenti 197
Elenco delle figure
1.1 Schema funzionale del progetto. . . . . . . . . . . . . . . . . . 3
2.1 Diffusione delle versioni di Android nel mercato attuale. . . . . 9
2.2 Caso in cui non si ha alcuna copertura. . . . . . . . . . . . . . 13
2.3 Caso in cui si ha la copertura solo di access point wireless. . . 14
2.4 Caso in cui si ha solo copertura da parte delle celle telefoniche. 14
2.5 Caso in cui si ha una transizione da una tipologia di connes-
sione ad un’altra. . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.6 Fasi principali del processo di handover. . . . . . . . . . . . . 19
2.7 Handover basato sulla potenza del segnale rilevato. Il punto
L1 indica l’esatta posizione in cui deve avvenire il cambio di
rete. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.8 Handover basato sulla potenza del segnale e su un valore di
threshold. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.9 Handover basato sul concetto di isteresi. . . . . . . . . . . . . 22
2.10 Handover basato su treshold ed isteresi combinati. . . . . . . . 22
2.11 Metodi di controllo del processo di handover. . . . . . . . . . . 25
2.12 Struttura del Location Area Identifier (LAI), formata dal CC,
MNC e LAC. . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.13 Copertura dell’UMTS in Italia. . . . . . . . . . . . . . . . . . 29
2.14 Softer handover. . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.15 Scenario con reti Wi-Fi e WiMax integrate. . . . . . . . . . . 35
2.16 Esempio di scenario eterogeneo con reti all-IP dette NGN. . . 40
vii
Description:si possa fornire uno strumento in grado di gestire il processo di handover su . versione in inglese in alto e versione utilizzata in cinese in basso). 68.