Sisteme de Programe pentru Retele de Calculatoare - UPB 2020-2021
Se trimite un POST
request catre https://sprc.dfilip.xyz/lab1/task1/check
cu headerul secret2: SPRCisBest
, parametrii nume=<nume>&grupa=<grupa>
si
datele secret: SPRCisNice
encodate ca form
. Se obtine urmatorul raspuns,
ce contine si tokenul JWT cerut:
{
"status": "ok",
"proof": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ3aG8iOnsibnVtZSI6WyJUZW9kb3ItU3RlZmFuIER1dHUiXSwiZ3J1cGEiOlsiMzQxQzMiXX0sImRpZCI6InRhc2sxIn0.zP6gL5EOQBp-jc79FBa1Sughh2R-wwrA86pnMvQUGgk"
}
Se trimite o cerere POST
catre https://sprc.dfilip.xyz/lab1/task2
care
contine JSON-ul urmator:
{
"username": "sprc",
"password": "admin",
"nume": <nume>
}
Se primeste urmatorul raspuns:
{
"status": "ok",
"proof": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ3aG8iOnsibnVtZSI6IlRlb2Rvci1TdGVmYW4gRHV0dSJ9LCJkaWQiOiJ0YXNrMiJ9.k_kcAPhC78_NmVEq1u2VTphmSPZFusWY8igZnp47qLc"
}
Se foloseste requestul de la Task 2 pentru a se initia o sesiune
catre https://sprc.dfilip.xyz/lab1/task3/login
. A
doua cerere HTTPS din aceasta sesiune reprezinta o cerere GET
catre
https://sprc.dfilip.xyz/lab1/task3/check
, in urma careia se primeste
raspunsul:
{
"status": "ok",
"proof": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ3aG8iOnsibnVtZSI6IlRlb2Rvci1TdGVmYW4gRHV0dSJ9LCJkaWQiOiJ0YXNrMyJ9.K8Oxp2wINIkScaOiepDnSbMmLz_bPS5lsugFe1mBHzM"
}
Se implementeaza perechi de clienti si servere RPC folosind API-ul rpc
din
POSIX.
Serverul calculeaza suma a 2 numere. Duh...
Se implementeaza doar clientul care trimite catre sprc2.dfilip.xyz
un RPC ce
are ca parametru o structura care contine 2 stringuri: nume
si grupa
, iar
serverul intoarce Well done <nume> (<grupa>)
.
Clientul ii da serverului un numar, iar serverul intoarce numarul prim cel mai
apropiat de cel primit de la client. Serverul foloseste
ciurul lui Atkin (luat din
tema la AA
) pentru a verifica daca un numar este prim in O(1)
.
Serverul actioneaza ca un shell remote permitand clientilor sa ruleze comenzi pe
acesta. Fiind vorba despre RPC, shellul este stateless, iar lungimea
outputului comenzii este setata de catre client (maximum 8192
octeti).
Se implementeaza, folosind Flask,
un server web care gestioneaza o colectie de filme si suporta metodele GET
,
POST
, PUT
, DELETE
.
Nimicuri cu dockere. Pana acum era mai misto.
Se descarca fisierele necesare de
aici, dupa care se
creeaza dockerul cu sudo docker build . -t task1
. Apoi se ruleaza dockerul
creat legandu-l la portul 8080
al hostului astfel:
sudo docker run -it -p 8080:80 task1
Se creeaza o suita de servicii capabile sa stocheze date persistent, folosind
docker-compose
.
Se foloseste protocolul MQTT pentru a simula un chat de
IRC practic :))) Protocolul functioneaza pe baza modelului
Publisher-Subscriber. Topicul la care clientul se aboneaza este
chat/sprc/#
, iar cel pe care publica este chat/sprc/<NumeStudent>
.
Alt lab degeaba.
Primul lab mai de Doamne-ajuta. Se modifica cache-ul LRU dat in schelet cu unul LFU si se adauga o serie de cereri web care sa demonstreze aceasta politica.
Se implementeaza o aplicatie client-server care gestioneaza o baza de date.
Serverul retine baza de date atat in fisiere cat si in memorie, iar clientii
pot efectua actiuni asupra acesteia prin intermediul unor RPC-uri descrise
in README
-ul temei.
Se implementeaza o aplicatie web (kms) care gestioneaza o baza de date ce
contine temperaturi masurate la anumite coordonate. Fiecare coordonata e
asociata unui oras, care si el se afla la randul lui intr-o tara. Aplicatia
suporta metodele GET
, POST
, PUT
si DELETE
ce permit modificarea
tabelelor ce contin tarile, orasele si temperaturile, cu mentiunea ca stergerile
se fac in cascada.
De asemenea, aplicatia contine si un GUI
(mysql-workbench) cu
care se poate inspecta baza de date. Toate componentele sunt create in cadrul
unor containere folosind docker-compose
.
Pe scurt, tema e un jeg in care e mai mult BD si bulaneala in
docker-compose.yml
decat cod scris pe bune...
Cam la fel ca tema 2, dar cu InfluxDB in loc de MySQL si cu Grafana in loc de mysql-workbench. Practic aceeasi mizerie ca la tema 2, dar cu un cancer extra, adica Grafana... De ce pula mea facem la SPRC mai mult BD decat orice altceva?