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
Scarica

BlueMark