Evaluare - precizari generale

Nota finala este compusa din 30% componenta evaluare curs (C) si 70% componenta evaluare laborator (L) ce corespund unui punctaj total de 100 de puncte.
Cerinta de promovare este de a obtine minim 45 de puncte din acest punctaj.
Impartirea ponderilor pe subcomponente este detaliata mai jos.

Evaluare - curs

Evaluarea notiunilor predate la curs se va face prin intermediul unui test scris sustinut in saptamana 13 ce va conta ca pondere integrala a componentei de evaluare curs (30 puncte).
Data testului este sambata, 28 mai - ora 12:00 (sala C309). Testul scris va fi sustinut in regim open book. Va fi permisa utilizarea de materiale informative in format tiparit sau electronic, deci inclusiv folosirea laptopului. Exceptie face folosirea telefonului mobil/device-urilor mobile de tip tableta, care este permisa exclusiv pentru cazul in care este necesara pentru asigurarea unei conexiuni internet.

Evaluare - laborator

Nota acordata in cadrul laboratorului va fi bazata pe urmatoarele componente, insumand 70 de puncte:

  • Un proiect semestrial de grup - 35 puncte (cu posibile bonusuri)
    Descrierea cerintelor si dimensiunea maxima a echipei vor fi anuntate in apropierea saptamanii 6.
    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.
    Data provizorie stabilita pentru prezentarea proiectului este vineri, 10 iunie, incepand cu ora 12:00 - sesiune (luni, 27 iunie, incepand cu ora 12:00 - restante). Detaliile definitive legate de programare vor fi anuntate dupa stabilirea orarului pentru sesiune.
  • 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 7 a semestrului.
    Propunerile pentru prezentari vor fi anuntate pe aceasta pagina pana in 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 ( eonica @ info . 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 - 3 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.
    Slideurile de prezentare vor fi realizate preferabil in limba romana.
    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 si va fi evaluata in laboratorul din saptamana 6. 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 (MSD1, MSAI), 1 aprilie (MIS1):

Intentia de prezentare a temei va fi anuntata pana la data de 28 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 29 martie.

Tema se va trimite prin e-mail cel tarziu la data prezentarii printr-un link la un repository, sau a unei arhive cu sursele, insotita de un scurt fisier "readme" care sa descrie modul de rulare, si eventual alte aspecte daca este cazul.

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 la alegere.

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
- optional, implementarea temei poate include o optimizare de performanta prin paralelizarea generarii subscriptiilor si publicatiilor; in acest caz trebuie evident considerata posibila necesitate de sincronizare a threadurilor ce poate sa apara in functie de algoritmul ales pentru generarea subscriptiilor

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 2 studenti pentru o implementare ne-paralelizata. Se accepta echipe de 3 studenti pentru o implementare in care atat generarea subscriptiilor cat si publicatiilor se poate face si in mod paralelizat configurand un numar de threaduri de generare - tema va include in acest caz si o statistica pentru un benchmark comparativ intre o rulare single-threaded si una multi-treaded, precizand numarul de threaduri folosit, numarul de mesaje generat, timpii obtinuti si specificatiile procesorului pe care s-a rulat testul.

Situatie punctaj

Situatia la zi a punctajului se poate consulta aici.

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. (10 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 7: MSD1, MSAI1 - 7 aprilie (0/3) ; MIS1 - 8 aprilie (0/3)

  • saptamana 8: MSD1, MSAI1 - 14 aprilie (1/3) ; MIS1 - 15 aprilie (2/4)
    • Emanuela Catana (MSD2), Teodora Hoamea (MSD1) - 14 aprilie - "SPECTRE: Supporting Consumption Policies in Window-Based Parallel Complex Event Processing", R. Mayer, A. Slo, M.A. Tariq, K. Rothermel, M. Graber, U. Ramachandran - link - 2 studenti
    • Elisabeta Constantin (MISS1) - 15 aprilie - "Privacy-Preserving Content-Based Publish/Subscribe Networks", A. Shikfa, M. Onen, R. Molva - link - 2 studenti
    • Vlad Luchian (MSD1), Diana Terchea (MISS1) - 15 aprilie - "NSFA: Nested Scale-Free Architecture for Scalable Publish/Subscribe over P2P Networks", H. Zheng, J. Wu - link - 2 studenti

  • saptamana 10: MSD1, MSAI1 - 5 mai (3/3) ; MIS1 - 6 mai (3/4)
    • Vlad-Andrei Serban (MSD1), Cosmin-Gabriel Cruceanu (MISS1) - 5 mai - "Benchmarking Distributed Stream Data Processing Systems", J. Karimov, T. Rabl, A. Katsifodimos, R. Samarev, H. Heiskanen, V. Markl - link - 2 studenti
    • Stefan Petrovici (MSAI1), Ilie Vladimir Ripan (MSAI1), Gabriel Pantiru (MSAI1) - 5 mai - "Deployment Strategies for Distributed Complex Event Processing", G. Cugola, A. Margara - link - 3 studenti
    • Ana Vasiliu (MSD1), Andrei Prepelita (MISS1) - 5 mai - "Publish/Subscribe Network Designs for Multiplayer Games", C. Canas, K. Zhang, B. Kemme, J. Kienzle, H.-A. Jacobsen - link - 2 studenti
    • Ioan Sava (MISS1), Diana-Isabela Crainic (MISS1) - 6 mai - "NAMB: A Quick and Flexible Stream Processing Application Prototype Generator", A. Pagliari, F. Huet, G. Urvoy-Keller - link - 2 studenti
    • Stefan Dragoi (MISS1), Andrei Condurache (MISS1) - 6 mai - "TOPiCo: Detecting Most Frequent Items from Multiple High-Rate Event Streams", V. Schiavoni, E. Riviere, P. Sutra, P. Felber, M. Matos, R. Oliveira - link - 2 studenti
    • Ciprian Danis (MISS1), Catalin Sumanaru (MISS1) - 6 mai - "Adjusting Matching Algorithm to Adapt to Workload Fluctuations in Content-based Publish/SubscribeSystems", S. Qian, W. Mao, J. Cao, F. Le Mouel, M. Li - link - 2 studenti

  • saptamana 11: MSD1, MSAI1 - 12 mai (1/3) ; MIS1 - 13 mai (3/4)
    • Marius Georgica (MSD1) - 12 mai - "Amoeba: Aligning Stream Processing Operators with Externally-Managed State", A. Papaioannou, K. Magoutis - link - 2 studenti
    • Alexandru Florin Harbuzariu (MISS1), Ionut-Catalin Hazi (MISS1) - 13 mai - "Minimizing Cost by Reducing Scaling Operations in Distributed Stream Processing", M. Borkowski, C. Hochreiner, S. Schulte - link - 2 studenti
    • Lucian Anghel (MISS1), Eduard Drob (MISS1) - 13 mai - "Enorm: Efficient Window-Based Computation in Large-Scale Distributed Stream Processing Systems", K.G.S. Madsen, Y. Zhou, L. Su - link - 2 studenti
    • Stefan Tiperciuc (MISS1), Serghei Cunev (MISS1) - 13 mai - "Strome: Energy-Aware Data-Stream Processing", C. Eibel, C. Gulden, W. Schroder-Preikschat, T. Distler - link - 2 studenti

  • saptamana 12: MSD1, MSAI1 - 19 mai (1/3) ; MIS1 - 20 mai (3/4)
    • Robert-Stefan Milea (MSD1), Andreea-Roxana Irimia (MSD1) - 19 mai - "Efficient Covering for Top-k Filtering in Content-Based Publish/Subscribe Systems", K. Zhang, M. Sadoghi, V. Muthusamy, H.-A. Jacobsen - link - 2 studenti
    • Iulian Daniel Rusu (MISS1), Andra Simion (MISS1), Camelia Georgiana Stativa (MISS1) - 20 mai - "Theodolite: Scalability Benchmarking of Distributed Stream Processing Engines in Microservice Architectures", S. Henning, W. Hasselbring - link - 3 studenti
    • Robert Frentz (MISS1), Silviu Ilas (MISS1) - 20 mai - "FireDeX: a Prioritized IoT Data Exchange Middleware for Emergency Response", K.E. Benson, G. Bouloukakis, C. Grant, V. Issarny, S. Mehrotra, I. Moscholios, N. Venkatasubramanian - link - 2 studenti
    • Panagiotis-Efstratios Chontas (MISS1) - 20 mai - "Parallelizing Intra-Window Join on Multicores: An Experimental Study", S. Zhang, Y. Mao, J. He, P.M. Grulich, S. Zeuch, B. He, R.T.B. Ma, V. Markl - link - 2 studenti

  • saptamana 14: MSD1, MSAI1 - 2 iunie (0/3) ; MIS1 - 3 iunie (1/3)
    • Stefan-Dorin Popa (MISS1), Sergiu Nistor (MSD1) - 3 iunie - "Selective Auctioning using Publish/Subscribe for Real-Time Bidding", S. Slimani, K. Zhang - link - 2 studenti

Nota: Incepand cu saptamana 7, laboratoarele vor fi dedicate integral prezentarilor de articole si discutiilor despre proiecte. In saptamana 9, inaintea sarbatorilor de Paste, si in saptamana 13, anterior testului scris, prezentari vor fi programate doar in cazul in care restul sloturilor nu sunt suficiente, laboratoarele fiind alocate in rest doar pentru discutii legate de proiecte.

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. Comunicarea alegerii se va face preferabil prin e-mail la adresa emanuel . onica @ uaic . ro sau eonica @ info . uaic . ro.

Prezentari nealocate:

  • "To Migrate or not to Migrate: An Analysis of Operator Migration in Distributed Stream Processing", E. Volnes, T. Plagemann, V. Goebel - link - 3 studenti
  • "Smart Streams", V.M.F. Escorcio - link - 3 studenti
  • "SpinStreams: a Static Optimization Tool for Data Stream Processing Applications", G. Mencagli, P. Dazzi, N.Toncis - link - 3 studenti
  • "An Integrated and Scalable Platform for Proactive Event-Driven Traffic Management", A. Kibangou, A. Artikis, E. Michelioudakis, G. Paliouras, M. Schmitt, J. Lygeros, C. Baber, N. Morar, F. Fournier, I. Skarbovsky - link - 3 studenti
  • "Providing High-Level Self-Adaptive Abstractions for Stream Parallelism on Multicores", A. Vogel, D. Griebler, L. G. Fernandes - 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 studenti
  • "Caladrius: A Performance Modelling Service for Distributed Stream Processing Systems", F. Kalim, T. Cooper, H. Wu, Y. Li, N. Wang, N. Lu, M. Fu, X. Qian, H. Luo, D. Cheng, Y. Wang, F. Dai, M. Ghosh, B. Wang - link - 2 studenti
  • "Decentralized Scaling for Stream Processing Engines", M. Belkhiria, C. Tedeschi - link - 3 studenti
  • "Quality-Aware Runtime Adaptation in Complex Event Processing", P. Weisenburger, M. Luthra, B. Koldehofe, G. Salvaneschi - link - 2 studenti
  • "Composite Subscriptions in Content-Based Publish/Subscribe Systems", G. Li, H.-A. Jacobsen - link - 3 studenti
  • "Adaptive Content-Based Routing in General Overlay Topologies", G. Li, V. Muthusamy, H.-A. Jacobsen - link - 3 studenti
  • "Data Dissemination Supporting Complex Event Pattern Detection", R. Baldoni, S. Bonomi, G. Lodi, M. Platania, L. Querzoni - link - 3 studenti
  • "OMen: Overlay Mending for Topic-based Publish/Subscribe Systems Under Churn", C. Chen, R. Vitenberg, H.A. Jacobsen - link - 2 studenti
  • "Expressive Content-Based Routing in Software-Defined Networks", S. Bhowmik, M.A. Tariq, J. Grunert, D. Srinivasan, K. Rothermel - link - 3 studenti
  • "An Integrated and Scalable Platform for Proactive Event-Driven Traffic Management", A. Kibangou, A. Artikis, E. Michelioudakis, G. Paliouras, M. Schmitt, J. Lygeros, C. Baber, N. Morar, F. Fournier, I. Skarbovsky - link - 3 studenti
  • "Efficiently Summarizing Distributed Data Streams over Sliding Windows", N. Rivetti, Y. Busnel, A. Mostefaoui - link - 2 studenti
  • "A Privacy-Enhancing Content-Based Publish/Subscribe System Using Scalar Product Preserving Transformations", S. Choi, G. Ghinita, E. Bertino - link - 3 studenti

Orice modificari vor fi anuntate in timp util in cadrul acestei pagini.

© 2022 Emanuel Onica. Parts of design by W3Layouts