La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

APPELLO 12/02/2014 STUDENTE: LUCA GRAZIOLI MATRICOLA: 736245 Progetto di Architetture del software e dei dati.

Presentazioni simili


Presentazione sul tema: "APPELLO 12/02/2014 STUDENTE: LUCA GRAZIOLI MATRICOLA: 736245 Progetto di Architetture del software e dei dati."— Transcript della presentazione:

1 APPELLO 12/02/2014 STUDENTE: LUCA GRAZIOLI MATRICOLA: 736245 Progetto di Architetture del software e dei dati

2 Testo del problema - 1 Si deve realizzare un sistema per l’acquisizione dei dati fisiologici (ad esempio, la frequenza del battito cardiaco) di atleti che svolgono attività di allenamento. Gli utenti del sistema sono gli atleti e i loro allenatori. Il sistema deve supportare: 1. l’acquisizione “in tempo reale” dei dati fisiologici degli atleti; 2. l’indicazione, da parte degli atleti, dell’inizio e della fine di una attività di allenamento, specificandone il tipo (ad esempio, “corsa di 5000 metri); 3. l’archiviazione dei dati relativi ai singoli atleti in una Base relazionale DatiAllenamenti BDA; 4. la visualizzazione in remoto, da parte degli allenatori, dei dati relativi agli atleti di loro competenza che stanno svolgendo un allenamento;

3 Testo del problema - 2 5. la visualizzazione in remoto, da parte degli atleti, dei dati relativi all’allenamento che tanno svolgendo; 6. l’elaborazione di statistiche per ricavare informazioni aggregate (ad esempio, per atleta, per allenamento e per tipo di attività) e la loro visualizzazione da parte degli allenatori e degli atleti; 7. la comparazione, da parte degli allenatori, delle informazioni relative a un singolo atleta con informazioni analoghe relative ai diversi tipi di attività, che sono archiviate in una Base Dati relazionale dei Parametri Fisiologici BDF esterna preesistente. Si richiede di definire, utilizzando i formalismi opportuni: 1. l’architettura del problema in termini di informazioni e flussi informativi; 2. l’architettura logica in termini di componenti di elaborazione;

4 Testo del problema - 3 3. l’architettura concreta in termini di modalità di interazione fra componenti; 4. l’architettura di deployment; 5. le scelte tecnologiche (componenti hw, reti di comunicazione, piattaforme sw); 6. gli schemi concettuali delle basi di dati BDA e BDF, avendo cura di prevedere in tali schemi concettuali almeno una eterogeneita’ e almeno una proprieta’ interschema. 7. le modalità e i problemi di integrazione concettuale fra BDA e BDF. 8. lo schema concettuale globale risutato della integrazione delle Basi Dati BDA e BDF; 9. assumendo di utilizzare una architettura di integrazione dati (virtual data integration), e assumendo di scegliere i mapping secondo la modalita’ Global as View, i mapping tra schema logico globale relazionale e schemi locali relazionali di BDA e BDF; 10. una interrogazione sullo schema globale, con il suo unfolding sugli schemi locali;

5 Testo del problema - 4 11. Il sistema deve anche essere in grado di pubblicare parte dei dati contenuti nella architettura di integrazione (a scelta dello studente e tenuto conto di eventuali problemi di privacy) in formato aperto (indicando un insieme di metadati, tra cui il tipo di licenza con cui vengono rilasciati), indicando almeno una applicazione che potrebbe avvantaggiarsi dall’utilizzo di questi dati. Le scelte architetturali dovranno essere discusse presentandone le motivazioni ed evidenziando, ove opportuno, possibili scelte alternative con i relativi vantaggi e svantaggi (ad esempio, per la architettura dati, una scelta di tipo base dati distribuita, con le relative problematiche di replicazione e distribuzione dei frammenti).

6 Assunzioni Attività e allenamento sono la stessa cosa; Quali attività un atleta dovrà svolgere, vengono decise privatamente tra atleta e allenatore, tale decisione non è memorizzata nel sistema; Un atleta può svolgere una attività alla volta; Per un'attività in corso atleta e allenatore vedono dati con frequenza di aggiornamento differente; Il contesto è un centro sportivo di medie dimensioni (vedi dimensionamento); Gli allenamenti possono essere svolti anche lontani dal centro sportivo.

7 Dimensionamento - 1 Totale atleti iscritti: circa 3000; N° Atleti attivi in media all’ora: 100; Totale allenatori: 300; Atleti seguiti a settimana da un allenatore: 10; Numero attività svolte da un atleta giornalmente: 7; Totale attività svolte giornalmente: circa 10000; Richieste di visualizzazione allenamenti in corso: circa 40000 (metà atleta, metà allenatori); Richieste di visualizzazione storico allenamenti: 20000 (metà atleta, metà allenatori);

8 Dimensionamento - 2 Rilevazione battito cardiaco: da 1 a 3 volte al secondo massimo Variazione temperatura corporea: 0,06°C/s Richiesta comparazione dati fisiologici al giorno: circa 5000

9 Architettura del problema

10 Casi d’uso

11 Modello dei dati

12 Segnala inizio attività

13 Acquisisci frequenza cardiaca - 1

14 Acquisisci frequenza cardiaca - 2

15 Acquisisci temperatura - 1

16 Acquisisci temperatura - 2

17 Aggiungi dato fisiologico (generale)

18 Aggiorna attività

19 Concludi attività

20 Compara info atleta

21 Elabora statistiche allenamento

22 Elabora statistiche atleta/attività

23 Visualizza attività in corso allenatore

24 Visualizza attività in corso atleta

25 Visualizza attività svolte atleta

26 Visualizza statistiche aggregate

27 Architettura logica

28 Partizionamento Scelto partizionamento multidimensionale:  A livello sensori dei dati fisiologici scelto partizionamento orizzontale  Tutto il resto si può ricondurre a un partizionamento verticale Per quanto riguarda le molteplicità N intende il numero di atleti.

29 Rilevatore battiti/temperatura

30 Elaboratore frequenza cardiaca

31 Elaboratore temperatura

32 Segnala inizio attività (GestoreAtleta)

33 Concludi attività

34 Aggiorna attività

35 Comparatore parametri fisiologici

36 Gestore statistiche - 1

37 Gestore statistiche - 2

38 Visualizza attività in corso allenatore

39 Visualizza attività in corso atleta

40 Visualizza attività svolte atleta

41 Visualizzatore Statistiche Aggregate

42 Segnala inizio attività

43 Acquisisci temperatura

44 Acquisisci frequenza cardiaca

45 Aggiorna attività

46 Concludi attività

47 Elabora statistica

48 Visualizza attività in corso allenatore

49 Visualizza attività in corso atleta

50 Architettura concreta

51 Soluzione 1

52 Soluzione 1 valutazione Pro: Rispetta la suddivisione fornita dal problema Sensori estremamente semplici Device allenatore limitato alla sola interfaccia con il server Contro: Nodo centrale che necessità di un elevata potenza di calcolo Dispositivo atleta complesso Elevata frequenza di connessioni tra sensori e dispositivo atleta Sensore più difficile da reperire commercialmente

53 Soluzione 2

54 Soluzione 2 valutazione Pro: Rispetta la suddivisione fornita dal problema Device allenatore limitato alla sola interfaccia con il server Drastica diminuzione del numero di connessioni richieste tra device atleta e sensori Device atleta più semplice e modulabile Sensore più facilmente reperibile commercialmente Contro: Nodo centrale che necessita di un elevata potenza di calcolo

55 Soluzione 3

56 Soluzione 3 valutazioni Pro: Minor potenza di calcolo richiesta nel server centrale Device atleti più semplici Device allenatori limitati alla sola interfaccia server Contro: Solo per centri sportivi con sedi distaccate Aumento costi Necessità di continui collegamenti tra sedi distaccate e sedi centrali

57 Soluzione scelta: 2 Stima dei costi Costo infrastruttura hardware: Costo nodo centrale: 4000€ Costo elaboratore statistiche: 2000€ Costo storage: 10000€ Infrastruttura comunicazione: 35€/mese Sensori: 50€/sensore (a carico atleta)

58 Stima dei costi -2 Costo infrastruttura software: Sviluppo software:  Nodo centrale: 1 team di sviluppo 3 settimane di lavoro, costo 20000€  Nodo statistica: 1 team di sviluppo 2 settimane di lavoro, costo 15000€ Applicazione Android/iOS: 10000€ Costo licenze: 4000€ Manutenzione: 2 team di sviluppo 1 settimana al mese 1500€/mese Totale costi: 65000€ + 1535€/mese

59 Soluzione 2 & cloud computing Stima dei costi (es su Windows Azure)  Nodo centrale opzione A6, costo 394€/mese (0,53€/ora, per circa 700 ore di utilizzo)  Nodo statistiche opzione A7, costo 782€/mese (1,06€/ora)  Archiviazione 6TB/mese, costo 305€/mese  Costo mensile totale: 1481€/mese Costo sviluppo:  Nodo centrale: 10000€  Nodo statistica: 8000€  Applicazione Android/iOS: 10000€  Manutenzione: 700€/mese

60 Riassumendo Costo totale messa in cloud: 28000€ + 2181€/mese Differenza costo fase iniziale: (65000-28000)€ = 37000€ Differenza costo mensile: (2181-1535)€ = 646€/mese Per i primi 57 mesi conviene il servizio cloud Windows Azure, dopodiché a seconda dell’espansione del servizio dovrà seguire una valutazione ulteriore.

61 Architettura dati

62 Tavola delle frequenze OperazioneFrequenza T1 = inserimento nuova attività10.000 al giorno Q1= visualizza allenamento in corso atleti 20.000 al giorno Q2 = visualizza allenamenti in corso allenatori 20.000 al giorno Q3 = visualizza storico allenamenti da atleti 10.000 al giorno Q4 = visualizza storico allenamenti da allenatori 10.000 al giorno Q5 = visualizza attività svolte per elab. statistiche Circa 26 al giorno

63 BDA schema concettuale Atleta Allenatore Attività Allena Frequenza_cardiaca userID nome dataNascita userID (0,1) (0,N) Svolte (0,N) (1,1) cognome categoria nome dataNascita cognome tipologia inizio fine nome id sport settore (1,1) Temperatura timestamp temp tipoSensore unitàDiMisura Sensore nome precisione id grandezzaMisurata Utilizzo (0,N) heart_rate (0,N) (1,1) timestamp tipoSensore unitàDiMisura sesso

64 BDA Schema logico Atleta (UserID,Nome,Cognome,Categoria,DataDiNascita,Sesso) Allenatore (UserID,Nome,Cognome,Tipologia,DataDiNascita) Allena (Atleta,Allenatore) Attività (Id, Nome,Inizio,Fine,Atleta,Sport) Sensore (Id,nome,precisione,grandezzaMisurata) SensoreAtt (Attività,Sensore) Freq_cardiaca (heart_rate,Attività,timestamp,tipoSensore,unitàDiMisura) Temperatura (temp,Attività,timestamp,tipoSensore,unitàDiMisura)

65 BDF schema concettuale

66 BDF Schema logico DatoFisiologico (Nome,unitàDiMisura) Individuo (Id,sesso,età,categoria) Stato (Nome,,tipoSforzo) Sport (Nome,aSquadre/individuale) Misura (DatoFisiologico,Persona,Stato,Stagione,ValoreMax,ValoreMin,ValoreMedio) StatoSport (Stato,Sport) Strumento (nome,commerciale/professionale) DatoRaccolto (DatoFis,Strumento)

67 Soluzione centralizzata Pro: Compatibile con scelta di deployment Elaborazione statistiche semplice Costi minori Manutenzione più facile Contro: Rischio collo di bottiglia con crescita del servizio No ridondanza dati (servizio cloud può aggirare il problema) Basso parallelismo

68 Soluzione distribuita Supponendo che il centro sportivo abbia 3 sedi (rispettivamente una sede centrale a Milano, e due sedi distaccate a Bergamo e a Verona) e che in fasi di registrazione all’atleta venga aggiunto l’attributo sedeRegistrazione, si potrebbe avere la seguente allocazione di frammenti. Bergamo: AtletaBG, AttivitàBG, AllenatoreBG, Sensore, Frequenza_CardiacaBG, TemperaturaBG; Verona: AtletaVR, AttivitàVR, AllenatoreVR, Sesnsore, Frequenza_CardiacaVR, TemperaturaVR; Milano: Atleta, Attività, Allenatore, Sensore, Frequenza_Cardiaca, Temperatura;

69 Esempi di frammenti espressi secondo SLG BDA CREATE VIEW AtletaBG AS ( SELECT Atleta.userID, Atleta.Nome, Atleta.Cognome, Atleta.Categoria, Atleta.DataNascita, Atleta.Sesso FROM Atleta WHERE Atleta.SedeRegistrazione = «Bergamo» ) CREATE VIEW AttivitàBG AS ( SELECT * FROM Attività JOIN Atleta ON Attività.Atleta = Atleta.userID WHERE Atleta.SedeRegistrazione = «Bergamo» )

70 Soluzione distribuita valutazione Pro: Principio di località rispettato Prestazioni Resilienza Contro: Costi Manutenzione Complessità

71 Soluzione scelta: centralizzata Non richiede modifiche alla soluzione di deployment scelta; L’eventuale utilizzo di un servizio cloud aggira alcuni problemi del sistema centralizzato (esempio resistenza ai guasti); L’elaborazione delle statistiche viene eseguita in modo efficiente senza richiedere un’eccessiva replicazione dei dati.

72 Virtual Data Integration: individuazione etereogeneità e proprietà interschema Concetto 1 (da BDA)Concetto 2 (da BDF)Proprietà Attributo Attività.SportEntità SportEterogeneità (ET1) Attributo Atleta.DataNascita Attributo Individuo.EtaEterogeneità, legame funzionale. (ET2) Persona.Età = AnnoAttuale- Atleta.DataNascita Entità Frequenza_Cardiaca Entità DatoFisiologicoProprietà interschema, IS-A (IS1) Entità TemperaturaEntità DatoFisiologicoProprietà interschema, IS-A (IS2)

73 Risoluzione eterogeneità ProprietàConcetto 1Concetto 2Concetto SI ET1Attributo Attività.Sport Entità Sport ET2Attributo Atleta.DataNascita Attributo Individuo.DataNascita

74 Schema concettuale globale

75 Schema logico globale DatoFisiologico (Nome,unitàDiMisura,tipoSensore) Freq_cardiaca (Nome,unitàDiMisura,tipoSensore,heart_rate,Attività,timestamp) Temperatura (Nome,unitàDiMisura,tipoSensore,temp,Attività,timestamp) Attività (id,nome,inizio,fine,settore,Atleta,Sport) Strumento (nome,commerciale/professionale) DatoRaccolto (DatoFis,Strumento) Sensore (Id,nome,precisione,grandezzaMisurata) SensoreAtt (Attività,Sensore) Individuo (Id,sesso,DataNascita,categoria) Atleta (UserID,Nome,Cognome,Categoria,Individuo) Allenatore (UserID,Nome,Cognome,Tipologia,Individuo) Allena (Atleta,Allenatore) Stato (nome,tipoSforzo) Sport (Nome,aSquadre/individuale) Misura (DatoFisiologico,Persona,Stato,Stagione,ValoreMax,ValoreMin,ValoreMedio) StatoSport (Stato,Sport)

76 Mapping GAV CREATE VIEW DatoFisiologico AS ( SELECT DatoFisiologico.Nome, DatoFisiologico.unitàDiMisura, «» FROM BDF.DatoFisiologico UNION SELECT «frequenza_cardiaca», Frequenza_Cardiaca.unitàDiMisura, Frequenza_Cardiaca.tipoSensore FROM BDA.Frequenza_Cardiaca UNION SELECT «temperatura», Temperatura.unitàDiMisura, Temperatura-tipoSensore FROM BDA.Temperatura ) CREATE VIEW Frequenza_cardiaca AS ( SELECT «frequenza_cardiaca>>, frequenza_cardiaca.unitàDiMisura, frequenza_cardiaca.tipoSensore, frequenza_cardiaca.heart_rate, frequenza_cardiaca.attività, frequenza_cardiaca.timestamp FROM BDA.Frequenza_Cardiaca ) CREATE VIEW Temperatura AS ( SELECT «temperatura>>, temperatura.unitàDiMisura, temperatura.tipoSensore, temperatura.heart_rate, temperatura.attività, temperatura.timestamp FROM BDA.Temperatura )

77 Mapping GAV CREATE VIEW Attività AS ( SELECT * FROM BDA.Attività ) CREATE VIEW Strumento AS ( SELECT * FROM BDF.Strumento ) CREATE VIEW DatoRaccolto AS( SELECT * FROM BDF.DatoRaccolto ) CREATE VIEW Sensore AS ( SELECT * FROM BDA.Sensore )

78 Mapping GAV CREATE VIEW SensoreAtt AS ( SELECT * FROM BDA.SensoreAtt ) CREATE VIEW Individuo AS ( SELECT Individuo.Id, Individuo.sesso, (AnnoAttuale- Individuo.Età), Individuo.categoria FROM BDF.Individuo ) CREATE VIEW Atleta AS( SELECT Atleta.userID, Atleta.Nome, Atleta.Cognome, Atleta.Categoria, Individuo.ID FROM BDA.Atleta,BDF.Individuo WHERE BDA.Atleta.sesso = BDF.Individuo.Sesso AND BDA.Atleta.DataNascita = (AnnoAttuale – BDF.Individuo.Età) )

79 Mapping GAV CREATE VIEW Allenatore AS ( SELECT Allenatore.userID, Allenatore.Nome, Allenatore.Cognome, Allentatore.Tipologia, «» FROM BDA.Allenatore ) CREATE VIEW Allena AS ( SELECT * FROM BDA.Allena ) CREATE VIEW Stato AS ( SELECT * FROM BDF.Stato ) CREATE VIEW Sport AS ( SELECT * FROM BDF.Sport UNION SELECT Attività.Sport, «» FROM BDA.Attività )

80 Mapping GAV CREATE VIEW Misura AS ( SELECT * FROM BDF.Misura ) CREATE VIEW StatoSport AS ( SELECT * FROM BDF.StatoSport )

81 Esempio unfolding di query Q = Trovare frequenza cardiaca massima e minima attesa per l’atleta con userID «FL23». Interrogazione su SLG SELECT Atleta.userID, Misura.ValoreMax, Misura.ValoreMin FROM ((Atleta JOIN Individuo) ON Atleta.userID = Individuo.ID) JOIN Misura ON Indivduo.ID = Misura.Persona WHEREAtleta.userID = «FL23» AND Misura.DatoFisiologico = «frequenza_cardiaca»

82 Unfolding query SELECT userID, ValoreMax, ValoreMin FROM ( SELECT Atleta.userID, Atleta.Nome, Atleta.Cognome, Atleta.Categoria, Individuo.ID FROM BDA.Atleta,BDF.Individuo WHERE BDA.Atleta.sesso = BDF.Individuo.Sesso AND BDA.Atleta.DataNascita = (AnnoAttuale - BDF.Individuo.Età) JOIN( SELECT Individuo.Id, Individuo.sesso, (AnnoAttuale- Individuo.Età), Individuo.categoria FROM BDF.Individuo ) ON Atleta.userID = Individuo.ID ) JOIN SELECT * FROM BDF.Misura ON Individuo.ID=Misura.Persona WHERE Atleta.userID = «FL23» AND Misura.DatoFisiologico = «Frequenza_cardiaca»

83 Pubblicazione dati È stato scelto di pubblicare i dati relativi alle relazioni: Sensore; Attività; Sport; Frequenza_Cardiaca; Temperatura; In particolare dalla relazione Attività viene rimosso l’identificatore per motivi di privacy.

84 Licenza e insieme metadati La licenza scelta per la pubblicazione è la CC BY in quanto permette un utilizzo commerciale dei dati consentendo anche la compatibilità interlicenza. Inoltre tale licenza obbliga l’utilizzatore dei dati a riconoscere la paternità dell’autore. Insieme metadati scelti: Sensore: nome, precisione, grandezzaMisurata; Attività: nomeSensore, inizio, fine, settore, sport, frequenza_cardiaca, temperatura; Sport: nome; Frequenza_cardiaca: heart_rate; Temperatura: temp;

85 Applicazioni possibili Applicazione commerciale: sfruttando i dati sul sensore è possibile condurre indagini sulle caratteristiche dei sensori più utilizzati per ogni sport Applicazione biomedicale: confrontare i dati fisiologici di atleti con altri.


Scaricare ppt "APPELLO 12/02/2014 STUDENTE: LUCA GRAZIOLI MATRICOLA: 736245 Progetto di Architetture del software e dei dati."

Presentazioni simili


Annunci Google