Date post: | 07-Nov-2014 |
Category: |
Technology |
Upload: | vlad-petre |
View: | 460 times |
Download: | 1 times |
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: [email protected]
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ă;
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.