BlueMar k Sistema di Proximity 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 ® Possibilità di inviare contenuti di svariato genere ai dispositivi consenzienti a costo zero! Blue Mar k
Obiettivi Distribuire contenuti multimediali verso dispositivi abilitati alla ricezione Bluetooth ® Distribuire contenuti multimediali verso dispositivi abilitati alla ricezione Bluetooth ® Permettere la corretta cooperazione di più trasmettitori indipendentemente dalla posizione Permettere la corretta cooperazione di più trasmettitori indipendentemente dalla posizione Evitare il BlueSpam Evitare il BlueSpam Garantire lavailability del sistema a fronte di situazioni di guasto singolo Garantire lavailability del sistema a fronte di situazioni di guasto singolo Occhio di riguardo alla QoS Occhio di riguardo alla QoS
Attori Client(i): dispositivo con Bluetooth ® attivato ed in stato rilevabile Client(i): dispositivo con Bluetooth ® attivato ed in stato rilevabile Proxy(i): 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: Server: - Fornisce i contenuti ai proxy. - Supporta richieste concorrenti - Non è richiesta availability lato server BlueMar kServer BlueMa rkProx y
Macroscelte Progettuali Bluetooth Bluetooth BlueCove (JSR-82) & Avetana OBEX Persistenza Persistenza database MySQL Comunicazione tra Proxy Comunicazione tra Proxy socket TCP Availability Availability replicazione decentralizzata e Token Ring (Load balancing) (Load balancing) Thread Pool Interazione server - proxy Interazione server - proxy CORBA Persistenza Persistenza database MySQL Integrazione Eterogeneità Concorrenza { (…WS )
Architettura Finale
BlueMark Server Database dei contenuti (una tabella per ogni contenuto) Tipo di dispositivo (Tailoring…) Tipo di dispositivo (Tailoring…) Nome del file Nome del file Tipo di contenuto (Mp3,Gif…) Tipo di contenuto (Mp3,Gif…) Percorso locale Percorso locale Contenuto statico / dinamico Contenuto statico / dinamico Corba Server IDL interface FileInterface { typedef sequence Data; Data downloadFile(in string ID,in string DeviceType); string getFileName(in string ID); string getFileType(in string ID); }; Configurazione del Server Naming Service!!!
BlueMark Proxy: configurazione e struttura Configurazione di BlueMarkProxy Identificativo, IP e porta di ascolto del nodo Identificativo, IP e porta di ascolto del nodo Nodo precedente nel ring logico (recovery) Nodo precedente nel ring logico (recovery) Nodo successivo (forwarding) Nodo successivo (forwarding) Secondo nodo successivo (recovery) Secondo nodo successivo (recovery) Naming Service Naming Service Database Server Database Server Identificativo del contenuto Identificativo del contenuto Contenuto statico / dinamico Contenuto statico / dinamico Buffering del contenuto (se contenuto statico) TCP Mailbox Init (Entry Point & INIT)
BlueMark Proxy: funzionamento principale UUID UUID OBEXPort OBEXPort Stato associato al dispositivo: Stato associato al dispositivo: –Sending –Sent –Denied –Timeout (Stato Discovered non tracciato…) Proxy Proxy Politica di invio invia se non presente o in stato timeout (1)Discovery del dispositivi (continuo) (2) Ricezione del Token (BMToken) (3) Verifica dello stato ed eventuali tentativi di invio (4)Forwarding del Token
Proxy Availability Procedura di recovery per far fronte a guasto singolo Procedura di recovery per far fronte a guasto singolo Funzionamento del sistema anche in modalità standalone Funzionamento del sistema anche in modalità standalone Rilevamento del guasto basato sulle primitive TCP Rilevamento del guasto basato sulle primitive TCP Mailbox con buffer durante il recovery Mailbox con buffer durante il recovery Nodo successivo al guasto diventa Coordinatore Nodo successivo al guasto diventa Coordinatore
Procedura di Recovery 1 BMELECTIONTOKEN Avvio coordinatore. Avvio coordinatore. Comunicazione del nodo caduto Comunicazione del nodo caduto 2BMRECOVERYTOKEN Individuazione di: Individuazione di: - possessore del BMTOKEN - nuovo precedente al coordinatore - nuovo secondo successivo 3BMUPDATETOKEN Ripristino del ring logico Ripristino del ring logico Riattivazione della mailbox Riattivazione della mailbox Aggiornamento del database Aggiornamento del database ( Sending(downproxy) Timeout ) 4Riattivazione (BMTOKEN rigenerato dal coordinatore se smarrito ) se smarrito )
Testing & Demo Test #1: Esecuzione base (un unico Proxy) Test #2: Esecuzione (due Proxy su due nodi differenti) Test #3: Esecuzione con timeout nellinvio (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. 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 Calibrazione timeout sul canale di input token BMRINGALIVE Impostazione dei parametri (timeouts, thread pool…) interfaccia grafica Impostazione dei parametri (timeouts, thread pool…) interfaccia grafica Soluzione di problemi di gestione delle connessioni Bluetooth Soluzione di problemi di gestione delle connessioni Bluetooth Invio di più contenuti allo stesso client dallo stesso proxy Invio di più contenuti allo stesso client dallo stesso proxy Tailoring dei contenuti Tailoring dei contenuti Test del sistema in condizioni di alto carico Test del sistema in condizioni di alto carico