1 Team project A.A. 2003/2004 Reti di calcolatori LS Bertaccini Simone 169703 Ingegneria informatica Laurea specialistica 24/10/2004.

Slides:



Advertisements
Presentazioni simili
XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Advertisements

S C O P E Il direttore dOrchestra eTecna. S C O P E è un gestore dei processi aziendali Non vuole sostituirsi ai gestionali già in uso nelle varie realtà
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
Unità D1 Architetture di rete.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
PHP.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Struttura dei sistemi operativi (panoramica)
Daniel Stoilov Tesi di Laurea
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.
Un sistema software per la vendita di prodotti on-line Università degli studi di Bologna Facoltà di ingegneria Reti di calcolatori L-S Studente: Rinaldi.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
High-Available Service Manager Diego Costantini Università degli studi di Bologna Corso di Laurea Specialistica.
Progetto di Reti di Calcolatori LS a cura di Gesualdi Marco Miniello Giuseppe Vukovic Veljko.
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.
Meteo Service Corso di Reti di Calcolatori LS Casarini Stefano matr
Introduzione alla modellazione di sistemi interattivi
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Riservato Cisco 1 © 2010 Cisco e/o i relativi affiliati. Tutti i diritti sono riservati.
1 Reti di Calcolatori LS Prof. Antonio Corradi Progetto: Giombi Giorgio e Soffritti Luca Presentazione: Giombi Giorgio FotoContest Il primo servizio interamente.
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.
Il modello di riferimento OSI
File system distribuito transazionale con replicazione
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
L’architettura a strati
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
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.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.
Progetto di: Daniele De Angelis Corso di: Reti di Calcolatori LS Un sistema fault tolerance per protocollo Diffie-Hellman.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
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:
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
PROTOTIPO DI UN GIOCO DI STRATEGIA IN RETE Alberto Buccella Università degli studi di Bologna Facoltà di Ingegneria Corso di Ingegneria Informatica.
Lucia Melotti 1/14 Bologna, 7 luglio 2004 Aspetti di sicurezza nello scambio di messaggi XML tra un partner ebXML ed un Web Service di Lucia Melotti Relatore:
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
Servizio di newsgroup con replicazione dei server Studente: Letizia Cheng Cheng Sun Matricola: Reti di Calcolatori LS – Prof. A. Corradi A.A. 2003/2004.
Progetto di un Gestore di Nomi Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2003/2004 Autore: Molesini Ambra.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
Middleware per la sincronizzazione di ambienti eterogenei Progetto di Reti di Calcolatori LS Emanuele Crescentini matr Ingegneria Informatica LS.
Reti di Calcolatori LS - Fabio Poli 15 Giugno 2006 Sviluppo di un player di Campo Minato multigiocatore con supporto di Chat MultiCast.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
Università degli Studi di Bologna Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Scienze dell’Informazione Università degli Studi.
Proxy Based Infrastructure for LBS tailoring Paolo Lutterotti matr Reti di Calcolatori LS, A.A. 2005/06.
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.
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.
Le basi di dati.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Progetto WELL-FIR Manuale Utente del Web GIS Versione 0.1.
FatIn: Fatturazione Interventi Applicazione di facile utilizzo che permette la prenotazione, la gestione e la fatturazione di interventi e prestazioni.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Transcript della presentazione:

1 Team project A.A. 2003/2004 Reti di calcolatori LS Bertaccini Simone Ingegneria informatica Laurea specialistica 24/10/2004

Team Project Bertaccini Simone Introduzione Uno degli aspetti più complessi da gestire durante l’implementazione e il mantenimento di un progetto è generalmente la collaborazione dei vari componenti del team di sviluppo, in particolare quando team e progetto diventano di medie o grandi dimensioni. I problemi principali sono la comunicazione tra i vari componenti del gruppo e la gestione della “concorrenza” sui vari moduli costitutivi del progetto. Mentre il primo aspetto può essere risolto organizzando frequenti riunioni di allineamento e mettendo a disposizione dei partecipanti strumenti di comunicazione quali programmi di messaggistica immediata, di conferenza e di posta elettronica, il secondo è difficilmente gestibile attraverso questi mezzi e può necessitare di un supporto gestionale automatico “semi-intelligente” (o più semplicemente che cerchi di garantire il rispetto di alcune regole).

Team Project Bertaccini Simone Obiettivi Progettare un sistema per la gestione di progetti da parte di più utenti contemporaneamente anche distanti nello spazio. Rendere il sistema facilmente estendibile. Implementare un prototipo di tale sistema … … che possa essere avere un’installazione distribuita. … implementando il quale si abbia l’occasione di studiare il maggior numero di modalità di comunicazione possibili. … possa essere testato senza l’uso di una rete. Rilevare le situazioni in cui il prototipo si comporta in modo anomalo.

Team Project Bertaccini Simone Descrizione del progetto Il sistema deve gestire un insieme di file ai quali accedono molti utenti. Lo scopo principale è impedire che più di un utente lavori contemporaneamente sullo stesso file. A differenza della protezione fornita dal file system quella di team project: Files gestiti File 4 In modifica Acquisizione esclusiva Permesso scrittura negato è indipendente dall’effettiva apertura del file deve avere una gestione distribuita deve essere indipendente dal file system Deve funzionare anche se ogni utente lavora sulla propria copia locale del file (a condizione che questi si attengano ad alcune regole)

Team Project Bertaccini Simone Modifica di un file Se un utente desidera modificare un file: Aggiorna le informazioni su questo file, controllando se è bloccato da un altro utente. Nel caso non sia allineato scarica l’ultima versione. Richiede il lock sul file Effettua le modifiche (sulla propria copia) Effettua l’upload della nuova versione Sblocca il file

Team Project Bertaccini Simone Esempio di interazione Files gestiti ? 7 7 AAAB Dddd ccccc QQQB Dqqq ccccc Versione? Out of date ! AAAB Dddd pppQs AAAB Dddd pppQs

Team Project Bertaccini Simone Architettura del sistema 1. Interfaccia verso l’esterno: definisce le modalità con cui altre applicazioni o gli utenti possono comunicare con il servizio. 2. Connection Manager: si occupa delle politiche riguardanti le connessioni. Può decidere se scartare una connessione in caso di congestione o in che modo gestire diverse connessioni contemporanee. In questo livello è possibile collocare la gestione della qualità di servizio. 3. Presentation Layer: si occupa della “traduzione” delle richieste in chiamate a funzioni del motore e delle risposte del servizio nel formato di uscita. 4. Authentication Service: si occupa di identificare l’utente e scoprire il ruolo che questo ricopre all’interno del progetto richiesto. Se il servizio fosse erogato a pagamento all’interno di questo livello potrebbero essere inseriti anche i criteri di accounting. Presentation layer Authentication service Connection Manager Account mng

Team Project Bertaccini Simone ? File manager Message manager Architettura del sistema (2) 5. Service engine: è adibito a “scoprire” i servizi disponibili e a ridirigere le richieste al modulo opportuno. E’ suo compito anche inizializzare il sistema. 6. General authorization control layer: effettua i controlli generali sulle abilitazioni dell’utente: riguarda autorizzazioni non strettamente legati ad ogni singolo modulo. 7. Moduli funzionali: ogni modulo può essere dotato di un authorizazation control sub-layer che effettui i controlli relativi al modulo specifico. Ogni componente di questo livello è adibito alla gestione di una diversa funzionalità. 8. Protocols layer: nel caso ci sia la necessità di avere server replicati, gestisce la concorrenza e la consistenza nel distribuito utilizzando il protocollo opportuno. 9. Storage layer: gestisce l’accesso ai dati. Conosce l’ubicazione fisica dei dati ed è in grado di reperirli per i moduli funzionali. Presentation layer Authentication service Service engine General Authorization Control layer F.A.C.L. M.A.C.L. Storage Layer Protocols layer Connection Manager Account mng

Team Project Bertaccini Simone Flessibilità dell’architettura Data l’eterogeneità di esigenze che diversi progetti possono presentare, l’architettura è ricca di livelli opzionali. E’ altrettanto vero che non è possibile prevedere le esigenze di tutti a priori è quindi necessario permettere l’aggiunta di nuovi livelli non previsti. Connection Manager N X Message elaboration layer Service engine ? File manager Message manager F.A.C.L.M.A.C.L. N X Message elaboration layer Storage layer Per questo l’architettura inizialmente pensata è stata modificata in modo da prevedere alcuni livelli obbligatori e due “stack” di livelli opzionali. E’ quindi possibile aggiungere livelli nella struttura “verticale” e funzioni nella struttura “orizzontale”.

Team Project Bertaccini Simone Deployement del sistema Il sistema non fa alcuna ipotesi sul tipo di deployement delle varie copie del sistema (non necessariamente sono più di una!!) se non nel livello dei protocolli. Nella mia implementazione le copie sono logicamente organizzate ad albero Questo garantisce una rapida diffusione dell’informazione “lock” senza la necessità di avere una connessione per ogni coppia di server. Altri protocolli potrebbero considerare un’organizzazione logica differente. I clienti possono accedere al servizio o con un principio di località (UDDI?) oppure attraverso un “broker” che garantisca il load sharing La scelta migliore dipende ovviamente dalle esigenze, dal tipo di progetto, dal traffico previsto, ecc…

Team Project Bertaccini Simone Deployement del sistema (2) P2P like Distanza geografica Broker load sharing

Team Project Bertaccini Simone Caratteristiche del sistema Sistema replicato in cui tutte le copie sono attive La replicazione ha lo scopo di mantenere il servizio attivo 24/7 e di migliorare i tempi di risposta delle operazioni di lettura (+ frequenti) Le copie guaste vengono rilevate attraverso l’assenza dell’heartbeat La sincronizzazione sulle operazioni di scrittura è lazy (conflitti gestiti dai lock …) La sincronizzazione sul protocollo di lock è eager Le copie sono collegate logicamente ad albero per permettere un minor numero di messaggi Durante la comunicazione Di heartbeat

Team Project Bertaccini Simone Tecnologia utilizzata Team Project è stato sviluppato in.NET per diverse esigenze, in C# (ma moduli aggiuntivi potrebbero essere sviluppati in altri linguaggi). Il protocollo per i lock comunica attraverso socket e TCP Gli altri protocolli utilizzano remoting (  RMI), secondo il pattern “poll for result” per permettere la gestione dei time-out I messaggi I_M_ALIVE sono inviati via UDP (heartbeat), semantica may be, pattern “fire & forget” La comunicazione client-Web service avviene in SOAP over HTTP La comunicazione Web service-Team Project avviene in remoting binario (i due dovrebbero risiedere sulla stessa macchina)

Team Project Bertaccini Simone Interfaccia al servizio Realizzata utilizzando un semplice web-service Signature: string PerformAction(string) Il parametro e il valore di ritorno sono stringhe xml il cui contenuto dipende in parte dal servizio richiesto. Il web service sarebbe in grado di attivare il servizio. Questo non è stato implementato in quanto per ora Team project è in realtà un’applicazione console, mentre sarebbe stato probabilmente opportuno implementare un servizio. L’uso di un web service rende il servizio accessibile da qualsiasi linguaggio su qualsiasi piattaforma.

Team Project Bertaccini Simone Il protocollo per i lock Tra i protocolli sviluppati nel prototipo ci si è concentrati principalmente su quello per i lock. Le linee guida di questo protocollo sono: L’informazione “file bloccato” è quella che si deve propagare il più rapidamente possibile. Durante l’esecuzione del protocollo alcune copie possono anche “pensare” che un utente abbia acquisito un lock anche se in realtà è stato preso da un altro Al termine del protocollo tutte le copie devono essere d’accordo su chi ha effettivamente acquisito il lock. Caratteristiche: (N-1)*2 messaggi se non c’è nessun conflitto In caso di conflitto dipende da diversi fattori Il messaggio si propaga in (caso peggiore) 2*(h-1) passi

Team Project Bertaccini Simone Esempio di conflitto L2 L6 L2 L6

Team Project Bertaccini Simone Rilevamento copie non disponibili Ogni copia invia ai propri vicini (nel nostro caso il padre e i figli nell’albero) un messaggio a intervalli regolari. Se non si ricevono per N (configurabile) volte un messaggio da una sorgente, questa viene considera fuori servizio (o comunque irraggiungibile). La copia che rileva il problema invia a tutte le altre un messaggio per indicare la rimozione. Ad ogni comunicazione è comunque assegnato un time- out. Se questo scatta la copia con la quale si tentava di comunicare viene considerata off-line. Per le ritrasmissioni ci si affida al protocollo di comunicazione sottostante.

Team Project Bertaccini Simone Risoluzione dei guasti Guasto della root Guasto nodo intermedio Split del gruppo

Team Project Bertaccini Simone Ingresso nel gruppo L’ingresso di una nuova copia nel sistema è una situazione anomala che dev’essere gestita correttamente, eventualmente con l’intervento di sistemisti: Se la copia è disallineata potrebbe essere necessario trasferire una grossa quantità di dati. E’ opportuno scegliere al meglio la posizione della copia all’interno dell’albero. E’ necessario ri-configurare opportunamente il broker o comunque il meccanismo di scelta della copia da interpellare. Nel prototipo, per scopi di test, è possibile che una copia si unisca al gruppo come figlia di un’altra a cui inoltra la richiesta. Al momento non è implementata alcuna operazione di allineamento. Si tratta comunque soltanto di esplorare ricorsivamente tutte le “locations” ed effettuare gli opportuni download. La copia che si inserisce nel gruppo si trova sempre in uno stato “out of date” (o al massimo “current”)

Team Project Bertaccini Simone Problemi non gestiti Se le copie non sono allineate si ha un comportamento anomalo Es: lettura di un file che in altre copie risulta cancellato L’ordine dei messaggi non è concordato con tutte le copie. Problema: Nel sistema viene cancellato una file A loccato da UA Su una copia dove la cancellazione è già avvenute, l’utente UB crea un file B con il medesimo nome di A. Per qualche ragione il messaggio di creazione si propaga più velocemente di quello di cancellazione. In una copia viene richiesto di scrivere B senza che A sia stato cancellato, quindi genera un’eccezione. La copia su cui lavora UB lo notifica dell’errore ma non propaga ulteriormente l’eccezione. Altre copie potrebbero quindi mantenere il file B. Alcune situazioni di errore non gestite (politica lazy senza reconciliation) Es: una copia rifiuta la cancellazione di una location o un file)

Team Project Bertaccini Simone Problemi non gestiti (2) Creazione contemporanea di due file con lo stesso nome su copie diverse. Alcuni di questi problemi sono di facile soluzione, anche se sarebbe stata necessaria un’attenta valutazione dei molti modi diversi in cui il problema si presenti. Il problema dell’ordinamento dei messaggi necessiterebbe forse di una gestione più complessa. Si è ritenuto che tali problemi dessero scarso valore aggiunto al progetto rispetto al tempo necessario per risolverli.

Team Project Bertaccini Simone Client servizio Come esempio di come potrebbe essere utilizzato il servizio ho sviluppato un piccolo client L’applicazione costruisce gli xml di richiesta e li invia al web service in poche righe di codice.

Team Project Bertaccini Simone Conclusioni Alcune delle tematiche che avrei desiderato includere nel progetto (come la QoS) non sono purtroppo state affrontate pienamente per problemi di tempo. Sebbene poi il prototipo sia lontano dal prodotto finito che avevo immaginato (ma che sapevo sarebbe stato impossibile portare a termine), mi ha dato la possibilità di studiare e scontrarmi con alcuni dei problemi legati al mondo distribuito. Rimane inoltre la soddisfazione di aver acquisito il know how legato all’implementazione di web service, dell’utilizzo di chiamate asincrone per la gestione dei time-out, della messa in pratica di alcuni concetti studiati per la sincronizzazione di sitemi multi-thread e altro ancora.