Un sistema software per la vendita di prodotti on-line Università degli studi di Bologna Facoltà...

16
Un sistema Un sistema software per la software per la vendita di vendita di prodotti prodotti on-line on-line Università degli studi Università degli studi di Bologna di Bologna Facoltà di ingegneria Facoltà di ingegneria Reti di calcolatori L- Reti di calcolatori L- S S Studente: Rinaldi Studente: Rinaldi Francesco Francesco Matricola 0900011421 Matricola 0900011421 Anno Accademico 2003/2004 Anno Accademico 2003/2004

Transcript of Un sistema software per la vendita di prodotti on-line Università degli studi di Bologna Facoltà...

Page 1: 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.

Un sistema Un sistema software per la software per la

vendita di prodotti vendita di prodotti on-lineon-line

Università degli studi di Università degli studi di BolognaBologna

Facoltà di ingegneriaFacoltà di ingegneria

Reti di calcolatori L-SReti di calcolatori L-S

Studente: Rinaldi FrancescoStudente: Rinaldi Francesco

Matricola 0900011421Matricola 0900011421

Anno Accademico 2003/2004Anno Accademico 2003/2004

Page 2: 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.

Acquisti on-lineAcquisti on-line

Cliente

tempi di risposta accettabili

Sicurezza dell’acquisto

disponibilità del servizio

Azienda

soddisfacimento del cliente

prevenzione di guasti

qualità del servizio

Page 3: 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.

Sistema SoftwareSistema Software Inserimento acquisti nel Inserimento acquisti nel

carrellocarrello Cancellazione acquisti dal Cancellazione acquisti dal

carrellocarrello Visualizzazione acquisti in Visualizzazione acquisti in

ordine di costoordine di costo Visualizzazione acquisti per Visualizzazione acquisti per

data di immissionedata di immissione Salvataggio acquisti su un Salvataggio acquisti su un

supporto di memorizzazionesupporto 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

Page 4: 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.

Modello publish-and-Modello publish-and-subscribesubscribe

Il cambio di stato di un elemento A implica l’invio di una notifica a uno o più componenti dipendenti, di cui A non conosce l’identità 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.

Page 5: 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.

I Java BeanI Java BeanUn bean in Java denota una classe di componentiUn bean in Java denota una classe di componenti

ProprietàProprietà

PersonalizzabilitàPersonalizzabilità

EventiEventi

IntrospezioneIntrospezione

PersistenzaPersistenza

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

Page 6: 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.

Architettura di reteArchitettura di reteLivelli dell’architettura di Livelli dell’architettura di

reterete Livello applicativoLivello applicativo Livello di servizioLivello di servizio ReteRete Livello ServerLivello Server

Tipi di server in esecuzioneTipi di server in esecuzione Server dell’utenteServer dell’utente Server di sistemaServer di sistema Server di supportoServer di supporto

Page 7: 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.

Architettura logicaArchitettura logica

BeanControllo

Bean di

elenco

Beandel

costo

Bean di

elencoAdapterElenco

AdapterCosto

ListenerCosto

ListenerElenco2

ListenerElenco1

Azione Login

Azione SaveAzione 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

L’elenco 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

Page 8: 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.

Tecnica di replicazioneTecnica di replicazione

BeanControllo Azione LoadBean del

costo

Bean di

Elenco

Azione Load

Azione LoadBeanControllo

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

Page 9: 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.

Gestore del Bean di Gestore del Bean di ControlloControllo

ListenerLogin

GestoreServizi

BeanControllo1

BeanControllo2BeanControllo3

GeneratoreCopie

GestoreBeanControlloAutenticatore

1 – richiesta nome Bean di controllo

Nodo Client

7 – crea

6 – nome Bean3 – crea

4 – crea

2 – connect

5 – nome Bean

8 – connect

ThreadPolling 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

Page 10: 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.

copia attivacopia attivacopia attiva

Politica di prevenzione ai Politica di prevenzione ai guastiguasti

BeanControllo1 Bean del Costo1Bean 2°Elenco1

BeanControllo1(BeanControlloFalso) BeanControllo2 BeanControllo3

Fase di elezioneBeanControllo1

(BeanControllo2)

GestoreServizi

BeanControllo1

1 – crash copia attiva

2 – eliminazione copia

3 – eliminazione copia

4 – crea copia fittizia

5 – elezione copia attiva

6 – inizializzazione

7 – invio richieste memorizzate8- 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

Page 11: 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.

Aggiornamento eager delle copie passiveAggiornamento eager delle copie passive il crash su una copia attiva del bean di controllo non il crash su una copia attiva del bean di controllo non

impedisce l’aggiornamento delle copie passive restanti.impedisce l’aggiornamento delle copie passive restanti.

Politica di prevenzione ai Politica di prevenzione ai guastiguasti

Il protocollo è correttoIl protocollo è corretto se se ogni copia passiva del bean di controllo conosce le copie ogni copia passiva del bean di controllo conosce le copie

candidate attive candidate attive altrimenti una copia può aspettare indefinitamente un codice da altrimenti una copia può aspettare indefinitamente un codice da

parte di una istanza passiva che potrebbe esser andata in crash. parte di una istanza passiva che potrebbe esser andata in crash.

La creazione delle copie fittizieLa creazione delle copie fittizie (bean di (bean di controllo, bean del secondo elenco, bean del costo) controllo, bean del secondo elenco, bean del costo) evita l’attivazione di più bean di controllo fittizi evita l’attivazione di più bean di controllo fittizi nasconde la fase di elezione nasconde la fase di elezione

Page 12: 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.

Server di namingServer di naming

GestoreNaming1 GestoreNaming2 GestoreNaming3

RilevatoreStatoGestori

NamingObject

1 – arrivo richiesta

2 – crea

stato stato stato

3 – memorizzazione richiesta in coda

4 – 102 : //156.7.0.98/gestorenaming3

L’accesso 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 l’elenco delle stringhe di connessione associate ai server che forniscono il servizio richiesto

Codice prenotazione: indirizzo server

Page 13: 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.

Server di Accesso Server di Accesso all’archivio all’archivio

GestoreArchivio

RichiestaAccesso CoordinatoreArchivio1

Archivio2

Archivio3

Coordinatore

Coordinatore

Coordinatore

coordinazione

RichiestaAccesso

RichiestaAccesso

RichiestaAccesso

L’archivio 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 dell’archivio riduce i tempi medi di attesa in coda

il gestore dell’archivio 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

Page 14: 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.

Server di autenticazioneServer di autenticazione

Autenticatore

GestoreRecRisultati

ServizioAutenticazione

ServizioAutenticazioneServizioAutenticazione

GeneratoreCopie

GestoreCopieAutenticatriciNamingObject

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à all’utente di accedere al carrello dei prodotti:

l’entità di servizio Autenticatore nasconde i dettagli della fase di login all’applicazione.

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

Page 15: 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.

PrototipoPrototipoUn primo prototipo del sistema è stato sviluppato in Java, di conseguenza le invocazioni remote sono state implementate tramite Java RMI.

un’applicazione esterna consente di visualizzare lo stato dei server e degli oggetti registrati nel registry

la simulazione di un crash di un componente è ottenuta effettuando un’operazione di unbind

ipotesi: i guasti non si verificano mai durante l’esecuzione di una richiesta specificata dal client

Page 16: 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.

ConclusioniConclusioni

Il sistema non fa alcuna Il sistema non fa alcuna ipotesi sui tempi di rispostaipotesi sui tempi di risposta a a fronte di una richiesta del cliente:fronte di una richiesta del cliente: politiche di politiche di load balancingload balancing tra i gestori di naming tra i gestori di naming ridurreridurre il numero di il numero di invocazioniinvocazioni sul gestore di nomi sul gestore di nomi

Ulteriori sviluppi futuri includono l’introduzione di:Ulteriori sviluppi futuri includono l’introduzione di: procedure più complesse per il procedure più complesse per il recovery ai guastirecovery ai guasti gestione delle gestione delle transazionitransazioni accessi multipliaccessi multipli dello stesso utente da diversi client dello stesso utente da diversi client