Università degli Studi di Roma "La Sapienza" Facoltà di Ingegneria Tesi di Laurea Specialistica in Ingegneria Informatica Progettazione e Realizzazione di Tecniche per la Gestione Adattiva del Workflow su Reti Ad Hoc Relatore Ing. Massimo Mecella Correlatore Dott. Fabio De Rosa Laureando Massimiliano de Leoni Num. Matr. 993641 Anno Accademico 2004/2005
Indice INDICE... 2 INTRODUZIONE... 4 1 PROBLEMATICHE DEI CSCW SU RETI AD HOC... 8 1.1 CENNI SULLE RETI WIRELESS... 9 1.1.1 Cenni allo strato di Collegamento Wi-Fi... 10 1.1.2 Infrastructured vs Ad-Hoc Network... 15 1.1.3 Algoritmi di routing per MANET... 19 1.2 ARCHITETTURA PER SUPPORTARE I COOPERATIVE WORK... 22 1.2.1 Descrizione dell architettura... 27 1.2.2 L algoritmo di predizione... 29 2 LO STATO DELL ARTE DEI WFMS... 34 2.1 BACKGROUND... 34 2.2 INTRODUZIONE AL WORKFLOW MANAGEMENT SYSTEM... 36 2.2.1 Modelli per la descrizione dei processi... 40 2.3 IL MODELLO DI RIFERIMENTO... 46 2.3.1 Workflow Enactment Service... 48 2.3.2 Process Definition Tools... 50 2.3.3 Workflow client application... 50 2.3.4 Administration and monitoring tools... 51 2.4 L ADATTIVITÀ NEI WFMS: STATO DELL ARTE... 52 2.4.1 AgentWork... 53 2.4.2 Altri lavori per gestire l adattività... 57 3 MODELLI ED ALGORITMI PER WFMS ADATTIVI SU RETI AD HOC... 60 3.1 MODELLAZIONE DELLO STATIC ENGINE... 63 3.1.1 Il modello di processo di workflow e le entità coinvolte... 65 3.1.2 La gestione delle risorse e della work-list... 72 3.1.3 Inizio di un nuovo caso di un processo... 74 3.1.4 Esecuzione di un caso nel processo... 78 3.1.5 Assegnamento push delle attività alle risorse... 80 3.1.6 Criteri di scelta della miglior risorsa... 83 3.1.7 Implementazione del Failure Detector... 83 3.2 ALGORITMO PER L ASSEGNAMENTO DELLA PRIORITÀ NEI WORKFLOW... 86 3.2.1 Definizione di priorità di un (sotto)processo... 88 2
3.2.2 Decomposizione del processo di workflow e disegno dell albero corrispondente... 90 3.2.3 Calcolo delle priorità dei nodi-processi dell albero... 92 3.2.4 Calcolo delle priorità delle attività... 93 3.2.5 Esempio... 96 3.2.6 Osservazioni finali... 98 3.3 MODELLAZIONE DELL ADAPTIVE LAYER... 100 3.3.1 Gestione dell evento di bridging... 101 3.3.2 Gestione dell evento di no-bridge... 104 3.3.3 Gestione del roll-back... 105 4 PROGETTAZIONE E SVILUPPO DI UN WFMS ADATTIVO SU RETI AD HOC... 106 4.1 SPECIFICA DELLE INTERFACCE... 107 4.1.1 Interfaccia per la definizione dello schema di processo... 107 4.1.2 Interfaccia verso le risorse (Workflow Client Application)... 112 4.1.3 Interfaccia verso le applicazioni... 115 4.2 ALCUNI DETTAGLI SULL IMPLEMENTAZIONE DEL WORKFLOW ENGINE116 4.2.1 Il package repository... 117 4.2.2 Il package workengine... 120 5 SPERIMENTAZIONE ED ANALISI DEI RISULTATI... 123 5.1 OBIETTIVI DELLE SPERIMENTAZIONI... 123 5.2 DESCRIZIONE DELLO SCENARIO DI SIMULAZIONE... 127 5.2.1 Descrizione degli schemi di processo usati per il test... 128 5.3 ANALISI DEI RISULTATI DELLE SIMULAZIONE... 134 6 CONCLUSIONI... 140 7 BIBLIOGRAFIA... 142 3
Introduzione Negli ultimi tempi la società sta evolvendo verso scenari dominati dalla mobilità. C è stato un intenso sviluppo e diffusione di dispositivi mobili (PDA, SmartPhone, computer portatili, cellulari) con caratteristiche di connettività estremamente sofisticate e con prezzi sempre più accessibili. Si pensi ai cellulari UMTS che permettono in ogni momento, praticamente ovunque, di accedere ad una moltitudine di fonti di informazione, non per ultima la stessa Internet oppure ai PDA e ai nuovi modelli di computer portatili che integrano funzionalità per l accesso a reti Wireless, Wi-Fi (IEEE 802.11x) e/o Bluetooth. Il grande sviluppo di dispositivi mobili nasce dall esigenza di ottenere continuamente e in modo ubiquo l accesso ad uno o più sorgenti di informazione. Inoltre gli utenti si stanno dimostrando sempre più interessati a un ampia varietà di servizi, sia per motivi di svago che per ragioni più serie: e-commerce, e- Learning e e-government. Tali basi tecnologiche permettono di costruire Reti Ad-Hoc (MANET 1 ). Questo nuovo tipo di reti risulta particolarmente interessante perché permette, a dispositivi dotati di adattatori wireless, di comunicare senza che sia prevista la presenza di una infrastruttura di rete. Le particolari caratteristiche delle MANET rendono questo tipo di reti adatta ad innumerevoli campi di applicazione (settore militare, spedizioni archeologiche, missioni di soccorso, ecc ) in cui occorre eseguire un lavoro di gruppo ma non è prevista una infrastruttura di rete 1 MANET è l abbreviazione di Mobile Ad-hoc Network 4
pre-esistente. Il lavoro cooperativo è, tipicamente, supportato da un sistema software installato sul dispositivo mobile di un leader che, da un lato, aiuta i membri del gruppo a coordinarsi e d altro evita, mediante azioni correttive, che questi si disconnettano dalla MANET. Infatti, le Reti Ad Hoc non tutelano in alcun modo i dispositivi che la costituiscono da eventuali disconnessioni. L obiettivo di questa tesi è quello di costruire un sistema software di supporto per Reti Ad-Hoc che risolva i problemi esposti. Lo stesso fa parte di una architettura pervasiva più estesa costituita da altri componenti software, realizzati in altre tesi in Ingegneria Informatica ed utilizzati in questa, per implementare le funzionalità richieste. L architettura è costruita sopra lo stack protocollare TCP/IP a sua volta costruito su uno strato di rete Wireless (come BlueTooth o Wi-Fi). Il componente più basso nell architettura è NSI che si occupa del routing su reti Ad-Hoc; al di sopra è presente il Predictive Layer che, analizzando la topologia, si pone l obiettivo di predire le segnalazioni, le quali vengono inviate al Coordination Layer che elabora le opportune azione correttive (Corrective Layer) da inviare al Workflow Layer che le traduce in opportune attività di supporto. Il campo delle reti MANET è tutt altro dall essere maturo e stabile; anzi al giorno d oggi rappresenta uno dei più importanti settori di ricerca e di sviluppo tecnologico. In relazione a questo, si intende sottolineare che la strada aperta in questa tesi per risolvere il problema non è l unica possibile: esistono in letteratura molti altri studi che hanno e stanno tentando di risolvere il problema con strade totalmente differenti. 5
In particolare questa tesi si colloca all interno del progetto MAIS (Multi-channel Adaptative Information System), un progetto di ricerca italiano sviluppato congiuntamente da oltre 10 università e diverse industrie per fornire un ambiente flessibile per adattare l interazione, le informazioni fornite e i servizi coerentemente come conseguenza delle mutazione nell ambiente, nel contesto e nelle esigenze dell utente. Lo schema della tesi è il seguente: Nel capitolo 1 vengono inizialmente fatti dei cenni sul funzionamento delle reti wireless e sugli standard introdotti e successivamente viene introdotto il problema del lavoro cooperativo in una rete Ad-Hoc, illustrando in dettaglio le problematiche con cui occorre scontrarsi. Nel capitolo 2 viene riassunto lo stato dell arte nel Workflow Management System (WfMS), la più importante classe di sistema per supporto al lavoro cooperativo, e dei sistemi adattivi, cioè quei sistemi capaci autonomamente senza l intervento umano di adattarsi alle mutazioni nel contesto d opera. Nel capitolo 3 vengono introdotti modelli ed algoritmi ideati e implementati per realizzare un efficiente WfMS su reti MANET. Nel capitolo 4 viene descritta, con il supporto di diagrammi progettuali, e commentata la specifica e l implementazione del WfMS su reti MANET e le scelte realizzate. 6
Nel capitolo 5 sono riepilogate le strategie di test dell intero sistema (in particolare la bontà degli algoritmi di risoluzione delle disconnessioni) Il capitolo 6 è dedicato alle osservazione e conclusioni finali. 7
1 Problematiche dei CSCW su Reti Ad Hoc Una MANET è una rete di dispositivi mobili i quali comunicano tra loro attraverso collegamenti wireless senza la presenza di una infrastruttura sottostante (come un Access Point). In una MANET ogni dispositivo agisce sia come terminale che come router, inoltrando i messaggi ai dispositivi nell intervallo radio. Le MANET rappresentano un alternativa attraente alle reti wireless infrastructurebased quando questa non è disponibile o non può essere usata oppure sembra più naturale la comunicazione diretta tra i dispositivi. Un possibile caso in cui una rete Ad-Hoc risulta l ideale è in scenari di disaster recovery: dopo un terremoto o comunque un qualsiasi evento disastroso, successivamente al primo aiuto alle popolazioni colpite, un team, capeggiato da un leader ed equipaggiato con dispositivi mobili, è inviato sul posto per verificare lo stato degli edifici; l obiettivo è quello di disegnare una mappa per organizzare i lavori di ristrutturazione. Questi operatori che formano una MANET beneficiano di uno strato software di coordinamento che gestisca la collaborazione e permetta agli attori di eseguire un insieme di attività attraverso software specifici. Questo strato è noto come CSCW, Computer Supported Cooperative Work). I CSCW generalmente richiedono una continua interconnessione, ad esempio per lo scambio di dati e informazioni, per lo scheduling di informazioni, interconnessione che tipicamente una MANET non garantisce. Quindi il CSCW, oltre a gestire il team e coordinare l assegnamento delle attività, deve prevedere 8
azioni correttive atte, per quanto più possibile, a limitare le disconnessioni anomale per mantenere la rete connessa. Nel proseguo del capitolo, nel primo paragrafo si entrerà più in dettaglio sulle caratteristiche delle reti wireless, in particolare le MANET, e nel successivo sull architettura per supportare i cooperative work su MANET, proposta in [1] e perfezionata in [2]. 1.1 Cenni sulle reti Wireless I primi risultati significativi nello sviluppo di reti wireless si ottennero nel 1997 quando il gruppo di lavoro illustrò allo IEEE lo standard 802.11 per richiederne l approvazione. Scelta importante fu quella di utilizzare come banda quella dei 2,4 GHz. Si decise di adottare tale banda di frequenze anche perché questa risultava essere esente da licenza nella maggior parte delle nazioni. Infatti la banda dei 2,4 GHz fa parte delle cosiddette bande ISM (Industrial Scientific Medical) definite dallo ITU-T (International Telecomunication Unit) per essere utilizzate a scopi industriali, scientifici e medici. La tecnologia wireless si presentava dunque come una tecnologia, che a differenza di altre (come ad esempio l UMTS), era libera ed accessibile a tutti; infatti le bande ISM possono essere utilizzate liberamente da chiunque, senza dover richiedere alcun tipo di licenza purché vengano rispettati determinati limiti sulla potenza di trasmissione e vengano utilizzate tecniche di spread spectrum per limitare le interferenze tra i dispositivi. Sono molteplici le categorie di dispositivi commerciali che utilizzano queste particolari bande di frequenza per il loro funzionamento: 9
dispositivi Bluetooth; telefoni cordless; forni a microonde; radiocomandi per cancelli; apparati radar. Un secondo motivo della scelta della banda dei 2,4 GHz è che essa risultò essere un buon compromesso tra la frequenza di trasmissione ed i suoi conseguenti effetti di riflessione, grandezze direttamente proporzionali (a 2.4 GHz è possibile coprire una distanza quattro volte superiore che a 5 GHz). 1.1.1 Cenni allo strato di Collegamento Wi-Fi Lo strato MAC ( Media Access Control ), che assieme al LLC ( Logical Link A B C A B C D Figura 1 Problema della stazione nascosta A sta trasmettendo a B; C ascolta il mezzo e lo trova libero: incomincia a trasmettere verso B. Così facendo disturba la trasmissione di A impedendo a B di riceverla. Sia A che C saranno costrette a ritrasmettere. Figura 2 Problema della stazione esposta B sta trasmettendo ad A; C vuole trasmettere a D e, ascoltando il mezzo, sente la trasmissione di B e stabilisce erroneamente di non poter trasmettere a D. Infatti essendo D fuori dal raggio di azione di B ed A fuori da quello di C le due trasmissioni potrebbero avvenire contemporaneamente. 10
Control ) costituisce lo strato di Collegamento, ha lo scopo di controllare l accesso al mezzo per evitare collisioni. Le normali tecniche di collision detection utilizzate nelle reti tradizionali non né sono adatte né efficaci per le reti wireless. Infatti, queste tecniche non sono capaci di affrontare problemi come quello di una stazione esposta (Figura 2) o di una stazione nascosta (Figura 1). Per questo motivo nelle reti wireless vengono utilizzate tecniche di collision avoidance la cui idea principale è quella di far trasmettere al destinatario un piccolo frame per avvisare le stazioni circostanti che si sta per incominciare una trasmissione. Il protocollo è il seguente: Quando A vuole trasmettere un frame a B, prima di iniziare la trasmissione invia un frame RTS (Request To Send) al quale B replica con un CTS (Clear To Send). Alla ricezione del CTS la stazione A può incominciare la sua trasmissione. All interno dei frame RTS e CTS è contenuto un valore indicante il tempo stimato per la conclusione della trasmissione, le stazioni nel raggio di azione di A e B riceveranno il RTS e/o il CTS e saranno quindi al corrente che si sta per iniziare una trasmissione nelle proprie vicinanze. Le stazioni limitrofe saranno ovviamente anche a conoscenza della durata stimata di queste trasmissioni e quindi imposteranno un apposito contatore di Carrier Sensing Virtuale, detto NAV (Network Allocation Vector), con il valore letto all interno dei frame RTS e CTS. Il NAV viene nel tempo decrementato fino a 0. Finché il valore del proprio NAV è diverso da 0 le stazioni sanno che è in atto una comunicazione nelle proprie vicinanze e quindi non cercheranno di iniziare anche loro una trasmissione. 11
Questo protocollo funziona bene solo nel caso ideale in cui le stazioni abbiano tutte lo stesso raggio di azione e che i frame RTS e CTS possano essere scambiati in tempo infinitesimo. Nella realtà però possono ancora avvenire delle collisioni e quindi al protocollo precedentemente illustrato vengono solitamente affiancate tradizionali tecniche di Carrier Sensing e acknowledgment a livello MAC. Il Carrier Sensing permette di ridurre la probabilità di collisioni dovute a tentativi contemporanei di acquisizione del mezzo mentre l acknowledgment a livello MAC ha lo scopo di ridurre i tempi di ritrasmissioni nei casi di frame danneggiati, anticipando un compito solitamente affidato allo strato di trasporto. Il protocollo utilizzato nello standard 802.11 per gestire l accesso al mezzo è il CSMA/CA (Carrier Sense Medium Access / Collision Avoidance). I passi necessari per una trasmissione tra la stazione A e quella B sono i seguenti: 1. La stazione A cerca di determinare lo stato del mezzo verificando se il valore del NAV è zero ed ascoltando il mezzo. Il canale viene considerato libero quando sia il Carrier Sensing Virtuale che quello Reale non rilevano attività. Nel caso in cui il canale risulta libero e rimane libero per un breve periodo di tempo (denominato DIFS, Distributed Inter Frame Space) si passa al punto 3, altrimenti se il canale risulta occupato (o viene occupato nel tempo di DIFS) si passa al punto 2. 2. A attende per un periodo di tempo scelto prima di tentare di ritrasmettere. Il valore del tempo di attesa viene scelto all interno di un range di valori detto Contention Window, CW. Dopo ogni tentativo di ritrasmissione fallito la dimensione della CW viene raddoppiata (fino ad un valore 12
massimo CW max ); in seguito ad una trasmissione con esito positivo, invece, la dimensione della CW viene ricondotta alla sua configurazione iniziale. La procedura che regola i tempi di attesa dalla stazione A prima delle ritrasmissioni è nota con il nome di procedura di backoff. 3. A emette un RTS. 4. Se entro un determinato intervallo di tempo A non riceve il CTS da B vuol dire che probabilmente il frame RTS ha colliso con un altro frame: questa situazione può accadere quando due stazioni hanno scelto lo stesso slot nella finestra di backoff. Per questo motivo prima di ritentare la trasmissione A raddoppia la dimensione della finestra CW (Contention Window) e poi ritorna al passo 2. 5. Quando B riceve l RTS di A risponde con un CTS. 6. Una volta ricevuto il CTS di B, A inizia la trasmissione vera e propria inviando i frame contenenti i dati. 7. Qualora A non riceva un ACK da B entro un ben preciso periodo di tempo, A ne deduce che il frame contenente i dati non è stato ricevuto correttamente e quindi A deve ritrasmetterlo ripetendo l intera procedura. 8. Una volta che la stazione B ha ricevuto correttamente l intero frame dati, essa risponde ad A inviando un ACK e concludendo così la trasmissione. La procedura di backoff, inserita nelle fasi del protocollo CSMA/CA in cui il rischio di collisione è alto, consiste nell attendere per un tempo limitato casuale (secondo l algoritmo di binary exponential backoff ) prima di ritentare la trasmissione. In tale modo si cerca di evitare che più stazioni, in attesa che il 13
canale si liberi, tentino di occupare contemporaneamente il canale non appena questo risulti essere libero. Nello standard 802.11 esistono due diverse modalità di funzionamento per il protocollo dello strato MAC: DCF (Distributed Coordination Function), le stazioni devono gestire in modo distribuito l accesso al mezzo secondo il protocollo CSMA/CA. Tutte le stazione devo supportare questa tecnica. PCF (Point Coordination Function), la gestione di accesso al mezzo è totalmente centralizzata, infatti l ordine delle trasmissioni è controllato dalla stazione base (l access point) che ciclicamente interroga (polling) tutte le stazioni della sua cella. Nella pratica è raramente implementata. La velocità di trasmissione dello standard 802.11 era al massimo di 2 Mbps e ben presto si capì che tale banda era insufficiente per la maggiore parte delle applicazioni interessate al settore wireless. Fin da subito (1997) quindi il gruppo IEEE 802.11 iniziò a lavorare su delle varianti dello standard per migliorare le prestazioni dello strato fisico lasciando inalterato lo strato MAC. In un primo momento si iniziò a lavorare sugli standard 802.11b e 802.11a che garantiscono una velocità massima (alquanto teorica), rispettivamente, di 11 e 54 Mbps e successivamente si procedette anche alla definizione dello standard 802.11g. Mentre gli standard 802.11b e 802.11g lavorano entrambi intorno alla banda 2.4 Mhz, lo standard 802.11a si colloca attorno ai 5 Mhz. L innalzamento delle frequenze utilizzate dal 802.11a ha il difetto di una minore capacità di penetrare attraverso ostacoli quali muri di mattoni e quindi di minore raggio di azione dei 14
dispositivi wireless. Ad esempio un Access Point conforme alle specifiche 802.11a copre circa un quarto dell area copribile da un Access Point di tipo b. Di contro, lavorare in una banda centrata in queste frequenze garantisce l assenza di interferenze con altri dispositivi che lavorano a 2,4 Mhz; questo aspetto può essere importante in alcuni ambienti di lavoro in cui occorre garantire un collegamento senza fili ma dove sono presenti altri apparecchi che trasmettono alla stessa frequenza dello 802.11b. Inoltre 802.11a garantisce maggiore sicurezza grazie alla maggiore predisposizione dei dispositivi ad essere aggiornati per permettere codifiche a 256 bit con AES (Advanced Encryption System). Tuttavia, a causa dello scarso raggio di azione e per l incompatibilità con il tipo b (usano diverse frequenze di lavoro) questo standard non ha avuto molta diffusione se non nelle aziende di grandi dimensioni e nei casi di necessità di elevata sicurezza. 1.1.2 Infrastructured vs Ad-Hoc Network L elemento principale nelle WLAN 802.11 è il cosiddetto BSS (Basic Service Set). Il BSS è un gruppo di stazioni, fisse o mobili, collocate geograficamente all interno di un area limitata (cella), denominata Basic Service Area, stazioni che possono stabilire tra loro connessioni dirette (Ad Hoc Network) o indirette, con l ausilio di una infrastruttura intermedia (Infrastructure Network). Nel primo caso si parla di BSS indipendente (IBBS), una rete paritetica dove i dispositivi comunicano tra loro punto-punto. Nel secondo caso invece oltre ai dispositivi che compongono il BBS è necessaria anche la presenza di un Access Point (AP) che permetta di connettere le stazioni all interno della medesima cella. 15
1.1.2.1 Infrastructured Network Una Infrastructure Network (Figura 3) è normalmente costituita da uno o più BSS backbone BSS ESS BSS Figura 3 Infrastructure Network connessi attraverso un Distribution System (DS). Il DS è indipendente dall architettura della rete wireless e pertanto può essere indifferentemente una rete wired o wireless. L intera rete comprensiva delle varie celle, deii vari Access Point ed del Distribution System è vista come una unica rete 802 denominata ESS (Extended Service Set). Se una stazione all interno di un Infrastructure BSS deve comunicare con un altra, la comunicazione è costituita da due passi. Prima l informazione passa dalla stazione trasmittente all Access Point; successivamente l Access Point provvede a trasmettere l informazione alla stazione di destinazione. Si può facilmente dedurre quindi che le due stazioni non devono 16
essere visibili tra di loro ma devono semplicemente essere all interno del raggio di azione dell Access Point. Si deduce anche che questo tipo di comunicazione in certi casi, quando ad esempio due stazioni sono vicine tra loro e lontane dall Access Point, implica un maggior consumo elettrico da parte delle stazioni rispetto ad una comunicazione diretta tra i due terminali. Per permettere di contenere al meglio i consumi elettrici dei dispositivi (attualmente uno dei principali limiti dei dispositivi portatili, vedi Capitolo 4) l Access Point è in grado di assistere i terminali in vari modi. Ad esempio, l Access Point può capire quando i dispositivi entrano in stati a basso consumo di energia e può memorizzare in appositi buffer i frame destinati a dispositivi non attivi, così da recapitarli successivamente quando tali dispositivi saranno disponibili per la ricezione. 17
1.1.2.2 Ad Hoc Network Una rete Ad Hoc (Figura 4) o MANET è costituita esclusivamente da dispositivi dotati di interfacce wireless, non vi è infatti la presenza né di un Distribution System né di un Access Point. Ciascun WT (Wireless Terminal) comunica peerto-peer con gli altri terminali appartenenti all IBSS. Data la natura della rete Ad Hoc i dispositivi che desiderano interagire tra di loro devono essere visibili l un l altro. Tipicamente le reti Ad Hoc sono reti temporanee, createsi per uno specifico scopo da un piccolo numero di dispositivi. IBSS Le caratteristiche delle MANET sono: Figura 4 Ad Hoc Network Limitata autonomia dei dispositivi che ne limita il raggio di azione; Mobilità dei dispositivi e quindi la topologia può variare nel tempo; I dispositivi svolgono le funzioni sia di host che di router (relay); Assenza di amministrazione centralizzata, assenza di costi di gestione; 18
Facilità di instaurazione. Caratteristiche come la facilità di instaurazione e la non dipendenza da una infrastruttura rendono questo tipo di reti adatte a moltissimi campi di applicazione (conferenze, campi militari, missioni di soccorso e spedizioni archeologiche, etc). Purtroppo però al giorno d oggi lo sviluppo di applicazioni distribuite per questo tipo di reti è assai limitato; il problema principale è costituito dall assenza di un servizio di instradamento. La tecnologia wireless 802.11 si riferisce infatti esclusivamente allo strato fisico (PHY) ed al livello MAC e quindi non fornisce il servizio di routing. Oltre al routing gli altri settori di ricerca nell ambito delle MANET sono: Livello di Trasporto; Livello MAC; Sicurezza; Risparmio energetico. 1.1.3 Algoritmi di routing per MANET La specifica di un algoritmo di routing efficiente per le reti Ad Hoc è tutt oggi uno dei principali obiettivi della ricerca nel campo delle MANET. Infatti le tradizionali tecniche di routing non sono adatte ad una tipologia altamente dinamica come quella delle MANET. Le caratteristiche che dovrebbe avere un buon algoritmo di routing sono: la scalabilità; la rapida convergenza; 19
un limitato overhead alla trasmissione dei dati; assorbimento limitato di energia e risorse per il mantenimento e reperimento delle informazioni necessarie per effettuare l instradamento dei pacchetti. Nelle reti MANET ogni terminale funge da relay per gli altri, ovvero deve: scoprire quali sono i terminali a lui adiacenti; comunicare a tutti quali siano i terminali da lui raggiungibili; deve determinare, con le informazioni scambiate, la topologia della rete. A causa della mobilità dei terminali, l instradamento varia nel tempo. È quindi necessario un algoritmo di routing distribuito e dinamico. Una effettiva implementazione di un algoritmo di routing su PDA (Sistema operativo Windows Mobile) è stata realizzata in C# come componente del.net COMPACT FRAMEWORK (vedi [1]) e si basa sull algoritmo Dynamic Source Routing descritto in [3]. Il DSR (Dynamic Source Routing) è un algoritmo basato sul concetto di source routing. Ovvero il mittente, per poter inviare un pacchetto, deve essere a conoscenza di un intero percorso che permetta di raggiungere il nodo a cui è destinato il pacchetto. Una volta conosciuta la route per raggiungere la destinazione il nodo sorgente inoltra il pacchetto da inviare al primo nodo sul percorso da seguire. Quando un nodo riceve un pacchetto se ne è la destinazione il pacchetto viene mandato a livello applicativo altrimenti viene inoltrato al nodo successivo. Ogni nodo che partecipa alla rete mantiene un route cache (una tabella di routing) in cui memorizza le source route di cui è venuto a conoscenza col tempo. Quando 20
un nodo deve inviare un pacchetto verifica se ha a disposizione nella route cache una route per tale destinazione. Se viene trovato un percorso, questo viene utilizzato per inoltrare il pacchetto; altrimenti il nodo inizia un procedura per la richiesta di una route: route discovery. In breve, il mittente S invia a tutti i suoi vicini una Routing Request in cui specifica la destinazione D e una lista contenente S; ogni vicino V i (S), se non conosce già una rotta per D, a sua volta invia una Routing Request a tutti i suo vicini, specificando come destinazione D e concatenando se stesso alla lista ottenuta dal vicino con la Routing Request ricevuta. Tale lista rappresenterà alla fine la rotta trovata da S a D. Se V i (S) conosce, invece, una rotta verso D, la concatena alla lista ed invia una Routing Reply verso S usando la rotta nota fino ad S. Il mittente in questo modo alla ricezione del reply viene a conoscenza di una source route verso la destinazione. Se nessuno nel cammino conosce una rotta verso la destinazione, le Routing Request si propagano fino a raggiungere la destinazione. La destinazione invia un Routing Reply usando la rotta specificata nella Routing Request ricevuta. Durante l utilizzo di una source route, il nodo controlla che l invio del messaggio avvenga correttamente sul percorso utilizzato. Potrebbe infatti accadere che un nodo, facente parte della source route, si sia spento o sia finito al di fuori del raggio di trasmissione degli altri nodi e quindi la route non permetterebbe più l invio di pacchetti. Il monitoraggio sul funzionamento delle source route individuate viene detto route maintenance. La route maintenance in DSR è limitata alla segnalazione (attraverso appositi messaggi di errore denominati 21
RERR) e individuazione di errori di trasmissione che possono essere causati da vari motivi: la route (o parte della route) utilizzata è stata reperita dalla route cache ma non è più valida; il pacchetto è stato perso o è arrivato corrotto a destinazione a causa di un errore di trasmissione; 1.2 Architettura per supportare i Cooperative Work Come già detto, un team di operatori che, supportati da dispositivi mobili, agiscono sul campo, possono formare una rete ad hoc, senza avere necessità di appoggiarsi ad una infrastruttura preesistente, forse non disponibile o utilizzabile. È questo, come accennato, il caso di scenari di emergenza in cui i membri del gruppo devono collaborare per raggiungere un obiettivo condiviso, traendo beneficio da un software che supporti la loro collaborazione che, genericamente, prende il nome di Computer Supported Cooperative Work. I CSCW richiedono che i dispositivi da coordinare siano continuamente interconnessi, per lo scambio di informazioni, lo scheduling delle attività, e il coordinamento. Se i dispositivi che cooperano formassero una LAN cablata standard (come Ethernet) o anche una rete Wireless in cui gli stessi sono pressoché fermi, problemi non ci sarebbero perché le disconnessioni sarebbero cosa alquanto rara. Purtroppo, però, in scenari in cui i dispositivi wireless formano una MANET e tendono a muoversi per eseguire le attività cui sono addetti, le disconnessioni sono frequenti e l interconnessioni non sono comunque garantite. Lo strato software di 22
coordinamemento (coordination layer), oltre a gestire il lavoro cooperativo, deve prendere in considerazione le possibili disconnessioni e prevedere azioni atte a mantenere tutti i dispositivi connessi.come esempio, riprendiamo in esame lo scenario di disaster/recovery (ad esempio quello in Figura 5): dopo un terremoto, un team, capeggiato da un leader, è equipaggiato con dispositivi mobili (PC portatili e palmari) e inviato nell area colpita per valutare lo stato degli edifici con l obiettivo di costruire una mappa della zona per conoscere quale edifici necessitano di ristrutturazione. Ogni dispositivo di ogni membro fornisce una serie di servizi ed è connesso con gli altri a formare una MANET 2 la cui topologia può cambiare con il movimento degli operatori per eseguire le attività. Magazzino immagini Area di intervento Confronto Museo Campanile pericolante Fotocamera Caposquadra Membro libero Chiesa di S.Francesco Figura 5 Un possibile scenario di disaster/recovery 2 Nella figura i link diretti sono tratteggiati in rosso. Si osservi come non sia necessario che ogni dispositivo sia connesso direttamente con tutti gli altri 23