Post on 01-May-2015
transcript
Sistema di Proximity Marketing Sistema di Proximity Marketing
con QoS ed availabilitycon QoS ed availability
Progetto per il Corso di Reti di Calcolatori LSProgetto per il Corso di Reti di Calcolatori LS
Nicola Bonoli - 27 Giugno 2007 Nicola Bonoli - 27 Giugno 2007
ScenarioScenario
Affermazione e diffusione della Affermazione e diffusione della tecnologia Bluetooth ®tecnologia Bluetooth ®
Possibilità di inviare Possibilità di inviare contenuticontenuti di svariato genere ai dispositivi di svariato genere ai dispositivi consenzienti consenzienti a costo zero!a costo zero!
ObiettiviObiettivi
Distribuire contenuti multimediali verso dispositivi abilitati Distribuire contenuti multimediali verso dispositivi abilitati alla ricezione Bluetooth ®alla ricezione Bluetooth ®
Permettere la corretta cooperazione di più trasmettitori Permettere la corretta cooperazione di più trasmettitori indipendentemente dalla posizioneindipendentemente dalla posizione
Evitare il “BlueSpam”Evitare il “BlueSpam”
Garantire l’availability del sistema a fronte di situazioni di Garantire l’availability del sistema a fronte di situazioni di guasto singologuasto singolo
““Occhio di riguardo” alla QoSOcchio di riguardo” alla QoS
AttoriAttori Client(i)Client(i): dispositivo con Bluetooth ® attivato ed in stato “rilevabile”: dispositivo con Bluetooth ® attivato ed in stato “rilevabile”
Proxy(i)Proxy(i): : - Discovery dei dispositivi client- Discovery dei dispositivi client- verifica lo stato e gestisce la trasmissione dei contenuti. - verifica lo stato e gestisce la trasmissione dei contenuti. - Si coordina con gli altri proxy e deve poter garantire la continuità del servizio.- Si coordina con gli altri proxy e deve poter garantire la continuità del servizio.- Attenzione a gestione risorse e QoS. - Attenzione a gestione risorse e QoS.
ServerServer: : - Fornisce i contenuti ai proxy. - Fornisce i contenuti ai proxy. - Supporta richieste concorrenti- Supporta richieste concorrenti- Non è richiesta availability lato server- Non è richiesta availability lato server
Server
Client
Proxy i
Macroscelte ProgettualiMacroscelte Progettuali
BlueMark Server
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 PoolBlueMark Proxy
Interazione server - proxy Interazione server - proxy CORBA Persistenza Persistenza database MySQL
Integrazione
Eterogeneità
Concorrenza{(…WS )
Architettura FinaleArchitettura Finale
BlueMark Proxy
BlueMark Proxy
BlueMark Proxy
BlueMark Server
BlueMark ServerBlueMark Server
Database dei contenuti (una tabella per ogni contenuto)
Tipo di dispositivo Tipo di dispositivo (Tailoring…)(Tailoring…) Nome del fileNome del file Tipo di contenuto (Mp3,Gif…)Tipo di contenuto (Mp3,Gif…) Percorso localePercorso locale Contenuto statico / dinamicoContenuto statico / dinamico
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);};
Configurazione del Server
Naming
Service!!!
BlueMark Proxy: configurazione BlueMark Proxy: configurazione e strutturae struttura
Configurazione di BlueMarkProxyConfigurazione 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 ServerDatabase Server Identificativo del contenutoIdentificativo del contenuto Contenuto statico / dinamicoContenuto statico / dinamico
BlueMark CorbaClient
BluetoothUtils
BMProxyDB
Core
Remote Devices
ThreadPool
TokenRing.Message
TokenRing.Recovery
TokenRing.Socket
Utilities
Buffering del contenuto (se contenuto statico)
TCP MailboxInit
(Entry Point & INIT)
BlueMark Proxy: funzionamento BlueMark Proxy: funzionamento principaleprincipale
UUIDUUID
OBEXPortOBEXPort
Stato associato al dispositivo:Stato associato al dispositivo:– SendingSending
– SentSent
– DeniedDenied
– TimeoutTimeout
(Stato ‘Discovered’ non tracciato…)(Stato ‘Discovered’ non tracciato…)
ProxyProxy
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 AvailabilityProxy Availability
Procedura di recovery per far fronte a Procedura di recovery per far fronte a guasto singologuasto singolo
Funzionamento del sistema anche in Funzionamento del sistema anche in modalità modalità standalonestandalone
Rilevamento del guasto basato sulle Rilevamento del guasto basato sulle primitive TCP primitive TCP
Mailbox con Mailbox con buffer buffer durante il recoverydurante il recovery Nodo successivo al guasto diventa Nodo successivo al guasto diventa
CoordinatoreCoordinatore
BlueMark Proxy 2
BlueMark Proxy 1
BlueMarkProxy 5
BlueMark Proxy 4 BlueMark Proxy3(coordinator)
Procedura di RecoveryProcedura di Recovery
BlueMark Proxy 2
BlueMark Proxy 1
BlueMarkProxy 5
BlueMark Proxy 4 BlueMark Proxy3(coordinator)
1 1 BMELECTIONTOKEN BMELECTIONTOKEN Avvio coordinatore. Avvio coordinatore. Comunicazione del nodo cadutoComunicazione del nodo caduto
22 BMRECOVERYTOKEN BMRECOVERYTOKEN Individuazione di: Individuazione di: - possessore del BMTOKEN- possessore del BMTOKEN- nuovo precedente al coordinatore- nuovo precedente al coordinatore- nuovo secondo successivo - nuovo secondo successivo
33 BMUPDATETOKENBMUPDATETOKEN Ripristino del ring logicoRipristino del ring logico Riattivazione della mailboxRiattivazione della mailbox Aggiornamento del database Aggiornamento del database ( Sending(downproxy)( Sending(downproxy)Timeout )Timeout )
44 RiattivazioneRiattivazione(BMTOKEN rigenerato dal coordinatore (BMTOKEN rigenerato dal coordinatore se smarrito ) se smarrito )
Testing & DemoTesting & 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 futuriConclusioni e sviluppi futuri
Il sistema BlueMark raggiunge gli obiettivi prefissati garantendo in particolare Il sistema BlueMark raggiunge gli obiettivi prefissati garantendo in particolare availability e il rispetto delle politiche richieste. Supporto per eventuale QoS.availability e il rispetto delle politiche richieste. Supporto per eventuale QoS.
Sviluppi futuri:Sviluppi futuri:
Calibrazione timeout sul canale di input Calibrazione timeout sul canale di input token token BMRINGALIVE BMRINGALIVE
Impostazione dei parametri (timeouts, thread pool…) Impostazione dei parametri (timeouts, thread pool…) interfaccia grafica interfaccia grafica
Soluzione di problemi di gestione delle connessioni BluetoothSoluzione di problemi di gestione delle connessioni Bluetooth
Invio di più contenuti allo stesso client dallo stesso proxyInvio di più contenuti allo stesso client dallo stesso proxy
Tailoring dei contenutiTailoring dei contenuti
Test del sistema in condizioni di alto caricoTest del sistema in condizioni di alto carico