Tema: Folosirea executiei concurente prin apeluri asincrone.
Folosirea mecanismelor: future, promises si thread_pool. Analiza imbunatatirii performantei executiei unei aplicatii (de tip business) prin programare concurenta. Magazin Un magazin vinde produse pentru care are o evidenta caracterizata de urmatoarele atribute (nume, cod, pret_unitar, unit_masura, pret_unitar). Se pot opera mai multe vanzari simultane care trebuie sa inregistreze automat modificarile de stocuri. Se mentine o evidenta si a vanzarilor si a facturilor emise; facturile sunt caracterizate de (data, lista_produse, suma_totala). Se mentine de asemenea si un sold total (suma existenta in casa). Periodic sistemul face o verificare a stocurilor prin verificarea corespondentei corecte intre stoc, totalitatea produselor vandute (de la ultima verificare pana in prezent), sumele incasate in aceeasi perioada si soldul total.
Pentru a simula vanzarile se vor implementa urmatoarele
variante:
1) initierea vanzarilor printr-o interfata minimala;
2) crearea unui thread paralel care initiaza/creeaza la interval
de 5 sec o noua vanzare folosind date generate aleatoriu;
3) [optional] adaptarea problemei pentru a fi o aplicatie client-
server prin care vanzarile sunt initiate remote de client, iar pe server se face gestiunea magazinului. (Aceasta varianta poate fi predata si dupa deadline-ul corespunzator laboratorului 5 si in caz de succes conduce la marirea notei finale de laborator cu 2 puncte.)
Pentru testare/verificare se cere salvarea pe suport extern a
listei cu produse, a listei facturilor si a rezultatelor operatiilor de verificare executate periodic. Limbajul de implementare: la alegere
Deadline: saptamana 9 Diagrama
Package server:
Package model: Package client:
Pornim serverul si clientul, clientul afiseaza meniul cu optiunile
posibile: Client: 1.List products 2.Buy product 3.Inventory -prin optiunea list products afiseaza toate produsele disponibile -prin optiunea buy product se efectueaza cumpararea unui produs -prin optiunea inventory se efectueaza verificarea de stocuri Server: -efectueaza operatie primita de la client -la fiecare 8 secunde face o verficare de stocuri -la fiecare 5 secunde face o cumparare de produs