Strumenti per la gestione efficiente di connessioni tra terminali mobili Android Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica Relatore: Prof. Giuseppe Bianchi Candidato: Damiano Rossato A.A. 2010/2011
Problemi e Soluzioni (1/2) PROBLEMI 5 miliardi di abbonamenti al servizio Mobile 1 43% di smartphone nel Rischio del collasso della rete 3G 1(fonte: Informa database) 2(fonte: Gartner. com)
Problemi e Soluzioni (2/2) SOLUZIONI Alternativa alla rete 3G Sviluppo di un insieme di moduli che permettano la creazione di reti locali I nodi sono le persone che si trovano nello stesso ambiente
Moduli sviluppati
Sincronizzazione Fornisce 3 meccanismi per il recupero dello orario della zona in cui ci si trova Necessario per il corretto funzionamento del modulo di scheduling Intervento dell’utente è necessario in quanto non è possibile per un applicazione modificare l’orario di sistema (Android 2.2.1) NITZ Protocollo NMEA Triangolazione GPS
NITZ Network Identity and Time Zone È un opzione presente su tutti i sistemi Android In Italia viene supportata solo da Wind Marche: Motorola, Samsung, HTC, ecc. Operatori: AT&T, Telefonica O2, T-Mobile
Protocollo NMEA (1/2) National Marine Electronics Association Utilizzato soprattutto in nautica e nella comunicazione di dati satellitari GPS Possibilità di cattura dell’orario esatto tramite l’invio dati da parte di un solo satellite GPS Invio di dati seriali formattati in “frasi” da parte di un talker verso molteplici listener
Protocollo NMEA (2/2) Lo standard definisce la struttura di una frase $GPGGA,123519, ,N, ,E,1,08,0.9,545.4,M,46.9,M,,*47 GGA (Global Positioning System Fix Data) rappresenta l’orario 12:35:19 UTC 47 checksum dei dati tramite OR esclusivo dei simboli tra $ e *
Triangolazione GPS Richiede di trovarsi in uno spazio aperto Necessità dei segnali di almeno 3 satelliti Fa uso di un metodo della classe Location Manager
Scheduling delle operazioni (1/2) Avvio di service tramite l’utilizzo di Intent Un Service è un componente di un applicazione che può eseguire operazioni in background e non necessità di un’intergaccia utente. Nel nostro caso viene attivato dall’activity principale e continua la sua esecuzione anche se l’utente passa ad un’altra applicazione Una Intent è una struttura dati passiva che contiene una descrizione dell’operazione che deve essere eseguita
Scheduling delle operazioni (2/2) La classe Alarm Manager fornisce il metodo public void setRepeating (int type, long triggerAtTime, long interval, PendingIntent operation) dove l’argomento operation è una Intent che richiama il servizio AlarmService_Service implementato nella classe omonima
Access Point (1/2) Android permette la modalità Access Point Non esiste un metodo nella API che permetta di attivarla in maniera semplice: uso della reflection La Reflection è una tecnica di programmazione che permette di accedere a quei metodi di una classe che sono “nascosti”
Access Point (2/2) setWifiApEnabled(WifiConfiguration conf, boolean b) WifiConfiguration è oggetto che indica il tipo di configurazione che deve essere adottata (SSID, Algoritmo di autenticazione, ecc.)
Conclusioni