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/