Caratteristiche principali di un Sistema Pervasivo

Caratteristiche principali di un Sistema Pervasivo

Ogni singolo ambiente è contraddistinto da componenti o unità software che implementano astrazioni di servizi, clienti, risorse o applicazioni ed, in generale, ogni ambiente è costituito da un’infrastruttura fissa e da una serie di elementi mobili che, in maniera del tutto impredicibile, entrano a far parte del sistema e lo abbandonano continuamente, talvolta migrando fra i diversi domini: tutti i componenti dell’ambiente devono essere in grado di interagire fra di loro.
A partire da queste considerazioni è possibile individuare una serie di aspetti di carattere generale e indicazioni di fondamentale importanza per l’analisi, lo sviluppo e l’implementazione di un sistema di pervasive computing. Vediamo dunque tutte le caratteristiche principali che un sistema pervasivo deve avere affinchè questo sia tale.

Caratteristiche principali di un Sistema Pervasivo

Context Information e Run-time Adaptation

Una prerogativa di un sistema pervasivo è che sia in grado di ottenere informazioni sugli utenti e sullo stato dell’ambiente, come ad esempio, la posizione e l’identità dei singoli utenti e la disponibilità delle risorse.
Un aspetto fondamentale del pervasive computing consiste, quindi, nel collezionare dati grezzi da una moltitudine di sorgenti, processare i dati, trasformarli in informazioni di contesto e condividere le informazioni tra le diverse applicazioni in esecuzione sui vari dispositivi, cercando di mantenere la scalabilità, di garantire la sicurezza delle informazioni, inibendo accessi non autorizzati e rispettando la privacy individuale.
In base a queste informazioni, le applicazioni possono adattare il loro comportamento in maniera diversa a seconda dei casi. Possiamo definire due tipi di adattamento: funzionale o strutturale.
Un esempio di adattamento funzionale può essere rappresentato da un’applicazione che fornisce news in un ambiente: il tipo di notizie che vengono fornite potrebbe essere determinato in base a chi si trova nell’ambiente o all’ora della giornata.

Task Recognition e Pro-activity

Un sistema di pervasive computing dovrebbe essere capace, a partire dalle informazioni di contesto collezionate, di elaborare sullo stato corrente dell’ambiente e sulle intenzioni dell’utente e modificare dinamicamente il proprio comportamento per assisterlo nelle sue attività.
Diversamente dai sistemi di computing convenzionali in cui il comportamento del computer è principalmente composto di risposte all’interazione con l’utente, il pervasive computing mira alla realizzazione di un modello in cui i dispositivi sono la parte attiva nell’interazione con l’utente. Quindi se la tecnologia corrente si basa su persone che indicano ai computer ciò che devono fare, la nuova generazione di tecnologie dovrebbe essere basata su computer capaci di comprendere quello che le persone stanno facendo e quello che esse desiderano.
I modelli che tengono conto dell’esperienza, del passato, rappresentano un importante strumento per la caratterizzazione di un sistema pervasivo, perché favoriscono la pro-activity del sistema, ossia consentono di determinare, in accordo con i precedenti comportamenti dell’utente, le azioni ottimali che l’utente stesso deve eseguire in determinate situazioni.

Resource Abstraction e Discovery

Le risorse di un sistema pervasivo dovrebbero essere rappresentate in maniera astratta (magari attraverso le caratteristiche anziché con i nomi) cosicché possano facilmente essere selezionate in base a requisiti di tipo generale oltre che specifico. Potrebbe essere necessario definire alcune convenzioni di nomi per evitare che differenti risorse descrivano se stesse adoperando gli stessi termini offrendo, però, servizi diversi.
Dovrebbero essere previsti anche dei meccanismi per scoprire, interrogare ed interagire con le risorse nell’ambiente, per consentire l’introduzione di nuovi componenti senza onerose operazioni di configurazione e di riconfigurazione dei componenti esistenti.

Eterogeneity e Service UI Adaptation

Un ambiente pervasivo è caratterizzato da una moltitudine di dispositivi eterogenei, in numero variabile, come laptop, PDA, telefoni mobili.
Alla riduzione delle dimensione dei dispositivi dell’ambiente corrisponde una maggiore crescita del numero di dispositivi connessi ed una intensificazione delle interazioni uomo-macchina.
Lo sviluppo tradizionale fornisce servizi tipicamente distribuiti e istallati separatamente per ogni classe di dispositivo e famiglia di processore. Gli scenari di computing pervasivo, invece, portano alla conclusione che distribuire ed installare servizi per ogni classe e famiglia diventa ingestibile, specialmente in un’area geografica molto estesa.
E’ importante, quindi, che i servizi forniscano agli utenti interfacce che possano adattarsi alle caratteristiche del dispositivo client, senza stravolgere le funzionalità del servizio stesso.

Security e Privacy

Un sistema pervasivo generalmente gestisce grosse quantità di informazioni, molte delle quali acquisite tramite sensori e riguardanti gli utenti.
Dal punto di vista dell’utente, è desiderabile che vengano rispettati i principi di privacy e che sia garantita la sicurezza di queste informazioni.
Ad esempio, risulta fastidioso sapere che la stazione di polizia più vicina possa conoscere in quale stanza ci si trovi nella propria casa, attraverso i rilevatori di moto del sistema d’allarme, o quanto alcool si sta consumando, deducendo questa informazione dal sistema che gestisce l’inventario degli alimenti.
D’altra parte, in molte situazioni, una certa perdita di privacy può essere tollerata, come ad esempio in situazioni di pericolo.
Per aggiungere sicurezza alle informazioni, i servizi nell’ambiente non dovrebbero consentire accessi non autorizzati: ad esempio, a casa propria, non dovrebbe essere possibile per un ospite, aumentare il riscaldamento o controllare il funzionamento del forno.

Fault-tolerance e Scalability

Gli ambienti pervasivi costituiscono sistemi “perennemente” attivi. Pertanto, un componente che subisce un guasto non deve compromettere il funzionamento generale dell’intero sistema, né richiedere una complessa tecnica di gestione.
I componenti che cadono dovrebbero automaticamente ripartire, laddove possibile, magari adoperando, ad esempio, memorie di stato persistenti che consentano di effettuare resume rapidi ed efficaci.
Dunque, il sistema deve garantire scalabilità, ossia essere in grado di gestire e assicurare il suo funzionamento anche in seguito all’aggiunta di componenti; allo stesso tempo, i nuovi dispositivi e servizi introdotti nell’ambiente non dovrebbero interferire con quelli esistenti.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *