Alma 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: