Simone Mora - PhD Interview at ITU
Upcoming SlideShare
Loading in...5
×
 

Simone Mora - PhD Interview at ITU

on

  • 1,201 views

 

Statistics

Views

Total Views
1,201
Views on SlideShare
1,193
Embed Views
8

Actions

Likes
2
Downloads
5
Comments
0

2 Embeds 8

http://www.slideshare.net 6
http://www.lmodules.com 2

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • Buongiorno a tutti, sono Simone Mora e vi parler&#xF2; del mio tirocinio presso il dipartimento di Computer Science della Norwegian University of Science and Technology, dove ho lavorato 11 mesi come ricercatore all&#x2019;interno del progetto UbiCollab e del progetto europeo ASTRA, progettando e implementando moduli software nel campo del Service Discovery. <br />
  • UbiCollab &#xE8; una piattaforma tecnologica che mira a facilitare la collaborazione e l&#x2019;interazione con dispositivi tra persone geograficamente distribuite. <br /> Questa griglia di persone, dispositivi e le connessioni che permetto di comunicare tra loro forma la struttura base di UbiCollab. <br /> L&#x2019;informatica &#xE8; sempre pi&#xF9; pervasiva e distribuita, ognuno ormai ha nelle proprie tasche diversi dispositivi che deve amministrare e far comunicare tra loro. Come sappiamo infatti la tecnologia crea dispositivi sempre pi&#xF9; piccoli e versatili ma a volte non fornisce un sistema semplice e alla portata di tutti per interagire con essi. Inoltre l&#x2019;utilizzo della tecnologia &#xE8; sempre pi&#xF9; mobile, spesso ci si trova a dover usufruire di servizi avanzati direttamente dal proprio palmare o telefono. <br /> Durante il mio periodo di ricerca, partendo dalle specifiche del progetto, ho progettato e implementato una soluzione per l&#x2019;installazione e l&#x2019;uso di questi dispositivi all&#x2019;interno della griglia affrontando sia aspetti prettamente tecnici che aspetti riguardanti l&#x2019;usabilit&#xE0;. <br /> <br /> <br />
  • Vediamo ora in quali scenari pu&#xF2; essere utile questa tecnologia. <br /> UbiCollab &#xE8; stato progettato come una piattaforma generica, capace di adattarsi dinamicamente a vari scenari d&#x2019;uso. <br /> Abbiamo creato l&#x2019;infrastruttura e gli strumenti per permettere agli sviluppatori di scrivere applicazioni specifiche per certi casi d&#x2019;uso; inoltre, essendo UbiCollab rilasciato con licenza OpenSource chiunque pu&#xF2; sviluppare applicazioni. <br /> Vediamo qui in quali campi pu&#xF2; essere utile questa tecnologia: <br /> -Scenari in cui vi &#xE8; condivisione di Informazioni, come accade nei social network <br /> -Scenari che richiedono accesso a dispositivi: sensori, attuatori; come accade per applicazioni di Home Automation <br /> -Scenari che richiedono accesso sia a informazioni ma che a dispositivi come avviene per applicazioni di assistenza medica remota. <br /> Questi ultimi due scenari necessitano di un sistema (chiamato Service Discovery) per trovare e utilizzare i dispositivi attorno a noi, che diventeranno quindi parte della griglia di UbiCollab. <br /> Questo meccanismo, dovendo essere usato da un&#x2019;ampia parte della popolazione inclusi anziani e malati deve essere il pi&#xF9; immediato possibile. <br />
  • Vediamo qui gli aspetti principali della piattaforma: <br /> -Mobile: in quanto eseguibile su dispositivi portatili e non richiede hardware dedicato ma pu&#xF2; essere eseguito sui comuni palmari e smarthphone capaci di eseguire una Java Virtual Machine per Mobile. <br /> -Service Oriented: in quanto il codice &#xE8; incapsulato in moduli che espongono e consumano servizi tra loro all&#x2019;interno del framework e verso dispositivi esterni tramite WebServices. <br /> -Extendible without extensive coding: poich&#xE8; l&#x2019;implementazione di applicazioni per UbiCollab non richiede la conoscenza o la modifica dei moduli base dell&#x2019;architettura, inoltre &#xE8; stata creata una SDK contente documentazione, componenti e widget grafici che possono essere utilizzati dagli sviluppatori. <br /> <br />
  • Vediamo ora come l&#x2019;utente pu&#xF2; interagire con questa griglia di dispositivi. <br /> Ogni utente di UbiCollab utilizza uno smartphone o computer palmare, chiamato UbiNode, che funge da personal server. <br /> In questo dispositivo sono eseguiti un insieme di moduli core e alcuni moduli addizionali, quali applicazioni e plugin, che possono venire installati dall&#x2019;utente, vedremo in seguito in che modo. <br /> Come abbiamo detto questo dispositivo deve interagire con altre periferiche esterne, questo avviene tramite un modulo di service discovery che permette di installare e successivamente amministrare i dispositivi che interagiscono con l&#x2019;UbiNode. <br /> Il problema di SD non &#xE8; banale &#xE8; comporta l&#x2019;interazione di vari moduli: <br /> -Ad esempio nel caso di dispositivi fissi, quando l&#x2019;utente installa un nuovo dispositivo e poi l&#x2019;ascia l&#x2019;ambiente in cui questo risiede il sistema deve essere in grado (in alcuni scenari) di nascondere all&#x2019;utente il dispositivo installato e riattivarlo quando si fa ritorno nell&#x2019;ambiente in qui questo risiede. /*Si pensi ad esempio all&#x2019;utente che migra quotidianamente tra casa e ufficio.*/ Questa operazione &#xE8; svolto dal modulo &#x201C;Space Manager&#x201D; il quale tagga ogni risorsa installata con il nome dell&#x2019;ambiente in cui risiede. <br /> -Allo stesso tempo un utente potrebbe volere dare ad altri utenti accesso alle risorse installate nel proprio UbiNode, instaurando quella che viene chiamata &#x201C;Collaboration Istance&#x201D; e ci&#xF2; avviene grazie al modulo &#x201C;Collaboration Manager&#x201D; <br /> <br /> Iniziando a Progettare i moduli dedicati al Service Discovery ho prima analizzato quali meccanismi sono attualmente disponibili per installare o associare al proprio palmare un dispositivo esterno. <br /> <br />
  • Questi meccanismi che ho chiamato Retroactive sono le classiche procedure per associare il proprio computer o palmare ad una periferica che siamo abituati ad utilizzare, ovvero: <br /> -Installando un driver: tramite cd ma dovendo quindi collegare il palmare ad una postazione fissa, oppure scaricandolo da internet ma in questo caso l&#x2019;utente inesperto pu&#xF2; avere difficolt&#xE0; a il nome e modello della propria periferica e cercare il corrispondente driver su internet. <br /> -Oppure, come accade soprattutto in ambiente lavorativo, si pu&#xF2; installare una periferica (es. una stampante) cercandola in server di stampa o in una directory condivisa. Solitamente questo approccio porta l&#x2019;utente a scorrere una lunga serie di risultati -il che &#xE8; difficoltoso su display di dimensioni limitate- e questi risultati spesso includono anche periferiche locate in un altro edificio oppure chiuse dietro la porta dell&#x2019;ufficio di un collega. <br /> -Infine ci sono protocolli &#x201C;self-advertized&#x201D;, nati per periferiche mobili, come ad es. il Bluetooth, che pur risolvendo parte dei problemi appena elencati non sono ancora del tutto immediati in quanto l&#x2019;utente deve ricordarsi il nome della periferica, problematico quando vi sono pi&#xF9; periferiche dello stesso tipo vicine, e in alcuni casi anche una passkey necessaria per accedervi. <br /> In questi contesti condividere la stessa periferica tra pi&#xF9; persone non fa altro che aumentare le difficolt&#xE0;. <br /> <br /> Ho quindi concluso che questi metodi di service discovery sono poco efficaci dal punto di vista dell&#x2019;usabilit&#xE0; soprattutto in un ambiente mobile e non soddisfavano i requisiti del progetto che prevedono un sistema totalmente mobile e l&#x2019;uso da parte di malati e anziani. <br /> <br />
  • Di coseguenza ho deciso di adottare un approccio nuovo al Service Discovery, definito proactive, nel quale, vengono utilizzate tecnologie di Object Tagging quali tag RFID, codici a barre bidimensionali e codici a barre numerici per associare al proprio UbiNode nuovi dispositivi. <br /> Ritengo che questo approccio sia pi&#xF9; immediato in quanto richiede che l&#x2019;utente compia operazioni naturali quali ad esempio far sfiorare o mettere a contatto i due oggetti da associare nel caso dell&#x2019;RFID. Oppure compiere azioni che stanno diventando sempre pi&#xF9; comuni come fare una foto con il proprio cellulare al dispositivo (e quindi al codice a barre associato) che si vuole utilizzare. <br /> <br /> Il modulo di Service Discovery cos&#xEC; progettato si avvale plugins ognuno dei quali implementa il riconoscimento di un tipo di tag. Ci&#xF2; vuol dire che i plugin, essendo a loro volta moduli, possono essere mutualmente installati. <br />
  • Vediamo in dettaglio come funziona: <br /> 1)Ad Ogni dispositivo &#xE8; associato un nome e vengono codificati uno o pi&#xF9; tag, la scelta di assegnare pi&#xF9; tag ad ogni dispositivo &#xE8; giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico &#xE8; possibile che non tutti i palmari abbiano a disposizione un lettore RFID o una fotocamera, quindi viene assegnato anche un codice numerico visto che si presuppone che, alla peggio, tutti questi dispositivi abbiano in comune una modalit&#xE0; di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere pi&#xF9; efficaci di altri in determinati scenari. <br /> 2) Questi tag sono resi noti all&#x2019;utente tramite un &#x201C;Service Advertisement&#x201D; che pu&#xF2; essere riportato un&#x2019;etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso) <br /> 3) Dopo che l&#x2019;utente tramite l&#x2019;UbiNode, ha letto uno a scelta tra i tag, questo scarica e installa, da un repository remoto, un modulo (un driver) per poter accedere alla risorsa, infine mostra all&#x2019;utente un&#x2019;interfaccia per poter pilotare la risorsa. <br /> Conseguentemente l&#x2019;utente diviene l&#x2019;amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui &#xE8; stata trovata (Space Manager) o pubblicandola ad altri utenti. <br />
  • Vediamo in dettaglio come funziona: <br /> 1)Ad Ogni dispositivo &#xE8; associato un nome e vengono codificati uno o pi&#xF9; tag, la scelta di assegnare pi&#xF9; tag ad ogni dispositivo &#xE8; giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico &#xE8; possibile che non tutti i palmari abbiano a disposizione un lettore RFID o una fotocamera, quindi viene assegnato anche un codice numerico visto che si presuppone che, alla peggio, tutti questi dispositivi abbiano in comune una modalit&#xE0; di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere pi&#xF9; efficaci di altri in determinati scenari. <br /> 2) Questi tag sono resi noti all&#x2019;utente tramite un &#x201C;Service Advertisement&#x201D; che pu&#xF2; essere riportato un&#x2019;etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso) <br /> 3) Dopo che l&#x2019;utente tramite l&#x2019;UbiNode, ha letto uno a scelta tra i tag, questo scarica e installa, da un repository remoto, un modulo (un driver) per poter accedere alla risorsa, infine mostra all&#x2019;utente un&#x2019;interfaccia per poter pilotare la risorsa. <br /> Conseguentemente l&#x2019;utente diviene l&#x2019;amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui &#xE8; stata trovata (Space Manager) o pubblicandola ad altri utenti. <br />
  • Vediamo in dettaglio come funziona: <br /> 1)Ad Ogni dispositivo &#xE8; associato un nome e vengono codificati uno o pi&#xF9; tag, la scelta di assegnare pi&#xF9; tag ad ogni dispositivo &#xE8; giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico &#xE8; possibile che non tutti i palmari abbiano a disposizione un lettore RFID o una fotocamera, quindi viene assegnato anche un codice numerico visto che si presuppone che, alla peggio, tutti questi dispositivi abbiano in comune una modalit&#xE0; di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere pi&#xF9; efficaci di altri in determinati scenari. <br /> 2) Questi tag sono resi noti all&#x2019;utente tramite un &#x201C;Service Advertisement&#x201D; che pu&#xF2; essere riportato un&#x2019;etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso) <br /> 3) Dopo che l&#x2019;utente tramite l&#x2019;UbiNode, ha letto uno a scelta tra i tag, questo scarica e installa, da un repository remoto, un modulo (un driver) per poter accedere alla risorsa, infine mostra all&#x2019;utente un&#x2019;interfaccia per poter pilotare la risorsa. <br /> Conseguentemente l&#x2019;utente diviene l&#x2019;amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui &#xE8; stata trovata (Space Manager) o pubblicandola ad altri utenti. <br />
  • Vediamo in dettaglio come funziona: <br /> 1)Ad Ogni dispositivo &#xE8; associato un nome e vengono codificati uno o pi&#xF9; tag, la scelta di assegnare pi&#xF9; tag ad ogni dispositivo &#xE8; giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico &#xE8; possibile che non tutti i palmari abbiano a disposizione un lettore RFID o una fotocamera, quindi viene assegnato anche un codice numerico visto che si presuppone che, alla peggio, tutti questi dispositivi abbiano in comune una modalit&#xE0; di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere pi&#xF9; efficaci di altri in determinati scenari. <br /> 2) Questi tag sono resi noti all&#x2019;utente tramite un &#x201C;Service Advertisement&#x201D; che pu&#xF2; essere riportato un&#x2019;etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso) <br /> 3) Dopo che l&#x2019;utente tramite l&#x2019;UbiNode, ha letto uno a scelta tra i tag, questo scarica e installa, da un repository remoto, un modulo (un driver) per poter accedere alla risorsa, infine mostra all&#x2019;utente un&#x2019;interfaccia per poter pilotare la risorsa. <br /> Conseguentemente l&#x2019;utente diviene l&#x2019;amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui &#xE8; stata trovata (Space Manager) o pubblicandola ad altri utenti. <br />
  • Vediamo in dettaglio come funziona: <br /> 1)Ad Ogni dispositivo &#xE8; associato un nome e vengono codificati uno o pi&#xF9; tag, la scelta di assegnare pi&#xF9; tag ad ogni dispositivo &#xE8; giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico &#xE8; possibile che non tutti i palmari abbiano a disposizione un lettore RFID o una fotocamera, quindi viene assegnato anche un codice numerico visto che si presuppone che, alla peggio, tutti questi dispositivi abbiano in comune una modalit&#xE0; di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere pi&#xF9; efficaci di altri in determinati scenari. <br /> 2) Questi tag sono resi noti all&#x2019;utente tramite un &#x201C;Service Advertisement&#x201D; che pu&#xF2; essere riportato un&#x2019;etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso) <br /> 3) Dopo che l&#x2019;utente tramite l&#x2019;UbiNode, ha letto uno a scelta tra i tag, questo scarica e installa, da un repository remoto, un modulo (un driver) per poter accedere alla risorsa, infine mostra all&#x2019;utente un&#x2019;interfaccia per poter pilotare la risorsa. <br /> Conseguentemente l&#x2019;utente diviene l&#x2019;amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui &#xE8; stata trovata (Space Manager) o pubblicandola ad altri utenti. <br />
  • Vediamo in dettaglio come funziona: <br /> 1)Ad Ogni dispositivo &#xE8; associato un nome e vengono codificati uno o pi&#xF9; tag, la scelta di assegnare pi&#xF9; tag ad ogni dispositivo &#xE8; giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico &#xE8; possibile che non tutti i palmari abbiano a disposizione un lettore RFID o una fotocamera, quindi viene assegnato anche un codice numerico visto che si presuppone che, alla peggio, tutti questi dispositivi abbiano in comune una modalit&#xE0; di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere pi&#xF9; efficaci di altri in determinati scenari. <br /> 2) Questi tag sono resi noti all&#x2019;utente tramite un &#x201C;Service Advertisement&#x201D; che pu&#xF2; essere riportato un&#x2019;etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso) <br /> 3) Dopo che l&#x2019;utente tramite l&#x2019;UbiNode, ha letto uno a scelta tra i tag, questo scarica e installa, da un repository remoto, un modulo (un driver) per poter accedere alla risorsa, infine mostra all&#x2019;utente un&#x2019;interfaccia per poter pilotare la risorsa. <br /> Conseguentemente l&#x2019;utente diviene l&#x2019;amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui &#xE8; stata trovata (Space Manager) o pubblicandola ad altri utenti. <br />
  • Per testare l&#x2019;architettura ho sviluppato varie applicazioni. Una di queste permette di accendere e spegnere dispositivi connessi alla rete elettrica, comuni lampade in questo esempio. <br /> Utilizzo questa applicazione per mostrare tramite un breve filmato come avviene l&#x2019;interazione tra l&#x2019;UbiNode e l&#x2019;utente: <br />
  • A livello tecnico l&#x2019;azione di lettura di un tag da parte dell&#x2019;utente comporta il download e l&#x2019;installazione all&#x2019;interno dell&#x2019;UbiNode di un modulo chiamato proxy, il cui indirizzo all&#x2019;interno del repository &#xE8; codificato nel tag. <br /> Un proxy &#xE8; quindi un&#x2019;astrazione di una dispositivo esterno, che pu&#xF2; essere creato da terze parti, all&#x2019;interno dell&#x2019;Ubinode <br /> Una volta attivato il proxy espone due interfacce, una verso il dispositivo remoto che implementa quindi il protocollo di comunicazione nativo della risorsa, WebService in questo esempio; e una verso gli altri moduli di UbiCollab permettendo cos&#xEC; ad una applicazione di accedere e pilotare la risorsa remota. <br />
  • Un applicazione per UbiCollab &#xE8; un modulo, che pu&#xF2; essere creato tramite la SDK fornita agli sviluppatori, il quale espone una ho pi&#xF9; interfacce utente (touch, voce, ad esempio) con le quali l&#x2019;utente pu&#xF2; interagire con altri dispositivi attraverso uno o pi&#xF9; proxy. <br /> Essendo le applicazioni, moduli queste possono essere installate con la stessa procedura che abbiamo visto per i proxy. <br />
  • ASTRA &#xE8; un progetto finanziato dall&#x2019;Unione europea di cui il dipartimento in cui ho lavorato &#xE8; patner, che, come UbiCollab, aiuta i suoi utenti a tenersi in contatto e a pianificare eventi creando un senso di awareness ovvero presenza tra le attivit&#xE0; dei suoi utenti. <br /> A differenza di UbiCollab ASTRA &#xE8; web-based e non dispone di un meccanismo propretario per interagire con dispositivi esterni. <br /> Mi &#xE8; stato quindi chiesto dai miei supervisori di valutare la possibilit&#xE0; di integrare i due progetti in modo da fornire agli utenti di ASTRA le modalit&#xE0; di interazione con i dispositivi proprie di UbiCollab. <br /> E&#x2019; stato possibile effettuare questa integrazione &#xE8; ci&#xF2; e stato anche una grossa prova di flessibilit&#xE0; dell&#x2019;architettura modulare di UbiCollab che ora permette quindi l&#x2019;accesso alle risorse nella griglia anche da applicazioni create per ASTRA. <br /> Tecnicamente questa integrazione &#xE8; stata effettuata implementando un modulo, AstraConnector, che fornisce delle notifiche PUSH ad ASTRA relativamente alle risorse che vengono installate negli UbiNode e allo stesso tempo permettendo l&#x2019;accesso a queste risorse creando, tramite la Java Reflection, delle istanze in UbiCollab delle applicazioni eseguite in ASTRA. <br /> Questo modulo &#xE8; attualmente in fase di revisione da parte della UE. <br />
  • Ci&#xF2; avviene in modo trasparente per l&#x2019;utente <br />
  • Per testare l&#x2019;intero ciclo di utilizzo di un&#x2019;applicazione, dall&#x2019;installazione al normale utilizzo, ho sviluppato un&#x2019;applicazione per assistenza medica remota. <br /> Abbiamo il prototipo di una maglietta, indossata dal paziente, che &#xE8; in grado di rilevare tramite sensori la pressione sanguigna. Questa maglietta comunica con un applicazione eseguita sull&#x2019;UbiNode mostrando il valore rilevato dai sensori. Nel caso che questo valore scenda sotto una determinata soglia l&#x2019;ubinode &#xE8; in grado di mandare un SMS contente i dati del paziente: nome, valore rilevato dal sensore, coordinate geografiche. <br />
  • Qui vediamo le tecnologie di terze parti che ho utilizzato in UbiCollab. <br /> -La modularizzazione &#xE8; ottenuta grazie a OSGi che permette di gestire il ciclo di vita (istallazione,uso, disattivazione) di un modulo a runtime senza dover riavviare la JVM <br /> -La virtual machine utilizzata &#xE8; la J9 di IBM che implementa le specifiche sun per java mobile <br /> -Le GUI sono state realizzate grazie alle runtime della Eclipse foundation <br /> -Axis &#xE8; stato utilizzato come motore per i WebService <br /> -Il protocollo X10 &#xE8; stato usato nell&#x2019;esempio sulla domotica, permette di comunicare con dispositivi connessi alla rete elettrica tramite onde convogliate <br /> -Phidgets &#xE8; l&#x2019;azienda che ha prodotto i sensori e le librerie utilizzate per l&#x2019;applicazione biomedica <br />
  • Conludendo presento gli sviluppi che il progetto avr&#xE0; in futuro. <br /> In novembre abbiamo fatto diverse sessioni di user-testing, ovvero abbiamo chiamato persone di diversa et&#xE0; e competenze facendogli provare il sistema senza fornire istruzioni e rilevando poi impressioni e suggerimenti dei tester tramite un questionario. Grazie ai dati raccolti sar&#xE0; possibile migliorare l&#x2019;usabilit&#xE0; di UbiCollab. <br /> Attualmente non c&#x2019;&#xE8; una gestione della sicurezza e della concorrenza tra i vari nodi, quindi &#xE8; indispensabile implementare moduli in questo senso. <br /> Android &#xE8; una piattaforma che offre molte possibilit&#xE0; di sviluppo e gira su un hardware che ben si adatterebbe a diventare un UbiNode, sar&#xE0; valutato la possibilit&#xE0; di fare il porting della piattaforma <br /> Infine ci aspettiamo di sviluppare o proxy per altre periferiche e nuovi Discovery Plugins. <br /> Ho terminato, grazie a tutti dell&#x2019;attenzione. <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Simone Mora - PhD Interview at ITU Simone Mora - PhD Interview at ITU Presentation Transcript

  • PhD Interview Simone Mora via E.Fermi 23 24060-Casazza (BG) Italy +393493196360 morasimone@gmail.com April, 20th 2010
  • Simone Mora - About myself Education and Training: ❖ Musical Theory Diploma (2000) ❖ Scientific High School Diploma (2002) ❖ Bachelor Degree in Industrial Engineering (University of Bergamo, 2006) ❖ Master Degree in Computer Science (University of Bergamo, 2009) ❖ Partecipant of the ERASMUS program (2007) ❖ Master Thesis during an exchange period at NTNU (Norwegian University of Science and Technology) (2009)
  • Simone Mora - About myself Work Experiences: ❖ Job as ResearcherDeveloper for IDI-NTNU projects (July 2009 - March 2010): ❖ UbiCollab, Ubiquitous Collaboration ❖ ASTRA: Awareness Services and Systems - Towards Theory and Realization (IST-FP6) View slide
  • Simone Mora - About myself Research Interests: - Ubiquitous Computing - HCI - CSCW - Pervasive Healthcare - Multimedia Signal Processing Technologies: - C++, Java, OSGi, eRCPeSWT - JSP, HTML, CSS, JavaScript, WebServices - Mac OS X, Linux, Ms Windows - QR, Datamatrix, RFID - LaTeX View slide
  • Service Discovery in: UbiCollab Ubiquitous and pervasive collaboration Simone Mora IDI-NTNU
  • UbiCollab Mission Build a platform for supporting: • Collaboration among geographically distributed people and their devices services in physical spaces. • Sharing context (meaning) through a collaboration instance (CI) • Adaptability and automatic configuration of spaces and devices/services.
  • Problems and Motivations Collaboration: “a recursive process where two or more people or organizations work together in an intersection of common goals” What collaboration involves: Informations Devices Sharing of Access of Devices and Access to Devices: Informations: Informations: Ambient Intelligence Social Networks Pervasive Healthcare Home Automation Needs Service Discovery!
  • UbiCollab Architecture ‣ Mobile ‣ Runs on smartphones (with JavaME CDC) ‣ Service Oriented ‣ Extendible without extensive coding
  • UbiNode • Service Discovery Manager: Takes care of discovery over multiple protocols, needs d. plugins • Space Manager: Allows user to create and maintain spaces. • CI Manager: Allows creating and joining collaboration instances • Additionally: Discovery Plugins, Proxies, Applications
  • Retroactive Service Discovery Where retroactive discovery fails? • Retroactive Service Discovery protocols (uPNP, BT,...) lack in effectiveness and context awareness. • Handheld devices have limited resources, user shouldn’t be prompted for a long list of discovery results • Self-Advertising discovery protocols, like Bluetooth, are not user-friendly enough.
  • Service Discovery in UbiCollab from a Retroactive to a Proactive Discovery Code: 1020 ? ? ? Code: 0000 HOME HOME WORK WORK RETROACTIVE PROACTIVE RESOURCE DISCOVERY RESOURCE DISCOVERY
  • Proactive Service Discovery in UbiCollab Services Advertisement Code: XXXX
  • Proactive Service Discovery in UbiCollab Services Advertisement Code: XXXX
  • Proactive Service Discovery in UbiCollab Services Advertisement Code: XXXX
  • Home Lights App 10101 10101 10101 House 10101 power grid X10 Server - The HomeLights app uses a X10 server to switch onoff devices connected to the power grid
  • Proxies WS Proxy Stub BundleContext BundleContext WS API UbiCollab SOAP Invocations Shared Proxy over HTTP Application Resource OSGi Domain WS Domain • Discovered services/resources are heterogeneous • Proxy services act as “software drivers” for these services/resources • A Proxy service provides: - APIs to UbiCollab applications and core modules - A native interface to the heterogeneous service/resource
  • Applications Application << SOAP Invocations>> Device PROXY Application << SOAP Invocations>> Device PROXY UbiNode Remote Resources • Softwares directly operated by the user by multiple User Interfaces: GUI, voice, gestures • Can use proxies to get informations and control remote resources • Can be discovered in the same ways as proxies • UbiCollab provides an SDK for building rich applications without extensive coding, it includes frames and graphical widgets for developing touch based UIs • Application can even be external to the UbiCollab framework (e.g. ASTRA)
  • Astra Connector call(naztabag,rotateHear,90); rotateHear(90); hear_pos(5A); proxy <<SOAP over HTTP>> <<SOAP over HTTP>> AstraConnector Back-end Third-party ASTRA Domain UbiCollab Domain resource Domain • Integration between UbiCollab and the european founded project ASTRA • Improve ASTRAʼs capability in resource discovery field providing a user friendly way to add external devices to an ASTRA node • Provides to ASTRA information about the proxies installed in the UbiNode and a exposes a WebService interface capable to drive them from an ASTRA node • Make use of Java Reflection to build representations of ASTRA applications inside the UbiNode
  • The full picture: on-the-fly discovery User with UbiNode Shared Resources Code: Code: xxxx xxxx Resource Advertisement Code: Code: xxxx xxxx 6 1 1 1 TAN QRCode RFID Plugin Plugin Plugin jpeg Application 5 proxy Resource Discovery Manager 2 Service Domain Manager 4 Platform Space User Space 3 UbiNode UbiCollab Proxy Repository
  • Life Shirt App WiFi WebServices SMS SMS Gateway SMS from UCLifeShirt EMERGENCY ALERT Patient's name: Arne Lars Blood Pressure: 20 Patient's Location: 63.4164N 10.3943E Ok
  • Technical Overview Third-Party Technologies adopted in UbiCollab: ‣ OSGi - Open Services Gateway Initiative ‣ IBM J9 CDC JVM ‣ Eclipse eRCPeSWT ‣ Apache Axis ‣ X10 PLC (Power Line Comonication) protocol ‣ Phidgets Sensing and Control
  • Conclusion & Future Work • Work review driven by user-testing feedbacks • Solve Security and Concurrency issues • Porting of the platform to iPhone and Android • More proxies: Car, ... • More Discovery Plugin: Voice Recognition, ... Thank you!
  • Technical Overview
  • Module Architecture org.ubicollab.[core | sdp | app | proxy | services].x.#.#.#.jar org.ubicollab. [core | sdp | app | proxy | services]. Component UI View(s) Implementation x.ui Controller org.ubicollab. [core | sdp | app | proxy | services]. Component Model Implementation x.model Activator org.ubicollab.services.axis.x Connection to remote WebServices plugin.xml Connection to the UI framework manifest.mf Connection to the OSGi Framework Mandatory units Optional units Mandatory classes Optional Classes x is the name of the implemented component
  • Framework Overview OSGi eRCP OSGi org.eclipse.core.runtime org.eclipse.ui Bundle eJFace Registry ..core ..core component.. component.. applications.exsd views.exsd perspectives.exsd eSWT plugin.xml Content Provider Workbench Views eWorkbench manifest.mf Core applications.exsd Layouts Widgets (Model)* (Controller)* (View)* Platform Abstraction Layer User Abstraction Layer UbiCollab components which provide user Interfaces (SDPlugins, Applications, Proxies) Extension-Point System * Model-View-Controller Design Pattern
  • Modules Involved in Service Discovery eWorkbench Astra Connector UI Toolkit Resource Database RFID Resource Discovery 2DBarcodes Sensors Sensor Lab Manager Service Domain Type a Number Lights Controller Home Lights Manager Service Discovery Core Proxy Aplications Plugins
  • Thanks! Simone Mora via E.Fermi 23 24060-Casazza (BG) Italy +393493196360 morasimone@gmail.com April, 20th 2010