30.11.2012 Views

download tesi - MobiLab - Università degli Studi di Napoli Federico II

download tesi - MobiLab - Università degli Studi di Napoli Federico II

download tesi - MobiLab - Università degli Studi di Napoli Federico II

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

a<br />

Facoltà <strong>di</strong> Ingegneria<br />

Corso <strong>di</strong> <strong>Stu<strong>di</strong></strong> in Ingegneria Informatica<br />

Tesi <strong>di</strong> laurea<br />

Progetto e valutazione <strong>di</strong> algoritmi per<br />

la raccolta dati affidabile su reti <strong>di</strong><br />

sensori senza cavo<br />

Anno Accademico<br />

2005/2006<br />

Relatore<br />

Ch.mo Prof. Stefano RUSSO<br />

Correlatore<br />

Ing. Marcello CINQUE<br />

Can<strong>di</strong>dato<br />

Salvatore Falsino<br />

matr. 885/42


Ai miei genitori<br />

La <strong>di</strong>fficoltà attira l ' uomo <strong>di</strong> carattere, perché affrontandola si realizza<br />

(Charles De Gaulle)


INDICE<br />

INTRODUZIONE........................................................................................ 1<br />

1. RETI DI SENSORI SENZA CAVO....................................................... 3<br />

1.1 LE WIRELESS SENSOR NETWORK..................................................................3<br />

1.2 DIFFERENZA TRA RETI DI SENSORI E RETI AD HOC ..................................5<br />

1.3 ARCHITETTURA DELLA RETE.........................................................................6<br />

1.4 DESCRIZIONE DEI NODI SENSORI ..................................................................8<br />

1.4.1 Sensing Module ..............................................................................................8<br />

1.4.2 Unità <strong>di</strong> elaborazione.....................................................................................9<br />

1.4.3 Unità <strong>di</strong> comunicazione................................................................................10<br />

1.4.4 Alimentazione...............................................................................................10<br />

1.5 PARAMETRI DI PROGETTO ............................................................................11<br />

1.5.1 Consumo energetico.....................................................................................12<br />

1.5.2 Costo ............................................................................................................14<br />

1.5.3 Connettività ..................................................................................................14<br />

1.5.4 Topologia della rete .....................................................................................15<br />

1.5.5 Dimensioni e posizionamento dei no<strong>di</strong>.........................................................16<br />

1.5.6 Mobilità ........................................................................................................16<br />

1.5.7 Scalabilità.....................................................................................................17<br />

1.5.8 Sicurezza ......................................................................................................17<br />

1.5.9 Affidabilità....................................................................................................18<br />

1.6 PROTOCOLLI DI COMUNICAZIONE..............................................................18<br />

1.6.1 Livello Fisico................................................................................................18<br />

1.6.2 Livello data-link ...........................................................................................19<br />

1.6.3 Livello <strong>di</strong> rete ...............................................................................................21<br />

1.7 I SISTEMI OPERATIVI E LE RETI DI SENSORI..............................................25<br />

1.7.1 Introduzione a TinyOS..................................................................................27<br />

1.7.2 Introduzione a NesC.....................................................................................31<br />

1.8 LE PIATTAFORME HARDWARE ....................................................................33<br />

1.8.1 Sensori per Mica2 ........................................................................................36<br />

1.9 APPLICAZIONI ..................................................................................................38<br />

2. AFFIDABILITÀ NELLE RETI DI SENSORI SENZA CAVO ........ 42<br />

2.1 IL CONCETTO DI AFFIDABILITA’ .................................................................42<br />

2.2 AFFIDABILITA’ IN RETI DI SENSORI SENZA CAVO ..................................44<br />

2.2.1 Il problema della copertura ............................................................................46<br />

2.3 AFFIDABILITA’: STATO DELL’ARTE............................................................49<br />

2.4 AMBIENTI DI SIMULAZIONE .........................................................................51<br />

2.4.1 Il Simulatore Tossim........................................................................................55<br />

2.5 OSSERVAZIONI.................................................................................................57<br />

I


3. ALGORITMI PER LA RACCOLTA DATI AFFIDABILE ............. 59<br />

3.1 CONSIDERAZIONI GENERALI ED OBIETTIVI.............................................59<br />

3.2 ALGORITMI DI DATA GATHERING...............................................................60<br />

3.3 INTERAZIONE TRA I NODI: IL PROTOCOLLO MULTIHOP........................62<br />

3.4 CLUSTERING IN UNA WSN.............................................................................65<br />

3.5 CLUSTERING: STATO DELL’ARTE................................................................68<br />

3.6 APPROCCIO PROPOSTO PER IL CLUSTERING ............................................72<br />

3.6.1 Procedura <strong>di</strong> elezione del leader..................................................................74<br />

3.7 ALGORITMI DI TRASPORTO AFFIDABILE..................................................75<br />

3.8 APPROCCIO PROPOSTO PER IL TRASPORTO AFFIDABILE DELLE<br />

MISURAZIONI ...................................................................................................79<br />

3.9 CLUSTERING E LEADER ELECTION .............................................................82<br />

4. VALUTAZIONE COMPARATIVA DEGLI ALGORITMI............. 85<br />

4.1 OBIETTIVI..........................................................................................................85<br />

4.2 DATA GATHERING BASE................................................................................86<br />

4.3 DATA GATHERING AFFIDABILE...................................................................91<br />

4.4 DATA GATHERING CON CLUSTER ...............................................................95<br />

4.5 DATA GATHERING CON CLUSTERING E PROTOCOLLO AFFIDABILE 100<br />

4.6 OVERLAY NETWORK ....................................................................................103<br />

CONCLUSIONI .................................................................................................................107<br />

BIBLIOGRAFIA..................................................................................................................109<br />

<strong>II</strong>


INDICE DELLE FIGURE<br />

Figura 1.1: Architettura <strong>di</strong> una WSN .....................................................................................7<br />

Figura 1.2: Componenti hardware <strong>di</strong> un nodo sensori............................................................8<br />

Figura 1.3 : Modello a strati <strong>di</strong> TinyOS ...............................................................................29<br />

Figura 1.4: Rappresentazione <strong>di</strong> un componente TinyOS....................................................31<br />

Figura 1.5: Mica2.................................................................................................................33<br />

Figura 1.6: Mica2DOT.........................................................................................................34<br />

Figura 1.7: Architettura del progetto Great Duck Island......................................................39<br />

Figura 2.1: Architettura WSN per rilevazione incen<strong>di</strong>o.......................................................47<br />

Figura 3.1: Scenario tipico <strong>di</strong> una rete <strong>di</strong> sensori wireless: i coman<strong>di</strong> sono inoltrati in<br />

modalità broadcast mentre le misurazioni recapitate al nodo sink tramite<br />

protocollo multihop............................................................................................61<br />

Figura 3.2: Configurazione <strong>di</strong> Multihop Router ..................................................................63<br />

Figura 3.3: Organizzazione in cluster della rete...................................................................66<br />

Figura 3.4: Architettura protocollo RMST...........................................................................77<br />

Figura 3.5: Rete composta da otto <strong>di</strong>spositivi sensori..........................................................81<br />

Figura 3.6: Rete organizzata in 3 cluster senza procedura <strong>di</strong> elezione <strong>di</strong> cluster-head.........82<br />

Figura 3.7: Organizzazione in cluster della rete con cluster-head........................................83<br />

Figura 4.1: Architettura della rete in Tinyviz.......................................................................87<br />

Figura 4.2: Stralcio del file <strong>di</strong> configurazione della prima simulazione...............................88<br />

Figura 4.3: Evento metodo ReceiveMeasure attivato sul nodo sink alla ricezione della<br />

misurazione ........................................................................................................89<br />

Figura 4.4: Andamento % della ricezione delle misurazioni al crescere del numero <strong>di</strong><br />

no<strong>di</strong>.......... ..........................................................................................................90<br />

Figura 4.5: Andamento % della ricezione delle misurazioni con utilizzo della plugin<br />

TinySan ..............................................................................................................91<br />

Figura 4.6: Stralcio procedura seguita dal nodo sink per assicurarsi la ricezione delle<br />

misurazioni da parte dei no<strong>di</strong> sensori ................................................................92<br />

Figura 4.7: Confronto percentuali copertura con uso protocollo affidabile e non<br />

affidabile ............................................................................................................93<br />

Figura 4.8: Andamento della vita me<strong>di</strong>a dei singoli sensori nel caso <strong>di</strong> utilizzo <strong>di</strong> un<br />

protocollo <strong>di</strong> comunicazione affidabile confrontato con il caso <strong>di</strong> utilizzo<br />

<strong>di</strong> un protocollo <strong>di</strong> tipo best-effort......................................................................94<br />

Figura 4.9: Confronto consumo energetico dei singoli no<strong>di</strong> ................................................94<br />

Figura 4.10: Rete organizzata in cluster...............................................................................96<br />

Figura 4.11: Procedura <strong>di</strong> invio <strong>di</strong> un messaggio Master.....................................................97<br />

Figura 4.12: Procedura seguita dai no<strong>di</strong> alla ricezione <strong>di</strong> un master_msg ...........................98<br />

Figura 4.13: Confronto copertura con uso protocoolo affidabile e non affidabile ...............99<br />

Figura 4.14: Guadagno energetico con rete organizzata in cluster.......................................99<br />

Figura 4.15: Analisi comparativa <strong>degli</strong> algoritmi...............................................................101<br />

Figura 4.16: Elezione eseguita ciclicamente o all’esaurimento energetico <strong>di</strong> un nodo ......102<br />

Figura 4.17: Overlay Network ...........................................................................................104<br />

Figura 4.18: Impatto del modulo ra<strong>di</strong>o sulla vita <strong>di</strong> un sensore .........................................105<br />

<strong>II</strong>I


INDICE DELLE TABELLE<br />

Tabella 1-1: Alcune caratteristiche della piattaforma Mica2 .............................................35<br />

Tabella 1-2: Tabella comparativa delle prestazioni <strong>di</strong> mica2 e mica 2 dot ........................35<br />

Tabella 1-3: Schede <strong>di</strong>sponibili per piattaforma MICA .....................................................37<br />

Tabella 3-1: Schema riassuntivo dei protocolli <strong>di</strong> trasporto affidabili................................79<br />

Tabella 4-1: Caratteristiche della simulazione n°1..............................................................87<br />

Tabella 4-2: Caratteristiche della simulazione n°2..............................................................91<br />

Tabella 4-3: Caratteristiche della simulazione n°3 con rete organizzata in cluster .............95<br />

Tabella 4-4: Caratteristiche della simulazione n°4 con rete organizzata in cluster e uso<br />

protocollo <strong>di</strong> recapito affidabile.................................................................... 100<br />

IV


Ringraziamenti<br />

Eccomi qua, alla fine <strong>di</strong> un percorso, al raggiungimento <strong>di</strong> un sogno tanto<br />

desiderato. Molte sono le persone a cui vorrei esprimere tutta la mia<br />

gratitu<strong>di</strong>ne.<br />

Un grazie particolare al professore Stefano Russo, non solo per avermi dato<br />

l’opportunità <strong>di</strong> far parte <strong>di</strong> un gruppo davvero fantastico, ma per i consigli<br />

dati, molto importanti per la mia crescita professionale.<br />

Grazie anche al professore Domenico Cotroneo, per la sua <strong>di</strong>sponibilità e<br />

cor<strong>tesi</strong>a nel chiarire ogni mio dubbio; grazie Marcello, i tuoi ottimi consigli<br />

sono stati fondamentali per portare a termine il lavoro, grazie per tutto il<br />

tempo che mi hai de<strong>di</strong>cato e per il tuo aiuto nella stesura <strong>di</strong> questa <strong>tesi</strong>;<br />

grazie anche a te Lelio valido punto <strong>di</strong> confronto.<br />

Grazie mamma, grazie papà per tutto il vostro sostegno e incoraggiamento a<br />

dare sempre il massimo, per avermi dato la possibilità <strong>di</strong> proseguire i miei<br />

stu<strong>di</strong> nella serenità più totale, grazie per tutto ciò che avete fatto e che ora<br />

non ricordo…vi voglio bene! Grazie Clemente, fratello e miglior amico, per<br />

i tuoi consigli nei momenti in cui avevo bisogno <strong>di</strong> supporto…ti sono<br />

riconoscente!<br />

Un pensiero particolare va a tutti i miei familiari e anche a coloro i quali non<br />

possono gioire con me in questo giorno.<br />

Un dolcissimo grazie va ad Antonietta, mi hai “sopportato” nei momenti in<br />

cui la tensione era alta e mi hai offerto un valido supporto morale: sei<br />

importante!<br />

Infine grazie a tutti i miei amici universitari e non (evito <strong>di</strong> fare l’elenco<br />

perché sicuramente <strong>di</strong>menticherei qualcuno), ognuno dei quali è stato<br />

importante, a suo modo, nella mia vita.<br />

V<br />

Salvatore


Introduzione<br />

Negli ultimi anni lo sviluppo delle tecnologie hardware ha reso possibile la<br />

realizzazione <strong>di</strong> <strong>di</strong>spositivi sempre più potenti e miniaturizzati. Questo<br />

progresso tecnologico, insieme a quello riguardante le comunicazioni senza<br />

fili, ha costituito la base per una nuova prospettiva tecnologica <strong>di</strong> successo:<br />

le reti <strong>di</strong> sensore senza filo (WSN).<br />

La chiave del successo delle WSN è da ricercare nella loro versatilità, nel<br />

basso costo dei no<strong>di</strong> sensore e nelle loro alte doti <strong>di</strong> auto- riconfigurabilità.<br />

Queste peculiarità hanno proiettato le WSN in <strong>di</strong>versi scenari applicativi,<br />

alcuni dei quali con stringenti requisiti <strong>di</strong> affidabilità come le WSN per la<br />

teleme<strong>di</strong>cina e per alcune applicazioni militari.<br />

Attualmente si sta indagando su come gestire in maniera più efficiente il<br />

consumo energetico dei no<strong>di</strong> sensori in modo da aumentare l’autonomia<br />

della rete e in particolare come instradare in modo ottimo le comunicazioni<br />

dal sensore all’utilizzatore, come raccoglierle, memorizzare e rappresentare<br />

con la minima occupazione <strong>di</strong> memoria le informazioni raccolte.<br />

In particolare, la necessità <strong>di</strong> avere algoritmi <strong>di</strong> raccolta dati affidabili,<br />

energeticamente efficienti, risulta essere una esigenza molto <strong>di</strong>ffusa in<br />

quanto è alla base per il monitoraggio e/o controllo <strong>di</strong> fenomeni fisici per un<br />

vasto arco temporale.<br />

Questo lavoro <strong>di</strong> <strong>tesi</strong> ha come obiettivo la progettazione e valutazione <strong>di</strong> una<br />

soluzione <strong>di</strong> compromesso (trade off) tra algoritmi energeticamente<br />

efficienti e specifici requisiti <strong>di</strong> affidabilità come la consegna <strong>di</strong> una quantità<br />

significativa <strong>di</strong> misurazioni e copertura dell’area da monitorare.<br />

1


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Il lavoro si articola in quattro capitoli <strong>di</strong> cui nel seguito si fornisce una breve<br />

descrizione.<br />

Il capitolo 1 introduce brevemente alcuni concetti sulle Wireless Sensor<br />

Networks. Vengono fornite alcune importanti definizioni e aspetti salienti<br />

che le contrad<strong>di</strong>stinguono. Si precede poi con la <strong>di</strong>scussione dei parametri<br />

da considerare nella progettazione e delle possibili applicazioni <strong>di</strong> una WSN<br />

fornendo alcuni concetti <strong>di</strong> base per la comprensione del presente lavoro <strong>di</strong><br />

<strong>tesi</strong>.<br />

Il capitolo 2 fornisce un’introduzione al concetto <strong>di</strong> affidabilità nell’ambito<br />

delle reti <strong>di</strong> sensori senza cavo proponendo un’analisi <strong>di</strong> alcuni lavori<br />

presenti in letteratura. Vengono inoltre presentati alcuni dei più importanti<br />

ambienti <strong>di</strong> simulazione per WSN, soffermandosi sulle principali<br />

caratteristiche <strong>di</strong> questi ultimi.<br />

Il capitolo 3 propone una dettagliata analisi sulle strategie <strong>di</strong> clustering e sui<br />

protocolli per la consegna affidabile <strong>di</strong> informazioni al nodo sink. Viene<br />

inoltre proposto un approccio basato sull’utilizzo combinato <strong>di</strong> strategie <strong>di</strong><br />

clustering, procedure <strong>di</strong> leader election e protocolli affidabili per la raccolta<br />

dati al fine <strong>di</strong> ottenere una soluzione che sia un buon compromesso tra un<br />

consumo energetico dei no<strong>di</strong> sensori e ben precisi requisiti <strong>di</strong> affidabilità<br />

come la copertura dell’area da monitorare e la consegna <strong>di</strong> una quantità<br />

significativa <strong>di</strong> misurazioni.<br />

In conclusione il capitolo 4 fornisce una analisi comparativa <strong>degli</strong> algoritmi<br />

proposti nel precedente capitolo al fine <strong>di</strong> valutarne gli effettivi benefici in<br />

termini <strong>di</strong> aumento della autonomia dei no<strong>di</strong> sensori. Viene inoltre proposta<br />

una interessante via <strong>di</strong> sviluppo che, attraverso la ristrutturazione del<br />

protocollo <strong>di</strong> routing e l’utilizzo <strong>di</strong> una piattaforma hardware che consenta<br />

lo spegnimento selettivo (da co<strong>di</strong>ce) dei moduli ra<strong>di</strong>o, permette <strong>di</strong> ottenere<br />

significativi vantaggi nell’autonomia della rete.<br />

2


Capitolo 1<br />

Reti <strong>di</strong> sensori senza cavo<br />

1.1 LE WIRELESS SENSOR NETWORK<br />

I rapi<strong>di</strong> progressi nella progettazione <strong>di</strong> sistemi microelettromeccanici<br />

(MEMS) e a ra<strong>di</strong>o frequenze (RF) hanno favorito un repentino sviluppo <strong>di</strong><br />

“no<strong>di</strong> sensori”, termine generico con cui si in<strong>di</strong>ca un insieme <strong>di</strong> <strong>di</strong>spositivi<br />

estremamente versatili e dalle <strong>di</strong>mensioni generalmente ridotte, dotati della<br />

capacità <strong>di</strong> comunicare a breve <strong>di</strong>stanza. L’interconnessione <strong>di</strong> tali “no<strong>di</strong><br />

sensori” per mezzo <strong>di</strong> tecnologie ra<strong>di</strong>o, unitamente allo sviluppo <strong>di</strong> una<br />

architettura protocollare che consenta la cooperazione tra le <strong>di</strong>verse entità,<br />

non fa altro che amplificare, in modo esponenziale, la capacità dei singoli<br />

<strong>di</strong>spositivi dando il via allo sviluppo <strong>di</strong> un insieme vastissimo <strong>di</strong> nuove<br />

applicazioni.<br />

Questo concetto è alla base delle reti <strong>di</strong> sensori, note in letteratura con il<br />

nome <strong>di</strong> Wireless Sensor Network (WSN) il cui obiettivo è l’utilizzo <strong>di</strong> un<br />

numero abbastanza elevato <strong>di</strong> sensori, organizzati in un sistema intelligente<br />

<strong>di</strong> gestione e <strong>di</strong> rilevazione. I benefici introdotti dalle WSN possono essere<br />

riassunti in:<br />

� Facile <strong>di</strong>slocazione: la copertura dei tra<strong>di</strong>zionali macrosensori<br />

cablati è limitata a certe aree a causa dei vincoli imposti dal costo e<br />

3


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

dalla posa, rigorosamente ad opera <strong>di</strong> personale specializzato. In<br />

contrasto, le WSNs possono contenere un grande numero <strong>di</strong> no<strong>di</strong><br />

fisicamente separati. Anche se la copertura ra<strong>di</strong>o fornita da un<br />

singolo nodo è ridotta, no<strong>di</strong> densamente <strong>di</strong>stribuiti possono lavorare<br />

simultaneamente e in maniera cooperativa così da estendere la<br />

copertura dell’intera rete; inoltre i sensori possono essere<br />

letteralmente paracadutati in zone avverse [28];<br />

� Ridondanza naturale: una densa <strong>di</strong>slocazione dei sensori senza filo<br />

e la correlazione tra dati <strong>di</strong> no<strong>di</strong> vicini in una specifica area rende le<br />

WSN molto più flessibili rispetto alle classiche reti <strong>di</strong> sensori cablati.<br />

In caso <strong>di</strong> fallimento <strong>di</strong> uno dei no<strong>di</strong>, la rete riesce a reagire molto<br />

bene grazie alla forte ridondanza spaziale che caratterizza le WSN<br />

cosa che invece non sarebbe proponibile nelle reti <strong>di</strong> macrosensori.<br />

Inoltre, la possibilità <strong>di</strong> poter raggiungere <strong>di</strong>versi no<strong>di</strong> <strong>di</strong>rettamente<br />

(poiché posizionati in una area <strong>di</strong> raggio minore <strong>di</strong> quello <strong>di</strong><br />

trasmissione) garantisce una ridondanza anche nei possibili cammini<br />

verso la destinazione<br />

� Accuratezza: anche se i macrosensori possono fornire misure con<br />

una maggiore precisione rispetto ad un microsensore, la grande<br />

quantità <strong>di</strong> dati collezionati da una moltitu<strong>di</strong>ne <strong>di</strong> minuscoli sensori<br />

riflette meglio le caratteristiche della realtà. Inoltre, adottando<br />

appositi algoritmi <strong>di</strong> cooperazione tra no<strong>di</strong> è possibile abbattere il<br />

rumore <strong>di</strong> misura incorrelato e incrementare la componente comune.<br />

� Costo: E’ previsto che le WSN siano molto meno costose rispetto<br />

alle reti <strong>di</strong> macrosensori: basti pensare che il solo costo del cablaggio<br />

sia per la trasmissione delle misure che per l’alimentazione dei<br />

sensori, a volte raggiunge costi molto superiori a quelli dei soli no<strong>di</strong>.<br />

4


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

1.2 DIFFERENZA TRA RETI DI SENSORI E RETI AD<br />

HOC<br />

Le Wireless Sensor Network sono considerate come dei particolari casi <strong>di</strong><br />

reti ad hoc dette “Mobile Ad-hoc NETworks” (MANET) [2] però bisogna<br />

evidenziare che seppur con<strong>di</strong>vidono molti elementi con esse molte sono<br />

anche le <strong>di</strong>fferenze e specificità che hanno suscitato una particolare<br />

attenzione della ricerca [3]. È importante quin<strong>di</strong> evidenziare le <strong>di</strong>fferenza<br />

tra le comuni reti ad-hoc e le reti <strong>di</strong> sensori in termini <strong>di</strong>:<br />

� SCALABILITA’: perché il numero <strong>di</strong> no<strong>di</strong> che compongono una rete<br />

<strong>di</strong> sensori può essere <strong>di</strong> <strong>di</strong>versi or<strong>di</strong>ni <strong>di</strong> grandezza superiore rispetto<br />

quello <strong>di</strong> una rete tra<strong>di</strong>zionale, inoltre la densità dei no<strong>di</strong> nelle<br />

vicinanze del fenomeno da rilevare può risultare molto elevata;<br />

� FLUSSO DI COMUNICAZIONE: in quanto nelle tra<strong>di</strong>zionali WSN<br />

il flusso è fortemente asimmetrico, ovvero tutti i no<strong>di</strong> inviano i dati<br />

raccolti all’interfaccia con l’utilizzatore, cosa che <strong>di</strong> solito non<br />

accade nelle reti ad-hoc dove si pre<strong>di</strong>ligono le comunicazioni tra i<br />

singoli no<strong>di</strong> (peer-to-peer);<br />

� CAPACITA’ ENERGETICHE E DI CALCOLO: che nelle WSN sono<br />

estremamente limitate e che risultano essere un vincolo progettuale e<br />

quin<strong>di</strong> da tenere debitamente in conto nella progettazione<br />

dell’architettura della rete.<br />

� FAULT-TOLERANCE: in quanto i no<strong>di</strong> <strong>di</strong> una wireless sensor<br />

network possono essere molto spesso soggetti a guasti.<br />

� CENTRALITA’ DEI DATI: in quanto le informazioni originate da un<br />

nodo generalmente non sono <strong>di</strong> fondamentale importanza per la<br />

missione della rete: l’utente finale è più interessato ad avere una<br />

5


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

visione d’insieme del sistema; quin<strong>di</strong> se un no<strong>di</strong> si guasta è molto<br />

probabile che ciò non influenzi significativamente le prestazioni<br />

globali del sistema, grazie alla ridondanza caratteristica delle WSN.<br />

1.3 ARCHITETTURA DELLA RETE<br />

Una rete <strong>di</strong> sensori è un insieme, eventualmente eterogeneo, <strong>di</strong> no<strong>di</strong> sensore<br />

che forma una predeterminata topologia. I no<strong>di</strong> sensore possono essere<br />

equipaggiati con <strong>di</strong>spositivi in grado <strong>di</strong> rilevare una grande varietà <strong>di</strong><br />

con<strong>di</strong>zioni ambientali, come temperatura, umi<strong>di</strong>tà, movimento dei veicoli,<br />

luminosità, pressione, livello <strong>di</strong> rumore, presenza o assenza <strong>di</strong> certi tipi <strong>di</strong><br />

oggetti, grado <strong>di</strong> stress meccanico, valori istantanei <strong>di</strong> velocità, <strong>di</strong>rezione e<br />

<strong>di</strong>mensioni <strong>di</strong> un oggetto.<br />

Gli elementi della rete sono collocati all’interno dell’area da monitorare, o<br />

comunque nelle imme<strong>di</strong>ate vicinanze. Solitamente si associa ogni nodo a un<br />

oggetto, una persona, un animale o un luogo determinante per lo stu<strong>di</strong>o del<br />

fenomeno che si desidera osservare. Tipicamente non è prevista nessuna<br />

infrastruttura fissa a cui si possano appoggiare i no<strong>di</strong>, per questo <strong>di</strong> parla <strong>di</strong><br />

reti “ad-hoc”, che possono essere centralizzate se tutte le comunicazioni<br />

sono <strong>di</strong>rette ad un unico nodo che elabora le informazioni raccolte, oppure<br />

<strong>di</strong>stribuite se i no<strong>di</strong> hanno capacità e intelligenza sufficienti a elaborare i<br />

dati autonomamente. La Figura 1.1 mostra come un messaggio attraversi la<br />

rete attraverso un routing multihop da un nodo generico fino al sink, il nodo<br />

de<strong>di</strong>cato alla raccolta de dati, a cui può essere <strong>di</strong>rettamente collegato<br />

l’elaboratore dell’utente oppure un’interfaccia con altre WSN o altre reti<br />

eterogenee (per esempio Internet).<br />

6


Figura 1.1: Architettura <strong>di</strong> una WSN<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

È inoltre possibile prevedere più stazioni <strong>di</strong> raccolta dati interme<strong>di</strong>e,<br />

eventualmente anche mobili, come ad esempio un utente dotato <strong>di</strong> PDA<br />

(Personal Digital Assistant), oppure un aereo in volo.<br />

Attraverso il percorso inverso l’utente, me<strong>di</strong>ante l’applicazione <strong>di</strong> gestione<br />

della rete, è in grado <strong>di</strong> inviare coman<strong>di</strong> ad ogni nodo della WSN. Se oltre<br />

ad essere equipaggiati con sensori, i no<strong>di</strong> <strong>di</strong>spongono anche <strong>di</strong> attuatori si<br />

parla <strong>di</strong> Wireless Sensor and Actor Network (WSAN). A partire dalle<br />

informazioni raccolte dal mondo che li circonda, i sensori sono in grado <strong>di</strong><br />

decidere come agire per mo<strong>di</strong>ficare l’ambiente in cui si trovano tramite gli<br />

attuatori. Non necessariamente tutti i no<strong>di</strong> <strong>di</strong> una WSAN sono forniti <strong>di</strong><br />

attuatori che implicano un più alto consumo <strong>di</strong> energia e una maggior<br />

complessità <strong>di</strong> rispondere rapidamente ad un evento per pilotare<br />

tempestivamente l’attuatore.<br />

7


1.4 DESCRIZIONE DEI NODI SENSORI<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Esistono <strong>di</strong>verse piattaforme hardware <strong>di</strong> no<strong>di</strong> per WSN, in Figura 1.2 viene<br />

mostrato lo schema generale nel quale è possibile rintracciare cinque<br />

elementi fondamentali: uno o più sensori della grandezza fisica da rilevare<br />

(trasduttore), un trasmettitore per la comunicazione e lo scambio dei dati<br />

(ra<strong>di</strong>o), un'unità <strong>di</strong> elaborazione <strong>di</strong>gitale della grandezza misurata che<br />

sovrintende anche alla comunicazione ra<strong>di</strong>o (unità <strong>di</strong> elaborazione e<br />

controllo), un sistema <strong>di</strong> alimentazione autonomo (power management) e,<br />

in infine, uno o più attuatori.<br />

1.4.1 Sensing Module<br />

Comunemente col termine sensore si in<strong>di</strong>ca l’intero nodo <strong>di</strong> una WSN. In<br />

questo contesto però in<strong>di</strong>cheremo con il termine sensore l’hardware <strong>di</strong> cui è<br />

dotato un nodo per trasformare la grandezza fisica acquisita in un segnale<br />

elettrico che possa essere elaborato (trasduttore).<br />

Un nodo può <strong>di</strong>sporre <strong>di</strong> più sensori, anche <strong>di</strong> grandezze fisiche <strong>di</strong>verse,<br />

che sono strettamente legate alla specifica applicazione; si possono avere ad<br />

esempio sensori <strong>di</strong> luminosità, pressione, temperatura, prossimità. La<br />

maggior parte dei sensori, prevede inoltre la presenza <strong>di</strong> un blocco <strong>di</strong><br />

conversione analogica-<strong>di</strong>gitale (ADC, Analog to Digital Converter), da<br />

Figura 1.2: Componenti hardware <strong>di</strong> un nodo sensori<br />

8


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

utilizzare durante la fase <strong>di</strong> acquisizione del segnale. Il tipo <strong>di</strong> elaborazione<br />

da effettuare <strong>di</strong>pende dalla grandezza fisica rilevata e influisce <strong>di</strong>rettamente<br />

sui consumi: si pensi ad esempio <strong>di</strong> dover <strong>di</strong>gitalizzare un particolare<br />

segnale analogico: la rapi<strong>di</strong>tà con cui varia determina la velocità <strong>di</strong><br />

campionamento necessaria per acquisirlo correttamente, mentre la sua<br />

<strong>di</strong>namica e la precisione con cui lo si vuol rappresentare stabiliscono il<br />

numero <strong>di</strong> bit della parola associata ad ogni campione. All’aumentare della<br />

velocità <strong>di</strong> campionamento e del numero <strong>di</strong> bit del convertitore analogico<br />

<strong>di</strong>gitale, si ha un incremento dei consumi.<br />

1.4.2 Unità <strong>di</strong> elaborazione<br />

La presenza <strong>di</strong> una CPU permette <strong>di</strong> dotare il nodo delle capacità<br />

elaborative per gestire le comunicazioni e le grandezze misurate. Il ruolo<br />

della CPU può essere svolto da <strong>di</strong>verse tipologie <strong>di</strong> circuiti logici.<br />

Comunemente la scelta ricade su un microcontrollore a basso consumo, ma<br />

è possibile impiegare anche un FPGA (Field Programmable Gate Array), un<br />

DSP (Digital Signal Processing) o un ASIC(Application Specific Integrated<br />

Circuit). Un compito tipico del microprocessore in queste piattaforme è la<br />

verifica dell’effettiva necessità <strong>di</strong> utilizzare le risorse: per preservare la<br />

carica della batteria il nodo deve <strong>di</strong>sattivare tutti i <strong>di</strong>spositivi come chip<br />

ra<strong>di</strong>o, timer, oscillatori, ogni volta che questi non sono in<strong>di</strong>spensabili per le<br />

attività del nodo stesso. La gestione dei tempi e delle modalità del passaggio<br />

dallo stato a basso consumo a quello <strong>di</strong> attività dei vari componenti è<br />

affidata al microprocessore.<br />

Il microprocessore è spesso integrato con alcuni blocchi <strong>di</strong> memoria ROM e<br />

RAM utilizzati per ospitare il co<strong>di</strong>ce eseguibile del sistema operativo e<br />

dell’applicazione, nonché i dati acquisiti dai sensori ed elaborati<br />

dall’applicazione. La gestione e l’utilizzo delle memorie è una fonte <strong>di</strong><br />

consumo energetico, pertanto i blocchi <strong>di</strong> memoria integrati hanno capacità<br />

9


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

ridotte, limitate a poche decine <strong>di</strong> kbyte e la loro <strong>di</strong>mensione, in termini <strong>di</strong><br />

capacità <strong>di</strong> immagazzinare dati, non va sovrastimata. Alcune piattaforme,<br />

tuttavia, possono essere dotate <strong>di</strong> memorie Flash aggiuntive, connesse al<br />

microprocessore per mezzo <strong>di</strong> interfacce seriali. Queste memorie,<br />

solitamente <strong>di</strong> capacità superiore rispetto alle memorie integrate con il<br />

microprocessore, possono essere utilizzate per contenere parametri per la<br />

configurazione del nodo o altri dati. Chiaramente, l’utilizzo delle memorie<br />

aggiuntive aumenta la potenzialità del nodo, ma influisce negativamente,<br />

come già detto, sui consumi energetici.<br />

1.4.3 Unità <strong>di</strong> comunicazione<br />

Per garantire la connettività tra i no<strong>di</strong> <strong>di</strong> una WSN è possibile adottare<br />

<strong>di</strong>verse strategie. Tipicamente la connessione è realizzata via ra<strong>di</strong>o, anche se<br />

per alcune particolari applicazioni sono <strong>di</strong>sponibili soluzioni alternative che<br />

impieghino ultrasuoni o comunicazioni ottiche. Solitamente tra tutti i<br />

componenti del nodo, il chip ra<strong>di</strong>o è il <strong>di</strong>spositivo che consuma la maggior<br />

parte dell'energia. Per ridurre il costo e il consumo energetico dei no<strong>di</strong>, si<br />

utilizzano tipicamente modulazioni ben consolidate e <strong>di</strong> bassa complessità,<br />

a <strong>di</strong>scapito della capacità trasmissiva che è spesso limitata a qualche decina<br />

<strong>di</strong> kbit/s. Per limitare ulteriormente il costo finale del <strong>di</strong>spositivo, la<br />

modulazione ra<strong>di</strong>o avviene normalmente nelle bande comprese tra gli 868-<br />

870 MHz o nelle bande ISM (Industrial ScientificMe<strong>di</strong>cal) attorno ai 900<br />

MHz e ai 2,4 GHz, per le quali non è richiesta licenza governativa.<br />

1.4.4 Alimentazione<br />

Data l’impossibilità <strong>di</strong> usufruire <strong>di</strong> una rete <strong>di</strong> <strong>di</strong>stribuzione dell’energia, è<br />

necessario che ciascun elemento della WSN sia equipaggiato con un sistema<br />

autonomo <strong>di</strong> alimentazione. Attualmente l’unica soluzione <strong>di</strong>ffusa è data<br />

10


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

dall’utilizzo <strong>di</strong> pile elettrochimiche, il cui sviluppo tecnologico non ha visto<br />

notevoli incrementi nell’ultimo ventennio; ecco perchè la progettazione<br />

delle reti <strong>di</strong> sensori è centrata sul risparmio energetico. Fonti <strong>di</strong> energia<br />

alternative sono argomento <strong>di</strong> ricerca ma, come riportato in Tab. 1.1, al<br />

momento non sono ancora in grado <strong>di</strong> rimpiazzare l’alimentazione a<br />

batterie; l’unica strategia applicabile per ora è lo spegnimento selettivo dei<br />

no<strong>di</strong> per la maggior parte del tempo, in modo da ridurre il consumo <strong>di</strong><br />

potenza me<strong>di</strong>o. Promettente è la combinazione data da energia solare ed<br />

elettrochimica, in cui l’energia elettrica prodotta dalle celle fotovoltaiche<br />

esposte alla luce del sole, va a ricaricare una batteria tampone che il nodo<br />

utilizza in assenza <strong>di</strong> luce.<br />

1.5 PARAMETRI DI PROGETTO<br />

Le WSN sono state concepite al fine <strong>di</strong> rilevare delle informazioni<br />

dall’ambiente circostante e <strong>di</strong> inviarle presso un centro specializzato che<br />

elabori queste informazioni. Le reti <strong>di</strong> sensori wireless possono essere<br />

<strong>di</strong>slocate anche in ambienti particolarmente ostili o comunque in ambienti in<br />

Sorgente <strong>di</strong> energia Trasduttore Potenza Svantaggi<br />

Conversione <strong>di</strong>retta da<br />

camminata<br />

Piezoelettrico 5W<br />

Elevato rumore E.M. ed<br />

elevato ingombro<br />

Utilizzabile solo durante<br />

Solare Cella fotovoltaica 20mW le ore del giorno e<br />

abbastanza costosa<br />

Campo magnetico Induttore 1.5 mW Scarsa potenza erogabile<br />

Vibrazioni Bobina mobile 400 mW<br />

Necessità <strong>di</strong> vibrazioni per<br />

essere attivato<br />

Vibrazioni ad alta<br />

frequenza<br />

MEMS e bobina<br />

mobile<br />

100 mW<br />

Necessità <strong>di</strong> vibrazioni per<br />

essere attivato<br />

Campo a ra<strong>di</strong>o<br />

frequenza<br />

Antenna 5 mW - Scarsa potenza erogabile<br />

Tabella 4-1: Fonti energetiche alternative<br />

11


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

cui un intervento <strong>di</strong> manutenzione da parte dell’uomo potrebbe risultare<br />

impossibile (si pensi ad esempio ad una <strong>di</strong>slocazione <strong>di</strong> no<strong>di</strong> in un bosco<br />

attraverso l’ausilio <strong>di</strong> un aereo).<br />

Questo primo esempio ci fa già comprendere come le caratteristiche <strong>di</strong> una<br />

rete <strong>di</strong> sensori siano strettamente legate al reale impiego che se ne deve fare,<br />

infatti ogni specifica applicazione richiede che la WSN abbia delle proprietà<br />

particolari; questo naturalmente limita fortemente la portabilità e riusabilità<br />

delle rete in contesti <strong>di</strong>fferenti (al contrario delle tra<strong>di</strong>zionali reti ad-hoc) e<br />

si paga anche in termini <strong>di</strong> complessità <strong>di</strong> progettazione e tempi <strong>di</strong> sviluppo.<br />

Gli aspetti da considerare sono molteplici [3], <strong>di</strong> seguito si prenderanno in<br />

considerazione i principali parametri da tenere in considerazione nella fase<br />

<strong>di</strong> progettazione <strong>di</strong> una Wireless Sensor Network.<br />

1.5.1 Consumo energetico<br />

La vita <strong>di</strong> un sensore è legata principalmente alla durata della batteria.<br />

Inoltre, la riserva <strong>di</strong> energia posseduta da un sensore risulta essere<br />

estremamente ridotta, e molto spesso <strong>di</strong>fficile da rifornire. Ciò implica<br />

l’introduzione <strong>di</strong> appositi meccanismi che preservino la durata delle batterie,<br />

se possibile, fino ad alcuni anni, massimizzando l’invio delle informazioni<br />

dall’ambiente in cui si è scelto <strong>di</strong> installare la WSN. In questa logica lo<br />

scopo principale da perseguire, che del resto è una vera e propria sfida<br />

tecnologica per questi sistemi, è la riduzione del consumo <strong>di</strong> potenza. La<br />

richiesta <strong>di</strong> potenza va quin<strong>di</strong> minimizzata ad ogni livello <strong>di</strong> sviluppo, sia a<br />

livello hardware che software al fine <strong>di</strong> ottenere le prestazioni energetiche<br />

desiderate. Il consumo energetico può essere sud<strong>di</strong>viso in due punti<br />

fondamentali: comunicazione ed elaborazione dati in tempo reale.<br />

• COMUNICAZIONE:<br />

Un sensore spende la maggior parte dell’energia nelle fasi <strong>di</strong><br />

comunicazione, che comprendono sia la trasmissione che la ricezione dei<br />

12


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

dati. A corto raggio, trasmettere e ricevere dati comporta pressoché lo stesso<br />

consumo <strong>di</strong> potenza, ma in generale è la trasmissione <strong>di</strong> dati che necessita<br />

maggiore energia. In tale caso non si deve considerare solo il consumo <strong>di</strong><br />

potenza attiva, ma anche la potenza <strong>di</strong> “avvio” della trasmissione, in quanto<br />

questa fase ha dei tempi non trascurabili. Basti pensare che non appena le<br />

<strong>di</strong>mensioni del pacchetto da trasmettere <strong>di</strong>minuiscono, tale potenza tende<br />

ad<strong>di</strong>rittura a dominare sulla potenza attiva. Di conseguenza, non si può<br />

considerare un trasmettitore solo nella fase ON o OFF, perchè una buona<br />

parte <strong>di</strong> potenza viene spesa nel momento in cui si accende. La potenza Pc<br />

spesa da una ra<strong>di</strong>o può essere sintetizzata dalla seguente formula:<br />

[ P T + T ) + P ( T ) ] + N [ P ( R R ) ]<br />

P C = NT<br />

T ( on st out on R R on + st<br />

dove PT e PR rappresentano la potenza consumata nel trasmettere e ricevere,<br />

Pout la potenza <strong>di</strong> uscita dal trasmettitore, Ton e Ron il tempo in cui il<br />

trasmettitore e il ricevitore sono nella fase ON, Tst e Rst il tempo in cui il<br />

trasmettitore e ricevitore sono nella fase <strong>di</strong> avvio e NT NR il tempo in cui il<br />

trasmettitore e il ricevitore è attivo per unità <strong>di</strong> tempo. Tipicamente, per<br />

trasmettitori a basso consumo <strong>di</strong> potenza, PT e PR assumono valori<br />

dell’or<strong>di</strong>ne dei 20 dBm e Pout attorno agli 0 dBm. In conclusione, il<br />

progetto <strong>di</strong> una rete <strong>di</strong> sensori e la scelta del protocollo utilizzato sono<br />

influenzati da considerazioni sulla potenza.<br />

• ELABORAZIONE DATI IN TEMPO REALE<br />

Nonostante l’energia spesa nell’elaborazione dei dati sia significativamente<br />

inferiore a quella spesa per la loro trasmissione, è comunque un’ aspetto<br />

cruciale ridurre al minimo l’elaborazione dei dati sia per risparmiare<br />

energia, sia per abbassare il tempo in cui i sensori processano i dati. Ogni<br />

nodo deve perciò essere costruito in modo da avere varie abilità<br />

computazionali ed essere in grado <strong>di</strong> interagire con i sensori vicini.<br />

13


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

<strong>Stu<strong>di</strong></strong> specifici, effettuati su CMOS usati in regime <strong>di</strong>gitale, hanno portato<br />

alla seguente formula che permette <strong>di</strong> calcolare approssimativamente la<br />

potenza Pp spesa nell’elaborazione dei dati:<br />

P p<br />

2<br />

= CV dd f<br />

Vdd<br />

+ Vdd<br />

I 0 exp( VT<br />

)<br />

n<br />

dove C è la capacità totale del carico pilotato dall’elettronica, Vdd è il<br />

voltaggio <strong>di</strong> alimentazione ed f la frequenza me<strong>di</strong>a <strong>di</strong> commutazione. Da<br />

notare inoltre che il secondo termine in<strong>di</strong>ca la potenza spesa a causa della<br />

<strong>di</strong>spersione <strong>di</strong> corrente.<br />

1.5.2 Costo<br />

È in<strong>di</strong>spensabile che l’utilizzo della WSN sia economicamente conveniente<br />

rispetto a soluzioni alternative; d’altro canto solo una produzione <strong>di</strong> massa<br />

dei sensori può abbatterne i costi e incentivarne l’utilizzo. La speranza è che<br />

entro pochi anni il costo <strong>di</strong> un nodo non superi il dollaro, ma attualmente si<br />

è ancora lontani da questa previsione: infatti il costo del Bluetooth, il<br />

<strong>di</strong>spositivo ra<strong>di</strong>o attualmente più economico, si aggira intorno ai cinque<br />

dollari. Si deve poi considerare che un nodo possa <strong>di</strong>sporre anche <strong>di</strong> altre<br />

dotazioni come GPS (Global Positioning System), alimentatori e attuatori<br />

che ne fanno aumentare il costo. Piuttosto <strong>di</strong> sostenere costi <strong>di</strong><br />

manutenzione talvolta si preferisce smettere <strong>di</strong> utilizzare i no<strong>di</strong> che si<br />

guastano, il che risulta economicamente più conveniente se ciò non limita<br />

eccessivamente la connettività.<br />

1.5.3 Connettività<br />

La capacità dei no<strong>di</strong> <strong>di</strong> comunicare fra loro definisce la connettività. Una<br />

rete in cui ogni nodo può comunicare con qualunque altro, anche attraverso<br />

multihop (non <strong>di</strong>rettamente ma me<strong>di</strong>ante altri no<strong>di</strong> che fungono da ponte), si<br />

14


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

<strong>di</strong>ce connessa. In una WSN, tuttavia, questo tipo <strong>di</strong> connettività non è<br />

garantito, in quanto i no<strong>di</strong> passano lunghi perio<strong>di</strong> in stato <strong>di</strong> inattività (sleep)<br />

al fine <strong>di</strong> risparmiare energia, risultando raggiungibili solo in determinati<br />

intervalli <strong>di</strong> tempo. Inoltre, alcuni no<strong>di</strong> possono risultare permanentemente<br />

<strong>di</strong>sconnessi a causa <strong>di</strong> un guasto o esaurimento delle riserve energetiche. In<br />

questo caso si ha una rete partizionata e si parla <strong>di</strong> connettività a<br />

intermittenza che deve essere attentamente considerata nella progettazione<br />

dei protocolli <strong>di</strong> comunicazione e dei meccanismi <strong>di</strong> inoltro dei dati che<br />

devono quin<strong>di</strong> risultare robusti al partizionamento temporaneo e alle<br />

variazioni topologiche della rete e alla per<strong>di</strong>ta dei dati. Infine se un nodo<br />

resta per la maggior parte del tempo isolato e può comunicare solo<br />

raramente si parla <strong>di</strong> comunicazione spora<strong>di</strong>ca.<br />

1.5.4 Topologia della rete<br />

La topologia <strong>di</strong> una rete <strong>di</strong> sensori è soggetta a continui cambiamenti dovuti<br />

a fattori casuali e a imprevisti, come possono essere danneggiamento ed<br />

esaurimento energetico. Inoltre tale topologia varia anche per il fatto che<br />

non tutti i no<strong>di</strong> sono funzionanti nello stesso istante, ma alcuni sono tenuti<br />

in uno stato <strong>di</strong> basso consumo <strong>di</strong> energia. In tale stato il transceiver del nodo<br />

non è attivo e questo si traduce da un lato in un certo risparmio <strong>di</strong> energia,<br />

dall’altro nel fatto che il sensore non è connesso alla rete. Questo comporta<br />

una <strong>di</strong>minuzione della capacità <strong>di</strong> copertura e della connettività della rete. Il<br />

compromesso tra questi due parametri e il risparmio energetico è noto come<br />

topology management. L’evoluzione della topologia <strong>di</strong> una rete si può<br />

riassumere in tre fasi:<br />

1) Schieramento: i no<strong>di</strong> sono <strong>di</strong>stribuiti casualmente<br />

nell’ambiente (anche se possono essere presenti tecniche <strong>di</strong><br />

15


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

posizionamento stu<strong>di</strong>ate per ridurre le interferenze o per<br />

avvantaggiare l’auto-organizzazione dei no<strong>di</strong>);<br />

2) Post-schieramento: la topologia della rete cambia a causa dello<br />

spostamento, della <strong>di</strong>struzione o dell’esaurimento dell’energia<br />

dei no<strong>di</strong>;<br />

3) Rischieramento: i no<strong>di</strong> non più funzionanti vengono sostituiti<br />

da altri.<br />

1.5.5 Dimensioni e posizionamento dei no<strong>di</strong><br />

Per poter essere posizionati negli ambienti più <strong>di</strong>sparati è necessario che i<br />

no<strong>di</strong> siano <strong>di</strong> piccole <strong>di</strong>mensioni e leggeri, cosa non semplice per la<br />

presenza <strong>di</strong> componenti non facilmente integrabili come batteria e antenna. I<br />

no<strong>di</strong> inoltre, possono essere installati in posizioni specifiche, o possono<br />

essere <strong>di</strong>stribuiti in maniera casuale a ricoprire tutto un territorio. Per varie<br />

ragioni i no<strong>di</strong> possono essere rimpiazzati, o se ne possono aggiungere altri<br />

influenzando così la localizzazione, la densità e la topologia della rete.<br />

Riguardo la densità dei no<strong>di</strong> viene definita in mo<strong>di</strong> <strong>di</strong>versi: in termini <strong>di</strong><br />

numero <strong>di</strong> no<strong>di</strong> nell’area considerata oppure come rapporto fra il numero <strong>di</strong><br />

no<strong>di</strong> all’interno dell’intera rete e la superficie della regione su cui è<br />

<strong>di</strong>stribuita la rete. La <strong>di</strong>mensione della rete influenza l’affidabilità e<br />

l’accuratezza <strong>degli</strong> algoritmi <strong>di</strong> elaborazione.<br />

1.5.6 Mobilità<br />

In alcuni casi tutti i sensori della rete, o solo alcuni, possono spostarsi o<br />

essere parte <strong>di</strong> un <strong>di</strong>spositivo mobile: si parla in questo caso <strong>di</strong> MANET<br />

(Mobile Ad-hoc NETwork). In genere le WSN sono caratterizzate da un<br />

basso grado <strong>di</strong> mobilità. Velocità <strong>di</strong> spostamento e grado <strong>di</strong> mobilità<br />

influiscono sulla progettazione dei protocolli, in particolar modo quelli<br />

<strong>di</strong>stribuiti.<br />

16


1.5.7 Scalabilità<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

La scalabilità in<strong>di</strong>ca la capacità che ha una rete <strong>di</strong> garantire un degrado<br />

lineare delle prestazioni al crescere del numero <strong>di</strong> no<strong>di</strong> <strong>di</strong> cui è composta.<br />

Per analizzare correttamente questo parametro si deve fare riferimento alla<br />

densità dei no<strong>di</strong> nella rete:<br />

NπR<br />

μ ( R)<br />

=<br />

A<br />

dove N rappresenta il numero dei no<strong>di</strong>, R il raggio <strong>di</strong> trasmissione, A la<br />

superficie in cui la rete opera, e μ(R) rappresenta il numero me<strong>di</strong>o <strong>di</strong> no<strong>di</strong><br />

che si trovano entro la portata <strong>di</strong> un sensore.<br />

1.5.8 Sicurezza<br />

Una WSN può essere soggetta a molteplici attacchi, quali:<br />

� appropriamento delle informazioni scambiate fra i no<strong>di</strong>, da parte<br />

<strong>di</strong> un ascoltatore esterno in grado <strong>di</strong> ricevere le comunicazioni<br />

scambiate non crittografate;<br />

� sostituzione <strong>di</strong> un nodo, che dopo essere stato sottratto alla rete,<br />

manomesso e reinserito può rendere accessibile a un ascoltatore<br />

esterno le chiavi <strong>di</strong> crittografia <strong>di</strong> messaggi <strong>di</strong> livello più alto;<br />

� inserimento <strong>di</strong> un nodo fasullo, non appartenente alla rete ma che<br />

la rete stessa invece riconosce come proprio e che può inoltrare<br />

false informazioni nella WSN o bloccare il passaggio <strong>di</strong><br />

informazioni autentiche;<br />

� nodo malfunzionante, che può immettere nella rete informazioni<br />

non corrette che si propagano nella WSN;<br />

� corruzione del messaggio, può avvenire se un intruso si inserisce<br />

nella comunicazione fra i no<strong>di</strong> tentando <strong>di</strong> danneggiare<br />

l’integrità del messaggio, mo<strong>di</strong>ficandolo;<br />

17<br />

2


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

� negazione del servizio, avviene in <strong>di</strong>versi mo<strong>di</strong> ad esempio<br />

creando continue collisioni nelle trasmissioni ra<strong>di</strong>o, riducendo le<br />

risorse della rete o alterando il routing;<br />

� analisi del traffico, attraverso lo stu<strong>di</strong>o della parte <strong>di</strong> dati<br />

trasmessi senza crittografia, consente <strong>di</strong> rendere inutilizzabile la<br />

rete.<br />

1.5.9 Affidabilità<br />

Nell’ambito specifico delle reti <strong>di</strong> sensori senza cavo il concetto <strong>di</strong><br />

affidabilità si formalizza come la capacità che deve avere una rete <strong>di</strong><br />

conservare le proprie funzionalità in<strong>di</strong>pendentemente dall’eventuale guasto<br />

<strong>di</strong> qualche sensore o semplicemente da una trasmissione fallita. Attualmente<br />

il requisito <strong>di</strong> affidabilità, in una WSN, ha assunto un ruolo <strong>di</strong> primo livello<br />

e influenza non poco il progetto dell’intera architettura del sistema, uno<br />

stu<strong>di</strong>o approfon<strong>di</strong>to sarà portato avanti nel capitolo 2.<br />

1.6 PROTOCOLLI DI COMUNICAZIONE<br />

I protocolli <strong>di</strong> comunicazione rappresentano una delle aree <strong>di</strong> ricerca più<br />

attive nell'ambito delle reti <strong>di</strong> sensori. I maggiori sforzi si sono concentrati<br />

nella realizzazione <strong>di</strong> protocolli MAC efficienti dal punto <strong>di</strong> vista<br />

energetico e <strong>di</strong> protocolli <strong>di</strong> routing che offrano soluzioni efficaci per tutte<br />

le esigenze. Dei livelli <strong>di</strong> cui è composto il modello ISO/OSI, quelli<br />

coinvolti nella progettazione <strong>di</strong> protocolli <strong>di</strong> rete per una rete <strong>di</strong> sensori<br />

sono il livello fisico, il livello data-link ed il livello <strong>di</strong> rete, <strong>di</strong> cui ne daremo<br />

una breve descrizione nei successivi sottoparagrafi.<br />

1.6.1 Livello Fisico<br />

18


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Il livello fisico si occupa <strong>di</strong> impostare la frequenza, <strong>di</strong> generare la portante e<br />

del riconoscimento del segnale e infine della modulazione e co<strong>di</strong>fica dei<br />

dati. Ma rispetto alle classiche trasmissioni ra<strong>di</strong>o, in questo caso il<br />

principale problema è come trasmettere i dati spendendo la quantità minima<br />

<strong>di</strong> energia, tenendo conto <strong>di</strong> tutti i costi collegati (overhead, etc).<br />

Molti lavori si concentrano sulla modulazione efficiente del segnale dal<br />

punto <strong>di</strong> vista energetico [4] [5].<br />

1.6.2 Livello data-link<br />

Il livello data-link è responsabile della multiplazione dei flussi <strong>di</strong> dati, del<br />

riconoscimento dei frame, del controllo dell'accesso al mezzo e del controllo<br />

dell'errore. Di questi aspetti forse il più interessante è la progettazione del<br />

protocollo MAC [6].<br />

Gli obiettivi del MAC sono i seguenti:<br />

� Ridurre le collisioni. Se due o più no<strong>di</strong> trasmettono<br />

contemporaneamente sullo stesso canale ra<strong>di</strong>o, i loro messaggi<br />

interferiscono reciprocamente e in ricezione non è possibile<br />

ricostruirli; si deve quin<strong>di</strong> programmare una ritrasmissione in istanti<br />

<strong>di</strong>fferenti per tentare nuovamente l’inoltro del messaggio.<br />

Ritrasmettere più volte lo stesso pacchetto comporta un notevole<br />

<strong>di</strong>spen<strong>di</strong>o d’energia che, come già esposto, i no<strong>di</strong> devono evitare. A<br />

tal fine può essere conveniente sud<strong>di</strong>videre il canale in più<br />

sottocanali,utilizzabili contemporaneamente per ridurre i conflitti <strong>di</strong><br />

accesso al mezzo; le soluzioni più <strong>di</strong>ffuse sfruttano la <strong>di</strong>versità<br />

temporale (TDMA, Time Division Multiple Access), in frequenza<br />

(FDMA, Frequency Division Multiple Access) <strong>di</strong> co<strong>di</strong>fica (CDMA,<br />

Code Division Multiple Access) e con ascolto della portante<br />

(CSMA/CA, Carrier Sense Multiple Access / collision avoidance).<br />

Dato l’elevato numero <strong>di</strong> no<strong>di</strong> che compongono una rete non è<br />

19


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

possibile de<strong>di</strong>care un sottocanale per ogni collegamento punto-<br />

punto, le risorse per la comunicazione devono essere quin<strong>di</strong><br />

riallocabili più volte all’interno della rete. Come vedremo, questo<br />

aspetto sarà un limite progettuale non <strong>di</strong> poco conto per la scelta <strong>di</strong><br />

algoritmi <strong>di</strong> comunicazione affidabili.<br />

� Utilizzare algoritmi adattativi per il supporto della mobilità. Alcune<br />

applicazioni richiedono <strong>di</strong> poter gestire in modo semplice no<strong>di</strong> che si<br />

muovono all’interno della rete; tale problematica può essere trattata<br />

nella ipo<strong>tesi</strong> semplificativa <strong>di</strong> no<strong>di</strong> a bassa mobilità, dato che le<br />

con<strong>di</strong>zioni d’impiego delle reti <strong>di</strong> sensori non richiedono <strong>di</strong><br />

effettuare rapi<strong>di</strong> spostamenti. Un nodo in movimento può aver<br />

bisogno della riallocazione <strong>di</strong>namica dei canali se questi sono già<br />

utilizzati dai no<strong>di</strong> a cui si avvicina; inoltre anche a questi ultimi, per<br />

lo stesso motivo, può essere necessario cambiare i canali riservati.<br />

Per poter effettuare queste riconfigurazioni della rete, i no<strong>di</strong> fissi<br />

nelle vicinanze del nodo mobile, devono essere sempre attivi, o<br />

comunque risvegliabili con un segnale <strong>di</strong> wake up, in modo da<br />

creare una zona limitrofa al nodo mobile che gli garantisca in ogni<br />

momento la connettività.<br />

� Ridurre l’overhead. Oltre alle informazioni legate all’applicazione,<br />

in ogni pacchetto i no<strong>di</strong> inseriscono dati necessari alla gestione della<br />

comunicazione, pur essendo in<strong>di</strong>spensabili questi bit aggiuntivi<br />

comportano un <strong>di</strong>spen<strong>di</strong>o <strong>di</strong> energia. Per ridurre i consumi e<br />

aumentare la durata dei no<strong>di</strong>, è necessario limitare il numero <strong>di</strong><br />

informazioni scambiate senza compromettere le funzionalità della<br />

rete; ad esempio si <strong>di</strong>minuisce il numero <strong>di</strong> pacchetti riservati<br />

esclusivamente alla gestione ra<strong>di</strong>o, i quali sono privi del campo dati<br />

(payload) e quin<strong>di</strong> determinano uno spreco <strong>di</strong> risorse.<br />

20


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

� Tenere spento il più a lungo possibile il chip ra<strong>di</strong>o. Dato che la ra<strong>di</strong>o<br />

è il componente col maggior consumo energetico, è evidente che<br />

appena non è più richiesto il suo utilizzo essa sia <strong>di</strong>sattivata.<br />

1.6.3 Livello <strong>di</strong> rete<br />

Compito del livello <strong>di</strong> rete è gestire l’in<strong>di</strong>rizzamento e l’instradamento dei<br />

messaggi.<br />

Tenendo presente che l’obiettivo <strong>di</strong> una WSN è in maggior parte <strong>di</strong><br />

monitorare e tenere sotto controllo un fenomeno fisico, attraverso<br />

rilevazioni perio<strong>di</strong>che effettuate dai sensori, se questi dati venissero<br />

instradati nella rete senza alcun accorgimento, si verificherebbe un traffico<br />

elevato, con informazioni ripetitive ed inutili, che provocherebbero<br />

congestioni e soprattutto una drastica riduzione del tempo <strong>di</strong> vita della rete.<br />

Al fine <strong>di</strong> evitare questo problema urge una attenta progettazione e scelta<br />

del particolare algoritmo <strong>di</strong> routing da utilizzare.<br />

Lo scambio d’informazioni fra no<strong>di</strong> remoti, ovvero non nel reciproco raggio<br />

<strong>di</strong> copertura, avviene attraverso il transito per altri no<strong>di</strong> interme<strong>di</strong> finchè il<br />

messaggio non giunge a destinazione; si parla in questo caso <strong>di</strong> percorso<br />

multihop. Questo meccanismo richiede in genere la conoscenza della<br />

posizione relativa tra i no<strong>di</strong> che può essere memorizzata in vari mo<strong>di</strong>,<br />

definendo tipologie <strong>di</strong> protocolli <strong>di</strong>fferenti:<br />

� Proattiva (Proactive). Durante la fase <strong>di</strong> inizializzazione della rete<br />

si memorizzano in tabelle dette Look Up Table (LUT) tutti i<br />

cammini a peso minimo fra ogni coppia <strong>di</strong> no<strong>di</strong>. La creazione <strong>di</strong><br />

queste tabelle è un’operazione che richiede molta energia poiché, per<br />

realizzarla tutti i no<strong>di</strong> della WSN devono essere attivi e scambiare<br />

messaggi tra loro, per questo le tabelle vengono successivamente<br />

aggiornate solo in caso <strong>di</strong> malfunzionamento <strong>di</strong> qualche nodo. Le<br />

21


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

<strong>di</strong>mensioni <strong>di</strong> queste tabelle crescono rapidamente all’aumentare del<br />

numero dei no<strong>di</strong> e la loro memorizzazione richiede quin<strong>di</strong> memorie<br />

<strong>di</strong> gran<strong>di</strong> <strong>di</strong>mensioni, che implicano un considerevole consumo <strong>di</strong><br />

energia. Questi protocolli cercano <strong>di</strong> mantenere lo stato delle proprie<br />

tabelle il più aggiornato possibile, anche in mancanza <strong>di</strong> un effettivo<br />

utilizzo della rete. Esempi <strong>di</strong> questa classe <strong>di</strong> protocolli <strong>di</strong> routing<br />

sono:<br />

• DSDV (Highly Dynamic Destination-Sequenced Distance<br />

Vector routing protocol);<br />

• HSLS (Hazy Sighted Link State routing protocol);<br />

• OLSR (Optimized Link State Routing Protocol);<br />

• STAR (Source Tree Adaptive routing protocol).<br />

� Reattiva (Reactive). Il cammino a costo minimo viene in<strong>di</strong>viduato<br />

solamente quando è realmente necessario, questo consente <strong>di</strong> non<br />

dover memorizzare gran<strong>di</strong> tabelle poiché il percorso ottimale viene<br />

selezionato <strong>di</strong>namicamente tramite l’invio <strong>di</strong> dati. La ricerca del<br />

cammino migliore impiega la ra<strong>di</strong>o per un tempo considerevole, il<br />

che influisce negativamente sui consumi <strong>di</strong> potenza ma permette <strong>di</strong><br />

non dover impiegare memorie <strong>di</strong> gran<strong>di</strong> <strong>di</strong>mensioni. Un esempio <strong>di</strong><br />

questa classe <strong>di</strong> protocolli <strong>di</strong> routing può essere trovato in [7] dove<br />

Karp et al. presentano il Greedy Perimeter Stateless Routing<br />

(GPSR), un nuovo protocollo <strong>di</strong> routing per reti wireless a<br />

datagrammi. In GPSR viene utilizzata la posizione del router e della<br />

destinazione dei pacchetti per decidere il percorso <strong>di</strong> inoltro. Le<br />

uniche informazioni utilizzate riguardano i router e i vicini nella<br />

topologia della rete.<br />

� Tecniche ibride. L’utilizzo combinato delle due tecniche precedenti,<br />

permette la determinazione del cammino minimo nel momento <strong>di</strong><br />

22


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

effettivo bisogno quando si devono trasmettere messaggi, ma è poi<br />

possibile memorizzare il percorso in LUT <strong>di</strong> <strong>di</strong>mensioni limitate per<br />

un riutilizzo futuro. In questo modo si <strong>di</strong>spone dei vantaggi <strong>di</strong><br />

entrambe le strategie, riducendo le per<strong>di</strong>te <strong>di</strong> prestazioni tipiche dei<br />

singoli meto<strong>di</strong> considerati separatamente. Esempi <strong>di</strong> tecniche ibride<br />

per il routing possono essere trovati in tutti gli algoritmi Ant [8]. Gli<br />

algoritmi Ant sono una classe <strong>di</strong> agenti basati su algoritmi <strong>di</strong> routing<br />

che modellano il comportamento delle formiche. Le formiche sono,<br />

infatti, capaci <strong>di</strong> trovare il percorso più breve tra il formicaio e un<br />

punto del terreno in cui vi sia del cibo. L'aspetto interessante e<br />

curioso è che sono in grado <strong>di</strong> farlo senza informazioni visive (le<br />

formiche <strong>di</strong> molte specie sono infatti cieche), ma utilizzando segnali<br />

"odorosi". Quando una formica ha trovato del cibo, ritorna al<br />

formicaio depositando sul terreno una certa quantità <strong>di</strong> una sostanza<br />

chimica detta feromone. La <strong>di</strong>rezione del cammino <strong>di</strong> una formica<br />

<strong>di</strong>pende dalla quantità <strong>di</strong> feromone che essa percepisce: dove la<br />

concentrazione è più forte, è più probabile che la formica si <strong>di</strong>riga.<br />

Nel tempo le tracce <strong>di</strong> feromone sul terreno evaporano ed,<br />

eventualmente, sono rinforzate dal passaggio <strong>di</strong> altre formiche. Ora<br />

entra in gioco un meccanismo molto importante chiamato<br />

retroazione positiva: più formiche scelgono un percorso, più forte<br />

sarà la concentrazione <strong>di</strong> feromone e quin<strong>di</strong> ancora più formiche<br />

saranno richiamate sullo stesso percorso. Perciò, dopo una prima<br />

fase <strong>di</strong> transitorio in cui le formiche scelgono <strong>di</strong>rezioni <strong>di</strong>verse, si<br />

arriva ad una situazione stazionaria in cui la maggior parte delle<br />

formiche segue uno stesso percorso. Siccome il feromone evapora<br />

nel tempo, il percorso più breve sarà quello scelto alla fine dal<br />

"sistema formiche".<br />

23


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Analogamente gli agenti viaggiano nella rete co<strong>di</strong>ficando la qualità<br />

del cammino visitato e lasciando questa informazione nell’ultimo<br />

nodo attraversato. In ogni nodo un agente sceglie la prossima<br />

destinazione in maniera probabilistica ma comunque polarizzata<br />

verso il migliore dei cammini già noti. Questa tecnica risulta essere<br />

molto veloce per l’esplorazione <strong>di</strong> buoni percorsi e inoltre in questo<br />

modo si riescono facilmente a trovare buoni cammini alternativi in<br />

caso del fallimento <strong>di</strong> uno dei no<strong>di</strong> sull’albero <strong>di</strong> routing, proprio<br />

perchè ad ogni nodo l’agente cerca sempre un cammino intorno alla<br />

precedente soluzione (buona).<br />

Per completezza riportiamo <strong>di</strong> seguito anche altri protocolli <strong>di</strong> routing non<br />

basati sul para<strong>di</strong>gma del multihop:<br />

� FLOODING: è una vecchia tecnica dove un nodo che riceve<br />

dati o pacchetti li ritrasmette in modo broadcast (a meno che<br />

il pacchetto non abbia raggiunto un numero massimo <strong>di</strong> hop<br />

o che il nodo stesso sia la destinazione del pacchetto). Il<br />

floo<strong>di</strong>ng [3] è una tecnica reattiva e che non richiede un<br />

mantenimento della topologia ma presenta alcuni problemi<br />

che vanno risolti in fase <strong>di</strong> implementazione:<br />

i. Implosion: situazione in cui i duplicati <strong>di</strong> un<br />

messaggio siano inviati allo stesso nodo;<br />

ii. Overlap: quando due no<strong>di</strong> con<strong>di</strong>vidono la stessa<br />

regione <strong>di</strong> osservazione entrambi potrebbero rilevare<br />

gli stessi stimoli e quin<strong>di</strong> i no<strong>di</strong> vicini ricevono<br />

messaggi duplicati;<br />

iii. Resource Blindness: questo protocollo non tiene<br />

conto della risorsa energia <strong>di</strong>sponibile;<br />

� GOSSIPPING: è una variante del floo<strong>di</strong>ng solo che i no<strong>di</strong><br />

non usano il broadcast ma inviano i pacchetti ad un solo nodo<br />

24


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

selezionato in modo random tra tutti i vicini [3]. Così si evita<br />

il problema <strong>di</strong> implosione ma si impiega molto più tempo per<br />

propagare un messaggio a tutti i no<strong>di</strong>.<br />

� ENERGY EFFICIENT ROUTE: il percorso che viene<br />

seguito è quello più efficiente dal punto <strong>di</strong> vista energetico<br />

� LEACH (Low Energy Adaptive Clustering Hierarchy): è un<br />

protocollo basato sul clustering [10] che minimizza la<br />

<strong>di</strong>ssipazione <strong>di</strong> energia in una rete <strong>di</strong> sensori. Lo scopo <strong>di</strong><br />

questo protocollo è quello <strong>di</strong> scegliere in maniera random<br />

alcuni no<strong>di</strong> ed eleggerli a capo-cluster. Gli altri no<strong>di</strong>, invece<br />

si associano ad un cluster in modo da minimizzare la<br />

<strong>di</strong>ssipazione <strong>di</strong> energia. In questo modo il capo cluster riceve<br />

ed aggrega i dati dei no<strong>di</strong> appartenenti al cluster prima <strong>di</strong><br />

inviare questi alla stazione base. Dopo un certo periodo <strong>di</strong><br />

tempo la rete entra nuovamente in fase <strong>di</strong> setup e inizia<br />

nuovamente la fase <strong>di</strong> selezione dei capo- cluster.<br />

1.7 I SISTEMI OPERATIVI E LE RETI DI SENSORI<br />

Le caratteristiche delle reti <strong>di</strong> sensori in relazione alla progettazione <strong>di</strong> un<br />

sistema operativo devono essere adeguatamente tenute in considerazione.<br />

Uno <strong>degli</strong> aspetti più evidenti delle reti <strong>di</strong> sensori sono le ridotte <strong>di</strong>mensioni<br />

della piattaforma hardware e la scarsa <strong>di</strong>sponibilità <strong>di</strong> energia. Questi fattori<br />

influiscono sulla capacità <strong>di</strong> elaborazione del sistema, sulla quantità <strong>di</strong><br />

informazioni che è possibile scambiare e sulla capacità <strong>di</strong> comunicare con<br />

l'esterno. Il software sviluppato per le reti <strong>di</strong> sensori dovrà essere perciò<br />

molto semplice, per evitare operazioni inutili, e poco ingombrante in termini<br />

<strong>di</strong> occupazione <strong>di</strong> memoria.<br />

25


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Le reti <strong>di</strong> sensori sono soggette a continue sollecitazioni. Si pensi ad<br />

esempio alla quantità <strong>di</strong> pacchetti che ogni nodo deve trattare, sia perchè ha<br />

la necessità <strong>di</strong> inviare le informazioni raccolte, sia perchè la rete comunica<br />

secondo un protocollo multi-hop. Inoltre l'ambiente esterno deve essere<br />

continuamente monitorato e la rete, per poter garantite i servizi essenziali,<br />

deve continuamente scambiarsi delle informazioni <strong>di</strong> “servizio" (si pensi al<br />

problema della mobilità o a quello della sincronizzazione temporale). In<br />

pratica il sistema deve gestire una quantità non trascurabile <strong>di</strong> eventi nel<br />

modo più veloce possibile, per evitare <strong>di</strong> perdere informazioni preziose,<br />

però il livello <strong>di</strong> parallelismo insito in questo tipo <strong>di</strong> sistemi è molto basso<br />

rispetto ai sistemi convenzionali. Questo è dovuto principalmente alle<br />

limitazioni fisiche dei no<strong>di</strong> (bassa capacità <strong>di</strong> elaborazione, poca memoria,<br />

etc.) quin<strong>di</strong> si preferisce sfruttare le poche risorse per effettuare le<br />

operazioni essenziali. Come abbiamo già visto, le reti <strong>di</strong> sensori possono<br />

essere utilizzate in numerose applicazioni, <strong>di</strong>fferenti tra loro. Queste<br />

richiedono in molti casi dell'hardware de<strong>di</strong>cato e quin<strong>di</strong> sono necessarie<br />

delle reimplementazioni dello stesso software per adeguarlo ai <strong>di</strong>versi<br />

<strong>di</strong>spositivi. Tuttavia, se il software viene sviluppato seguendo il criterio <strong>di</strong><br />

modularità, non sono necessarie complete reimplementazioni <strong>di</strong><br />

un'applicazione ma dovrebbe essere sufficiente sostituire alcuni moduli per<br />

ottenere il medesimo risultato. Lo stesso problema sorge quando ad esempio<br />

si vuole sostituire un protocollo all'interno <strong>di</strong> un applicazione. In generale<br />

quin<strong>di</strong>, si dovrebbe progettare un sistema operativo in grado <strong>di</strong> adattarsi<br />

facilmente a tutti i cambiamenti tecnologici, sia hardware che software. I<br />

no<strong>di</strong> in alcune applicazioni si trovano a lavorare in ambienti critici che ne<br />

potrebbero alterare il funzionamento. Questi possono guastarsi o rimanere<br />

bloccati quin<strong>di</strong> è necessario sviluppare applicazioni tolleranti ai guasti.<br />

Anche il sistema operativo deve fare la sua parte, cioè deve supportare<br />

26


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

eventuali guasti dei <strong>di</strong>spositivi e favorire lo sviluppo <strong>di</strong> applicazioni<br />

affidabili e <strong>di</strong>stribuite, in conclusione deve garantire operazioni robuste.<br />

Per completezza ricor<strong>di</strong>amo che in letteratura si <strong>di</strong>stinguono principalmente<br />

due approcci allo sviluppo <strong>di</strong> sistemi operativi per reti <strong>di</strong> sensori senza cavo:<br />

o Sviluppare un sistema i cui componenti vengono compilati assieme<br />

all'applicazione (esempio TinyOs).<br />

o Sviluppare un sistema che includa i tra<strong>di</strong>zionali strati software dei<br />

sistemi general purpose in versione ridotta (esempio MANTIS [23])<br />

Riguardo il primo approccio, questo, <strong>di</strong> fatto, consente che una sola<br />

applicazione sia in esecuzione in un dato momento; tuttavia tale sistema<br />

permette <strong>di</strong> avere bassissimi consumi. Lo svantaggio però derivante da tale<br />

approccio è la limitata versalità e i seri vincoli <strong>di</strong> riconfigurabilità<br />

dell'applicazione.<br />

Riguardo invece il secondo approccio, risulta in questo caso <strong>di</strong>fficile tenere i<br />

consumi e le risorse impiegate sotto controllo, ma si guadagna in versatilità,<br />

potendo eseguire più applicazioni contemporaneamente.<br />

1.7.1 Introduzione a TinyOS<br />

TinyOS è un sistema operativo open-source, sviluppato dalla University of<br />

California at Berkeley. Data la possibilità <strong>di</strong> mo<strong>di</strong>ficare il co<strong>di</strong>ce, questo<br />

sistema operativo è <strong>di</strong>ventato la piattaforma <strong>di</strong> sviluppo per ogni soluzione<br />

proposta nel campo delle reti <strong>di</strong> sensori. In effetti grossi contributi sono<br />

stati forniti dalla comunità <strong>di</strong> sviluppatori, lo testimonia la lunga lista <strong>di</strong><br />

progetti attivi relativi a tutti campi della ricerca, da protocolli per<br />

l'instradamento dei pacchetti alla localizzazione, dalla realizzazione <strong>di</strong> un<br />

interfaccia grafica per lo sviluppo delle applicazioni all'estensione del<br />

27


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

compilatore ncc per il supporto <strong>di</strong> nuove piattaforme hardware (come la<br />

piattaforma 8051) 1 .<br />

TinyOS è stato progettato principalmente per le reti <strong>di</strong> sensori ed adotta<br />

soluzioni molto semplici ed efficienti, al fine <strong>di</strong> ridurre al massimo i<br />

consumi <strong>di</strong> energia. Infatti TinyOS non possiede un nucleo ma permette<br />

l'accesso <strong>di</strong>retto all'hardware, inoltre sparisce il concetto <strong>di</strong> processore<br />

virtuale per evitare i cambi <strong>di</strong> contesto, e quello <strong>di</strong> memoria virtuale: la<br />

memoria viene infatti considerata come un unico e lineare spazio fisico, che<br />

viene assegnato alle applicazioni a tempo <strong>di</strong> compilazione. In pratica viene<br />

eliminato qualsiasi tipo <strong>di</strong> overhead, poiché nelle reti <strong>di</strong> sensori questo<br />

causa un’inutile <strong>di</strong>spersione <strong>di</strong> energia senza portare tangibili vantaggi.<br />

Queste scelte impattano <strong>di</strong>rettamente sull'architettura che risulta molto<br />

compatta e ben si sposa con le <strong>di</strong>mensioni ridotte della memoria che è<br />

dell’or<strong>di</strong>ne <strong>di</strong> pochi KB.<br />

Lo scopo <strong>di</strong>chiarato dei progettisti <strong>di</strong> TinyOS era infatti quello <strong>di</strong>:<br />

1. ridurre i consumi <strong>di</strong> energia;<br />

2. ridurre il carico computazionale e le <strong>di</strong>mensioni del sistema<br />

operativo;<br />

3. supportare intensive richieste <strong>di</strong> operazioni che devono essere svolte<br />

concorrentemente e in maniera tale da raggiungere un alto livello<br />

robustezza ed un efficiente modularità.<br />

Per sod<strong>di</strong>sfare il requisito della modularità, TinyOS favorisce lo sviluppo <strong>di</strong><br />

una serie <strong>di</strong> piccoli componenti, ognuno con un ben precisa funzione, che<br />

realizza un qualche aspetto dell'hardware del sistema o <strong>di</strong> un'applicazione.<br />

Ogni componente poi, definisce un interfaccia che garantisce la riusabilità<br />

del componente ed eventualmente la sua sostituzione.<br />

1 http://tinyos.cvs.sourceforge.net/tinyos/<br />

28


Figura 1.3 : Modello a strati <strong>di</strong> TinyOS<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Guardando il modello a strati del sistema operativo (figura 1.3), possiamo<br />

intuire come sia facilitato lo sviluppo <strong>di</strong> applicazioni me<strong>di</strong>ante il riutilizzo<br />

dei componenti esistenti.<br />

TinyOS è stato implementato seguendo il modello ad eventi. Nei<br />

tra<strong>di</strong>zionali modelli infatti, è necessario allocare un certa quantità <strong>di</strong><br />

memoria sullo stack per ogni attività in esecuzione e inoltre, il sistema è<br />

soggetto a frequenti commutazioni <strong>di</strong> contesto per servire ogni tipo <strong>di</strong><br />

richiesta, come l'invio <strong>di</strong> pacchetti, la lettura <strong>di</strong> un dato su un sensore, etc.<br />

Poiché i no<strong>di</strong> non <strong>di</strong>spongono <strong>di</strong> grosse quantità <strong>di</strong> memoria il modello ad<br />

eventi ben si ad<strong>di</strong>ce ad un sistema continuamente sollecitato, in quanto<br />

utilizza il microprocessore nella maniera più efficiente possibile. Non sono<br />

permesse con<strong>di</strong>zioni <strong>di</strong> stallo né attese attive che sprecherebbero energia<br />

inutilmente. Quando invece non ci sono attività da eseguire il sistema mette<br />

a riposo il microprocessore che viene risvegliato all'arrivo <strong>di</strong> un evento.<br />

1.7.1.1 Caratteristiche tipiche<br />

Le caratteristiche tipiche del TinyOs si possono riassumere nei seguenti<br />

punti:<br />

• Architettura basata su componenti<br />

29


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Una applicazione è composta da uno o più componenti che possono<br />

<strong>di</strong>alogare tra loro facendo uso <strong>di</strong> due set <strong>di</strong> funzioni: i coman<strong>di</strong> e gli<br />

eventi. TinyOs mette a <strong>di</strong>sposizione del programmatore un set <strong>di</strong><br />

componenti standard. Un'applicazione può connettere tali<br />

componenti utilizzando delle specifiche <strong>di</strong> legame che sono<br />

in<strong>di</strong>pendenti dall'effettiva implementazione. Ogni componente<br />

inoltre contiene un'area dati chiamata frame, la quale viene allocata<br />

staticamente (figura 1.4).<br />

• Operazioni in <strong>di</strong>verse fasi<br />

La richiesta <strong>di</strong> una data operazione e il suo completamento sono due<br />

funzioni <strong>di</strong>stinte. I coman<strong>di</strong> tipicamente richiedono l'esecuzione <strong>di</strong><br />

un'operazione: quando questa termina, viene generato un evento che<br />

segnala all'applicazione il termine dell'operazione richiesta. Un<br />

esempio tipico è l'invio <strong>di</strong> un pacchetto: l'applicazione invoca il<br />

comando send per iniziare la trasmissione e il componente <strong>di</strong><br />

comunicazione segnala l'evento sendDone quando l'operazione è<br />

terminata. Esistono anche coman<strong>di</strong> al cui termine non è richiamato<br />

alcun evento (ad esempio l'accensione <strong>di</strong> un LED).<br />

• Concorrenza:<br />

Il TinyOs può eseguire un solo programma alla volta, tipicamente<br />

formato da più componenti. Ci sono due tipi <strong>di</strong> thread: task ed<br />

eventi hardware. I primi sono funzioni la cui esecuzione può essere<br />

ritardata: essi vengono eseguiti in or<strong>di</strong>ne secondo una coda FIFO.<br />

Gli eventi hardware hanno priorità massima e bloccano qualsiasi<br />

esecuzione in corso. Possono dunque nascere situazioni <strong>di</strong> data race<br />

(ad esempio l’aggiornamento <strong>di</strong> una variabile)<br />

• Active Messages<br />

Active messages è la tecnologia <strong>di</strong> rete utilizzata da TinyOs. Questo<br />

sistema permette <strong>di</strong> inviare messaggi a tutti o a un singolo nodo tra i<br />

30


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 1.4: Rappresentazione <strong>di</strong> un componente TinyOS<br />

vicini (eventuali protocolli <strong>di</strong> routing vengono implementati ad un<br />

livello superiore, quin<strong>di</strong> Active messages contiene solo un<br />

meccanismo <strong>di</strong> in<strong>di</strong>rizzamento verso i no<strong>di</strong> vicini). Ogni pacchetto<br />

spe<strong>di</strong>to contiene l'identificazione <strong>di</strong> un handler da richiamare sulla<br />

macchina <strong>di</strong> destinazione e il payload dei dati. Il principale<br />

svantaggio dell'approccio è che tutti i no<strong>di</strong> comunicanti devono<br />

avere lo stesso software o come minimo implementare un<br />

componente che definisca lo stesso handler.<br />

1.7.2 Introduzione a NesC<br />

NesC è il linguaggio <strong>di</strong> programmazione usato in ambiente TinyOs. La sua<br />

sintassi è molto simile al classico C con alcune <strong>di</strong>fferenze: supporta il<br />

modello <strong>di</strong> concorrenza del TinyOs e permette <strong>di</strong> collegare, strutturare<br />

componenti software. NesC permette ai programmatori <strong>di</strong> sviluppare<br />

componenti che possano essere facilmente assemblati tra loro.<br />

Le caratteristiche basilari del NesC possono essere così riassunte:<br />

1. nesC è una estensione del C: C produce co<strong>di</strong>ce efficiente per tutti i<br />

processori che vengono <strong>di</strong> solito usati nelle reti <strong>di</strong> sensori; fornisce<br />

31


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

tutte le caratteristiche necessarie per comunicare con l'hardware e<br />

l'interazione con co<strong>di</strong>ce già esistente è semplificata. Inoltre è un<br />

linguaggio molto conosciuto. D'altra parte però, C non aiuta molto a<br />

scrivere co<strong>di</strong>ce strutturato privo <strong>di</strong> errori. Il nesC garantisce più<br />

modularità grazie ad una sintassi molto ridotta e dà la possibilità <strong>di</strong><br />

strutturare i componenti collegandoli tra loro.<br />

2. Analisi <strong>di</strong> tutto il programma: I programmi nesC, in fase <strong>di</strong><br />

compilazione, vengono analizzati nella loro interezza per ottenere<br />

una sicurezza maggiore e per rendere possibile l'ottimizzazione. Di<br />

conseguenza, non esiste la possibilità <strong>di</strong> compiere compilazioni<br />

separate. D'altra parte i programmi scritti in nesC sono molto<br />

leggeri e <strong>di</strong> conseguenza la compilazione risulta comunque veloce.<br />

3. nesC è un linguaggio “statico”: Non esiste la possibilità <strong>di</strong> allocare<br />

memoria <strong>di</strong>namicamente. Questa restrizione rende più facile e<br />

accurata l'analisi del programma in fase <strong>di</strong> debug.<br />

4. nesC riflette la struttura del TinyOs: nesC è basato sul concetto<br />

<strong>di</strong> componente e supporta appieno il modello <strong>di</strong> concorrenza del<br />

TinyOs. Inoltre il TinyOs è stato completamente programmato in<br />

nesC. Nel momento in cui un'applicazione viene compilata, i<br />

componenti <strong>di</strong> TinyOs vengono compilati insieme ad essa e il<br />

risultato costituisce l'intero software del sensore. Questo approccio<br />

porta ad un ingente risparmio energetico; tuttavia la versatilità viene<br />

notevolmente limitata, non è possibile installare più applicazioni<br />

in<strong>di</strong>pendenti nello stesso sensore.<br />

32


1.8 LE PIATTAFORME HARDWARE<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Come già accennato nel paragrafo 1.4 le piattaforme hardware sono <strong>di</strong>verse,<br />

in questo paragrafo ci concentreremo in particolare su Mica2 e Mica2dot<br />

entrambe sviluppate dai ricercatori della University of California in Berkley.<br />

I no<strong>di</strong> sensore Mica2 sono equipaggiati con 512 KB <strong>di</strong> memoria flash per<br />

memorizzare in modo permanente i dati raccolti e <strong>di</strong>spongono <strong>di</strong> un<br />

connettore a 51-pin per l'aggiunta <strong>di</strong> un espansione (attuatori, <strong>di</strong>spositivi<br />

sensori, etc). Possiedono un clock esterno a 32 kHz che il sistema<br />

operativo, in questo caso TinyOS, utilizza per sincronizzarsi con i vicini a<br />

meno <strong>di</strong> +/- 1 ms e per assicurarsi che questi siano attivi ed in grado <strong>di</strong><br />

ascoltare le trasmissioni.<br />

I no<strong>di</strong> Mica2 possiedono tre led, uno rosso uno giallo e uno verde, che<br />

possono essere comandati via programma e utilizzati per visualizzare una<br />

qualche informazione <strong>di</strong> stato. Infine entrambe le piattaforme forniscono un<br />

collegamento seriale (sullo stesso connettore a 51-pin) per i trasferimenti <strong>di</strong><br />

dati e l'installazione delle applicazioni su ciascun nodo.<br />

Figura 1.5: Mica2<br />

33


Figura 1.6: Mica2DOT<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Il processore montato sulla piattaforma Mica è un Atmel ATMega128 AVR.<br />

AVR è un architettura Harvard a 8-bit con una memoria separata per le<br />

istruzioni e per i dati. I microcontrollori AVR supportano lo stato active e<br />

quello sleep.<br />

Per quanto riguarda il sistema <strong>di</strong> comunicazione ra<strong>di</strong>o utilizzato questo è un<br />

Chipcom CC1000 progettato per applicazioni che richiedono un basso<br />

consumo <strong>di</strong> energia ed è in grado <strong>di</strong> comunicare da pochi metri fino a<br />

centinaia <strong>di</strong> metri. Utilizza la co<strong>di</strong>fica Manchester e la modulazione FSK,<br />

supporta bande <strong>di</strong> frequenza a 315, 433, 868 e 915Mhz. Il sistema ra<strong>di</strong>o<br />

può lavorare in quattro <strong>di</strong>stinte modalità: transmit, receive, idle e sleep.<br />

Questo significa che mentre trasmette non è in grado <strong>di</strong> ascoltare eventuali<br />

trasmissioni da parte <strong>di</strong> altri no<strong>di</strong>, quin<strong>di</strong> le collisioni, se avvengono , non<br />

sono riconosciute. In effetti il protocollo MAC utilizzato è del tipo<br />

CSMA/CA.<br />

Nella tabella 1-2 si riportano alcune caratteristiche della piattaforma Mica2.<br />

Un’analisi esaustiva delle prestazioni <strong>di</strong> questi sensori viene riportata in [24]<br />

e comprende la tabella 1-3 riassuntiva delle prestazioni dei Mote mica2 e<br />

mica2dot.<br />

34


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Component Rate Strtup Time Current consumption<br />

CPU Active 4 MHz N/A 4.6 mA<br />

CPU Idle 4 MHz 1 us 2.4 mA<br />

CPU Suspend 32 kHz 4 ms 10 uA<br />

Ra<strong>di</strong>o Transmit 40 kHz 30 ms 12 mA<br />

Ra<strong>di</strong>o Receive 40 MHz 30 ms 3.6 mA<br />

Photo 2 kHz 10 ms 1.235 mA<br />

I2C Temp 2 Hz 500 ms 0.150 mA<br />

Pressare 10 Hz 500 ms 0.010 mA<br />

Press Temp 10 Hz 500 ms 0.010 mA<br />

Humi<strong>di</strong>ty 500 Hz 500 ms 0.775 mA<br />

Thermopile 2000 Hz 200 ms 0.170 mA<br />

Thermistor 2000 Hz 10 ms 0.126 mA<br />

Tabella 1-5: Alcune caratteristiche della piattaforma Mica2<br />

Mica 2 Mica2dot<br />

AVAILABLE THROUGHPUT 4.6 Kbps 4.6 Kbps<br />

POWER CONSUMPTION<br />

Reception 16 mA 12 mA<br />

Transmission 18 mA 14 mA<br />

Computation (processor only) 8 mA 8 mA<br />

Power down mode 10 uA 10 uA<br />

TRASMISSION RANGE<br />

With mormal weather con<strong>di</strong>tion 55 m 135 m<br />

With fog, rain 10 m<br />

With maximun tx power (normal weather con<strong>di</strong>tion) 70 m 230 m<br />

Minimum ground <strong>di</strong>stance 1 m 1 m<br />

Minimum horizontal <strong>di</strong>stance 50 cm 50 cm<br />

CARRIER SENSING RANGE 275 m<br />

Tabella 1-6: Tabella comparativa delle prestazioni <strong>di</strong> mica2 e mica 2 dot<br />

35


1.8.1 Sensori per Mica2<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

La modularità che sta alla base del progetto <strong>di</strong> questa piattaforma ha<br />

permesso la realizzazione <strong>di</strong> numerose schede <strong>di</strong> sensori <strong>di</strong> vario tipo. La<br />

scheda <strong>di</strong> riferimento per i no<strong>di</strong> tipo Mica2 è la Mica Sensorboard<br />

(MTS300CA), una scheda molto flessibile dalle varie modalità <strong>di</strong> utilizzo.<br />

Questa scheda infatti può essere impiegata per applicazioni che includono il<br />

rilevamento della presenza <strong>di</strong> veicoli, l'analisi <strong>di</strong> movimenti sismici, il<br />

riconoscimento <strong>di</strong> oggetti in movimento, la localizzazione ed altre<br />

applicazioni. Il resto del paragrafo analizza i dettagli <strong>di</strong> tale scheda.<br />

Microfono<br />

Il microfono può avere due principali usi:<br />

• localizzazione acustica<br />

• registrazione e misurazione dei suoni<br />

La localizzazione acustica è una possibilità offerta da questa scheda che può<br />

risultare molto utile. Il funzionamento è il seguente: un nodo invia un<br />

pacchetto via ra<strong>di</strong>o e contemporaneamente emette un suono tramite un<br />

segnalatore (<strong>di</strong>sponibile sulla scheda), un nodo vicino, all'arrivo del<br />

pacchetto, azzera un contatore che poi incrementa con una certa frequenza.<br />

Il contatore viene incrementato fino a quando lo stesso nodo non avverte il<br />

segnale acustico. A questo punto, moltiplicando il valore del contatore per la<br />

frequenza <strong>di</strong> incremento, si ottiene all'incirca l'intervallo <strong>di</strong> tempo occorso al<br />

segnale acustico per raggiungere il destinatario. Conoscendo quin<strong>di</strong> il<br />

valore della velocità del suono si ottiene in modo approssimato la <strong>di</strong>stanza<br />

tra due no<strong>di</strong>.<br />

Segnalatore<br />

Questo <strong>di</strong>spositivo è in grado <strong>di</strong> emettere un unico suono alla frequenza <strong>di</strong> 4<br />

kHz e viene utilizzato principalmente nella localizzazione dei no<strong>di</strong>.<br />

Luce e temperatura<br />

36


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Questa scheda <strong>di</strong>spone <strong>di</strong> sensori in grado <strong>di</strong> misurare la quantità <strong>di</strong> luce<br />

nell'ambiente e la temperatura. I sensore della luce è semplicemente una<br />

fotocellula CdSe. La massima sensibilità <strong>di</strong> questa fotocellula permette <strong>di</strong><br />

rilevare raggi <strong>di</strong> luce fino ad una lunghezza d'onda pari a 690 nm. Il<br />

termistore invece è un Panasonic ERT-J1VR103J ed è in grado <strong>di</strong> rilevare<br />

temperature che vanno da -40 a 70 °C.<br />

Accelerometro a 2-Assi<br />

L'accelerometro è un <strong>di</strong>spositivo MEMS a 2-assi ed è in grado <strong>di</strong> rilevare<br />

accelerazioni fino a ±2 g. E’ utilizzabile per rilevare movimenti, vibrazioni<br />

e/o misurazioni sismiche.<br />

Magnetometro a 2-Assi<br />

I sensore è un Honeywell HNC1002. Il magnetometro può misurare il<br />

campo magnetico terrestre ed altri piccoli campi. Un applicazione in cui può<br />

essere impiegato è il rilevamento della presenza <strong>di</strong> veicoli.<br />

TIPO DESCRIZIONE<br />

MTS101 Monta un termistore <strong>di</strong> precisione e sensori <strong>di</strong> luminosità, ed è utilizzabile<br />

in varie aree<br />

MTS300/ MTS310 Supporta una grande varietà <strong>di</strong> sensori per MICA e MICA2<br />

MDA500 Fornisce una interfaccia flessibile per collegamenti con no<strong>di</strong> <strong>di</strong> tipo<br />

MICA2DOT<br />

MTS400/420 È in grado <strong>di</strong> effettuare il monitoraggio ambientale ed eventualmente può<br />

essere montato un GPS (MICA2)<br />

MDA300 È in grado <strong>di</strong> acquisire dati e monitorare l’ambiente (MICA2)<br />

MTS510 Supporta sensori <strong>di</strong> luce, accelerazione ed un microfono (MICA2DOT)<br />

MEP401 Moduli per luce, umi<strong>di</strong>tà e pressione barometrica e temperatura (MICA2)<br />

MEP500 Modulo per temperatura e umi<strong>di</strong>tà (MICA2DOT)<br />

Tabella 1-7: Schede <strong>di</strong>sponibili per piattaforma MICA<br />

37


1.9 APPLICAZIONI<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Le applicazioni delle reti <strong>di</strong> sensori sono svariate e con<strong>di</strong>zionano i no<strong>di</strong><br />

stessi che possono essere dotati <strong>di</strong> sensori completamente <strong>di</strong>versi. E’<br />

possibile, come accennato prima, misurare una vastissima gamma <strong>di</strong><br />

grandezze fisiche come l’umi<strong>di</strong>tà, la pressione, la temperatura, il suono,<br />

l’intensità luminosa, le <strong>di</strong>mensioni <strong>di</strong> un oggetto, la presenza <strong>di</strong> oggetti in<br />

movimento e anche la loro accelerazione.<br />

I sensori, grazie alle ridotte <strong>di</strong>mensioni, si adattano bene a strutture ostili e<br />

inaccessibili. Inoltre grazie al loro elevato numero, risulta particolarmente<br />

facile monitorare grandezze in aree relativamente ampie.<br />

Le reti <strong>di</strong> sensori ai giorni nostri sono utilizzati in svariati campi come per<br />

esempio l’ambiente, la me<strong>di</strong>cina, per uso domestico (domotica) e per<br />

applicazioni militari e commerciali.<br />

o Ambiente<br />

Alcune applicazioni riguardano l'osservazione <strong>degli</strong> spostamenti <strong>di</strong><br />

animali, uccelli, specie marine, insetti; il monitoraggio delle con<strong>di</strong>zioni<br />

ambientali a cui sono sottoposte le colture e gli allevamenti <strong>di</strong> bestiame;<br />

il riconoscimento <strong>degli</strong> incen<strong>di</strong> boschivi; la ricerca metereologica e<br />

geofisica; il riconoscimento delle inondazioni; la mappatura della<br />

biocomplessità <strong>di</strong> un ambiente; lo stu<strong>di</strong>o dell'inquinamento. Alcune<br />

implementazioni <strong>di</strong> questi esempi li troviamo nel sistema per il<br />

riconoscimento delle inondazioni denominato ALERT [14], utilizzato<br />

negli Stati Uniti; nella mappatura della biocomplessità, con il sistema<br />

installato nella James Reserve in Southern California [15];<br />

nell'osservazione <strong>degli</strong> spostamenti <strong>degli</strong> uccelli migratori, con il<br />

progetto denominato Great Duck Island Habitat Monitoring [16],[17] del<br />

quale viene riportata l’architettura generale in figura 1.7 (fonte:<br />

http://www.greatduckisland.net/ ).<br />

38


o Applicazioni militari<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 1.7: Architettura del progetto Great Duck Island<br />

Le reti <strong>di</strong> sensori possono essere parte integrante dei sistemi militari <strong>di</strong><br />

comando, controllo, comunicazione, elaborazione, intelligence,<br />

sorveglianza, riconoscimento ed in<strong>di</strong>viduazione. La rapi<strong>di</strong>tà <strong>di</strong><br />

collocazione, l'auto-organizzazione e la tolleranza ai guasti sono<br />

caratteristiche che rendono queste reti particolarmente adatte<br />

all'impiego in campo militare. Dal momento che i no<strong>di</strong> possono<br />

popolare densamente una qualsiasi area ed hanno un costo ridotto, la<br />

<strong>di</strong>struzione <strong>di</strong> alcuni no<strong>di</strong> in seguito ad un azione ostile non ne inibisce<br />

il funzionamento globale. Alcune applicazioni sono il monitoraggio<br />

delle forze alleate; il riconoscimento del nemico; l'in<strong>di</strong>viduazione <strong>degli</strong><br />

obbiettivi; la sorveglianza <strong>di</strong> intere aree; il riconoscimento e<br />

l'in<strong>di</strong>viduazione <strong>di</strong> attacchi nucleari, biologici e chimici.<br />

39


o Sanità<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Alcune applicazioni nella sanità sono: la realizzazione <strong>di</strong> interfacce per i<br />

<strong>di</strong>sabili; il monitoraggio integrato dei pazienti; la somministrazione <strong>di</strong><br />

farmaci negli ospedali; il telemonitoraggio dei dati fisiologici <strong>di</strong> un<br />

in<strong>di</strong>viduo; il tracciamento e il monitoraggio dei pazienti e del personale<br />

me<strong>di</strong>co negli ospedali. Un esempio <strong>di</strong> telemonitoraggio dei dati<br />

fisiologici <strong>di</strong> un paziente è dato dal sistema Health Smart Home,<br />

realizzato dalla Facoltà <strong>di</strong> me<strong>di</strong>cina <strong>di</strong> Grenoble - Francia [18].<br />

o Uso domestico<br />

Un ambiente in grado <strong>di</strong> riconoscere l’utente presente al suo interno può<br />

pre<strong>di</strong>sporre tutta una serie <strong>di</strong> servizi personalizzati <strong>di</strong>fferenti a seconda<br />

<strong>di</strong> chi è l’ospite, inoltre i no<strong>di</strong> sensore possono essere inseriti negli<br />

apparecchi elettrici, come forni a microonde, frigoriferi, VCR [19].<br />

Questi possono interagire tra loro e con una rete esterna, via internet o<br />

via satellite e permettono all'utente <strong>di</strong> comandare facilmente gli<br />

elettrodomestici a <strong>di</strong>stanza. Più in generale, le reti <strong>di</strong> sensori possono<br />

essere utilizzate per realizzare ambienti intelligenti non solo in casa ma<br />

anche negli uffici. Un esempio è il Residential Laboratory della Georgia<br />

Institute of Tecnology [20]. Gli obbiettivi <strong>di</strong> questo laboratorio sono<br />

l'affidabilità, la persistenza e la trasparenza dell'automazione.<br />

o Applicazioni commerciali<br />

Altre possibili applicazioni sono: la realizzazione <strong>di</strong> tastiere virtuali;<br />

l'analisi del comportamento dei materiali sottoposti a stress meccanico,<br />

la qualità <strong>di</strong> un prodotto; guida e controllo dei robot nelle industrie<br />

automatizzate.<br />

Ma anche il monitoraggio dell’aria all’interno <strong>degli</strong> uffici può essere<br />

eseguito per esempio con una rete <strong>di</strong> sensori. Il flusso <strong>di</strong> aria<br />

40


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

con<strong>di</strong>zionata è controllato in maniera centralizzata; l’uso dei sensori può<br />

portare ad una riduzione del consumo <strong>di</strong> energia.<br />

Altre applicazioni infine in ambito commerciale sono:<br />

• guida e controllo <strong>di</strong> robot nei processi industriali;<br />

• rilevazione <strong>di</strong> furti d’auto entro una determinata area geografica non<br />

troppo estesa;<br />

• la verifica delle categorie e della qualità <strong>di</strong> vari articoli presenti in<br />

un grande magazzino;<br />

• controllo del traffico tramite reti <strong>di</strong> sensori.<br />

41


Capitolo 2<br />

Affidabilità nelle reti <strong>di</strong> sensori senza cavo<br />

2.1 IL CONCETTO DI AFFIDABILITA’<br />

L’esigenza <strong>di</strong> ottenere particolari requisiti <strong>di</strong> affidabilità dai sistemi risulta<br />

essere sempre più un argomento <strong>di</strong> primaria importanza e ha portato a<br />

continue rivisitazioni del concetto <strong>di</strong> dependability. Nel 1982 Laprie<br />

definiva la dependability <strong>di</strong> un sistema come: “...the ability of a system to<br />

accomplish the tasks (or,equivalently, to provide the service) which are<br />

expected to it” , mentre nel 2001 sempre Laprie la ridefinì come<br />

“...the ability to deliver service that can justifiably be trusted ” per poi<br />

infine definire nel 2004 la dependability <strong>di</strong> un sistema come: “...ability to<br />

avoid service failures that are more frequent and more severe than<br />

acceptable” ovvero l'abilità <strong>di</strong> un sistema <strong>di</strong> fornire un servizio che può<br />

essere considerato "fidato" in maniera giustificata.<br />

In realtà il termine va inteso come un insieme <strong>di</strong> attributi <strong>di</strong> qualità<br />

(dependability attributes) che assumono singolarmente un’enfasi relativa<br />

alla natura del sistema cui si riferiscono e al particolare contesto applicativo:<br />

42


� Availability<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

L’availability è sinteticamente definita come la probabilità che un<br />

sistema sia pronto a fornire il servizio in un certo istante t, ovvero:<br />

A=P(!Failure at t)<br />

Più esplicitamente un sistema è available in un dato istante t se è in<br />

grado <strong>di</strong> fornire un servizio corretto.<br />

� Reliability<br />

La reliability R(t) è la misura della continuità <strong>di</strong> un servizio ovvero la<br />

misura dell’intervallo <strong>di</strong> tempo in cui viene fornito un servizio corretto:<br />

� Safety<br />

R(t)=P(!Failure in (0,t))<br />

Per safety si intende generalmente l’assenza <strong>di</strong> con<strong>di</strong>zioni <strong>di</strong><br />

funzionamento che possano portare il sistema a danneggiare gli utenti<br />

e/o l’ambiente in cui opera. Dal punto <strong>di</strong> vista matematico la safety S(t)<br />

è la probabilità che non vi siano guasti catastrofici in [0,t].<br />

S(t)= P (!CatastrophicFailures in [0,t])<br />

È chiaro che il concetto <strong>di</strong> safety risulta relativo alla soggettiva<br />

valutazione dei rischi e dell’entità dei danni provocati dal sistema.<br />

� Performability<br />

La performability è una metrica introdotta per valutare le prestazioni del<br />

sistema in caso <strong>di</strong> guasto.<br />

� Mantainability<br />

La mantainability M(t) è definita come la capacità <strong>di</strong> un sistema <strong>di</strong><br />

essere sottoposto a mo<strong>di</strong>fiche e riparazioni, ovvero <strong>di</strong> poter essere<br />

facilmente ripristinato in seguito al verificarsi <strong>di</strong> un guasto.<br />

43


� Security<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

La security è definita come l’assenza <strong>di</strong> manipolazioni improprie e<br />

accessi non autorizzati al sistema. Più in dettaglio un sistema sicuro è un<br />

sistema in cui coesistono gli attributi <strong>di</strong> availability (riadattata alla<br />

<strong>di</strong>sponibilità del sistema solo verso utenti autorizzati), confidentiality<br />

(prevenzione della <strong>di</strong>ffusione non autorizzata delle informazioni) e<br />

integrità (prevenzione <strong>di</strong> alterazioni improprie dello stato del sistema.<br />

2.2 AFFIDABILITA’ IN RETI DI SENSORI SENZA CAVO<br />

Nell’ambito specifico delle reti <strong>di</strong> sensori senza cavo il concetto <strong>di</strong><br />

affidabilità si formalizza come la capacità che deve avere una rete <strong>di</strong><br />

conservare le proprie funzionalità in<strong>di</strong>pendentemente dall’eventuale guasto<br />

<strong>di</strong> qualche sensore o semplicemente da una trasmissione fallita.<br />

Un nodo, ad esempio, può <strong>di</strong>ventare inutilizzabile a causa dell’esaurimento<br />

della batteria o per danni fisici subiti nell’ambiente operativo.<br />

L’affidabilità riveste un ruolo sempre più importante nella progettazione<br />

delle Wireless Sensor Network visto che queste sono sempre più utilizzate in<br />

applicazioni mission critical come: rilevazione <strong>di</strong> intrusioni, applicazioni<br />

militari, etc. Il suo stu<strong>di</strong>o è reso, però, complicato da più fattori, già<br />

analizzati nei paragrafi precedenti come:<br />

• la limitatezza delle risorse sia energetiche che <strong>di</strong> memorizzazione e<br />

<strong>di</strong> computazione dei no<strong>di</strong>;<br />

• limitata robustezza fisica dei sensori che assume un ruolo non <strong>di</strong><br />

poco rilievo visto che le WSN vengono spesso utilizzate in ambienti<br />

esterni avversi e persino estremi;<br />

• la casualità della topologia della rete.<br />

44


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Relativamente alla fase <strong>di</strong> progettazione <strong>di</strong> una Wireless Sensor Network gli<br />

aspetti su cui incide l’affidabilità e che quin<strong>di</strong> devono essere debitamente<br />

presi in considerazione sono:<br />

1. Coverage & Deployment: con il quale si cerca <strong>di</strong> stimare un numero<br />

sufficiente <strong>di</strong> no<strong>di</strong> sensori affinché un evento possa essere esaminato<br />

nella sua totalità. Al tempo stesso con questo aspetto si cerca <strong>di</strong><br />

stabilire in che modo effettuare una misura accurata dei dati<br />

osservati e in che modo effettuare il deployment dei no<strong>di</strong> per la<br />

conformazione della rete.<br />

2. Information accurancy: con il quale ci si concentra principalmente<br />

sulla modalità <strong>di</strong> classificazione dei dati raccolti e sulla definizione<br />

<strong>di</strong> strategie per il trattamento delle misurazioni non accurate.<br />

3. Dependable data trasport: aspetto con il quale si definiscono<br />

strategie per assicurare il recapito delle misurazioni al centro<br />

raccolta. In particolare si definiscono strategie per combattere errori<br />

<strong>di</strong> trasmissione, <strong>di</strong> omissione e <strong>di</strong> congestione<br />

Spesso fornire un certo livello <strong>di</strong> affidabilità risulta arduo, soprattutto in<br />

alcuni campi applicativi. Ad esempio il monitoraggio <strong>di</strong> strutture <strong>di</strong>namiche<br />

[1], richiede alti requisiti <strong>di</strong> affidabilità, che devono ben amalgamarsi con i<br />

comuni attributi <strong>di</strong> efficienza energetica, scalabilità e autoconfigurazione<br />

tipici <strong>di</strong> una WSN. In particolare si può avere necessità <strong>di</strong>:<br />

� una fine sincronizzazione temporale;<br />

� minimizzare l’intervento umano sulla rete.<br />

� una copertura minima dell’area da monitorare;<br />

Riguardo il primo aspetto questo risulta importante al fine <strong>di</strong> <strong>di</strong>sporre <strong>di</strong> una<br />

caratterizzazione temporale precisa del fenomeno osservato. Questo<br />

requisito può essere rilassato nel caso in cui si considera una struttura della<br />

rete in cui i no<strong>di</strong> sensori sono organizzati in cluster in quanto si potrebbe<br />

richiedere la sincronizzazione per ogni cluster e non dell’intera rete.<br />

45


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Riguardo il secondo requisito questo risulta sempre più dominante nelle<br />

attuali installazioni <strong>di</strong> Wireless Sensor Network. L’intervento umano,<br />

spesso limitato alla sola sostituzione delle batterie dei no<strong>di</strong>, o alla<br />

sostituzione <strong>di</strong> un nodo malfunzionante può risultare spesso improponibile<br />

(in caso <strong>di</strong> reti in scenari avversi) o estremamente costoso e per questo deve<br />

essere ridotto quanto più è possibile al minimo. Tecniche che cercano <strong>di</strong><br />

sod<strong>di</strong>sfare questa necessità sono basate sull’utilizzo <strong>di</strong> strategie <strong>di</strong> “load<br />

balancing” e <strong>di</strong> “incremento della vita delle batterie”.<br />

Il terzo aspetto, infine, è inteso come la possibilità <strong>di</strong> avere a <strong>di</strong>sposizione<br />

un minimo ammontare <strong>di</strong> misurazioni al fine <strong>di</strong> poter avere una<br />

caratterizzazione completa del fenomeno che si sta analizzando e sarà<br />

analizzato in dettaglio nel successivo paragrafo.<br />

2.2.1 Il problema della copertura<br />

Per comprendere bene cosa si intende per problema <strong>di</strong> copertura si può<br />

immaginare uno scenario in cui si hanno a <strong>di</strong>sposizione n sensori,<br />

organizzati in un cluster, con i quali bisogna effettuare il monitoraggio <strong>di</strong> un<br />

ponte al fine <strong>di</strong> effettuarne una analisi delle vibrazioni. Un requisito<br />

potrebbe essere avere almeno k


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Un esempio ,che vede uno scenario composto da una rete <strong>di</strong> sensori<br />

utilizzata per il monitoraggio <strong>di</strong> <strong>di</strong>sastri ambientali come gli incen<strong>di</strong>,<br />

chiarisce ancora meglio come la copertura può essere fondamentale per la<br />

definizione della dependability <strong>di</strong> un sistema. Una visione dell’architettura è<br />

mostrata in figura 2.1. In questo caso è necessario per far scattare l’allarme<br />

<strong>di</strong> incen<strong>di</strong>o, che almeno un numero significativo <strong>di</strong> sensori mi forniscano<br />

misurazioni <strong>di</strong> temperature elevate e che quin<strong>di</strong> si abbia una adeguata<br />

copertura delle varie zone da monitorare. È chiaro che per avere una chiara<br />

<strong>di</strong>namica della temperatura nel tempo è necessario che i vari sensori siano<br />

sincronizzati tra <strong>di</strong> loro ed inoltre che siano dotati <strong>di</strong> un modulo in grado <strong>di</strong><br />

portare avanti una procedura <strong>di</strong> localizzazione se si suppone che questi siano<br />

<strong>di</strong>sposti in maniera casuale nell’ambiente (tramite lancio attraverso un<br />

Figura 2.1: Architettura WSN per rilevazione incen<strong>di</strong>o<br />

47


aereo).<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

In letteratura il problema della copertura è stato trattato secondo vari punti<br />

<strong>di</strong> vista. Per esempio l’ ”Art Gallery Problem” si concentra sul determinare<br />

il numero <strong>di</strong> controllori necessari per coprire una galleria d’arte in modo tale<br />

che ogni punto <strong>di</strong> essa sia monitorata almeno da un controllore. Questo<br />

problema è stato <strong>di</strong>mostrato essere risolvibile in uno spazio 2D ma si è<br />

mostrato <strong>di</strong> tipo NP-hard se è esteso ad uno spazio 3D [66]. Il lavoro <strong>di</strong><br />

Meguer<strong>di</strong>chian et al. [67] definisce invece una metrica per la copertura dei<br />

sensori denominata sorveglianza (surveillance) utilizzabile come misura<br />

della qualità del servizio <strong>di</strong> una particolare rete <strong>di</strong> sensori senza cavo.<br />

Lo stesso problema della copertura è <strong>di</strong>rettamente collegato al risparmio<br />

energetico dei no<strong>di</strong>, infatti moltissimi lavori in letteratura sono de<strong>di</strong>cati a<br />

questa tematica e in particolare al problema dello scheduling ottimale<br />

dell’accensione dei no<strong>di</strong> sensori al fine <strong>di</strong> preservare l’energia. Questi lavori<br />

si basano sul concetto <strong>di</strong> spegnere selettivamente i no<strong>di</strong> sensori senza però<br />

inficiare sulla copertura totale che deve essere fornita.<br />

In [68] propone una euristica per selezionare sets <strong>di</strong> sensori mutuamente<br />

esclusivi per provvedere a una completa copertura dell’area da monitorare.<br />

Sempre basandosi sullo spegnimento dei no<strong>di</strong> [71] propone uno schema<br />

molto interessante basato su un algoritmo <strong>di</strong> controllo della densità al fine <strong>di</strong><br />

porre in uno stato <strong>di</strong> sleep alcuni sensori che appartengono ad aree popolate<br />

densamente, in modo da assicurare una lunga vita alla rete. I no<strong>di</strong> in<br />

sleeping mode sono poi risvegliati perio<strong>di</strong>camente e non fanno altro che<br />

controllare se devono sopperire a fallimenti <strong>di</strong> no<strong>di</strong> vicini. Risulta chiaro<br />

come la frequenza del risveglio venga settata in modo tale da essere un<br />

giusto compromesso tra la densità <strong>di</strong> no<strong>di</strong> desiderata e consumo energetico.<br />

gli autori riescono a <strong>di</strong>mostrare che un tale schema estende il periodo <strong>di</strong> vita<br />

della rete secondo una proporzione lineare rispetto al numero <strong>di</strong> no<strong>di</strong><br />

utilizzati, usando circa l’1% del totale dell’energia consumata e resistendo al<br />

48


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

38% <strong>di</strong> fallimenti dei no<strong>di</strong>. Un altro schema <strong>di</strong> scheduling atto a preservare<br />

la copertura <strong>di</strong> una rete viene proposto da Tian et al. [69] dove l’analisi è<br />

incentrata sul determinare quali no<strong>di</strong> possono essere spenti e quando devono<br />

essere risvegliati.<br />

2.3 AFFIDABILITA’: STATO DELL’ARTE<br />

Molti sono gli stu<strong>di</strong> presenti in letteratura che sono de<strong>di</strong>cati alla affidabilità<br />

nelle reti <strong>di</strong> sensori senza cavo. Un primo esempio è il lavoro <strong>di</strong> Basile et al.<br />

[38] dove sono analizzate e proposte strategie al fine <strong>di</strong> costruire reti<br />

wireless e reti ad-hoc affidabili e sicure. Il fulcro del lavoro è sulla nozione<br />

<strong>di</strong> inner-circle consistency, ovvero la cooperazione tra i no<strong>di</strong> locali viene<br />

sfruttata al fine <strong>di</strong> neutralizzare errori e attacchi alla sorgente in modo tale<br />

da evitare che questi si possano propagare in tutta la rete. Come strumento<br />

per la valutazione delle strategie proposte si considera un modello dei<br />

fallimenti in cui le possibili cause <strong>di</strong> fallimento sono i crashing o i<br />

Byzantine behavior. Insieme al modello dei fallimenti viene utilizzato anche<br />

un modello della rete in cui si adottano sia tecniche statistiche sulla<br />

clusterizzazione che tecniche orientate al rispetto della security.<br />

Gli effetti sollevati dal fallimento <strong>di</strong> un singolo nodo sullo stato <strong>di</strong><br />

funzionamento <strong>di</strong> una WSN sono invece analizzati nel lavoro <strong>di</strong> Shakkottai<br />

et al. [39]. In questo contesto è stato in<strong>di</strong>viduato un limite superiore alla<br />

probabilità che tutti i no<strong>di</strong> siano connessi e tutta l’area della rete sia coperta,<br />

questo nell’ipo<strong>tesi</strong> che i no<strong>di</strong> siano uniformemente <strong>di</strong>stribuiti sul suolo e che<br />

la probabilità <strong>di</strong> fallimento sia anch’essa uniforme in tutta la rete. Viene<br />

inoltre ricavata una con<strong>di</strong>zione necessaria e sufficiente affinché la rete<br />

continui a coprire l’intera area (nonostante l’inaffidabilità dei no<strong>di</strong> che la<br />

compongono) e viene anche ricavata la minima probabilità <strong>di</strong><br />

funzionamento <strong>di</strong> un nodo al <strong>di</strong> là della quale la “copertura” dell’area non è<br />

49


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

più garantita. Un aspetto non contemplato dal lavoro è però come la<br />

connettività sia influenzata dalla morte <strong>di</strong> no<strong>di</strong> faulty o con batterie scariche,<br />

ipo<strong>tesi</strong> in cui non varrebbe più l’assunzione <strong>di</strong> densità uniforme della rete.<br />

Un modello <strong>di</strong> reliability è poi fornito in [40] e [41]. In [40] sono presentati<br />

alcuni modelli a catene <strong>di</strong> Markow per <strong>di</strong>verse tipologie <strong>di</strong> sensori. La<br />

reliability viene calcolata per <strong>di</strong>versi “failure rate” e poi i modelli sono<br />

comparati in termini <strong>di</strong> costo e della <strong>di</strong>stribuzione cumulativa e me<strong>di</strong>a della<br />

funzione <strong>di</strong> reliability. Arricchisce il lavoro anche un’analisi comparativa<br />

della reliability della rete con<strong>di</strong>zionata all’utilizzo <strong>di</strong> tecniche <strong>di</strong> ridondanza<br />

spaziale o <strong>di</strong> co<strong>di</strong>ci ECC (error correcting code)<br />

In [41] Iyengar et al. focalizzano l’attenzione sulle misure <strong>di</strong> reliability per<br />

WSN, fornendo anche delle stime sul minimo e massimo ritardo nella<br />

consegna <strong>di</strong> un messaggio <strong>di</strong> un nodo verso il sink. Viene adottato all’uopo<br />

un modello a grafo probabilistico per rappresentare la rete, dove le<br />

probabilità (<strong>di</strong> per<strong>di</strong>ta <strong>di</strong> pacchetti) sono ricavate da stime sul tasso <strong>di</strong><br />

fallimento dei sensori. Viene definita la reliability <strong>di</strong> una WSN come la<br />

probabilità che esista un cammino tra il sink e almeno un unico nodo<br />

funzionante del cluster: adottando questa definizione viene <strong>di</strong>mostrato<br />

come per reti <strong>di</strong> topologia arbitraria, la soluzione del modello <strong>di</strong> affidabilità<br />

considerato rappresenti un problema <strong>di</strong> complessità non polinomiale, tranne<br />

che per un caso particolare analizzato, per cui vengono fornite anche delle<br />

misure ottenute tramite simulazione.<br />

In [42] Gupta e Kumar analizzano l’impatto della connettività sulla<br />

reliability della rete. A tale scopo viene analizzano il comportamento <strong>di</strong> una<br />

WSN organizzata in clusters, attraverso un fault model in cui vengono<br />

considerati solo i fallimenti del gateway relativi all’esaurimento delle<br />

batterie e a fallimenti del modulo ra<strong>di</strong>o: questi ultimi dovuti sia a guasti<br />

hardware che a fallimenti <strong>di</strong> no<strong>di</strong> nel suo range operativo. Tutti i fallimenti<br />

considerati sono <strong>di</strong> durata permanente. In base a questo modello dei<br />

50


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

fallimenti, viene proposto un meccanismo <strong>di</strong> recupero basato sul consenso<br />

tra i gateway ancora funzionanti. Per testare la copertura della strategia<br />

proposta, viene adottata una tecnica <strong>di</strong> iniezione dei guasti simulata, tramite<br />

la quale viene <strong>di</strong>mostrato che l’approccio fornisce un miglioramento<br />

considerevole sulla stabilità del sistema riducendo l’overhead della riclusterizzazione<br />

e della riorganizzazione della rete. Il lavoro fornisce anche<br />

un’analisi teorica sulla soglia del range ra<strong>di</strong>o che garantisce la connettività<br />

tra no<strong>di</strong> <strong>di</strong> una rete <strong>di</strong>slocata casualmente, utilizzando un modello<br />

matematico.<br />

Infine, uno stu<strong>di</strong>o, sull’impatto <strong>di</strong> fenomeni <strong>di</strong> invecchiamento dei no<strong>di</strong><br />

sulla reliability della rete, è sviluppato da Krishmachari [43] dove viene<br />

analizzata la correlazione tra la durata della vita <strong>di</strong> ogni nodo e il suo<br />

consumo energetico in rispetto <strong>di</strong> alcune metriche <strong>di</strong> affidabilità come il<br />

Mean Time To Failure. Risultati interessanti sono forniti in merito alle<br />

misure relative all’impatto delle strategie <strong>di</strong> data aggregation sulla durata<br />

della vita <strong>di</strong> un nodo.<br />

2.4 AMBIENTI DI SIMULAZIONE<br />

Questo paragrafo si pone l’obiettivo <strong>di</strong> effettuare una carrellata dei vari<br />

ambienti <strong>di</strong> simulazione per l’analisi <strong>di</strong> reti <strong>di</strong> sensori senza cavo con<br />

particolare attenzione rivolta agli strumenti forniti dai vari ambienti per una<br />

caratterizzazione completa della rete emulata al fine <strong>di</strong> poterli sfruttare per<br />

ricavare parametri per l’analisi dell’affidabilità.<br />

Esaminare il comportamento <strong>di</strong> un sistema a tutti i livelli è necessario per<br />

raggiungere il massimo grado <strong>di</strong> accuratezza, infatti spesso un approccio<br />

basato sulla simulazione <strong>di</strong> algoritmi e protocolli <strong>di</strong> rete risulta inefficiente e<br />

questa inefficienza si accentua soprattutto in una Wireless Sensor Network<br />

51


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

dove i protocolli e le applicazioni possono interagire tra <strong>di</strong> loro facendo<br />

annullare il concetto <strong>di</strong> stratificazione [25].<br />

Emstar, insieme a Tossim è stato uno dei primi simulatori esplicitamente<br />

progettati per le reti <strong>di</strong> sensori senza cavo, questo è framework concepito per<br />

stu<strong>di</strong>are due tipi <strong>di</strong> WSN [29][30]: quelle costituite da sensori Microservers<br />

con architettura a 32-bit, che fanno uso tipicamente <strong>di</strong> sistema operativo<br />

Linux, e quelle composte da sensori Mica a 8-bit, che sfruttano il sistema<br />

operativo TinyOs. Emstar consente <strong>di</strong> stu<strong>di</strong>are l’esecuzione <strong>di</strong> applicazioni<br />

<strong>di</strong> entrambi i tipi secondo varie modalità d’uso rese <strong>di</strong>sponibili all’utente; è<br />

chiaro che l’emulazione sarà richiesta solo per le applicazioni destinate ai<br />

sensori Mica, mentre quelle per i Microservers sono normali applicazioni<br />

Linux che non necessitano <strong>di</strong> essere emulate. L’ambiente <strong>di</strong> simulazione<br />

offre anche una serie <strong>di</strong> servizi utili per creare applicazioni Linux, come vari<br />

algoritmi <strong>di</strong> routing (tra i quali il Direct Diffusion, che si occupa <strong>di</strong> inviare<br />

messaggi solo a gruppi <strong>di</strong> no<strong>di</strong> interessati, utile per effettuare query mirate<br />

all’interno della rete <strong>di</strong> sensori), un servizio <strong>di</strong> localizzazione che i sensori<br />

possono adoperare per costruire e mantenere aggiornata in maniera<br />

<strong>di</strong>namica la topologia della rete circostante, un servizio <strong>di</strong> sincronizzazione<br />

tempo virtuale/reale in<strong>di</strong>spensabile nelle simulazioni ibride, ed altri ancora.<br />

Purtroppo non viene simulato l’uso del sensore, né il consumo energetico, e<br />

queste sono delle pecche abbastanza importanti in un emulatore che si<br />

prefigge lo scopo <strong>di</strong> stu<strong>di</strong>are il funzionamento dei sensori a basso livello.<br />

Atemu è un simulatore del comportamento dell’intero hardware dei sensori,<br />

che usa come input il binario eseguibile dell’applicazione [31]. I sensori<br />

simulati sono quelli delle famiglie Atmel e Mica con processore AVR; una<br />

delle possibilità più interessanti <strong>di</strong> Atemu è quella <strong>di</strong> poter definire<br />

l’hardware dei sensori su cui eseguire le applicazioni. Il comportamento<br />

della rete può essere più che mai eterogeneo, decidendo sia le applicazioni<br />

52


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

che l’architettura hardware <strong>di</strong> ciascun nodo o gruppo <strong>di</strong> no<strong>di</strong> della rete, ed<br />

in<strong>di</strong>candone la posizione in modo da decidere la topologia della rete a<br />

piacimento (secondo un semplice modello 3D). L’utilizzo <strong>di</strong> Atemu è<br />

soprattutto in ambito <strong>di</strong> debugging, visto la possibilità <strong>di</strong> poter tenere sotto<br />

controllo, in ogni step della simulazione, lo stato <strong>di</strong> ciascun sensore (valore<br />

dei registri interni, uso della memoria, istruzione corrente, messaggi inviati<br />

e ricevuti). Anche in Atemu non esiste alcun modello del consumo<br />

energetico dei sensori della rete, e non è prevista nessun meccanismo per<br />

l’analisi dell’affidabilità.<br />

Avrora è un emulatore scritto in Java che simula il comportamento<br />

dell’intero hardware dei sensori, eseguendo il co<strong>di</strong>ce del programma in<br />

linguaggio assemblativo [32]. I sensori simulati sono quelli delle famiglie<br />

Atmel e Mica, dotati <strong>di</strong> processore AVR. La principale <strong>di</strong>fferenza con<br />

Atemu consiste nel fatto che Avrora è un simulatore ad eventi, e non tempo<br />

continuo. Non viene simulato il funzionamento dei sensori quando essi sono<br />

in sleep, saltando <strong>di</strong>rettamente al prossimo evento nella coda d’attesa <strong>di</strong> quel<br />

sensore che ne provoca il risveglio ed il funzionamento. A questo si<br />

accompagna il fatto che ogni nodo viene simulato in un thread a parte dal<br />

simulatore, il che consente <strong>di</strong> velocizzare ulteriormente la simulazione,<br />

anche se ciò pone il delicato problema della sincronizzazione <strong>degli</strong> eventi<br />

che riguardano no<strong>di</strong> <strong>di</strong>versi.<br />

Ns-2 [33], Glomosim [34] e Opnet [35] sono simulatori <strong>di</strong> rete, adattati o<br />

implementati per le WSN. Sono progettati per simulare specificamente lo<br />

strato <strong>di</strong> rete dello stack <strong>di</strong> comunicazione. Ns-2 non supporta in maniera<br />

nativa le WNS, ma esistono delle estensioni che forniscono all’ambiente <strong>di</strong><br />

simulazione le capacità <strong>di</strong> simulare un canale trasmissivo wireless.<br />

Glomosim è stato progettato specificamente per supportare reti wireless e<br />

mette a <strong>di</strong>sposizione un ottimo modello <strong>di</strong> propagazione ra<strong>di</strong>o. Opnet è un<br />

53


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

simulatore standar<strong>di</strong>zzato in ambito industriale e commerciale molto simile<br />

a ns-2. Opnet viene fornito con un modulo che simula la propagazione RF e<br />

interferenze, ma non supporta in maniera nativa le WSN.<br />

SensorSim [36] nasce come modulo aggiuntivo per ns-2. Sviluppato dai<br />

laboratori <strong>di</strong> ricerca UCLA2. SensorSim racchiude alcuni interessanti<br />

caratteristiche tra cui un modello dell’attività sensoristica, un modello della<br />

batteria per il consumo energerico dei no<strong>di</strong>, un leggero stack protocollare<br />

appositamente progettato per le WSN e un modulo per la simulazione che<br />

consente l’interazione attraverso dei reali sensori, per una simulazione<br />

‘ibrida’.<br />

J-Sim [37], è un ambiente <strong>di</strong> simulazione scritto in Java, con front-end in<br />

Tcl, sviluppato prendendo ispirazione da Ns-2 e dalla sua estensione<br />

Sensorsim. E’ realizzato secondo il para<strong>di</strong>gma della programmazione a<br />

componenti; costituisce un framework per la simulazione <strong>di</strong> reti <strong>di</strong><br />

calcolatori in generale, wired e wireless, con in particolare un supporto<br />

de<strong>di</strong>cato alle WSN ispirato <strong>di</strong>rettamente a Sensorsim; implementa<br />

funzionalità in maniera più completa rispetto a Ns-2, come ad esempio la<br />

simulazione ibrida, che può essere condotta in varie modalità.<br />

Shawn [58] è un simulatore orientato agli algoritmi, che offre all’utente un<br />

ambiente <strong>di</strong> supporto in cui può scrivere in linguaggio C++ l’algoritmo che<br />

desidera eseguire su ciascun nodo della rete. Oltre a decidere l’algoritmo<br />

che andrà in esecuzione sui no<strong>di</strong> della rete in maniera omogenea, si possono<br />

stabilire alcune caratteristiche della simulazione, come il modello<br />

topologico (a scelta tra quelli esistenti), la posizione dei no<strong>di</strong>, il modello <strong>di</strong><br />

trasmissione dei messaggi sui link tra no<strong>di</strong> a<strong>di</strong>acenti.<br />

Algosensim [59] ,alla stregua <strong>di</strong> Shawn, è un simulatore orientato agli<br />

algoritmi. È scritto in Java e l’ambiente <strong>di</strong> simulazione viene configurato<br />

me<strong>di</strong>ante la scrittura <strong>di</strong> files XML. Al momento è <strong>di</strong>sponibile solo una<br />

54


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

versione alpha, anche se il framework del simulatore è stato completamente<br />

sviluppato così come buona parte delle classi.<br />

Omnet++ [60], infine, è un simulatore scritto in C++ secondo il para<strong>di</strong>gma<br />

della programmazione basata sui componenti, che usa il linguaggio Ned per<br />

la configurazione della simulazione. Anche se sul sito ufficiale è <strong>di</strong>chiarata<br />

l’esistenza <strong>di</strong> progetti per la simulazione <strong>di</strong> reti Internet, anche con elementi<br />

wireless, ed eventualmente WSN, per il momento tali estensioni sono<br />

assenti. La struttura del simulatore è sostanzialmente simile a quella <strong>di</strong> altri<br />

simulatori come Ns-2 e J-Sim. La <strong>di</strong>fferenza principale sta nel maggior<br />

livello <strong>di</strong> astrazione, nel minor numero <strong>di</strong> funzionalità offerte e nella<br />

maggiore semplicità della simulazione. In Omnet++ non esistono librerie <strong>di</strong><br />

componenti che implementano ciascuno strato dello stack protocollare del<br />

software <strong>di</strong> rete; il simulatore è concepito per una rappresentazione molto<br />

più astratta dei no<strong>di</strong> della rete, che nella maggior parte dei casi avviene<br />

tramite un unico componente, o un insieme <strong>di</strong> pochi componenti interni, che<br />

si occupano unicamente <strong>di</strong> descrivere come il nodo in questione gestisce la<br />

ricetrasmissione <strong>di</strong> messaggi.<br />

2.4.1 Il Simulatore Tossim<br />

TOSSIM [26], [27] è un simulatore ad eventi che consente <strong>di</strong> effettuare il<br />

debugging e l’analisi <strong>di</strong> un’applicazione per TinyOS, semplicemente<br />

compilandola per la piattaforma PC, anziché per l’hardware del sensore (ad<br />

esempio mica). Naturalmente TOSSIM non simula il mondo reale, ma fa<br />

una serie <strong>di</strong> semplificazioni che permettono <strong>di</strong> mantenerne la scalabilità,<br />

senza pregiu<strong>di</strong>carne tuttavia l’accuratezza dei risultati. Le caratteristiche<br />

principali sono le seguenti:<br />

55


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

� TOSSIM simula il comportamento <strong>di</strong> TinyOS a basso livello, in<br />

particolare simula la comunicazione fra no<strong>di</strong> a livello <strong>di</strong> bit e tutti<br />

gli interrupt <strong>di</strong> sistema;<br />

� gli interrupt sono temporizzati con precisione, mentre i tempi <strong>di</strong><br />

esecuzione non vengono simulati (dal punto <strong>di</strong> vista del simulatore<br />

un pezzo <strong>di</strong> co<strong>di</strong>ce viene eseguito istantaneamente);<br />

� la propagazione dei segnali ra<strong>di</strong>o non viene simulata; i collegamenti<br />

fisici sono modellati attraverso un grafo che in<strong>di</strong>ca per ogni coppia<br />

<strong>di</strong> no<strong>di</strong> la probabilità <strong>di</strong> errore sul bit (0 significa perfetta<br />

connettività, 1 connettività assente);<br />

� non viene simulato il comportamento della batteria ma viene solo<br />

quantificata l’energia consumata da ciascun nodo.<br />

� in TOSSIM un interrupt non può interrompere il co<strong>di</strong>ce attualmente<br />

in esecuzione, come invece è possibile nei mote reali;<br />

� in TOSSIM tutti i no<strong>di</strong> sensori devono necessariamente eseguire la<br />

stessa applicazione.<br />

Il debugging delle applicazioni viene fatto generalmente inserendo nel<br />

co<strong>di</strong>ce delle chiamate alla funzione dbg, la quale consente appunto <strong>di</strong><br />

inviare stringhe <strong>di</strong> testo al simulatore, specificandone anche il tipo.<br />

TOSSIM durante l’esecuzione legge questi messaggi <strong>di</strong> debug e mostra<br />

all’utente solo quelli del tipo corretto, specificato tramite la variabile<br />

d’ambiente DBG.<br />

Per quanto riguarda la comunicazione wireless, il simulatore fornisce due<br />

modelli del mezzo ra<strong>di</strong>o:<br />

• il modello simple;<br />

• il modello lossy.<br />

In entrambi i casi i segnali possono in un certo istante assumere solo i valori<br />

zero o uno e non hanno associata una informazione sull’intensità. Il<br />

modello simple si comporta come se i no<strong>di</strong> fossero posizionati in una<br />

56


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

singola cella, per cui tutti i bit trasmessi sono ricevuti senza errori da tutti i<br />

sensori presenti. Anche se non ci sono errori <strong>di</strong> trasmissione si possono<br />

comunque avere collisioni se due o più <strong>di</strong>spositivi trasmettono<br />

contemporaneamente, portando alla corruzione dei dati.<br />

Il modello lossy, più utilizzato in pratica, connette tutti i no<strong>di</strong> in un grafo<br />

orientato, in cui ogni arco in<strong>di</strong>ca la probabilità che un bit trasmesso venga<br />

ricevuto invertito. Se ad esempio all’arco (a, b) è associato il valore 0.01<br />

significa che ogni bit trasmesso da a ha l’1% <strong>di</strong> probabilità <strong>di</strong> essere<br />

ricevuto corrotto da b. Questo modello consente quin<strong>di</strong> <strong>di</strong> simulare<br />

topologie più complesse in cui non tutti i no<strong>di</strong> sono connessi tra loro,<br />

permette <strong>di</strong> avere connessioni asimmetriche e <strong>di</strong> valutare le conseguenze<br />

delle interferenze. Il grafo può essere specificato fornendo al simulatore un<br />

file contenente i valori del bit-error-rate per ogni coppia <strong>di</strong> sensori; esiste<br />

anche la possibilità <strong>di</strong> generare il file attraverso lo strumento LossyBuilder,<br />

che costruisce il grafo basandosi sulla topologia e su dati sperimentali<br />

ottenuti dagli sviluppatori.<br />

2.5 OSSERVAZIONI<br />

I vari simulatori analizzati nel paragrafo precedente, focalizzano la loro<br />

attenzione su varie peculiarità delle WSN, ma nessuno <strong>di</strong> essi è in grado <strong>di</strong><br />

fornire delle misure <strong>di</strong> dependability della rete e/o dei no<strong>di</strong>. Questa è una<br />

forte limitazione in quanto le WSN sono al giorno d’oggi utilizzate in<br />

svariati ambiti dove sono richiesti parametri <strong>di</strong> affidabilità del tutto<br />

<strong>di</strong>fferenti tra <strong>di</strong> loro. Infatti, come si è potuto constatare, le applicazioni<br />

scritte per reti WSN sono fortemente legate al contesto nel quale sono<br />

utilizzate e per questo sarebbe utile avere un meccanismo per la valutazione<br />

della dependability già in fase <strong>di</strong> progettazione.<br />

Tra i vari simulatori analizzati, in questo lavoro <strong>di</strong> <strong>tesi</strong>, si è scelto <strong>di</strong><br />

utilizzare Tossim. La possibilità <strong>di</strong> poter eseguire le applicazioni tinyOS su<br />

57


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

un normale PC, invece che su un <strong>di</strong>spositivo mote reale, ha sicuramente<br />

influito positivamente sulla scelta, in quanto è possibile testare e analizzare<br />

un’applicazione per reti <strong>di</strong> sensori in un ambiente controllato e ripetibile. Un<br />

altro vantaggio evidente offerto da questo framework, a <strong>di</strong>fferenza <strong>di</strong> altri<br />

simili come Emstar, è la possibilità <strong>di</strong> riutilizzare il co<strong>di</strong>ce per eseguirlo<br />

<strong>di</strong>rettamente su un <strong>di</strong>spositivo mote reale senza effettuarne nessuna<br />

mo<strong>di</strong>fica. Infatti altri simulatori come Emstar prevedono che non venga<br />

eseguito il file binario che andrà sui sensori veri e propri ma una versione<br />

<strong>di</strong>fferente del co<strong>di</strong>ce, la quale non prevede simulazione del consumo<br />

energetico né gestione delle interruzioni hardware, schedulando tutti gli<br />

eventi come una serie <strong>di</strong> tasks <strong>di</strong> breve durata che vengono eseguiti in<br />

sequenza uno dopo l’altro.<br />

Altro punto a favore <strong>di</strong> Tossim è sicuramente la qualità e quantità della<br />

documentazione e il grosso interesse della comunità <strong>di</strong> sviluppatori <strong>di</strong> WSN<br />

per questo framework proprio per le caratteristiche succitate.<br />

58


Capitolo 3<br />

Algoritmi per la raccolta dati affidabile<br />

3.1 CONSIDERAZIONI GENERALI ED OBIETTIVI<br />

Come già messo in evidenza nel paragrafo 1.9 l’ambito <strong>di</strong> applicazione<br />

delle reti <strong>di</strong> sensori senza cavo è molto vasto. L’obiettivo <strong>di</strong> questa <strong>tesi</strong> è <strong>di</strong><br />

progettare e valutare algoritmi per la raccolta dati affidabile.<br />

Il contesto specifico all’interno del quale si colloca il lavoro è il<br />

monitoraggio <strong>di</strong> una struttura <strong>di</strong>namica, ovvero il monitoraggio dello stato<br />

<strong>di</strong> salute <strong>di</strong> una struttura attraverso un apposita rete <strong>di</strong> sensori che possa<br />

essere in grado <strong>di</strong> fornire mappe <strong>di</strong> deformazione, <strong>di</strong>stribuzioni <strong>di</strong><br />

temperatura, misure <strong>di</strong> vibrazione e identificazione e localizzazione <strong>di</strong> danni<br />

interni alla struttura. Attualmente i sistemi sviluppati sono basati su reti<br />

“single-hop” cablate cioè su reti nelle quali si fa l’ipo<strong>tesi</strong> che ogni sensore<br />

sia in grado <strong>di</strong> comunicare con un nodo atto all’acquisizione delle<br />

misurazioni attraverso l’utilizzo <strong>di</strong> un canale cablato. Questi sistemi sono <strong>di</strong><br />

solito composti da un numero basso <strong>di</strong> <strong>di</strong>spositivi sensori e presentano<br />

problemi come gli elevati costi <strong>di</strong> installazione e il rumore elettromagnetico,<br />

non trascurabile quando vengono utilizzati cavi <strong>di</strong> trasmissione lunghi<br />

(superiori ai 100m). Ciò comporta degrado delle misurazioni e<br />

59


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

sovra-voltaggi che possono causare guasti agli stessi <strong>di</strong>spositivi. Le reti <strong>di</strong><br />

sensori senza cavo vengono in aiuto proprio per risolvere problemi come<br />

questi in quanto prevedono l’eliminazione dei cavi e provvedono all’uso <strong>di</strong><br />

segnali <strong>di</strong>gitali che sono meno soggetti ad interferenze e sovra-voltaggi.<br />

D’altronde le WSN introducono una nuova serie <strong>di</strong> problemi dovuti alle<br />

caratteristiche del mezzo wireless attraverso cui avvengono le<br />

comunicazioni dei no<strong>di</strong> e all’esaurimento delle riserve energetiche dei<br />

singoli no<strong>di</strong>.<br />

Di conseguenza la fase <strong>di</strong> sviluppo si arricchisce <strong>di</strong> nuove tematiche e<br />

requisiti che vanno ad aggiungersi a quelli base per formare uno scenario in<br />

cui è necessario avere:<br />

1. una raccolta affidabile <strong>di</strong> un numero sufficiente <strong>di</strong> misurazioni in<br />

una vasta area;<br />

2. sincronizzazione delle misurazioni;<br />

3. utilizzo <strong>di</strong> protocolli <strong>di</strong> raccolta dati energeticamente efficienti;<br />

4. minimizzazione dell’intervento umano;<br />

In questo lavoro <strong>di</strong> <strong>tesi</strong> si focalizzerà l’attenzione soprattutto sui punti 1 e 3<br />

tralasciando il problema della sincronizzazione delle misurazioni.<br />

3.2 ALGORITMI DI DATA GATHERING<br />

Con il termine Data Gathering si intende una famiglia <strong>di</strong> algoritmi, usati<br />

tipicamente in applicazioni <strong>di</strong> tipo monitoring, per raccogliere dati<br />

globalmente e trasmetterli al nodo base in gergo denominato nodo sink.<br />

Lo scenario è quello <strong>di</strong> una rete <strong>di</strong> sensori, con una certa struttura, <strong>di</strong> cui si<br />

conosce la localizzazione <strong>di</strong> ogni singolo nodo e dove si ipotizza che ogni<br />

nodo sia in grado <strong>di</strong> comunicare in multi-hop con qualsiasi altro nodo della<br />

rete e quin<strong>di</strong> anche <strong>di</strong>rettamente con il nodo sink (figura 3.1).<br />

60


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 3.1: Scenario tipico <strong>di</strong> una rete <strong>di</strong> sensori wireless: i coman<strong>di</strong> sono<br />

inoltrati in modalità broadcast mentre le misurazioni recapitate al<br />

nodo sink tramite protocollo multihop<br />

Questo genere <strong>di</strong> algoritmi cercano un modo efficiente, in termini <strong>di</strong> vita<br />

globale della rete, per raccogliere i dati e renderli <strong>di</strong>sponibili al nodo base.<br />

Molto spesso si ipotizza che ogni nodo abbia anche la possibilità <strong>di</strong> fondere<br />

e aggregare le informazioni ricevute, ed eventualmente instradarle seguendo<br />

un percorso, variabile nel tempo, che sfrutta i no<strong>di</strong> che ad esempio sono<br />

dotati <strong>di</strong> maggiore energia residua. Queste tecniche sono molto utilizzate e<br />

permettono la riduzione dell’informazione trasmessa mentre questa viaggia<br />

all’interno della rete e sono denominate: Data aggregation e data fusion.<br />

Entrambe evitano lo spreco <strong>di</strong> risorse (come la banda e l’energia) e cercano<br />

<strong>di</strong> limitare il traffico che transita nella rete. L’idea principale consiste<br />

nell’unire in un unico pacchetto inviato l’informazioni proveniente da più<br />

no<strong>di</strong> prima <strong>di</strong> inoltrarla verso la destinazione, aumentando l’efficienza delle<br />

trasmissioni quando i dati da trasmettere sono pochi. Differenti strategie <strong>di</strong><br />

data fusion e aggregation richiedono <strong>di</strong>verse risorse e possono determinare<br />

variazioni nel routing.<br />

61


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

In letteratura [11] il problema del Data Gathering viene analiticamente<br />

formalizzato come un problema <strong>di</strong> programmazione lineare che prende il<br />

nome <strong>di</strong> MLDA (Maximum lifetime data gathering). Per reti ad elevato<br />

numero <strong>di</strong> sensori è evidente come l’utilizzo <strong>di</strong> normali tecniche per<br />

risolvere la PL risulti troppo oneroso in termini computazionali. Proprio per<br />

ovviare a questo problema ultimamente si è andato sempre più sviluppando<br />

un approccio clustering- based che nel caso dell’MLDA da una soluzione<br />

euristica al problema, garantendo nel worst-case complessità polinomiale in<br />

n, dove con n si in<strong>di</strong>ca il numero <strong>di</strong> sensori della rete. L’idea è quella <strong>di</strong><br />

sud<strong>di</strong>videre la rete in m cluster, cercando quanto più <strong>di</strong> in<strong>di</strong>viduare delle<br />

zone in cui i sensori si attestano su simili con<strong>di</strong>zioni misurate, ad esempio<br />

“zona a temperatura compresa fra 50° C e 80° C, oppure “zona a bassa<br />

luminosità”, etc. Questo concetto verrà dettagliatamente ripreso nel<br />

paragrafo 3.4.<br />

3.3 INTERAZIONE TRA I NODI: IL PROTOCOLLO<br />

MULTIHOP<br />

Il problema <strong>di</strong> avere una vasta area da monitorare nella quale si devono far<br />

pervenire le misurazioni ad un nodo base (sink) può essere una grossa<br />

limitazione nel caso in cui non si abbiano a <strong>di</strong>sposizione <strong>degli</strong> adeguati<br />

protocolli <strong>di</strong> rete. La soluzione come gia si è accennato nel paragrafo 1.6.3 è<br />

l’utilizzo del protocollo multihop che consente ai no<strong>di</strong> sensore all’esterno<br />

del raggio <strong>di</strong> azione del ricetrasmettitore dalla stazione base <strong>di</strong> trasmettere i<br />

dati ai no<strong>di</strong> sensore vicini, i quali a turno inoltreranno i dati fino alla<br />

stazione base. Il processo <strong>di</strong> inoltro potrebbe coinvolgere anche molti no<strong>di</strong><br />

sensori ma le informazioni potrebbero comunque giungere a destinazione<br />

nel caso in cui non si verifichino collisioni.<br />

La versione 1.1.x e successive <strong>di</strong> TinyOs includono delle librerie <strong>di</strong><br />

62


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

componenti che forniscono un routing multi-hop realizzato appositamente<br />

per le reti <strong>di</strong> sensori wireless: l’implementazione, contenuta all’interno della<br />

cartella $TOSROOT/tos/lib/Route impiega l’algoritmo dello shortest<br />

path first con una singola destinazione, rappresentata dalla stazione base<br />

(nodo con identificativo univoco 0), svolgendo una stima dei collegamenti.<br />

L’inoltro dei dati e i meccanismi <strong>di</strong> routing sono implementati in due<br />

<strong>di</strong>versi componenti (MultiHopEngineM e MultiHopLEPSM) con<br />

una singola interfaccia (MultiHopRouter), che li collega, al fine <strong>di</strong><br />

permettere una più facile integrazione <strong>di</strong> ulteriori schemi <strong>di</strong> routing in<br />

futuro (figura 3.2). MultiHopEngineM stabilisce la logica <strong>di</strong> movimento<br />

generale dei pacchetti per le funzionalità che riguardono il routing<br />

multihop. Tramite RouteSelect il modulo in<strong>di</strong>vidua il next-hop nel<br />

cammino <strong>di</strong> routing ed invia i pacchetti utilizzando la porta SendMsg.<br />

MultiHopLEPSM fornisce:<br />

� meccanismi per la stima dei collegamenti e per la selezione del nodo<br />

genitore (Link Estimation Parent Selection);<br />

� strumenti per monitorare il traffico ricevuto da un nodo;<br />

� primitive per la ricezione/trasmissione dei messaggi <strong>di</strong> update e<br />

Figura 3.2: Configurazione <strong>di</strong> Multihop Router<br />

63


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

delle informazioni <strong>di</strong> routing <strong>di</strong>rettamente dai no<strong>di</strong> vicini tramite la<br />

porta Snoop. Le informazioni accumulate sono poi utilizzate per la<br />

scelta del next-hop. La procedura <strong>di</strong> inoltro dei messaggi <strong>di</strong><br />

aggiornamento dei cammini è perio<strong>di</strong>ca (ogni 10 sec) così come<br />

quella <strong>di</strong> rielaborazione delle informazioni ricevute (50 sec).<br />

Infine la configurazione MultiHopRouter connette i due moduli<br />

suddetti e la configurazione importa le porte fornite dalle funzioni<br />

Receive, Send, Intercept Snoop. La porta fornita da<br />

SendMsg, invece, è collegata ai componenti della libreria QueuedSend la<br />

quale è impiegata per la gestione della coda dei pacchetti, sia che essi siano<br />

stati originati localmente dal nodo sensore sia che essi siano stati inoltrati da<br />

altri no<strong>di</strong>.<br />

L’utilizzo del protocollo multihop risulta essere una buona soluzione per<br />

scenari in cui bisogna effettuare il monitoraggio <strong>di</strong> vaste aree, però va anche<br />

evidenziato che è la soluzione più semplice possibile, e <strong>di</strong> conseguenza<br />

presenta alcuni svantaggi come ad esempio il recapito <strong>di</strong> tutte le<br />

misurazioni. Infatti i link RF delle comunicazioni wireless sono affetti dal<br />

problema dell’interferenza, che nella maggior parte dei casi è dovuto alla<br />

collisione <strong>di</strong> pacchetti che viaggiano nell’etere. Ciò causa per<strong>di</strong>ta <strong>di</strong><br />

misurazioni e <strong>di</strong> conseguenza per<strong>di</strong>ta <strong>di</strong> informazione relativa ad una zona<br />

monitorata. Due sono quin<strong>di</strong> gli aspetti che debbono essere trattati:<br />

1. utilizzo <strong>di</strong> approcci <strong>tesi</strong> ad evitare zone <strong>di</strong> non copertura;<br />

2. utilizzo <strong>di</strong> tecniche per il recapito affidabile delle informazioni.<br />

Nel prossimo paragrafo si tratterà in particolare il punto 1 mentre il 2 punto<br />

sarà dettagliato nel paragrafo 3.7<br />

64


3.4 CLUSTERING IN UNA WSN<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Dato l’elevato numero <strong>di</strong> sensori che compongono la rete, può risultare<br />

conveniente per molte applicazioni raggruppare i no<strong>di</strong> in cluster (ve<strong>di</strong> figura<br />

3.3), ed eleggere per ciascuno gruppo un super-nodo, detto cluster-head.<br />

In questa accezione la raccolta <strong>di</strong> informazione può essere intesa in due<br />

mo<strong>di</strong> <strong>di</strong>fferenti:<br />

1. come la collezione delle varie misure effettuate dai no<strong>di</strong> appartenenti<br />

allo stesso cluster, le quali vengono recapitate al nodo sink tramite il<br />

cluster-head in quanto questo può, ad esempio, essere quello che<br />

impiega la minor quantità <strong>di</strong> energia per il recapito delle<br />

informazioni;<br />

2. come raccolta della misurazione da parte del solo cluster-head.<br />

Questa è la soluzione proposta e in questo caso lo schema assume<br />

più un significato orientato al “load balancing”, visto che si mantiene<br />

attivo un solo sensore per cluster e con adeguate tecniche <strong>di</strong> elezione<br />

del cluster-head si può introdurre una politica <strong>di</strong> risparmio energia<br />

grazie all’accensione/spegnimento selettivo dei vari no<strong>di</strong> del gruppo.<br />

L’utilizzo dello schema “cluster-based” permette all’intero gruppo<br />

appartenente allo stesso cluster <strong>di</strong> essere identificato con il medesimo<br />

in<strong>di</strong>rizzo; questa tecnica ha quin<strong>di</strong> il vantaggio <strong>di</strong> ridurre il numero <strong>di</strong><br />

in<strong>di</strong>rizzi fisici da allocare mantenendo la possibilità <strong>di</strong> in<strong>di</strong>viduare<br />

univocamente una parte della rete, inoltre si riducono i messaggi inviati che<br />

non devono essere più ripetuti per ogni nodo appartenete al cluster, e si<br />

riesce ad aumentare la ridondanza della rete e la risoluzione della misura<br />

effettuata. Una organizzazione del genere affronta il problema della non<br />

copertura <strong>di</strong> determinate zone nel corso <strong>di</strong> una procedura <strong>di</strong> monitoraggio;<br />

infatti in ambito locale al cluster è applicato il concetto <strong>di</strong> ridondanza. La<br />

stessa struttura può essere iterata su più livelli creando cluster <strong>di</strong> cluster,<br />

65


Figura 3.3: Organizzazione in cluster della rete<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

fino a raggiungere il sink, il nodo <strong>di</strong> raccolta <strong>di</strong> tutte le informazioni e<br />

d’interfaccia con reti esterne o con l’utente finale. La scelta del cluster head<br />

può essere casuale, o può tener conto delle risorse dei singoli no<strong>di</strong>,<br />

pre<strong>di</strong>ligendo come cluster head quello dotato <strong>di</strong> maggiore energia e meno<br />

impegnato in comunicazioni ra<strong>di</strong>o; infatti è evidente che il ruolo <strong>di</strong> cluster<br />

head richieda maggiori funzionalità, le quali coincidono con un più elevato<br />

consumo <strong>di</strong> potenza.<br />

È chiaro che è anche possibile assegnare perio<strong>di</strong>camente il compito <strong>di</strong> capo<br />

cluster a no<strong>di</strong> <strong>di</strong>fferenti, che in momenti <strong>di</strong>versi risultino i più idonei a<br />

farsene carico.<br />

Riepilogando partizionare in cluster una rete <strong>di</strong> sensori wireless può servire<br />

sia in applicazioni <strong>di</strong> tipo Data gathering dove è richiesta una sud<strong>di</strong>visione<br />

in aree ciascuna delle quali corrisponde, quanto più è possibile ad una certa<br />

con<strong>di</strong>zione ambientale, sia nel Direct Diffusion per eleggere una gerarchia<br />

<strong>di</strong> no<strong>di</strong> più importanti, detti sempre cluster-head [12], e delegare poi a questi<br />

66


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

il compito <strong>di</strong> inoltrare l’interest nella rete, al posto <strong>di</strong> usare un banale<br />

floo<strong>di</strong>ng.<br />

Il clustering può essere effettuato con due approcci <strong>di</strong>versi:<br />

Clustering centralizzato: l’algoritmo <strong>di</strong> clustering gira sul nodo base della<br />

rete. La con<strong>di</strong>zione necessaria è che il nodo base riceva tutti i dati dai<br />

sensori. È evidente come questa tecnica vada a collidere con il concetto <strong>di</strong><br />

aggregazione, che tende a non far giungere al nodo base i dati relativi a tutti<br />

i sensori, bensì solo i pacchetti <strong>di</strong> informazioni fuse e concentrate.<br />

Clustering <strong>di</strong>stribuito: è <strong>di</strong> gran lunga il più usato per supportare tecniche<br />

<strong>di</strong> Data aggregation, Data gathering [11], e Direct <strong>di</strong>ffussion [12]. Il<br />

compito <strong>di</strong> partizionare in cluster viene decentralizzato e viene <strong>di</strong>stribuito<br />

su ogni nodo. Uno <strong>degli</strong> algoritmi <strong>di</strong> clustering <strong>di</strong>stribuito più noto è il<br />

DEM (Distributed Expectation Maximization [13]). Lo scopo è quello <strong>di</strong><br />

avere una partizione in cluster sempre aggiornata dei sensori, in base a delle<br />

con<strong>di</strong>zioni particolari che si verificano nell’ambiente. Si assume che ogni<br />

nodo della rete rilevi dei dati (o <strong>degli</strong> eventi) che possono essere descritti da<br />

un insieme <strong>di</strong> con<strong>di</strong>zioni elementari. L’algoritmo produce una stima della<br />

densità dei sensori per ciascuna <strong>di</strong> queste con<strong>di</strong>zioni e rende quin<strong>di</strong><br />

possibile la clusterizzazione. Le elaborazioni avvengono localmente al<br />

nodo, non è necessario quin<strong>di</strong> che i dati rilevati vengano inoltrati ad una<br />

stazione centrale che effettua i calcoli. Inoltre l’algoritmo non richiede che i<br />

sensori si scambino i dati effettivamente rilevati, ma solamente piccoli set<br />

<strong>di</strong> dati statistici <strong>di</strong> aggiornamento. Un altro vantaggio <strong>degli</strong> algoritmi DEM<br />

è che non producono trasmissioni simultanee; in altri termini è garantito<br />

che, ad ogni intervallo temporale, l’algoritmo scambia uno e un solo<br />

67


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

pacchetto <strong>di</strong> aggiornamento fra due no<strong>di</strong> (ad uno o più vicinati <strong>di</strong> <strong>di</strong>stanza).<br />

Questa scarsa necessità <strong>di</strong> comunicazione rende l’algoritmo molto poco<br />

pesante a livello <strong>di</strong> traffico introdotto sulla rete e quin<strong>di</strong> risulta facilmente<br />

integrabile in qualsiasi applicazione che prevede una partizione in cluster o<br />

una stima della densità.<br />

3.5 CLUSTERING: STATO DELL’ARTE<br />

Molti sono gli stu<strong>di</strong> presenti in letteratura de<strong>di</strong>cati al clustering <strong>di</strong> reti <strong>di</strong><br />

sensori senza cavo e questi possono essere classificati in base all’approccio<br />

seguito per effettuare proprio la procedura <strong>di</strong> clustering. In particolare<br />

verranno trattati algoritmi basati su criteri <strong>di</strong> prossimità, potenza<br />

trasmissiva, numero <strong>di</strong> hop (k-hop clustering), budget-based<br />

Un primo lavoro è quello <strong>di</strong> Heinzelman et al [10] che propongono il<br />

protocollo LEACH (Low Energy Adaptive Clustering Hierarchy)<br />

appositamente ideato per applicazioni atte al monitoraggio ambientale.<br />

L’approccio sul quale si basa il protocollo è fondato sulle seguenti 2<br />

assunzioni: (i) esiste un'unica base station con la quale tutti i sensori<br />

vogliono comunicare; (ii) tutti i sensori hanno la possibilità <strong>di</strong> comunicare<br />

<strong>di</strong>rettamente con la base station. Al fine <strong>di</strong> riguardare il consumo energetico<br />

dei no<strong>di</strong> il protocollo LEACH seleziona un numero p <strong>di</strong> sensori che fungono<br />

da cluster-head, dove p è un parametro che deve essere esaminato dal punto<br />

<strong>di</strong> vista ingegneristico a priori. I cluster-heads comunicano <strong>di</strong>rettamente con<br />

la base station e gli altri no<strong>di</strong> inoltrano le proprie misurazioni attraverso i<br />

cluster-heads (tipicamente quello più vicino a loro). Al fine <strong>di</strong> <strong>di</strong>stribuire<br />

equamente il consumo energetico dei no<strong>di</strong> il protocollo LEACH implementa<br />

una procedura <strong>di</strong> load-balancing che permette ai vari no<strong>di</strong> <strong>di</strong> <strong>di</strong>ventare<br />

cluster-heads in <strong>di</strong>fferenti istanti temporali. Si prevede inoltre che un nodo<br />

68


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

possa essere rieletto solo quando tutti i restanti can<strong>di</strong>dati sono già stati eletti<br />

almeno una volta. I risultati a cui Heinzelman et al giungono mostrano che il<br />

protocollo LEACH riduce l’energia associata alla comunicazione <strong>di</strong> circa<br />

otto volte rispetto alla trasmissione <strong>di</strong>retta (<strong>di</strong>rect-transmission) e inoltre che<br />

la durata energetica del primo nodo ad esaurirsi aumenta <strong>di</strong> circa 8 volte<br />

rispetto al caso in cui è usato <strong>di</strong>rect-transmission, mentre l’ultimo nodo si<br />

esaurisce circa 3 volte dopo l’esaurimento dell’ultimo nodo negli altri<br />

protocolli.<br />

Lindsey et al. [44] proseguendo dai risultati ottenuti con il protocollo<br />

LEACH proposero PEGASIS (Power-Efficient GAthering in Sensor<br />

Information Systems), un protocollo in cui i no<strong>di</strong> trasmettono le<br />

informazioni al loro vicino più vicino e i messaggi sono trasmessi alla base<br />

station basandosi su uno schema a catena. Il protocollo PEGASIS si è<br />

<strong>di</strong>mostrato più robusto rispetto al LEACH nei riguar<strong>di</strong> dei fallimenti dei<br />

no<strong>di</strong>.<br />

Subramanian e Katz [45] propongono invece delle linee guida per la<br />

progettazione <strong>di</strong> reti <strong>di</strong> sensori auto-organizzanti in cluster. Viene posta<br />

enfasi sull’importanza <strong>di</strong> implementare una struttura gerarchica al fine <strong>di</strong><br />

ridurre la complessità del routing per ogni nodo, in particolare viene<br />

suggerito un approccio per il clustering nei quali i no<strong>di</strong> “beginner”<br />

(iniziatori) inviano un “solicitation message” a tutti i no<strong>di</strong> che possono<br />

ascoltarli. In ogni round dell’algoritmo gli iniziatori incrementano la loro<br />

potenza trasmissiva e il processo <strong>di</strong> clustering continua fin quando il numero<br />

dei no<strong>di</strong> che rispondono sono compresi tra limite min e max <strong>di</strong> no<strong>di</strong> per<br />

cluster.<br />

L’approccio utilizzato da Subramanian e Katz è molto simile all’<br />

“Expan<strong>di</strong>ng Ring” <strong>di</strong> Ramamoorthy et al [46], fatta eccezione per il fatto<br />

che i no<strong>di</strong> “beginner”ora non incrementano la loro potenza trasmissivo ma il<br />

numero <strong>di</strong> hop. Facciamo notare però che questo tipo <strong>di</strong> approccio può avere<br />

69


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

una complessità nel caso peggiore molto alta in quanto <strong>di</strong>pende dal numero<br />

totale <strong>di</strong> sensori presenti nella rete più che dallo specifico limite sulla<br />

<strong>di</strong>mensione del cluster.<br />

Una soluzione alternativa alla realizzazione <strong>di</strong> cluster con limitate<br />

<strong>di</strong>mensioni e con un overhead <strong>di</strong> messaggi basso è l’approccio budget-based<br />

clustering. In questo tipo <strong>di</strong> algoritmi al nodo iniziatore (cluster-head) è<br />

assegnato un budget iniziale. Il cluster-head inizia col <strong>di</strong>stribuire il proprio<br />

budget ai suoi vicini i quali a loro volta fanno lo stesso fin quando il budget<br />

non è esaurito. Questo tipo <strong>di</strong> approccio permette una crescita dei vari<br />

cluster basandosi su decisioni locali al nodo ed evitando <strong>di</strong> coinvolgere i<br />

cluster head in ogni round, <strong>di</strong>minuendo in questo modo l’overhead dei<br />

messaggi. Controllando quin<strong>di</strong> il budget allocato per la formazione del<br />

cluster si è in grado <strong>di</strong> controllare il numero superiore alla <strong>di</strong>mensione del<br />

cluster. Krishnan e Starobinski [47] propongono due algoritmi per budgetbased<br />

clustering: rapid e persistent. Entrambi astraggono dal numero e dalla<br />

<strong>di</strong>slocazione delle base station nella rete e non considerando l’assunzione<br />

della connettività <strong>di</strong>retta (molto utile quando si considerano scenari reali nei<br />

quali ci sono da considerare possibili ostacoli durante la trasmissione). Il<br />

lavoro si pone <strong>di</strong> tener in considerazione: (i) l’efficienza dei messaggi che è<br />

cruciale per mantenere limitati i requisiti <strong>di</strong> banda e il consumo energetico<br />

dei sensori, (ii) la necessità <strong>di</strong> avere <strong>di</strong>mensioni dei cluster limitate in modo<br />

da avere un impatto favorevole sulle performance dei protocolli <strong>di</strong> routing e,<br />

(iii) scelta <strong>di</strong> adeguati budget per la procedura <strong>di</strong> clustering al fine <strong>di</strong><br />

controllare le <strong>di</strong>mensioni e il numero <strong>di</strong> cluster prodotti.<br />

Una evoluzione allo stu<strong>di</strong>o <strong>di</strong> Krishnan e Starobinski è proposto da<br />

Tzevelekas et al [48] dove è descritta una metodologia intelligente <strong>di</strong><br />

<strong>di</strong>stribuzione dei budget ai vicini. L’idea è quella <strong>di</strong> far si che i no<strong>di</strong> possano<br />

tenere in considerazione le caratteristiche dei propri vicini al fine <strong>di</strong> stabilire<br />

politiche per la <strong>di</strong>stribuzione del budgets.<br />

70


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

In [49] viene proposto un algoritmo intelligente per lo sviluppo <strong>di</strong> reti <strong>di</strong><br />

sensori wireless organizzate in cluster ed energeticamente efficienti, nel<br />

quale ogni nodo sensore decide se effettuare l’operazione <strong>di</strong> “join” a un<br />

cluster o se restare in uno stato <strong>di</strong> funzionamento peer to peer basando la sua<br />

scelta sulla densità dei sensori nell’area e sul suo livello energetico.<br />

Il lavoro proposto da Guo [50], invece, pone l’attenzione sullo sviluppo <strong>di</strong><br />

un metodo <strong>di</strong> formazione <strong>di</strong> cluster efficiente dal punto <strong>di</strong> vista dei costi.<br />

Tuttavia il metodo agisce posizionando “sentinelle” (cluster head CH) al<br />

centro <strong>di</strong> ogni cluster e assume che la topologia della rete e del numero <strong>di</strong><br />

cluster presenti sia nota.<br />

Il protocollo <strong>di</strong>stribuito HEED proposto in [51] , assume <strong>di</strong> eleggere i<br />

cluster heads in base alla loro energia residua e non tenendo conto della<br />

<strong>di</strong>stribuzione dei no<strong>di</strong>. Infatti HEED presuppone che la <strong>di</strong>stribuzione dei<br />

no<strong>di</strong> sensori nella rete sia uniforme. Questo approccio però presenta<br />

l’evidente problema che si possa verificare una situazione nella quale tutti i<br />

cluster head sono localizzati in una regione specifica della rete considerata.<br />

Altri lavori come [52,53,54] si sono invece incentrati su k-hop clustering<br />

algorithm <strong>di</strong>sinteressandosi però <strong>di</strong> considerare la completa totalità dei<br />

vincoli riguardanti la formazione dei cluster, infatti in [52,53] si considera<br />

solo il vincolo relativo al numero <strong>di</strong> no<strong>di</strong> all’interno del cluster mentre in<br />

[54] ci si basa solo sul cluster-ra<strong>di</strong>us. Più in particolare in [53] si<br />

presuppone che un nodo possa essere incluso in un numero costante <strong>di</strong><br />

cluster e che l’intersezione <strong>di</strong> due cluster possa includere un piccolo numero<br />

<strong>di</strong> no<strong>di</strong>.<br />

Bejerano [55] basa invece la sud<strong>di</strong>visione in cluster della rete su un<br />

algoritmo <strong>di</strong> approssimazione polinomiale in modo da avere un numero<br />

minimo <strong>di</strong> cluster <strong>di</strong>sgiunti. Al fine <strong>di</strong> considerare il problema del clustering<br />

e al tempo stesso rispettare i vincoli <strong>di</strong> QOS, Bejerano propone <strong>di</strong><br />

sud<strong>di</strong>videre il problema in due parti. Il primo mira a ricercare il minimo<br />

71


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

numero <strong>di</strong> cluster <strong>di</strong>sgiunti che contengono tutti i no<strong>di</strong> della rete sempre nel<br />

rispetto <strong>di</strong> un estremo superiore al cluster ra<strong>di</strong>us. Il secondo invece propone<br />

<strong>di</strong> considerare uno spanning tree in ogni cluster e <strong>di</strong> prevedere che i cluster<br />

che violano il vincolo <strong>di</strong> carico max e <strong>di</strong> cluster size vengano ulteriormente<br />

sud<strong>di</strong>visi in sottocluster. Si assume in questa accezione che ogni nodo abbia<br />

un peso (rappresentante la sua richiesta <strong>di</strong> banda) e che il totale <strong>di</strong> pesi <strong>di</strong><br />

tutti i cluster sia limitato. Infine viene introdotto un meccanismo per<br />

massimizzare il throughput <strong>di</strong> ogni cluster senza violare i requisiti <strong>di</strong> QOS.<br />

Infine Aoun e Boutaba [56], analizzano il problema del clustering sottoposto<br />

a limiti superiori per quanto riguarda la latenza e il consumo <strong>di</strong> energia dei<br />

no<strong>di</strong> interme<strong>di</strong>. Il lavoro complementa i lavori precedenti <strong>di</strong> Bejerano e<br />

Gupta in quanto tiene in conto anche del problema della formazione dei<br />

cluster (nel rispetto <strong>di</strong> un limite superiore sul cluster-ra<strong>di</strong>us, sulla<br />

<strong>di</strong>mensione del cluster e sul traffico trasmesso) e della scelta dei vari<br />

cluster-head. In particolare ogni cluster sarà dotato <strong>di</strong> un nodo che fingerà<br />

da gateway verso il nodo base e servirà quin<strong>di</strong> i no<strong>di</strong> presenti all’interno del<br />

cluster. Il lavoro prevede che ogni nodo sia associato ad un gateway e che<br />

possa sceglierne un altro in caso <strong>di</strong> “path failure”.<br />

3.6 APPROCCIO PROPOSTO PER IL CLUSTERING<br />

Dai precedenti paragrafi è emerso come il clustering risulta un’ottima<br />

soluzione per implementazione <strong>di</strong> strategie <strong>di</strong> fault-tolerance e anche per la<br />

gestione del problema della copertura <strong>di</strong> zone monitorate. Dal paragrafo 3.5<br />

si è potuto constatare anche come molti sono stati gli stu<strong>di</strong> atti<br />

all’in<strong>di</strong>viduazione <strong>di</strong> protocolli energeticamente efficienti per il clustering.<br />

In questo lavoro <strong>di</strong> <strong>tesi</strong> l’esigenza <strong>di</strong> aumentare quanto più possibile la vita<br />

<strong>di</strong> una rete è particolarmente sentita e per questo si è pensato <strong>di</strong> sfruttare il<br />

protocollo <strong>di</strong> clustering unitamente al para<strong>di</strong>gma <strong>di</strong> leader-election<br />

perio<strong>di</strong>co all’interno <strong>di</strong> ogni cluster. Questo approccio sembra avvicinarsi<br />

72


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

molto al protocollo PEGASIS proposto da Lindsey et al. [44] , ma presenta<br />

una interpretazione del tutto <strong>di</strong>versa del concetto <strong>di</strong> cluster-head. Per<br />

chiarezza consideriamo una WSN dotata <strong>di</strong> un nodo sink e <strong>di</strong> un cluster A e<br />

un cluster B, dove con X0…Xn-1 in<strong>di</strong>chiamo i mote appartenenti al cluster A<br />

e con Y0…Ym-1 i mote appartenenti al cluster B. Supponiamo che i no<strong>di</strong> X0<br />

e Y0 siano rispettivamente i cluster-head. Secondo Lindsey i no<strong>di</strong> X0 e Y0<br />

saranno rispettivamente quelli che dovranno incaricarsi dell’inoltro delle<br />

misurazioni effettuate dagli altri mote all’interno del cluster (cioè dei no<strong>di</strong><br />

X1..Xn-1 e Y1…Yn-1 rispettivamente), in altri termini fungono da interme<strong>di</strong>ari<br />

tra i sensori appartenenti al cluster A e cluster B e il nodo sink. In questa<br />

accezione la scelta <strong>di</strong> avere una procedura <strong>di</strong> leader-election perio<strong>di</strong>ca è<br />

nell’ottica <strong>di</strong> scegliere <strong>di</strong>namicamente il nodo dotato <strong>di</strong> uno “stato <strong>di</strong> salute”<br />

migliore e in grado <strong>di</strong> comunicare con il nodo sink nel modo<br />

energeticamente più efficiente.<br />

In questo lavoro <strong>di</strong> <strong>tesi</strong> questo concetto viene ulteriormente estremizzato<br />

considerando il cluster-head come l’unico nodo delegato alla misurazione<br />

durante un ciclo <strong>di</strong> monitoraggio. In questo caso quin<strong>di</strong> i no<strong>di</strong> X1..Xn-1 e<br />

Y1..Yn-1 non saranno soggetti al carico computazionale dovuto alla<br />

procedura <strong>di</strong> misurazione e avranno solo un ruolo passivo all’interno della<br />

rete. Più in particolare si possono prevedere due scenari: un primo in cui i<br />

suddetti no<strong>di</strong> svolgeranno le usuali azioni atte al forwar<strong>di</strong>ng dei pacchetti<br />

provenienti dagli altri no<strong>di</strong> e all’aggiornamento delle tabelle <strong>di</strong> routing per il<br />

funzionamento del protocollo multihop., e un secondo in cui i no<strong>di</strong> sono<br />

completamente spenti e saranno previste procedure <strong>di</strong> risveglio solo per<br />

partecipare alla procedura <strong>di</strong> elezione <strong>di</strong> un nuovo leader. Riguardo la<br />

procedura <strong>di</strong> leader-election, risulta chiaro, in questo caso, che è intesa<br />

maggiormente nell’ottica <strong>di</strong> load-balancing e potrà essere sviluppata in<br />

qualsiasi modo e quin<strong>di</strong> sia seguendo un para<strong>di</strong>gma che mira a eguagliare i<br />

tempi <strong>di</strong> carico dei vari mote, sia seguendo un para<strong>di</strong>gma che mira a rendere<br />

73


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

il consumo energetico dei mote all’interno dello stesso cluster quanto più<br />

uniforme possibile.<br />

3.6.1 Procedura <strong>di</strong> elezione del leader<br />

Riguardo la procedura <strong>di</strong> leader-election la rete è stata addestrata seguendo<br />

sostanzialmente due linee guida:<br />

1. chi effettua l’elezione;<br />

2. intervallo temporale in cui un nodo è cluster head<br />

Dalla combinazione delle due possono essere ricavati quattro scenari<br />

<strong>di</strong>versi, in particolare una prima soluzione ha previsto <strong>di</strong> delegare la<br />

procedura <strong>di</strong> elezione ai no<strong>di</strong> del cluster prevedendo un rate perio<strong>di</strong>co <strong>di</strong><br />

attivazione della procedura per l’elezione <strong>di</strong> un nuovo leader. Una seconda,<br />

invece, ha previsto un algoritmo centralizzato dove è il nodo sink a decidere<br />

il futuro leader <strong>di</strong> un cluster e prevedendo una nuova elezione solo nel<br />

momento in cui un nodo leader ha esaurito le proprie riserve energetiche.<br />

Riguardo la prima soluzione l’algoritmo <strong>di</strong> elezione <strong>di</strong>stribuito scelto<br />

all’interno del cluster è stato una sorta <strong>di</strong> election ring opportunamente<br />

mo<strong>di</strong>ficato per adattarsi al meglio alle caratteristiche delle reti <strong>di</strong> sensori<br />

senza cavo. Ovvero si prevede che ogni cluster sia organizzato in un anello<br />

logico dove ogni nodo sensore <strong>di</strong>venta cluster-head nel caso in cui abbia un<br />

token che gli può essere stato assegnato dall’inizio o ceduto da un altro nodo<br />

sensore. L’algoritmo è stato preferito rispetto all’algoritmo <strong>di</strong> Garcia Molina<br />

(algoritmo del prepotente o del bully), soprattutto per il basso carico<br />

computazionale della procedura <strong>di</strong> elezione. Volendo essere più precisi in<br />

questo caso la procedura <strong>di</strong> elezione è ridotta al minimo ma ciò ben si sposa<br />

con l’obiettivo <strong>di</strong> evitare quanto più è possibile sprechi <strong>di</strong> energia e<br />

<strong>di</strong>stribuire quanto più è possibile il carico tra i no<strong>di</strong> sensori. La gestione <strong>di</strong><br />

no<strong>di</strong> che esauriscono le proprie riserve energetiche e <strong>di</strong> fallimenti nelle<br />

74


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

comunicazioni possono essere gestite in maniera efficiente tramite varie<br />

politiche. La situazione che potrebbe verificarsi è quella in cui il nodo<br />

can<strong>di</strong>dato a <strong>di</strong>ventare il prossimo cluster-head sia non raggiungibile o a<br />

causa <strong>di</strong> una degradazione del collegamento o a causa del suo esaurimento<br />

energetico. In questi due casi il nodo che attualmente riveste il ruolo <strong>di</strong><br />

leader può avere sia un approccio ottimistico e quin<strong>di</strong> rimanere ancora<br />

leader per un altro ciclo <strong>di</strong> misurazione (tentando poi <strong>di</strong> ricontattarlo nella<br />

successiva fase <strong>di</strong> elezione) o tentare <strong>di</strong> contattare il prossimo nodo<br />

dell’anello logico, ancora attivo. Riguardo la scelta del nuovo cluster-head<br />

ovvero del sensore a cui cedere il token si possono immaginare algoritmi<br />

che scelgano in base allo stato <strong>di</strong> salute generale dei vari no<strong>di</strong>, rifacendosi in<br />

generale a PEGASIS o HEED, però anche se ciò tiene maggiormente in<br />

conto lo stato <strong>di</strong> “salute” generale del cluster, dall’altro si ha un notevole<br />

incremento dei messaggi che i vari no<strong>di</strong> sensori devono scambiarsi al fine <strong>di</strong><br />

poter prendere una decisione.<br />

La seconda soluzione prevede invece che sia il nodo sink a <strong>di</strong>stribuire i<br />

token. In questo caso si presuppone che il nodo delegato al ruolo <strong>di</strong> leader<br />

resti lo stesso fino al suo esaurimento energetico, dopo<strong>di</strong>chè sarà sempre il<br />

nodo sink ad eleggerne un altro.<br />

3.7 ALGORITMI DI TRASPORTO AFFIDABILE<br />

Fino ad ora è si sono presi in considerazione aspetti quali il clustering e<br />

l’elezione al fine <strong>di</strong> aumentare la vita me<strong>di</strong>a della rete però non è stato<br />

ancora trattato il problema <strong>di</strong> avere un protocollo <strong>di</strong> trasporto che sia<br />

affidabile e che quin<strong>di</strong> si incarichi del recapito affidabile delle misurazioni<br />

presso il nodo sink.<br />

Il problema <strong>di</strong> avere una trasmissione affidabile tra no<strong>di</strong> sensori remoti<br />

anche in presenza <strong>di</strong> più passi <strong>di</strong> comunicazione (multihop), <strong>di</strong> errori sui<br />

canali, <strong>di</strong> collisioni e <strong>di</strong> congestione ha le seguenti <strong>di</strong>mensioni:<br />

75


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

1. trasmissione <strong>di</strong> : pacchetti singoli vs blocchi <strong>di</strong> pacchetti vs stream<br />

<strong>di</strong> pacchetti in quanto il recapito affidabile <strong>di</strong> singoli pacchetti può<br />

essere importante ad esempio per dati aggregati, quello <strong>di</strong> blocchi<br />

adatto per applicazioni che usano meccanismi <strong>di</strong> <strong>di</strong>sseminazione <strong>di</strong><br />

query nella rete, mentre quello <strong>di</strong> stream adatto per applicazioni col<br />

compito <strong>di</strong> consegna perio<strong>di</strong>che <strong>di</strong> gruppi <strong>di</strong> misurazioni<br />

2. recapito garantito vs recapito stocastico in quanto per alcune<br />

applicazioni può essere necessario un alto livello <strong>di</strong> affidabilità,<br />

come le query <strong>di</strong>stribuite, ect mentre altre possono anche tollerare<br />

per<strong>di</strong>te purchè contenute in un certo range (ad esempio quando<br />

molti sensori provvedono ad inviare misurazioni correlate tra <strong>di</strong><br />

loro);<br />

3. dai no<strong>di</strong> sensori al sink vs dal nodo sink ai sensori e in questo<br />

caso si parla <strong>di</strong> “forward path” quando il flusso è quello che parte<br />

dai no<strong>di</strong> e arriva al Sink e <strong>di</strong> “reverse path” quando il flusso<br />

interessa i dati inviati dal sink verso i no<strong>di</strong> della rete.<br />

Il “Reliable Multi-Segment Transport” (RMST) proposto da Heidemann et<br />

al. [61] e il “Pump Slowly, Fetch Quickly” (PSFQ) <strong>di</strong> Wan et al. [62]<br />

realizzano un protocollo <strong>di</strong> trasporto per il recapito al sink <strong>di</strong> blocchi <strong>di</strong><br />

pacchetti. L’RMST fu progettato per essere utilizzato unitamente al <strong>di</strong>rect<br />

<strong>di</strong>ffusion [63] e prevede uno schema <strong>di</strong> recapito dei pacchetti <strong>di</strong> tipo “endto-end”.<br />

Il protocollo è basato su l’utilizzo selettivo <strong>di</strong> messaggi NACK e<br />

può essere usato secondo due schemi: “caching mode” e “non caching<br />

mode”. Secondo il primo schema un numero <strong>di</strong> no<strong>di</strong> lungo un percorso, ad<br />

esempio quello utilizzato dal <strong>di</strong>rect <strong>di</strong>ffusion per recapitare i dati al nodo<br />

sink, sono denominati come “RMST node”. Ogni RSMT node provvede a<br />

memorizzare in cache i frammenti <strong>di</strong> dati che compongono il flusso <strong>di</strong><br />

comunicazione, e a mantenere un timer associato ad ogni flusso <strong>di</strong><br />

comunicazione. Quando un frammento non è ricevuto prima che il timer sia<br />

76


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 3.4: Architettura protocollo RMST<br />

scaduto viene inviato un NACK sul percorso e il primo RMST node che ha<br />

l’informazione richiesta provvede a ritrasmetterla. Il sink in questo caso<br />

agisce come ultimo RMST node e risulta essere l’unico se si utilizza la<br />

modalità non caching. Gli svantaggi <strong>di</strong> questo tipo <strong>di</strong> protocollo sono<br />

principalmente legati: 1) al meccanismo <strong>di</strong> caching che richiede un<br />

significativo overhead in termini <strong>di</strong> potenza <strong>di</strong>ssipata per le operazioni <strong>di</strong><br />

mantenimento e 2) al problema <strong>di</strong> essere legati al <strong>di</strong>rect <strong>di</strong>ffusion.<br />

Il protocollo PSFQ proposto da Wan et al.[62] è molto simile al RMST solo<br />

che opera sul “reverse path” ovvero da sink a no<strong>di</strong> sensore e comprende tre<br />

funzioni:<br />

1. trasmissione dei messaggi velocemente (operazione <strong>di</strong> pump)<br />

2. recupero veloce da errori <strong>di</strong> trasmissione (operazione <strong>di</strong> fetch)<br />

3. monitoraggio dello stato selettivo (operazione <strong>di</strong> report).<br />

Ogni nodo interme<strong>di</strong>o mantiene i dati in una cache; quando viene ricevuto<br />

un pacchetto il nodo controlla il contenuto confrontandolo con quelli<br />

contenuti in cache e vengono scartati i duplicati. Se il pacchetto ricevuto<br />

non era contenuto in cache allora significa che è nuovo, <strong>di</strong> conseguenza<br />

viene decrementato il campo TTL e viene inoltrato ai vicini nel caso in cui il<br />

TTL non sia uguale a zero e non vi siano salti nei numeri <strong>di</strong> sequenza dei<br />

pacchetti. Nel caso in cui è rilevato un salto nei numeri <strong>di</strong> sequenza allora il<br />

77


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

nodo effettua una operazione <strong>di</strong> fetch richiedendo una ritrasmissione ai no<strong>di</strong><br />

vicini. Anche questo protocollo risulta molto oneroso in termini <strong>di</strong> potenza<br />

<strong>di</strong>ssipata e inoltre presenta anche un grosso inconveniente, in quanto la<br />

reliability hop by hop non garantisce la reliability end-to-end.<br />

Lo schema sviluppato nel protocollo GARUDA [64] molto simile al PSFQ è<br />

mirato al trasporto affidabile <strong>di</strong> blocchi <strong>di</strong> dati dal nodo sink a tutti gli altri<br />

sensori o a una parte significativa della rete. Questo protocollo usa uno<br />

schema basato su messaggi <strong>di</strong> NACK e fa molta attenzione che il primo<br />

pacchetto <strong>di</strong> un blocco sia recapitato in modo affidabile a tutti i sensori. In<br />

questo modo viene risolto il problema <strong>degli</strong> schemi basati sui messaggi<br />

NACK ovvero i destinatari devono ricevere almeno un pacchetto del blocco<br />

affinché possano accorgersi delle per<strong>di</strong>te <strong>di</strong> ulteriori pacchetti.<br />

I protocolli fino ad ora descritti sono stati concepiti per assicurare una<br />

affidabilità <strong>di</strong> tipo end to end a livello <strong>di</strong> pacchetti. Akyil<strong>di</strong>z, invece propone<br />

ESRT (Event to Sink Reliable Transport) un protocollo per gestire la<br />

reliability sulla forward path <strong>di</strong> tipo end to end orientata invece a stream <strong>di</strong><br />

pacchetti e in particolare quin<strong>di</strong> agli eventi che vengono monitorati in una<br />

rete <strong>di</strong> sensori senza cavo. La conoscenza su un fenomeno viene calcolata<br />

basandosi sul numero <strong>di</strong> pacchetti ricevuti; definendo con r il numero <strong>di</strong><br />

pacchetti ricevuti in un intervallo <strong>di</strong> decisione e con R il numero <strong>di</strong> pacchetti<br />

richiesti per poter definire che l’osservazione dell’evento è “reliable” allora<br />

possiamo <strong>di</strong>re che se r>R allora la rilevazione dell’evento può essere<br />

definita come affidabile dal punto <strong>di</strong> vista della trasmissione delle<br />

misurazioni. Nel caso in cui r


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

RMST GARUDA PSFQ ESRT<br />

Direzione Sensor to sink Sink to sensor Sink to sensor Sensor to sink<br />

Orientamento Pacchetto blocco pacchetto stream<br />

Stile Hop-by-hop Hop-by-hop Hop-by-hop End-to-end<br />

Uso <strong>di</strong> NACK Si Si Si No<br />

Risparmio<br />

energetico<br />

- - - Si<br />

Recupero<br />

per<strong>di</strong>te<br />

Si Si Si -<br />

Uso <strong>di</strong> cache Si Si Si -<br />

Controllo della<br />

congestione<br />

no no no si<br />

Tabella 3-1:Schema riassuntivo dei protocolli <strong>di</strong> trasporto affidabili<br />

nuova frequenza con cui i no<strong>di</strong> sensori dovranno recapitare le loro<br />

informazioni sia influenzata dallo stato generale della rete. Maggiori<br />

informazioni su un esempio <strong>di</strong> protocollo appositamente progettato per il<br />

controllo della congestione sul “forward path” si possono reperire in [65]<br />

dove è presentato CODA (Congestion Detection and Avoidance).<br />

Uno schema riassuntivo dei protocolli analizzati viene riportato nella tabella<br />

3-1.<br />

3.8 APPROCCIO PROPOSTO PER IL TRASPORTO<br />

AFFIDABILE DELLE MISURAZIONI<br />

Anche se sono stati proposti molti protocolli per raggiungere affidabilità<br />

nella trasmissione delle informazioni in reti <strong>di</strong> sensori senza cavo, nessuno<br />

<strong>di</strong> essi è stato standar<strong>di</strong>zzato. Del resto anche questi protocolli sono molto<br />

suscettibili all’applicazione nella quale questi vengono utilizzati e <strong>di</strong><br />

conseguenza risulta <strong>di</strong>fficile effettuare una scelta che sia definitiva per ogni<br />

ambito applicativo. Ritornando ai requisiti espressi nel paragrafo 3.1,<br />

bisogna naturalmente tener conto nella scelta della necessità <strong>di</strong> avere un<br />

79


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

protocollo <strong>di</strong> consegna dei dati energeticamente efficiente. Dalla tabella 3.1<br />

risulta chiaro che l’unico protocollo che tiene conto del risparmio energetico<br />

è il protocollo ESRT (per stream <strong>di</strong> pacchetti) il quale si basa sull’idea <strong>di</strong><br />

poter cambiare la frequenza con cui i no<strong>di</strong> sensori recapitano le<br />

informazioni al nodo sink. Tenendo conto che il fine del lavoro è la<br />

valutazione <strong>di</strong> protocolli energeticamente efficienti e riuscire ad ottenere<br />

metriche per la valutazione complessiva della dependability del sistema, si è<br />

deciso <strong>di</strong> ricorrere a un semplice protocollo <strong>di</strong> tipo end-to-end in cui<br />

venissero utilizzati un numero minimo <strong>di</strong> trasmissioni <strong>di</strong> pacchetti al fine <strong>di</strong><br />

limitare al minimo il consumo energetico dei mote.<br />

L’idea <strong>di</strong> seguire un tale approccio è del resto giustificata in quanto non è<br />

detto che in ogni trasmissione vi siano per<strong>di</strong>te quin<strong>di</strong> può risultare utile<br />

dotare il nodo sink della intelligenza sufficiente per effettuare una<br />

operazione <strong>di</strong> monitoraggio dello stato della rete basandosi unicamente sui<br />

pacchetti ricevuti in instanti precedenti dai no<strong>di</strong> sensori. Sarà compito<br />

quin<strong>di</strong> del nodo sink provvedere all’inoltro delle richieste <strong>di</strong> ritrasmissione<br />

<strong>di</strong>rette ai sensori dai quali non ha ricevuto nessuna risposta in quanto sarà<br />

esso stesso ad avere una chiara situazione della copertura raggiunta in ogni<br />

ciclo <strong>di</strong> misurazione.<br />

Secondo questo para<strong>di</strong>gma i no<strong>di</strong> sensori sono semplicemente ridotti ad<br />

entità passive che effettuano cicli <strong>di</strong> misurazione su richiesta e provvedono<br />

all’inoltro delle misurazioni al nodo sink. Rispetto quin<strong>di</strong> ai protocolli<br />

accennati nel precedente paragrafo non dovranno gestire nessuna cache<br />

interna e non dovranno monitorare lo stato della rete. L’unica informazione<br />

conservata dai sensori sarà la stima dell’ultima misurazione effettuata, al<br />

fine <strong>di</strong> poterla rispe<strong>di</strong>re nel caso in cui arrivi una richiesta <strong>di</strong> ritrasmissione<br />

da parte del nodo sink.<br />

Per essere più chiari sulla <strong>di</strong>namica dell’algoritmo consideriamo lo scenario<br />

<strong>di</strong> figura 3.5. La rete risulta composta da 8 no<strong>di</strong> sensori atti al monitoraggio<br />

80


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 3.5: Rete composta da otto <strong>di</strong>spositivi sensori<br />

<strong>di</strong> una particolare zona. Tutti i no<strong>di</strong> sensori effettueranno la misurazione su<br />

richiesta del nodo sink e provvederanno all’invio della misura. Il sink<br />

quin<strong>di</strong>, in assenza <strong>di</strong> collisioni, errori <strong>di</strong> trasmissioni, ect, riceverà un totale<br />

<strong>di</strong> 8 misurazioni con copertura della rete al 100%. A questo punto<br />

consideriamo le situazioni anomale che possono occorrere:<br />

1. Trasmissione fallita a causa <strong>di</strong> collisioni, pacchetti corrotti, ect.;<br />

2. Esaurimento energetico del <strong>di</strong>spositivo che causa una non<br />

trasmissione della misurazione.<br />

Riguardo il primo problema il protocollo proposto prevede <strong>di</strong> attivare una<br />

procedura <strong>di</strong> recupero <strong>di</strong> eventuali per<strong>di</strong>te <strong>di</strong> informazioni effettuando un<br />

massimo numero <strong>di</strong> tentativi (NRO_MAX_REQUEST_COVERAGE) per cercare <strong>di</strong><br />

raggiungere la copertura della rete dopo i quali la copertura completa<br />

fallisce.<br />

Il secondo problema, invece non viene risolto e risulta essere gravoso nei<br />

confronti delle operazioni <strong>di</strong> monitoraggio soprattutto se si è previsto<br />

l’utilizzo <strong>di</strong> un unico sensore per la rilevazione <strong>di</strong> una grandezza <strong>di</strong><br />

interesse.<br />

81


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 3.6: Rete organizzata in 3 cluster senza procedura <strong>di</strong> elezione <strong>di</strong> cluster-head<br />

3.9 CLUSTERING E LEADER ELECTION<br />

In merito all’esaurimento energetico <strong>di</strong> un <strong>di</strong>spositivo che causa una non<br />

trasmissione delle misurazioni, un approccio basato sulla organizzazione in<br />

cluster della rete può venire in aiuto.<br />

Consideriamo lo scenario <strong>di</strong> figura 3.6 in cui la rete risulta organizzata in 3<br />

cluster: A, B e C rispettivamente <strong>di</strong> 3,3 e 2 no<strong>di</strong> sensori dove non è prevista<br />

nessuna procedura <strong>di</strong> leader election (§ 3.6.1), cioè tutti i no<strong>di</strong> sensori<br />

effettueranno la misurazione su richiesta del nodo sink e provvederanno<br />

all’invio. Il sink quin<strong>di</strong>, in assenza <strong>di</strong> collisioni, errori <strong>di</strong> trasmissioni, ect,<br />

riceverà un totale <strong>di</strong> 8 misurazioni afferenti ai tre cluster con copertura della<br />

rete al 100%.<br />

Poiché la clusterizzazione (§ 3.4) prevede <strong>di</strong> sud<strong>di</strong>videre l’area da<br />

monitorare in zone <strong>di</strong> interesse, si può affermare che nel caso <strong>di</strong> ricezione<br />

<strong>di</strong> almeno n=1 misurazioni per cluster la copertura globale della rete è<br />

raggiunta e quin<strong>di</strong> non sorgono problemi né per il punto 1 né per il punto 2<br />

menzionati nel precedente paragrafo. Si può concludere affermando che si<br />

hanno a <strong>di</strong>sposizione un margine <strong>di</strong> 2 non recapiti <strong>di</strong> misurazioni per i<br />

cluster A e B e <strong>di</strong> uno per il cluster C al fine <strong>di</strong> ottenere una completa<br />

copertura della rete senza “overhead” aggiuntivi dovuti a trasmissioni <strong>di</strong><br />

82


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

pacchetti nella rete per avviare l’operazione <strong>di</strong> richiesta <strong>di</strong> ritrasmissioni.<br />

Scendendo più in dettaglio sulla <strong>di</strong>namica dell’approccio viene previsto un<br />

massimo numero <strong>di</strong> tentativi (NRO_MAX_REQUEST_COVERAGE) a <strong>di</strong>sposizione<br />

del nodo sink per cercare <strong>di</strong> raggiungere la copertura della rete dopo i quali<br />

la copertura completa fallisce. Questo semplice scenario mette in luce ancor<br />

<strong>di</strong> più come il concetto <strong>di</strong> “clusterizzazione” risulta essere alla base per<br />

l’implemetazione <strong>di</strong> strategie <strong>di</strong> tolleranza <strong>di</strong> guasti sia transienti che<br />

permanenti e come ci venga in aiuto soprattutto per “rilassare” il requisito <strong>di</strong><br />

avere un trasporto affidabile. Infatti l’utilizzo <strong>di</strong> un protocollo come l’ESRT<br />

o simili avrebbe imme<strong>di</strong>atamente attivato meccanismi <strong>di</strong> ritrasmissione con<br />

il coinvolgimento <strong>di</strong> tutti i no<strong>di</strong> che componevano il “transmission path”.<br />

Ciò avrebbe portato ad un overhead in termini <strong>di</strong> banda e energia spesa<br />

anche se la copertura della rete era stata comunque raggiunta.<br />

Detto ciò analizziamo ora il caso <strong>di</strong> figura 3.7 ovvero lo scenario che vede<br />

una rete organizzata in cluster in cui in ogni cluster viene applicata la<br />

procedura <strong>di</strong> leader election (§ 3.6.1). La situazione in questo caso è un po’<br />

più complessa in quanto saranno interessati da misurazioni solo i relativi<br />

cluster-head e non più tutti i <strong>di</strong>spositivi che fanno parte del cluster e quin<strong>di</strong><br />

<strong>di</strong>minuisce il margine <strong>di</strong> errori <strong>di</strong> trasmissioni che si possono tollerare prima<br />

Figura 3.7: Organizzazione in cluster della rete con cluster-head<br />

83


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

<strong>di</strong> dover ricorrere a ritrasmissioni ( e quin<strong>di</strong> ad un overhead aggiuntivo).<br />

Questo ultimo scenario risulta essere un ottimo trade-off tra la necessità <strong>di</strong><br />

ridurre al minimo le possibilità <strong>di</strong> congestione della rete e implementare<br />

politiche mirate al risparmio energetico dei no<strong>di</strong>.<br />

84


Capitolo 4<br />

Valutazione comparativa <strong>degli</strong> algoritmi<br />

4.1 OBIETTIVI<br />

L’obiettivo <strong>di</strong> questo capitolo è effettuare una analisi comparativa dei<br />

protocolli proposti nel precedente capitolo per il problema del trasporto su<br />

reti <strong>di</strong> sensori senza cavo. Il tool <strong>di</strong> sviluppo utilizzato per i vari test è stato<br />

Tossim Tinyviz.<br />

Le caratteristiche che si prenderanno in considerazione durante le<br />

simulazioni che verranno testate saranno principalmente:<br />

1. Il numero <strong>di</strong> no<strong>di</strong> che costituiscono la rete (tipicamente da 9 a 18<br />

no<strong>di</strong> sensori);<br />

2. il protocollo <strong>di</strong> trasporto utilizzato per il recapito delle misurazioni<br />

nel percorso dai sensori al nodo sink (forward path);<br />

3. la topologia della rete (organizzata in cluster o non organizzata in<br />

cluster)<br />

e si andrà a verificare come il variare delle caratteristiche impatti su:<br />

o copertura raggiunta;<br />

o consumo energetico dei no<strong>di</strong>.<br />

Obiettivo interessante è riuscire a comprendere per i vari scenari che<br />

verranno testati come la copertura della rete è influenzata dal numero <strong>di</strong><br />

85


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

<strong>di</strong>spositivi utilizzati al fine <strong>di</strong> trovare un “trade-off” tra costi <strong>di</strong> realizzazione<br />

della rete e percentuale <strong>di</strong> copertura che si vuole raggiungere. A tutto ciò è<br />

poi aggiunto l’esigenza <strong>di</strong> ottenere soluzioni che possano aumentare il più<br />

possibile la durata me<strong>di</strong>a della vita <strong>di</strong> una rete <strong>di</strong> sensori senza cavo ovvero<br />

soluzioni che mirino ad un consumo minimo delle risorse energetiche dei<br />

no<strong>di</strong>.<br />

Per caratterizzare al meglio le misure ottenute dalla simulazione si è deciso<br />

<strong>di</strong> analizzare i parametri suddetti in due possibili scenari:<br />

1) con l’utilizzo della plugin Tinysan [70] che offre sia la possibilità <strong>di</strong><br />

simulare la qualità dei link (simulando aleatorità nella probabilità <strong>di</strong><br />

consegna dei pacchetti) che la possibilità <strong>di</strong> avere una stima del<br />

consumo energetico dei no<strong>di</strong>;<br />

2) senza l’utilizzo della plugin Tinysan.<br />

Il secondo scenario naturalmente presenta delle limitazioni però risulta<br />

essere utile soprattutto per capire la scalabilità della rete, all’aumentare del<br />

numero si sensori utilizzati e in particolar modo quanto l’aumento dei<br />

sensori impatti sulla copertura raggiunta. Infatti con l’uso della plugin<br />

Tinysan si ottiene una aleatorietà nelle probabilità <strong>di</strong> consegna dei pacchetti<br />

(a causa del cambiamento delle probabilità sui link <strong>di</strong> comunicazione) che<br />

non permette <strong>di</strong> avere uno scenario unico dove poter effettuare i vari test in<br />

modo univoco. Quin<strong>di</strong> con la combinazione dei due approcci possono<br />

essere esaminati sia il problema delle collisioni dovute a trasmissioni<br />

contemporanee dei no<strong>di</strong>, sia la per<strong>di</strong>ta dei pacchetti dovuta alla qualità dei<br />

link tra i sensori che costituiscono la rete.<br />

4.2 DATA GATHERING BASE<br />

Lo scenario comune che è la base delle varie simulazioni effettuate prevede<br />

il monitoraggio <strong>di</strong> un’area attraverso il tool <strong>di</strong> simulazione per reti <strong>di</strong> sensori<br />

86


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

NOME PROGETTO Simple_Data_Gathering<br />

OBIETTIVI Il nodo con ID 0 è incaricato della raccolta<br />

dati da tutti gli altri sensori nella rete.<br />

PROTOCOLLO DI TRASPORTO<br />

USATO<br />

Best-effort<br />

TOPOLOGIA DELLA RETE Non previsto uso <strong>di</strong> cluster<br />

Tabella 4-1: Caratteristiche della simulazione n°1<br />

senza cavo Tossim. Si suppone che le richieste <strong>di</strong> misurazione vengano<br />

effettuate dal nodo base (sink) con una certa frequenza perio<strong>di</strong>ca che può<br />

essere sincrona con il clock locale del nodo sink o eventualmente asincrona<br />

nel caso in cui si provveda all’implementazione <strong>di</strong> una interfaccia che<br />

consenta all’operatore umano <strong>di</strong> inoltrare a proprio piacimento richieste <strong>di</strong><br />

misurazioni. Le caratteristiche principali della simulazione sono riportate in<br />

tabella 4.1. Supponiamo, che i sensori siano <strong>di</strong>slocati nell’area <strong>di</strong> cui si<br />

vuole effettuare una analisi, in modo tale da avere un solo sensore per ogni<br />

zona dalla quale si esige una misura. La possibile architettura della rete è<br />

Figura 4.1: Architettura della rete in Tinyviz<br />

87


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

mostrata in figura 4.1 dove si in<strong>di</strong>viduano 9 no<strong>di</strong> sensori, <strong>di</strong> cui quello con<br />

id pari a 0 (nodo più a destra) è il nodo sink mentre gli altri sono i no<strong>di</strong><br />

addetti alle misurazioni. Le linee punto punto in grigio rappresentano i<br />

collegamenti che godono <strong>di</strong> una probabilità <strong>di</strong> per<strong>di</strong>ta dei pacchetti inferiore<br />

al 30%, mentre quelli in rosso collegamenti con probabilità compresa tra il<br />

30% e il 70%. Risulta chiaro, dalle caratteristiche esposte in tabella 4.1, che<br />

per avere una completa caratterizzazione dell’evento monitorato è<br />

necessario che ogni sensore recapiti la propria misurazione/i al nodo sink,<br />

quin<strong>di</strong> una per<strong>di</strong>ta <strong>di</strong> pacchetto dovuta alla congestione della rete o alla<br />

bassa qualità del link tra i no<strong>di</strong> causerà una situazione in cui il nodo sink<br />

non avrà a <strong>di</strong>sposizione tutte le informazioni necessarie al monitoraggio<br />

della zona interessata.<br />

Riguardo lo schema implementativo dell’applicazione questo risulta essere<br />

molto semplice e uno stralcio del file <strong>di</strong> configurazione è presentato in<br />

configuration Simple_Data_Gathering {}<br />

implementation {<br />

components Main, SurgeM, TimerC, LedsC, NoLeds, Photo, RandomLFSR,<br />

GenericCommPromiscuous as Comm, Bcast, MultiHopRouter as<br />

multihopM, QueuedSend, Sounder;<br />

....<br />

SurgeM.TimerControlCoverage -> TimerC.Timer[unique("Timer")];<br />

SurgeM.MeasureTimer -> TimerC.Timer[unique("Timer")];<br />

SurgeM.RouteControl -> multihopM;<br />

SurgeM.Send->multihopM.Send[AM_SURGEMSG];<br />

multihopM.ReceiveMsg[AM_SURGEMSG]->Comm.ReceiveMsg[AM_SURGEMSG];<br />

//Per mandare e ricevere messaggi <strong>di</strong> misurazione<br />

SurgeM.SendMeasureMsg -> Comm.SendMsg[AM_MEASUREMSG];<br />

SurgeM.ReceiveMeasureMsg -> Comm.ReceiveMsg[AM_MEASUREMSG];<br />

//usato dal sink per ricevere le misure<br />

SurgeM.ReceiveMeasure -> Comm.ReceiveMsg[AM_SURGEMSG];<br />

Figura 4.2: Stralcio del file <strong>di</strong> configurazione della prima simulazione<br />

88<br />

1<br />

3<br />

2


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

event TOS_MsgPtr ReceiveMeasure.receive(TOS_MsgPtr receivedMessage) {<br />

int i;<br />

if(TOS_LOCAL_ADDRESS==0 && receivedMessage->addr==0x7e)<br />

{<br />

SurgeMsg * payload;<br />

payload2 = (TOS_MHopMsg *)receivedMessage->data;<br />

payload = (SurgeMsg *)payload2->data;<br />

dbg(DBG_TEMP," Msr DAL NODO: %d \n",payload2->originaddr);<br />

for(i=0;irea<strong>di</strong>ng[i]);<br />

setCoverage();<br />

}<br />

return receivedMessage;<br />

}<br />

Figura 4.3: Evento ReceiveMeasure attivato sul nodo sink alla ricezione della<br />

misurazione<br />

figura 4.2 attraverso il quale si possono comprendere i componenti che<br />

costituiscono l’applicazione e come sono legati tra <strong>di</strong> loro. Di particolare<br />

interesse sono i due Timer (riquadro 1) utilizzati: MeasureTimer e<br />

TimerControlCoverage. Il primo timer temporizza le richieste <strong>di</strong><br />

misurazioni effettuate dal nodo sink, mentre il secondo viene sempre<br />

attivato dal nodo sink e serve per effettuare il controllo della copertura<br />

ottenuta sulla rete. Nel riquadro 2 sono invece evidenziati i collegamenti<br />

utili all’utilizzo del protocollo multihop, mentre il riquadro 3 mette in luce i<br />

collegamenti con i componenti che gestiscono la comunicazione tra i no<strong>di</strong>.<br />

In figura 4.3 viene invece mostrata l’implementazione dell’ evento<br />

ReceiveMeasure attivato dal nodo sink ad ogni ricezione <strong>di</strong> un messaggio <strong>di</strong><br />

misurazione dai no<strong>di</strong> sensori. Le operazioni svolte alla ricezione sono 2:<br />

o Estrazione della misurazione/i dal pacchetto dati ricevuto;<br />

o Settaggio della copertura raggiunta al fine <strong>di</strong> avere statistiche<br />

relative ai no<strong>di</strong> che hanno risposto alle richieste <strong>di</strong> monitoraggio<br />

(metodo setCoverage).<br />

Un primo test è stato condotto al fine <strong>di</strong> comprendere quanto il numero dei<br />

sensori utilizzati influisse sulla copertura raggiunta. Si è quin<strong>di</strong> seguito<br />

89


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 4.4: Andamento % della ricezione delle misurazioni<br />

al crescere del numero <strong>di</strong> no<strong>di</strong>.<br />

l’approccio 2 illustrato nel paragrafo 4.1 (ovvero si tralascia l’utilizzo della<br />

plugin TinySan); i risultati ottenuti hanno mostrato una copertura totale<br />

della zona monitorata nel 94% delle misurazioni usando un numero <strong>di</strong> no<strong>di</strong><br />

pari a 9. La percentuale <strong>di</strong> raggiungimento <strong>di</strong> una completa caratterizzazione<br />

del fenomeno va poi decrescendo linearmente all’aumentare dei no<strong>di</strong> sensori<br />

come illustrato in figura 4.4. Con questo test si comprende come<br />

all’aumentare del numero <strong>di</strong> no<strong>di</strong> aumenti la probabilità <strong>di</strong> collisione dei<br />

pacchetti dovuto a congestione della rete e quin<strong>di</strong> come sia più facile avere<br />

per<strong>di</strong>te <strong>di</strong> informazioni al nodo sink.<br />

Se consideriamo invece l’approccio 1 (§ 4.1) che prevede l’utilizzo della<br />

plugin Tinysan si può notare come la percentuale <strong>di</strong> corretta ricezione delle<br />

misurazioni presso il nodo sink, in ogni ciclo <strong>di</strong> misurazione, cominci a<br />

<strong>di</strong>ventare molto più bassa. Infatti secondo questa metodologia la possibilità<br />

che la misurazione venga trasmessa correttamente al nodo sink <strong>di</strong>pende non<br />

solo dalla possibile congestione della rete ma anche dalla probabilità<br />

intrinseca <strong>di</strong> trasmissione sul singolo link simulata appunto con l’utilizzo<br />

della plugin TinySan. Come si può osservare in figura 4.5, ad eccezione del<br />

caso con 12 sensori in cui la % <strong>di</strong> corretta ricezione aumenta rispetto al caso<br />

90


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 4.5: Andamento % della ricezione delle misurazioni<br />

con utilizzo della plugin TinySan.<br />

precedente, l’andamento segue prettamente una funzione lineare decrescente<br />

al crescere del numero <strong>di</strong> no<strong>di</strong> utilizzati all’interno della rete. È chiaro che i<br />

dati sono puramente statistici e <strong>di</strong>pendono molto dalla funzione che<br />

caratterizza la qualità trasmissiva del link attraverso cui avviene la<br />

comunicazione sul singolo canale e dalle rotte scelte dai sensori per inoltrare<br />

le misurazioni al nodo sink.<br />

4.3 DATA GATHERING AFFIDABILE<br />

Partendo dalla applicazione descritta nel paragrafo 4.2 viene ora<br />

implementato uno schema <strong>di</strong> comunicazione affidabile per il recapito delle<br />

misurazioni al nodo sink (in tabella 4.2 sono riportate le caratteristiche alla<br />

NOME PROGETTO Reliable_Data_Gathering<br />

OBIETTIVI Il sink è incaricato della raccolta dati da tutti<br />

gli altri sensori nella rete.<br />

PROTOCOLLO DI TRASPORTO<br />

USATO<br />

Affidabile end-to-end (max 2 ritrasmissioni)<br />

TOPOLOGIA DELLA RETE Non previsto uso <strong>di</strong> cluster<br />

Tabella 4-2: Caratteristiche della simulazione n°2<br />

91


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

base della seconda simulazione). Lo sviluppo della applicazione ha ricalcato<br />

l’approccio descritto nel paragrafo 9 e in figura 4.6 viene riportato uno<br />

stralcio della procedura seguita dal nodo sink per assicurarsi <strong>di</strong> ricevere le<br />

misurazioni dai no<strong>di</strong> sensori.<br />

Come si può intuire scatta un controllo del livello <strong>di</strong> copertura (riquadro 1)<br />

che mira ad in<strong>di</strong>viduare i no<strong>di</strong> che non sono stati in grado <strong>di</strong> recapitare le<br />

loro informazioni al nodo sink e nel caso in cui non si è ancora raggiunto il<br />

numero massimo <strong>di</strong> richieste possibili per ricercare una copertura completa<br />

della rete (riquadro 2) si provvede ad una nuova richiesta <strong>di</strong> misurazione. Il<br />

protocollo opera secondo uno schema <strong>di</strong> ritrasmissione end-to-end ma è<br />

attivato solo nel momento in cui il nodo sink si accorge <strong>di</strong> non avere a<br />

<strong>di</strong>sposizione misurazioni provenienti da determinati no<strong>di</strong> sensori; la<br />

event result_t TimerControlCoverage.fired() {<br />

…//<strong>di</strong>chiarazioni iniziali omissis<br />

//controllo livello <strong>di</strong> copertura<br />

for(i=1;iunavailable_mote[i]=FALSE;<br />

if(!measure_coverage[i]){ //compongo la nuova richiesta<br />

payload_cov->unavailable_mote[i]=TRUE; must_send=TRUE; }<br />

}<br />

//significa che ho trovato cluster non coperti dalla misurazione<br />

if(must_send && max_request_coveragevalue=SpecificMeasure; count_msg++;<br />

if(count_msg==0xFFFF) count_msg=1;<br />

payload_cov->count = count_msg;<br />

if(call SendMeasureMsg.send(TOS_BCAST_ADDR, sizeof(Measure_Msg),<br />

&message)!=SUCCESS)<br />

dbg(DBG_TEMP, "FALLITO\n"); }<br />

elseif(must_send&&max_request_coverage>=NRO_MAX_REQUEST_COVERAGE)<br />

{FailedCoverage++; max_request_coverage=0; }<br />

else if(!must_send)<br />

{max_request_coverage=0; }<br />

return SUCCESS;<br />

}<br />

Figura 4.6: Stralcio procedura seguita dal nodo sink per assicurarsi la ricezione<br />

delle misurazioni da parte dei no<strong>di</strong> sensori<br />

92<br />

1<br />

2<br />

3


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 4.7: Confronto percentuali copertura con uso<br />

protocollo affidabile e non affidabile.<br />

richiesta viene inoltrata in broadcast però è <strong>di</strong>retta ai soli no<strong>di</strong> che avevano<br />

fallito l’invio nel corrente ciclo <strong>di</strong> misurazione (<strong>di</strong>scriminati con un campo<br />

nel messaggio inviato). Il riquadro 3 invece mostra il caso in cui si<br />

raggiunge il numero massimo <strong>di</strong> richieste per sod<strong>di</strong>sfare la copertura e<br />

quin<strong>di</strong> si provvede a rinunciare al tentativo <strong>di</strong> raggiungere il nodo. Questo<br />

ultimo caso risulta importante in quanto può capitare che un determinato<br />

sensore si ritrovi ad essere isolato o abbia esaurito le proprie risorse<br />

energetiche, una tale situazione non deve quin<strong>di</strong> impe<strong>di</strong>re al nodo sink <strong>di</strong><br />

continuare con la raccolta <strong>di</strong> informazioni dagli altri no<strong>di</strong>.<br />

Concentrandoci sui risultati ottenuti (figura 4.7), un approccio <strong>di</strong> questo<br />

tipo, evidenzia un netto miglioramento sulla percentuale <strong>di</strong> copertura, anche<br />

portando in conto l’utilizzo della plugin Tinysan, infatti sia con una rete<br />

composta da 9 no<strong>di</strong> sensori che da 12 no<strong>di</strong> sensori si ottiene sempre, in ogni<br />

ciclo <strong>di</strong> misurazione, una copertura completa della zona monitorata. Questo<br />

risulta essere già un buon risultato e mette in evidenzia come le possibili<br />

per<strong>di</strong>te <strong>di</strong> pacchetto dovute o a collisioni o a errori sul canale trasmissivo<br />

93


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 4.8 : Andamento della vita me<strong>di</strong>a dei singoli sensori nel caso <strong>di</strong><br />

utilizzo <strong>di</strong> un protocollo <strong>di</strong> comunicazione affidabile<br />

confrontato con il caso <strong>di</strong> utilizzo <strong>di</strong> un protocollo <strong>di</strong> tipo<br />

best-effort<br />

sono ben recuperate con l’approccio proposto anche nel caso in cui si<br />

prevedono solo un NRO_MAX_REQUEST_COVERAGE (ovvero numero <strong>di</strong><br />

richieste <strong>di</strong> ritrasmissione) pari a 2.<br />

Passando ora a considerare il punto <strong>di</strong> vista energetico risulta chiaro che<br />

abbiamo un peggioramento e ciò è dovuto all’overhead in seguito alla<br />

ritrasmissione dei messaggi contenenti le misurazioni stesse. In figura 4.8<br />

viene mostrato l’andamento della vita me<strong>di</strong>a dei singoli sensori facenti parte<br />

della rete messi a confronto a seconda che sia previsto l’utilizzo <strong>di</strong> un<br />

protocollo <strong>di</strong> recapito delle misurazioni affidabile o meno. In figura 4.9 vi è<br />

Figura 4.9: Confronto consumo energetico dei singoli no<strong>di</strong><br />

94


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

un analogo confronto però basato sul consumo me<strong>di</strong>o <strong>di</strong> energia dei sensori<br />

espresso in mJ/sec. I risultati della simulazione (rete composta da 9 no<strong>di</strong>)<br />

hanno evidenziato un lieve peggioramento (0.0015 % caso peggiore)della<br />

vita me<strong>di</strong>a dei sensori nel caso in cui venga utilizzato un protocollo basato<br />

su ritrasmissioni end-to-end. Questo risultato è dovuto al fatto che per il<br />

recupero delle misurazioni non pervenute sono risultati necessari l’inoltro <strong>di</strong><br />

rispettivamente 30 nuove richieste <strong>di</strong> misurazioni da parte del nodo sink a<br />

cui sono corrisposte un totale <strong>di</strong> 45 nuove ritrasmissioni <strong>di</strong> pacchetti<br />

contenenti le informazioni monitorate. Il fatto <strong>di</strong> avere un numero maggiore<br />

<strong>di</strong> ritrasmissioni rispetto alle richieste effettuate è dovuto alla necessità <strong>di</strong><br />

più tentare più volte <strong>di</strong> raggiungere la copertura totale dell’area monitorata.<br />

4.4 DATA GATHERING CON CLUSTER<br />

Gli stu<strong>di</strong> esposti nel paragrafo 3.5 e il relativo approccio proposto nel<br />

paragrafo 3.6 hanno messo in evidenzia come il concetto <strong>di</strong> clustering <strong>di</strong> una<br />

rete <strong>di</strong> sensori possa favorire una migliore gestione delle risorse energetiche<br />

dei no<strong>di</strong>. risulta quin<strong>di</strong> interessante instrumentare una nuova simulazione le<br />

cui caratteristiche principali sono esplicitate in tabella 4.3. Consideriamo<br />

una rete <strong>di</strong> sensori organizzata in 3 cluster: A,B,C (figura 4.10), in cui ogni<br />

cluster elegge ogni ELECTION_TIMER_RATE un leader (cluster-head)<br />

che si fa carico <strong>di</strong> rispondere alle richieste <strong>di</strong> misurazioni effettuate dal nodo<br />

sink. Nel caso proposto i cluster heads iniziali sono i no<strong>di</strong> 1,4,7<br />

rispettivamente per i 3 cluster in considerazione.<br />

NOME PROGETTO Cluster_Base_Data_Gathering<br />

OBIETTIVI Il nodo con ID 0 è incaricato della raccolta<br />

dati da tutti gli altri sensori nella rete.<br />

PROTOCOLLO DI TRASPORTO<br />

USATO<br />

Best-effort<br />

TOPOLOGIA DELLA RETE Uso <strong>di</strong> cluster<br />

Tabella 4-3: Caratteristiche della simulazione n°3 con rete organizzata in<br />

cluster<br />

95


Figura 4.10: Rete organizzata in cluster<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

La procedura <strong>di</strong> elezione <strong>di</strong> un nuovo leader, come abbiamo accennato,<br />

avviene con un rate prefissato e viene iniziata dal nodo che riveste al tempo<br />

dell’elezione il ruolo <strong>di</strong> leader del cluster. Più in particolare esso provvede a<br />

scegliere con la procedura SceltaMaster() il successivo leader e poi si<br />

interessa <strong>di</strong> comunicare ad esso che è stato eletto. La procedura <strong>di</strong> invio <strong>di</strong><br />

un messaggio al successivo master è illustrata in figura 4.11. Analizzando<br />

essa in dettaglio si può notare che il nodo sensore che è cluster-head,<br />

compone un Master_msg e lo invia al nodo designato ad essere il nuovo<br />

cluster head (riquadro 1); contemporaneamente attiva un timer per l’attesa<br />

<strong>di</strong> un ack da parte del sensore contattato, al fine <strong>di</strong> garantire che il nodo è<br />

stato effettivamente eletto. Infatti si potrebbe verificare che il nodo da<br />

eleggere leader sia temporaneamente non raggiungibile tramite<br />

96


}<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

task void SendMasterMessage()<br />

{Master_Msg * payload; payload = (Master_Msg *)master_message.data;<br />

payload->becomeMaster =TRUE; payload->id actual master=TOS LOCAL ADDRESS;<br />

if(NroSen<strong>di</strong>ngnext_master=designed_address; atomic rcv_ack=FALSE;<br />

//mando messaggio a nuovo master<br />

if(call SendMasterMsg.send(designed_address, sizeof(Master_Msg),<br />

&master_message)!=FAIL)<br />

{NroSen<strong>di</strong>ng++;<br />

//Attivo timer e aspetto ack PER 5SEC (ack timer).<br />

call TimerAck.start(TIMER_ONE_SHOT, ACK_TIMER); }<br />

else { NroSen<strong>di</strong>ng++; post SendMasterMessage();}<br />

}<br />

else<br />

{dbg(DBG_TEMP,"Rimango master - %d -\n",TOS_LOCAL_ADDRESS);<br />

NroSen<strong>di</strong>ng=0; Risveglio=NroAck;<br />

dbg(DBG_TEMP, "IMCLUSTERHEAD\n"); }<br />

2<br />

Figura 4.11: Procedura <strong>di</strong> invio <strong>di</strong> un messaggio Master<br />

comunicazione ra<strong>di</strong>o, oppure che esso abbia esaurito le sue riserve<br />

energetiche e quin<strong>di</strong> non sia eleggibile. In questo caso si prevede che, dopo<br />

un NRO_MAX_SENDING (riquadro 2), il nodo opti per rimanere cluster-<br />

head. (chiaramente questa procedura può essere variata e più in dettaglio si<br />

può prevedere che si contatti il nodo successivo nell’anello logico formato<br />

dai no<strong>di</strong> sensori appartenenti allo stesso cluster). Riguardo le azioni svolte<br />

dai no<strong>di</strong> che ricevono un messaggio <strong>di</strong> elezione queste sono esplicitate in<br />

figura 4.12. Lo scenario banale prevede che i no<strong>di</strong> che ricevono un<br />

messaggio master_msg compongano un messaggio <strong>di</strong> ack e lo inviano al<br />

vecchio leader. Nel caso in cui si verifichi una per<strong>di</strong>ta <strong>di</strong> un messaggio <strong>di</strong><br />

ack (riquadro 2) l’evento viene isolato e gestito facilmente in quanto il nodo<br />

si sarà già settato a master e quin<strong>di</strong> la ricezione <strong>di</strong> un nuovo messaggio<br />

97<br />

1


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

event TOS_MsgPtr ReceiveMasterMsg.receive(TOS_MsgPtr receivedMessage) {<br />

//cioe' se si è attivato il timer per partecipare a una nuova elezione<br />

if(!sleep)<br />

{…<strong>di</strong>chiarazioni iniziali omissis…<br />

if(!master)<br />

{if(payload->next_master==TOS_LOCAL_ADDRESS)<br />

{if(payload->becomeMaster)<br />

{ack->source_address=TOS_LOCAL_ADDRESS;<br />

ack->dest_address=payload->id_actual_master;<br />

actual_master=payload->id_actual_master;<br />

if(call SendAck.send(TOS_BCAST_ADDR,<br />

sizeof(Ack_Msg),&ack_message)==SUCCESS)<br />

{ NroAck++; atomic master=TRUE; atomic rcv_ack=FALSE;<br />

call Election_Control.Remove_election_phase();<br />

call Election_Control.Set_master();<br />

dbg(DBG_TEMP, "IMCLUSTERHEAD\n");<br />

}<br />

}}}<br />

// per<strong>di</strong>ta <strong>di</strong> un ack significa che mi ero settato master e il mio ack si è perso<br />

else {ack->retrasmission=TRUE;<br />

call SendAck.send(TOS_BCAST_ADDR, sizeof(Ack_Msg),&ack_message );<br />

}}<br />

Figura 4.12: Procedura seguita dai no<strong>di</strong> alla ricezione <strong>di</strong> un master_msg<br />

master_msg sarà segno <strong>di</strong> una trasmissione non andata a buon fine.<br />

Passiamo ora ad analizzare i risultati che sono stati ottenuti con l’utilizzo <strong>di</strong><br />

una rete organizzata in cluster. In figura 4.13 sono mostrati i risultati, in<br />

termini <strong>di</strong> copertura, ottenuta per una simulazione su una rete che faccia uso<br />

<strong>di</strong> uno schema clusterizzato e <strong>di</strong> uno schema non clusterizzato nel caso<br />

siano utilizzati 9 no<strong>di</strong> sensori e non si faccia uso <strong>di</strong> un protocollo affidabile<br />

per il recapito delle misurazioni al nodo sink. Come si può notare la<br />

percentuale <strong>di</strong> cicli <strong>di</strong> misurazioni che hanno ottenuto una copertura totale<br />

della rete è più elevato rispetto alla analoga simulazione del paragrafo 4.3.<br />

Del resto il risultato è ovvio visto che avendo un solo sensore attivo per<br />

cluster <strong>di</strong>minuisce la probabilità <strong>di</strong> collisioni nella consegna delle<br />

informazioni monitorate (a causa della congestione della rete).<br />

98<br />

1<br />

2


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

Figura 4.13: Confronto copertura con uso protocollo<br />

affidabile e non affidabile<br />

Dal punto <strong>di</strong> vista energetico, invece il guadagno che si ottiene con l’uso <strong>di</strong><br />

una rete organizzata in cluster risulta abbastanza evidente (ve<strong>di</strong> figura 4.14).<br />

Del resto ciò risulta abbastanza intuitivo in quanto il carico dei no<strong>di</strong> sarà ora<br />

<strong>di</strong>stribuito nel tempo su tutti i no<strong>di</strong> appartenenti allo stesso cluster<br />

implementando così una strategia <strong>di</strong> load balancing. Dal grafico si nota<br />

come la vita me<strong>di</strong>a dei sensori in una rete organizzata in cluster sia<br />

Figura 4.14: Guadagno energetico con rete organizzata in cluster<br />

99


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

aumentata; l’aumento è <strong>di</strong> circa il 7% nel caso in cui si prevede un numero<br />

<strong>di</strong>spositivi per cluster pari a 2 (cluster C <strong>di</strong>spositivi 7 e 8) e arriva ad un 9%<br />

se si prevede l’utilizzo <strong>di</strong> 3 no<strong>di</strong> sensori per cluster. L’incremento <strong>di</strong><br />

autonomia della rete continua a crescere se si prevede un utilizzo <strong>di</strong> cluster<br />

abbastanza numerosi e si è potuto riscontrare che con l’uso <strong>di</strong> un numero <strong>di</strong><br />

7 <strong>di</strong>spositivi per cluster si arriva ad una vita me<strong>di</strong>a stimata per i sensori <strong>di</strong><br />

circa 260 h raggiungendo quin<strong>di</strong> un incremento rispetto alla rete non<br />

organizzata in cluster <strong>di</strong> circa il 13%. Il risultato risulta interessante in<br />

quando adottando strategie <strong>di</strong> questo tipo si possono ottenere architetture <strong>di</strong><br />

monitoraggio che riescano a sod<strong>di</strong>sfare vincoli stringenti relativi alla durata<br />

della rete.<br />

4.5 DATA GATHERING CON CLUSTERING E<br />

PROTOCOLLO AFFIDABILE<br />

Fino ad ora abbiamo effettuato una analisi che ha messo in evidenzia come<br />

l’utilizzo <strong>di</strong> reti organizzate in cluster porti miglioramenti all’incremento<br />

della vita me<strong>di</strong>a dei singoli no<strong>di</strong>, ora non ci resta che analizzare così come<br />

fatto nel paragrafo 4.3, le performance <strong>di</strong> una rete nel momento in cui si<br />

introduce il concetto <strong>di</strong> affidabilità nei confronti del recapito delle<br />

misurazioni; le caratteristiche principali <strong>di</strong> questa nuova simulazione sono<br />

esposte in tabella 4.4. I risultati che sono emersi hanno evidenziato un<br />

NOME PROGETTO Reliable_Cluster_Base_Data_Gathering<br />

OBIETTIVI Il nodo con ID 0 è incaricato della raccolta<br />

dati da tutti gli altri sensori nella rete.<br />

PROTOCOLLO DI TRASPORTO<br />

USATO<br />

Affidabile end-to-end (max 2 ritrasmissioni)<br />

TOPOLOGIA DELLA RETE Previsto uso <strong>di</strong> cluster<br />

Tabella 4-4: Caratteristiche della simulazione n°4 con rete organizzata in<br />

cluster e uso protocollo <strong>di</strong> recapito affidabile<br />

100


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

peggioramento, come è lecito aspettarsi, per quanto riguarda la vita me<strong>di</strong>a<br />

dei singoli no<strong>di</strong> causato sempre dalla maggior quantità <strong>di</strong> energia che è<br />

spesa per le ritrasmissioni necessarie al recupero <strong>di</strong> eventuali fallimenti nel<br />

recapito dei pacchetti. Anche in questo caso, così come riscontrato nella<br />

simulazione esposta nel paragrafo 4.3 il protocollo end to end si mostra<br />

essere molto leggero introducendo un decremento della vita me<strong>di</strong>a dei<br />

singoli sensori molto trascurabile a testimonianza del fatto che la sua<br />

attivazione solo nei momenti in cui abbiamo per<strong>di</strong>te è un buon approccio<br />

per ovviare ai problemi relativi alla congestione della rete e alla scarsa<br />

qualità dei singoli link <strong>di</strong> comunicazione. Per avere una analisi completa dei<br />

protocolli <strong>di</strong>scussi nei paragrafi precedenti, in figura 4.15 è riportato, una<br />

comparazione tra le vite me<strong>di</strong>e dei vari <strong>di</strong>spositivi in base alla topologia <strong>di</strong><br />

rete utilizzata e allo schema adottato per la ricezione delle informazioni<br />

presso il nodo sink. Il risultato ottenuto risulta essere abbastanza intuitivo,<br />

infatti come si può notare la vita me<strong>di</strong>a per i <strong>di</strong>spositivi più elevata, a cui<br />

corrisponde quin<strong>di</strong> un <strong>di</strong>spen<strong>di</strong>o energetico me<strong>di</strong>o più basso, è stata<br />

riscontrata nella simulazione con una rete organizzata in cluster. Il<br />

peggioramento nel caso in cui la topologia della rete non sia organizzata in<br />

Figura 4.15: Analisi comparativa <strong>degli</strong> algoritmi<br />

101


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

cluster è abbastanza accentuata soprattutto nei riguar<strong>di</strong> della simulazione<br />

riportata nel paragrafo 4.3. Di conseguenza possiamo affermare che<br />

l’utilizzo <strong>di</strong> una strategia che vede l’organizzazione in cluster della rete<br />

comporta comunque una miglioria per quanto riguarda la durata me<strong>di</strong>a della<br />

vita della rete. Fino ad ora gli approcci che sono stati presentati relativi al<br />

clustering sono stati tutti incentrati sull’uso <strong>di</strong> un meccanismo <strong>di</strong> elezione<br />

che andava attivato ogni ELECTION_TIMER_RATE. Un interessante<br />

scenario da valutare è quello in cui l’elezione del leader sia effettuata solo<br />

nel momento in cui il <strong>di</strong>spositivo sensore che funge da leader esaurisce la<br />

propria carica energetica. L’obiettivo <strong>di</strong> instrumentare una simulazione <strong>di</strong><br />

questo genere è volta ad in<strong>di</strong>viduare se può essere più conveniente, per la<br />

vita me<strong>di</strong>a <strong>di</strong> una rete, portare all’esaurimento i no<strong>di</strong> che sono stati designati<br />

a leader del cluster e quin<strong>di</strong> ridurre in questo caso al minimo le procedure<br />

stesse <strong>di</strong> elezione. Da una analisi dei risultati in figura 4.16 si può<br />

concludere che i no<strong>di</strong> che sono stati designati ad essere leader fin quando<br />

possibile risultano avere una vita me<strong>di</strong>a stimata inferiore <strong>di</strong> circa 20h,<br />

mentre gli altri no<strong>di</strong> registrano un aumento <strong>di</strong> 10h <strong>di</strong> autonomia. Ciò<br />

significa che, detto con ci il tempo <strong>di</strong> esaurimento del nodo i-esimo, al lordo<br />

della procedura <strong>di</strong> elezione, al tempo c1=c4=c7 (~230 h) i no<strong>di</strong> capo cluster<br />

Figura 4.16: Elezione eseguita ciclicamente o all’esaurimento<br />

energetico <strong>di</strong> un nodo<br />

102


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

saranno esauriti e i restanti no<strong>di</strong> che fino a quell’istante avevano fornito una<br />

funzionalità semplicemente <strong>di</strong> forwar<strong>di</strong>ng dei pacchetti, avranno una<br />

autonomia residua pari a c2-c1 (~30 h). A questo punto bisognerebbe<br />

calcolare quante ore <strong>di</strong> autonomia resterebbero ai nuovi cluster head, ma il<br />

calcolo <strong>di</strong> tale autonomia non è permesso dalla plugin in maniera analitica.<br />

Dal punto <strong>di</strong> vista intuitivo però si dovrebbe riscontrare effettivamente un<br />

guadagno, in quanto avremo una procedura <strong>di</strong> elezione che verrà attivata<br />

solo nel momento in cui si sarà esaurita la riserva energetica <strong>di</strong> un nodo.<br />

Facciamo però notare che una procedura <strong>di</strong> questo genere prevede che il<br />

nodo sink si accorga della “morte” <strong>di</strong> un nodo solo quando ormai la<br />

procedura <strong>di</strong> misurazione è stata lanciata; ciò quin<strong>di</strong> causa una per<strong>di</strong>ta <strong>di</strong><br />

informazione non rime<strong>di</strong>abile. È chiaro che potrebbero essere sviluppate<br />

procedure che mirino a indagare sullo “stato <strong>di</strong> salute” in termini energetici<br />

dei singoli no<strong>di</strong>, ma operazioni <strong>di</strong> questo tipo porterebbero ad un consumo<br />

energetico aggiuntivo per il recapito <strong>di</strong> queste informazioni al nodo sink.<br />

4.6 OVERLAY NETWORK<br />

Tutte le simulazioni che sono state condotte nei paragrafi precedenti hanno<br />

portato a risultati, in termini <strong>di</strong> energia me<strong>di</strong>a <strong>di</strong>ssipata dai vari no<strong>di</strong> (quin<strong>di</strong><br />

vita stimata residua), che <strong>di</strong>pendono fortemente:<br />

1. dall’uso del protocollo multihop<br />

2. dal ruolo dei no<strong>di</strong> che non rivestono il ruolo <strong>di</strong> leader del cluster.<br />

Relativamente al punto 2 un <strong>di</strong>spositivo sensore in ogni istante funge<br />

comunque da nodo forwarder dei pacchetti al fine <strong>di</strong> poter contribuire al<br />

recapito delle informazioni al nodo sink e un siffatto funzionamento,<br />

comporta quin<strong>di</strong> la necessità che il modulo ra<strong>di</strong>o <strong>di</strong> ogni sensore sia sempre<br />

attivo, causando un <strong>di</strong>spen<strong>di</strong>o energetico che influisce fortemente sulla vita<br />

totale della rete.<br />

103


Figura 4.17: Overlay Network<br />

Da queste osservazioni se ci poniamo nelle ipo<strong>tesi</strong>:<br />

Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

� che i <strong>di</strong>spositivi possano essere programmati per non partecipare<br />

continuamente al protocollo multihop e che possano effettuare una<br />

operazione <strong>di</strong> join al protocollo solo nel momento in cui rivestono il<br />

ruolo <strong>di</strong> leader del cluster;<br />

� che i <strong>di</strong>spositivi non leader possano essere in uno stato <strong>di</strong> power save<br />

e provvedano all’accensione del modulo ra<strong>di</strong>o solo in alcuni<br />

intervalli <strong>di</strong> tempo;<br />

� che il grafo dei collegamenti tra i no<strong>di</strong> sensori sia fortemente<br />

connesso;<br />

allora la soluzione che prevede la costruzione <strong>di</strong> una overlay network (figura<br />

4.17) potrà portare significativi vantaggi dal punto <strong>di</strong> vista dell’incremento<br />

della vita della rete. Infatti, anche se in questo caso abbiamo una limitazione<br />

dal punto <strong>di</strong> vista topologico, i vari sensori che non sono leader sono in uno<br />

stato risparmi energetico e quin<strong>di</strong> non consumeranno risorse energetiche<br />

104


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

dovute al mantenimento del modulo ra<strong>di</strong>o acceso e all’inoltro dei vari<br />

pacchetti. Di conseguenza lo scenario che si presenta è quello <strong>di</strong> una rete in<br />

cui gli unici no<strong>di</strong> che sono coinvolti in procedure <strong>di</strong> inoltro <strong>di</strong> misurazioni<br />

sono i leader <strong>di</strong> ogni cluster, mentre gli altri sono dormienti. In tale<br />

con<strong>di</strong>zione quin<strong>di</strong> otterremo globalmente un risparmio energetico ingente<br />

grazie allo stato sleep del modulo ra<strong>di</strong>o. Questa assunzione, del resto, è<br />

giustificata anche analiticamente dai risultati ottenuti dalla simulazione sulla<br />

vita me<strong>di</strong>a <strong>di</strong> un sensore (figura 4.18) che hanno mostrato un netto<br />

abbattimento dell’autonomia dei <strong>di</strong>spositivi nel caso in cui sia previsto<br />

l’utilizzo del modulo ra<strong>di</strong>o per la trasmissione <strong>di</strong> misurazioni. Volendo<br />

quin<strong>di</strong> stimare la vita me<strong>di</strong>a della rete potremmo <strong>di</strong>re che nel caso in cui<br />

consideriamo tutti cluster formati da n <strong>di</strong>spositivi:<br />

lifetime _ cluster _ head + ( n −1)<br />

* lifetime _ no _ ra<strong>di</strong>o<br />

vitame<strong>di</strong>a =<br />

n<br />

Dove lifetime_cluster_head rappresenta l’autonomia del sensore nel<br />

momento in cui è attivo il modulo ra<strong>di</strong>o, mentre lifetime_no_ra<strong>di</strong>o è<br />

l’autonomia del sensore nel momento in cui non è attivo il modulo ra<strong>di</strong>o.<br />

Infatti nel caso in cui si considera una rete organizzata in cluster ciascuno<br />

composto da n=3 no<strong>di</strong> sensori, la formazione <strong>di</strong> overlay network implicherà<br />

vita me<strong>di</strong>a stimata [h]<br />

Impatto del modulo ra<strong>di</strong>o sulla vita me<strong>di</strong>a <strong>di</strong> un<br />

sensore<br />

700,00<br />

600,00<br />

500,00<br />

400,00<br />

300,00<br />

200,00<br />

100,00<br />

0,00<br />

modulo ra<strong>di</strong>o attivo<br />

modulo ra<strong>di</strong>o spento<br />

Figura 4.18: Impatto del modulo ra<strong>di</strong>o sulla vita <strong>di</strong><br />

un sensore<br />

105


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

che ogni nodo sensore sia con il modulo ra<strong>di</strong>o acceso per 1/3 della sua vita e<br />

per i 2/3 spento. Ciò implica che essendo lifetime_cluster_head=249h e<br />

lifetime_no_ra<strong>di</strong>o=658h allora avremo una vita me<strong>di</strong>a stimata che si attesta<br />

sulle 521h che risulta essere più del doppio della stima nel caso in cui non si<br />

ricorra allo spegnimento del modulo ra<strong>di</strong>o.<br />

In conclusione l’idea <strong>di</strong> creare una overlay network e <strong>di</strong> mo<strong>di</strong>ficare il<br />

protocollo multihop in modo tale da costruire nuove tabelle <strong>di</strong> routing ogni<br />

volta che si ha un cambiamento dei leader del cluster risulta essere una<br />

buona prospettiva per lo sviluppo <strong>di</strong> reti <strong>di</strong> sensori con particolari esigenze<br />

<strong>di</strong> longevità.<br />

106


Conclusioni<br />

Il presente lavoro <strong>di</strong> <strong>tesi</strong> nasce dall’esigenza <strong>di</strong> riuscire ad ottenere<br />

architetture <strong>di</strong> reti <strong>di</strong> sensori senza cavo con particolari esigenze <strong>di</strong><br />

affidabilità nella consegna delle misurazioni e minimizzazione del consumo<br />

energetico dei stessi sensori. Essendo i due requisiti in contrasto tra loro è<br />

necessario valutare se può essere in<strong>di</strong>viduata per via sperimentale una<br />

soluzione <strong>di</strong> compromesso (trade- off).<br />

Dopo uno stu<strong>di</strong>o attento della letteratura in merito ai protocolli <strong>di</strong><br />

clusterizzazione e <strong>di</strong> consegna affidabile delle misurazioni, si è proposto un<br />

nuovo modo <strong>di</strong> intendere il ruolo <strong>di</strong> leader del cluster, non più delegato a<br />

gateway tra i no<strong>di</strong> sensori del cluster e il nodo sink, bensì come l’unica<br />

entità incaricata dell’azione <strong>di</strong> monitoraggio della grandezza fisica relativa<br />

all’evento che si vuole analizzare. Attraverso poi delle strategie <strong>di</strong> leader<br />

election perio<strong>di</strong>co all’interno <strong>di</strong> ogni cluster è stato possibile implementare<br />

load balancing al fine <strong>di</strong> ottenere un consumo energetico uniforme e<br />

garantire quin<strong>di</strong> una ripartizione del carico tra i vari sensori afferenti ai<br />

cluster.<br />

I risultati sperimentali, ottenuti con l’ausilio del simulatore ad eventi <strong>di</strong>screti<br />

TOSSIM, hanno mostrato un guadagno <strong>di</strong> circa il 9% nella autonomia dei<br />

no<strong>di</strong> sensori nel caso in cui si prevedano cluster con solo 3 <strong>di</strong>spositivi<br />

(risulta chiaro che all’aumentare del numero <strong>di</strong> <strong>di</strong>spositivi previsti per<br />

cluster aumenterà anche il guadagno dal punto <strong>di</strong> vista energetico e quin<strong>di</strong><br />

l’autonomia della rete). Riguardo la consegna affidabile i risultati hanno<br />

107


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

evidenziato che, una strategia che preveda il recupero delle misurazioni,<br />

basato su richieste <strong>di</strong> trasmissioni che vengono inoltrate dal nodo sink solo<br />

in caso <strong>di</strong> reale per<strong>di</strong>ta, è una buona soluzione <strong>di</strong> trade off tra recapito <strong>di</strong> una<br />

definita quantità <strong>di</strong> informazione sull’evento monitorato e minimizzazione<br />

dei consumi energetici dei no<strong>di</strong> sensori. Infatti l’impatto sulla vita <strong>di</strong> un<br />

siffatto protocollo è risultato essere molto basso.<br />

In seguito all’utilizzo <strong>di</strong> TOSSIM, non è stato possibile indagare in maniera<br />

sistematica e precisa sul guadagno che si otterrebbe se i no<strong>di</strong> sensori che<br />

non fungono da cluster-head fossero completamente spenti. Questa strategia<br />

prevede vincoli dal punto <strong>di</strong> vista topologico (è necessario che il grafo<br />

formato dai no<strong>di</strong> sensori sia fortemente connesso pena la non raggiungibilità<br />

delle misurazioni rilevate al nodo sink) ma da una semplice analisi emerge<br />

che potrebbe portare ad un raddoppio della vita me<strong>di</strong>a <strong>di</strong> una rete, quin<strong>di</strong><br />

sarebbe molto interessante investigare su questo punto in quanto<br />

permetterebbe la realizzazione <strong>di</strong> reti <strong>di</strong> sensori con particolari esigenze <strong>di</strong><br />

longevità.<br />

108


Bibliografia<br />

[1] M. Cinque, D. Cotroneo, G. De Caro, and M. Pelella. Reliability requirements of<br />

wireless sensor networks for dynamic structural monitoring. International<br />

Conference on Dependable Systems and Networks (DSN),2006.<br />

[2] C. Perkins, Ad Hoc Networks, Ad<strong>di</strong>son-Wesley, Rea<strong>di</strong>ng, MA, 2000.<br />

[3] I.F.Akyil<strong>di</strong>z, W.Su, Y.Sankarasubramaniam and E.Cayirci, A Survery on Sensor<br />

Networks, IEEE Communications Magazine, August 2002, pages 102-114, 393-442<br />

[4] A. Y. Wang, S. H. Cho, C. G. So<strong>di</strong>ni, and A. P. MAC for Asymmetric RF<br />

Microsensor Systems. In Intl. Symp. on Low Power Electronics and Chandrakasan.<br />

Energy Efficient Modulation and Design, August 2001.<br />

[5] C. Schurgers, O. Aberthorne, and M. B. Srivastava. Modulation Scaling for Energy<br />

Aware Communication System In Intl. Symp. on Low Power Electronics and Design,<br />

August 2001.<br />

[6] Wei Ye, John Heidemann, Me<strong>di</strong>um Access Control in Wireless Sensor Networks,<br />

USC/ISI TECHNICAL REPORT ISI-TR-580, October 2003<br />

[7] Brad Karp and H. T. Kung. Gpsr: greedy perimeter stateless routing for wireless<br />

networks. In MobiCom ’00: Procee<strong>di</strong>ngs of the 6th annual international conference<br />

on Mobile computing and networking, pages 243–254, New York, NY, USA, 2000.<br />

ACM Press.<br />

[8] Devika Subramanian, Peter Druschel, and Johnny Chen. Ants and reinforcement<br />

learning: A case study in routing in dynamic networks. In IJCAI (2), 1997.<br />

[10] W. R. Heinzelman, A. Chandrakasan, and H. Balakrishnan, Energy - efficient<br />

communication protocol for wireless microsensor networks, Proc. 33rd Hawaii Int'l.<br />

Conf. Sys. Sci.,pp. 3005- 3014, Jan.2000.<br />

[11] Konstantinos Kalpakis, Koustuv Dasgupta and Parag Namjoshi Efficient algorithms<br />

for maximum lifetime data gathering and aggregation in wireless sensor networks<br />

,2002.<br />

[12] Supriyo Chatterjea and Paul Havinga A Dynamic Data Aggregation Scheme for<br />

Wireless Sensor Networks.<br />

[13] R. Nowak. Distributed EM algorithms for density estimation and clustering in<br />

sensor networks. IEEE Trans. on Sig. Proc., 51(8), August 2003.<br />

[14] http://www.alertsystems.org.<br />

109


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

[15] A. Cerpa, J. Elson, M. Hamilton, J. Zhao, Habitat monitoring: application driver for<br />

wireless communications technology, ACM SIGCOMM'2000, Costa Rica, April<br />

2001.<br />

[16] http://www.greatduckisland.net/<br />

[17] G. R. Polastre, “Design and Implementation of Wireless Sensor Networks for<br />

Habitat Monitoring ”, Master <strong>di</strong>ssertation, Dept. of Elec. Eng., UCB, Spring 2003.<br />

[18] N. Noury, T. Herve, V. Rialle, G. Virone, E. Mercier, G. Morey, A. Moro, T.<br />

Porcheron, Monitoring behavior in home using a smart fall sensor, IEEE-EMBS<br />

Special Topic Conference on Microtechnologies in Me<strong>di</strong>cine and Biology, October<br />

2000, pp. 607-610.<br />

[19] E.M. Petriu, N.D. Georganas, D.C. Petriu, D. Makrakis,V.Z. Groza, Sensor-based<br />

information appliances, IEEE Instrumentation and Measurement Magazine<br />

(December 2000) 31-35.<br />

[20] I.A. Essa, Ubiquitous sensing for smart and aware environments, IEEE Personal<br />

Communications (October 2000).<br />

[21] TinyOS: An open source operating system for WSN - www.tinyos.net.<br />

[22] R. Von Behren M. Welsh E. Brewer D. Gay, P. Levis and D. Culler. “The nesC<br />

Language: A Holistic Approach to Networked Embedded Systems”. In Procee<strong>di</strong>ngs<br />

of Programming Language Design and Implementation (PLDI) 2003, June 2003.<br />

[23] H. Abrach, J. Carlson, H. Dai, J. Rose, A. Sheth, B. Shucker, and R.Han. MANTIS:<br />

System support for multimodal networks of in-situ sensors. In Proc. 2nd ACM Intl.<br />

Workshop on Wireless Sensor Networks and Applications (WSNA), San Diego,<br />

CA, September 2003.<br />

[24] G. Ananstasi, M. Conti, A. Falchi, E. Fragori e A. Passerella: Performance<br />

Measurements of Mote Sensor networks. ACM/IEEE International Symposium on<br />

Modeling, Analysis and Simulation of Wireless and Mobile System, pp. 174-181,<br />

ACM Press, 2004.<br />

[25] D. D. Clark and D. L. Tennenhouse. Architectural Considerations for a New<br />

Generation of Protocols. In Procee<strong>di</strong>ngs of SIGCOMM, September 1990.<br />

[26] Philip Levis and Nelson Lee. TOSSIM: A simulator for TinyOS networks, November<br />

14 2003.<br />

[27] Philip Levis, Nelson Lee, MattWelsh, and David E. Culler. TOSSIM: accurate and<br />

scalable simulation of entire TinyOS applications. In SenSys, pages 126–137, 2003.<br />

[28] Alan Mainwaring, Joseph Polastre, Robert Szewczyk, David Culler, and John<br />

Anderson. Wireless sensor networks for habitat monitoring.<br />

110


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

[29] J. Elson, S. Bien, N. Busek, V. Bychkovskiy, A. Cerpa, D. Ganesan, L. Girod, B.<br />

Greenstein, T. Schoellhammer, T. Stathopoulos, D. Estrin, 2003 “Emstar: an<br />

environment for developing wireless embedded systems software”<br />

[30] L. Girod, J. Elson, A. Cerpa, T. Stathopoulos, Nithya Ramanathan, D. Estrin<br />

“Emstar: a software environment for developing and deploying wireless sensor<br />

networks”<br />

[31] Jonathan Polley, Dionysys Blazakis, Jonathan McGee, Dan Rusk, John S. Baras<br />

“Atemu: a fine-grained sensor network simulator”.<br />

[32] Ben L. Titzer, Daniel K. Lee, Jens Palsberg “Avrora: scalable sensor network<br />

simulation with precise timing”.<br />

[33] ISI. The network simulator 2 ns-2. http://www.isi.edu/nsnam/nsidenx.html, 2002.<br />

[34] Xiang Zeng, Rajive Bagro<strong>di</strong>a, and Mario Gerla. Glomosim: A library for parallel<br />

simulation of large-scale wireless networks. In Workshop on Parallel and<br />

Distributed Simulation, pages 154–161, 1998.<br />

[35] Y. Huang, J. Huang, L. Hester, A. Allen, O. Andric, P. Chen, and B. O’Dea. Opnet<br />

simulation of a multi-hop self-organizing wireless sensor network.<br />

[36] A. Savvides S. Park and M. B. Srivastava. Sensorsim: a simulation framework for<br />

sensor networks. In Procee<strong>di</strong>ngs of the 3rd ACM international workshop on<br />

Modeling, analysis and simulation of wireless and mobile systems, pages 104–111,<br />

Boston, MA USA.<br />

[37] Ahmed Sobeih, Wei-Peng Chen, Jennifer C. Hou, Lu-Chuan Kung, Ning Li, Hyuk<br />

Lim, Hung-Ying Tyan, Honghai Zhang “J-Sim: a simulation and emulation<br />

environment for wireless sensor networks”<br />

[38] Clau<strong>di</strong>o Basile, Zbigniew Kalbarczyk, and Ravi K. Iyer. Neutralization of errors and<br />

attacks in wireless ad hoc networks. In International Conference on Dependable<br />

Systems and Networks(DSN), 2005.<br />

[39] S. Shakkottai, R. Srikant, and N. Shroff. Unreliable sensor grids: Coverage,<br />

connectivity and <strong>di</strong>ameter. In IEEE INFOCOM2003, pages 241–250, 2003.<br />

[40] D. Bein, V. Jolly, B. Kumar, and S. Latifi. Reliability modeling in wireless sensor<br />

networks. International Journal of Information Technology, Vol. 11 No. 2, 2004.<br />

[41] Hosam M. F. AboElFotoh, S. S. Iyengar, and Krishnendu Chakrabarty. Computing<br />

reliability and message delay for cooperative wireless <strong>di</strong>stributed sensor networks<br />

subject to random failures. IEEE TRANSACTIONS ON RELIABILITY, 54(1),<br />

MARCH 2005.<br />

[42] G. Gupta and M. Younis. Fault-tolerant clustering of wireless sensor networks.<br />

IEEE, 2003.<br />

[43] Jae-Joon Lee, Bhaskar Krishnamachari, and C.-C. Jay Kuo. Impact of energy<br />

depletion and reliability on wireless sensor network connectivity, 2005.<br />

111


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

[44] S. Lindsey and C. S. Raghavendra. PEGASIS: Power-efficient gathering in sensor<br />

information systems. In Procee<strong>di</strong>ngs of the IEEE Aerospace Conference, March<br />

2002.<br />

[45] L. Subramanian and R.H. Katz, “An architecture for buil<strong>di</strong>ng self-configurable<br />

systems”, Procee<strong>di</strong>ngs of the 1st ACM international symposium on Mobile ad hoc<br />

networking and computing, pp. 63–73, Boston, MA, USA, 2000.<br />

[46] C. V. Ramamoorthy, A. Bhide, and J. Srivastava, “Reliable clustering techniques for<br />

large, mobile packet ra<strong>di</strong>o networks”, Procee<strong>di</strong>ngs of the 6 th Annual Joint<br />

Conference of the IEEE Computer and Communications Societies (INFOCOM ’87),<br />

San Francisco, CA, USA, 1:218–226, 31 March–2 April 1987.<br />

[47] R. Krishnan and D. Starobinski, Efficient clustering algorithms for self organizing<br />

wireless sensor networks,. Ad Hoc Networks, vol. 4, no. 1, pp. 36.59, January 2006.<br />

[48] Leonidas Tzevelekas, Ziviani Towards Potential-Based Clustering forWireless<br />

Sensor Networks CoNEXT’05, October 24.27, 2005, Toulouse, France.<br />

[49] Malka Halgamuge, Siddeswara Mayura Guru and Andrew Jennings; Energy efficient<br />

Cluster Formation in wireless sensor networks, International conference on<br />

telecommunications ICT 2003, IEEE Press.<br />

[50] Yuon Guo, Janise Mcnair, Cost Efficient Cluster Formation for wireless sensor<br />

networks, Proc. of CITSA 2004, Orlando, FL, July 2004.<br />

[51] Ossama Younis and Sonia Fahmy, HEED: A hybrid energy efficient, <strong>di</strong>stributed<br />

clustering apparoach for Ad-hoc sensor networks, IEEE Transactions on Mobile<br />

Computing, Oct.-Dec. 2004, Volume: 3, Issue: 4, p.p. 366 - 379.<br />

[52] G. Gupta and M. Younis, Load-Balanced Clustering in Wireless Sensor Networks,<br />

IEEE International conference on communications, Anchorage, Alaska, 2003.<br />

[53] S. Banerjee and S. Khuller, A Clustering Scheme for Hierarchical Control in Multihop<br />

Wireless Networks, INFOCOM, 2001.<br />

[54] A. Antis, R. Prakash, T. Vuong, and D. Huynh, Max-Min d-Cluster Formation in<br />

Wireless Ad Hoc Networks, IEEE INFOCOM, 2000.<br />

[55] Y. Bejerano, Efficient Integration of Multihop Wireless and Wired Networks with<br />

QoS Constraints, IEEE/ACM Transactions on Networking, 2004.<br />

[56] B. Aoun, R. Boutaba, Clustering in WSN with latency and Energy Consumption<br />

constraints, Journal of Network and Systems Management, Vol. 14, No. 3,<br />

September 2006<br />

[57] Mudasser Iqbal, Iqbal Gondal and Laurence Dooley An Energy-Aware Dynamic<br />

Clustering Algorithm for Load Balancing in Wireless Sensor Networks JOURNAL<br />

OF COMMUNICATIONS, VOL. 1, NO. 3, JUNE 2006<br />

112


Progetto e valutazione <strong>di</strong> algoritmi per la raccolta<br />

dati affidabili su reti <strong>di</strong> sensori senza cavo<br />

[58] A. Kroller, D. Pfisterer, C. Buschmann, S.P. Fekete, S. Fischer, “Shawn: A new<br />

approach to simulating wireless sensor networks”, 2005<br />

[59] http://tcs.unige.ch/doku.php/code/algosensim/overview<br />

[60] C. Mallanda, A. Suri, V. Kunchakarra, S.S. Iyengar, “Simulating wireless sensor<br />

networks with Omnet++”, 2005<br />

[61] Fred Stann and John Heidemann. RMST: Reliable Data Transport in Sensor<br />

Networks. 1st IEEE International Workshop on Sensor Net Protocols and<br />

Applications, 2003<br />

[62] C. Wan, A. Campbell, L. Krishnahmurthy. PSFQ: A Reliable Transport Mechanism<br />

for Wireless Sensor Networks. ACM International Workshop on Wireless Sensor<br />

Networks and Applications, Atlanta, Georgia, Sept 2002.<br />

[63] C. Intanagonwiwat, R. Govindan, D. Estrin, j. Heidmann and F. Silva “Direct<br />

Diffusion for wireless sensor network” IEEE/ACM Transactions on Networking,<br />

vol.11, pp 2-16, Feb 2003<br />

[64] Seung-Jong Park, Ramanuja Vedantham, Raghupathy Sivakumar and Ian F.<br />

Akyil<strong>di</strong>z A scalable approach for reliable downstream data delivery in wireless<br />

sensor networks in the Procee<strong>di</strong>ngs of ACM International Symposium on Mobile Ad<br />

hoc Networking and Computing (MOBIHOC), Japan, May 2004.<br />

[65] Chieh-Yih Wan, Shane B. Eisenman, Andrew T. Campbell, “CODA: Congestion<br />

Detection and Avoidance in Sensor Networks”, in procee<strong>di</strong>ngs of First ACM<br />

Conference on Embedded Networked Sensor Systems (SenSys 2003), November<br />

2003.<br />

[66] J.O’Rourke. Computational geometry column 15. Int’l Journal of Computational<br />

Geometry and Application, 2(2):217-217,1992.<br />

[67] Seapahn Meguer<strong>di</strong>chian, Farinaz Koushanfar, Miodrag Potkonjak, Mani B.<br />

Srivastava, Coverage Problems in Wireless Ad-hoc Sensor Networks, in IEEE<br />

INFOCOM, pages 1380-1387, 2001<br />

[68] S. Slijepcevic, M. Potkonjak, Power Efficient Organization of Wireless Sensor<br />

Networks, In IEEE Int’l Conf. on Communications (ICC) pages 472-476, 2001.<br />

[69] Tian, Georganas, A Coverage-Preserving Node Scheduling Scheme for Large<br />

Wireless Sensor Networks ACM Int’l Workshop on WSNA, 2002<br />

[70] Catello Di Martino, Valutazione dell'affidabilità <strong>di</strong> Reti <strong>di</strong> Sensori senza cavo,<br />

Università <strong>degli</strong> stu<strong>di</strong>o <strong>di</strong> <strong>Napoli</strong> <strong>Federico</strong> <strong>II</strong>, Ottobre 2005<br />

[71] Fan Ye, Gary Zhong, Jesse Cheng, Songwu Lu, Lixia Zhang PEAS: A Robust<br />

Energy Conserving Protocol for Long-lived SensorNetworks, In Int’l Conf. on<br />

Distributed Conputing System (ICDCS), 2003<br />

113

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!