Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

35
Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea

Transcript of Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Page 1: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Un esempio di sistema di data base distribuito

La piattaforna e-learning di Indire

Di

Biondi Andrea

Page 2: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

E-learning

• L’e-learning di Indire è una piattaforma che ha lo scopo di insegnare ai professori delle scuole elementari e medie tematiche sulla nuova riforma della scuola.

• Utilizza il web come veicolo di apprendimento e le risorse utili alla formazione sono tutte caricate sulle pagine web.

• Architettura Client-Server

Page 3: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

E-learning

• Classe virtuale: ogni professore fa parte di un gruppo di studenti diretto da un tutor (gruppo di circa 20 studenti).

• I professori della stessa classe fanno parte della stessa regione.

• Il professore può lavorare sulla piattaforma senza problemi di orario all’ora che vuole e senza il bisogno degli altri membri della classe e nemmeno del tutor.

• Il tutor ha il compito di validare (non valutare) gli elaborati del professore e stabilire ambienti di discussione (forum) per condividere il percorso che viene intrapreso che rimane uguale per tutti.

Page 4: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.
Page 5: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.
Page 6: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Formazione

• Il percorso formativo si sviluppa attraverso un percorso di circa 5 mesi in cui il professore svolge delle attività dal proprio pc, manda degli elaborati, interviene in discussioni.

• Ad ogni attività svolta con successo vengono attribuiti dei crediti

Page 7: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

I crediti

• I crediti vengono attribuiti al professore:– In automatico: semplicemente scaricando dei

testi, eseguendo delle applicazioni dal proprio pc (es: scaricare dal web un software e installarlo correttamente sul proprio pc)

– Grazie al tutor che valida l’elaborato del professore o dando dei crediti per i numerosi interventi sui forum

Page 8: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Gestione della proprio iter formativo

• La piattaforma dà la possibilità non solo di eseguire tutte le attività ma anche di aver disponibile sempre on-line il proprio iter formativo svolto, in cui si possono rileggere i propri elaborati e controllarne la validazione (Portfolio attività)

Page 9: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Cosa deve memorizzare la piattaforma?

• Anagrafe di tutti i professori (200.000)• Contenuti per la creazione della piattaforma via web• Gestione del login • Gestire l’accesso dei diversi utenti: tutor e professori• Tenere il tracciamento delle attività del professore• Gestione delle comunità virtuali• Gestione dei forum• Gestione degli elaborati

Page 10: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Architettura della piattaforma

router Bilanciatore 2 switch

Web 1 Web 2 Web 3 … … … … Web 23

Bilanciatore 1

switch

Oracle 1 Oracle 2 Oracle 3 My sql

upload

Centra

Page 11: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Bilanciamento

• Ogni volta che si connette un utente questo deve essere assegnato ad una macchina web

• Dietro ogni ip che arriva può nascondersi o una rete o un singolo utente

• Criterio di assegnazione: si assegna l’utente alla macchina meno carica, non si assegna in base al numero di utente di quella macchina ma in base al suo tempo di risposta .

Page 12: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Macchina web

• Ogni macchina web gestisce la sessione dell’utente e tutte le operazioni che questo compie all’interno della struttura

• Si intrefaccia con i database• Si occupa di ricercare tutte le informazioni

necessarie• Conosce dove si trovano archiviate le

informazioni• Frammenta le query

Page 13: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Come sono suddivise le informazioni?

• Tabella anagrafica:– userId, paswdUT, tipoUtente, nome, cognome, scuola,mail,tutor

assegnato

• Tracciamento delle attività:– userId, paswdUt, nome, cognome, scuola, attività

• Login:– userId, paswdUt, campi relativi al login

• Comunità virtuali:– codUtente, Tutor, ambiente

• Forum:– Nome, cognome, scuola, temaForum, testo

Page 14: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Criterio principale per il buon funzionamento della piattaforma

• Se avessimo un solo data base su cui archiviare le informazioni in caso di numerosi accessi (100000-150000 utenti) si sovraccaricherebbe il sistema.

• Difficoltà a gestire insieme tutti gli utenti, ogni macchina web fa potenzialmente troppi accessi alla stessa macchina oracle.

• Evitare troppi accessi alla stessa macchina: suddividere le informazioni su più DataBase.

• Obiettivo: rendere veloce l’accesso alle informazioni.

Page 15: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Frammentazione e duplicazione

• Per frammentare le informazioni occorre considerare:– il rapporto tra applicazione e informazione

necessaria al suo funzionamento– Il legame che c’è tra le informazioni ed i

vincoli su ogni dato– La dimensione dei record

Page 16: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Rapporto tra applicazione e informazione

• Per ogni applicazione deve essere possibile ricercare immediatamente e in maniera ottimale le informazioni:

• Login

• Forum

• Tracciamento

• Invio e consultazione dei file

Page 17: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Login

• Nella macchina Oracle1 stanno tutte le informazioni relative all’anagrafica e al login.

• Supponendo di avere già caricati su Oracle1 tutti gli utenti, quando un utente accede le sue credenziali sono facilmente esaminate in questa tabella login senza dover consultare altre tabelle.

Page 18: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Forum

• Esistono due tipi di forum utilizzati in ambienti un po’ diversi:– Invision: è un forum che utilizzano professori e

tutor per confrontarsi su determinati temi ed è usato all’interno delle classi virtuali per discutere con i tutor e gli altri membri della classe

– Vbullentin: utilzzato per altri scopi

Page 19: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Forum

• Dove mettere i forum?– L’invio o la lettura di messaggi sui forum è una cosa assai

frequente quando l’utente è collegato.

• Insieme a login e all’anagrafe in Oracle1?– Si avrebbe tutto a disposizione subito con un solo accesso alla

macchina andando a ricercare le informazioni un po’ sulla tabella anagrafe e un po’ su quella dei forum senza così replicare colonne.

• In Oracle3?– Si potrebbe così frammentare i dati e con un accesso andare su

Oracle1 per la parte anagrafica e su Oracle3 per i contenuti dei forum.

Page 20: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Soluzione

• Il problema principale della piattaforma sono i troppi accessi ad un singolo DataBase quindi i dati stanno su Oracle3, per ragioni sempre di ottimizzazione del sistema, non sono state frammentate le informazioni ma replicate le colonne dell’anagraficha in modo da evitare accessi ad Oracle1 in caso di utilizzo del forum.

Page 21: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

VBullentin

• È un forum utilizzato poco e per questo è stato inserito all’interno di MySql– Le informazioni non sono replicate: si farà un

accesso ad Oracle1 e uno a MySql

Page 22: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Schema

Oracle 1

Oracle 3

My sql

Anagrafe: userId, paswdUT, tipoUtente, nome, cognome, scuola,mail,tutor assegnato

Login: userId, paswdUt, campi relativi al login

Forum Invision: tipoUtente, nome, cognome, scuola,mail, nomeForum, temaForum, testo

Forum VBullentin: nomeForum, temaForum, testo

Page 23: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Comunità virtuali

• Le informazioni sulle comunità virtuali sono mantenute su Oracle1 ed è un’associazione tra circa 20 professori e un tutor.

• È una tabella creata al momento della formazione della piattaforma e non replica le colonne dell’anagrafica ma fa solo l’associazione professore-tutor.

Page 24: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Il tracciamento

• Nota dolente del sistema:• Si deve tener traccia di tutto l’iter formativo

dell’utente e questo deve esser facile da ricostruire in fase di consultazione dalla macchina web.

• Lo scopo è anche quello di rilasciare alla fine dell’iter formativo l’attestato di frequenza

• Si è notato che l’utente tende spessissimo ad andare a vedere il proprio “portfolio” e a controllare se i suoi elaborati sono stati validati dal tutor.

Page 25: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.
Page 26: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.
Page 27: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Il tracciamento

• Si è deciso di tenere la tabella con le informazioni necessarie a ricostruire e ad aggiornare l’iter formativo dell’utente all’interno di Oracle1 (anagrafe, login, com.virtuali)

• Rendere l’evento più frequente più voloce da ricostruire

Page 28: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Il tracciamento

• Come memorizzare l’iter formativo:• Due casi:

– Dato che il percorso nelle varie aree è ben ristretto si potrebbe usare una colonna per ciascun singolo contenuto dell’area specifica e inserire nella riga corrispondente all’utente il numero di crediti ottenuti. La macchina Web così fa una ricerca sulla singola riga e mette insieme le informazioni necessarie

– Creare una singola colonna “attività” in cui Oracle attraverso una sua funzione particolare riesce a vettorizzare il record. In un solo campo della riga vi sono tutte le informazioni necessarie.

Page 29: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Il traccimetnto

• Si è deciso di tenere memorizzato tutto all’interno del singolo campo “attività”:– Diminuisce il contenuto della tabella

– Semplice da memorizzare il singolo vettore in memoria ed è più semplice fare la ricostruzione e la modifica in caso di inserimento di nuovi crediti:

• non si fa un accesso a tutta la riga ma si inserisce “attività-crediti” in modo sequenziale all’interno del vettore in un unico campo.

Page 30: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Eventi frequenti

• Durante la normale attività della piattaforma sono stati riscontrati dei problemi che hanno reso necessario la modifica di alcuni aspetti:

• Si è visto che circa il 50-60% delle volte gli utenti cambiavano la password e circa il 20% delle volte l’user-Id (soprattutto all’inizio)

Page 31: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Eventi frequenti

• La modifica di questi campi in un ambiente in cui le informazioni sono replicate , può portare ad un sovraccarico in fase di aggiornamento del sistema

• Per risovere questo problema:– Ad ogni utente si è dato un singolo codice identificativo in modo

tale che la modifica dell’userId vada a modificare solo la tabella Login e non debbano essere modificate tabelle in altri database

– Anche per la password la modifica continua e frequente ha portato a memorizzare una password fissa al momento della creazione dell’utente ed utilizzata sempre in caso accesso dell’utente nelle varie piattaforme. La modifica quindi andrà a cambiare solo il campo password nella tabella login.

Page 32: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Allineamento

• Ogni modifica all’interno dei data base è fatta in modo automatico dato che tutte le macchine sono allineate tra di loro.

• Anche nel caso in cui si inserisse un nuovo utente (cosa molto rara) o un tutor il sistema terrebbe aggiornato il tutto senza che le macchine web debbano intervenire direttamente.

Page 33: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

I contenuti

• I contenuti per creare graficamente la piattaforma sono all’interno delle macchine web

• Le altre informazioni erano inizialmente memorizzate all’intenro di Oracle1 poi si è visto che queste informazioni non erano collegate alle altre tabelle presenti nel data base quindi per liberare Oracle1 da questi accessi si è momorizzato il tutto in Oracle2 (fino ad ora non utilizzato)

• La macchina web sarà quindi capace di ritrovare queste informazioni in modo assai veloce.

Page 34: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Gestione dei contenuti

• I file che vengono mandati per essere visionati dal tutor vengono archiviati all’interno di una macchina Unix (300GB di memoria)

• Su ogni macchina web vi è una copia del file system (NFS) della macchina Unix

• Su MySql viene memorizzato l’elenco di tutti i documenti che sono presenti all’interno del sistema

• Su MySql vi è memorizzato la lista dei file anche per un secondo motivo:– I file validati dai tutor (se l’utente lo desidera) possono servire come

sussidio per gli altri professori– Gli utenti connessi hanno così a disposizione una biblioteca di file che

viene vista e letta attraverso due passaggi:• La ricerca e la consultazione dell’archivio su MySql• Il download attraverso la macchina Unix

Page 35: Un esempio di sistema di data base distribuito La piattaforna e-learning di Indire Di Biondi Andrea.

Centra

• Centra è una pacchetto software che permette l’utilizzo di una particolare comunità virtuale (comunicazione sincrona) in cui circa 12 utenti si connettono insieme in un orario prestabilito dal tutor

• Possono parlare insieme attraverso microfono-cuffia, chat testuale, video-camera una lavagna virtuale condivisa e discutere insieme di alcuni tempi particolari.

• Il tutor crea la classe virtuale segnando i professori che si sono prenotati per l’evento, queste informazioni sono memorizzate all’interno di Oracle2

• Di Centra viene solo utilizzato un software che gira sulle macchine web di cui è possibile solo utilizzare l’interfaccia interrogabile in php.

• Queste informazioni poi sono inviate ad una piattaforma che non è presente in Indire ma fuori, l’utente dopo il login viene connesso direttamente a questa piattaforma.