3. Contesto - Sistema di rilevazione transiti (SRT)
SRT è composto da decine di varchi di rilevazione transiti (VRT)
i quali rilevano i veicoli che superano il limite di velocità
Ogni VRT è composto da 2 fotocellule distanti 1 mt tra loro e da
una fotocamera che fotografa frontalmente il veicolo in
infrazione
Ogni VRT segnala all'ufficio centrale i veicoli che hanno
commesso infrazione
L'ufficio centrale contatta, se c'è, una pattuglia per fermare il
veicolo in infrazione ed invia le contravvenzioni
L'ufficio centrale esegue inoltre delle analisi statistiche su dati di
inquinamento rilevati dalla Base Dati Ambienti (BDA)
4. Assunzioni
Tutti i VRT sono situati su strade cittadine
Ogni VRT è collegato ad un nodo di elaborazione (NE)
L'elaborazione delle immagini per l'estrazione di targa e colore
del veicolo in infrazione avviene nel NE
L'ufficio centrale comunica i dati del veicolo in infrazione alla
pattuglia più vicina al VRT
Le pattuglie non sono stabili (possono variare la loro posizione)
Una pattuglia può riconoscere e quindi fermare un veicolo
avendo come dati targa e colore
Le contravvenzioni inviate vengono memorizzate per un tempo
di 5 anni
5. Use Case - CHI
Rilevamento Transiti
Nel momento in cui un veicolo transita da un varco, i sensori del
VRT rilevano il transito del veicolo. Il nodo elaboratore calcola la
velocità del transito, attiva la fotocamera e quindi elabora
l'infrazione.
6. Use Case - CHI
Comunicazione dati Nodo Elaboratore - Ufficio Centrale
Il nodo elaborativo comunica i dati del transito all'Ufficio Centrale.
7. Use Case - CHI
Gestione Posizione Pattuglia
Il software GPS della pattuglia aggiorna la propria posizione
all'ufficio centrale.
8. Use Case - CHI
Gestione Pattuglia - Infrazione
L'ufficio centrale assegna l'infrazione alla pattuglia più vicina al
varco. Se la pattuglia ferma il veicolo invia in centrale i dati del
conducente.
9. Use Case - CHI
Gestione Contravvenzioni
La gestione delle contravvenzioni viene eseguita dall'ufficio centrale
dopo aver ricevuto i dati anagrafici dalla pattuglia o dal Pubblico
Registro Automobilistico.
10. Use Case - CHI
Gestione Statistiche
L'ufficio centrale riceve ad intervalli regolari di tempo il numero di
transiti relativi ad ogni varco, correlando tale dato con i tassi di
inquinamento ottenuti da Base Dati Ambientale, al fine di eseguire
analisi statistiche.
12. Activity Diagram - Come, Perchè, Quando
Comunicazione Transiti a Ufficio Centrale
Rilevamento del transito da parte del VRT, calcolo della velocità del
transito, elaborazione dell'immagine e invio dei dati (contatore transiti,
informazioni veicolo, foto)
13. Activity Diagram - Come, Perchè, Quando
Gestione Posizione Pattuglia
Aggiornamento della posizione della pattuglia e memorizzazione in
sede cetrale.
14. Activity Diagram - Come, Perchè, Quando
Rilevazione Pattuglia
Ogni qual volta l'ufficio centrale riceve un'infrazione, rileva la
pattuglia più vicina al varco dove è avvenuta, e la contatta.
15. Activity Diagram - Come, Perchè, Quando
Posto di blocco
Se la pattuglia ferma il veicolo, notifica alla centrale l'avvenuto fermo
e fornisce i dati del conducente.
16. Activity Diagram - Come, Perchè, Quando
Gestione Contravvenzioni
Date le infrazioni
ottenute nel corso
della settimana,
l'ufficio centrale
genera le relative
contravvenzioni. Se
il conducente non è
stato identificato, la
contravvenzione
verrà inviata al
proprietario.
17. Activity Diagram - Come, Perché, Quando
Elaborazione Statistiche
Ottenuti i dati del traffico stradale orario di ogni VRT e i livelli
di inquinamento, vengono eseguite analisi statistiche.
21. Dimensioni per il partizionamento
Abstraction
Locations
<<multiplicity>>: il numero di istanze di ogni componente logico è
pari alla cardinalità della rispettiva componente concreta.
E' possibile raffinare il partizionamento operando la suddivisione
logica in base ad una ulteriore dimensione: frequency.
In tal caso il componente logico "Nodo Elaboratore" verrebbe
suddiviso i 3 componenti logici: "Elaboratore Transiti", "Elaboratore
Infrazioni", "Elaboratore Foto". Tuttavia si è scelto di non perseguire
questa ulteriore suddivisione al fine di assicurare un alto grado di
replicabilità in luogo di compattezza: ciò rende più semplice il
deployment e la manutanzione della componente concreta di "Nodo
Elaboratore".
24. Architettura Concreta
Interazione fra componenti
1. VRT → Nodo Elaboratore (rilevamento segnali)
stile di interazione asincrono;
nessun trasferimento di informazione:
- il VRT invia segnali (elettrici)
- il Nodo Elaboratore, al fine di minimizzare il ritardo, ha
un timer con funzione di trigger impostato a 5 ms.
2. Nodo Elaboratore → VRT (attivazione fotocamera)
trasferimento pull dell'informazione basato su meccanismo
sincrono di comunicazione.
3. GPS Pattuglia → Ufficio Centrale (aggiornamento posizione)
trasferimento push di informazione basato su meccanismo
asincrono di comunicazione.
25. Architettura Concreta
Interazione fra componenti
4. Ufficio Centrale → Pattuglia (rilevamento pattuglia)
trasferimento push di informazione basato su meccanismo
asincrono di comunicazione.
5. Pattuglia → Ufficio Centrale (comunicazione guidatore)
trasferimento push di informazione basato su
meccanismo
asincrono di comunicazione
6. Nodo Elaboratore → Ufficio Centrale
trasferimento push di informazione basato su meccanismo
sincrono;
l'Ufficio Centrale deve notificare (con un evento) al Nodo
Elaboratore l'avvenuta ricezione e memorizzazione delle
informazioni, in modo che le informazioni site nel N.E. possano
28. Scelte Tecnologiche - VRT
VRT è composto da 2 fotocellule laser a riflessione o a sbarramento,
parallele a distanza 1mt.
1 fotocamera per veicoli in movimento di tipo
giorno-notte, wide dynamic range (WDR)
Possibili scelte:
Nikon D3S (prezzo=4.500 €, 12,1 Mpx, tempo di
posa 1/8000 sec, 10 foto/s) utilizzata negli USA;
Nikon D3100 (prezzo=500 €, 14 Mpx, tempo di
posa 1/4000 sec, 5 foto/s) scelta più plausibile.
29. Scelte Tecnologiche - VRT
Le fotocellule e la fotocamera possono distare da 14 mt minimo a
20 mt massimo tra loro.
30. Scelte Tecnologiche
Nodo Elaborativo: S.O. Linux
Processore con un minimo di 2 Gh
2 GB RAM
Hardisk 50 GB
Modem
può essere privo di monitor
Ufficio Centrale: E' un server centrale
S.O. Linux
Processore Multicore con 2.2 Gh
4 GB RAM
Memoria di massa 5 TB
Modem Router
31. Scelte Tecnologiche - Pattuglia
Ogni Pattuglia ha un dispositivo PDA con connettività
telefonica UMTS (3G), con funzione di navigatore
satellitare (GPS) che consente di risparmiare cifre
consistenti che si spenderebbero per un sistema equivalente
integrato nell'auto.
- S.O. Symbian: è un sistema operativo aperto per PDA.
- Memoria 128 MB (non necessitiamo di grande memoria
poichè non memorizziamo alcun dato)
Non abbiamo valutato nessuna preferenza per un modello
poichè queste caratteristiche si trovano su svariati
modelli a basso costo.
33. Integrazione tra SRT e PRA
L’architettura di integrazione che può essere utilizzata tra SRT e PRA, è di tipo
EAI ossia di Enterprise Application Integration, infatti una soluzione sarebbe
quella di prevedere l’utilizzo di un framework dedicato al prelievo dei dati
necessari dalla banca dati PRA.
I problemi di eterogeneità in questo caso sono risolti all’interno del framework,
con opportuni moduli che trasformano:
i dati necessari al PRA in base alle specifiche dei dati del PRA.
es.: la data viene trasformata nel formato utilizzato dal PRA, eterogeneità
di tipo attributo.
i dati restituiti dal PRA in dati con strutture idonee per il DB del sistema
SRT.
es.: il nome del proprietario che il PRA ci restituisce con un char “Mario
Rossi” viene tradotto dal nostro framework in un char “Mario” nel campo
Nome e in un char “Rossi” nel campo Cognome, eterogeneità semantica
di tipo attributo.
37. Tipi di Eterogeneità
1 - Viene risolta inglobando i concetti Transiti ed Inquinamento in
un unica entità, che chiameremo statistiche.
2/3 - Vengono risolte utilizzando sia per data che per ora il nome
presente nello schema di SRT in quanto più semplice.
38. Tipi di Eterogeneità
4/5- Queste eterogeneità sugli attributi data e ora vengono risolte
utilizzando le strutture dati utilizzate in SRT, ossia "date" per
la data e "time" per l'ora
6 - Questa eterogeneità viene risolta utilizzando come chiave
primaria, nella nuova entità, data e ora, le quali identificano
univocamente una statistica
39. Tipi di Eterogeneità
7/12 - Queste eterogeneità si verificano nel caso in cui la
rappresentazione di latitudine e longitudine in BDA sia
diversa da quella in SRT. In questo caso si procede con una
conversione dei dati, nel caso in cui siano rappresentati in
DMS (degree minutes seconds), vengono convertiti con un
opportuna funzione in DD (degree decimal), che è la
rappresentazione che viene utilizzata in SRT
41. Mapping tra Schema Globale e Schemi Locali
Global As View
CREATE VIEW Pattuglia CREATE VIEW Centralina AS
CREATE VIEW Contravvenzione AS
AS SELECT *
SELECT *
SELECT * FROM BDA.Centralina
FROM SRT.Contravvenzione
FROM SRT.Pattuglia
CREATE VIEW Riparazione AS
CREATE VIEW Infrazione AS CREATE VIEW Nodo AS SELECT *
SELECT * SELECT * FROM BDA.Riparazione
FROM SRT.Infrazione FROM SRT.Nodo
CREATE VIEW Tecnico AS
CREATE VIEW Guidatore AS CREATE VIEW Sede AS SELECT *
SELECT * SELECT * FROM BDA.Tecnico
FROM SRT.Guidatore FROM BDA.Sede
42. Mapping tra Schema Globale e Schemi Locali
Global As View
CREATE VIEW Statistica(Data, Ora, Nodo, Centralina, NumTransiti,
TassoInquinamento, Rapporto) AS
SELECT SRT.Transiti.data, SRT.Transiti.ora, SRT.Transiti.id_nodo, BDA.Inquinamento.
idCentralina, SRT.Transiti.num_transiti, BDA.Inquinamento.tasso, (BDA.Inquinamento.
tasso/STR.Transiti.num_transiti)
FROM SRT.Transiti, STR.Nodo, BDA.Inquinamento, BDA.Centralina
WHERE (SRT.Transiti.data=BDA.Inquinamento.dataRilevazione) AND
(SRT.Transiti.ora=BDA.Inquinamento.oraRilevazione) AND
(SRT.Transiti.id_nodo, BDA.Inquinamento.idCentralina) IN (
SELECT (SRT.Nodo.id_nodo, BDA.Centralina.idCentralina)
FROM SRT.Nodo, BDA.Centralina
WHERE (6374892.5 * ACOS(SIN(RADIANS(SRT.Nodo.latitudine)) *
SIN(RADIANS(BDA.Centralina.lat_deg + ((BDA.Centralina.lat_sec/60) +
BDA.Centralina.lat_min)/60)) + COS(RADIANS(SRT.Nodo.latitudine)) *
COS(RADIANS(BDA.Centralina.lat_deg + (BDA.Centralina.lat_sec/60) +
BDA.Centralina.lat_min)/60)) *
COS(RADIANS(BDA.Centralina.lng_deg+((BDA.Centralina.lng_sec/60) +
BDA.Centralina.lng_min)/60 ) - RADIANS( SRT.Nodo.longitudine)))) < 200)
) ORDER BY Data, Ora;
43. Interrogazione al Mediatore
Trovare l’id del varco che provoca il maggior tasso di
inquinamento nelle ore centrali della giornata (12.00 -
18.00)
SELECT Nodo
FROM (SELECT Nodo, AVG(Tasso) AS Tasso
FROM Statistiche
WHERE ora>12.00 AND ora <18.00
GROUP BY Nodo
HAVING MAX(Tasso))
44. Unfolding
SELECT Nodo
FROM (SELECT Nodo, AVG(Tasso) AS Tasso
FROM (SELECT SRT.Transiti.data, SRT.Transiti.ora,
SRT.Transiti.id_nodo, BDA.Inquinamento.idCentralina, SRT.Transiti.num_transiti,
BDA.Inquinamento.tasso, SRT.Transiti.id_nodo/BDA.Inquinamento.tasso
FROM SRT.Transiti, STR.Nodo, BDA.Inquinamento, BDA.Centralina
WHERE (SRT.Transiti.data=BDA.Inquinamento.dataRilevazione) AND
(SRT.Transiti.ora=BDA.Inquinamento.oraRilevazione) AND
(SRT.Transiti.id_nodo, BDA.Inquinamento.idCentralina) IN (
SELECT (SRT.Nodo.id_nodo, BDA.Centralina.idCentralina)
FROM SRT.Nodo, BDA.Centralina
WHERE (6374892.5 * ACOS(SIN(RADIANS(SRT.Nodo.latitudine)) *
SIN(RADIANS(BDA.Centralina.lat_deg + ((BDA.Centralina.lat_sec/60) +
BDA.Centralina.lat_min)/60)) + COS(RADIANS(SRT.Nodo.latitudine)) *
COS(RADIANS(BDA.Centralina.lat_deg + (BDA.Centralina.lat_sec/60) +
BDA.Centralina.lat_min)/60)) *
COS(RADIANS(BDA.Centralina.lng_deg+((BDA.Centralina.lng_sec/60) +
BDA.Centralina.lng_min)/60 ) - RADIANS( SRT.Nodo.longitudine)))) < 200)
))
WHERE ora>12.00 AND ora <18.00
GROUP BY Nodo
HAVING MAX(Tasso))