segnalazione emergenze fiumi 25 febbraio 2015 progetto di architettura del software e dei dati...

Post on 02-May-2015

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Segnalazione Emergenze Fiumi25 Febbraio 2015

Progetto di Architettura del Software e dei Dati

GRUPPO PRSZPerego Riccardo, 748503Re Depaolini Matteo, 751446Salvi Daniele, 748199Zardoni Matteo, 745573

Il problema in esame(1 di 5)

Si deve realizzare un sistema per l’osservazione della situazione idrogeologica del territorio e per la segnalazione di emergenze.Il sistema deve supportare:1. L’acquisizione in tempo reale di dati

idrometrici DI (livello dei corsi d’acqua) attraverso opportuni sensori e le serie storiche dei livelli osservati sono archiviati in una Base di Dati della rete Idrica (BRI) che fa parte del progetto

2

Il problema in esame(2 di 5)

2. L’acquisizione di segnalazioni di emergenze gravi SEG (esondazione in atto o a forte rischio) da parte di operatori a campo

3. L’acquisizione di previsioni meteo sul medio termine relative a una Regione accedendo a una Base Dati Meteo (BDM) esterna preesistente. Si assuma che BDM fornisca previsioni per ogni ora delle prossime 36 ore, articolate per celle spaziali di dimensione 10 x 10 chilometri

3

Il problema in esame(3 di 5)

4. L’identificazione di situazioni di emergenza potenziali SEP a medio termine (alcune ore), attraverso l’incrocio delle informazioni di BDM e DI. Le situazioni di emergenza potenziali devono esser rese visibili agli operatori di un Centro di Supervisione, ai Responsabili Territoriali della Protezione Civile e, in forma sintetica, a tutta la popolazione interessata

4

Il problema in esame(4 di 5)

5. La pianificazione degli spostamenti delle Squadre di Emergenza in base alle informazioni SEP. La pianificazione degli spostamenti delle squadre deve essere notificata ai Responsabili Territoriali della Protezione Civile e alle Squadre di Emergenza coinvolte. L’allocazione sul territorio delle Squadre di Emergenza deve essere memorizzata in una Base di Dati Segnalazione di Emergenza (BSE), che fa parte del progetto

5

Il problema in esame(5 di 5)

6. La notifica di emergenze gravi (SEG) alle squadre di emergenza più prossime

6

Assunzioni adottate(1 di 3)

1. Il sistema gestisce le possibili emergenze di una singola regione

2. Le rilevazioni vengono acquisite ogni ora tramite timestamp, espresso in millisecondi

3. Abbiamo supposto che non possa verificarsi un’emergenza in meno di un’ora

4. I dati che vengono forniti dal meteo sono i millimetri di pioggia che cadono nell’arco di un’ora in una cella 10 x 10 chilometri

7

Assunzioni adottate(2 di 3)

5. Il sensore è ancorato sul letto del fiume6. Gli operatori a campo sono componenti

delle Squadre di Emergenza7. Gli operatori sono inviati sul posto dalle

Squadre di Emergenza, e non dal sistema8. Un operatore a campo si dirige in

prossimità del sensore su indicazione della Squadra

9. Le Squadre si muovono nella zona di emergenza una volta effettuata una pianificazione

8

Assunzioni adottate(3 di 3)

10. Una situazione di emergenza potenziale non può diventare emergenza grave in meno di un’ora, in quanto supponiamo che il livello del fiume non possa aumentare in modo esagerato

11. Il sistema deve essere operativo 24 ore su 24

9

ARCHITETTURA DEL SOFTWARE

ARCHITETTURA DEL PROBLEMA (1 di 12)Modello dei Casi d’Uso (WHO)

11

ARCHITETTURA DEL PROBLEMA (2 di 12)Modello dei Casi d’Uso (WHO, WHERE)

12

ARCHITETTURA DEL PROBLEMA (3 di 12)Modello delle informazioni (WHAT)

13

ARCHITETTURA DEL PROBLEMA (4 di 12)Flussi informativi (HOW)

14

ARCHITETTURA DEL PROBLEMA (5 di 12)Flussi informativi (HOW)

15

ARCHITETTURA DEL PROBLEMA (6 di 12)Flussi informativi (HOW)

16

ARCHITETTURA DEL PROBLEMA (7 di 12)WHY

17

ARCHITETTURA DEL PROBLEMA (8 di 12)WHY

18

ARCHITETTURA DEL PROBLEMA (9 di 12)WHY

19

ARCHITETTURA DEL PROBLEMA (10 di 12)Frequenze e vincoli di tempo (WHEN)

20

ARCHITETTURA DEL PROBLEMA (11 di 12)Frequenze e vincoli di tempo (WHEN)

21

ARCHITETTURA DEL PROBLEMA (12 di 12)Frequenze e vincoli di tempo (WHEN)

22

ARCHITETTURA LOGICA 1 (1 di 3) (Non adottata)

23

ARCHITETTURA LOGICA 1 (2 di 3)(Non adottata)

24

ARCHITETTURA LOGICA 1 (3 di 3) (Non adottata)

25

FOOTPRINT ARCHITETTURA 1 (1 di 3) (Non adottata)

Componente Acquisizione Rilevazione

Abstract 10

Shared 33

Intraflow 0

Extraflow 14

Frequency 10

Complexity 10

Location 10

26

FOOTPRINT ARCHITETTURA 1 (2 di 3) (Non adottata)Componente IdentificazioneNotificaSEP

Abstract 50

Shared 41

Intraflow 0

Extraflow 71

Frequency 20

Complexity 50

Location 55

Supponendo di integrare i componenti IdentificazioneSEP e Notifica, ci si accorge dal footprint che non è una soluzione

ottimale: per questo abbiamo deciso di separarli

27

FOOTPRINT ARCHITETTURA 1 (3 di 3) (Non adottata)Componente Assistente SEG

Abstract 10

Shared 16

Intraflow 0

Extraflow 14

Frequency 10

Complexity 66

Location 10

28

ARCHITETTURA LOGICA 2 (1 di 2) (Adottata)

29

ARCHITETTURA LOGICA 2 (2 di 2) (Adottata)

30

FOOTPRINT ARCHITETTURA 2 (1 di 4) (Adottata)Componente Acquisizione Rilevazione

Abstract 10

Shared 33

Intraflow 0

Extraflow 14

Frequency 10

Complexity 10

Location 10

31

FOOTPRINT ARCHITETTURA 2 (2 di 4) (Adottata)Componente Identificazione SEP

Abstract 10

Shared 42

Intraflow 25

Extraflow 14

Frequency 10

Complexity 100

Location 10

32

FOOTPRINT ARCHITETTURA 2 (3 di 4) (Adottata)Componente Notifica

Abstract 10

Shared 25

Intraflow 25

Extraflow 57

Frequency 10

Complexity 10

Location 100

33

FOOTPRINT ARCHITETTURA 2 (4 di 4) (Adottata)Componente Assistente SEG

Abstract 10

Shared 16

Intraflow 0

Extraflow 14

Frequency 10

Complexity 66

Location 10

34

ARCHITETTURA CONCRETA (1 di 6)Modalità di interazione fra componenti

35

ARCHITETTURA CONCRETA (2 di 6)Modalità di interazione fra componenti

36

ARCHITETTURA CONCRETA (3 di 6)Modalità di interazione fra componenti

37

ARCHITETTURA CONCRETA (4 di 6)Modalità di interazione fra componenti

38

ARCHITETTURA CONCRETA (5 di 6) (Non adottata)

Deployment 1

39

ARCHITETTURA CONCRETA (6 di 6) (Adottata)

Deployment 2

40

SCELTE TECNOLOGICHE (1 di 4)Sistema di rilevazione dei livelli: PS-Light-2

41

SCELTE TECNOLOGICHE (2 di 4)Sistema di rilevazione dei livelli: PS-Light-2

42

PS-Light-2Intervallo di misurazione: 0-10 m, 0-20 m, 0-40 m, 0-70 mTemperatura di funzionamento: da -20C° a +50C°Output: RS 232 (seriale)Intervallo di misurazione: programmabile da 1 min in suSEBA - Data LoggerSalvataggio misurazione: nell’immediatoMemoria flash: 4MB per circa 280 000 misurazioniAlimentazione: batteria da 12VSlot SIM-CARD, modulo GPRS incluso

PREZZO: 1300€ per sensore

SCELTE TECNOLOGICHE (3 di 4)Server centrale: HP ProLiant BL460c

43

CPU: Intel Xeon E5-2650V2 2.6GHz 8 core Cache 20MBRAM: 32GB DDR3 SDRAM 1866MHz (espandibile fino a 256GB)Hard Disk: 3TB Serial ATA III 3,5” 6GB/sec

PREZZO: 3414€

SCELTE TECNOLOGICHE (4 di 4)Dispositivo Operatori a campo: Moto G 2014

44

CPU: Qualcomm Snapdragon Quadcore 1,2GHzRAM: 1GB LPDDR3 RAMStorage: 8GB (espandibile con microSD)Batteria: 2070 mAh Li-ionDisplay: 5” 1280x720 (294 ppi)Rete: GSM, GPRS + EDGE, UMTS, HSPA+Camera: 8MPOperating System: Android 5 Lollipop

PREZZO: 199€

RIEPILOGO COSTI (1 di 3)Costi fissi

45

1: 16 fiumi regione Lombardia. Un sensore in ogni porzione di fiume priva di emissari e affluenti. Ogni fiume 6 emissari (affluenti), si necessitano circa 16 x 6 sensori = 100 circa2: 35€/h per 2 persone per 5 ore di lavoro = 350€. * Tutti i prezzi orari e relativi a materiali sono lordi, e non sono considerati eventuali sconti applicabili in seguito all’accettazione del preventivo.

Prezzo Quantità Totale

Sensore 1300 € 1001 130000 €

Costi installazione 3502 € 100 35000 €

Server 3414 € 1 3414 €

Sviluppo Server

30 €/h5 persone,

8 ore al giorno, 5 mesi

132000 €

Mobile 199 € 50 9950 €

Sviluppo App Mobile 40 €/h 2 persone, 8 h al

giorno, 2 settimane 6400 €

Totale 316764* €

RIEPILOGO COSTI (2 di 3)Costi eventuali e mensili

46

PrezzoQuantit

à Dettagli Totale

Traffico Dati

Sensore9 € 1001 1GB (Vodafone Micro) 900 €

Traffico Operatori a

Campo22,9 € 50

400 min, 400 SMS, 1GB (Vodafone RAM

Mini)1145 €

Manutenzione

Sensori40 €/h

8 h x 5 giorni

20€ a persona, ogni 3-4 mesi 1600 €

Manutenzione

Sistema30 € 3

Costo relativo a un eventuale guasto 90 €

Totale 3735 €

RIEPILOGO COSTI (3 di 3)Costo Software

Prezzo Descrizione

Sistema Operativo Server 279 € Windows 8.1 Enterprise 64 Bit

Licenza DataBase 5000€/annoMySQL Enterprise

Edition1

1: Tale licenza rispetta le regole ACID delle transazioni, le operazioni di Commit, Rollback, Chiavi esterne, Livelli di insolazione tramite lock personalizzabili e prevede un ottimizzatore di query

47

ARCHITETTURA DEI DATI

Postazione(Latitudine, Longitudine, Rischio, CapienzaMax, Localita)

Sensore(idSensore, Latitudine, Longitudine) GrafoFiumi(idSensore1, idSensore2, Percentuale, Distanza)

Rilevazione(idSensore, PortataAttuale, VelocitaAttuale, TimeStamp)

REVERSE ENGENEERING (1 di 4)BRI: Modello Logico

49

REVERSE ENGENEERING (2 di 4)BRI: Modello Concettuale

50

REVERSE ENGENEERING (3 di 4)BDM: Modello Logico

Area-Quadrata(idCella, LatNE, LongNE, LatSO, LongSO)

Previsione(Data_Ora, idCella, Pioggia, Temperatura, idVento)

Vento(Nome, Classificazione, VelocitaAttuale, Quota, idVento)

51

REVERSE ENGINEERING (4 di 4)BDM: Modello Concettuale

52

DATA INTEGRATION (1 di 15)Integrazione di BDM e BRI

L’integrazione virtuale delle due basi di dati fisiche produce uno schema globale virtuale mappato sugli schemi locali. Tuttavia questa operazione porta a problemi di integrazione concettuale fra gli schemi locali fisici.53

DATA INTEGRATION (2 di 15)Eterogeneità e Corrispondenza Interschema

Durante l’attività di Data Integration sono sorte le seguenti eterogeneità:

Tipo Eterogenei

Relazioni Coinvolte

Attributo 1 Attributo 2 Dettagli

Omonimia BDM.VentoBRI.Rilevazione

VelocitaAttuale

VelocitaAttuale

Unità di misura

SinonimiaBDM.Postazione

BRI.Area-Quadrata

Latitudine LatNEStesso

concetto, nomi diversi

SinonimiaBDM.Postazione

BRI.Area-Quadrata

Latitudine LatSOStesso

concetto, nomi diversi

SinonimiaBDM.Postazione

BRI.Area-Quadrata

Longitudine LongNEStesso

concetto, nomi diversi

54

DATA INTEGRATION (3 di 15)Eterogeneità e Corrispondenza Interschema

Durante l’attività di Data Integration sono sorte le seguenti eterogeneità:

Tipo Eterogenei

Relazioni Coinvolte

Attributo 1 Attributo 2 Dettagli

SinonimiaBDM.VentoBRI.Rilevazione Longitudine LongSO

Stesso concetto,

nomi diversi

55

DATA INTEGRATION (4 di 15)Eterogeneità e Corrispondenza Interschema

Durante l’attività di Data Integration sono sorte le seguenti corrispondenze interschema:

Tipo Corrispondenza

Interschema

Relazioni Coinvolte

Attributo 1 Attributo 2

Dettagli

Corrispondenza Funzionale

BDM.PrevisioneBRI.Rilevazione Data_Ora

TimeStamp

Data_Ora = TimeStamp + 20 * 60 *

1000

AggregazioneBDM.Area-Quadrata

BRI.Postazione- -

Area-Quadrata è un’aggregazione di Postazione

56

DATA INTEGRATION (5 di 15)Schema Globale: Modello Concettuale

57

DATA INTEGRATION (6 di 15)Schema Globale: Progettazione logica

RilevazioneEPrevisione(idSensore, TimeStamp, Pioggia, Rischio, LivelloAttuale, VelocitaAttuale, idVento, Latitudine, Longitudine)

GrafoFiumi(idSensore1, idSensore2, Distanza, Percentuale)

Vento(idVento, VelocitaAttuale, Quota, Nome, Classificazione)

Postazione(Latitudine, Longitudine, Rischio, CapienzaMax, Localita)

Area-Quadrata(idCella, LatNE, LongNE, LatSO, LongSO)

58

DATA INTEGRATION (7 di 15)Mapping GAV: View Postazione

CREATE VIEW Postazione(Latitudine, Longitudine, Rischio, CapienzaMax, idCella) AS

SELECT P.Latitudine AS Latitudine, P.Longitudine AS Longitudine, P.Rischio, P.CapienzaMax, AQ.idCella

FROM BRI.Postazione AS P, BDM.Area_Quadrata AS AQ

WHERE P.Latitudine < AQ.LatNE AND P.Longitudine < AQ.LongNE AND P.Latitudine > AQ.LatSO AND P.Longitudine > AQ.LongSO

59

DATA INTEGRATION (8 di 15)Mapping GAV: View RilevazioneEPrevisione

CREATE VIEW RilevazioneEPrevisione(idSensore, Timestamp, Pioggia, PortataAttuale, VelocitaAttuale, idVento, Latitudine, Longitudine) AS

SELECT S.idSensore AS idSensore, R.TimeStamp AS TimeStamp, P.Pioggia AS Pioggia, R.PortataAttuale AS PortataAttuale, R.VelocitaAttuale AS VelocitaAttuale, P.idVento AS idVento, S.Latitudine AS Latitudine, S.Longitudine AS Longitudine

FROM (BDM.Area_Quadrata AS AQ INNER JOIN BDM.Previsione AS P ON P.cella = AQ.idCella)

LEFT OUTER JOIN

(BRI.Sensore AS S INNER JOIN BRI.Rilevazione AS R ON R.idSensore = S.idSensore)

ON R.Timestamp = P.Data_Ora

WHERE S.idSensore is Null OR (S.Latitudine < AQ.LatNE AND S.Longitudine < AQ.LongNE AND S.Latitudine > AQ.LatSO AND S.Longitudine > AQ.LongSO)

60

DATA INTEGRATION (9 di 15)Mapping GAV: Precisazione su RilevazioneEPrevisione

Per poter fare l’integrazione, il Wrapper relativo allo schema locale ha l’obbligo di trasformare il dato in un formato compatibile al Mediatore. Il Wrapper inoltre trasforma Timestamp e Data_Ora in un formato opportuno per un confronto tra i due (come ad esempio due interi).

Trasforma anche le coordinate latitudine e longitudine in interi confrontabili.

Ogni rilevazione viene effettuata a cadenza oraria. Nell’arco orario, il sensore al minuto :40 effettua la rilevazione, e all’ora precisa (:00) il sistema riceve le nuove previsioni meteorologiche. Il Wrapper è in grado di associarle trasformandole in un intero per poter effettuare il Join.

61

DATA INTEGRATION (10 di 15)Conversione Timestamp - Data_Ora in formato

compatibile

62

DATA INTEGRATION (11 di 15)Mapping GAV: View Area-Quadrata

CREATE VIEW Area-Quadrata(idCella, LatNE, LongNE, LatSO, LongSO) AS

SELECT AQ.idCella AS idCella, AQ.LatNE AS LatNE, AQ.LongNE AS LongNE, AQ.LatSO AS LatSE, AQ.LongSO AS LongSO

FROM BDM.Area-Quadrata AS AQ

63

DATA INTEGRATION (12 di 15)Mapping GAV: View Vento

CREATE VIEW Vento(idVento, VelocitaVento, Quota, Nome, Classificazione) AS

SELECT V.idVento AS idVento, V.VelocitaAttuale AS VelocitaVento, V.Quota AS Quota, V.Nome AS Nome, V.Classificazione AS Classificazione

FROM BDM.Vento AS V

64

DATA INTEGRATION (13 di 15)Mapping GAV: View GrafoFiumi

CREATE VIEW GrafoFiumi(idSensore1, idSensore2, Distanza, Percentuale) AS

SELECT GF.idSensore1 AS idSensore1, GF.idSensore2 AS idSensore2, GF.Distanza AS Distanza, GF.Percentuale AS PercentualeFROM BRI.GrafoFiumi AS GF

65

DATA INTEGRATION (14 di 15)Query applicazione e Unfolding

“Trovare tutte le latitudini e longitudini dell’area di previsioni con id 764”

Query sullo schema globale:

SELECT AQ.latitudine AS latitudine, AQ.longitudine AS longitudine

FROM AreaQuadrata AS AQ

WHERE AQ.idCella = 764

La seguente query non è supportata da tutti i database:

SELECT Latitudine, Longitudine

FROM (

SELECT AQ.idCella AS idCella, AQ.LatNE AS LatNE, AQ.LongNE AS LongNE, AQ.LatSO AS LatSE, AQ.LongSO AS LongSO

FROM BDM.Area_Quadrata AS AQ

)

WHERE idCella = 764

66

DATA INTEGRATION (15 di 15)Query applicazione e Unfolding

La seguente query è supportata dalla maggior parte dei database:SELECT AQ.Latitudine AS Latitudine, AQ.Longitudine AS LongitudineFROM BDM.AreaQuadrata AS AQWHERE AQ.idCella = 764

67

La seguente query è supportata dalla maggior parte dei database:

SELECT AQ.Latitudine AS Latitudine, AQ.Longitudine AS

Longitudine

FROM BDM.AreaQuadrata AS AQ

WHERE AQ.idCella = 764

FORMATO APERTO (1 di 4)Scelta del formato aperto da usare: CSV

Consideriamo questa porzione di un documento CSV. Tale documento contiene tutti i dati delle rilevazioni svolte coi relativi timestamp. Una porzione del contenuto potrebbe essere la seguente:

Timestamp;Pioggia;LivelloAttuale;VelocitaAttuale;Latitudine;Longitudine;Localita;;1424788517290;0;3;2;45.400114;8.848202;Abbiategrasso;;1424794517290;2;4;1;45.542967;9.526951;Groppello D’Adda;;1424796917290;1;2;2;45.666327;9.255565;Triuggio;;

Abbiamo scelto di utilizzare come formato il CSV in quanto è un formato aperto, ed è machine-readable quindi leggibile da macchine programmabili.

68

FORMATO APERTO (2 di 4)Scelta della licenza

Visto che il sistema deve prevedere il rilascio dei dati in formato aperto, abbiamo pensato di rendere la distribuzione gratuita di una parte dei dati contenuti nei CSV, ad esempio tramite la pubblicazione di tali file sui relativi siti della Regione.

Timestamp;Pioggia;LivelloAttuale;VelocitaAttuale;Localita;;1424788517290;0;3;2;Abbiategrasso;;1424794517290;2;4;1;Groppello D’Adda;;1424796917290;1;2;2;Triuggio;;

69

FORMATO APERTO (3 di 4)In merito alla privacy…

Per quanto riguarda le questioni della privacy, i file CSV contenenti le rilevazioni non contengono dati sensibili.

Tuttavia, visto che abbiamo supposto che la localizzazione dei sensori è precisa, i valori di latitudine e longitudine potrebbero essere utilizzati da malintenzionati per danneggiare i sensori. Infatti, i dati che sono pubblicati ad esempio sui siti delle regioni non contengono tali valori.

70

FORMATO APERTO (4 di 4)IODL 2.0

Per il rilascio abbiamo deciso di utilizzare una licenza IODL v2.0.

La "Italian Open Data License" (IODL) è un contratto di licenza che ha lo scopo di consentire agli utenti di condividere, modificare, usare e riusare liberamente la banca di dati, i dati e le informazioni con essa rilasciati, garantendo al contempo la stessa libertà per altri. La presente licenza mira a facilitare il riutilizzo delle informazioni pubbliche nel contesto dello sviluppo della società dell’informazione. Con la licenza IODL 2.0 è possibile riprodurre, distribuire al pubblico, concedere in locazione, presentare e dimostrare in pubblico, comunicare al pubblico (messa a disposizione del pubblico inclusa), trasmettere e ritrasmettere in qualunque modo, eseguire, recitare, rappresentare, includere in opere collettive e/o composte pubblicare, estrarre e reimpiegare le Informazioni.

71

top related