Proiectarea Si Dezvoltarea Unui Sistem de Retea Sociala
Proiectarea si dezvoltarea unui sistem de rețea socială
Cuprins
1. Introducere
1. Introducere
Un sistem de socializare este capabil de a oferi o legătura între personae, fiind folosit de orice personă care are un minim de cunoștinte în mânuirea unui calculator.Acest sistem de socializare ajută persoanele care vor să socializeze și să își mărească lista de cunoștințe, sistemul oferă posibilitatea de a schimba informații și evenimente din viața unei persoane sau chiar evenimentele petrecute în societate în timp real.În acest secol unde informația este tot mai importantă pentru o persoană din mediul informațional, necesitatea de a socializa a devenit din ce în ce mai accentuată.
În această lucrare propunem dezvoltarea unei aplicații web în care o persoană poate să comunice cu anumite cunoștințe sau cu o persoană anume dar și postarea unor evenimente din viața personală și socială, pe scurt ne propunem implementarea unui site de socializare.
Lucrarea va fi structurată pe mai multe etape
Primii pași in dezvoltarea unei aplicatii web.
Tehnologii utilizate pentru dezvoltarea unei rețele sociale.
Descrierea aplicatiei.
Primul site recunoscut de rețea socială a fost lansat în 1997. SixDegrees.com a permis utilizatorilor să creeze profile, listarea prietenilor și începând din 1998, a navigării pe lista prietenilor. Fiecare dintre aceste caracteristici au existat într-o formă înainte de SixDegrees. Profilurile au existat pe cele mai importante site-uri matrimoniale și multe site-uri comunitare. AIM și ICQ sprijineau liste de prieteni, cu toate că aceste prietenii nu au fost vizibile și la alții. Classmates.com a permis oamenilor să se afilieze cu liceul lor sau colegiu și să navigheze pe rețeaua altora, care au fost de asemenea afiliați, dar utilizatorii nu puteau să creeze profile sau listă de prieteni pana acum câțiva ani, SixDegrees a fost primul care a combina aceste caracteristici.
SixDegrees este promovat ca un instrument pentru a ajuta oamenii să se conecteze și să trimită mesaje între ei. În timp ce SixDegrees a atras milioane de utilizatori, nu a reușit să devină o afacere durabilă și în 2000 serviciul a fost închis. Din 1997 până în 2001 un număr de instrumente comunitare au început sprijinirea diverselor combinații de profile si prietenii articulate public. AsianAvenue, BlackPlanet, și MiGente au permis utilizatorilor să creeze profile personale, profesionale, și matrimoniale – utilizatorii au putut identifica prieteni pe profilurile lor personale, fără a solicita aprobarea pentru aceste conexiuni. De asemenea, la scurt timp după lansarea sa în 1999, LiveJournal lista conexiuni pe o direcție de pe pagina utilizatorului. Creatorul LiveJournal a suspectat că el a modelat aceste „prieteni” după mesageria instantanee pe LiveJournal oamenii îi marcau pe alții ca prieteni ca să urmărească jurnalele lor și de a gestiona setările de confidențiale. Corea a realizat lumea virtuală Cyworld care a fost începută în 1999 și a adăugat caracteristici SNS (Social Network System) în 2001, independent de alte site-uri (a se vedea Kim & Yun, acest aspect). De asemenea în cazul Comunității web suedeză LunarStorm este remodelat ca un SNS în anul 2000, conține liste de prieteni, cărțile de oaspeți și pagini de jurnal
Urmatorul val de SNS a început atunci când Ryze.com a fost lansat în 2001 pentru a ajuta oamenii să impulsioneze rețelele lor de afaceri. Fondatorul lui Ryze a raportat că el a introdus prima dată site-ul la prietenii lui, în primul rând membrilor Comunității de Afaceri și Tehnologie din San Francisco, inclusiv antreprenorilor și investitorilor din spatele multor viitoare SNS-uri. În special, oamenii din spatele Ryze, Tribe.net, LinkedIn, și Friendster au fost strâns legate personal și profesional. Ei au crezut că s-ar putea sprijini reciproc fără concurență. În cele din urmă, Ryze nu a dobândit popularitate în masă, Tribe.net a crescut pentru a atrage o bază de utilizatori pasionați de niche, LinkedIn a devenit un serviciu de afaceri puternic, și Friendster a devenit cel mai important în cazul în care "unul dintre cele mai mari dezamăgiri din istoria Internetului". Spre deosebire de precedentele SNS-uri, Facebook a fost conceput pentru a sprijini doar rețele distincte de colegiu, începând din septembrie 2005, Facebook s-a extins pentru a include elevi de liceu, profesioniști din interiorul rețelelor corporative și în cele din urmă toată lumea, astfel a devenind unul dintre cele mai utilizate rețele de socializare.
Primii pași in dezvoltarea unei aplicatii web
Pentru a realiza o aplicatie web avem nevoie de unele concepte ale unor limbaje de programare necesare pentru a implementa o aplicație web.În acest capitol vom discuta despre HTML (în principal vom vorbi despre HTML5 in care va fi dezvoltată aplicația), PHP, MySqli, CSS, Javascript, Jquery și Ajax.Vom rămâne la aceste limbaje de programare deoarece aplicatia pe care dorim să o dezvoltăm cuprinde aceste limbaje, în general aceste limbaje de programare sunt suficiente pentru a crea o aplicație web.
HTML la HTML5
HTML are o lungă istorie,la început a fost publicat ca fiind un proiect de Internet în 1993.Ani ‘90 au văzut o enormă activitate în jurul lui HTML, cu versiunea 2.0, versiunea 3.2, si 4.0(în acelaș an), și în sfarsit, în 1999 cu versiunea 4.01.În decursul dezvoltării,World Wide Web Consortium (W3C) a asumat controlul specificaților.
După dezvoltarea rapidă a acestor 4 versiuni, deși HTML a fost considerat pretutindeni ca fiind o fundătură; standardele s-au concentrat pe XML si XHTML, si HTML a fost pus la coadă.Între timp HTML a refuzat să moară și majoritatea conțimutului de pe web a contimuat să fie servit ca și HTML.Pentru a activa noi aplicații web și ca să nu se ajungă la o fundătură a HTML, noi opțiuni si specificări au trebuit adăugate la HTML.
Vrând să ducă platforma web la un nou nivel, un grup mic de oameni au început proiectul Web Hypertext Applicațion Working Group (WHATWG) în 2004,acest grup au creat HTM5.Și au început lucrul la noi opțiuni mai specific la aplicațile web – zona de plecare lipsea.În jurul acestui timp a fost dezvoltat termenul de Web 2.0.Și a fost ca un al doilea nou web, ca urmare siteurile web au dat drumul la o dinamică mult mai eficientă și la siteuri de socializare care aveau nevoie de mai multe opțiuni (mult mai multe).
W3C a început să se implice cu HTML din nou în 2006 și au publicat primul proiect care funcționa pentru HTML5 în 2008, grupul de lucru XHTML2 sa oprit în 2009.Pentru că HTML5 a rezolvat probleme practice,furnizori de browsere sunt din ce în ce mai puțin interesați de implementarea de noi opțiuni, chiar dacă specificațile nu au fost complet puse la punct. Experimentele de către browsere au condus cu ajutorul feedurile la înbunătățirea specificaților. HTML5 evoluează rapid pentru a adresa îmbunătățiri reale și practice pentru platforme web.
HTML5 este bazat pe o varietate de principii de design, scrise în specificații WHATWG care îmbrățișează o nouă viziune a posibilităților și practicilor (Compatibilitate, Utilitate, Interoperabilitate, Acces Universal).
Cascading Style Sheets(CSS)
CSS a introdus o nouă funcționalitate în cont, pentru diferențele în publicare impusă de web.
Conceptul de cascadă a permis atât autorilor și utilizatorilor în influențarea prezentării unui document.
Schema propusă furnizează browser-ul, cu o lista ordonata (cascadă) din foile de stil. Utilizatorul furnizeaza fișa inițială care poate solicita un control total al prezentării,dar mai probabil mânuirea a majorități influenței la stilul referitor la document.
Negocierea între nevoile dorite de cititori și autori a fost una din principalele ambiții ale CSS-ului.
Daca va avea succes, autori ar lua partea lor echitabilă de influență asupra prezentării și nu s-ar simți obligați să utilizeze HTML de prezentare și alte trucuri. Cititorii pe de altă parte ar servi documente într-o formă în care ei ar putea alege între a accepta prezentarea sugerata de autor sau să precizeze propriile lor prezentări.
În multe cazuri, nu a existat nici un conflict între autor și cititor. Nici nu ar vrea să se precizeze prezentarea documentului. În astfel de cazuri, este important pentru browser de a avea o foaie de stil implicită, care descrie o prezentare implicit de documente HTML. CSS, prin urmare definește trei posibile surse de foi de stil: autorul, cititorul, și browserul. CSS este capabil de a combina foi de stil din surse pentru a forma prezentarea unui document. Procesul de combinare a mai multor foi de stil – si rezolvarea conflictelor în cazul în care acestea apar – este cunoscut sub numele de cascadă.
Prima propunere de către CSS a fost invocat în spiritul de schimb deschis de idei pe care ar trebui să le dezvolte aplicațile web astfel au avut loc discuții pe listele de mailing publice. Un număr de persoane au răspuns la propunere [Bos 1994] [Behlendorf 1994] [Wei 1994], iar proiectul a fost dezvoltat în continuare. În cursul anului 1995, au fost publicate aproximativ opt revizuiri. Ultima dintre acestea a fost publicată în decembrie 1995, declarând că furnizori stabili și browserele au fost "încurajați să-l folosească ca o bază pentru implementări".
Cu ce se ocupă PHP
Ca niciodată Web-ul este un vehicol major pentru corporații și comunicații. Siteurile Web conțin imagini din satelit a pământului în întregime, căutarea formelor de viață in spațiu, și albume photo personale, magazine de shopping, liste cu produse.Multe din aceste site-uri sunt conduse de PHP, si scripturi open sorce în principal concepute pentru a genera conținul HTML.
Încă din 1994, PHP a crescut în aplicațile Web și de curănd cu aprobarea de catre corporațile IBM, ORACLE și de milioanele de siteuri împuternicite de PHP, putând dezvolta site-uri puternice și dinamice cu PHP.Centrul limbajului PHP (Versiunea 5+) se bazează pe caracteristicile puternice string și array astfel acestea aduc unele facilități, ca și o înbunătățire a programării orientate obiect.Cu folosirea standardelor și extinderea opțională de module,o aplicție PHP poate să interacționeze cu baze de date ca și MySql sau Oracle, desenare de grafuri, crearea de fișiere PDF și parsarea fișierelor XML.Putând a fii scrise proprile extensi PHP în C de exemplu pentru a oferi o interfață PHP la funcțiile existente a unei biblioteci. Putând fii rulat chiar și pe Windows, care colaborează și cu alte aplicații ale Windows-ului cum ar fii Word si Excel cu COM sau interacționând cu baze de date folosind ODBC.
MySQL
O bază de date este o colecție structurală de date. Aceasta poate fi orice, de la o listă de cumpărături simplă la o galerie de imagine sau mari cantități de informații într-o rețea. Pentru a adăuga,accesa și prelucra date stocate într-o bază de date avem nevoie de un sistem de management a bazelor de date (MySQL server). Deoarece calculatoarele sunt foarte bune la manipularea cantităților mari de date, sisteme de management a bazelor de date joacă un rol central în utilizarea independentă, sau în părțile altor aplicații.
Javascript
Javascript este limbajul care ne ajută să adăugăm interacțiuni cu o pagină web.Un limbaj JavaScript se poate afla într-un fisier separat de pagina web dar și în conținutul paginii.În paginile HTML deoarece este codat în tag-urile <script> , scriptul în pagină nu apare și browser-ul rulează scriptul Javascript. Acest script este gasit deobicei în tag-ul <head> a pagini HTML, desigur el poate fii plasat și în tagul
<body>.Scripturile interioare sunt plasate cel mai bine în HTML acolo unde se află tagul <body>.
De mult când Netscape a adăugat câteva scripturi de bază la browser-ul Navigator Web, a fost numit original LiveScripting. Cam la același timp Java a adunat o mulțime de publicitate la Next Big Thing In Computing. Când Netscape a revizuit Navigator ca să ruleze pe aplet-uri Java astfel a aparut versiunea 2 a Navigator, cu aceasta modificare s-a redenumit si LiveScript astfel dedenumit si LiveScript astfel devenind JavaScript. Sperând că strălucirea lui Java se va degrada. Faptul că Javascript și Java sunt limbaje complet diferite nu a oprit genile marketingu-lui de la Netscape să îl denumească astfel.
Multe lucruri pot fii făcute cu limbajul Javascript pentru ca paginile să fie mai interactive și furnizând utilizâtorilor o mai bună navigare. Javascript permite crearea a unei interfețe mai active dând utilizatorilor un feedback în timp ce navigează pagina. De exemplu cand vedeți o pagină care are butoane care își schimbă starea când puneți mouse-ul pe acestea. Acest lucru este realizat cu Javascript folosind o tehnică denumită rollover. Javascript poate fii utilizat pentu a sustine forme,pentru a seta cookie-urile, pentru construirea paginilor HTML cu usurință, pentru crearea aplicaților bazate pe Web.
Javascript este un limbaj orientat pe partea de client și atât, este proiectat sa lucreze pe mașina client
și nu pe cea a serverului.
Jquery
În zilele noastre World Wide Web este un mediu dinamic unde utilizatorii lui pun o bară înaltă pentru stiluri și funcționalitatea site-urilor. Pentru a putea construi site-uri interesante și interactive dezvoltatorii de aplicații web își întorc privirea spre librăria jQuery a limbajului JavaScript pentru a face anumite sarcini automate și pentru a simplifica lucrurile. Un motiv pentru care librăria jQuery este o alegere populară este faptul că are abilitatea de a asista într-o gamă largă de sarcini.
Librăria jQuery furnizează un scop general de stări abstractizate pentru scripturi web și este folosită în aproape orice situație de codificare a unor funcții complexe.
Ce este Ajax?
Cel mai scurt răspuns este că e o cale de a crea aplicații Web interactive. Ajax este prescutatrea pentru Asynchronous JavaScript XML, și a fost inventat în 2005 de Jesse James Garrett, un dezvoltator web și autor. Vorbind strict, Ajax este o mică parte a lui JavaScript. La fel de utilizat, termenul nu se referă la o tehnologie de la sine.
În schema largă care în general se referă la Ajax ca fiind o combinatie dintre următoarele tehnologii:
XHTML
CSS (Cascading Style Sheets)
DOM (Document Object Model) accesat folosind JavaScript
XML, formatul folosit la transferarea de date dintre server si client
XMLHttpRequest pentru a prelua date de la server.
Beneficiul la Ajax este că majoritatea procesărilor pentru o aplicație se întâmplă înăuntrul browserului utilizatorului și cererile către server pentru date sunt scurte. Deci cu ajutorul lui Ajax puteți oferi utilizatorilor aplicații care depind de date bazate pe web, astfelnu este necesar ca serverul să trimită pagini întregi de HTML pentru un răspuns la utilizator.
Unele companii au făcut investiți mari in Ajax de notat Google, care a construit câteva aplicații Ajax majore, incluzând Gmail, Google Calendar, Google Docs și Google Maps.Un alt mare suport pentru Ajax este Yahoo! care utilizează Ajax pentru a spori portalul personal al My Yahoo!, prima pagină Yahoo!, Yahoo! Mail și altele.Ambele companii au facut interfața lor publică pentru ca oamenii să le poată utiliza și ca să creeze aplicații noi interesante.
Tehnologii utilizate pentru dezvoltarea unei rețele sociale
Pentru a putea dezvolta o rețea de socializare avem nevoie de anumite cunoștințe despre cum trebuie să arate o rețea și de ce aspecte trebuie să ținem cont atunci când implementăm un site de socializare. Astfel în acest capitol vom discuta în primul rând ce este o rețea socială și de ce factori trebuie să ținem cont atunci când implementăm o astfel de aplicație, dar și despre controlul datelor într-o rețea socială.
Rețeaua socială
În epoca globali zării, rețelele sociale au devenit principala metodă de comunicare între oameni din fiecare colț al aceastei lumi. Beneficiul în sine a rețelelor de socializare este irezistibilitatea și conveniența de utilizare. Există multemotive pentru care oameniialegrețeaua socialăpentru a se conecta. Prin crearea de rețele sociale oamenii devin prieteni și familiile lor primesc noutățile aproape în secunde, le permite să se conecteze la mii de oameni, în același timp le permite să se amestece în jur cu noi prieteni, împărtășind din viața reală prietenilor și experiența minunată prin interes similar.Unii ar putea utiliza rețeaua socială pentru a găsi un loc de muncă, crearea unui grup, pagină de fan, a-și exprima opinile lor, forum și pentru a-și stabili rețeaua de afaceri proprie. Rețelele sociale sunt dezvoltate prin modul de utilizare și scopurile pe care îl îndeplinește.
Rețeaua socială, creste la noi extinderii, astfel fuziunea împreună cu educație; e-learning și de a crea noi fenomene din mediul de învățământ așa-numitele învățarea socială; în cazul în careaccentul principaleste de a împărtășișide a cunoaștepe scară largă, nu camodul convențional. Punerea în aplicarea acestui sistem va scoate limita pentru noi de a împărtăși informații.Oamenii cu care ne conectăm pot fi prietenii noștri, iar acest lucru denumim prietenie socială. Înaceastă platformă, oamenii au tendințade a folosirețeauapentru a găsi prieteniși dea creaorelație.
"Teoria învățării sociale subliniază importanța de a respecta și modela comportamente, atitudini, și reacții emoționale ale altora. Procesele de învățare se concentreză pe observare și modelare ". Mai mult decât atât învățarea socială evoluează de la comportamentul și atitudinea înțeleaptă în învățarea cognitivă. Învățarea cognitivă este procesul de învățare, absorbție a cunoștințelor prin modul de a gândi, a se cunoaște, amintindu-și, judecând și de asemenea de rezolvare a problemelor. Elementul de învățare socială dorește să absoarbă în comportamentul online, astfel încât acest proces de invatare sociala să poată fi născut ca social e-learning. Această abordare poate fi atinsă în cazul în care există tehnologia utilizată pentru a îndeplini sarcina aceasta. Aceste sarcini sunt îndeplinite în trei roluri principale:
Tehnologia va asista elevii să găsească conținutul exact care acoperă conținutul în sine,public și obiectiv de către studenți și pedagogi.
Tehnologia vasprijini elevi și oamenii în domenii diferite, cu obiective și scopuri educaționale.
Tehnologiade asemenea vamotivașistimulape oameni săînvețe.
Tehnologia va ajuta foarte mult la realizarea de învățare în comportamentul on-line. Nevoia de interacțiune și comunicare se poate realiza cu existența unei rețele sociale. În timp ce pentru educație, va ajuta elevii să dobândească și să primească informațiile și cunoștințele de oriunde, oricând și nu limitată, de asemenea pentru îmbunătățirea abilități de a căuta informații.
Categoriile de rețele sociale
Cercetătorii au discutat în detaliu despre rețeaua socială, care este utilizată pe scară largă ca mediu de interacțiune pentru diverse scopuri. Beneficiile unei rețele sociale includ schimbul de idei, cunoștințe precum și comunicarea cu alții. Categoria unei rețele sociale este o clasă dată în rețeaua socială ca grupuri mari bazate pe anumite caracteristici, funcții, forme sau sensuri. În rețeaua socială, există multe site-uri care pot fi clasificate în anumite scopuri, un exemplu, a se vedea Linkedl, Mahara și Ning. Figura 3.1. prezintă schema unei categorii de rețea socială care se concentrează pe tineri, amplasare, călătorie, blogging, prietenii, educație, afaceri, muzica, video, fotografii, etc.
Din figura 3.1., putem vedea că există 22 de categorii disponibile în rețeaua socială, cum ar fi discuții, biblioteci și politică. Unele site-uri au împărtășit categoriile lor, cum ar fi Myspace. Myspace poate de asemenea fii clasificată în prietenie și categoria de muzică. În rețelele sociale mai multe site-uri se încadrează în mai multe categorii. Sistemul de socializare are aceste categorii deoarece acestea au unele atribute și instrumente care pot fi folosite pentru a îndeplini anumite funcționalități. În sine categoriile bazate pe activitățile de pe site-urile, de exemplu, în cazul în care site-urile fac unele activități de a cumpăra cărți, împrumutări de cărți și cărți de vizualizat site-ul se încadrează în categoria bibliotecă. În timp ce pentru prietenie, există mai mult de opt rețele sociale disponibile pentru a îndeplini scopurile de prietenie, de exemplu, Facebook, Freindster și, de asemenea, Twitter. Un site web poate fii calificat drept prietenie atunci când site-ul implică activități de a găsi prieteni, mesagerie instantă, schimbul de fotografii, jocuri, și de a crea evenimente. Există 10 site-uri ce se încadrează în această categorie și site-urile de socializare sunt în creștere rapidă. Cei mai mulți dintre utilizatorii de rețele sociale sunt adolescenți. Mai mult de 50% din utilizatorii de pe Friendster sunt de vârstă între 25-34 de ani. Cu toate acestea utilizatorii cu vârsta între 18-24 de ani sunt cei mai mulți pe Facebook. Cei mai mulți utilizatori în acest interval de vârstă sunt elevi de la școlile secundare dar și instituțiile de învățământ superior
Din moment ce majoritatea studenților utilizează rețele sociale, cercetătorii cred că aceasta poate deveni o platformă importantă la încurajarea procesului de învățare. Facebook are un potențial foarte mare de a devenit o platformă de învățare în scop academic. Precum Facebook are câteva caracteristici care încurajează activitățile sociale și de învățare. În timp ce pentru educație sau pentru a învăța, orice site care echipează cu atitudine schimbul de cunoștințe este pus în categorii de învățare. În plus, site-urile, de asemenea, trebuie să doteze cu Learning Management System (LMS), care permite procesul de predare și învățare. LMS este un software care se îndreaptă spre punerea în aplicare completă de automatizare a e- learning. Mai bine încă, principiile pedagogice trebuie să fie incluse în LMS. În plus principiile de pedagogie sunt vitale în aplicarea diferitelor metode și tehnici dacă este adecvat pentru student, fie în metodă convențională sau pentru metoda curentă. Sistemul de e-learning curent a implementat unele pedagogii fundamentale în mediu de clasă dar trebuie să fie îmbunătățite și extinse pentru a răspunde schimbărilor rapide a tehnologiei. Deci, cu creșterea a World Wide Web, și tehnologiei 2.0, rețeaua socială de îmbogățire a învățări poate fi realizată.
Figura 3.2. prezintă categorii de rețele sociale pentru prietenie și de învățare, care sunt disponibile în prezent. Popularele prietenii sociale (rețele sociale) disponibile sunt Facebook, MySpace și Bebo. În timp ce, pentru învățarea socială sunt Elgg, Mahara și Sclipo. Moodle este dovedit a fi extrem de folosit de LMS în instituțiile de învățământ din Malaezia. Toate caracteristicile de socialzare în rețea sunt integrate cu site-
uri web pentru prietenie, dar numai două caracteristici nu sunt incluse în procesul de învățare muzica și telefonia mobilă. Învățarea socială dezvoltă caracteristici cum ar fi telefonia mobilă și muzică pentru a încuraja tinerii să utilizeze în întregime platforma de învățare. Utilizatorii vor simți bucuria în timp ce folosesc învățarea socială și în același timp vor dobândi cunoștințe. Este mult mai eficientă telefonia mobilă pentru a permite utilizatorilor să acceseze cunoștințe oriunde și oricând.
Tabelul 3.1. ilustrează relația dintre principiile pedagogice și caracteristicile rețelei sociale. Cele mai multe caracteristici ale rețelei sociale în care suportul principilor pedagogice este chat-ul, mesageria instantă, telefonie mobilă și cărțile. În timp ce muzica și evenimentele caracteristice nu sprijinesc principiile pedagogice. Cu toate acestea trei din șase pedagogii, principile pot utiliza caracteristicile rețelei sociale în sprijinirea procesului de învățare, cum ar fi magazine și conținuturi de gestionare, de ambalare conținut și de sprijin a studenților. Chiar dacă principiul de apreciere este important pentru a se evalua elevii, nu multe caracteristici de rețea socială pot sprijini acest lucru. Prin analiza tabelului 3.1. se poate concluziona că nu toate caracteristicile rețelei sociale sunt aliniate cu principiile pedagogice. Deși caracteristicile de rețea socială sunt acceptate în procesul de învățare socială, dar atunci funcția poate diferi ca sprijin a principiilor pedagogice.
Rețele statice și dinamice
În domeniul științei rețelelor, rețeaua este în general divizată în rețea statică și rețea dinamică. În rețeaua statică, proprietatea funcției de noduri, margine și de cartografie nu se va schimba în timp. În rețeaua dinamică, numărul de noduri și muchii, forma funcției cartografiere, precum și alte proprietăți se pot modifica în timp, astfel rețeaua dinamică este o rețea care variază în timp. Rețeaua socială este o rețea dinamică tipică, cum ar fi o structură de rețea formată din comunicarea dintre oameni, în unele organizații de întreprinderi mari prin intermediul telefonului mobil, SMS și e-mail. Persoanele implicate în astfel de activități sunt în general abstractizate ca noduri de rețea, precum și relația dintre oameni și frecvența lor de
interacțiune captată ca rețea direcționată spre margine cu greutate. Împreună cu evenimentele importante legate de întreprindere (cum ar fi de restructurare, fuziuni si achizitii, faliment, divizat, structura organizatorică și altele), în relație se va ridica o varietate de fenomene, cum ar fi adăugați, ștergeți și reconectare în conformitate cu care poat fi abstractizat ca funcții de cartografie a structurii rețelei.
Schimbările de noduri de rețea, margini și funcții de cartografie in timp poate duce la restructurarea structurii rețelei, tranziția de la o stare la altă stare stabilă, adică necesitatea unei structuri de rețea. O astfel de necesitate este, în general urmarea a unei acțiuni reciproce a unor reguli locale, interne sau externe, care provoacă anumite caracteristici ale întregului schimb de structură a rețelei. Rețeaua răspunde în mod frecvent și rapid la condițiile externe prin optimizarea a unor caracteristici proprii, cum ar fi reducerea minimă a căii de lungime, maximizând fluxul sau minimizarea costurile. Prin răspunsurile la influențe externe, rețeaua se adaptează prin schimbarea structurii proprii sau optimizarea uneia sau mai multor proprietăți. Prin urmare, necesitatea structurări rețelei sociale poate fi de asemenea poziționată ca acțiune reciprocă a regulilor micro-locale care duc la schimbări în proprietăți la scară macro, și ajung la starea de echilibru finală.
Structura comunitară în rețeaua socială este o structură virtuală abstractă. Este o cantitate mare a structurilor de grupuri astfel există în rețelele sociale și structuri de tip grup care se vor schimba prin interacțiunea dintre indivizii grupului. Provocate de forțe externe, reorganizarea structuri de grup poate fi atinsă prin reducerea sau consolidarea conexiuni și alte forme sociale, ceea ce duce la modificări macroscopice în structura rețelei și în cele din urmă întreaga aparițiie, cum ar fi generarea unui nou grup. Strict vorbind, structura rețelei sociale este în continuă schimbare. Luăm rețeaua socială formată din relația de e-mail, de exemplu atât timp cât rețeaua are noul comportament de discuții, mici schimbari apare în structura de rețea: fie greutatea conexiune între două noduri crește; fie cele două noduri, care nu au legătură directă, înainte de a configura conexiunea. Această interacțiune locală între nodurile rețelei sociale, de obicei, nu schimbă întreaga structură de rețea, de exemplu există mai mult de un mail între două persoane care nu afectează direct starea relației lor și ocazional un mail cu un străin nu înseamnă că îl primești în ciclul de prieteni. Dar pe măsură ce timpul trece, cu promovarea de influențe a factorilor externi și cu efect de acțiune reciprocă a normelor locale interne, structura unor grupuri din rețeaua socială se vor schimba de la o stare la alta. De exemplu dacă cineva într-o organizație este promovat pentru a deveni lider, după o perioadă de timp el va deveni treptat nucleul organizatiei.
Reflectat în rețeaua socială este ca nodul care reprezintă această persoană este tranziția treptată de la locul non-central a rețelei de organizare spre poziția centrală și rămâne stabil noua structură a rețelei sociale.Care apare dedesuptul forței exterioare, structura rețelei sociale realizează apariția a întregi structuri prin acțiuni reciproce a regulilor locale între indivizi, afișând o nouă trăsătură a structuri (de exemplu gradul de centralizare mai mare, baza de rețea mai mică și altele).
În societatea contemporană formarea de grupri ascunse, schimbările de subiecte fierbinți, de difuzare inovației și așa mai departe pot fi considerate necesităti pentru structura unei rețele sociale.
Stabilitate în rețelele sociale
În general, putem folosi un timp care variază (triplet) pentru a descrie rețeaua
dinamică: , unde N(t) este un set de noduri, L(t) este un set de muchi,f(t) este funcția cartographică care mapează o muchie a perechii de noduri: , N(t),L(t) și f(t) variază în timp, astfel G(t) este rețeaua dinamică. Forma rețelei poate fi definită prin funcția f (t), se poate schimba în timp atunci când ștergem, adăugăm și re-conectăm nodurile.
Să presupunem că rețeaua G (0) este în starea sa inițială, și se aplică o reguli multi-locală a reguli geometrice R la fiecare pas a lui G, ceea ce face ca G (0) să treacă la G (1), apoi tranzitia de la G (1) la G
…, până când se ajunge la stare finală , sau repetă starea de dinainte, de exemplu
, unde E(t) este forța exterioară pe G.Dacă G(t) ajunge la starea finală care rămâne neschimbată pentru , atunci G este convergent altfel este divergent.
Emergența este o nouă stare de echilibru ca sistemul care ajunge prin acțiunea reciprocă de norme locale între indivizi în evoluția sistemelor complexe adică procesul de completare emergentă. În rețeaua socială, această stare de echilibru poate fi numită comunitate dar în realitate multe rețele nu au absolută independență față de structura celeilalte comunități dimpotrivă ele sunt constituite din mai multe comunități interdependente suprapuse reciproc.
De exemplu în comunicație și internet, ambele se bazează pe rețelele sociale, numărul de comunități separate între ele sunt puține, o persoană este probabil să aparțină diferitelor comunități în același timp (cum ar fi firma la care lucrează, familia, grupuri de interese, etc),din care rezultă conceptul de comunități care se suprapun. Și algoritmul de filtrare a grupurilor poate fi folosit pentru a analiza astfel de structura comunitare de suprapunere, așa cum se arată în Figura 3.3.
Figura 3.3.Structura comunitară suprapusă.
În comunitate există unele persoane speciale care pot fi văzute ca un set de mici rețele cuplate complet. Aceste rețele de cuplare complete sunt numit grupuri, și k-grupuri indică numărul de noduri în rețeaua de cuplare k completă. În cazul în care două k-grupări au k-1 noduri comune, apelăm cele două k- grupări înainte și după conectarea cu fiecare. Comunitatea grupurilor k în rețeauă poate fi văzută ca un set constituit din toate k grupări interconectate. De exemplu, 2 grupuri reprezintă marginile din rețea, apoi 2 grupuri comunitare reprezintă fiecare sub-graf conectat în rețea, în timp ce 3-grupuri reprezintă un triunghi în rețele, apoi comunitatea de 3 grupuri reprezintă un set de triunghiuri interconectate, și oricare două triunghiuri adiacente din comunitate au o margine comună. Figura 3.4. prezintă 2-grupuri, 3-grupuri și 4- grupuri.
Figura 3.4. Rețea de grupuri.
Unele noduri din rețea pot face parte din k-grupări, în timp ce aceste k-grupări nu sunt adiacente (ceea ce înseamnă că nu au k-1 noduri comune).Prin urmare aceste noduri sunt k grupuri comunitare de secțiunii "suprapuse".Pentru o rețea de cuplare completă de dimensiune s , selectând aleatoriu k noduri pot forma o grupare k.În plus, pentru orice două rețele complete de cuplare mai mari decât dimensiunea k, care au k-1 noduri comune între ele pot forma întotdeauna ogrupure k.Prin urmare, în algoritmul de filtrare a grupurilor, avem nevoie doar ca să găsim cele mai mare cupluri complet de sub- grafuri (grupuri) în fiecare secțiune, apoi putem folosi cele mai mari cuplări pline de sub-grafuri pentru a găsi k-grupuri ce conectează sub-grafuri (de exemplu, k-grupuri de comunității)
Identificarea comunităților structurale în rețelele sociale stabile
În rețeaua socială, hotărârea stării de echilibru este în principal baza comunități care nu produce schimbări structurale mari cum ar fi atrofierea, expansiune, divizarea, fuziune, naștereașimoarteaîntr-o perioadădetimp. Nivelul de implementare a algoritmul, implică două aspecte: unul este modul în care identificăm structura comunitară în rețeaua socială de la o anumită perioadă de timpcare utilizeazăîn principalalgoritmii de detectarecomunitară bazată pegrupuride filtrație;alta este modul în care comunitatea tranzitivă trece de la o stare de echilibru la altă starea de echilibru în forță externă și de acțiune reciprocă a regulilor locale interne de la o anumită perioadă de timp.
Înaintea studiului de stabilitate a comunități structurale de a identifica problemele într-o rețea de socializare trebuie să investigăm implementarea algoritmilor de detectare a comunităților. În algoritmul de detectare comunitar menționat anterior bazat pe grupuri de percolație în general folosit de la mare la mic algoritmii de regresie iterativi pentru a găsi grupuri de rețea.
Mai întâi de toate, din gradul fiecărui nod din rețea se poate decide cea mai mare dimensiune S a rețele cuplate complet care pot exista în rețea.Începând de la un nod din rețea găsim toate grupările de mărime S conținând acest nod, eliminăm acest nod și marginile conectate la acesta, pentru a evita în mod repetat găsirea acelor grupuri inițiale.Apoi selectăm un alt nod, repetați pașii de mai sus până când nu există nici un nod în rețea.În acest moment, toate grupurile de dimensiune S din rețea sunt găsite. Apoi, reduceți treptat pe S (decrementând cu 1), utilizați metoda de mai sus pentru a găsi toate grupurile de diferite dimensiuni. Cheia algoritmului este cum să detectăm toate grupurile de mărime S care conțin nodul inițial.
Algoritmul 1: Algoritmul de filtrare a grupurilor.
Pasul 1. Decideți cea mai mare dimensiune S posibilă a rețelei de cuplare completă în funcție de gradul fiecărui nod.
Pasul 2. Porniți de la un nod din rețea, detectând toate grupurile de mărime S ce conțin acest nod. Pasul 3. Eliminați acest nod și marginile conectate la acesta (evitați să găsiți repetat acelaș grup). Pasul 4. Selectați un alt nod, repetați pasul 2 și pasul 3 până când nu există nici un nod în rețea.
Pasul 5. Afișați toate grupurile de mărime S din rețea; dacă S> 1, atunci S= S-1, repetăm Pasul 1 până la Pasul 5 până când găsim toate grupurile de dimensiuni diferită din rețea.
Algoritmul 2: Algoritm de detectare comunitar bazat pe grupuri de filtrare.
Pasul 1.Găsirea fiecărui grup din rețea conform algoritmului 1, mapați în grupuri la matriceasuprapusă(fiecare rând sau coloană a matricei corespunde la un grup,elementele diagonale reprezintă numărul de noduri corespunzătoare în grup,elementele non-diagonale reprezintă numărul de noduri publice între două grupuri).
Pasul 2. Din k-grupuri comunitare este compus graful conectat adiacent, k grupuri împart aceleași k-1 noduri.În matrice suprapuneți grupurile, setați elementele diagonale care sunt mai mici decât k și elementele non-diagonale care sunt mai mici decât k-1 pe 0,setați alte elemente cu 1, apoi luați matricea de conectare structurală comunitară de k grupuri.
Pasul 3. Fiecare secțiune conectată în matrice reprezintă comunitățile de k grupuri.
Figura 3.5. Procesul de detectare a k grupuri comunitare a grupurilor totale.
Controlul accesului la date
Controlul accesului la resurse și servici este un subiect clasic și important pentru sistemele informatice.Este fundamental și critic pentru securitatea sistemelor.Încă de la apariția caracteristicilor sistemelor de mai multe aplicații, a servit la mai mulți utilizatori în 1970, este sporit gradul de conștientizare a problemelor de securitate a datelor.În mod specific controlul accesului este despre cum să ne asigurăm că numai utilizatorii autorizați au avut acces la anumite date sau resurse.În general vorbind, accesul controlului este mecanismul prin care serviciile știu dacă să onoreze sau să refuze cererile. De multe ori se compune din patru probleme: identificare, autentificare, autorizare și acces.
Înainte de apariția aplicaților Web 2.0, controlul accesului la sistemele de calculator este de obicei determinat de eforturile comune ale proiectanților de sisteme și administratorilor.Proiectanții de sisteme decid modelul de acces adoptat de sistemele informatice și administratorii de sisteme sunt responsabile pentru configurarea de reguli de acces în sistemele informatice.Modelul de control al accesului tipic pentru sistemele informatice tradiționale includ Mandatory Access Control (MAC, sau Lattice Based Access Control (LBAC)),Discretionary Access Control (DAC), Role Based Access Control (RBAC), Attribute Based Access Control (ABAC), distributed Role Based Access Control (dRBAC), și authoriZation Based Access Control (ZBAC).
În aceste modele MAC și DAC sunt cele mai clasice.RBAC a fost introdus după MAC și DAC. Acest model de control al accesului este cel mai cunoscut și utilizat pe scară largă.ABAC se ocupă cu controlul accesului și cu granulatie fină de servicii web atât la nivel de servicii cât și la nivelul parametrilor într-un mediu dinamic și distribuit. RBAC combină avantajele sistemelor RBAC și de management de încredere pentru a crea un sistem care ofera atât ușurință administrativă cât și descentralizare, implementarea scalabilă de control al accesului în medii de coaliție extrem de dinamice.ZBAC încearcă să rezolve problemele de control al accesului de domenii încrucișate în sistemele informatice folosind Service- Oriented Architecture (SOA).Aceste modele au scopul de a oferi soluții pentru a accesa probleme de control în diferite scenarii de aplicare.Deși au propriile avantaje și dezavantaje, nu există cel mai bun model. Mai mult, ele nu se exclud neapărat. Unele dintre ele pot fi combinate pentru a realiza controlul accesului mai potrivit pentru sisteme de calculator practice.
Diferit de controlul al accesului la sistemele informatice tradiționale, controlul accesului la aplicații Web 2.0 este bazat pe relații.Este determinat prin eforturile colective al designerilor de sistem, administratorii de sistem, și în special a utilizatorilor.Proiectanții de sisteme decid modelul de acces pe care aplicațiile Web 2.0 le vor adopta așa cum se întâmplă în sistemele informatice tradiționale, administratorii de sistem sunt responsabile de confirmare sau de setare a atributelor specifice ale utilizatorului identificat.Responsabilitatea de a configura regulile de acces cu granulație fină este în mare parte transferate către utilizatori.În cele mai multe cazuri, o dată ce aplicația Web 2.0 este pusă on-line accesul controlului în sistem este de fapt decis de către eforturile colective ale tuturor utilizatorilor.Având în vedere că majoritatea utilizatorilor de aplicatii Web 2.0 sunt egali în centrul de control al accesului sistemelor este de a controla informațiile și resursele pe care utilizatorii le pot accesa prin intermediul paginilor web sau servicii.Adică, chiar dacă într-o aplicație Web 2.0 utilizatorii pot accesa paginile Web sau servicile similare, ei vor primi diferite informații și resurse prin intermediul acestor pagini web sau servicii.
Controlul accesului relației bazate în aplicații Web 2.0 este construit pe inteligența colectivă, care se reflectă prin identitatea utilizatorului, relațile lor sociale și permisiunile pe care le-au setat pe profile și pe conținut.În primul rând, deoarece aplicațiile Web 2.0 vizează utilizatorii individuali și oferă diferite forme de creare a conținutului și servicilor de împărtășire, identitatea utilizatorilor ar trebui să fie baza controlului de acces așa cum este în toate celelalte modele de control al accesului.În al doilea rând, cele mai multe aplicații Web 2.0 permit utilizatorilor să stabilească relațile personale cu alți utilizatori, relațiile membrilor cu grupuri și controlul accesului la aplicația Web 2.0 este de obicei construit pe relațiile sociale a și relații membre. În al treilea rând, utilizatorii au drepturi depline de a decide cine poate accesa conținutul lor,dacă ei sunt proprietari de conținut în aplicația Web 2.0. Li se permite să stabilească norme de acces pentru conținutul lor creat în aplicații Web 2.0.Regulile de acces pot fi reguli implicite pentru tot conținutul creat
de un utilizator individual sau norma specifică pentru o intrare în conținutul creat de un utilizator individual.
Este de remarcat că identitatea utilizatorilor, relația lor socială, permisiunile pe profilul utilizator și conținutul creat de utilizatori sunt create prin comportamentul colectiv de o cantitate mare a utilizatorilor. Într-un cuvânt accesul controlului a relației de bază în aplicații Web 2.0 adoptă un model de inteligență colectivă.
Relația de bază a accesului de control în SNS (Social Network System)
Ca un tipic de aplicație Web 2.0, controlul accesului relației bazat pe sistemul de rețea socială adoptă un model de inteligență colectivă care este construit pe identitatea utilizatorilor, relatiile lor sociale și permisiunile pe care le setează pe profilul lor și a conținutului. Deoarece relațiile sociale ale utilizatorului este elementul central de legătură bazat pe modelul de control al accesului, modelul relație a sistemului de rețea socială este unul dintre cei mai importanți factori al acestui model. Din acest motiv, vom introduce în primul rând modelul de relație socială într-un sistem. Iar în al doilea rând vom face o analiză în detaliu a modelului de acces a relației de bază construit pe modelul de relație socială.
Modelul relației în sistemul de rețea socială este format din cinci tipuri de relații care pot fi împărțite în două categorii. Prima categorie cuprinde două tipuri de relații între utilizatori; a doua categorie cuprinde trei tip de relație între utilizatori și grupuri. Cele două tipuri de relații între utilizatori sunt în două direcții și anume relația prieten confirmat și o relație direcțională și anume relația după confirmare. Utilizatorii sistemului de rețea socială pot diviza mai departe prieteniile lor și pot urmări utilizatori în mai multe liste.
Cele trei tipuri de relații între utilizatori și grupuri includ relația proprietar,relația manager și relația membru. Este de remarcat că o relație între un utilizator și un grup poate fi transformat într-un set de relații între utilizator și toți ceilalți membri ai grupului. Odată ce un utilizator stabilește orice relație cu un grup, el
/ ea va fi conectat cu proprietarul, managerii și cu toți membrii existenți și viitorii al acelui grup în domeniul de activitate.
Figura 3.6. Modelul de relație al sistemului de rețea socială.
Așa cum se arată în Figura 3.6, există cinci legături între utilizatori și patru legături între utilizatori și grupuri.Un utilizator are un prieten (utilizator B) și doi adepți(utilizator C și ușor de utilizator D);el este de asemenea urmasul a doi utilizatori (utilizator C și de utilizator E).Grupul P are un singur proprietar (utilizator B), un director (utilizator C) și doi membri (utilizator D și utilizator E).
Nucleul responsabil de controlul accesului de bază al sistemului de rețea socială este de a decide informațiile pe care utilizatorii le pot accesa în sistem. Acesta este construit pe modelul relațional a sistemului. Așa cum am menționat mai sus, există două categorii de relații în campus a sistemului de rețea socială: relația între utilizatori, și relațiile dintre utilizatori și grupuri. Prin urmare controlul accesului relație de bază a sistemului de rețea socială constă din două părți principale: de control al accesului centrat pe utilizator și de control al accesului centrat pe grup. Următoarele părți se ocupă cu controlul accesului de informații eliberat în spațiu personal a utilizatorului, partea următoare se referă la controlul accesului de informații lansat în spațiul comun al grupului.
Figura 3.7. Relația de bază a accesului de control al sistemului de rețea socială
Cum se arată în Figura 3.7., relația de bază a controlului de acces în sistemul de rețea socială include opt elemente de bază și anume utilizatori, grupuri, relatiile utilizator-utilizator, relatiile utilizator-grup, relatii, operatiuni, informare, resurse, și permisiune.Utilizator se referă nu numai la ființele umane, inclusiv studenți, facultăți, membri ai personalului, si absolventii care vor folosi sistemul de rețele socială; dar, de asemenea, se referă la conturile publice în sistemele care reprezintă diferite tipuri de organizații în sistem.
Grupuri se referă la entități comune a unui anumit set de utilizatori. Există mai multe tipuri de grupuri, inclusiv grupurile publice, grupuri private, și grupuri de agenții în sistemul de rețea socială.Diferite tipuri de grupuri au caracteristici diferite cu privire la vizibilitate grupului, stabilirea de membrii, vizibilitate informații, etc. Relațiile se referă la relații în sistem, acesta conține relația utilizator-utilizator între utilizatori și relația utilizatori-grup între utilizatori și grupuri.Permisiunile se referă la aprobarea de a efectua operațiuni pe informații și resurse în sistem care este determinat de proprietarii și relațiile dintre proprietari și vizitatori.Informații și resurse se referă la conținutul creat de utilizatori. Operațiuni pe informații și resurse în sistem include citire, scriere, modificare, comentare, înaintare, împărtășire și de recomandare, etc.
Analiza accesului de control
Deoarece controlul accesului de bază în sistemul de rețea socială potate fi împărțit în control al accesului centrat pe utilizator și de control al accesului centrat pe grupuri, vom face o analiză detaliată de scenariu pe cele două tipuri de control al accesului respectiv. Prin urmare ne așteptăm să obținem o înțelegere mai profundă a controlului accesului de bază.Este de remarcat că scenariile de control al accesului centrat pe utilizator și controlul al accesului centrat pe grupuri sunt similare în cadrul procedurii de bază.
Figura 3.8. Scenariul tipic al accesului de control centrat pe utilizator.
Figura 3.8. ilustrează un scenariu tipic de control al accesului spre utilizator. Când un utilizator în sistemul de rețea socială vizitează o pagină web pentru servicii personale, el / ea ar dori să obțină informații și resurse eliberate de contactele lui / ei din sistem. Contactele de utilizatori includ prieteni, utilizatori urmariți și adepți. Deși diferite pagini web pot oferi diferite servicii, majoritatea dintre utilizatori au nevoie la început de a obține o anumită listă de utilizatori. Atunci sistemul va obține informațiile și resursele eliberate de către lista de contacte. După aceea informațile și resursele obținute, împreună cu lista de contacte vor fi returnate la pagina web solicitată.În cele din urmă, este generată pagina solicitată și afișată.
Figura 3.9. Scenariul tipic al accesului de control centrat pe grupuri.
Scenariul de control acces centrat pe grupuri este similar cu cel de control al accesului pe utilizator. Diferența constă în a doua și a treia etapă. Așa cum se arată în figura 3.9., atunci când un utilizator în sistem vizitează o pagină web pentru serviciile de grup el / ea de obicei vor obține informații și resurse eliberate de către membrii grupului care s-au alăturat,care administrează sau care l-au creat. Atunci sistemul va obține informațiile și resursele eliberate de grup. După aceste informații și resurse obținute împreună cu lista de grupuri și membrii acestora vom fi returnați la pagina web solicitată.În cele din urmă, este generată pagina solicitată și este afișatăutilizatorului.
Servicii REST
În prezent, Internetul este unul dintre cel mai folosite mass-media de difuzare din lume, acest lucru se datorează în parte rețelelor sociale, cum ar fi Facebook , Twitter și Youtube. Cu toate acestea, există câteva aplicații care combină funcționalității a unor diferite rețele sociale. De exemplu, deși există diferite rețele sociale pentru a împărtăși fotografii și imagini, cum ar fi Flickr, Photobucket și Picasa, este necesară
o aplicație care combină funcționalitatea acestor rețele sociale, oferind rezultate mai rapide în comparație cu a face aceste sarcini într-un mod separat, în fiecare rețea socială.În acest sens, necesitatea de a avea acest tip de aplicatii web a apărut.Aceste aplicații web sunt numite mashup-uri.
Un mashup este o aplicație web care integrează date din mai multe surse web pentru a oferi un serviciu unic.Surse interne de date, fluxuri XML, Screen-Scraping și servicii web sunt resurse folosite de mashup-uri.Un serviciu web este un sistem software conceput pentru a sprijini interacțiunea interoperabilă mașină-la-mașină într-o rețea.La începutul anului 2000 unele organizații utilizează SOAP pentru
dezvoltarea de servicii Web.In zilele noastre, REST a apărut ca o nouă abordare pentru dezvoltarea de servicii Web.
REST este un stil arhitectural de sisteme hipermedia distribuite și este folosit pentru a furniza servicii web de către un număr mare de rețele sociale, cum ar fi Flickr, Twitter sau Ebay.
REST descrie 6 constrângeri aplicate la arhitectură:
Client-server: o interfață uniformă separă clientii de servere;
Stateless: nici un context de cererieste stocat pe server;
Cacheable, clientii pot memora în cache răspunsuri
Sistem stratificat: un client nu poate spune în mod concret dacă este conectat direct la server de terminare sau unui intermediar pe parcurs.
Codul cu privire la cerere: serverele sunt în măsură să se extindă sau să personalizeze funcționalitatea unui client prin transferul de cod executabil temporar
Interfață uniformă: este considerată fundamentală pentru proiectarea de orice serviciu REST în această interfață toate resursele sunt identificate în mod individual în cereri folosind URI-uri.
Figura 3.10. Stilul arhitectural REST.
REST bazate pe servici web oferă avantaje, cum ar fi:
Solicitările și răspunsurile sunt mai scurte decât SOAP deoarece necesită un format XML învăluit în fiecare cerere și răspuns
Lățimea de bandă necesară pentru a transporta cereri și răspunsuri este mai mic decât SOAP
Pentru a procesa cereri răspunsul necesită mai puțină memorie și timp în prelucrare decât SOAP.
În prezent, există instrumente care permit dezvoltarea mashup-uri, cum ar fi: Yahoo PIPES sau Dapper, printre altele.Cu toate acestea, aceste instrumente au limitări pentru construirea de interfețe utilizator vizual atrăgătoare, o problemă de mare importanță în vigoare a aplicaților web 2.0.Pentru a avea un număr mai mare de mashup-uri care integrează funcționalitățile de rețele sociale și oferă rezultate de valoare adăugată pentru utilizator, o revizuire a API-uri REST pe baza de rețelele sociale este obligatorie.
State of Art în dezvoltarea Mashup-urilor
Mai multe inițiative sunt în mod normal bazate pe utilizarea de instrumente bine-cunoscute și de a propune noi limbaje pentru dezvoltarea mashup-urilor. O analiză a mashup-urilor ca arhitectură de sisteme management al cunoștințelor, de asemenea, potențialul de integrare a mashup-urilorîntr-o arhitectura standardizată a unui sistem de gestionare a cunoștințelor sunt examinate. Platforma de servicii web pentru construirea de soluții mixte a realiăți. Această platformă care permite clienților să creeze,să preia și să modifice conținutul realități folosind o interfață unificată bazate pe tehnologii web standard, cum ar fi HTTP, REST și Linked Data.
Proiectarea și dezvoltarea sistemului de socializare
În acest capitol vom discuta despre cum au fost implementate tehnicile propuse pentru a creea o rețea de socializare a unui mediul online. Tehnologia și modul de implementare utilizat în dezvoltarea acestui site va fii prezentată în următoarele subcapitole dar mai întâi vom avea o scurtă prezentare a acestor tehnici utilizate și ce conține acest site de socializare.
Pentru realizarea siteului de socializare au fost folosite limbajele de programare descrise în Capitolu 2 (Primi pași in dezvoltarea unei aplicati web), aceste limbaje au fost combinate pentru a crea un site de socializare complex.
Putem spune că aplicația pe care o prezentăm are o complexitate la fel ca oricare alt site de socializare cum ar fi Facebook, Twitter și altele. Asemămarea acestei aplicați cu alte siteuri de socializare se datorează funcționalității pe care o oferă:
Sistemul de registrare ca un utilizator.
Sistemul de postare a informatiei și comentari la postările lăsate de alți utilizatori sau la proprile postări.
Sistemul de adăugare sau blocare prieteni.
Sistemul de vizualizare a activității prietenilor cunoscuți.
Sistemul de mesagerie între doi utilizatori.
Sistemul de adăugare a imaginilor într-o galerie.
Geolocalizare.
Sistemul de creare grupuri.
Sistemul de uploadare a fișierelor într-un spațiu personal al unui utilizator.
Acestea sunt funcționalitățile care sunt implementate în această aplicație. Cum puteți observa aplicația conține numeroase caracteristici pe care un site de socializare trebuie să le aibă.
Acest capitol va arăta modul de realizare și de implementare a sistemelor precizate anterior, pentru început vom arăta modul de implementare a bazei de date,o descriere a aplicației și vom continua cu expunerea modului în care s-au implenetat sistemele descrise anterior în aplicație.
Diagrama de context static
Structura aplicației
Cea mai importantă parte este structurarea aplicației deoarece descrie modul în care aplicația a fost implementată. În principiu arhitectura aplicațiilor este pe următoarele trei nivele:
Baza de date (Serverul SQL).
Acest nivel include logica aplicației (răspunde la interogările aplicației, face prelucrări masive, etc.)
Serverul de aplicație.
Asigură legătura între nivelul 3 (clientul) și nivelul 1 (serverul SQL) și realizează diverse prelucrări de date.
Interfața cu utilizatorul
Graphical User Interface – este clientul aplicației.
Fiecare din aceste nivele ale aplicației pot rula pe sisteme hard separate. Cea mai comună configurație este ca baza de date și serverul de aplicație să fie pe același server.
Baza de date folosită ( phpmyadmin) este un produs care asigură o capacitate de stocare extensibilă, securitatea datelor, instrumente de analiză și management a datelor, multiple posibilități de accesare / import / export a datelor, în diferite formate, respectiv integrare cu alte surse de date.
Serverul de aplicație este nivelul la care se realizează majoritatea prelucrărilor de date.
Programul client este interfața prin care utilizatorul interacționează cu aplicația. La acest nivel se fac prelucrări de date. Interfața este perfect integrata cu mediul Windows, Unbuntu și orice alt dispozitib cum ar fii telefoanele mobile, permițând flexibilitate în utilizare.
Avantajul arhitecturii pe trei nivele, față de o arhitectură client server, este că majoritatea procesărilor se fac pe serverul de aplicație și pe baza de date, nu pe calculatorul client și pe baza de date. Aceasta permite o stalabilitate mult mai bună a aplicației în condițiile unui volum de tranzacții în creștere. Este necesară doar adăugarea de servere suplimentare pentru creșterea capacității de procesare.
Utilizarea phpmyadmin ca și server de baze de date asigură:
prelucrări rapide pe volum mare de date
securitate sporită a datelor \item instrumente de analiză și suport decizional (OLAP, Data Mining)
preluarea datelor din aplicațiile existente și exportul datelor în diferite formate (Excel, PDF, XML, text, etc.)
Limbajele PHP JavaScript permit:
crearea unui sistem modern, cu interfață ergonomică și intuitivă
dezvoltarea de module flexibile, ușor de adaptat la cerințele particulare ale studenților și la modificările din materialele de studiu
extinderea funcționalităților aplicației.
În Diagrama 4.1. a cazului de utilizare se poate vedea cum funcționează acest sistem din punctul de vedere a unui utilizator.
Descriere cazuri de utilizare Caz de utilizare: Logare
Titlu: Logare.
Rezumat: Persoana introduce e-mailul de utilizator și parola iar sistemul verifică existența e-mailului de utilizator și corectitudinea parolei pentru a deschide contul persoanei.
Actori: utilizatorii, sistemul Descrierea scenariului:
Precondiții:
persoana se afla în program
programul trebuie să fie disponibil Scenariu nominal:
Utilizatorul se logează. Postcondiții:
Sistemul solicită e-mailul și parola.
Persoana introduce e-mailul și parola.
Persoana cere logare.
Sistemul verifică e-mailul.
Dacă e-mailul de utilizator este eronat va afișa un mesaj de eroare.
Sistemul verifică parola.
Dacă parola este eroantă va afișa un mesaj de eroare și cere reintroducerea parolei.
Dacă e-mailul și parola sunt valide se deschide contul utilizatorului. Scenariu alternativ:
Verificarea e-mailul de utlizator: Dacă e-mailul de utilizator este eronat va afișa un mesaj de eroare
și cere reintroducerea numelui de utilizator.
Verificarea parolei: Dacă parola este eronată va afișa un mesaj de eroare și cere reintroducerea parolei.
Scenariu de Eroare:
Persoana nu se poate loga deoarece sitemul nu se poate conecta la baza de date pentru a vedea existența ei în baza de date.
Postcondiții:
Persoana este conectată la sistem și poate accesa opțiunile valabile pentru tipul său de utilizator.
Caz de utilizare: Alege News Feed Titlu: Alege News Feed.
Rezumat: Utilizatorul alege News Feed pe care dorește să îl parcurgă. Actori: utilizatorii.
Descrierea scenariului: Precondiții:
– programul trebuie să fie disponibil Scenariu nominal:
Utilizatorul se logează.
Utilizatorul alege News Feed, și participă la vizualizare activităților utilizatorilor.
Utilizatorul schimbă informați cu alți utilizatori. Scenariu alternativ:
Utilizatorul poate șterge postările personale. Scenariu de Eroare :
Programul nu păstrează schimbul informații între utilizatorii.
Postcondiții:
Sistemul afișează informația selectată.
Caz de utilizare: Alăturare Grup Titlu: Alăturare Grup.
Rezumat: Utilizatorul se alătură unui grup sau crează propriul spu grup.Un utilizator poate să fie înscris la mai multe grupuri.
Actori: utilizatorii,sistemul.
Descrierea scenariului: Precondiții:
– programul trebuie să fie disponibil Scenariu nominal:
Utilizatorul se logează.
Utilizatorul alege alăturarea la un grup, și participă la vizualizare activităților utilizatorilor grupului respectiv.
Utilizatorul schimbă informați cu alți utilizatori.
Utilizatorul vizualizează alte grupuri, putând să se alăture altor grupuri din care nu face parte.
Utilizatorul crează un nou grup.
Scenariu alternativ:
Utilizatorul poate șterge postările altor utilizatori, acest lucru necesită autorizație de administrator. Scenariu de Eroare :
Programul nu păstrează schimbul informații între utilizatorii.
Postcondiții:
Sistemul afișează informația selectată și ștergere informațiile postate.
Caz de utilizare: Timeline Titlu: Timeline.
Rezumat: Utilizatorul vizualizează Timelin-ul unde poate vedea postările effectuate de prieteni pe profilul personal, se poate localiza geografic și încarcă fișiere.
Actori: utilizatorii, sistemul. Descrierea scenariului:
Precondiții:
– programul trebuie să fie disponibil Scenariu nominal:
Utilizatorul se logează.
Utilizatorul alege să vizualizeze Timelin-ul personal.
Utilizatorul schimbă informații cu alți utilizatori.
Utilizatorul postează informații și fișiere.
Utilizatorul vizualizează Timelin-ul prietenilor, putând să comenteze la postări făcute de prietenii.
Utilizatorul se poate localiza pe harta geografică. Scenariu alternativ:
Utilizatorul poate șterge postările de pe Timeline-ul personal Scenariu de Eroare :
Programul nu păstrează informațiile pe Timeline.
Postcondiții:
Sistemul afișează informația selectată și ștergere informațiile postate.
Caz de utilizare: Prietenii Titlu: Prietenii.
Rezumat: Utilizatorul vizualizează prietenii sugerați de sistem.Formarea unei prietenii prin acceptarea unei cerei.
Actori: utilizatorii, sistemul.
Descrierea scenariului: Precondiții:
– programul trebuie să fie disponibil Scenariu nominal:
Utilizatorul se logează.
Utilizatorul accept o prietenie.
Utilizatorul vizualizează lista de prietenii. Scenariu alternativ:
Utilizatorul poate șterge sau bloca un prieten.
Scenariu de Eroare :
Programul nu păstrează o cerere de prietenie.
Postcondiții:
Sistemul afișează postările efectuate de prietenii.
Caz de utilizare: Notificări Titlu: Notificări.
Rezumat: Utilizatorul primește de la sistem notificări despre activitatea prietenilor, înștințarea despre o nouă cerere de prietenie și notificarea primirii unui nou mesaj .
Actori: utilizatorul, sistemul. Descrierea scenariului:
Precondiții:
– programul trebuie să fie disponibil Scenariu nominal:
Utilizatorul se logează.
Utilizatorul primește notificări.
Utilizatorul vizualizează notificările. Scenariu alternativ:
Utilizatorul primește numărul de notificări. Scenariu de Eroare :
Programul nu păstrează o notificare.
Postcondiții:
Sistemul afișează notificările efectuate de prietenii.
Diagrama 4.1.Diagrama cazului de utilizare (UCD) .
Diagrama 4.2. Diagrama de secvență pentru logare.
Diagrama 4.4. Diagrama de secvență pentru News Feed.
Diagrama 4.5. Diagrama de activitate pentru News Feed.
Diagrama 4.6. Diagrama de activitate pentru alăturare la un grup.
Diagrama 4.8. Diagrama de activitate pentru Timeline.
Diagrama 4.10. Diagrama de activitate pentru Prietenii.
Diagrama 4.10. Diagrama de activitate pentru Notificări.
Structura bazei de date
Importanța strucrutări bazei de date pentru o rețea socială are un nivel ridicat deoarece gradul de utilizare și frecvența interogarilor este foarte mare de aceea trebuie ca baza de date să fie implementeată corect.
Baza de date a aplicației este concepută din 13 tabele unde se va depozita informața pe care utilizatorii o introduc. Anumite lucruri trebuie expuse pentru a vedea de ce avem nevoie ca să structurăm baza de date.
În tabela „user” avem informațile legate de utilizatorii. Tabelele „friends” și „blockedusers” sunt folosite pentru a putea urmări care sunt prieteni unui utilizator dar și care utilizatorii sunt blocați. Tabela
„status” conține toate postările pe care un utilizator le efectuează pe profilul său. Tabela „file_upload”
păstrează datele fișierelor încărcate pe profilul personal al utilizatorului.Iar tabela „photos” păstrează datele imaginilor din galerie.
Pentru grupuri avem următoarele tabele: „groups”, „gmembers” și „grouppost” aceste patru tabele conțin toate datele care ajută grupul să funcționeze începând de la alăturarea la un grup pânâ la postări.
La localizarea geografică a unui utilizator se folosește tabela „map_location” care păstrează poziția geografică a latitudini și longitudi unde se află utilizatorul. În tabela „pm” se păstrează convorbire personală între utilizator și prieteni acestuia.
Notificările sunt păstrate în tabela „notifications” unde se află toate postările prietenilor efectuate pe Timeline-ul utilizatorului dar și comentarile lăsate de către prieteni la postările utilizatorului.
Structura pe care o folosim pentru a implementa această bază de date este Mysql deoarece este unul dintre cele mai populare mecanisme de a stoca informații. Astfel pentru a putea crea această bazăde date trebuie să deținem un server care suportă Apache și MySQL un bun exemplu este XAMPP care oferă o interfață simplă de utilizat.
Pentru sistemul de socializare am folosit o baza de date ierarhică. O bază de date ierarhică arborescent este considerat un caz particular al modelului rețea, în care diagrama asociată este o pădure (mulțime de arbori) și în care toate legăturile sunt pe direcția drumului, de la rădăcină la nodul fiu din relație, relațiile fiind de tipul 1:N doar o singrură relație este de 1:1.
Există posibilitatea interpretării diagramelor entitate-relație sub forma modelului ierarhic. Pentru evitarea redundanțelor în modelul ierarhic, se folosește noțiunea de element virtual, care înlocuiește dublura unui element prin adresa elementului respectiv, fiecare element apărând în baza de date reală o singură dată.
Operațiile din bazele de date de tip ierarhic se traduc în procese de parcurgere a arborilor.
Elementele virtuale permit legarea informațiilor din aceeași entitate sau din entități diferite.
Implementarea la nivel logic pentru modelul ierarhic poate fi cea utilizată pentru modelul rețea sau prin înregistrări de lungime variabilă. Datele sunt stocate pe mediul extern în ordinea dată de parcurgere în preordine a arborilor, ceea ce ușurează determinarea informațiilor pentru cererile care se referă la descendenții unor noduri printr-un număr mic de accese la mediul extern.
În figura 4.2. este reprezentată structura bazei de date și relațile dintre tabele. Pe parcursul acestui capitol această structură v-a fii dezbătuă mai amănunțit deoarece fiecare tabelă are o importanță la sistemul din care face parte.
Diagrama 4.2. Structura Bazei de Date.
Sistemul de înregistrare și logare
Acest sistem este conceput pentru ca un individ să se poată loga pe această aplicație, astfel avem nevoie să reținem datele personale a utilizatorilor și modul în care aceștia se vor loga de aceea un utilizator are nevoie de un e-mail și o parolă cu care să se logheze, cum se poate vedea în Diagrama 4.2. la tabela
„user” și „useroptions” câmpurile care se află în aceste tabele sunt minimul de date pe care un utilizator trebuie să le complecteze pe parcursul registrări.
În continuare vom discuta modul în care un utilizator se registrează la sistemul de rețea socială, procedeul prin care un utilizator poate să își creeze un cont este prin a complecta un formular care necesită ca utilizatorul să introducă următoarele date: un nume de utilizator, un e-mail pe care utilizatorul trebuie să îl confirme, după ce s-a complectat formularul un e-mail este trimis spre utilizator pe care trebuie să îl confirme, o parolă care este necesară pentru securitate, sexul, țara în care se află și o confirmare a termenilor de utilizare a siteului. Datele sunt păstrate în tabela „user” pe langă aceste date pe parcurs ce navigați de-alungul aplicației unele date trebuie să fie confirmate sau se pot modifica, un exemplu ar fi imaginea de avatar.
Modul de activare se verifică de fiecare dată pentru a vedea dacă un cont este activ sau nu acest procedeu se realizează cu ajutorul operației REST GET și PHP preluând numele de utilizator, parola și e- mailul și se verifică dacă activarea este setată pe 0 (atunci contul trebuie activat) sau pe 1 (se poate continua navigarea pe site).De fiecare dată când un utilizator efectuează o operație se verifică dacă utilizatorul este logat (se realizează cu ajutorul funcției evalLoggedUser) și dacă contul e activat, acest lucru se poate observa în check_login_status.php prin care se deschide o sesiune și se setează cookiurile pentru a reține contul conectat, dacă contul este deja logat se redirecționează utilizatorul la o altă pagină iar dacă nu este logat utilizatorul e redirecționat la pagina de logare (login.php).
La securitatea parolei s-a folosit o funcție de criptare și decriptaremd5() care amestecă un șir conform algoritmului MD5 (Message-Digest Algorithm), care este un algoritm rapid și efficient.
Sistemul de postări
Pentru a putea posta pe un profil trebuie mai întâi ca acel user să fie în lista de prieteni dacă acesta se află în lista de prieten postarea este validă, ca să postăm un mesaj pe „Timeline-ul” unei persoane avem nevoie de un identificator care să specifice dacă autorul este cel care a postat starea inițială sau este un comentariu la o stare deja postată, un autor care a postat, mesajul în sine și data când s-a făcut postarea. Ori ce mesaj postat sau comentat va fii reținut într-o tabelă de notificări denumită în baza de date ca
„notifications” pentru a putea trimite avertizări dacă s-a modificat starea postări, adică dacă s-a comentat ceva la acea postare.
Cum puteți observa în figura 12 din subcapitolul Structura Bazei de Date aceste date din sistemul de postare pe Timeline-ul unui prienten sunt reținute în tabela „status” la care „id” este identificatorul de postare, „osid” este identificatorul care specifică dacă este un comentariu sau nu prin faptul că dacă „id” este identic cu „osid” atunci este o nouă postare dar dacă „osid” se regăsește la un alt „id” el poate fii un comentariu, ce fel de postare este dată de „type” care specifică tipul de postare: „a”-este tipul care specifică
că postarea este făcută de proprietarul profilului pe Timeline-ul său, „b”- este specificatorul de tip care arată că postarea este efectuată de un prieten, iar „c” este specificatorul care arată că tipul postări este un comentariu la o postare anterioară. Câmpul „account_name” specifică pe ce cont s-a efectuat postarea,
„author” este acela care postează, „data” stochează informația postată,iar „postdata” este data în care s-a efectuat postarea.
Singurul care poate șterge o postare pe Timeline este proprietarul Timelineului astfel prin ștergerea postări sunt șterse și comentarile care s-au efectuat la acea postare. Cel care poate șterge un comentariu este acela care a efectuat acel comentariu dar și proprietarul profilului la care s-a realizat comentariul a unei postări.
Acest mecanism se regăsește în fisierul status_system.php din folderul php_parsers unde sunt implementate toate mecanismele descrise anterior.
Sistemul de prietenie
În ceea ce privește mecanismul de adăugare sau blocare prieteni trebuie ca cei doi utilizatori care vor să formeze o prietenie trebuie ca amândoi să fie deacord astfel cel care trimite cererea de prietenie trebuie să aștepte confirmarea, în privința blocări trebuie ca un utilizator să blocheze un alt utilizator pentru a nu mai primi mesaje și postări.
Datele transmise bazei de date pentru adăugarea de prieteni sunt stocate în tabela „friends” unde sunt stocați cei doi utilizatori care doresc să facă o prietenie în câmpurile „user1” și „user2” iar în câmpul
„accepted” se adaugă 0 deoarece prietenia nu s-a realizat, când este acceptată prietenia de ambele persoane acest câmp se modifică devenind 1 acest mecanism se găsește în fișierul friend_system.php care este și serverul care primește de la client o cerere HTTP de tip POST prin Ajax. Prin blocarea unui utilizator nu se va mai avea nici o legătură cu acel utilizator blocat acest mecanism se găsește în fișierul block_system.php care este partea de server în care clientul face o cerere de tip HTPP de tipul PSOT prin Ajax.
Cele două fisiere friend_system.php și block_system.php sunt în corespondență cu codul Ajax regăsit în toggleimg_blockfriend.js pentru a oferi acțiuni în timp real.
Sistemul de încărcare a fișierelor pe server
Încărcarea de fișiere Ajax este o unealtă care este foarte usor de utilizat împreună cu jQuery, PHP și cu noul suport HTML5 FileReader cu care putem face validarea înainte de a încărca fișierele pe server, pentru a realiza acest sistem vom combina aceste unelte menționate anterior.
Începem prin a crea o formă HTML care conține un câmp input pentru fișier, un buton de uload,o bară de progres și un element DIV pentru a afișa răspunsul serverului.Pentru a transmite datele folosim operația POST din interfața REST.
Pentru a facilita lucrurile am decis ca să utilizăm un plugin pentru forme jQuery(jQuery Form Plugin). FileReader este o opțiune nouă și puternică a lui HTML5 care permite să citim conținutul fișierului local, astfel validarea este mai ușoară ca niciodată.
Pentru a trimite informația către server prin Ajax ne trebuie doar câteva linii de cod jQuery, acest lucru se datorează pluginului jQuery prin funcțile „beforeSubmit“, “success”,“uploadProgress” și altele, acre facilitează extinderea funcționalități formei noastre.Funcția “beforeSubmite” va fii apelată înainte ca fișierul să fie transmis la server, aici va fii partea inportantă a codului deoarece vom utiliza FileReader.Această funcție “beforeSubmite” se apelează în partea de Client se efectuează validarea mărimi fișierului astfel un fișier nu poate fii mai mare de limita setată și tipul de fișier care va fii încărcat.
Fișierele care pot fii încărcate cu acest sistem sunt:
'image/png'
'image/gif'
'image/jpeg'
'image/pjpeg'
'text/plain'
'text/html'
'application/x-zip-compressed'
'application/pdf'
'application/msword'
'application/vnd.ms-excel'
'video/mp4'
Întotdeauna este bine de să avea o bară de progres pentru a urmări progresul fișierului încărcat deoarece lucrăm cu fișiere diferite decât imagini sau text care au o mărime a conținutului mai mare și poate dura ceva timp.
În partea de Server, odată ce fișierul este transmis serverului prin metoda HTTP POST putem accesa informația fișierului prin PHP.Informațile pe care le deținem în partea de server sunt numele fișierului, mărimea fișierului și tipul.Folosind aceste informați mai le validăm a doua oară iar apoi utilizând PHP și MYSQL introducem în baza de date la tabela corespunzătoare (file_upload pentru introducerea datelor pe Timeline) următoarele informații:
un id unde trebuie datele introduse.
un id al fișierului.
numele fișierului.
tipul.
mărimea în biți.
data la care sa efectuatîncărcarea.
După ce au fost introduse datele în baza de date fișierul va fi încărcat în directorul utilizatorului care a efectuat această operație prin metoda PHP move_uploaded_file.
Sistemul de grup
Acest sistem oferă posibilitatea de a împărtăși informați cu alți utilizatori, astfel putem să considerăm utilizatori ca fiind noduri într-un graf, iar un utilizator poate aparține mai multor grupuri astfel toți utilizatori pot avea legături între ei.
Un grup poate fi creat de un utilizator astfel acel utilizator are drepturile unui administrator pentru grup, grupul poate avea mai mulți utilizatori care au acest drept de administrator al gupului.Acest procedeu se realizează printrun server-client prin intermediul lui Ajax mai exact cu ajutorul funcției ajaxObj care este o cerere de tip HTTP, unde sunt transmise datele catre serverul PHP. În partea de client vom avea următoarele funcții:
joinGroup() este procedeul prin care datele de alăturare a unui membru la un grup sunt trimise către server.
approveMember() se utilizează atunci când un administrator de grup aprobă cererea unui membru de a se alătura grupului
declineMember() este inversa funcției approveMember()
quitGroup() trimite cererea către server de a părăsi un grup
addAdmin()trimite cererea către server de a adăugarea unui nou administrator la grup
newPost() trimite cererea la server pentru a putea posta pe grup
replyPost()trimite cererea la server pentru a da un comentariu unei postări
Aceste funcții trimit cererile prin metoda POST la serverul PHP care se află în fișierul group_parser.php unde se găsesc operațile pentru funcțile descrise anterior. În partea de server deschidem două sesiuni pentru a vedea dacă utilizatorul sau grupul există, după aceea preluăm datele transmise de client și apelăm cerința corespunzătoare. În același server-client se află și metoda de a schimba imaginea de avatar a grupului.
Am ales să cream acest mecanism utilizând Ajax și PHP deoarece limbajul Ajax oferă o dinamică a paginilor web și nu necesită reîncărcărea unei pagini web pentru a vizualiza o acțiune dorită.
Sistemul de mesagerie
În acest sistem vom discuta despre modul în care procedeul de a trimite mesaje de la client la server se realizează. Modul prin care sunt transmise mesajele la server este prin Ajax și anume prin cereri HTTP. Funcționalitățile pe care le-am introdus în acest sistem se pot asemăna cu un sistem de care trimite e- mailuri, prin urmare un utilizator care vrea să preia legătura cu un alt utilizator o poate face prin acest sistem de a trimite mesaje personale.
Funcțile pe care le-am implementat sunt: scrierea unui nou mesaj, răspunderea la un mesaj și o funcționalitate de a marca mesajele citite.Aceste funcți sunt implementate în partea de server care introduce datele în tabela „pm” din baza de date unde avem câmpurile care păstrează cine trimite mesajul, cui îi este trimis mesajul, data și timpul la care s-a trimis mesajul, mesajul trimis, un subiect a mesajului și alte infomați de relație a mesajelor cum ar fii dacă este un mesaj inițial sau un răspuns la un mesaj.
Galeria foto
Această galerie este implementată pentru a putea posta imagini într-un album pe profilul propriu a utilizatorului. Ajax joacă un rol important în implementarea acestei galeri deoarece facilitează afișarea imaginilor de la server la client, acest procedeu este descris în funcția „showGallery”.
În partea de server se utilizează funcția move_uploaded_file pentru a putea muta fișierul de la client pe server, unde mai întâi se formatează dimensiunea imagini ca fiind 600 pixeli pe 800 pixeli aceasta se realizează cu ajutorul unei funcți care a fost implementată în php unde imaginea este preluată se identifică tipul imagini și mărimea iar apoi se formatează cu o comandă „imagecopyresampled” care crează o nouă imagine cu dimensiunile specificate.
Notificări
În acest sistem putem include trei lucruri care țin de notificare a unui utilizator, sistemul acesta cuprinde notificarea utilizatorului atunci când un prieten trimite o cerere de prietenie, un mesaj și activitățile de postări a prietenilor. Pentru notificarea de postări am creat o tabelă în baza de date care stochează
numele utilizatorului la care s-a postat, cel care postează, tipul de postare, un link care duce la postare, timpul la care s-a efectuat postare și dacă utilizatorul a văzut acea notificare.
Când un prieten trimite o cerere de prietenie se adaugă în tabela friends a bazei de date și prieteni care nu au fost acceptați sunt listați în acest sistem de notificări astfel avem o legăură cu sistemul de prieteni unde se apelează partea de server pentru a accepta prietenia printr-o cerere HTTP a clientului.
Geolocalizare
Geolocația este un API care vă permite să partajați locația cu site-urile web de încredere. Latitudinea și longitudinea sunt disponibile pentru JavaScript pe pagini care la rândul lor, pot trimite aceste informații înapoi la serverul web de la distanță și pentru a face localizări moderne cum ar fi găsirea de companii locale sau de a arăta locația pe o hartă.
După cum se poate vedea din tabelul de mai jos, API de geolocalizare este susținut de cele mai multe browsere și dispozitive mobile. În plus, unele browsere mai vechi și dispozitive pot fi susținute de către biblioteci wrapper.
Tabelul 4.1. Suportul API-ului Geolocalizare
Suport de geolocalizare este opt-in. Asta înseamnă că browser-ul nu vă va forța să dezvăluie locația fizică curentă la un server de la distanță.Experiența utilizatorului diferă de la browser la browser. În Mozilla Firefox, când se apelează funcția getCurrentPosition () a API-ului de geolocalizare va determina browser- ul să vă alarmeze cu o "bară de informare" în partea de sus a ferestrei.
În această bară se întâmplă următoarele lucruri:
Vă alarmează că un site web vrea să știe locația.
Arată care site-ul vrea să știe locația.
Oferă un link pentru a vedea ce înseamnă Geolocalizare
Și aveți posibilitatea de a alege dacă doriți sau nu să vă împărtășiți locația.
Ați văzut codul JavaScript care face să apară acest bară de informare. Este un apel de funcție, care are o funcție de apel invers (pe care am numit-o bindPosition).Apelul la getCurrentPosition () va fi returnat imediat, dar asta nu înseamnă că aveți acces la locație.Prima dată când vă sunt garantate informații despre locație este în funcțiebindPosition.
Funcția va fi numită cu un singur parametru, un obiect cu două proprietăți: coordonatele și timpul.
Timpul este data și ora când locația a fost calculată.Obiectul de coordonate are proprietăți, cum ar fi latitudine și longitudine care sunt exact: locația fizică a utilizatorului din lume.
Cum puteți observa preluarea coordonatelor este foarte ușor de realizat, astfel cu aceste coordinate putem să le introducem în baza de date cum puteți observa în figura structurări bazei de date la tabela “map_locațion”.
News Feed
Pentru ca utilizatori să urmărească activitatea prietenilor am introdus o în aplicație o pagină care efectuează această operație. Prin urmare vom reutiliza mecanismul server-client care postează pe profiluri sau comentarii la o anumită postare al unui prieten pentru că și în această pagină să putem posta.
Vizualizarea acestor postări se va face prin extragerea de date din baza de date prin care utilizatorul trebuie să fie un prieten și acel prieten trebuie să posteze pe profilul unui alt prieten a utilizatorului.
Interfața cu utilizatorul
Această interfață a fost proiectată pentru a oferi flexibilitate, datorită gamei largi de dispositive pe care poate fii accesată aplicația începând de la desktopuri, tablet până la telefoane mobile.
Posibilitatea de a accesa această aplicație pe mai multe dispositive se datorea framework-ului Bootstrap și HTML5.
Interfața cu utilizatorul este nivelul unde clientul vizualizează și interacționează cu sistemul, în această interfață utilizatorul are flexibilitatea de a comunica cu baza de date prin intermediul serverului
astfel solicitarea clientului este redusă, deoarece operațile sunt realizate pe partea de server și apoi trimise serverului bazei de date.
Browserele care suportă această interfață sunt:
IE 9+
Firefox 5+
Chrome 14+
Safari 5+
Opera 11+
Concluzii
Această lucrarea a fost concepută pentru a implementa o rețea de socializare într-un site. Aplicația oferă mijloacele necesare pentru ca utilizatorii să poată interacționa unii cu alții ca și ori ce altă rețea socială unde se află interacțiunea prin mesaje private, oferirea de informații, de documente și alte facilități care corespund cu socializarea.
Desigur că această aplicație se poate dezvolta încontinuare prin introducerea mai multor facilități pentru a oferi utilizatorului o interacțiune mai largă cu alți utilizatori. Aceste facilități ar putea fi acelea de introducere a unui mecanism pentru jocuri între utilizatorii rețelei dar și oferirea de alte mecanisme care furnizează și stimulează utilizatorul de a participa la procedeul de învățare.
Rețelele sociale sunt într-o continuă dezvoltare deoarece necesitatea de informare devine din ce în ce mai necesară astfel procesarea de date și informații trebuie să fie rapidă și cu costuri de resurse minimale. Frecvența utilizării rețelelor sociale a devenit o normalitate în ultimii ani dar și în viitor aceste rețele vor deține cea mai mare atenție în privința răspândirii informațiilor.
Bibliografie
Brian Albers, Peter Lubbers and Frank Salim,Pro HTML5 Programming, Apress, 29 Noiembrie 2011.
Kevin Tatroe, Peter MacIntyre și Rasmus Lerdorf, Programming PHP Second Edition, O’Reilly Media, Inc., United States of America 2002
Jonathan Chaffer, Karl Swedberg , Learn jQuerz Fourth Edition, Packt Publishing Lrd.,Birmingam June 2013
Tom Negrio and Dori Smith, JavaScript and Ajax for the Web,Seventh Edition, Peachpit Press, United States of America 2009
Håkon Wium Lie, Cascading Style Sheets, AiT e-dit AS, Norway-Oslo, 2006.
Danah M. Boyd și Nicole B. Ellison, Social Network Sites: Definition, History,and Scholarship, Journal of Computer-Mediated Communication,Volume 13, Issue 1, pages 210–230, Octombrie 2007.
Mohd Shahizan Othman, Shaffika Mohd Suhaimi, Lizawati Mi Yusuf , Norazah Yusof și Nadirah Mohamad, An Analysis of Social Network Categories: Social Learning and Social Friendship, Procedia – Social and Behavioral Sciences, Volumul 56, Paginile 441–447, 8 October 2012.
Zhao Du, Yuguang Liu și Ye Wang, Relation Based Access Control in Campus Social Network System, Procedia Computer Science , Volumul 17, Paginile 14 – 20, 2013.
Zhenwu Tao, Renbin Xiao și Lei Wang, Structure emergence in the evolution of social networks and its case study, Procedia Computer Science, Volumul 17, Paginile 981 – 988, 2013.
Mario Andrés Paredes-Valverde, Giner Alor-Hernández,Alejandro Rodríguez-González și Gandhi Hernández-Chan, Developing Social Networks Mashups: An Overview of RESTBased APIs, Procedia Technology, Volumul 3, Paginile 205 – 213, 2012.
Bibliografie
Brian Albers, Peter Lubbers and Frank Salim,Pro HTML5 Programming, Apress, 29 Noiembrie 2011.
Kevin Tatroe, Peter MacIntyre și Rasmus Lerdorf, Programming PHP Second Edition, O’Reilly Media, Inc., United States of America 2002
Jonathan Chaffer, Karl Swedberg , Learn jQuerz Fourth Edition, Packt Publishing Lrd.,Birmingam June 2013
Tom Negrio and Dori Smith, JavaScript and Ajax for the Web,Seventh Edition, Peachpit Press, United States of America 2009
Håkon Wium Lie, Cascading Style Sheets, AiT e-dit AS, Norway-Oslo, 2006.
Danah M. Boyd și Nicole B. Ellison, Social Network Sites: Definition, History,and Scholarship, Journal of Computer-Mediated Communication,Volume 13, Issue 1, pages 210–230, Octombrie 2007.
Mohd Shahizan Othman, Shaffika Mohd Suhaimi, Lizawati Mi Yusuf , Norazah Yusof și Nadirah Mohamad, An Analysis of Social Network Categories: Social Learning and Social Friendship, Procedia – Social and Behavioral Sciences, Volumul 56, Paginile 441–447, 8 October 2012.
Zhao Du, Yuguang Liu și Ye Wang, Relation Based Access Control in Campus Social Network System, Procedia Computer Science , Volumul 17, Paginile 14 – 20, 2013.
Zhenwu Tao, Renbin Xiao și Lei Wang, Structure emergence in the evolution of social networks and its case study, Procedia Computer Science, Volumul 17, Paginile 981 – 988, 2013.
Mario Andrés Paredes-Valverde, Giner Alor-Hernández,Alejandro Rodríguez-González și Gandhi Hernández-Chan, Developing Social Networks Mashups: An Overview of RESTBased APIs, Procedia Technology, Volumul 3, Paginile 205 – 213, 2012.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Proiectarea Si Dezvoltarea Unui Sistem de Retea Sociala (ID: 150205)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
