Proiectare Arhitecturala
-
Upload
anna-maria -
Category
Documents
-
view
3 -
download
1
description
Transcript of Proiectare Arhitecturala
-
1 | P a g e
Document de Proiectare
Arhitecturala
Echipa: FacePaint
-
2 | P a g e
Precizarea tehnologiilor folosite
- Java EE
o Un limbaj inalt de programare.
o http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition
o Este un limbaj care iti ofera posibilitatea de a scrie cod de colitate ridicata intr-un
timp relativ scurt, oferind multe servicii / API-uri in comparatie cu Java.
- MySQL
o Un limbaj de management relational al unei baze de date
o http://en.wikipedia.org/wiki/MySQL
- MySQL Workbench
o Este un program de vizualizare a unei baze de date
o http://en.wikipedia.org/wiki/MySQL_Workbench
o Este usor de folosit, oferind o interfata grafica peste o baza de date, dar totodata
lasa utlizatorul sa acceseze elemente pana la nivel de arhitectura, intexi, etc.
- Flash
o Este o aplicaie utilizat pentru dezvoltarea obiectelor-applet de tip Flash
disponibile n cadrul unor pagini web.
o http://ro.wikipedia.org/wiki/Adobe_Flash
o Folosit pentru crearea animatiilor
- PhotoShop
o Este un software folosit pentru editarea imaginilor digitale pe calculator.
o http://ro.wikipedia.org/wiki/Adobe_Photoshop
o Este un tool profesional de editare a imaginilor
- CSS
o http://en.wikipedia.org/wiki/Cascading_Style_Sheets
- HTML
o http://en.wikipedia.org/wiki/HTML
-
3 | P a g e
- GWT
o Google Web Toolkit
o http://en.wikipedia.org/wiki/Google_Web_Toolkit
o Este un framewok, care ofera web developerilor posibilitatea de a creea si
intretine un cod complex de JavaScript
- Apache Maven
o Este un tool de build automat, in general folosit in general pentru proiecte Java
o http://en.wikipedia.org/wiki/Apache_Maven
o Integrarerea cu proiectul nostru faca aplicatia mult mai usor de compilat si deploiat
- Apache Tomcat
o Este un web server care ofera un HTTP web server, pentru a rula cod Java
o http://en.wikipedia.org/wiki/Apache_Tomcat
- Hibernate
o Este un framework care ofera object-relational mapping
o http://en.wikipedia.org/wiki/Hibernate_(Java)
o Este in general folosit in majoritatea aplicatiilor deoarece ofera un nivel inalt de
transparent.
-
4 | P a g e
Descrierea modulelor de nivel inalt
Aplicatia noastra este impartita in mai multe module. Acestea sunt interconectatea folosint Apache
Maven, care pe langa partea de interconectare a unor module permite si integrarea de dependinte
si de ierarhii procedurale.
Module :
- Java acest module include implementarile front-end si back-end ale aplicatiei noastre.
o Este impartit in alte 2 submodule fiecare reprezentand partea de client respectiv
server
o Acest modul putea fi impartit in alte 2, cum am spus, in client si server, dar s-a ales
mentinerea lui intr-un singur modul compact pentru usurinta de implementare,
astfel nefiind nevoie de folosirea framework-ului Spring pentru interconectarea
celor 2(Dependency injection).
o Acest modul este de sine stator, el fiind primul care se compileaza
- Resources dupa cum ii spune si numele aici se gasesc resursele folosite de catre server
sau client.
o Aceste modul nu se compileaza el fiind folosit pentru o transparenta generala
asupra proiectului
- Webapp acest modul este folosit la intrarea compilarilor independente.
o In acest modul nu se compileaza, dar el este cel care realizeaza fisierul Web
Application Arhive.
-
5 | P a g e
Explicarea realizarii functiilor din specificatie
Toate use case-urile sunt implementate in modului Java in care se afla implementarea pentru
partea de front-end cat si cea de back-end.
In general clientului ii este servita o pagina web, in care o sa ii fie vizibile doar partile din
aplicatie la care are el acees, (existand o ierarhie de roluri).
Cand un client alege sa aceseze un element din pagina oferita, in spate se va realiza un apel
asincron folosind GWT-RPC catre server. Acesta in functie de drepturile, starea si multi alti factori
ai utilizatorului si nu numai, ii va accepta sau refuza cererea acestuia.
-
6 | P a g e
Diagrama de clase
-
7 | P a g e
Use case
Login:
o Clientul trebuie sa fi pornit browserul si sa fi tastat URL-ul aplicatiei.
o I se va afisa o pagina de login. Aici acesta va putea sa isi introduca username-ul si
parola sau poate sa apese pe butonul register si sa isi creeze un cont.
o La introducearea username-ului si a parolei se va apele un serviciu expus de catre
server printr-o interfata. Apelul serviciului va fi un apel asincron.
o Serverul va intoarce un cod rezultat al login-ului, de succes sau eroare, in caz de
succes codul returnat va reprezenta un cookie care va fi folosit pentru validarea
utilizatorului.
Register
o Clientului i se va servii o pagina HTML cu mai multe campuri, unele obligatorii altele
nu.
o Acesta le va completa si va apasa butonul de submit.
o La apasarea acestui buton se va apela un serviciu expus de server printr-o interfata.
o Serverul va primii informatiile despre client si in cazul in care nu sunt probleme , va
registra clientul in baza de date si va raspunde clientului cu un mesaj corespunzator
Find friends
o Un user odata logat, va putea sa cauta prieteni folosind pannelul special pentru
acest lucru.
o La introducerea unui nume, se va apela un serviciu expus de server printr-o
interfata. Acest serviciu va primii un nume si va cauta posibile mach-uri cu numele
altori utilizatori.
o Serverul va intoarce o lista cu pisibili utilizatori.
Add / Delete friends
o Odata ce un utilizator a gasit un posibil prieten si acesta se afla pe pagina principala
a acestuia, va exista un buton cu care da posibilitatea adaugarii acelui utilizator ca
prieten.
o La apasarea butonului se va apela un serviciu expus de server printr-o interfata.
Apelul o sa fie un apel asincron, in care serverul va inregistra requestul facut.
Send messages
-
8 | P a g e
o Odata logat un utilizator va putea trimite mesage altui utilizator.
o Pentru a face acest lucru el va folosii din client un buton special, care ii va permite
trimiterea unui mesaj catre alt utilizator.
o Clientul va realiza schimbul de mesaje folosind servicii expuse de server print
interfete. Apelurile acestor servicii vor fi asincrone.
o Clientul va trimite serverului mesajul cat si carui utilizator o sa fie trimis acesta.
Upload picture
o Un utilizator va avea putea uploada poze pe plicatie folosind o pagina speciala.
o Aici utilizatorul va alege ce poze vrea sa arate si va apasa butonul de upload.
o In spate clientul va folosii un serviciu implementat in GWT de upload file.
o Aceste serviciu este expus de server printr-un serviciu si clientul il apeleaza pentru
a lua/upload-a poze.
Delete accounts
o Este un use-case accesibil doar unor anumiti clienti, cu drepturi privilegiate, care au
posibiliteatea sa sterga complet un utilizator din sistem
o Acest serviciu este expus printr-o interfata si este verificat si de catre server si de
catre entitatea client pentru a verifica daca utilizatorul are sau nu drepturi asupra
acestui use-case.
-
9 | P a g e
Utilizarea Claselor
Clasele sunt impartite in mai multe module conform utilitatii lor. Exista clase specifice partii de
front-end, back-end si de asemenea exista clase ORM cat si interfete pentru expunerea serviciilor
dintr-un modul.
Client :
Login acesta clasa este entry point-ul in aplicatie. Aici se va face servirea unei pagini care
contine posibilitea de login / register. Aici se va face de asemenea si memorarea cookie-ului
Home aceasta clasa este folosita la afisarea primei pagini dupa login. De abicei aici se vor
afla informatii specifice clientului: Nume, poze, comentarii etc. De asemenea aceasta clasa
va putea fi folosita si la afisarea unui alt utilizator din sistem
Friends aceasta clasa este folosita la afisarea informatiei utile despre prietenii pe care ii
ai, sau pe care doresti sa ii adaugi.
Photo aici se vor afisa poze pe care utilizatorul le-a incarcat in sesiunile anteriore.
Server:
HibernateUtil - acesta clasa se foloseste pentru conexiunea la baza de date.
Login Service expune prin niste web-service-uri metode de login foloste de catre entitatile
client print apeluri asincrone. Aici sunt implementate metodele de securitate, pe langa cele
oferite de platforma de implementare cat si de framework-urile folosite.
Home Service aceasta clasa este folosita pentru a servii clientului informatii despre un
utilizator( fie acesta el insusi, fie alt utilizator din sistem)
Friends Service este folosit pentru cautarea, adaugarea sau stergerea unui client din
sistem.
PhotoService aici se fac expunerea unor servicii care permit utilizatorului sa upload-eze
poze pe platforma aplicatiei.
CommentService permite utilizatorilor sa adauge comentarii la pozele personale sau ale
altor utilizatori, daca acestia sunt prieteni cu userul curent.
-
10 | P a g e
ORM:
Acestea sunt mapari ale tabelelor din baza de date in clase java, pentru o utilizare mult mai
transparenta. Aceste clase sunt urmatoarele:
City reprezinta tabela de orase
Country - reprezinta tabela de tari a aplicatiei
Friends reprezinta legaturile dintre utilizatori
Friends_status reprezinta stari in care 2 utilizatori pot fi intre ei: (friends/request/ignore)
Msg este maparea tabelei de mesaje trimise intre utilizatori
Pic este o clasa care reprezinta pozele fiecarui utilizator
Pic_comment prin aceasta clasa se mapeaza in baza de date comentarile pentru fiecare
poza
User aici sunt retinuti utilizatorii sistemului impreuna cu toate datele fiecaruia dintre ei.