Blues: Bluetooth Context Aware System
Transcript
Blues: Bluetooth Context Aware System
BLUES Bluetooth Context-Aware System Marco Pracucci Museo [email protected] dell'Informatica di Cesena 04/05/06 Navigatore satellitare Global Positioning System (GPS) Sistema di posizionamento satellitare a copertura globale, gestito dal dipartimento della difesa statunitense Software di cartografia digitale Elabora le informazioni sulla posizione ed, integrandole con una cartina geografica digitale, mostra all'utente dove si trova ed il percorso da compiere per raggiungere la meta designata. Servizi location-based Navigatore satellitare New Generation Servizi aggiuntivi: Traffico Autovelox Meteo Amici Richiedono l'accesso ad un centro servizi utilizzando una tecnologia wireless (ad esempio, GPRS o UMTS) Punti di interesse / Eventi Servizi context-aware (outdoor) Un esempio concreto di questi servizi context-aware sono forniti da TomTom PLUS Context-awareness Definizione: Un'applicazione / servizio context-aware è un software in grado di adattarsi, di modificare il proprio comportamento e le informazioni fornite, in base al contesto nel quale si trova l'utente, al fine di soddisfare al meglio le sue necessità e le sue esigenze. Il context-aware può essere visto come un'estensione del location-based CONTEXT-AWARENESS Contesto Il contesto, preso in esame, può essere definito dai seguenti parametri: Profilo utente Dispositivo mobile Scheda con i dati personali dell'utente, i suoi interessi e le sue preferenze Caratteristiche del dispositivo mobile, utilizzato dall'utente per accedere al sistema Collocazione Orario / Giorno Coordinate spaziali dell'utente, all'interno delle aree dove è disponibile il servizio Intervallo temporale nel quale l'utente accede al sistema CONTEXT-AWARENESS Applicazioni (esempi) La nascita e diffusione di applicazioni e servizi context-aware è stata favorita da: Crescente disponibilità di copertura di rete ovunque ● Miglioramento delle funzionalità e capacità dei dispositivi mobili ESEMPI ● Outdoor ● Navigatori satellitari di nuova generazione Indoor ● Smart home ● Servizi di informazione e di guida elettronica (ad esempio, Museo) CONTEXT-AWARENESS Context-aware indoor Localizzazione Wi-Fi (802.11) Bluetooth RFID PRO CONTRO Triangolazione con precisione 2 metri Tecnologia non presente su tutti i dispositivi Tecnologia presente su molti dispositivi Proximity detection Economico Proximity detection Non presente, di default, su i dispositivi mobili Bandwidth 11 - 54 Mb/s Zona di copertura media Consumi elevati Costoso Consumi ridotti Economico Bandwidth 1 Mb/s Zona di copertura piccola Trasmissione dati Wi-Fi (802.11 b/g) Bluetooth (1.1/1.2/2.0) Problema CONTEXT-AWARENESS Costi di sviluppo Problema: Realizzare un'applicazione context-aware è: ● complesso ● richiede molto tempo Causa: Manca un framework che supporti lo sviluppo, l'installazione e la sperimentazione di queste applicazioni Soluzione: Sistema context-aware Sistema middleware che gestisce l'infrastruttura necessaria (ad esempio, autenticazione, connettività wireless, localizzazione, panello di amministrazione e configurazione del sistema) e fornisce API per implementare i servizi context-aware Bluetooth Context-Aware System Sistema middleware, basato su tecnologia Bluetooth, a supporto di servizi context-aware, usufruibili attraverso eterogeneri terminali mobili (smartphone, palmari, notebook) Tecnologia di connettività wireless a corto raggio ● Tecnologia diffusa ● Ridotti consumi di energia ● Economico ● Onde radio 2.4 GHz Obiettivo Far interagire, senza la necessità di collegamenti via cavo, dispositivi diversi come telefoni, stampanti, notebook, PDA, impianti Hi-Fi, TV, computer, PC, cellulari, elettrodomestici Personal Area Network Tutte le apparecchiature bluetooth presenti in un ambiente sono in grado creare piccole reti senza fili (PAN) - Piconet Piconet Piccolo network di dispositivi Bluetooth ● Comunicazione gestita Master - Slave ● Massimo 8 dispositivi (1 master – 7 slave) ● Rete ad-hoc configurata dinamicamente Frequency-Hopping Spread Spectrum (FHSS): il master calcola la sequenza dei frequency hops (1600 hops/s) - Scatternet Scatternet Network costituito da più piconet interconnesse da dispositivi che operano con funzioni di bridge ● Massimo 10 piconet ● Massimo 79 dispositivi ● Comunicazioni filtrate dai master Attualmente, i dispositivi mobili più diffusi non supportano questo tipo di reti - Discovery Inquiry Scansione dei dispositivi presenti nell'area Necessario solo se non si conosce l'indirizzo del dispositivo al quale connettersi Discovery Permette di determinare quali sono i servizi disponibili su uno o più dispositivi della piconet. Protocollo SDP (Service Discovery Protocol): ● Server – risponde con i servizi disponibili sul dispositivo ● Client – interroga gli altri dispositivi - Protocol Stack L2CAP ● Protocollo packet-oriented ● Multiplexing dei dati tra i protocolli di livello superiore ● Segmentazione e riassemblaggio dei pacchetti RFCOMM ● Protocollo stream-oriented ● Emulazione dei segnali RS232 ● Controllo del flusso BLUES Bluetooth Context-Aware System BLUES Obiettivo del sistema Realizzare un sistema middleware, basato su tecnologia Bluetooth, a supporto di servizi context-aware general purpose, usufruibili attraverso eterogenei dispositivi mobili Progettazione BLUES ● Scenario indoor ● Tecnologia Bluetooth Localizzazione: room detection Connettività: dispositivi mobili range 10m ● Suddivisione in celle (stanze) dell'area totale da coprire ● Introduzione di un access-point (base station) in ogni cella BLUES Architettura Architettura BLUES Blues Server Permette di coordinare, configurare e monitorare l'intero sistema Componenti principali del server: Location tracker Localizza gli utenti del sistema ed aggiorna in tempo reale le loro coordinate spaziali Orchestratore Decide quali dispositivi devono essere connessi/disconnessi dalle stazioni base Context manager Gestisce le informazioni relative ai contesti degli utenti connessi al sistema User manager Gestisce gli account ed i profili degli utenti registrati nel sistema Frontend grafico Pannello di amministrazione e configurazione centralizzata del sistema Architettura BLUES Base Station Fornisce connettività Bluetooth ed i servizi context-aware ai dispositivi mobili Componenti principali della stazione base: Bluetooth scanner Scansione continua dei dispositivi presenti nell'area di copertura della stazione base Le informazioni aggiornate vengono notificate al location tracker del server Bluetooth provider Gestisce la connessione di rete (Bluetooth) con i dispositivi mobili connessi Service provider Fornisce l'accesso ai servizi disponibili agli utenti Architettura BLUES Applicazione client Permette ad un utente di accedere, attraverso il dispositivo mobile, al sistema Blues ed ai servizi disponibili Componenti principali dell'applicazione client: Network handler Gestisce la comunicazione di rete (Bluetooth) con la stazione base Service manager Gestisce i plug-in dei servizi installati nell'applicazione client Coordina le richieste di accesso ad un servizio, da parte dell'utente Interfaccia grafica Implementazione BLUES Java J2SE (Java 2 Standard Edition) Blues Server ● Base Station ● J2ME (Java 2 Micro Edition) ● Applicazione client Le specifiche J2ME prevedono un insieme di API bundle composti da: Configurazioni (CLDC, CDC, ...) ● Profili (MIDP, Personal Profile, ...) ● Package opzionali (JSR-82, ...) ● Una JVM per dispositivi mobili e/o embedded include una configurazione, un profilo ed eventuali package opzionali Caratteristiche BLUES Compatibilità: J2SE 1.5 J2ME/CDC (palmare) J2ME/CLDC (cellulare) Framework e librerie: Framework OSGi Bluetooth API (JSR-82) BLUES OSGi OSGi Service Platform Standard aperto che definisce le specifiche di una piattaforma per lo sviluppo di applicazioni orientate ai servizi Vantaggi ● Architettura a plug-in ● Design pulito ● Amministrazione del sistema da remoto RMI (Remote Method Invocation) Implementazione adottata: Knopflerfish (licenza GPL) BLUES Implementazione servizi Un servizio context-aware può essere implementato in Blues come plug-in del sistema Plug-in composto da 2 componenti: Plug-in per la stazione base ● Bundle per il framework OSGi (jar file) ● Implementa interfacce definite da Blues Plug-in per l'applicazione client ● Integrato all'interno dell'applicazione client ● Implementa interfacce definite da Blues ● Implementa l'interfaccia grafica del servizio sull'applicazione client Esempio, servizio contenuti extra Blues FrontEnd BLUES FrontEnd - Pannello di controllo ed amministrazione del sistema ● Gestione dei plugin (installazione, configurazione, controllo) ● Monitor dispositivi connessi al sistema ● Monitor log del sistema BLUES: caso di studio Idea: Museo dell'Informatica fornire ai visitatori un insieme di servizi context-aware, che permetta loro di vivere un'esperienza più diretta e personale all'interno del Museo. Servizi realizzati come caso di studio: ● Contenuti multimediali ● E-Learning BLUES: caso di studio Contenuti multimediali Il servizio fornisce al visitatore, in base al suo profilo e alla stanza nella quale si trova, una lista di contenuti extra ai quali può accedere: Filmati Registrazioni audio Ipertesti BLUES: caso di studio Contenuti multimediali Una risorsa può essere visualizzata su: Dispositivo mobile ● La risorsa viene visualizzata utilizzando un'applicazione nativa presente sul dispositivo Proiettore / Maxi-schermo (dove presente) ● La risorsa viene visualizzata utilizzando un visualizzatore, controllato dalla stazione base ● Il servizio gestisce l'accesso concorrente alle risorse con una politica FIFO BLUES: caso di studio Contenuti multimediali La visualizzazione di una risorsa sul dispositivo mobile richiede: Download della risorsa dal repository sulla stazione base ● Visualizzazione della risorsa con l'ausilio di un'applicazione nativa ● Cache: il servizio implementa una cache sull'applicazione client, nella quale vengono memorizzate le ultime risorse richieste dall'utente Configurazione: il servizio è completamente configurabile attraverso file di configurazione (XML per il repository, plain text per l'applicazione client) BLUES: caso di studio E-Learning Il servizio consente di valutare le competenze e le conoscenze dei visitatori, attraverso un questionario elettronico proposto ai visitatori durante la loro visita. Il livello di difficoltà del questionario è dipendente dal profilo del visitatore ● Il tema delle domande proposto è dipendente dalla stanza nella quale il visitatore si trova ● Il risultato dell'intero questionario viene calcolato dal sistema al termine della visita Demo BLUES Configurazione minima del sistema: 1 Blues Server applicazione server + database MySQL 1 Stazione Base dotata di due radio Bluetooth (BT-scanner, BT-provider) 1+ Dispositivi Mobili dotati dell'applicazione client di Blues Account Username: demo Password: demo BLUES Blues: game over Domande? Marco Pracucci [email protected] Stefano Cacciaguerra [email protected] APPENDICI - Specifiche tecniche Frequenze Banda ISM 2.4 Ghz: Le frequenze utilizzate variano da paese a paese, in relazione alle normative nazionali. Classi di potenza - Specifiche tecniche La tecnologia Bluetooth consente due principali modalità di collegamento tra unità master e slave: SCO (Synchronous Connection-Oriented) Trasmissione radio ● Trasmissione voce sincrona bidirezionale (codifica CVSD – 64 Kbps) ● Un master puo gestire fino a 3 connessioni SCO simultanee ● ACP (Asynchronous Connection-Less) Trasmissione dati ● Velocità trasmissione dati: 723 Kbps – 57.6 Kbps (asimmetrica) 434 Kbps – 434 Kbps (simmetrica) ● La modalità di trasmissione e ricezione può cambiare in relazione alle esigenze di comunicazione delle varie unità Bluetooth, passando per esempio da una sola comunicazione voce a una sola comunicazione dati. BlueZ – Official Linux Bluetooth protocol stack Implementazione delle specifiche standard Bluetooth per Linux, inclusa nei kernel 2.4 e 2.6. http://www.bluez.org/ Quick how-to Installare la radio Bluetooth (accenderla oppure inserire la chiave Bluetooth USB) ● Installare gli strumenti hciconfig, hcitool e sdpd ● Visualizzare l'identificativo della radio Bluetooth installata (solitamente hci0) hciconfig -a ● Abilitare la radio Bluetooth hciconfig hci0 up ● Eseguire il demone SDP (server) sdpd ● Cercare altri dispositivi presenti nell'area hcitool scan ● Informazioni sul dispositivo remoto hcitool info <remoteaddress> ● Informazioni sui servizi disponibili nel dispositivo remoto sdptool browse <remoteaddress> ● Riferimenti Marco Pracucci http://www.pracucci.com http://projects.pracucci.com Stefano Cacciaguerra http://www.cs.unibo.it/~scacciag Webografia http://www.bluetooth.org http://java.sun.com http://www.cs.unibo.it/~bononi/