Middleware di Discovery Avanzato Di Giuseppe Tomaiuoli Mat 0196947 Reti di Calcolatori LS 2005-06 Prof. Ing. Antonio Corradi Team Giuseppe Tomaiuoli mat 0196947 Email [email protected] Simone Masini mat 0197130 Email [email protected] Referente Ing. Toninelli Alessandra Visione e Collocazione Un Middleware di Discovery che consenta di trovare il servizio che realmente stai cercando in base alle caratteristiche esplicite ed implicite di cui hai bisogno, sempre ed ovunque. Obiettivo del progetto è la realizzazione di un Middleware per il Discovery Avanzato di servizi messi a disposizione dai Fornitori. Il Discovery è Avanzato in quanto tiene in considerazione informazioni aggiuntive rispetto ai normali servizi di Discovery: le preferenze dell’Utente, le caratteristiche dei dispositivi, le credenziali, la località altro. Il Progetto si colloca nell’ambito dell’ambiente Peer-to-Peer(P2P) che presenta numerose soluzioni e diversi protocolli per l’implementazione del Discovery. Tra queste soluzioni si sono rivelate di particolare interesse JXTA e UPnP. Agenda Analisi e Studio di Fattibilità Progetto JXTA Architettura Logica del Middleware di Discovery Avanzato (MDA) Supporto Legacy JXTA e altri protocolli (UPnP) Accesso al MDA Bilanciamento del Carico del Middleware (coordinamento e sincronizzazione) Gestione Profili (Fault Tolerance: Persistenza, Replicazione) Personalizzazione della Richiesta (località, dispositivo corrente, caratteristiche HW e SW) Implementazione della Metodologia di Ricerca (matching) Access Control List o Capability List (Al Servizio del Fornitore) Publish/Subscribe Gestione Carico e Liveness dei Servizi Caching dei Servizi sul Lato Utente Raccolta di Informazioni per Stilare Statistiche Configurazione e Test Conclusioni e Sviluppi Futuri Analisi e Studio di Fattibilità UPnP: Protocollo proprietario; Consorzio di Aziende; Iter per la definizione di nuovi profili. JXTA: Open Source; Profili con caratteristiche più flessibili; Elementi XML. Architettura Unificante: Problemi di compatibilità; Overhead; Diversi Adattatori. Scelta: Protocollo JXTA con eventuali Bridge per gli altri protocolli. JXTA •Interoperability •Platform Indipendence •Ubiquity Architettura Logica del Middleware Supporto Legacy JXTA e altri protocolli (UPnP) Protocollo del progetto JXTA; Linguaggio di programmazione: JAVA; IDE: Eclipse; Richieste Standard JXTA; Profili JXTA preesistenti; Bridge per altri protocolli: PeerMDAFornitore (UPnP) Accesso al MDA MDAUtente MDAFornitore Bilanciamento del Carico del Middleware (coordinazione e sincronizzazione) Struttura distribuita: Coordinazione e Sincronizzazione; Politica di Bilanciamento del carico: nuovi compiti al meno carico; Mezzo: PeerInfoService di JXTA e Monitor; Come: Somma del traffico sui canali; Dove: MDAUtente fra i PeerMDAUtente; MDAFornitore fra i PeerMDAFornitore; PeerMDAUtente fra i PeerMDAInfrastruttura. Gestione Profili (Fault Tolerance: Persistenza, Replicazione) Profili memorizzati da: PeerMDAUtente; PeerMDAFornitore. Mezzo: direttori, Xindice (Apache). Classe: XindiceManager; Dove: Locale; Copia Attiva; Copia Non Attiva; Politica: Se presente in locale (Copia Attiva); Se non presente in locale: • Se trova Attiva; • Se non trova Attiva: – Se trova Non Attiva; – Se non trova Non Attiva; Access Control List o Capability List (Al Servizio del Fornitore) Politiche dei Diritti di Accesso: FREE; KEY; PAY-PER-SERVICE; Dove: Profilo Servizio; Profilo Utente, parte dinamica. Publish/Subscribe Caratterizzazione dei Servizi: Categorie; Utente: richiesta di sottoscrizione ad una Categoria al MDAUtente; Dove: GroupMDAUtente; Mezzo: NewsADV; Chi Pubblica: PeerMDAFornitore; Sviluppati dai Colleghi Personalizzazione della Richiesta (località, dispositivo corrente, caratteristiche HW e SW) Estensione delle caratteristiche della richiesta da JXTA (solo nome Servizio) a Discovery Avanzato che tiene conto di informazioni Statiche e Dinamiche (località, dispositivo) riguardanti le preferenze dell’utente e altre caratteristiche HW e SW inglobate nella richiesta sia in modo esplicito che implicito. Implementazione della Metodologia di Ricerca (matching) Estensione del confronto a tutte le caratteristiche definite nella richiesta e nel profilo del Servizio. Tra queste ultime ci saranno alcune ritenute necessarie e altre meno rilevanti. (Profilo e Servizio). Gestione Carico e Liveness dei Servizi Controllo del carico del singolo Servizio per evitare di sovraccaricare un servizio se c’è un’alternativa e dell’effettiva presenza del Fornitore per evitare di presentare soluzioni non più disponibili. Modalità Push/Pull. Configurazione e Test Sistema Distribuito Rete Virtuale JXTA Inizializzatore + Due entità di ogni tipo Test in LAB2 Tempo di Risposta LogFiles: GroupCreator TestFornitori Utenti TestPeerUtente TestPeerFornitore TestPeerInfrastruttura creaProfilo getRemoteAdv(xml) modificaProfilo … Utent e GroupPublishSubscrib e Fornitore Modifica categoria1 Informazioni caratteristiche servizio creaProfilo publishAdv(xml) modificaProfilo … Informazioni caratteristiche servizio MDAFornitore MDAUtente Informazioni caratteristiche servizio + Informazioni dinamiche GroupMDAInfrastruttura GroupMDAFornitori PeerMDAInfrastruttura PeerMDAInfrastruttura PeerMDAFornitore PeerMDAFornitore (bridge) GroupCategoria 1 Informazioni caratteristiche servizio + Informazioni dinamiche PeerMDAInfrastruttura Informazioni caratteristiche servizio + Informazioni dinamiche + Informazioni profilo fornitore GroupMDAUtenti PeerMDAUtente PeerMDAUtente PeerMDAUtente Informazioni caratteristiche servizio + Informazioni dinamiche + Informazioni profilo utente Altri JXTA Group Servizi descritti con altri protocolli (UPnP) Conclusioni e Sviluppi Futuri Obiettivi proposti e realizzati: Discovery Avanzato: Personalizzazione Esplicita, Implicita, Hardware e Software; Profili; JXTA; Supporto Legacy e altri Protocolli (UPnP); QoS: LoadBalancing; Politica del meno carico. Publish/Subscribe. Da realizzare: Sicurezza; Caching dei Servizi sul Lato Utente; Raccolta di Informazioni per Stilare Statistiche. Any Questions? Fine