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.

Slides:



Advertisements
Presentazioni simili
DiFMon Distributed Flow Monitor Claudio Mazzariello, Francesco Oliviero, Dario Salvi.
Advertisements

Gestione di un Sistema di Talk multiutente
“Niente di Nuovo” Mercatino dell’Usato
VIA GIULIO RATTI, CREMONA – Tel. 0372/27524
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
CORSO DI SICUREZZA SU RETI II PROF. A. DE SANTIS ANNO 2006/07 Informatica granata Gruppo 2 ISP Gruppo 3 ISP.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Java Enterprise Edition (JEE)
Acquisti OnLine Progetto
Esercitazione con socket
Struttura dei sistemi operativi (panoramica)
Modello di replicazione attivo e di supporto alla tolleranza ai guasti in ambito MOM Autore: Claudio Fusconi Matricola: Esame: Reti di calcolatori.
Aprile 2004Reti di Calcolatori LS – Servizio di Annunci Distribuito1 Reti di Calcolatori LS REALIZZAZIONE DI UN SERVIZIO DI ANNUNCI DISTRIBUITO Studente:
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
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
A Reliable Message Oriented Middleware based on Publish and Subscribe paradigm Mirko Matoffi a.a. 2003/2004.
BlueMar k Sistema di Proximity Marketing con QoS ed availability Progetto per il Corso di Reti di Calcolatori LS Nicola Bonoli - 27 Giugno 2007.
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
High-Available Service Manager Diego Costantini Università degli studi di Bologna Corso di Laurea Specialistica.
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
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.
Indicazioni per le famiglie 1 - Come funziona l'iscrizione online
SISTEMA INOLTRO TELEMATICO ISTANZE DECRETO FLUSSI 2010
File system distribuito transazionale con replicazione
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.
SIARL ARCHITETTURA DEL SISTEMA E GESTIONE DELLA SICUREZZA Milano, 5 novembre 2003 Struttura Sistemi Informativi e Semplificazione.
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.
Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito Studente: Luca Monaco Anno Accademico
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.
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:
Sistema di replicazione master-multislave con server di backup per un servizio di chat di Marco Andolfo 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.
Proxy-Based Infrastructure for LBS Tailoring Reti di Calcolatori LS – Prof. A. Corradi Presentazione di: Roberto Amici Gruppo: Roberto Amici Alessandro.
Multi agent System per la gestione di feed RSS. Obiettivi  Progettazione di un sistema ad agenti basato su tucson per la gestione di feed RSS  Sviluppo.
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
P2P Reliable Multicast Messenger Progetto e realizzazione di un software peer to peer per comunicazioni di gruppo.
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.
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.
MUSE 2 WIFI MUSic Everywhere with WIFI presentazione di Pierangeli Diego Membri del gruppo: Bambini Stefano Bergamini Andrea Pierangeli Diego AA 2006/2007.
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.
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
Proxy based infrastructure for LBS availability Reti di Calcolatori LS Serena Agresti.
Bacheca: Supporto alla creazione e diffusione di annunci basato su CORBA Corso di Reti di Calcolatori LS Prof. Antonio Corradi Progetto di Elisa Addimanda.
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 2 -EJB Ernesto Damiani Università degli Studi di Milano Lezione 2 – Tipi di.
Live auction un’ infrastruttura di supporto per aste in tempo reale basata su JMS. Autore: Andrea Ceruti Matricola: Corso: Reti Di Calcolatori.
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
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
Il software Aleph caratteristiche e funzionalità Aleph500 v ersione seminario a cura di Libera Marinelli Università di Genova - Centro di servizi.
Le basi di dati.
Transcript della presentazione:

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 Francesco Matricola Anno Accademico 2003/2004

Acquisti on-line Cliente tempi di risposta accettabili Sicurezza dellacquisto disponibilità del servizio Azienda soddisfacimento del cliente prevenzione di guasti qualità del servizio

Sistema Software Inserimento acquisti nel carrello Inserimento acquisti nel carrello Cancellazione acquisti dal carrello Cancellazione acquisti dal carrello Visualizzazione acquisti in ordine di costo Visualizzazione acquisti in ordine di costo Visualizzazione acquisti per data di immissione Visualizzazione acquisti per data di immissione Salvataggio acquisti su un supporto di memorizzazione Salvataggio acquisti su un supporto di memorizzazione Il sistema software terrà conto di modelli di comunicazione remota: modello publish and subscribe, modello callback replicazione di servizi tramite copie attive e passive politiche di sincronizzazione per l accesso ad una risorsa condivisa tecniche di load sharing

Modello publish-and-subscribe Il cambio di stato di un elemento A implica linvio di una notifica a uno o più componenti dipendenti, di cui A non conosce lidentità a priori. Si distinguono due categorie di oggetti: soggetti e osservatori. Un soggetto (o publisher) può essere associato a zero o pıù osservatori (o subscribers), ciascuno dei quali riceve una notifica ad ogni modifica di stato del soggetto.

I Java Bean Un bean in Java denota una classe di componenti Proprietà Proprietà Personalizzabilità Personalizzabilità Eventi Eventi Introspezione Introspezione Persistenza Persistenza Proprietà accessibili con metodi setXXX() e getXXX() Rappresentazione grafica esterna modificabile con un ambiente di lavoro sorgenti di eventi di tipo specifico Memorizzazione del bean in una forma personalizzata Rilevamento dinamico di proprietà, metodi e eventi supportati

Architettura di rete Livelli dellarchitettura di rete Livello applicativo Livello applicativo Livello di servizio Livello di servizio Rete Rete Livello Server Livello Server Tipi di server in esecuzione Server dellutente Server dellutente Server di sistema Server di sistema Server di supporto Server di supporto

Architettura logica BeanControllo Bean di elenco Bean del costo Bean di elenco AdapterElenco AdapterCosto Listener Costo Listener Elenco2 Listener Elenco1 Azione Login Azione Save Azione Insert Azione Logout Azione Remove 1 - registrazione 2 – arrivo di un evento 3 - notifica evento 4 - notifica evento 5 - notifica evento 9 - notifica evento 6 - notifica evento 8- notifica evento 10 - notifica evento 11 - notifica evento 7 - notifica evento Lelenco degli acquisti è stato modellato con due Bean a cui sono associati ordinamenti diversi Il bean del costo calcola la somma dei prezzi di tutti i prodotti presenti nel carrello

Tecnica di replicazione BeanControllo Azione Load Bean del costo Bean di Elenco Azione Load BeanControllo Bean di Elenco Bean del 2° Elenco Bean di Elenco Bean del 2° Elenco Bean del 2° Elenco Bean del costo Bean del costo Nodo del Bean del costo Nodo del Bean di Controllo Nodo del bean del 2° Elenco Evento Load Replicazione a copie passive server di sistema: una copia attiva e una copia passiva aggiornate in modalità eager Bean di controllo, bean di elenco, bean del costo: una tripla di copie attive e due triple di copie passive aggiornate in modalità eager

Gestore del Bean di Controllo ListenerLogin GestoreServizi BeanControllo1 BeanControllo2 BeanControllo3 GeneratoreCopie GestoreBeanControllo Autenticatore 1 – richiesta nome Bean di controllo Nodo Client 7 – crea 6 – nome Bean 3 – crea 4 – crea 2 – connect 5 – nome Bean 8 – connect ThreadPolling Ad ogni copia passiva del bean di controllo è associato un processo che rileva, ad intervalli regolari di tempo, lo stato di tutte le istanze associate alla copia attiva (Bean di controllo, Bean del secondo elenco, Bean del costo) e delle istanze associate alle copie passive. Il bean di controllo si presenta come un entità senza stato che notifica un evento alle azioni registrate: le singole copie rimangono in esecuzione per tutta la sessione utente

copia attiva Politica di prevenzione ai guasti BeanControllo1Bean del Costo1Bean 2°Elenco1 BeanControllo1 (BeanControlloFalso) BeanControllo2BeanControllo3 Fase di elezione BeanControllo1 (BeanControllo2) GestoreServizi BeanControllo1 1 – crash copia attiva2 – eliminazione copia3 – eliminazione copia 4 – crea copia fittizia 5 – elezione copia attiva 6 – inizializzazione 7 – invio richieste memorizzate 8- aggiornamento archivio Tecnica di recovery guasti su istanze attive: eliminazione delle istanze rimanenti associate alla copia attiva, fase di elezione guasti su istanze passive: eliminazione delle istanze rimanenti associate alla copia passiva Fase di elezione scambio dei codici identificativi tra tutte le copie passive del bean di controllo elezione della nuova copia attiva (copia con il codice minore) recupero eventi memorizzati nel Bean di controllo fittizio

Aggiornamento eager delle copie passive Aggiornamento eager delle copie passive il crash su una copia attiva del bean di controllo non impedisce laggiornamento delle copie passive restanti. il crash su una copia attiva del bean di controllo non impedisce laggiornamento delle copie passive restanti. Politica di prevenzione ai guasti Il protocollo è corretto se Il protocollo è corretto se ogni copia passiva del bean di controllo conosce le copie candidate attive ogni copia passiva del bean di controllo conosce le copie candidate attive altrimenti una copia può aspettare indefinitamente un codice da parte di una istanza passiva che potrebbe esser andata in crash. altrimenti una copia può aspettare indefinitamente un codice da parte di una istanza passiva che potrebbe esser andata in crash. La creazione delle copie fittizie (bean di controllo, bean del secondo elenco, bean del costo) La creazione delle copie fittizie (bean di controllo, bean del secondo elenco, bean del costo) evita lattivazione di più bean di controllo fittizi evita lattivazione di più bean di controllo fittizi nasconde la fase di elezione nasconde la fase di elezione

Server di naming GestoreNaming1GestoreNaming2GestoreNaming3 RilevatoreStatoGestori NamingObject 1 – arrivo richiesta 2 – crea stato 3 – memorizzazione richiesta in coda 4 – 102 : // /gestorenaming3 Laccesso ad un gestore di naming avviene tramite il NamingObject, una entità di servizio che dopo aver recuperato la lista di gestore di Naming disponibili accede ad un gestore in modo pseudocasuale. in caso di guasto, il NamingObject procede ad inviare la richiesta ad un altro gestore disponibile Il gestore di Naming accetta in ingresso il tipo di gestore a cui si vuole accedere e ritorna lelenco delle stringhe di connessione associate ai server che forniscono il servizio richiesto Codice prenotazione: indirizzo server

Server di Accesso allarchivio GestoreArchivio RichiestaAccesso Coordinatore Archivio1 Archivio2 Archivio3 Coordinatore coordinazione RichiestaAccesso Larchivio tiene traccia degli ordini effettuati da un cliente ed è localizzato su tre file: il recupero e la modifica delle informazioni include una fase di coordinamento tra le singole richieste che accedono alla risorsa. la suddivisione dellarchivio riduce i tempi medi di attesa in coda il gestore dellarchivio genera un processo per ogni richiesta di accesso il protocollo di sincronizzazione basato sull ordinamento dei tempi logici di Lamport coinvolge solo i coordinatori è fondamentale rilevare lo stato della Richiesta di accesso che utilizza al momento la risorsa

Server di autenticazione Autenticatore GestoreRecRisultati ServizioAutenticazione GeneratoreCopie GestoreCopieAutenticatrici NamingObject 1 – richiesta indirizzi IP 2 – indirizzi liberi Nodo Client 3 – crea 4 – connect 5 – crea 6 – crea 7 – recupera nome del cliente La fase di autenticazione permetterà allutente di accedere al carrello dei prodotti: lentità di servizio Autenticatore nasconde i dettagli della fase di login allapplicazione. Un guasto su una delle copie non compromette la fase di autenticazione tecnica alternativa: fase di coordinamento tra le copie prima del rilascio del risultato

Prototipo Un primo prototipo del sistema è stato sviluppato in Java, di conseguenza le invocazioni remote sono state implementate tramite Java RMI. unapplicazione esterna consente di visualizzare lo stato dei server e degli oggetti registrati nel registry la simulazione di un crash di un componente è ottenuta effettuando unoperazione di unbind ipotesi: i guasti non si verificano mai durante lesecuzione di una richiesta specificata dal client

Conclusioni Il sistema non fa alcuna ipotesi sui tempi di risposta a fronte di una richiesta del cliente: Il sistema non fa alcuna ipotesi sui tempi di risposta a fronte di una richiesta del cliente: politiche di load balancing tra i gestori di naming politiche di load balancing tra i gestori di naming ridurre il numero di invocazioni sul gestore di nomi ridurre il numero di invocazioni sul gestore di nomi Ulteriori sviluppi futuri includono lintroduzione di: Ulteriori sviluppi futuri includono lintroduzione di: procedure più complesse per il recovery ai guasti procedure più complesse per il recovery ai guasti gestione delle transazioni gestione delle transazioni accessi multipli dello stesso utente da diversi client accessi multipli dello stesso utente da diversi client