Sunteți pe pagina 1din 3

ConsoleShopper

Eduard Dnil
Facultatea de Informatic, Universitatea Alexandru Ioan Cuza, Ia i
paul.danila@info.uaic.ro
Abstract. Aplicaia simuleaza un magazine online. Permite viziualizarea produselor disponibile
in stoc sau produse dintr-o singura categorie i plaserea unei comenzi cu produsele dorite.
Cuvinte-cheie: magazin online

Introducere

Aplicaia client/server permite utilizatorului functionalitatea unui magazin online


de produse. Aceasta trebuie sa suporte autentificarea utilizatorilor pe baza unor
conturi definite, organizarea produselor in diverse categorii, afisarea acestora,
plasarea de comenzi, salvarea cosului de cumparaturi etc.

Tehnologii utilizate

Aplicaia este realizat pe modelul server-client.


n vederea conectrii la server utilizatorul trebuie s detina un username i o parol
cu ajutorul crora s se poat loga. Transmiterea parolei se va realiza n mod
securizat, aceasta fiind criptat. Procesele vor comunica ntre ele prin socket-uri , iar
protocolul de comunicare folosit va fi TCP. Acest protocol va fi folosit deoarece
asigura o transimisune sigur i corect a datelor. Concurenta este asigurat de un
numr de thread-uri , fiecare din ele deservind propriul client. Protocolul de control
al transmisiei (sau TCP, de la engl. Transmission Control Protocol) este un protocol
folosit de obicei de aplicaii care au nevoie de confirmare de primire a datelor.
Efectueaz o conectare virtual full duplex ntre dou puncte terminale, fiecare punct
fiind definit de ctre o adres IP i de ctre un port TCP.
Transmission Control Protocol (TCP) este unul dintre protocoalele de baz ale
suitei de protocoale Internet. TCP este unul dintre cele dou componente originale ale
suitei (celalalt fiind Protocolul Internet, sau IP), astfel nct ntreaga suita este
frecvent menionat ca stiva TCP/IP. n special, TCP ofer ncredere, asigura livrarea
ordonata a unui flux de octei de la un program de pe un computer la alt program de
pe un alt computer aflat n reea. Pe lng sarcinile sale de gestionare a traficului, TCP
controleaz mrimea segmentului de date, debitul de informaie, rata la care se face

schimbul de date, precum i evitarea congestionrii traficului de reea. Printre


aplicaiile cele mai uzuale ce utilizeaz TCP putem enumera World Wide Web
(WWW), posta electronica (e-mail) i transferul de fiiere (FTP).Clientul trimite cte
o comand serverului, iar serverul i verific corectitudinea, o proceseaz, i trimite
napoi clientului un mesaj n care i transmite dac s-a realizat cu succes comanda
dat. Fiecare client va fi indentificat printr-o structur n care va fi salvat descriptorul
acestuia i id-ul thread-ului care l deservete.Pentru lucrul cu baze de date a fost
folosit interfata C/C++ pentru a putea lucra cu librria sql SQLite 3(integrata n
linux).
Limbajul folosit este C/C++.

Arhitectura aplicatiei

Baza arhitecturii aplicaiei const din trimiterea de comenzi de la client la server.


Dup ce va primi i va accepta cererile de conexiune, serverul va oferi clientului o
lista de utilitati :afisarea listei tuturor produselor, afisarea listei de produse dintr-o
categorie aleasa, depunerea comenzii si deconectare.Dupa ce alege optiunea,aceasta
este trimisa la serve care o si satisface, in cele mai dese cazuri,printr-un apel de baze
de date,trimitand apoi datele preluate prin apel clientului.

Detalii de implementare

Partea de conexiune este una standart, si utilizeaza primitivele


connect,accept,listen,etc.Odata ce se conecteaza un user, acestuia I se creeaza un
thread care va deservi clientul atat timp cat acesta este conectat.Functia de rulare a
threadului este alcatuita din 2 parti de baza : partea de crearea unei identitati sau
alegerea unei existente din baze de date.Daca userul doreste sa se inregistreze, acesta
introduce login si parola,si in caz de nu exista nici un user deja inregistrat cu numele
dat, inregistrarea are loc cu succes.in caz contrar, userului I se zice ca username este
utilizat si ca acesta sa aleaga alt nume.La logare userul introduce login si parola, si
daca aceasta pereche de date exista in baza de date, userului I se zice ca acesta s-a
logat cu succes, sau ca logarea nu a avut loc, in caz contrar.A doua partea a threadului
este un while in care clientul poate alege afisarea tuturor produselor,ceea ce se face
printr-o interogare in server care selecteaza toate date din tabelul cu produse,le scrie
intr-o variabila globala si o trimite spre client,care o si afiseaza, sau afisarea
produselor dintr-o singura categorie, caz in care userului I se afiseaza toate categoriile
existenta si I se ofera citirea uneia din acestea.serverul primeste numele categoriei si
face apel de select cu aceasta in tabelul cu produse,scrie datele selectate in variabila
globala care o trimite userului si acesta o afiseaza.Daca clientul alege depunerea
comenzii,acestuia I se citeste id-ul produsului,in caz in care acesta nu exista in baza
de date userul este notificat si depunerea comenzii este intrerupta,in caz in care exista

produsul cu id-ul dat,userului I se citeste numarul de unitati de produs.Serverul face


apel in baza de date cu care verifica daca numarul de unitati de produs existente este
suficient pentru a satisface cerinta userului.Daca nu,depunerea comenzii este
intrerupta.Daca da,se face un insert de comanca in tabelul cu comenzi si userul este
notificat ca comanda a fost depusa cu succes,dupa ce acestuia I se propune sa mai
aleaga o optiune din cele existente.

Concluzii

Programul ar putea fi mbuntit printr-o interfa grafic, si a unui trigger care va


modifica numarul de unitati existente in stoc in functie de comenzile depuse, peste o
anumita perioada de timp,salvand timpul de depunere a comenzii in baza de date.

Bibliografie

Buraga, S. C., & Ciobanu, G. (2001). Atelier de programare n reelele de


calculatoare. Bucureti: Polirom.
ro.wikipedia.org
www.stackoverflow.com
http://www.tutorialspoint.com/sqlite/index.htm

S-ar putea să vă placă și