Proiectare Arhitecturala

10
1 | Page Document de Proiectare Arhitecturala Echipa: FacePaint

description

Proiectare Arhitecturala

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.