Segnalazione Emergenze Fiumi
25 Febbraio 2015
Progetto di
Architettura del
Software e dei Dati
GRUPPO PRSZ
Perego Riccardo, 748503
Re Depaolini Matteo, 751446
Salvi Daniele, 748199
Zardoni 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.
3.
L’acquisizione di segnalazioni di emergenze gravi SEG
(esondazione in atto o a forte rischio) da parte di
operatori a campo
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
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
possa
verificarsi
Assunzioni adottate
(2 di 3)
5.
6.
7.
8.
9.
Il sensore è ancorato sul letto del fiume
Gli operatori a campo sono componenti delle
Squadre di Emergenza
Gli operatori sono inviati sul posto dalle Squadre
di Emergenza, e non dal sistema
Un operatore a campo si dirige in prossimità del
sensore su indicazione della Squadra
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
Supponendo di integrare i componenti IdentificazioneSEP e Notifica, ci si
accorge dal footprint che non è una soluzione ottimale: per questo abbiamo
deciso di separarli
Abstract
50
Shared
41
Intraflow
0
Extraflow
71
Frequency
20
Complexity
50
Location
55
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
PS-Light-2
Intervallo di misurazione: 0-10 m, 0-20 m, 0-40 m, 0-70 m
Temperatura di funzionamento: da -20C° a +50C°
Output: RS 232 (seriale)
Intervallo di misurazione: programmabile da 1 min in su
SEBA - Data Logger
Salvataggio misurazione: nell’immediato
Memoria flash: 4MB per circa 280 000 misurazioni
Alimentazione: batteria da 12V
Slot SIM-CARD, modulo GPRS incluso
PREZZO: 1300€ per sensore
42
SCELTE TECNOLOGICHE (3 di 4)
Server centrale: HP ProLiant BL460c
CPU: Intel Xeon E5-2650V2 2.6GHz 8 core
Cache 20MB
RAM: 32GB DDR3 SDRAM 1866MHz
(espandibile fino a 256GB)
Hard Disk: 3TB Serial ATA III 3,5” 6GB/sec
PREZZO: 3414€
43
SCELTE TECNOLOGICHE (4 di 4)
Dispositivo Operatori a campo: Moto G 2014
CPU: Qualcomm Snapdragon Quadcore
1,2GHz
RAM: 1GB LPDDR3 RAM
Storage: 8GB (espandibile con microSD)
Batteria: 2070 mAh Li-ion
Display: 5” 1280x720 (294 ppi)
Rete: GSM, GPRS + EDGE, UMTS, HSPA+
Camera: 8MP
Operating System: Android 5 Lollipop
PREZZO: 199€
44
RIEPILOGO COSTI (1 di 3)
Costi fissi
Prezzo
Quantità
Totale
Sensore
1300 €
1001
130000 €
Costi installazione
3502 €
100
35000 €
Server
3414 €
1
3414 €
Sviluppo Server
30 €/h
5 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 €
316764* €
Totale
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 circa
2: 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.
45
RIEPILOGO COSTI (2 di 3)
Costi eventuali e mensili
Prezzo Quantità
Traffico Dati
Sensore
Traffico
Operatori a
Campo
9€
22,9 €
Manutenzion
40 €/h
e Sensori
Manutenzion
e
Sistema
30 €
Dettagli
Totale
1001
1GB (Vodafone Micro)
900 €
50
400 min, 400 SMS, 1GB
(Vodafone RAM Mini)
1145 €
8hx5
giorni
20€ a persona, ogni
3-4 mesi
1600 €
3
Costo relativo a un
eventuale guasto
90 €
3735 €
Totale
46
RIEPILOGO COSTI (3 di 3)
Costo Software
Prezzo
Descrizione
279 €
Windows 8.1
Enterprise 64 Bit
5000€/anno
MySQL Enterprise
Edition1
Sistema Operativo Server
Licenza DataBase
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
REVERSE ENGENEERING (1 di 4)
BRI: Modello Logico
Postazione(Latitudine, Longitudine, Rischio,
CapienzaMax, Localita)
Sensore(idSensore, Latitudine, Longitudine)
GrafoFiumi(idSensore1, idSensore2, Percentuale,
Distanza)
Rilevazione(idSensore, PortataAttuale, VelocitaAttuale,
TimeStamp)
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
Eterogeneità
Relazioni
Coinvolte
Omonimia
BDM.Vento
BRI.Rilevazione
Sinonimia
Sinonimia
Sinonimia
BDM.Postazione
BRI.Area-Quadrata
BDM.Postazione
BRI.Area-Quadrata
BDM.Postazione
BRI.Area-Quadrata
Attributo 1
Attributo 2
VelocitaAttuale VelocitaAttuale
Latitudine
Latitudine
Longitudine
54
Dettagli
Unità di
misura
LatNE
Stesso
concetto, nomi
diversi
LatSO
Stesso
concetto, nomi
diversi
LongNE
Stesso
concetto, nomi
diversi
DATA INTEGRATION (3 di 15)
Eterogeneità e Corrispondenza Interschema
Durante l’attività di Data Integration sono sorte le seguenti eterogeneità:
Tipo
Eterogeneità
Sinonimia
Relazioni
Coinvolte
BDM.Vento
BRI.Rilevazione
Attributo 1
Longitudine
55
Attributo 2
Dettagli
LongSO
Stesso
concetto, nomi
diversi
DATA INTEGRATION (4 di 15)
Eterogeneità e Corrispondenza Interschema
Durante l’attività di Data Integration sono sorte le seguenti corrispondenze interschema:
Tipo
Corrispondenza
Interschema
Corrispondenza
Funzionale
Aggregazione
Relazioni
Coinvolte
Attributo 1
BDM.Previsione
BRI.Rilevazione
Data_Ora
BDM.Area-Quadrata
BRI.Postazione
56
-
Attributo 2
Dettagli
Data_Ora =
TimeStamp TimeStamp +
20 * 60 * 1000
-
Area-Quadrata
è
un’aggregazione
di Postazione
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,
Distanza, Percentuale) AS
idSensore2,
SELECT GF.idSensore1 AS idSensore1, GF.idSensore2
AS idSensore2, GF.Distanza AS Distanza, GF.Percentuale
AS
Percentuale
FROM 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
queryèèsupportata
supportatadalla
dalla
maggior
parte
database:
La seguente
seguente query
maggior
parte
dei dei
database:
SELECT AQ.Latitudine AS Latitudine, AQ.Longitudine AS
SELECT AQ.Latitudine AS Latitudine, AQ.Longitudine AS
Longitudine
FROM
BDM.AreaQuadrata AS AQ
Longitudine
WHERE AQ.idCella = 764
FROM BDM.AreaQuadrata AS AQ
WHERE AQ.idCella = 764
67
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
Scarica

Gruppo PRSZ