Middleware per il Discovery Avanzato Masini Simone Mat. 197130 in gruppo con Tomaiuoli Giuseppe Mat. 196947 Riuscire a trovare risorse presenti nell’ambiente Quanti di noi in un nuovo ufficio vorrebbero poter stampare un articolo per consultarlo velocemente e non possono perché prima devono configurare il proprio portatile per la comunicazione con la stampante? Il Discovery Avanzato permette di considerare informazioni aggiuntive rispetto ai normali servizi di Discovery, come preferenze dell’Utente caratteristiche dei dispositivi credenziali località … Come descrivere le risorse disponibili? Sistemi eterogenei Sistemi operativi diversi, ma anche Hardware diversi (palmari, portatili, stampanti, …) Soluzioni da ambienti P2P UPnP JXTA Open Source Profili con caratteristiche più flessibili Elementi XML Architettura Unificante Protocollo proprietario Consorzio di Aziende Rappresentazione informazioni di basso livello derivato dal suo obiettivo di utilizzo Problemi di compatibilità Overhead Scelta Protocollo JXTA con eventuali Bridge per altri protocolli Architettura SW di JXTA Sample JXTA Applications JXTA Applications JXTA Services JXTA Core Instant Messaging MDA File Sharing Sample JXTA Services Search Peer Groups Peer Advertisements Indexing Peer Pipes Peer IDs Discovery Peer Monitoring Security Funzionamento (introduttivo) Advertisement Peer A Advertisement Peer B Rendezvous Peer discovery Possibilità di creare pipe tra un peer ed un altro per scambiare informazioni Advertisement Architettura Logica del Middleware GroupMDAFornitori creaProfilo getRemoteAdv(xml) modificaProfilo Utente MDAUtente PeerMDAFornitore PeerMDAFornitore Informazioni caratteristiche servizio Informazioni dinamiche Informazioni profilo fornitore Informazioni caratteristiche servizio GroupMDAInfrastruttura PeerMDAInfrastruttura PeerMDAInfrastruttura Informazioni caratteristiche servizio Informazioni dinamiche Informazioni profilo utente creaProfilo publishAdv(xml) MDAFornitore modificaProfilo … GroupMDAUtenti Fornitore PeerMDAUtente PeerMDAUtente Informazioni caratteristiche servizio Caratteristiche Supporto Legacy JXTA e altri protocolli (UPnP) Accesso al Middleware per il Discovery Avanzato MDAUtente MDAFornitore Gestione Carico Ordinamento risultati in base al carico dei fornitori Frequenza aggiornamento libera Liveness dei Servizi Messaggio di “Alive” per confermare l’esistenza dei servizi Gestione Profili (Fault Tolerance: Persistenza, Replicazione) Profili memorizzati su PeerMDAUtente PeerMDAFornitore Profili distribuiti su più nodi Profilo Se presente in locale (Copia Attiva) Se non presente in locale… profilo in locale Utente profilo non attivo richiesta profilo PMDA1 PMDA2 profilo profilo attivo non attivo PMDA3 Copia non presente Traffico esente da picchi Copia a costo nullo Personalizzazione della Richiesta (località, dispositivo corrente,caratteristiche HW e SW) Ricerche complesse: più attributi di descrizione del servizio estensione advertisement JXTA <servizio type="servizio"> <DatiServizio> <Servizio> <Nome>Stampa</Nome> <Attributi> <Attributo> <Nome>Colore</Nome> <Valore>Bn</Valore> </Attributo> <Attributo> <Nome>Tipo</Nome> <Valore>Laser</Valore> </Attributo> <Attributo> <Nome>Ppm</Nome> <Valore>15</Valore> </Attributo> </Attributi> </Servizio> </DatiServizio> </servizio> Personalizzazione della Richiesta (località, dispositivo corrente,caratteristiche HW e SW) Ricerche complesse: più attributi di <richiesta type="richiesta"> descrizione del servizio da cercare <DatiServizio> espressi dall’utente al momento della richiesta di un servizio aggiunti dal sistema perché presenti nel profilo dell’utente estensione advertisement JXTA JXTA ricerca solo al primo livello <Servizio> <Nome>Stampa</Nome> <Attributi> <Attributo> <Nome>Colore</Nome> <Valore>Bn</Valore> </Attributo> </Attributi> </Servizio> </DatiServizio> <DatiProfilo> <Profilo> <Attributo> <Nome>Tipo</Nome> <Valore>Laser</Valore> </Attributo> </Profilo> </DatiProfilo> <IdentificativoPeer> peer1 </IdentificativoPeer> <IdentificativoRichiesta> richiesta 1 </IdentificativoRichiesta> </richiesta> Implementazione della Metodologia di Ricerca (matching) Richiesta Servizio <richiesta type="richiesta"> <servizio type="servizio"> <DatiServizio> <Servizio> <Nome>Stampa</Nome> <Attributi> <Attributo> <Nome>Colore</Nome> <Valore>Bn</Valore> </Attributo> <Attributo> <Nome>Tipo</Nome> <Valore>Laser</Valore> </Attributo> <Attributo> <Nome>Ppm</Nome> <Valore>15</Valore> </Attributo> </Attributi> </Servizio> </DatiServizio> </servizio> <DatiServizio> <Servizio> <Nome>Stampa</Nome> <Attributi> <Attributo> <Nome>Colore</Nome> <Valore>Bn</Valore> </Attributo> </Attributi> </Servizio> </DatiServizio> <DatiProfilo> <Profilo> <Attributo> <Nome>Tipo</Nome> <Valore>Laser</Valore> </Attributo> </Profilo> </DatiProfilo> <IdentificativoPeer> peer1 </IdentificativoPeer> <IdentificativoRichiesta> richiesta 1 </IdentificativoRichiesta> </richiesta> Servizi divisi in categorie Utente Fornitore creaProfilo getRemoteAdv(xml) modificaProfilo … Informazioni caratteristiche servizio MDAFornitore MDAUtente creaProfilo publishAdv(xml) modificaProfilo … Informazioni caratteristich e servizio Informazioni caratteristiche servizio + Informazioni dinamiche GroupMAInfrastruttura PeerMDAInfrastruttura PeerMDAInfrastruttura Informazioni caratteristiche servizio + Informazioni dinamiche GroupCategoria1 PeerMDAFornitore PeerMDAInfrastruttura GroupMAUtente PeerMDAUtente Informazioni caratteristiche servizio + Informazioni dinamiche + Informazioni profilo utente PeerMDAUtente PeerMDAUtente GroupMDAFornitori Informazioni caratteristiche servizio + Informazioni dinamiche + Informazioni profilo fornitore PeerMDAFornitore (bridge) Conclusioni e sviluppi futuri Realizzato: Supporto legacy JXTA e altri protocolli (UPnP) Gestione Profili (Persistenza, Replicazione e Fault Tolerance) Personalizzazione della Richiesta (località, dispositivo corrente, caratteristiche HW e SW) Implementazione della Metodologia di Ricerca Gestione Carico e Liveness dei Servizi Da realizzare: Sicurezza Caching dei Servizi sul Lato Utente Raccolta di Informazioni per Stilare Statistiche Bridge per altri protocolli: PeerMDAFornitore (UPnP)