Evaluare - precizari generale
Nota finala este compusa din 35% componenta evaluare curs (C) si 65% componenta evaluare laborator (L) ce corespund unui punctaj total de 100 de puncte.
Cerinta de promovare este de a obtine minim 45 de puncte in total din acest punctaj, dintre care minim 15 puncte din componentele de evaluare de pe parcursul semestrului.
Impartirea ponderilor pe subcomponente este detaliata mai jos.
Evaluare - curs
Evaluarea notiunilor predate la curs se va face prin intermediul unui test scris sustinut miercuri, 20 mai, in intervalul de laborator 18:00-20:00, ce va conta ca pondere integrala a componentei de evaluare curs (35 puncte).
Testul scris va fi sustinut in regim open book. Va fi permisa utilizarea de materiale informative in format tiparit. Folosirea laptopului va fi permisa pentru o durata limitata din timpul testului.
Folosirea telefonului mobil este permisa strict pentru asigurarea unei conexiuni internet in cazul in care este necesar.
Mai multe informatii privind organizarea vor fi furnizate in apropierea datei de sustinere a testului.
Evaluare - laborator
Nota acordata in cadrul laboratorului va fi bazata pe urmatoarele componente, insumand 65 de puncte:
- Un proiect semestrial de grup - 30 puncte (cu posibile bonusuri)
Descrierea cerintelor si dimensiunea maxima a echipei vor fi anuntate in apropierea jumatatii semestrului.
Prezentarea proiectelor se va face la o data stabilita in sesiune.
Proiectul, si tema (detalii mai jos) sunt singurele componente ce se pot prezenta in sesiunea de restante. - Prezentarea unui articol/material publicat - 20 puncte
Prezentarea poate fi realizata in grup, in functie de lungimea si complexitatea articolului.
Prezentarea articolelor va avea loc incepand din saptamana 6 sau 8 a semestrului.
Propunerile pentru prezentari vor fi anuntate pe aceasta pagina pana pe data de 27 martie, avand asociata dimensiunea maxima a echipei ce poate prezenta articolul.
Selectarea lucrarilor spre prezentare, se va face pe principiul primul venit, primul servit, prin trimiterea unui e-mail catre responsabilul de laborator ( emanuel . onica @ uaic . ro ) cu titlul si ziua aleasa, alegerea fiind actualizata in pagina curenta in cel mai scurt timp posibil pentru evitarea posibilelor conflicte in cazul alegerii aceleiasi prezentari: data limita alegere prezentare - 7 aprilie.
Programul prezentarilor va fi disponibil in cadrul acestei pagini.
Prezentarile se vor desfasura in numar de maxim 4 in cadrul unui laborator pe baza unui set de slideuri si vor acoperi o durata de ~20 de minute.
Orice intarziere si reprogramare a unei prezentari, se va face doar cu motivare in conditii exceptionale, si va atrage o penalizare de 5 puncte la fiecare saptamana de intarziere.
- O tema practica de grup - 15 puncte
Tema va fi anuntata in saptamana 3 sau 4 si va fi evaluata in laboratorul din saptamana 7. Mai multe detalii legate de dimensiunea echipei si evaluare vor fi comunicate la momentul respectiv.
Singurele componente dintre toate cele de mai sus (atat C si L) ce se pot sustine in sesiunea de restante sunt tema si proiectul. Prezentarea pentru prima data a proiectului sau a temei in sesiunea de restante atrage o penalizare de 5 puncte pentru componenta respectiva.
Tema practica - termen predare 31 martie prin trimiterea unei arhive zip cu sursele sau a unui link la un repo public via e-mail la adresa emanuel.onica@uaic.ro
Intentia de prezentare a temei va fi semnalata pana la data de 29 martie printr-un formular ce va fi anuntat pe canalul de Discord mentionand structura echipei. O programare a prezentarilor va fi comunicata in data de 30 martie.
Prezentarile temelor se vor face in regim online, in cadrul laboratoarelor din 1 aprilie si 3 aprilie.
Scrieti un program care sa genereze aleator seturi echilibrate de subscriptii si publicatii cu posibilitatea de fixare a: numarului total de mesaje (publicatii, respectiv subscriptii), ponderii pe frecventa campurilor din subscriptii si ponderii operatorilor de egalitate din subscriptii pentru cel putin un camp. Publicatiile vor avea o structura fixa de campuri. Implementarea temei va include o posibilitate de paralelizare pentru eficientizarea generarii subscriptiilor si publicatiilor, si o evaluare a timpilor obtinuti.
Exemplu:
Publicatie: {(company,"Google");(value,90.0);(drop,10.0);(variation,0.73);(date,2.02.2022)} - Structura fixa a campurilor publicatiei e: company-string, value-double, drop-double, variation-double, date-data; pentru anumite campuri (company, date), se pot folosi seturi de valori prestabilite de unde se va alege una la intamplare; pentru celelalte campuri se pot stabili limite inferioare si superioare intre care se va alege una la intamplare.
Subscriptie:{(company,=,"Google");(value,>=,90);(variation,<,0.8)} - Unele campuri pot lipsi; frecventa campurilor prezente trebuie sa fie configurabila (ex. 90% company - 90% din subscriptiile generate trebuie sa includa campul "company"); pentru cel putin un camp (exemplu - company) trebui sa se poate configura un minim de frecventa pentru operatorul "=" (ex. macar 70% din subscriptiile generate sa aiba ca operator pe acest camp egalitatea).
Note:
- cazul in care suma procentelor configurate pentru campuri e mai mica decat 100 reprezinta o situatie de exceptie care nu e necesar sa fie tratata (pentru testare se vor folosi intotdeauna valori de procentaj ce sunt egale sau depasesc 100 ca suma)
- tema cere doar generarea de date, nu implementarea unei topologii Storm care sa includa functionalitatea de matching intre subscriptii si publicatii; nu exista restrictii de limbaj sau platforma pentru implementare
- pentru optimizarea de performanta prin paralelizare pot fi considerate fie threaduri (preferabil) sau o rulare multiproces pentru generarea subscriptiilor si publicatiilor; se va lua in calcul posibila necesitate de sincronizare a implementarii paralelizate ce poate sa apara in functie de algoritmul ales pentru generarea subscriptiilor
- evaluarea implementarii va preciza intr-un fisier "readme" asociat temei urmatoarele informatii: tipul de paralelizare (threads/procese), factorul de paralelism (nr. de threads/procese) - se cere executia pentru macar doua valori de test comparativ, ex. 1 (fara paralelizare) si 4, numarul de mesaje generat, timpii obtinuti si specificatiile procesorului pe care s-a rulat testul.
Hint: NU se recomanda utilizarea distributiei random in obtinerea procentelor cerute pentru campurile subscriptiilor (nu garanteaza o distributie precisa).
Setul generat va fi memorat in fisiere text.
Tema se poate realiza in echipe de pana la 3 studenti.
Tema proiect si criterii evaluare:
Implementati o arhitectura de sistem publish/subscribe, content-based, structurata in felul urmator:
- Generati un flux de publicatii care sa fie emis de 1-2 noduri publisher. Publicatiile pot fi generate cu valori aleatoare pentru campuri folosind generatorul de date din tema practica. (5 puncte)
- Implementati o retea (overlay) de 2-3 brokeri care sa stocheze subscriptii primite de la clienti (subscriberi) si sa-i notifice pe acestia in functie de o filtrare bazata pe continutul publicatiilor. (10 puncte)
- Simulati 2-3 noduri subscriber care se conecteaza aleatoriu la reteaua de brokeri pentru a inregistra susbcriptii. Subscriptiile pot fi generate cu valori aleatoare pentru campuri folosind generatorul de date din tema practica. (5 puncte)
- Implementati un mecanism avansat de rutare la inregistrarea subscriptiilor. Subscriptiile aceluiasi subscriber vor fi distribuite balansat pe mai multi brokeri fiind rutate conform mecanismului implementat. Publicatiile vor trece prin mai multi brokeri pana la destinatie, fiecare ocupandu-se partial de rutarea acestora, si nu doar unul care contine toate subscriptiile si face un simplu match. (5 puncte)
- Realizati o evaluare a sistemului, masurand pentru inregistrarea a 10000 de subscriptii simple, urmatoarele statistici: a) cate publicatii se livreaza cu succes prin reteaua de brokeri intr-un interval continuu de feed de 3 minute, b) latenta medie de livrare a unei publicatii (timpul de la emitere pana la primire) pentru acelasi interval, c) rata de potrivire (matching) pentru cazul in care subscriptiile contin pe unul dintre campuri doar operator de egalitate (100%) comparata cu situatia in care frecventa operatorului de egalitate pe campul respectiv este aproximativ un sfert (25%). Redactati un scurt raport de evaluare a solutiei. (5 puncte)
Punctaj bonus proiect:
- Folositi un mecanism de serializare binara (Google Protocol Buffers sau Thrift) pentru transmiterea publicatiilor de la nodul publisher la brokers. (5 puncte)
- Simulati si tratati (prin asigurare de suport in implementare) cazuri de caderi pe nodurile broker, care sa asigure ca nu se pierd notificari. Simularea va presupune intreruperea efectiva a functionarii unui nod broker. (5 puncte)
- Implementati o modalitate de filtrare a mesajelor care sa nu permita accesul la continutul acestora (match pe subscriptii/publicatii criptate). (5-10 puncte)
Note:
- Proiectul poate fi realizat in echipe de pana la 3 studenti si va fi prezentat la o data ce va fi stabilita in perioada de sesiune.
- Proiectul poate fi implementat utilizand orice limbaj sau platforma. In cazul in care se va folosi Apache Kafka in implementare, utilizarea acestei platforme va fi limitata doar pentru livrarea mesajelor, asigurandu-se conectarea cu implementarea folosind o alta solutie pentru partea efectiva de serviciu de procesare a datelor (filtrarea bazata pe continut, stocare subscriptii, etc).
Teme prezentari articole
Temele vor fi selectate pentru prezentare in functie de numarul maxim de sloturi alocat pe laborator, in urmatoarele saptamani:
- saptamana 9: MISS1, MSAI1 - miercuri 22.04.2026 (3/3) ; MSD1, MIAO1 - vineri 24.04.2026 (1/3)
- 22.04.2026 - Chiriac Teodora(MISS1), Onisor Maria-Patricia(MISS1) - "TinTiN: Travelling in Time (if Necessary) to deal with out-of-order data in streaming aggregation", J. van Rooij, V. Gulisano, M. Papatriantafilou - link - 2 studenti
- 22.04.2026 - Rosca Alexandru-David (MISS1), Tomescu Mircea-Andrei (MISS1), Ghiarasim Alexandru (MISS1) - "PDSP-Bench: A Benchmarking System for Parallel and Distributed Stream Processing", P. Agnihotri, B. Koldehofe, R. Heinrich, C. Binnig, M. Luthra - link - 3 studenti
- 22.04.2026 - Rusu Andrei Dudu (MISS1), Tofan David-Dimitrie (MISS1) - "A Tale of Many Streams: Characterizing a Hybrid Batch-Stream Production Workload in Digazu, a Data Lake supported by Apache Kafka and Flink", D. Schmitz, L. Berrewaerts, G. Rosinosky, S. Skhiri, E. Riviere - link - 2 studenti
- 24.04.2026 - Stegaru Ana Maria (MIAO1), Guzun Evelina (MISS1) - "PPOIJ: Shared-Nothing Parallel Patterns for Efficient Online Interval Joins over Data Streams", G. Mencagli, Y. Rymarchuk, D. Griebler - link - 2 studenti
- saptamana 10: MISS1, MSAI1, MSD1, MIAO1 - miercuri 29.04.2026 (4/4)
- 29.04.2026 - Aciocanesa Bianca-Ioana (MISS1), Mandrea Radu-Alexandru (MISS1) - "EPL: The Event Processing Language for Streaming Data", S. Langhi, R. Tommasini, A. Bonifati, T. Bernhardt - link - 2-3 studenti
- 29.04.2026 - Bejan Paul-Eusebiu (MISS1), Bindiu Ana-Maria (MISS1), Chiriac Laura-Florina (MISS1) - "Complex event processing: Current status and considerations for edge deployment", S. Kyrama, A. Gounaris - link - 3 studenti
- 29.04.2026 - Vlad Teodora (MISS1), Tiron Raul (MISS1) - "AQuA-CEP: Adaptive Quality-Aware Complex Event Processing in the Internet of Things", M. L. Delouee, B. Koldehofe, V. Degeler - link - 2-3 studenti
- 29.04.2026 - Cioratanu Maria (MISS1), Panca Aida-Gabriela (MISS1), Varzar Alina-Miruna(MISS11) - "Justin: Hybrid CPU/Memory Elastic Scaling for Distributed Stream Processing", D. Schmitz, G. Rosinosky, E. Riviere - link - 3 studenti
- saptamana 11: MISS1, MSAI1 - miercuri 06.05.2026 (3/3) ; MSD1, MIAO1 - vineri 08.05.2026 (3/3)
- 06.05.2026 - Roman Iulian (MISS1), Zara Mihnea-Tudor (MISS1), Mihoc Roxana-Gabriela (MISS1) - "Dynamic Adaptive Fault-Tolerance in Stream Computing Systems under Resource Constraints", Z. Wang, D. Sun, X. Zang, A. Sajjanhar, R. Buyya - link - 2-3 studenti
- 06.05.2026 - Filimon David (MISS1), Pintescu Sebastian (MISS1) - "Selective Auctioning using Publish/Subscribe for Real-Time Bidding", S. Slimani, K. Zhang - link - 2 studenti
- 06.05.2026 - Luca Vladut (MSAI1), Cotin Mihai (MSD1) - "Multistage Adaptive Load Balancing for Big Active Data Publish Subscribe Systems", H Nguyen, M.Y.S. Uddin, N. Venkatasubramanian - link - 2-3 studenti
- 08.05.2026 - Ursache Ana-Maria (MSD1), Dascalu Andreea (MSD1), Agheorghiesei Ioana (MISS1) - "Adaptive key partitioning in distributed stream processing", G. Liu, Z. Wang, A. C. Zhou, R. Mao - link - 2-3 studenti
- 08.05.2026 - Golache Denisa-Ioana (MSD1), Aioanei Elena (MIAO1), Mariei Xenia (MIAO1) - "Process Faster, Pay Less: Functional Isolation for Stream Processing", E. Zapridou, M. Koepf, P. Sioulas, I. Mytilinis, A. Ailamaki - link - 2-3 studenti
- 08.05.2026 - Savin Ionut (MSD1), Vasilica Alexandru (MISS1), Murgu Cristian (MISS1) - "Learning from the Past: Adaptive Parallelism Tuning for Stream Processing Systems", Y. Han, L. Chen, H. Wang, Z. Chen, Y. Zhang, C. Yang, K. Hao, Z. Yang - link - 2-3 studenti
- saptamana 12: MISS1, MSAI1 - miercuri 13.05.2026 (3/3) ; MSD1, MIAO1 - vineri 15.05.2026 (3/3)
- 13.05.2026 - Popoiu Andra Stefania (MISS1), Stoinea Maria Miruna (MISS1), Ungureanu Ana Maria (MISS1) - "Predicate-Based Push-Pull Communication for Distributed CEP", S. Purtzel, S. Akili, M. Weidlich - link - 2-3 studenti
- 13.05.2026 - Gavril Stefan-Dorian (MISS1), Onut Daniela-Mihaela (MISS1), Prodan Sabina-Alina (MISS1) - "State-Aware Load Shedding from Input Event Streams in Complex Event Processing", A. Slo, S. Bhowmik, K. Rothermel - link - 3 studenti
- 13.05.2026 - Medeleanu Daria (MISS1), Avram Tudor (MISS1), Cojocaru Adelin (MISS1) - "Local recovery and partial snapshot in distributed stateful stream processing", Takdir, H. Kitagawa, T. Amagasa - link - 3 studenti
- 15.05.2026 - Loghin Catalin (MSAI1), Motelica Sandu (MISS1) - "Elastic Scaling of Stateful Operators Over Fluctuating Data Streams", M. Wu, D. Sun, S. Gao, K. Li, R. Buyya - link - 2-3 studenti
- 15.05.2026 - Iurascu Danut (MSD1), Stan Cosmin (MISS1) - "Lc-Stream: An elastic scheduling strategy with latency constraints in geo-distributed stream computing environments", D. Sun, Y. Wang, J. Sui, S. Gao, J. Rong, R. Buyya - link - 3 studenti
- 15.05.2026 - Hohleva Catalina (MIAO1), Simco Gabriela (MISS1) - "Efficient Covering for Top-k Filtering in Content-Based Publish/Subscribe Systems", K. Zhang, M. Sadoghi, V. Muthusamy, H.-A. Jacobsen - link
- saptamana 13: MISS1, MSAI1, MSD1, MIAO1 - vineri 22.05.2026 (4/6)
- 22.05.2026 - Sarghi Vladut Gabriel (SD1), Popescu Mara (ISS1) - "SPO-Join: Efficient Stream Inequality Join", A Aslam, K Beedkar, G Simonini - link - 2-3 studenti
- 22.05.2026 - Biceada Alexandra-Stefana (MISS1), Rusu Ioana (MISS1) - "Collusion Defender: Preserving Subscribers Privacy in Publish and Subscribe Systems", S. Cui, S. Belguith, P. De Alwis, M. R. Asghar, G. Russello - link - 2-3 studenti
- 22.05.2026 - Calcan Teodor-Alexandru (MISS2) - "Maintaining Wavelet Synopses for Sliding-Window Aggregates", I. Mytilinis, D. Tsoumakos, N. Koziris - link - 2 studenti
- 22.05.2026 - Dragos Gabriel-Catalin (MISS1), Cucuteanu Lucian-Andrei (MISS1), Sacara Samuel-Carlos (MISS1) - "VCube-PS: A Causal Broadcast Topic-based Publish/Subscribe System", J. P. de Araujo, L. Arantesa, E. P. Duarte Jr., L. A. Rodrigues, P. Sens - link - 3 studenti
- saptamana 14: MISS1, MSAI1 - miercuri 27.05.2026 (2/4) ; MSD1, MIAO1 - vineri 29.05.2026 (1/4)
- 27.05.2026 - Croitoru Razvan-Constantin (MISS2), Floristean Ana-Maria (MISS2) - "Run-Time Adaptation of Complex Event Forecasting", M. Pitsikalis, E. Alevizos, N. Giatrakos, A. Artikis - link - 2 studenti
- 27.05.2026 - Viziteu David Andrei (MSAI1), Stoleru Andrei (MSAI1) - "MuSE Graphs for Flexible Distribution of Event Stream Processing in Networks", S. Akili, M. Weidlich - link - 2-3 studenti
- 29.05.2026 - Apricopoai Andrei Constantin (MSD2), Sorohan Dumitrita (MISS1) - "Load Shedding for Complex Event Processing: Input-based and State-based Techniques", B. Zhao, N.Q.V. Hung, M. Weidlich - link - 2 studenti
Note:
- Incepand cu saptamana 8, laboratoarele vor fi dedicate aproape integral prezentarilor de articole si discutiilor despre proiecte.
- In saptamana 10 desfasurarea vineri 1 mai este zi libera oficiala si laboratorul nu se va desfasura. In consecinta, toate seriile de studenti pot fi programate miercuri pentru prezentari.
- In saptamana 13, laboratorul de miercuri se va desfasura in intervalul de curs de vineri, intervalul de laborator de miercuri fiind alocat testului scris.
- In saptamana 14, orele se vor desfasura cel mai probabil online.
- Programarea prezentarilor studentilor de la seriile MISS1, MSAI1 va fi facuta prioritar in laboratoarele de miercuri, si a celor de la seriile MSD1, MIAO1 in laboratoarele de vineri, conform orarului, cu exceptia saptamanilor cand laboratorul se va desfasura intr-o singura zi. Eventuale mutari vor fi posibile ulterior termenului pentru selectarea articolului daca raman pozitii libere.
Dupa cum a fost mentionat in descrierea evaluarii componentelor de laborator mai sus, la alegerea temei se va preciza componenta echipei si data preferata pentru sustinerea prezentarii, din cele ramase disponibile. Pentru minimizarea conflictelor este indicata si mentionarea unei optiuni secundare ca alegere de backup. Comunicarea alegerii se va face preferabil prin e-mail la adresa emanuel.onica @ uaic.ro .
Prezentari nealocate:
- "Sharp: Shared State Reduction for Efficient Matching of Sequential Patterns", C. Yu, T. Shi, M. Weidlich, B. Zhao - link - 2-3 studenti
- "Nova: Scalable Streaming Join Placement and Parallelization in Resource-Constrained Geo-Distributed Environments", X. Chatziliadis, E.T. Zacharatou, S. Akili, A .Eracar, V. Markl - link - 2-3 studenti
- "SuSe: Summary Selection for Regular Expression Subsequence Aggregation over Streams", S. Purtzel, M. Weidlich - link - 3 studenti
- "Optimal Operator Deployment and Replication for Elastic Distributed Data Stream Processing", V. Cardellini, F. Lo Presti, M. Nardelli, G. Russo - link - 3 studenti
- "ZeroTune: Learned Zero-Shot Cost Models for Parallelism Tuning in Stream Processing", P. Agnihotri, B. Koldehofe, P. Stiegele, R. Heinrich, C. Binnig, M. Luthra - link - 2-3 studenti
- "A Stepwise Auto-Profiling Method for Performance Optimization of Streaming Applications", X. Liu, A. V. Dastjerdi, R. N. Calheiros, C. Qu, R. Buyya - link - 3 studenti
- "Incremental Stream Query Placement in Massively Distributed and Volatile Infrastructures", A. Chaudhary, K. Beedkar, J. Karimov, F. Lang, S. Zeuch, V. Markl - link - 3 studenti
- "A Sketch Framework for Approximate Data Stream Processing in Sliding Windows", X. Gou, Y. Zhang, Z. Hu, L. He, K. Wang, X. Liu, T. Yang, Y. Wang, B. Cui - link - 3 studenti
- "CAPSys: Contention-aware task placement for data stream processing", Y Wang, L Huang, Z Wang, V Kalavri, I Matta - link - 3 studenti
- "INEv: In-Network Evaluation for Event Stream Processing", S. Akili, M. Purtzel, M. Weidlich - link - 3 studenti
- "PICADOR: End-to-End Encrypted Publish-Subscribe Information Distribution with Proxy Re-Encryption", C. Borcea, A.D. Gupta, Y. Polyakov, K. Rohloff, G. Ryan - link - 3 studenti
- "An Adaptive Online Scheme for Scheduling and Resource Enforcement in Storm", S. Liu, J. Weng, J.H. Wang, C. An, Y. Zhou, J. Wang - link - 2-3 studenti
Situatie laborator
Situatia la zi a punctajului de laborator se poate consulta aici (cod acces furnizat in cadrul laboratorului).
Orice modificari vor fi anuntate in timp util in cadrul acestei pagini.