SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
Reţea de socializare bazată pe geolocalizare în timp real pentru
                          platforma Android™
                                              Vlad Petre
                          Universitatea POLITEHNICA din Bucureşti
                 Facultatea de Automatică şi Calculatoare, Secţia Calculatoare
                                 Email: vlad@vladpetre.com



                                               Abstract
     Telefoanele mobile au apărut din nevoia oamenilor de a fi mereu în contact unii cu alţii. Pe
     măsură ce capabilităţile acestor dispozitive au evoluat, oamenii au început să folosească tot
     mai mult, prin intermediul aplicaţiilor, servicii de socializare online precum Facebook™ sau
     Twitter™ pentru a comunica. Lucrarea de faţă îşi propune să prezinte o evoluţie firească a
     acestui tip de servicii: o reţea de socializare bazată pe geolocalizare în timp real adresata în
     primul rând celor ce doresc să fie în contact permanent cu cei apropiaţi.

     Cuvinte cheie: Android, reţea de socializare, geolocalizare, timp real.


1.   Introducere
În ultimii ani, reţelele de socializare online au cunoscut o evoluţie fulminantă. Acest fenomen
se datorează pe de-o parte nevoii umane de a fi mereu în contact unii cu ceilalţi, iar pe de altă
parte se datorează evoluţiei tehnologice a terminalelor mobile [1].

Majoritatea reţelelor sociale din ziua de azi sunt orientate pe amiciţiile dintre utilizatori, pe
nevoia de a partaja cat mai multe informaţii cu cât mai mulţi utilizatori, pe nevoia de a face
publică locaţia utilizatorului la un anumit moment de timp.

Prin lucrarea de faţă, doresc să abordez problema diferit. Astfel, lucrarea propune dezvoltarea
unei platforme de socializare bazată pe geolocalizare în timp real. Soluţia este orientată pe
prieteniile strâns legate şi apropiate dintre utilizatori şi propune ca utilizatorii înscrişi în
această reţea să aibă posibilitatea de a interacţiona cu prietenii lor, de a consulta locaţia
curentă a acestora pe hartă, precum şi de a partaja propria locaţie în reţea.

2.   Analiza soluţiilor existente
Există utilizatori de terminale mobile care doresc să fie în contact permanent cu cei apropiaţi
(ex: familie, prieteni de-o viaţă). De asemenea, există situaţii temporare în care aparţinem de
un grup social şi dorim să ne aflăm în contact permanent cu membrii acestuia (ex: ne aflăm
într-o excursie la munte).

La ora actuală, principalele reţele de socializare online sunt Facebook, Twitter şi Foursquare
[2]. Facebook este o platformă de socializare orientată pe amiciţiile dintre utilizatori, un
utilizator fiind încurajat să aibă cât mai mulţi amici. Twitter este o platformă de socializare
orientată pe răspândirea de informaţii, un utilizator fiind încurajat să aibă cât mai mulţi
urmăritori (în engleză followers). Iar Foursquare este o platformă de socializare orientată pe
locaţia utilizatorilor la un anumit moment de timp, aceştia fiind încurajaţi să îşi facă
cunoscută prezenţa într-un anumit punct de interes (muzeu, cafenea, campus etc.) pe
Facebook şi/sau Facebook.
VLAD PETRE                                  REŢEA DE SOCIALIZARE BAZATĂ PE GEOLOCALIZARE ÎN TIMP REAL



Soluţia propusă de mine vine să acopere nevoia neexploatată prezentată în primul paragraf al
acestui capitol, se adresează utilizatorilor cu prietenii strâns legate între ei şi se numeşte
FriLoc.

Platforma FriLoc - friends locations - este o reţea de socializare bazată pe locaţia în timp
real a utilizatorilor. Platforma se adresează utilizatorilor de reţele sociale, care folosesc în
mod curent un terminal Android şi au un abonament de internet pe mobil.

În primul rând, soluţia propune ca utilizatorii înscrişi în această reţea să aibă posibilitatea de a
interacţiona cu alţi utilizatori, de a consulta locaţia curentă a acestora pe hartă, precum şi de a
partaja propria locaţie în reţea. De asemenea, soluţia mai propune şi posibilitatea utilizatorilor
de a consulta anumite locaţii de interes, de a acorda note şi comentarii acestor locaţii, de a
crea şi administra locaţii de interes, precum şi posibilitatea de a adăuga geonotiţe pe hartă.



3.   Trăsături cheie
În cele ce urmează, voi încerca să prezint structurat, câteva trăsături ale platformei.

3.1.1.   Din punct de vedere al interacţiunii utilizator-utilizator:
        un utilizator va putea să se împrietenească cu alţi utilizatori;
        utilizatorul va putea să vadă pe hartă unde sunt prietenii săi în timp real;
        utilizatorul va putea să interacţioneze cu prietenii săi prin mesaje;
        utilizatorul va putea să recomande locaţii de interes prietenilor săi (ex: o cafenea);
        utilizatorul va putea să organizeze un eveniment public, sa îl plaseze pe hartă şi să îl
         promoveze; participanţii vor afla astfel mult mai uşor de locaţia unui eveniment (ex:
         http://patinoar.cs.pub.ro/ ).

3.1.2.   Din punct de vedere al interacţiunii utilizator-telefon:
        utilizatorul va fi anunţat printr-un semnal sonor daca un alt prieten de-al său se află
         în aceeaşi zonă cu el;
        un utilizator va putea să îşi pună reminder pe zonă, iar în momentul în care trece prin
         acea zonă, telefonul să înceapă să sune (ex: nu e urgent, dar când o să am drum pe
         strada Maica Domnului, aş vrea să îmi cumpăr un tranzistor);
        utilizare intuitivă şi facilă a aplicaţiei (ex: printr-o simpla scuturare a telefonului,
         chiar daca acesta este blocat, utilizatorul să vadă preţ de câteva secunde ce interese
         sunt în zona curentă).

3.1.3.   Din punct de vedere al interacţiunii utilizator-locaţie:
        utilizatorul va putea să vadă locaţiile de interes pe hartă (ex: muzee, cafenele,
         cinematografe);
        utilizatorul va putea să vadă ce locaţii de interes sunt în zona sa (muzee, cafenele,
         etc.), precum şi câteva informaţii de actualitate (în timp real) legat de respectivele
         locaţii (ex: ofertele zilei - ideea e ca unele locaţii pot avea şi un administrator);
        utilizatorul va putea să acorde o notă unei locaţii de interes precum şi să vadă
         ratingul actual al locaţiei de interes;
        utilizatorul va putea să filtreze locaţiile de pe hartă în funcţie de orar (daca e deschisă
         sau nu la ora respectivă), de card-urile studenţeşti acceptate (ISIC, EURO<26), de
         tipul locaţiei (culturale, comerciale, entertainment);
        un utilizator va putea să îşi ia geonotiţe (ex: mă duc prima dată la un prieten şi aş vrea
         ca data viitoare când mă mai duc să îmi aduc aminte repede unde stă).
4.     Arhitectura platformei
Din punct de vedere tehnic, pentru ca platforma să funcţioneze corespunzător, sunt necesare
următoarele componente:
    serviciu web (alcătuit din baza de date şi modulele interne de comunicaţie);
    aplicaţie client pentru platforma Android ce va fi instalată pe terminalele compatibile
       ale utilizatorilor.

În cele ce urmează, voi detalia specificaţiile tehnice ale fiecărei componente.

4.1.     Diagrama de arhitectură




4.2.     Serviciul Web
Serviciu web este de tip RESTful (Representational State Transfer) şi este scris în PHP 5.

Serviciul web este alcătuit din patru module:
     modulul de comunicaţie cu baza de date;
     modulul de comunicaţie cu API-ul Facebook;
     modulul de comunicaţie cu clienţii;
     modulul de procesare a cererilor.

4.2.1.    Baza de date
Baza de date este una de tip relaţional, iar ca sistem de gestiune al bazei de date am optat
pentru MySQL, deoarece pe de-o parte este cel mai popular SGBD open source la ora actuală,
iar pe de altă parte, serviciul web fiind scris în PHP, am luat în considerare faptul că PHP-ul
este optimizat în lucrul cu MySQL.
VLAD PETRE                                 REŢEA DE SOCIALIZARE BAZATĂ PE GEOLOCALIZARE ÎN TIMP REAL



Ca driver de interfaţare PHP - MySQL, am optat pentru MySQLi (MySQL Improved),
deoarece API-ul este orientat pe obiecte, oferă suport pentru tranzacţii şi este mai performant
decât driverul standard.

4.2.2.   Interfaţa cu Facebook
Autentificarea cu serviciul Facebook se realizează prin protocolul OAuth 2.0.
Confidenţialitatea datelor este asigurată prin utilizarea protocolului HTTPS.

Pentru a exploata la maximum API-ul Facebook în cazul de faţă, următoarele permisiuni
trebuie să fie obţinute:
     offline_access
             o permisiune necesară pentru a primi din partea Facebook, prin protocolul
                 OAuth 2.0, un jeton de acces (access token) care nu expiră;
     email
             o permisiune necesară pentru a avea acces la adresa de e-mail a utilizatorului;
     read_friendlists
             o permisiune necesară pentru a putea avea acces la lista de prieteni a
                 utilizatorului;
     publish_stream
             o permisiune necesară pentru cazul în care utilizatorul doreşte să publice
                 anumite informaţii în profilul sau public (pe wall);
     publish_checkins
             o permisiune necesară pentru cazul în care utilizatorul doreşte să facă public,
                 locul unde se află la un anumit moment (checkin Facebook Places);
     create_event
             o permisiune necesară pentru cazul în care un utilizator doreşte să creeze un
                 eveniment Facebook şi să îl plaseze pe harta FriLoc.
     rsvp_event
             o permisiune necesară pentru ca un utilizator să poată raspunde invitaţiei unui
                 eveniment din clientul Android.

4.2.3.   Aplicaţie client
Aplicaţia client este dezvoltată pe platforma mobilă Android 2.1+ şi este optimizată din punct
de vedere al bateriei şi al consumului de trafic de date.

În background, este pornit un serviciu care rulează permanent şi care trimite regulat
actualizări către serviciu web cu privire la locaţia curentă a utilizatorului.

Locaţia este obţinută prin triangulare GSM, cu o eroare acceptabila de 100m în oraşe. [3]

4.2.4.   Modul de procesare cereri
Modului de procesare al cererilor are rolul de a trata toate cererile adresate serviciului web şi
de a le oferi un răspuns. De asemenea, modulul poate iniţia la rândul său alte cereri către API-
ul Facebook.

Modulul de procesare al cererilor conţine şi o serie de algoritmi inteligenţi. Un exemplu în
acest sens este următorul:
     Caracteristică a platformei: un utilizator este notificat atunci când un prieten se
        regăseşte în aceeaşi zonă cu el.
     Problemă: utilizatorul, ducându-se la serviciu/facultate, va fi asaltat zilnic cu astfel de
        notificări.
     Soluţie: după câteva zile, serviciul web învaţă acest obicei al utilizatorului şi nu îl va
           mai notifica în zona respectivă.

5.   Concluzii
FriLoc este o platformă de socializare bazată pe geolocaţia în timp real a utilizatorilor, care se
detaşează de principalele reţele sociale actuale, datorită funcţionalităţilor pe care le are,
precum:
     orientare pe utilizatori, dar mai ales pe relaţiile strânse dintre aceştia, cu puternic
        accent pe interfaţa cu utilizatorul, pe gesturi şi pe simplitatea în utilizare;
     integrarea cu API-ul Facebook;
     trăsături originale: geonotiţe şi hartă free-for-all (etichetare locuri gen
        wikimapia.org);
     algoritmi inteligenţi de sugestie a locaţiilor de interes;
     filtrarea locaţiilor de interes în funcţie de ora deschiderii acestora;
     posibilitatea creării şi administrării locaţiilor de interes de către utilizatori;
     posibilitatea creării de grupuri temporare de utilizatori (ex: pentru excursii);
     posibilitatea notificării utilizatorilor de către aplicaţie (când telefonul e în buzunar),
        pe baza anumitor filtre specificate de utilizator, asupra: locaţiilor de interes din zona
        curentă, a prietenilor din zona curentă, a geonotiţelor, etc.


Referinţe
     [1]     Facebook. http://www.facebook.com/blog.php?post=297879717130/, preluat pe 8
             mai 2011.
     [2]     Gorumors.      http://gorumors.com/crunchies/most-accessed-social-network-from-
             mobile-phones/, preluat pe 8 mai 2011.
     [3]     Daniel Plohmann, Paul Imhoff. Localization (GPS, GSM, WLAN). XP Course,
             Universitaet Bonn, 2007.
     [4]     Daniele Quercia, Neal Lathia, Francesco Calabrese, Giusy Di Lorenzo and Jon
             Crowcroft. Recommending Social Events from Mobile Phone Location Data. 2010.
     [5]     Stéphane Distinguin, Pierre-Yves Platini and Amaury de Buchet. Social network
             websites: best practices from leading services. Fabernovel Consulting, 2007.
     [6]     P. Mitra and K. Baid. Targeted advertising for online social networks. Department
             of Computer Science & Engineering, Indian Institute of Technology, 2009.

Weitere ähnliche Inhalte

Ähnlich wie [SCS]Friloc - Scientific Paper

Folosirea internetului de catre copii
Folosirea internetului de catre copiiFolosirea internetului de catre copii
Folosirea internetului de catre copiiAna Maria Ismană
 
Lupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis PresentationLupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis Presentationlogan123
 
Project UpCity Preliminary Report
Project UpCity Preliminary ReportProject UpCity Preliminary Report
Project UpCity Preliminary ReportAdi Buzgar
 
Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...
Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...
Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...Ecaterina Moraru (Valica)
 
Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...
Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...
Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...E-Government Center Moldova
 
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Cacoo vs Mockingbird
Cacoo vs MockingbirdCacoo vs Mockingbird
Cacoo vs MockingbirdGeorgiana
 
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareDiploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareVlad Petre
 
Modulul 7 web
Modulul 7   webModulul 7   web
Modulul 7 web08alesa
 
Referat com metodica 11noiem2013
Referat com metodica 11noiem2013Referat com metodica 11noiem2013
Referat com metodica 11noiem2013mihaelapaduraru
 

Ähnlich wie [SCS]Friloc - Scientific Paper (14)

Folosirea internetului de catre copii
Folosirea internetului de catre copiiFolosirea internetului de catre copii
Folosirea internetului de catre copii
 
Lupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis PresentationLupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis Presentation
 
Project UpCity Preliminary Report
Project UpCity Preliminary ReportProject UpCity Preliminary Report
Project UpCity Preliminary Report
 
Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...
Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...
Tehnici De Tip Mashup Pentru Interactiuni Web In Sisteme Informationale Geogr...
 
Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...
Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...
Gestionarea utilizarii retelelor de socializare de catre organizatiile guvern...
 
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
Sabin Buraga et al. -- "Interactiune neconventionala" (workshop RoCHI 2009)
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web todo
Web todo Web todo
Web todo
 
Cacoo vs Mockingbird
Cacoo vs MockingbirdCacoo vs Mockingbird
Cacoo vs Mockingbird
 
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareDiploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
 
Tice usb 1
Tice usb 1Tice usb 1
Tice usb 1
 
Modulul 7 web
Modulul 7   webModulul 7   web
Modulul 7 web
 
Referat com metodica 11noiem2013
Referat com metodica 11noiem2013Referat com metodica 11noiem2013
Referat com metodica 11noiem2013
 
Zoom TV
Zoom TVZoom TV
Zoom TV
 

Mehr von Vlad Petre

SSD pe intelesul tuturor!
SSD pe intelesul tuturor!SSD pe intelesul tuturor!
SSD pe intelesul tuturor!Vlad Petre
 
The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure ProtocolVlad Petre
 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Vlad Petre
 
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)Vlad Petre
 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)Vlad Petre
 
[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)Vlad Petre
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)Vlad Petre
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)Vlad Petre
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareVlad Petre
 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy EconomyVlad Petre
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLVlad Petre
 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingVlad Petre
 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeVlad Petre
 
Aplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiAplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiVlad Petre
 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design DocumentVlad Petre
 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVlad Petre
 
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAOptimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAVlad Petre
 
The Bluetooth Protocol
The Bluetooth ProtocolThe Bluetooth Protocol
The Bluetooth ProtocolVlad Petre
 

Mehr von Vlad Petre (20)

SSD pe intelesul tuturor!
SSD pe intelesul tuturor!SSD pe intelesul tuturor!
SSD pe intelesul tuturor!
 
The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure Protocol
 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.
 
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
 
[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)
 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy Economy
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive Computing
 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor Vinge
 
Aplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiAplicare Filtre pe Imagini
Aplicare Filtre pe Imagini
 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design Document
 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements Specification
 
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAOptimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
 
Nvidia Tegra
Nvidia TegraNvidia Tegra
Nvidia Tegra
 
The Bluetooth Protocol
The Bluetooth ProtocolThe Bluetooth Protocol
The Bluetooth Protocol
 

[SCS]Friloc - Scientific Paper

  • 1. Reţea de socializare bazată pe geolocalizare în timp real pentru platforma Android™ Vlad Petre Universitatea POLITEHNICA din Bucureşti Facultatea de Automatică şi Calculatoare, Secţia Calculatoare Email: vlad@vladpetre.com Abstract Telefoanele mobile au apărut din nevoia oamenilor de a fi mereu în contact unii cu alţii. Pe măsură ce capabilităţile acestor dispozitive au evoluat, oamenii au început să folosească tot mai mult, prin intermediul aplicaţiilor, servicii de socializare online precum Facebook™ sau Twitter™ pentru a comunica. Lucrarea de faţă îşi propune să prezinte o evoluţie firească a acestui tip de servicii: o reţea de socializare bazată pe geolocalizare în timp real adresata în primul rând celor ce doresc să fie în contact permanent cu cei apropiaţi. Cuvinte cheie: Android, reţea de socializare, geolocalizare, timp real. 1. Introducere În ultimii ani, reţelele de socializare online au cunoscut o evoluţie fulminantă. Acest fenomen se datorează pe de-o parte nevoii umane de a fi mereu în contact unii cu ceilalţi, iar pe de altă parte se datorează evoluţiei tehnologice a terminalelor mobile [1]. Majoritatea reţelelor sociale din ziua de azi sunt orientate pe amiciţiile dintre utilizatori, pe nevoia de a partaja cat mai multe informaţii cu cât mai mulţi utilizatori, pe nevoia de a face publică locaţia utilizatorului la un anumit moment de timp. Prin lucrarea de faţă, doresc să abordez problema diferit. Astfel, lucrarea propune dezvoltarea unei platforme de socializare bazată pe geolocalizare în timp real. Soluţia este orientată pe prieteniile strâns legate şi apropiate dintre utilizatori şi propune ca utilizatorii înscrişi în această reţea să aibă posibilitatea de a interacţiona cu prietenii lor, de a consulta locaţia curentă a acestora pe hartă, precum şi de a partaja propria locaţie în reţea. 2. Analiza soluţiilor existente Există utilizatori de terminale mobile care doresc să fie în contact permanent cu cei apropiaţi (ex: familie, prieteni de-o viaţă). De asemenea, există situaţii temporare în care aparţinem de un grup social şi dorim să ne aflăm în contact permanent cu membrii acestuia (ex: ne aflăm într-o excursie la munte). La ora actuală, principalele reţele de socializare online sunt Facebook, Twitter şi Foursquare [2]. Facebook este o platformă de socializare orientată pe amiciţiile dintre utilizatori, un utilizator fiind încurajat să aibă cât mai mulţi amici. Twitter este o platformă de socializare orientată pe răspândirea de informaţii, un utilizator fiind încurajat să aibă cât mai mulţi urmăritori (în engleză followers). Iar Foursquare este o platformă de socializare orientată pe locaţia utilizatorilor la un anumit moment de timp, aceştia fiind încurajaţi să îşi facă cunoscută prezenţa într-un anumit punct de interes (muzeu, cafenea, campus etc.) pe Facebook şi/sau Facebook.
  • 2. VLAD PETRE REŢEA DE SOCIALIZARE BAZATĂ PE GEOLOCALIZARE ÎN TIMP REAL Soluţia propusă de mine vine să acopere nevoia neexploatată prezentată în primul paragraf al acestui capitol, se adresează utilizatorilor cu prietenii strâns legate între ei şi se numeşte FriLoc. Platforma FriLoc - friends locations - este o reţea de socializare bazată pe locaţia în timp real a utilizatorilor. Platforma se adresează utilizatorilor de reţele sociale, care folosesc în mod curent un terminal Android şi au un abonament de internet pe mobil. În primul rând, soluţia propune ca utilizatorii înscrişi în această reţea să aibă posibilitatea de a interacţiona cu alţi utilizatori, de a consulta locaţia curentă a acestora pe hartă, precum şi de a partaja propria locaţie în reţea. De asemenea, soluţia mai propune şi posibilitatea utilizatorilor de a consulta anumite locaţii de interes, de a acorda note şi comentarii acestor locaţii, de a crea şi administra locaţii de interes, precum şi posibilitatea de a adăuga geonotiţe pe hartă. 3. Trăsături cheie În cele ce urmează, voi încerca să prezint structurat, câteva trăsături ale platformei. 3.1.1. Din punct de vedere al interacţiunii utilizator-utilizator:  un utilizator va putea să se împrietenească cu alţi utilizatori;  utilizatorul va putea să vadă pe hartă unde sunt prietenii săi în timp real;  utilizatorul va putea să interacţioneze cu prietenii săi prin mesaje;  utilizatorul va putea să recomande locaţii de interes prietenilor săi (ex: o cafenea);  utilizatorul va putea să organizeze un eveniment public, sa îl plaseze pe hartă şi să îl promoveze; participanţii vor afla astfel mult mai uşor de locaţia unui eveniment (ex: http://patinoar.cs.pub.ro/ ). 3.1.2. Din punct de vedere al interacţiunii utilizator-telefon:  utilizatorul va fi anunţat printr-un semnal sonor daca un alt prieten de-al său se află în aceeaşi zonă cu el;  un utilizator va putea să îşi pună reminder pe zonă, iar în momentul în care trece prin acea zonă, telefonul să înceapă să sune (ex: nu e urgent, dar când o să am drum pe strada Maica Domnului, aş vrea să îmi cumpăr un tranzistor);  utilizare intuitivă şi facilă a aplicaţiei (ex: printr-o simpla scuturare a telefonului, chiar daca acesta este blocat, utilizatorul să vadă preţ de câteva secunde ce interese sunt în zona curentă). 3.1.3. Din punct de vedere al interacţiunii utilizator-locaţie:  utilizatorul va putea să vadă locaţiile de interes pe hartă (ex: muzee, cafenele, cinematografe);  utilizatorul va putea să vadă ce locaţii de interes sunt în zona sa (muzee, cafenele, etc.), precum şi câteva informaţii de actualitate (în timp real) legat de respectivele locaţii (ex: ofertele zilei - ideea e ca unele locaţii pot avea şi un administrator);  utilizatorul va putea să acorde o notă unei locaţii de interes precum şi să vadă ratingul actual al locaţiei de interes;  utilizatorul va putea să filtreze locaţiile de pe hartă în funcţie de orar (daca e deschisă sau nu la ora respectivă), de card-urile studenţeşti acceptate (ISIC, EURO<26), de tipul locaţiei (culturale, comerciale, entertainment);  un utilizator va putea să îşi ia geonotiţe (ex: mă duc prima dată la un prieten şi aş vrea ca data viitoare când mă mai duc să îmi aduc aminte repede unde stă).
  • 3. 4. Arhitectura platformei Din punct de vedere tehnic, pentru ca platforma să funcţioneze corespunzător, sunt necesare următoarele componente:  serviciu web (alcătuit din baza de date şi modulele interne de comunicaţie);  aplicaţie client pentru platforma Android ce va fi instalată pe terminalele compatibile ale utilizatorilor. În cele ce urmează, voi detalia specificaţiile tehnice ale fiecărei componente. 4.1. Diagrama de arhitectură 4.2. Serviciul Web Serviciu web este de tip RESTful (Representational State Transfer) şi este scris în PHP 5. Serviciul web este alcătuit din patru module:  modulul de comunicaţie cu baza de date;  modulul de comunicaţie cu API-ul Facebook;  modulul de comunicaţie cu clienţii;  modulul de procesare a cererilor. 4.2.1. Baza de date Baza de date este una de tip relaţional, iar ca sistem de gestiune al bazei de date am optat pentru MySQL, deoarece pe de-o parte este cel mai popular SGBD open source la ora actuală, iar pe de altă parte, serviciul web fiind scris în PHP, am luat în considerare faptul că PHP-ul este optimizat în lucrul cu MySQL.
  • 4. VLAD PETRE REŢEA DE SOCIALIZARE BAZATĂ PE GEOLOCALIZARE ÎN TIMP REAL Ca driver de interfaţare PHP - MySQL, am optat pentru MySQLi (MySQL Improved), deoarece API-ul este orientat pe obiecte, oferă suport pentru tranzacţii şi este mai performant decât driverul standard. 4.2.2. Interfaţa cu Facebook Autentificarea cu serviciul Facebook se realizează prin protocolul OAuth 2.0. Confidenţialitatea datelor este asigurată prin utilizarea protocolului HTTPS. Pentru a exploata la maximum API-ul Facebook în cazul de faţă, următoarele permisiuni trebuie să fie obţinute:  offline_access o permisiune necesară pentru a primi din partea Facebook, prin protocolul OAuth 2.0, un jeton de acces (access token) care nu expiră;  email o permisiune necesară pentru a avea acces la adresa de e-mail a utilizatorului;  read_friendlists o permisiune necesară pentru a putea avea acces la lista de prieteni a utilizatorului;  publish_stream o permisiune necesară pentru cazul în care utilizatorul doreşte să publice anumite informaţii în profilul sau public (pe wall);  publish_checkins o permisiune necesară pentru cazul în care utilizatorul doreşte să facă public, locul unde se află la un anumit moment (checkin Facebook Places);  create_event o permisiune necesară pentru cazul în care un utilizator doreşte să creeze un eveniment Facebook şi să îl plaseze pe harta FriLoc.  rsvp_event o permisiune necesară pentru ca un utilizator să poată raspunde invitaţiei unui eveniment din clientul Android. 4.2.3. Aplicaţie client Aplicaţia client este dezvoltată pe platforma mobilă Android 2.1+ şi este optimizată din punct de vedere al bateriei şi al consumului de trafic de date. În background, este pornit un serviciu care rulează permanent şi care trimite regulat actualizări către serviciu web cu privire la locaţia curentă a utilizatorului. Locaţia este obţinută prin triangulare GSM, cu o eroare acceptabila de 100m în oraşe. [3] 4.2.4. Modul de procesare cereri Modului de procesare al cererilor are rolul de a trata toate cererile adresate serviciului web şi de a le oferi un răspuns. De asemenea, modulul poate iniţia la rândul său alte cereri către API- ul Facebook. Modulul de procesare al cererilor conţine şi o serie de algoritmi inteligenţi. Un exemplu în acest sens este următorul:  Caracteristică a platformei: un utilizator este notificat atunci când un prieten se regăseşte în aceeaşi zonă cu el.  Problemă: utilizatorul, ducându-se la serviciu/facultate, va fi asaltat zilnic cu astfel de notificări.
  • 5. Soluţie: după câteva zile, serviciul web învaţă acest obicei al utilizatorului şi nu îl va mai notifica în zona respectivă. 5. Concluzii FriLoc este o platformă de socializare bazată pe geolocaţia în timp real a utilizatorilor, care se detaşează de principalele reţele sociale actuale, datorită funcţionalităţilor pe care le are, precum:  orientare pe utilizatori, dar mai ales pe relaţiile strânse dintre aceştia, cu puternic accent pe interfaţa cu utilizatorul, pe gesturi şi pe simplitatea în utilizare;  integrarea cu API-ul Facebook;  trăsături originale: geonotiţe şi hartă free-for-all (etichetare locuri gen wikimapia.org);  algoritmi inteligenţi de sugestie a locaţiilor de interes;  filtrarea locaţiilor de interes în funcţie de ora deschiderii acestora;  posibilitatea creării şi administrării locaţiilor de interes de către utilizatori;  posibilitatea creării de grupuri temporare de utilizatori (ex: pentru excursii);  posibilitatea notificării utilizatorilor de către aplicaţie (când telefonul e în buzunar), pe baza anumitor filtre specificate de utilizator, asupra: locaţiilor de interes din zona curentă, a prietenilor din zona curentă, a geonotiţelor, etc. Referinţe [1] Facebook. http://www.facebook.com/blog.php?post=297879717130/, preluat pe 8 mai 2011. [2] Gorumors. http://gorumors.com/crunchies/most-accessed-social-network-from- mobile-phones/, preluat pe 8 mai 2011. [3] Daniel Plohmann, Paul Imhoff. Localization (GPS, GSM, WLAN). XP Course, Universitaet Bonn, 2007. [4] Daniele Quercia, Neal Lathia, Francesco Calabrese, Giusy Di Lorenzo and Jon Crowcroft. Recommending Social Events from Mobile Phone Location Data. 2010. [5] Stéphane Distinguin, Pierre-Yves Platini and Amaury de Buchet. Social network websites: best practices from leading services. Fabernovel Consulting, 2007. [6] P. Mitra and K. Baid. Targeted advertising for online social networks. Department of Computer Science & Engineering, Indian Institute of Technology, 2009.