Simone Mora - PhD Interview at ITU

1,859 views

Published on

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,859
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
55
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide




  • Buongiorno a tutti, sono Simone Mora e vi parlerò del mio tirocinio presso il dipartimento di Computer Science della Norwegian University of Science and Technology, dove ho lavorato 11 mesi come ricercatore all’interno del progetto UbiCollab e del progetto europeo ASTRA, progettando e implementando moduli software nel campo del Service Discovery.
  • UbiCollab è una piattaforma tecnologica che mira a facilitare la collaborazione e l’interazione con dispositivi tra persone geograficamente distribuite.
    Questa griglia di persone, dispositivi e le connessioni che permetto di comunicare tra loro forma la struttura base di UbiCollab.
    L’informatica è sempre più 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ù piccoli e versatili ma a volte non fornisce un sistema semplice e alla portata di tutti per interagire con essi. Inoltre l’utilizzo della tecnologia è sempre più mobile, spesso ci si trova a dover usufruire di servizi avanzati direttamente dal proprio palmare o telefono.
    Durante il mio periodo di ricerca, partendo dalle specifiche del progetto, ho progettato e implementato una soluzione per l’installazione e l’uso di questi dispositivi all’interno della griglia affrontando sia aspetti prettamente tecnici che aspetti riguardanti l’usabilità.


  • Vediamo ora in quali scenari può essere utile questa tecnologia.
    UbiCollab è stato progettato come una piattaforma generica, capace di adattarsi dinamicamente a vari scenari d’uso.
    Abbiamo creato l’infrastruttura e gli strumenti per permettere agli sviluppatori di scrivere applicazioni specifiche per certi casi d’uso; inoltre, essendo UbiCollab rilasciato con licenza OpenSource chiunque può sviluppare applicazioni.
    Vediamo qui in quali campi può essere utile questa tecnologia:
    -Scenari in cui vi è condivisione di Informazioni, come accade nei social network
    -Scenari che richiedono accesso a dispositivi: sensori, attuatori; come accade per applicazioni di Home Automation
    -Scenari che richiedono accesso sia a informazioni ma che a dispositivi come avviene per applicazioni di assistenza medica remota.
    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.
    Questo meccanismo, dovendo essere usato da un’ampia parte della popolazione inclusi anziani e malati deve essere il più immediato possibile.
  • Vediamo qui gli aspetti principali della piattaforma:
    -Mobile: in quanto eseguibile su dispositivi portatili e non richiede hardware dedicato ma può essere eseguito sui comuni palmari e smarthphone capaci di eseguire una Java Virtual Machine per Mobile.
    -Service Oriented: in quanto il codice è incapsulato in moduli che espongono e consumano servizi tra loro all’interno del framework e verso dispositivi esterni tramite WebServices.
    -Extendible without extensive coding: poichè l’implementazione di applicazioni per UbiCollab non richiede la conoscenza o la modifica dei moduli base dell’architettura, inoltre è stata creata una SDK contente documentazione, componenti e widget grafici che possono essere utilizzati dagli sviluppatori.

  • Vediamo ora come l’utente può interagire con questa griglia di dispositivi.
    Ogni utente di UbiCollab utilizza uno smartphone o computer palmare, chiamato UbiNode, che funge da personal server.
    In questo dispositivo sono eseguiti un insieme di moduli core e alcuni moduli addizionali, quali applicazioni e plugin, che possono venire installati dall’utente, vedremo in seguito in che modo.
    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’UbiNode.
    Il problema di SD non è banale è comporta l’interazione di vari moduli:
    -Ad esempio nel caso di dispositivi fissi, quando l’utente installa un nuovo dispositivo e poi l’ascia l’ambiente in cui questo risiede il sistema deve essere in grado (in alcuni scenari) di nascondere all’utente il dispositivo installato e riattivarlo quando si fa ritorno nell’ambiente in qui questo risiede. /*Si pensi ad esempio all’utente che migra quotidianamente tra casa e ufficio.*/ Questa operazione è svolto dal modulo “Space Manager” il quale tagga ogni risorsa installata con il nome dell’ambiente in cui risiede.
    -Allo stesso tempo un utente potrebbe volere dare ad altri utenti accesso alle risorse installate nel proprio UbiNode, instaurando quella che viene chiamata “Collaboration Istance” e ciò avviene grazie al modulo “Collaboration Manager”

    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.

  • 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:
    -Installando un driver: tramite cd ma dovendo quindi collegare il palmare ad una postazione fissa, oppure scaricandolo da internet ma in questo caso l’utente inesperto può avere difficoltà a il nome e modello della propria periferica e cercare il corrispondente driver su internet.
    -Oppure, come accade soprattutto in ambiente lavorativo, si può installare una periferica (es. una stampante) cercandola in server di stampa o in una directory condivisa. Solitamente questo approccio porta l’utente a scorrere una lunga serie di risultati -il che è difficoltoso su display di dimensioni limitate- e questi risultati spesso includono anche periferiche locate in un altro edificio oppure chiuse dietro la porta dell’ufficio di un collega.
    -Infine ci sono protocolli “self-advertized”, 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’utente deve ricordarsi il nome della periferica, problematico quando vi sono più periferiche dello stesso tipo vicine, e in alcuni casi anche una passkey necessaria per accedervi.
    In questi contesti condividere la stessa periferica tra più persone non fa altro che aumentare le difficoltà.

    Ho quindi concluso che questi metodi di service discovery sono poco efficaci dal punto di vista dell’usabilità soprattutto in un ambiente mobile e non soddisfavano i requisiti del progetto che prevedono un sistema totalmente mobile e l’uso da parte di malati e anziani.

  • 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.
    Ritengo che questo approccio sia più immediato in quanto richiede che l’utente compia operazioni naturali quali ad esempio far sfiorare o mettere a contatto i due oggetti da associare nel caso dell’RFID. Oppure compiere azioni che stanno diventando sempre più comuni come fare una foto con il proprio cellulare al dispositivo (e quindi al codice a barre associato) che si vuole utilizzare.

    Il modulo di Service Discovery così progettato si avvale plugins ognuno dei quali implementa il riconoscimento di un tipo di tag. Ciò vuol dire che i plugin, essendo a loro volta moduli, possono essere mutualmente installati.
  • Vediamo in dettaglio come funziona:
    1)Ad Ogni dispositivo è associato un nome e vengono codificati uno o più tag, la scelta di assegnare più tag ad ogni dispositivo è giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico è 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à di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere più efficaci di altri in determinati scenari.
    2) Questi tag sono resi noti all’utente tramite un “Service Advertisement” che può essere riportato un’etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso)
    3) Dopo che l’utente tramite l’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’utente un’interfaccia per poter pilotare la risorsa.
    Conseguentemente l’utente diviene l’amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui è stata trovata (Space Manager) o pubblicandola ad altri utenti.
  • Vediamo in dettaglio come funziona:
    1)Ad Ogni dispositivo è associato un nome e vengono codificati uno o più tag, la scelta di assegnare più tag ad ogni dispositivo è giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico è 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à di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere più efficaci di altri in determinati scenari.
    2) Questi tag sono resi noti all’utente tramite un “Service Advertisement” che può essere riportato un’etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso)
    3) Dopo che l’utente tramite l’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’utente un’interfaccia per poter pilotare la risorsa.
    Conseguentemente l’utente diviene l’amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui è stata trovata (Space Manager) o pubblicandola ad altri utenti.
  • Vediamo in dettaglio come funziona:
    1)Ad Ogni dispositivo è associato un nome e vengono codificati uno o più tag, la scelta di assegnare più tag ad ogni dispositivo è giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico è 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à di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere più efficaci di altri in determinati scenari.
    2) Questi tag sono resi noti all’utente tramite un “Service Advertisement” che può essere riportato un’etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso)
    3) Dopo che l’utente tramite l’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’utente un’interfaccia per poter pilotare la risorsa.
    Conseguentemente l’utente diviene l’amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui è stata trovata (Space Manager) o pubblicandola ad altri utenti.
  • Vediamo in dettaglio come funziona:
    1)Ad Ogni dispositivo è associato un nome e vengono codificati uno o più tag, la scelta di assegnare più tag ad ogni dispositivo è giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico è 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à di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere più efficaci di altri in determinati scenari.
    2) Questi tag sono resi noti all’utente tramite un “Service Advertisement” che può essere riportato un’etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso)
    3) Dopo che l’utente tramite l’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’utente un’interfaccia per poter pilotare la risorsa.
    Conseguentemente l’utente diviene l’amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui è stata trovata (Space Manager) o pubblicandola ad altri utenti.
  • Vediamo in dettaglio come funziona:
    1)Ad Ogni dispositivo è associato un nome e vengono codificati uno o più tag, la scelta di assegnare più tag ad ogni dispositivo è giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico è 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à di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere più efficaci di altri in determinati scenari.
    2) Questi tag sono resi noti all’utente tramite un “Service Advertisement” che può essere riportato un’etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso)
    3) Dopo che l’utente tramite l’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’utente un’interfaccia per poter pilotare la risorsa.
    Conseguentemente l’utente diviene l’amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui è stata trovata (Space Manager) o pubblicandola ad altri utenti.
  • Vediamo in dettaglio come funziona:
    1)Ad Ogni dispositivo è associato un nome e vengono codificati uno o più tag, la scelta di assegnare più tag ad ogni dispositivo è giustificata per il motivo che essendo ogni nodo di UbiCollab eseguito su hardware generico è 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à di input numerico (tastiera a touch). Allo stesso tempo alcune tipologie di tag possono essere più efficaci di altri in determinati scenari.
    2) Questi tag sono resi noti all’utente tramite un “Service Advertisement” che può essere riportato un’etichetta o direttamente sul dispositivo stesso se questo ha uno schermo. (come nel caso di questo display condiviso)
    3) Dopo che l’utente tramite l’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’utente un’interfaccia per poter pilotare la risorsa.
    Conseguentemente l’utente diviene l’amministratore di un servizio a cui altri moduli possono accedere, taggando la risorsa con il nome dello spazio in cui è stata trovata (Space Manager) o pubblicandola ad altri utenti.
  • Per testare l’architettura ho sviluppato varie applicazioni. Una di queste permette di accendere e spegnere dispositivi connessi alla rete elettrica, comuni lampade in questo esempio.
    Utilizzo questa applicazione per mostrare tramite un breve filmato come avviene l’interazione tra l’UbiNode e l’utente:
  • A livello tecnico l’azione di lettura di un tag da parte dell’utente comporta il download e l’installazione all’interno dell’UbiNode di un modulo chiamato proxy, il cui indirizzo all’interno del repository è codificato nel tag.
    Un proxy è quindi un’astrazione di una dispositivo esterno, che può essere creato da terze parti, all’interno dell’Ubinode
    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ì ad una applicazione di accedere e pilotare la risorsa remota.
  • Un applicazione per UbiCollab è un modulo, che può essere creato tramite la SDK fornita agli sviluppatori, il quale espone una ho più interfacce utente (touch, voce, ad esempio) con le quali l’utente può interagire con altri dispositivi attraverso uno o più proxy.
    Essendo le applicazioni, moduli queste possono essere installate con la stessa procedura che abbiamo visto per i proxy.
  • ASTRA è un progetto finanziato dall’Unione europea di cui il dipartimento in cui ho lavorato è 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à dei suoi utenti.
    A differenza di UbiCollab ASTRA è web-based e non dispone di un meccanismo propretario per interagire con dispositivi esterni.
    Mi è stato quindi chiesto dai miei supervisori di valutare la possibilità di integrare i due progetti in modo da fornire agli utenti di ASTRA le modalità di interazione con i dispositivi proprie di UbiCollab.
    E’ stato possibile effettuare questa integrazione è ciò e stato anche una grossa prova di flessibilità dell’architettura modulare di UbiCollab che ora permette quindi l’accesso alle risorse nella griglia anche da applicazioni create per ASTRA.
    Tecnicamente questa integrazione è 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’accesso a queste risorse creando, tramite la Java Reflection, delle istanze in UbiCollab delle applicazioni eseguite in ASTRA.
    Questo modulo è attualmente in fase di revisione da parte della UE.
  • Ciò avviene in modo trasparente per l’utente
  • Per testare l’intero ciclo di utilizzo di un’applicazione, dall’installazione al normale utilizzo, ho sviluppato un’applicazione per assistenza medica remota.
    Abbiamo il prototipo di una maglietta, indossata dal paziente, che è in grado di rilevare tramite sensori la pressione sanguigna. Questa maglietta comunica con un applicazione eseguita sull’UbiNode mostrando il valore rilevato dai sensori. Nel caso che questo valore scenda sotto una determinata soglia l’ubinode è in grado di mandare un SMS contente i dati del paziente: nome, valore rilevato dal sensore, coordinate geografiche.
  • Qui vediamo le tecnologie di terze parti che ho utilizzato in UbiCollab.
    -La modularizzazione è 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
    -La virtual machine utilizzata è la J9 di IBM che implementa le specifiche sun per java mobile
    -Le GUI sono state realizzate grazie alle runtime della Eclipse foundation
    -Axis è stato utilizzato come motore per i WebService
    -Il protocollo X10 è stato usato nell’esempio sulla domotica, permette di comunicare con dispositivi connessi alla rete elettrica tramite onde convogliate
    -Phidgets è l’azienda che ha prodotto i sensori e le librerie utilizzate per l’applicazione biomedica
  • Conludendo presento gli sviluppi che il progetto avrà in futuro.
    In novembre abbiamo fatto diverse sessioni di user-testing, ovvero abbiamo chiamato persone di diversa età 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à possibile migliorare l’usabilità di UbiCollab.
    Attualmente non c’è una gestione della sicurezza e della concorrenza tra i vari nodi, quindi è indispensabile implementare moduli in questo senso.
    Android è una piattaforma che offre molte possibilità di sviluppo e gira su un hardware che ben si adatterebbe a diventare un UbiNode, sarà valutato la possibilità di fare il porting della piattaforma
    Infine ci aspettiamo di sviluppare o proxy per altre periferiche e nuovi Discovery Plugins.
    Ho terminato, grazie a tutti dell’attenzione.





  • Simone Mora - PhD Interview at ITU

    1. 1. PhD Interview Simone Mora via E.Fermi 23 24060-Casazza (BG) Italy +393493196360 morasimone@gmail.com April, 20th 2010
    2. 2. 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)
    3. 3. 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)
    4. 4. 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
    5. 5. Service Discovery in: UbiCollab Ubiquitous and pervasive collaboration Simone Mora IDI-NTNU
    6. 6. 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.
    7. 7. 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!
    8. 8. UbiCollab Architecture ‣ Mobile ‣ Runs on smartphones (with JavaME CDC) ‣ Service Oriented ‣ Extendible without extensive coding
    9. 9. 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
    10. 10. 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.
    11. 11. 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
    12. 12. Proactive Service Discovery in UbiCollab Services Advertisement Code: XXXX
    13. 13. Proactive Service Discovery in UbiCollab Services Advertisement Code: XXXX
    14. 14. Proactive Service Discovery in UbiCollab Services Advertisement Code: XXXX
    15. 15. 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
    16. 16. 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
    17. 17. 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)
    18. 18. 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
    19. 19. 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
    20. 20. 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
    21. 21. 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
    22. 22. 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!
    23. 23. Technical Overview
    24. 24. 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
    25. 25. 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
    26. 26. 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
    27. 27. Thanks! Simone Mora via E.Fermi 23 24060-Casazza (BG) Italy +393493196360 morasimone@gmail.com April, 20th 2010

    ×