• Non ci sono risultati.

Architettura complessiva di iTETRIS

3 Architettura del sistema

3.1 Ambiente di simulazione

3.1.1 Architettura complessiva di iTETRIS

iTETRIS è una piattaforma di simulazione di comunicazioni veicolari che per- mette la definizione di scenari di traffico veicolare e di rete e la loro simulazione at- traverso l’uso degli strumenti integrati per la simulazione del traffico di rete wireless, NS-3 [NSh14], e del traffico veicolare, SUMO [Kra12]. Questo sistema è stato svi- luppato per valutare le performance delle strategie di gestione del traffico e per mi- gliorare l’efficienza della rete stradale attraverso una simulazione realistica di ITS. Questa piattaforma è di grande importanza per lo sviluppo di ITS in quanto, prima della loro introduzione su larga scala nell’ambiente reale, occorre dimostrare quali

33

benefici si possono ottenere tramite l’utilizzo di queste soluzioni in scenari urbani realistici. Gli scenari simulati sono caratterizzati da un grande numero di veicoli di- stribuiti su un’aera estesa dei quali viene studiato il comportamento per un predeter- minato periodo di tempo.

La combinazione di questi due simulatori permette di valutare degli effetti dello scambio di informazioni fra veicoli sulla loro mobilità. In particolare, lo scambio di messaggi fra veicoli può portare a cambi di percorso; allo stesso tempo il movimento dei nodi ha un grande impatto sui dispositivi di trasmissione wireless e quindi sui protocolli di comunicazione utilizzati.

iTETRIS si compone di un terzo componente, chiamato iCS (iTETRIS Control System) che si occupa di coordinare i due simulatori in tempo reale e di fornire una interfaccia per consentire lo sviluppo di applicazioni. Tutte le interazioni fra i vari moduli passano attraverso questo componente centrale, come mostrato nella Figura 3.1. La modularità di questa architettura permette lo sviluppo indipendente dei vari componenti dalle rispettive comunità di sviluppatori facilitando la manutenibilità e l’estensione del sistema.

Per facilitare lo sviluppo di applicazioni iCS mette a disposizione dello svilup- patore una API che permette di controllare sia lo spostamento dei veicoli, che le loro comunicazioni, garantendo un controllo completo sulle azioni dei nodi mobili. È inol- tre possibile comandare variazioni della logica di controllo degli impianti semaforici.

34

Queste possibilità permettono di sviluppare un grande numero di applicazioni diffe- renti, dalla raccolta di informazioni sul flusso del traffico alla sicurezza attiva fra vei- coli, o a servizi di infotainment. Le applicazioni che possono essere simulate si avval- gono delle funzionalità offerte da iCS, ma sono esterne alla piattaforma consentendo allo sviluppatore di scegliere il linguaggio di programmazione più opportuno per la propria soluzione.

Nei seguenti paragrafi verranno introdotti i due simulatori integrati nella piatta- forma, spiegato il funzionamento di iCS ed illustrata l’interfaccia offerta per lo svi- luppo di applicazioni.

3.1.2 SUMO

Un qualsiasi progetto di ricerca in ambito VANET non può prescindere dall’uti- lizzo di uno strumento in grado di simulare la mobilità di un insieme di veicoli all’in- terno di un reticolo stradale: le caratteristiche e la qualità delle trasmissioni wireless tra più nodi dipendono fortemente dalla posizione che essi assumono in ogni preciso istante di simulazione ed è quindi indispensabile poter conoscere nel dettaglio l’intero percorso seguito da qualsiasi veicolo simulato nell’ambiente. Normalmente queste in- formazioni sono contenute in una traccia di mobilità, che consiste in una formale de- scrizione delle coordinate spaziali e della velocità assunte dai nodi in ogni momento, ottenuta separatamente prima dell’inizio della simulazione dei protocolli di trasmis- sione. A differenza delle normali piattaforme di simulazione nelle quali la traccia di mobilità è statica e non può essere modificata in base a decisioni compiute dalle logi- che che si stanno analizzando, grazie all’utilizzo di iTETRIS si può interagire dina- micamente sul flusso dei veicoli, in seguito alle azioni richieste dal protocollo in spe- rimentazione. Questo consente una migliore valutazione delle prestazioni del sistema in un ambiente più simile a quello reale.

Il simulatore di mobilità integrato in iTETRIS è SUMO (Simulation of Urban Mobility), un simulatore urbano open-source ad eventi discreti in grado di imitare in maniera estremamente realistica il comportamento di diversi tipi di automezzi che si spostano all’interno di una rete stradale; quest’ultima può essere interamente costruita dall’utente oppure ottenuta a partire da mappe realmente esistenti. Per integrare questo simulatore nell’architettura complessiva è stata sfruttata l’interfaccia TraCI (Traffic Control Interface) integrata in SUMO che permette ad un programma esterno di ac- cedere ad una simulazione mentre questa è in esecuzione. Questa interfaccia permette l’utilizzo di un modello di comunicazione client - server, nel quale iCS agisce come client generando comandi e richiedendo dati, e SUMO agisce come server eseguendo

35

i comandi ricevuti. In questo modo è possibile avviare e terminare simulazioni, otte- nere i dati relativi ai veicoli (come posizione, velocità o direzione) ed ai dispositivi infrastrutturali (come lo stato delle luci di un semaforo), e modificare lo scenario di simulazione, alterando il percorso di un veicolo o lo stato di un semaforo. Le funzio- nalità messe a disposizione da questa interfaccia hanno permesso agli sviluppatori di iTETRIS di utilizzare questo simulatore senza la necessità di apportavi modifiche, a differenza di quanto verrà illustrato nel prossimo paragrafo per l’integrazione della piattaforma NS-3.

Gli scenari urbani utilizzati come riferimento per i vari test illustrati nel capitolo 5 sono state costruite sfruttando delle rilevazioni reali effettuate in aree urbane strate- giche della città di Bologna. Le zone coinvolte nel campionamento sono normalmente note per soffrire di problemi di congestione e riguardano un totale di 24 ore per cia- scun scenario. Selezionando di volta in volta un opportuno intervallo temporale si può disporre di tutte le diverse tipologie di traffico che è possibile incontrare durante un’intera giornata: da un flusso estremamente denso e rallentato relativo alle principali ore di punta a quello ridotto e scorrevole tipico delle ore notturne. Per ulteriori dettagli sugli scenari utilizzati come ambienti di test e sui parametri di simulazione in essi utilizzati si consultino i paragrafi 5.1 e 5.3.

3.1.2 NS-3

Nell’architettura di iTETRIS il componente incaricato alla simulazione delle comunicazioni fra i dispositivi mobili e dell’infrastruttura è il simulatore NS-3. In questo simulatore sono implementate una serie di interfacce di comunicazione wire- less, utilizzate dai nodi per trasmettere e ricevere dati, e gli stack protocollari richiesti per permettere la comunicazione tra loro. Per consentirne l’integrazione all’interno di iTETRIS, NS-3 è stato esteso aggiungendo una serie di funzionalità, come illustrato nella Figura 3.2. Per ridurre la necessità di interscambio di dati tra iCS ed NS-3 e per mantenere una separazione delle funzionalità, tutti i componenti necessari per la ge- stione delle comunicazioni wireless fra i veicoli sono state implementate all’interno di NS-3. In particolare, per ottimizzare la simulazione di reti VANET è stato realizzato uno stack C2C (Car 2 Car) che contiene specifici livelli di trasporto e di rete dedicati alle comunicazioni fra veicoli. All’interno di questo stack è presente un sistema di indirizzi comune e generico chiamato C2CAddress, capace di supportare differenti formati di indirizzamento per permettere comunicazioni basate sull’identificativo dei nodi, oppure per abilitare il broadcast geografico, senza la necessità di utilizzare indi- rizzi IP [Ron13].

36

A differenza di SUMO, la versione standard di NS-3 non fornisce nessuna in- terfaccia per l’interazione con moduli esterni quindi, per sopperire a questa mancanza, è stata creata un’interfaccia di comunicazione fra iCS ed NS-3, chiamata iTETRIS Network simulator Control Interface (iNCI), che si occupa di gestire le comunicazioni fra i due moduli. La logica implementativa di questa interfaccia è molto simile a quella utilizzata per le comunicazioni con SUMO: è basata su un modello di comunicazione client - server, nel quale iCS agisce come client controllando l’esecuzione di NS-3, che si occupa di eseguendo le azioni richieste agendo come server. L’implementa- zione del modulo iNCI all’interno di NS-3 si compone di due entità principali: un node manager ed un packet manager. Il gestore di nodi permette ad iCS la creazione dinamica di nuovi nodi e l’aggiornamento delle posizioni e delle velocità dei nodi esistenti ad ogni passo di simulazione. Il gestore dei pacchetti consente di schedulare l’invio di messaggi da parte di un nodo e di ottenere i messaggi ricevuti correttamente. NS-3 è un simulatore ad eventi discreti open source finalizzato allo studio, allo sviluppo ed alla messa a punto di soluzioni e protocolli di comunicazione tra nodi e apparecchiature di rete. Mediante questo programma è possibile definire le proprietà

Figura 3.2: Componenti aggiunti all’architettura di NS-3 per permet-

37

e le interfacce dei nodi presenti nell’ambiente, definire una topologia di rete che mette in comunicazione tali dispositivi, installare e configurare gli opportuni stack protocol- lari che si intendono utilizzare per fornire ai nodi i diversi servizi previsti dal modello ISO/OSI [Tan02] ed infine aggiungere un eventuale insieme di applicazioni che ge- nerano traffico all’interno della rete e processano i dati trasportati per mezzo di pac- chetti. Per realizzare queste funzionalità vengono create e connesse tra loro numerose classi di oggetti che ripropongono il comportamento delle principali entità fisiche pre- senti nel mondo reale (nodi fissi o in movimento, mezzi per la trasmissione dei segnali, dispositivi di rete, edifici, etc.), codificano gli algoritmi ed i protocolli presenti in let- teratura (stack internet, routing, applicazioni di rete, etc.) e simulano in maniera suf- ficientemente realistica l’effetto di alcuni fenomeni fisici di interesse (segnali elettrici ed elettromagnetici, propagazione, errori, consumi energetici, etc.). Per una descri- zione completa delle funzionalità di NS-3 è possibile fare riferimento alla documen- tazione presente sul sito ufficiale del progetto [NSh14].