Progetto di Reti di Calcolatori LS a cura di Gesualdi Marco Miniello Giuseppe Vukovic Veljko
Obiettivi Realizzare un sistema di distribuzione di notizie su larga scala da parte di unagenzia di stampa Mettere in comunicazione fonti e fruitori Entità eterogenee Diverse qualità di servizio Robustezza Gestione di 2 diverse tipologie di comunicazione: pull e push
Architettura del sistema Consumer Notification System Supplier
Notification System Entità utilizzata per gestire: Comunicazione con supplier e consumer Registrazione e deregistrazione delle entità Persistenza delle news nel sistema attraverso uso di un vettore con eliminazione news scadute Mantenimento argomenti disponibili in base a quelli inviati dai supplier Contratto stabilito con consumer
Consumer Componente molto leggero Riceve news in base al filtraggio stabilito Stabilisce un contratto con il Notification System Gestione comunicazione pull e push (attraverso Proxy) Connessione e disconnessione dal Notification System
Supplier Componente leggero con i seguenti servizi Creazione ed eliminazione di argomenti Creazione ed invio di news Connessione e disconnessione dal Notification System Gestione contratto con Notification System
Gestione argomenti Una lista di argomenti per ogni supplier Modifiche di tale lista implicano comunicazione con Notification System Tutti gli argomenti ereditano da un argomento padre General
Comunicazione con Notification System Due tipi di comunicazione: pull, il supplier salva le news su un file push, utilizzato handler per creare eventi di invio news e per ricevere conferma da parte del Notification System
Filtraggio Utilizzo dei filtri del Notification Service di CORBA Utilizzo di estensione del Trader Constraint Language, basato su BNF Effettuato a livello del Notification Service per migliorare le prestazioni: consumer e proxy ricevono solo eventi di interesse e non tutti gli eventi (overhead eccessivo) Passaggio dei filtri da una modalità di comunicazione ad unaltra attraverso il passaggio delloggetto FilterInfo, caratterizzato da: Filter: filtro rappresentante argomenti e sottoargomenti negoziati filterId: id del filtro exclusiveFilter: filtro rappresentante gli argomenti e sottoargomenti esclusivi negoziati exclusiveFilterId: id del filtro esclusivo
Filtraggio: Esempio Filtraggio per notizie non esclusive con argomento Sport e sottoargomento Calcio $isExclusive == FALSE and $argument == 'Sport and $subArguments == Calcio notizie non esclusive sottoargomento Calcio argomento Sport
Test su intero sistema Due categorie di test: Operational Test: verifica delle funzionalità del sistema Load test: per analizzare il comportamento in caso di overloading Sono state inviate un numero crescente di news, da 25 a 1000 Entità suddivise su 3 macchine differenti: Notification System e Proxy Factory Manager Proxy Factory Consumer e Supplier
Test su intero sistema Modalità push: Andamento curve simile se normalizziamo Ritardo medio nel distribuito: 137 ms. Legato al traffico in rete Modalità pull: A causa del timeout per il pull del Notification Service di CORBA comportamento molto simile tra distribuito e locale Modalità push Modalità pull Modalità push: ritardo medio tra invio e ricezione
Test specifici Per verificare corretto comportamento del supplier: creazione di file xml di configurazione corretto e non corretto e analisi del comportamento, verifica corretto comportamento in caso di caduta del supplier o semplice disconnessione, analisi comportamento in caso di inserimento errato dei parametri di una news verifica del corretta creazione e cancellazione di argomenti verifica del filtraggio
Conclusioni Entità leggera e performante Filtraggio efficace, facile da modificare e da estendere Gestione efficace della comunicazione (impiego di poca banda) Sviluppi futuri: aggiungere altri parametri per il filtraggio gestire in modo più efficace lesclusività della news e lattendibilità di un supplier