BlueMar
Sistema di Proximity k
Marketing con QoS ed availability
Progetto per il Corso di Reti di Calcolatori LS
Nicola Bonoli - 27 Giugno 2007
Scenario
Affermazione e diffusione della
tecnologia Bluetooth ®
Blue
Mar
k
Possibilità di inviare contenuti
di svariato genere ai dispositivi
consenzienti a costo zero!
Obiettivi
Distribuire contenuti multimediali verso dispositivi abilitati
alla ricezione Bluetooth ®
Permettere la corretta cooperazione di più trasmettitori
indipendentemente dalla posizione
Evitare il “BlueSpam”
Garantire l’availability del sistema a fronte di situazioni di
guasto singolo
“Occhio di riguardo” alla QoS
Attori
Client(i): dispositivo con Bluetooth ® attivato ed in stato “rilevabile”
Proxy(i):
- Discovery dei dispositivi client
- verifica lo stato e gestisce la trasmissione dei contenuti.
- Si coordina con gli altri proxy e deve poter garantire la continuità del servizio.
- Attenzione a gestione risorse e QoS.
Server:
- Fornisce i contenuti ai proxy.
- Supporta richieste concorrenti
- Non è richiesta availability lato server
BlueMar
kServer
Client
Server
BlueMa
rkProx
y
Proxy i
Macroscelte Progettuali
(…WS )
Interazione server - proxy CORBA
Persistenza database MySQL
{
Integrazione
Eterogeneità
Concorrenza
BlueMark Server
BlueMark Proxy
Bluetooth BlueCove (JSR-82) & Avetana OBEX
Persistenza database MySQL
Comunicazione tra Proxy socket TCP
Availability replicazione decentralizzata e Token Ring
(Load balancing) Thread Pool
Architettura Finale
BlueMark Proxy
BlueMark Proxy
BlueMark Proxy
BlueMark Server
BlueMark Server
Database dei contenuti (una tabella per ogni contenuto)
Tipo di dispositivo (Tailoring…)
Nome del file
Tipo di contenuto (Mp3,Gif…)
Percorso locale
Contenuto statico / dinamico
Configurazione del Server
Corba Server IDL
interface FileInterface
{
typedef sequence<octet> Data;
Data downloadFile(in string ID,in string DeviceType);
string getFileName(in string ID);
string getFileType(in string ID);
};
Naming
Service!!!
BlueMark Proxy:
configurazione e struttura
Configurazione di BlueMarkProxy
Identificativo, IP e porta di ascolto del nodo
Nodo precedente nel ring logico (recovery)
Nodo successivo (forwarding)
Secondo nodo successivo (recovery)
Naming Service
Database Server
Identificativo del contenuto
Contenuto statico / dinamico
Buffering del contenuto
(se contenuto statico)
Init
Remote Devices
Utilities
ThreadPool
BlueMark
CorbaClient
TCP
Mailbox
TokenRing.Socket
Core
(Entry Point & INIT)
TokenRing.Message
BluetoothUtils
TokenRing.Recovery
BMProxyDB
BlueMark Proxy:
funzionamento principale
UUID
(1) Discovery del dispositivi (continuo)
(2) Ricezione del Token (BMToken)
OBEXPort
Stato associato al dispositivo:
–
–
–
–
Sending
Sent
Denied
Timeout
(3) Verifica dello stato ed eventuali
tentativi di invio
(4) Forwarding del Token
(Stato ‘Discovered’ non tracciato…)
Proxy
Politica di invio invia se non presente o in stato timeout
Proxy Availability
Procedura di recovery per far fronte a
guasto singolo
Funzionamento del sistema anche in
modalità standalone
Rilevamento del guasto basato sulle
primitive TCP
Mailbox con buffer durante il recovery
Nodo successivo al guasto diventa
Coordinatore
BlueMark Proxy 1
BlueMarkProxy 5
BlueMark Proxy 4
BlueMark Proxy 2
BlueMark Proxy3
(coordinator)
Procedura di Recovery
1
BMELECTIONTOKEN
Avvio coordinatore.
Comunicazione del nodo caduto
2
BMRECOVERYTOKEN
Individuazione di:
- possessore del BMTOKEN
- nuovo precedente al coordinatore
- nuovo secondo successivo
3
4
BMUPDATETOKEN
Ripristino del ring logico
Riattivazione della mailbox
Aggiornamento del database
( Sending(downproxy)Timeout )
Riattivazione
(BMTOKEN rigenerato dal coordinatore
se smarrito )
BlueMark Proxy 1
BlueMarkProxy 5
BlueMark Proxy 4
BlueMark Proxy 2
BlueMark Proxy3
(coordinator)
Testing & Demo
BlueMark Server
BlueMark Proxy
• Test #1: Esecuzione base (un unico Proxy)
• Test #2: Esecuzione (due Proxy su due nodi differenti)
• Test #3: Esecuzione con timeout nell’invio (due Proxy su due nodi differenti)
• Test #4: Esecuzione (cinque Proxy complessivi su due nodi diversi)
• Test#5: Esecuzione e fase di recovery (cinque Proxy complessivi su due nodi diversi)
Conclusioni e sviluppi futuri
Il sistema BlueMark raggiunge gli obiettivi prefissati garantendo in particolare
availability e il rispetto delle politiche richieste. Supporto per eventuale QoS.
Sviluppi futuri:
Calibrazione timeout sul canale di input token BMRINGALIVE
Impostazione dei parametri (timeouts, thread pool…) interfaccia grafica
Soluzione di problemi di gestione delle connessioni Bluetooth
Invio di più contenuti allo stesso client dallo stesso proxy
Tailoring dei contenuti
Test del sistema in condizioni di alto carico