B3Discovery ---------------- Supporto al discovery distribuito di servizi personalizzati Lavoro di Paolo Burgio Matr 0000197362 Reti di Calcolatori L-S.

Slides:



Advertisements
Presentazioni simili
Amministrazione dei servizi di stampa. Sommario Introduzione ai servizi di stampa Introduzione ai servizi di stampa Terminologia della stampa Terminologia.
Advertisements

Architetture dei sistemi distribuiti Prof
Web Services.
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
Progetto Mini di Sistemi Distribuiti – AA 2007/08 Secure Group Communication with GDH.1 Alessandro Licata Caruso Matr:
Middleware per MANET WP3 Alessandro Ghioni
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Progetto realizzato da: Francesco Seccia Matr Marco Spinelli Matr
Progetto e Sviluppo di un algoritmo per la gestione della Federazione Interdominio in unarchitettura di Service Discovery Candidato: XXX Roma, Febbraio.
Struttura dei sistemi operativi (panoramica)
Sistemi Operativi GESTIONE DEI PROCESSI.
Lezione 6 JXTA. JXTA: Cosè? JXTA (JuXTAppose) è una piattaforma di rete, realizzata per lo sviluppo di applicazioni P2P. JXTA fornisce un insieme di building.
JXTA: Protocols JXTA definisce una formati per messaggi XML (aka protocolli) per la comunicazione fra peer: Peer Discovery Protocol (PDP) utilizzato dai.
Aprile 2004Reti di Calcolatori LS – Servizio di Annunci Distribuito1 Reti di Calcolatori LS REALIZZAZIONE DI UN SERVIZIO DI ANNUNCI DISTRIBUITO Studente:
SARAH Shop Assistant in Reti Ad-Hoc Presence Awareness, modalità disconnessa e dinamiche di update Antonio Gaetani.
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Delay Tolerant Networking Service per SAMOA. Il framework SAMOA SAMOA è un framework che consente di gestire e popolare la rete sociale e propagare a.
P ROGETTO PERMESSO PER SISTENT MESS AGING IN AD H O C NETWORKS Presentazione di Manuela Bassetti Corso di Reti di Calcolatori L-S AA Progetto.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Proxy-based infrastructure for LBS availability Reti di Calcolatori L-S Andrea Licastro
SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.
Supporto in RMI per la collaborazione in rete Autore:Vincenzo Coco Matricola: Corso di Reti di Calcolatori LS 2006/2007 Docente: Antonio Corradi.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori L-S AA Presentazione di Roberto Gamboni Progetto di Giuseppe Vitalone,
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
DEIS Università di Bologna
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
1 Reti di Calcolatori LS Prof. Antonio Corradi Progetto: Giombi Giorgio e Soffritti Luca Presentazione: Giombi Giorgio FotoContest Il primo servizio interamente.
Middleware di Discovery Avanzato Di Giuseppe Tomaiuoli Mat Reti di Calcolatori LS Prof. Ing. Antonio Corradi.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
BROKER SERVER Progetto di Ingegneria del Web 2008 Alessio Bianchi Andrea Gambitta Giuseppe Siracusano.
Reti di Calcolatori LS Professor Antonio Corradi Ingegner Dario Bottazzi Presentazione di Francesco Fiori.
Il modello di riferimento OSI
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Progetto RE.VE.N.GE. CORBA REliable and Versatile News delivery support for aGEncies Realizzazione del Sistema di Consegna UNIVERSITA’ DEGLI STUDI DI BOLOGNA.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Reti di calcolatori LS Enrico Pirazzini SSB un middleware basato su JMS per l'invocazione di servizi remoti.
Un sistema per la replicazione ottimistica in una rete di pari Progetto di Reti di calcolatori LS Federico Grassi a.a. 2004/2005.
Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Progetto di: Daniele De Angelis Corso di: Reti di Calcolatori LS Un sistema fault tolerance per protocollo Diffie-Hellman.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Progetto e prototipazione di una infrastruttura di comunicazione per il supporto al monitoraggio distribuito del traffico di rete Progetto di Reti di Calcolatori.
Proxy-Based Infrastructure for LBS Tailoring Reti di Calcolatori LS – Prof. A. Corradi Presentazione di: Roberto Amici Gruppo: Roberto Amici Alessandro.
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
Progetto di un sistema di comunicazione di gruppo con multicast causale Reti di Calcolatori L-S Marco Canaparo Matricola
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori LS – AA Presentazione di Davide Sansovini Professore: Antonio Corradi.
Servizio di newsgroup con replicazione dei server Studente: Letizia Cheng Cheng Sun Matricola: Reti di Calcolatori LS – Prof. A. Corradi A.A. 2003/2004.
PERMESSO PERsistent MESSaging in ad hOc networks Presentazione di Valentina Bonsi Corso di Reti di Calcolatori L-S AA Progetto di Giuseppe Vitalone,
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
B3Discovery: Infrastruttura di Discovery distribuita utilizzando l’architettura JXTA Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2005/2006.
R.E.V.E.N.G.E. RELIABLE AND VERSATILE NEWS DELIVERY SUPPORT FOR AGENCIES Corso di Reti di Calcolatori LS – AA Professore: Antonio Corradi Referente.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
Corso di Reti di Calcolatori LS Progetto di un server FTP in grado di coordinarsi con altri mirror per garantire QoS di Marco Buccione.
1 RE.VE.N.GE CORBA REliver and VErsatile News delivery support for aGEncies. Sistema per la creazione di notizie e la loro trasmissione sul sistema di.
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
TXJA --- Reti logiche fuzzy distribuite --- Reti di Calcolatori LS Davide Sottara.
Progetto PERMESSO Progetto PERMESSO PERsistent MESSagging in ad hOc networks Presentazione di Elisabetta Visciotti Progetto di Gruppo di: Manuela Bassetti,
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Mobile Agent and Enterprise Architecture Integration Il Gestore di Librerie e Servizi Lambertini Riccardo.
JDICS Java Dynamic Infrastructure for C/S systems Laura Galli matr Reti di calcolatori LS, Prof. A.Corradi A.A
Mots, programmazione collaborativa di Ettore Ferranti.
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Transcript della presentazione:

B3Discovery Supporto al discovery distribuito di servizi personalizzati Lavoro di Paolo Burgio Matr Reti di Calcolatori L-S Prof. Antonio Corradi A.A

(Alcune) specifiche di progetto Il middleware deve “consentire ad utenti con caratteristiche variabili il ritrovamento e l’accesso a servizi eterogenei offerti da fornitori diversi mediante diversi protocolli” Si prevede di “utilizzare e/o integrare protocolli di discovery esistenti...in particolare JXTA (SUN) e UPnP” Disaccoppiamento fornitori/fruitori tramite il sistema di discovery Personalizzazione dell’accesso ai servizi, tramite l’utilizzo di profili, sia per gli utenti che per i servizi stessi   gestione dei profili Notifica dell’aggiunta dinamica dei servizi, anche in base agli interessi

Architettura del sistema Architettura JXTA compliant, rispecchia il modello peer-to- peer proposto da JXTA Integrazione di UPnP per il supporto alla notifica Separazione fra gestione dei profili dei peer e dei services B3Discovery = Node + Registry

Architettura del sistema UPnPUPnP Info Servizi Reg Nodo Info Peer Reg Nodo Reg Nodo Peer Registry Interfaccia Nodo- Registry

Registry: overview Registry Locale Nodo Registry Locale Nodo Interfaccia Nodo-Registry Appoggio a JXTA  prestazioni e QoS JXTA Interrogato tramite un’interfaccia  trasparenza Chiamata a procedura  asincrona, con poll object Implementativamente, è un Active Object  coda delle attività  gestore della coda  pool di thread -JXTA-

Registry: come è fatto Interfaccia Implement. VOID usa(PARAM[], POLLOBJ) “Stub” “Skeleton” Separazione interfaccia e implementazione  possibilità di distribuzione su macchine diverse Definizione di Activity (attività da eseguire) sul Registry:  per l’uso vero e proprio  per il controllo e il mantenimento Interfaccia di accesso unica. Trasparenza dalla locazione da parte del chiamante (procedure-call) INSERT, DELETE, EDIT, SEARCH, CREATE, (ecc)

Registry locale: attività 1. Richiesta esecuzione attività (asincrona) Coda delle attività 2. Estrae un’attività dalla coda e richiede al pool un executor per la sua esecuzione Pool degli executor exe c 3. Esecuzione (sincrona) dell’attività Gestore della coda La coda è realizzata in modo da favorire le modifiche (INSERT, EDIT E DELETE) piuttosto che le SEARCH  Rischo di starvation in caso di comportamento maligno

Registry da locale a condiviso I singoli Registry locali che formano il Registry condiviso creano un JXTA PeerGroup di nome B3Registry, e chiedono di esservi ammessi (filtraggio in base a un segreto condiviso solo dai membri) All’interno del gruppo, esistono tanti sottogruppi quante le categorie dei servizi; quando un Registry locale deve operare su un servizio di un determinato tipo, entra nel gruppo relativo e sfrutta le funzionalità JXTA per pubblicare/modificare/cercare il servizio In particolare, il flow in caso del Discovery è il seguente:  prima si opera sulla cache locale a ogni singolo peer JXTA  in seguito, eventualmente ce ne fosse bisogno, si opera in remoto tramite un messaggio propagato a tutti i peer del gruppo

Registry condiviso: attività Bisogna fare in modo che tutti i tipi di Activity in un determinato Registry locale vengano propagati a tutti i membri Inserimento di un modulo per la gestione dei profili dei servizi, tramite la propagazione delle Activity a tutti i membri del gruppo Registry  Tramite Multicast Pipe JXTA (servizio integrato in JXTA) PROBLEMA: JXTA non supporta il concetto di “modifica” e “cancellazione” di un servizio, ma solo di “inserimento” e “ricerca”

Le Pipe JXTA “Pipes are communication channels for sending and receiving messages, and are asynchronous. They are also uni-directional, so there are input pipes and output pipes” [Gong, Li (2001) Project JXTA: A Technology Overview - Realizzate a livello JXTA Services; pubblicate (ovviamente) tramite un Advertisement Per chi vuole aprire una pipe ex-novo: la crea e la lega ad un ADV (servizio offerto)  publish JXTA Per chi vuole aprire una pipe esistente: discovery (JXTA) dell’ADV della pipe  lo usa per crearla Possibilità di Pipe Multicast, del tipo uno-a-molti Multicast Pipe per un Service: emuliamo il molti-a-molti: un solo ADV, contenuto nell’ADV del servizio  (logicamente) una sola Pipe

ActivityProfile Service Costruito sulle Pipe Multicast JXTA, relative al Servizio ActivityProfile Condivisione dei profili dei Servizi  Condivisione delle attività di EDIT e DELETE (per ora) Registry Locale Create all’avvio dell’ ActivityProfile Service

PROBLEMA: il Registry è asincrono per sua stessa natura, l’implementazione di JXTA processa sul nodo le richieste in modo sincrono (una sola coda per le richieste, un solo gestore) Registry: Poll Object e sincronicità attesa (sul Poll Object) dopo la richiesta (lo uso in maniera sincrona) wait() 4 getResult() Node Executor Poll Obj Request (Activity) Response (Result) !

Architettura UPnP Root Device Control point 1 Service1 -stateVar1 -stateVar2 Nested Device Service 1 Service 2 Control point 2 advertise MULTICASTMULTICAST search Figura: schema della rete UPnP: Devices, Control Points, Services - -

Il sistema di notifica Deve essere possibile lo notifica dell’aggiunta/rimozione di un servizio (se possibile comunicandone l’identità) di una o più categorie specificate, anche dinamicamente UPnP prevede un sistema ad eventi per la notifica del cambio del valore delle variabili di stato associate a un Service Possibilità di modificare dinamicamente il proprio interesse Utilizzo del multicast, integra il protocollo GENA (General Event Notification Architecture) Nome della variabile  Nome della categoria Invio anche del valore attuale della variabile  informazioni aggiuntive (ID del servizio??)

Modulo parallelo al Registry-Node, non integrato in esso  rete UPnP più “snella” e reattiva  non congestioniamo la (già abbastanza carica) rete JXTA Gli interessi dei peer sono tenuti in memoria dal supporto UPnP stesso: si è preferito separarli dal profilo per non aumentarne la dimensione e quindi l’overhead sulla rete JXTA  sarebbe utile (ad esempio, a fini statistici) poterli legare al profili, ma come detto comporterebbe un aumento di dimensioni degli stessi Il sistema di notifica

Conclusioni e sviluppi futuri L’architettura proposta è valida, robusta e scalabile Il sistema presenta grossi limiti prestazionali dovuti all’utilizzo di JXTA, che per la comunicazione utilizza una semantica best-effort, decisamente poco soddisfacente per gli obiettivi del progetto, e per l’elevato numero di messaggi scambiati (in formato XML) e la loro dimensione Il Sistema di Notifica potrebbe anche essere implementato come servizio JXTA, e nel realizzare il sistema si è preferito tenere aperta anche questa possibilità.  overhead nella reta JXTA, pertanto è (all’attuale stato dell’arte) sconsigliabile Per alleggerire la rete JXTA, si potrebbe utilizzare il modulo per la gestione dei profili, oltre che per EDIT e DELETE, anche per INSERT (ed eventualmente per le SEARCH)  perdita di “struttura” JXTA ????