v2 Presentazione Lelli

6 Jun 2016
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
v2 Presentazione Lelli
1 sur 20

Contenu connexe

En vedette

Reactive Sputtering Deposition PresentationReactive Sputtering Deposition Presentation
Reactive Sputtering Deposition PresentationDisheng Zheng
Foguete Foguete
Foguete Escola joao de lima sala de tecnologias
Contabilidad 10AContabilidad 10A
Contabilidad 10AJuan Gómez
Advertising budgetAdvertising budget
Advertising budgetAnjali Das V.M
Lasoldadura mayerlin canaLasoldadura mayerlin cana
Lasoldadura mayerlin canadgffdf34
Slide titolo revisore.4Slide titolo revisore.4
Slide titolo revisore.4Cittalia

Similaire à v2 Presentazione Lelli

Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...
Sviluppo di un'applicazione ibrida su dispositivo mobile per l'interfacciamen...Mattia De Bernardi
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
Supsi dti abstract_informatica_2012Supsi dti abstract_informatica_2012
Supsi dti abstract_informatica_2012L Dr
Android -  Programmazione AvanzataAndroid -  Programmazione Avanzata
Android - Programmazione AvanzataStefano Sanna
Angular js o React? Spunti e idee per la scelta di un frameworkAngular js o React? Spunti e idee per la scelta di un framework
Angular js o React? Spunti e idee per la scelta di un frameworkGiovanni Buffa

v2 Presentazione Lelli

Notes de l'éditeur

  1. Buongiorno. Sono Lelli Matteo e presenterò la mia tesi dal titolo “Design and Implementation of a cloud-based middleware for persuasive android applications”, svolta al Pervasive Lab dell’University of Florida
  2. La mia tesi rientra nell’area di ricerca della Captology, cioè lo studio dei computer utilizzati come tecnologie di persuasione. Anche se i computer e le tecnologie informatiche non sono nate con lo scopo di persuadere, negli anni stanno sempre più assumendo ruoli da persuasori una volta affidati ad esseri umani, come ad esempio insegnanti, personal trainer, venditori.
  3. In letteratura vi era però una mancanza di middleware sia teorici che pratici che potessero aiutare gli sviluppatori software a sviluppare applicazioni persuasive, cioè applicazioni in grado di cambiare i comportamenti degli utenti, sfruttando al meglio le conoscenze della captology.
  4. Per colmare questa lacuna, il gruppo di ricerca guidato dal Prof. Helal dell’Universit of Florida ha sviluppato in passato diversi modelli che potessreo rappresentare gli sforzi di persuasione, producendo anche diverse pubblicazioni. Fra questi il più importante è l’Action-based Behavior Model (ABM), un modello per applicazioni persuasive che può essere facilemnte compreso ed utilizzato da informatici e sviluppatori. In particolare, come illustrato nello schema in figura, l’utente è guidato attraverso diversi passaggi. Ad esempio, supponiamo di dover convincere una persona con problemi di diabete a condurre una vita più sana. Dopo una prima fase di profilazione, si rende consapevole l’utente della propria condizione o patologia (fase di aware), lo si interroga su alcuni informazioni come ad esempio la posizione della propria palestra preferita (fase di plan), lo si istruisce su come ad esempio sia più opportuno camminare o correre (fase di learn), lo si notifica nel momento e nel luogo più opportuno (fase di recall), lo si monitora durante l’attività (act) e si effettua una valutazione di quanto l’applicazione sia stata persuasiva (fase di assess). A questo punto si può assegnare ricompense all’utente (reward) o ritornare ad una fase precedente in cui sono emerse lacune di persuasione.
  5. All’interno della fase di valutazione, uno strumento fondamentale è il Situation-based assess tree (SAT). Esso è una struttura utilizzata per effettuare la valutazione della persuasione, in cui ogni nodo foglia corrisponde ad un comportamento positivo o negativo da monitorare. Inoltre, utilizzando una serie di operatori, si è in grado di valutare l’effetto della persuasione in ogni singolo nodo. Ad esempio, osservando il valore del nodo Aware, si è in grado di capire quanto l’utente sia stato reso consapevole della propria condizione.
  6. Un altro interessante prodotto del lavoro di ricerca condotto all’University of Florida è stata una prima versione di un middleware chiamato Cicero. Cicero è un middleware per dispositivi Android basato su ABM e SAT per quanto riguarda la fase di valutazione della persuasione. Per quanto riguarda invece il sensing, Cicero sfrutta le potenzialità di Google Play Services. In particolare, sfrutta diversi servizi, tra cui tra cui vale la pena citare quelli in grado di restituire la posizione approssimata dell’utente o il modo in cui si sta muovendo (ad esempio camminando, correndo, in bicicletta, su un veicolo)
  7. Questa prima versione di Cicero presentava però diverse criticità. In particolare, Cicero era strutturato in modo da consentire il monitoraggio di un solo comportamento per volta, rendendolo inservibile in ogni contesto reale. Poteva essere eseguito su un solo dispositivo, perdendo l’opportunità di sfruttare più dispositivi posseduti dallo stesso utente, come ad esempio smartwatch. Inoltre, l’esperto del dominio (cioè un dottore, psicologo, fisioterapista) non era completamente coinvolto. Infatti, esso poteva condividere link ad articoli o video con l’utente, ma non monitorare o modificare il SAT a runtime. Infine, il SAT presentava una mancanza di espressività ed omogeneità. Affronterò in dettaglio questo punto in seguito. Il mio lavoro di tesi, oltre ad individuare queste criticità, è consistito nel proporre e nell’implementare diversi modelli ed architetture per cercare di risolverle.
  8. Una prima struttura introdotta è quella di sensing. Essa è basata su il concetto di Sentience Objects, contenuti all’interno di un pool chiamato Sentience Pool. Ogni Sentience Object ha un proprio ciclo di vita, rendendo possibile il monitoraggio contemporaneo di più comportamenti. In particolare, gli aggiornamenti che giungono dai Google Play Services vengono gestiti separatamente da ogni oggetto, rendendo possibile il sensing contemporaneo.
  9. Un altro cambiamento apportato a Cicero è stata la nuova architettura basata sul cloud. Come mostrato in figura, ho accentrato tutta la parte di Cicero preposta alla valutazione della persuasione su di una piattaforma cloud Google App Engine ed in particolare il SAT. Inoltre, attraverso Google Endpoints ho esposto delle API remote per consentire la comunicazione tra i dispositivi dell’utente e il SAT. Con questa nuova architettura, è possibile gestire il sensing contemporaneo su più dispositivi distribuiti anche eterogenei poiché è presente un solo SAT per utente conservato sul cloud. Un particolare tipo di dispositivi sono gli Smartwatch. Tipicamente essi sono collegati allo smartphone attraverso Bluetooth e sono equipaggiati con Android Wear.
  10. In questa tipica configurazione, gli smartwatch non sono in grado di comunicare direttamente con il cloud. Si è quindi reso necessario un nuovo protocollo di comunicazione che sfrutti lo smartphone collegato come ponte verso il cloud. Il sensing tuttavia rimane analogo a quello degli altri dispositivi, infatti l’unica modifica riguarda la comunicazione tra smartwatch e cloud.
  11. Questo nuovo protocollo, chiamato Smartwatch-to-cloud communication protocol, consta di 7 passaggi fondamentali, più un ottavo necessario per la terminazione. In particolare, nel primo passaggio, lo smarphone richiede al SAT remoto quali comportamenti devono essere monitorati dalla smartwatch. Essi vengono restituiti sotto forma di oggetti serializzati nel punto 2. La lista viene poi inviata allo smartwatch attraverso un messaggio bluetooth nel punto 3. A questo punto lo smartwatch inizia a monitorare i comportamenti. Quando si rileva una determinata situazione collegata ad un comportamento, viene generato un evento che viene inviato allo smartphone (punto 5) Lo smarphone per prima cosa propaga l’evento localmente in quanto potrebbero esserci comportamenti in attesa localmente. Invia poi l’evento al cloud al punto 7. Infine, attraverso un ultimo messaggio è possibile terminare il sensing sullo smartwatch.
  12. Grazie ad una nuova applicazione sviluppata per l’esperto del dominio, quest’ultimo è ora in grado di: Creare nuovi comportamenti da monitorare, quindi aggiungere nodi foglia al SAT remoto Modificare i valori di riferimento dei nodi preesistenti, cambiando ad esempio i minuti che devono essere camminati in un giorno da 20 a 30 a runtime. Visualizzare la situazione corrente O un grafico della storia dell’utente
  13. Ho anche potenziato il SAT, creando una nuova struttura omogenea attraverso una gerarchia di classi. In questo modo è possibile utilizzare funzioni ricorsive per implementare gli operatori dell’albero. Ho anche introdotto un identificatore unico creato a runtime nel momento in cui viene il nuovo nodo viene inserito all’interno dell’albero. Infine ho aggiunto due campi facoltativi all’interno dei nodi foglia per aggiungere informazioni di contesto necessarie al monitoraggio del comportamento. Come ad esempio la posizione della palestra preferita dell’utente è necessaria a Cicero perché deve essere confrontata con la posizione attuale per capire se l’utente si trova in palestra.
  14. Ho poi condotto diversi test sulle performance del middleware utilizzando la configurazione riportata in figura. In particolare, su un PC desktop ho un emulatore di Android Wear con installata l’applicazione per smartwatch. Ho poi un server di sviluppo Google App Engine con tutta la parte cloud. Su uno smartphone collegato attraverso usb ho invece installato l’applicazione utente per smartphone e quella per l’esperto del dominio.
  15. I risultati sono stati più che soddisfacenti. Infatti, per quanto riguarda làapplicazione per smartphone sia i livelli di utilizzo di CPU, che di memoria, batteria e il traffico di rete sono risultati estremamente bassi. In particolare, la CPU a runtime raggiunge picchi sotto l’1%.
  16. La memoria utilizzata è compresa tra 6 e 7 MB
  17. E il traffico di rete, dopo un primo picco per il download dei comportamenti, presenta picchi isolati trascurabili.
  18. Analogamente per lo smartwatch, la CPU presenta solo alcuni picchi,
  19. Mentre la memoria è compresa tra 1 e 2 MB
  20. Concludendo, la nuova versione di Cicero è quindi in grado di effettuare il sensing contemporaneo di più comportamenti contemporaneamente e su più dispositivi,