Abbiamo gi`a detto che le supposizioni di Weiser sullo sviluppo delle tecno- logie erano corrette. Gi`a oggi una stanza contiene decine di computer dotati
di connessioni wireless; eppure non ci troviamo ancora nel mondo da lui au- spicato. I computer sono davvero “onnipresenti”, e spesso di dimensioni cos`ı piccole da farci dimenticare che lo sono; ma manca quella “coesione”, quella “cooperazione” tra dispositivi tipica del pervasive computing.
Le limitazioni hardware che rendevano questo concetto poco pi`u di una “visione futuristica” sono ormai superati; nonostante questo, dal punto di vista del software esistono ancora molteplici problemi di ricerca aperti, che cercheremo di riassumere nelle prossime righe.
Da un certo punto di vista il pervasive computing pu`o essere visto come un passo evolutivo a partire da due settori di ricerca sviluppatisi a partire dagli anni ’70: i sistemi distribuiti e il mobile computing. Infatti molti dei problemi tipici di questi sistemi si ritrovano nel pervasive computing, insieme ad altri completamente nuovi e caratteristici di quest’ultimo. A tal proposito in figura 2.1 riprendiamo la tassonomia proposta in [65], in cui si raggruppano i problemi del pervasive computing in tre grandi categorie:
• Derivati dai sistemi distribuiti. • Derivati dal mobile computing. • Introdotti dal pervasive computing.
2.2.1
Sistemi Distribuiti
Il campo dei sistemi distribuiti nacque negli anni ’70 con l’avvento dei per- sonal computer e delle reti locali. La ricerca nel settore `e continuata fino ai primi anni ’90, e ha portato a basi concettuali e algoritmiche molto solide, valide per tutti i casi in cui due o pi`u computer connessi tramite rete (sia essa cablata o non, mobile o statica) devono comunicare. Riportiamo qui le ricer- che che si applicano anche al pervasive computing; per un approfondimento si veda [65].
• comunicazioni remote, quindi strutturazione dei protocolli a livelli e suddivisione delle funzionalit`a tra di essi, tecniche remote procedure call, uso dei timeout, etc.
• tolleranza ai fallimenti: transazioni atomiche e distribuite, commit a due fasi, etc.
• alta disponibilit`a dei servizi: gestione della replicazione, mirrored execution, etc.
Figura 2.1: I problemi di ricerca introdotti dal pervasive computing, e quelli derivati dai settori gi`a esistenti
Mobile networking Accesso ad informazioni mobili Supporto per applicazioni adattive Tecniche di risparmio di energia Conoscenza della posizione Comunicazioni remote Tolleranza ai fallimenti Alta disponibilità dei servizi Accesso ad informazioni remote Sicurezza
Utilizzo degli smart spaces Invisibilità Scalabilità localizzata Nascondere lo "Uneven Conditioning"
Sistemi Distribuiti Mobile Computing Pervasive Computing
• accesso ad informazioni remote: database e file system remoti, tecniche di caching, etc.
• sicurezza: tecniche di crittografia, autenticazione sicura e gestione della privacy.
2.2.2
Mobile Computing
Il settore del mobile computing `e relativamente nuovo rispetto ai sistemi distribuiti: si sviluppa verso la fine degli anni ’80 con l’avvento dei primi computer portatili e delle reti wireless. Rappresenta una estensione del pre- cedente, in cui i nodi sono anche di tipo mobile. Fondamentalmente tutti i principi base dei sistemi distribuiti sono riportabili in questo settore, ma devono fare i conti con alcune limitazioni tipiche dei sistemi mobili: varia- zioni imprevedibili della qualit`a della rete,risorse locali limitate e risparmio energetico.
Rispetto al precedente, questo `e un settore ancora aperto ed in continua evoluzione. I risultati attuali possono essere raggruppati nelle seguenti aree [65]:
• mobile networking: protocolli ad hoc e tecniche di ottimizzazione di quelli standard per migliorare la performance delle reti wireless.
• accesso ad informazioni mobili: gestione delle disconnessioni dei computer, ottimizzazione della banda, etc.
• supporto per applicazioni adattive: gestione adattiva delle risorse, etc.
• tecniche di risparmio di energia: applicazioni energy-aware, pro- cessori con velocit`a variabile e gestione della memoria energy-sensitive.
• conoscenza della posizione: tecniche per dedurre la posizione geo- grafica e applicazioni con comportamenti dipendenti dalla posizione.
2.2.3
Nuovi problemi
Il pervasive computing eredita tutti i problemi sopra descritti, estremizzandoli a causa del gran numero di dispositivi interconnessi e all’alta mobilit`a degli stessi. Ne vengono poi aggiunti di nuovi, in particolare:
• Utilizzo degli “Smart Spaces”: la diffusione di un gran numero di dispositivi embedded all’interno di un’area chiusa pu`o essere sfruttata per “acquisire” dati da essa e modificarne le caratteristiche. Dotando i dispositivi di sensori, infatti, questi possono avere una certa percezione dello spazio; con degli attuatori, invece, modificare le caratteristiche dell’ambiente nell’ottica di renderlo pi`u consono agli utenti presenti. Il risultato finale `e uno “spazio intelligente”, che si auto-adatta in base alla percezione dell’ambiente e degli utenti in esso presenti.
• Invisibilit`a: uno dei principi base del pervasive computing, gi`a dal- la prima idea di Weiser, era la completa “invisibilit`a” dei dispositivi elettronici da parte dell’utente. Alcune ricerche dimostrano come una buona approssimazione di questo concetto `e data dal minimal user di- straction, ovvero richiedere l’intervento dell’utente il meno possibile e, al tempo stesso, non deludere le sue aspettative; in questo modo l’u- tente `e portato a non interagire direttamente con i dispositivi pervasivi e “dimenticarsi” di essi.
• Scalabilit`a localizzata: un concetto che nasce principalmente in que- sto settore, dove l’enorme numero di dispositivi presenti rende il proble- ma della scalabilit`a ancora pi`u pressante. Una delle idee promettenti `e quella di studiare un concetto di scalabilit`a legato alla distanza tra i dispositivi: in un ambiente pervasivo, cos`ı come nel mondo reale, le interazioni tra dispositivi sono proporzionali alla loro vicinanza, men- tre all’allontanarsi di essi si diradano, in quanto considerate “meno rilevanti”.
• Nascondere lo “Uneven Conditioning”: con il termine “uneven conditioning” si indica la grande irregolarit`a (dal punto di vista “per- vasivo”) degli ambienti in cui l’utente si pu`o trovare. Dobbiamo consi- derare infatti che ci vorranno decine di anni prima che ogni luogo sia pieno di dispositivi embedded e quindi adatto alla massima espressio- ne del pervasive computing. Fino a quel momento ci saranno grosse differenze di “intelligenza” tra ambienti diversi, che devono in qualche modo essere mascherate all’utente, sempre per il principio dell’invisi- bilit`a. Per questo motivo sono necessarie tecniche che permettano di compensare queste differenze, in modo da nasconderle il pi`u possibile all’utente.
Nella ricerca sul pervasive computing due tecniche promettenti per risol- vere alcuni dei punti sopra descritti sono adattivit`a e context awareness.