Bonjour Post-It servizio di post-it distribuito di Elisa Rondini
Obiettivi Bonjour Post-It realizza un sistema che consente ad una molteplicità di utenti, facenti parte di una stessa rete locale, di scambiarsi semplici “remember” di eventi rilevanti. Obiettivi di progetto sono la gestione della comunicazione e della sincronizzazione fra gli utenti, prevendendo politiche di replicazione a fronte di guasti. Post-It: una delle forme di memorizzazione veloce di appuntamenti, note, informazioni, date rilevanti etc. più utilizzate da coloro che amano salvarsi contenuti in formato elettronico.
Bonjour (1) - Middleware sviluppato da Apple per consentire la connessione automatica in LAN di differenti dispositivi elettornici dando loro la possibilità di interoperare senza una preventiva configurazione lato utente. - Ambiente multi-linguaggio e multi-piattaforma. - DNS e DHCP senza avere la necessità di server centralizzati. - Open-source quindi possibilità di lavoro con le API di Bonjour per la gestione del supporto. Zeroconf (Zero Configuration Networking - IETF) - Presence Awareness intesa come possibilità di conoscere chi fa parte della rete avendo la consapevolezza di chi entra e di chi esce.
Bonjour (2) (?) 1. Indirizzamento mediante link-local addressing (se il sistema ha un server DHCP si sceglie, in modo random, un indirizzo IP compreso nel range xxx.xxx e lo si assegna al nuovo dispositivo). 2. Fase di verifica che l’indirizzo scelto non sia già in uso. Configurazione: Condivisione di servizi: 1. Scelta di nomi univoci per l’identificazione dei servizi. 2. Naming: Bonjour usa una variante del DNS chiamata Multicast DNS-Service Discovery (per la propagazione delle informazioni relative a: tipo, nome, indirizzo IP e porta del servizio). Ogni dispositivo in rete riceve tale notifica e memorizza le informazioni corrispondenti (si crea una lista di servizi memorizzati in un’unica interfaccia messa a disposizione per l’utente finale) (?) (?) (?) (?)
Come opera Bonjour Post-It?
Operazioni in Bonjour Post-It
Architettura (1) - Modello C/S : ogni utente svolge sia il ruolo di fornitore (server), sia di richiedente (client) di servizi. - Architettura a Layers : (1) si lavora con componenti per consentire modularità e riutilizzo futuro di parti di codice; (2) si opera in modo da garantire trasparenza rispetto ai livelli inferiori. - Modello Publish & Subscribe : per la registrazione dei servizi e la sottoscrizione ad essi attuata da parte di coloro che vogliono utilizzarli.
Architettura (2) 3) API di Bonjour per l’interazione di basso livello. 2) Lato Server: si pubblicano servizi con nomi univoci rendendoli disponibili per tutti i nodi interessati grazie al binding distribuito fra nome del servizio ed indirizzo IP del server (publish). Lato Client: si monitora la rete in modo da avvertire il livello applicativo sovrastante della pubblicazione di nuovi servizi o della scomparsa di servizi già esistenti (subscribe). 1) Livello applicativo di gestione dell’interazione fra l’utente finale ed il sistema sottostante.
Architettura (3) Pattern Observer si è fatto ampio uso di osservatori all’interno rete con il compito di catturare i servizi messi a disposizione su di essa.
Fault Tolerance (1) Fase di Crash del nodo
Fault Tolerance (2) Replicazione Per far fronte al Crash di A, i nodi B e C replicano i post-it pubblici, ricevuti da A, ricreando localmente il contenuto di tali post-it su nuovi post-it loro privati.
Replicazione Ipotesi di guasto multiplo (possono cadere più nodi contemporaneamente nella rete e, nonostante ciò, si tutela la consistenza del sistema evitando la perdita di post-it e, di conseguenza, dei differenti contenuti ad essi associati) Modello di replicazione a copie calde - hot standby (i singoli post-it pubblici, “copie” di un post-it privato, mantengono lo stato aggiornato in ogni istante con il post-it privato stesso anche a fronte di modifiche dello stesso e non solo a fronte di crash di nodi nel sistema) Rientro immediato nel sistema a fronte di recovery (l’utente può rientrare a far parte del sistema non appena fa recovery del guasto senza vincoli di attesa)
A fronte di disconnessione? 1. Chiusura di Bonjour Post-It. 2. Salvataggio del contenuto dei propri post-it privati. 3. Serializzazione su file XML di tale contenuto. A fronte di una successiva riconnessione... Il file sarà letto ed i contenuti saranno deserializzati --> l’utente, in maniera del tutto trasparente, potrà visualizzare i post-it privati che già possedeva (si ripristina lo stato precedente garantendo consistenza).
Sviluppi futuri possibilità di gestire lo scambio non solo di contenuti tesuali, ma anche di contenuti multimediali (e.g..jpg,.gif,.avi etc.): il post-it verrebbe visto come una sorta di contenitore in grado di gestire allegati di vario tipo e dimensione; possibilità di gestione di una “blacklist” o lista nera di utenti dai quali potrebbe non essere gradita la ricezione di post-it; possibilità di personalizzazione, a livello grafico, da parte dell’utente dei colori dei propri singoli post-it privati; possibilità di gestire, a livello di rete, mediante altre tecniche la replicazione delle copie dei post-it pubblici magari prevedendo la presenza di un unico gestore centralizzato capace di gestire differenti privilegi di visualizzazione a seconda che il post-it sia pubblico per tutti o solo per un sottinsieme di utenti; possibilità di gestire in modo corretto la presenza contemporanea di un utente su due reti differenti (e.g. ethernet e wireless): in tal caso Bonjour individua più volte lo stesso utente, una per ogni rete alla quale è connesso essendo gli indirizzi IP differenti. Bonjour Post-It potrebbe essere ampliato con le seguenti funzionalità:
Demo!