LUCRARE DE LIC LUCRARE DE LICENŢĂ
date post
31-Dec-2016Category
Documents
view
431download
14
Embed Size (px)
Transcript of LUCRARE DE LIC LUCRARE DE LICENŢĂ
UNIVERSITATEA
FACULTATEA DE AUTOMATIC I CALCULATOAREDEPARTAMENTUL CALCULATOARE
LUCRARE DE LICEN
Smart Presentation FeedbackComunicaia
Coordonatori tiinifici:
Prof. dr. ing. Adina Magda Florea
As. dr. ing. Andrei Olaru
i
UNIVERSITATEA POLITEHNICA BUCURETI FACULTATEA DE AUTOMATIC I CALCULATOARE
DEPARTAMENTUL CALCULATOARE
LUCRARE DE LICEN
Smart Presentation Feedback Comunicaia client-server
ng. Adina Magda Florea
George-Cristian Stoica
BUCURETI
2012
FACULTATEA DE AUTOMATIC I CALCULATOARE
Absolvent:
Cristian Stoica
ii
Rezumat
O prezentare inut n faa unei audiene numeroase reprezint o activitate predominant
unilateral, n care cei prezeni n audien nu pot interveni n niciun fel pe parcursul prezentrii, astfel
nct strngerea unui feedback relevant din partea acestora este dificil. Acest lucru se ntmpl chiar i
n condiiile n care majoritatea persoanelor dein un dispozitiv smartphone sau chiar o tablet, deci un
suport electronic pe care ar putea urmri prezentarea i prin care s-ar putea devolta o interaciune ntre
acetia i speaker.
Aplicaia Smart Presentation ofer oportunitatea celor din audien s urmreasc prezentarea
fcut de speaker pe propriul dispozitiv Android, smartphone sau tableta, n mod sincronizat cu
prezentarea speakerului sau nu. n plus, aplicaia ofer posibilitatea acordrii de feedback direct pe
documentul prezentrii, n timp real, astfel nct speakerul s aduc lmuriri sau s rspund la ntrebri
chiar n timpul prezentrii, fr intervenia verbal a audientei. Speakerul are acces la forma agregat a
feedbackului, extrem de util n cazul unei audiente mari.
Pentru realizarea acestei aplicaii, am dezvoltat un sistem client-server, bazat pe cereri efectuate de
clieni, dispozitivele Android, ctre un server web, care pune la dispoziie resurse ce pot fi accesate prin
adresele lor URL. Resursele pot fi documentul prezentrii sau feedback agregat adresat de cei din
audien.
iii
CUPRINS 1. Introducere
1.1 Contextul proiectului 1.2 Ideea i Scopul proiectului 1.3 Structura proiectului 1.4 Structura lucrrii
2 Tehnologii folosite 2.1 Sistemul de operare Android 2.2 Tehnologiile specifice folosite la comunicarea client-server 2.3 Alte tehnologii folosite n cadrul proiectului
3 Arhitectura sistemului 3.1 Descrierea arhitecturii i modulele funcionale ale sistemului 3.2 Arhitectura clientului Android 3.3 Arhitectura serverului web
4 Detalii implementare 4.1 Accesarea resurselor pe baza URL i a protocolului HTTP
4.1.1 Structura URL 4.1.2 Tipurile mesajelor HTTP
4.2 Implementarea protocolului de comunicaie 4.2.1 Componenta mesajelor i logica acestora 4.2.2 Serializarea datelor folosind Google Protocol Buffers
4.3 Implementarea clientului Android 4.3.1 Implementarea design patternului MVC 4.3.2 Persistena datelor n Sqlite i accesarea resurselor interne prin ContentProvider 4.3.3 Accesarea resurselor de pe web server prin mesaje asincrone
4.4 Implementarea serverului web 4.4.1 Iniializarea serverului i a containerului Grizzly
4.4.2 Clasele resurs i metodele HTTP definite pe server 4.4.3 Serializarea i deserializarea datelor 4.4.4 Modulul de clusterizare a ntrebrilor i sincronizarea cu acesta
4.5 Interfaa de utilizare a clienilor Android 4.5.1 Interfaarea cu prezentarea, selecia elementelor 4.5.2 Metodele handler ale butoanelor
5 Utilizarea aplicaiei 5.1 Descrierea aplicaiei 5.2 Scenarii utilizare - screenshots
6 Concluzii 7 Bibliografie
George-Cristian Stoica
1
1. Introducere
1.1 Contextul proiectului
Prezentrile realizate n faa unei audiente de mrime medie sau mare pot fi uneori greu de urmrit din diferite motive, cum ar fi incapacitatea persoanelor din audien de a nelege anumite concepte din materialele prezentate, care duc la pierderea ateniei, sau imposibilitatea acestora de a reveni asupra unor slide-uri anterioare.
Aceste prezentri ar putea deveni mai interactive, prin implicarea asculttorilor nc din timpul audienei n procesul de apreciere pozitiv sau negativ a elementelor prezentate, precum i prin posibilitatea urmririi prezentrii att n timp real ct i a revenirii asupra unor slideuri anterioare sau a avansrii ctre slideuri urmtoare.
1.2 Ideea i scopul proiectului
Ideea proiectului Smart Presentation este de a realiza o interaciune strns ntre membrii audienei unei prezentri i cel care ine prezentarea (asupra cruia m voi referi n continuare ca speaker). 1
Ca precondiii, se presupune c att speakerul, ct i cei din audien posed cte un dispozitiv mobil, tableta sau telefon mobil, avnd instalat sistemul de operare Android. De asemenea este necesar un server conectat la un router wireless, pentru a permite conectarea cu dispozitivele Android.
Funcionalitatea aplicaiei pornete de la posibilitatea membrilor audientei de a urmri pe propriul dispozitiv Android prezentarea inut de speaker. Speakerul este cel care pornete prezentarea, care schimb slide-urile i care termin prezentarea. Cei din audien au posibilitatea de a urmri prezentarea n timp real i pe dispozitivul lor ntr-un mod live, sau pot naviga liber prin restul prezentrii. n plus, acetia pot furniza feedback n timp real prezentrii astfel: pot selecta poriuni din prezentare, asupra crora pot furniza feedback pozitiv, de apreciere, feedback de ambiguitate, prin care se remarc necesitatea unor clarificri ale acelor elemente sau feedback de cerere a unor dovezi (proof). De asemenea, cei din audien pot pune ntrebri legate de elementele selectate, sau pot alege s adere la o ntrebare deja pus, acetia avnd posibilitatea de sincronizare a feedbackului cu cel acordat de toi cei aflai n audien. n plus, acetia vor avea i posibilitatea retragerii propriului feedback, dac ulterior nu l mai consider necesar. La finalul prezentrii, speakerul poate vedea o form agregat pentru toate tipurile de feedback. n cazul ntrebrilor adresate speakerului referitor la o selecie fcut pe prezentare, agregarea se face prin alegerea unor ntrebri reprezentative din punct de vedere semantic i gruparea (eng. clustering) celorlalte ntrebri n jurul acestora.
Comunicarea ntre dispozitive i sincronizarea elementelor de feedback acordate prezentrii se face prin intermediul unui server central care depoziteaz datele agregate primite din partea tuturor clienilor cu care se comunic wireless. Serverul este i cel care conine prezentarea n format PDF, aceasta fiind descrcat pe fiecare dispozitiv mobil care acceseaz aplicaia SmartPresentation.
1.3 Structura proiectului
Proiectul a fost structurat n patru module cu funcionaliti diferite, fiind cinci persoane implicate n dezvoltarea aplicaiei. Cele patru arii sunt:
1 Pagina web cu ideea proiectului, 20.06.2012,
George-Cristian Stoica
2
modulul de manipulare a prezentrii PDF. Acesta presupune folosirea unei biblioteci open source de manipulare a formatului PDF, pentru a permite navigarea prin prezentare, selectarea unor elemente ale prezentrii prin folosirea ecranului touchscreen al dispozitivului Android i evidenierea seleciei fcute prin diverse culori de highlighting.
interfaa clientului pe Android, care include toate elementele vizuale prin care clientul interacioneaz cu aplicaia (ferestre, butoane, liste).
modulul de comunicaie client-sever, care asigur transmisia resurselor ntre dispozitive i server i sincronizarea acestora.
modulul de clusterizare a ntrebrilor puse de audin pe baza similaritilor semantice.
Partea mea de proiect a constat n implementarea modulului de comunicaie ntre clienii Android i server. Acest modul include partea de stocare a datelor att pe Android, ct i pe server, dezvoltarea serverului web i a protocolului de comunicaie bazat pe HTTP i Google Protocol Buffers, obinerea resurselor prin URLuri, tipul mesajelor i modalitatea de serializare a acestora, precum i interfaarea pe server cu modulul de clusterizare a ntrebrilor i interfaarea pe sistemul de operare Android cu modulul de manipulare a PDFurilor i cu interfaa de utilizare.
1.4 Structura lucrrii
n continuare, capitolele acestei lucrri sunt structurate astfel: aspecte teoretice ale proiectului, urmate de tehnologiile folosite la implementarea proiectului, cu detalierea celor folosite la comunicaia client-server i la crearea protocolului de comunicaie. Urmeaz arhitectura aplicaiei, n care sunt prezentate diferitele module ale aplicaiei i interaciunea dintre ele, din nou cu detalierea celor de backend direct implicate n schimbul de date ntre clieni i server. Capitolul detaliilor de implementare prezint metodele de programare folosite, oferind spre exemplificare poriuni de cod explicate. n cadrul acestui capitol este descris protocolul de comunicaie ntre server i clieni, tipurile de URLuri folosite pentru accesul resurselor, tipurile mesajelor schimbate i diferitele tipuri de serializare. Mai apare i detalierea interfarii dintre server i modulul de clusterizare a ntrebrilor de feedback.
n final, capitolul de utilizarea a aplicaiei prezint n detaliu aplicaia i modalitatea de utilizare interfeei grafice, prin screenshoturi i nfiarea unor diverse scenarii de utilizare.
George-Cristian Stoica
3
2. Tehnologii folosite
2.1 Sistemul de operare Android
Android este un sistem de operare pentru dispozitive mobile, telefoane sau tablete. Android a devenit lider mondial n acest segment n 2010, n primul trimestru al anului 2012 raportnd o cot de 59% din piaa mondial a smartphoneurilor, cu un total aproximat la 331 milioane de dispozitive cu acest sistem de operar