POLÍVKA, T. Frontové zpracování dat [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.

Posudky

Posudek vedoucího

Bartík, Vladimír

Student své zadání splnil a prokázal tak bakalářské schopnosti. S přihlédnutím k celkové kvalitě i aktivitě během řešení navrhuji hodnocení stupněm C (dobře).

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Informace k zadání Bakalářská práce byla zpracována pro externího zadavatele, který ve svém systému potřeboval přejít z řešení pomocí databázové fronty na pokročilejší způsob frontového zpracování dat. Student implementoval rozhraní podporující řešení RabbitMQ a Kafka, a dále v experimentální části porovnal jejich vlastnosti. Student své zadání splnil a s výsledky jsem spokojen.
Práce s literaturou Veškerou literaturu k řešené problematice si student obstaral samostatně, k její volbě nemám výhrady.
Aktivita během řešení, konzultace, komunikace Aktivita studenta během řešení nebyla vysoká, přesto jsem však občas byl informován o pokrocích a některé kroky se mnou byly konzultovány.
Aktivita při dokončování Práce byla dokončena včas a mé připomínky k technické zprávě byly zapracovány. Také realizační výstup mi byl prezentován s předstihem.
Publikační činnost, ocenění
Navrhovaná známka
C
Body
75

Posudek oponenta

Rychlý, Marek

Výsledkem bakalářské práce je technická zpráva, která má značné nedostatky, a funkční, ale poměrně jednoduché a z pohledu přínosu možná nepraktické programové řešení. Navrhuji hodnotit práci stupněm uspokojivě (D) .

Dílčí hodnocení
Kritérium Známka Body Slovní hodnocení
Náročnost zadání Jedná se o průměrně obtížnou práci. Použité systémy front zpráv si jsou podobné a na použití nejsou složité. Za obtížnější část by bylo možné považovat komplexní transformaci stávající aplikace z předávání dat přes databázi na řešení využívající frontu zpráv, což však v práci nebylo řešeno (vyjma implementace prototypu za účelem testování výkonu různých řešení).
Rozsah splnění požadavků zadání Zadání bylo splněno.
Rozsah technické zprávy Rozsahem je sice technická zpráva v obvyklém rozmezí, od úvodu po závěr obsahuje 35 vysázených stran, ale z hlediska rozsahu jednotlivých kapitol bych očekával obsáhlejší (a podrobnější) popis návrhu řešení v kap. 5, která zabírá nyní 4,5 strany (3 strany čistého textu).
Prezentační úroveň technické zprávy 65 Technická zpráva má sice logickou strukturu přibližně odpovídající postupu vývoje programového řešení, avšak prostřední část pojednávající o návrhu řešení je poněkud nevhodně skryta v kap. 5 "Analýza" ("analýza" není "návrh") a je dost stručná. Návrhové diagramy (obr. 5.1 a 5.2) by měly být pro lepší pochopení podrobněji popsány a návrhová rozhodnutí nejen prostě představena, ale také řádně zdůvodněna, což v práci bohužel zcela chybí. Bez zdůvodnění představuje navržené řešení v kap. 5 spíše popis implementace a samotná kap. 6 "Implementace" je spíše konfigurací prostředí, resp. popisem nasazení. Srozumitelnost narušuje také absence odkazů na obrázky, takže může být nejasný kontext jejich užití v textu zprávy.
Formální úprava technické zprávy 60 Z hlediska formální úpravy vykazuje technická podstatné nedostatky, které narušují srozumitelnost textu. Kromě typografických nedostatků (např. konec str. 27, vložené bloky kódu), je to především neodborný a neobratný styl (např. "V základním balíčku ..., který je natažený pomocí Composeru," na str. 28, či velmi časté používání podmiňovacího způsobu při popisu řešení, např. v kap. 5).
Práce s literaturou 55 Seznam literatury obsahuje 20 položek z nichž všechny jsou webové stránky a většina z nich bez autorů (vyjma 2 položek). Přestože se jedná o implementačně zaměřenou práci, tak absence odborných zdrojů je zde neomluvitelná (přitom o systémech front zpráv a jejich výkonu existuje mnoho relevantních odborných publikací a je otázkou, proč student nepoužil alespoň literaturu doporučenou v zadání). Některé z online zdrojů nemají uvedeno datum citace a pravděpodobně i ostatní dostupné údaje (je uveden pouze název). V případě některých odkazů do seznamu literatury (např. položka 6 na str. 30) není vůbec zřejmý způsob jejich využití. V textu lze však obecně dobře odlišit převzaté části od vlastních úvah autora.
Realizační výstup 65 Programovým řešením je hierarchie tříd v jazyce PHP pro zasílání a čtení zpráv na dvou frontových systémech (RabbitMQ a Apache Kafka) a databázové tabulce, a dále PHP aplikace, která měří rychlost vkládání a čtení zpráv pomocí objektů výše uvedených tříd. Řešení je funkční, avšak jednoúčelové. Navržené třídy nevycházejí ze systému, kde se má dle zadání přechod od databázového řešení k frontám realizovat (ten není ani v práci analyzován) a rychlost vkládání a čtení je měřena bez distribuovaného nasazení frontových systémů (podle infrastruktury dle v řešení přiloženého docker-compose souboru), což je pro aplikace frontových systémů netypické. Není také měřen vliv nastavení frontových systémů, např. vliv asynchronního odesílání zpráv bez potvrzení. Zdrojový kód je dobře komentován.
Využitelnost výsledků Domnívám se, že řešení je těžko použitelné v praxi a naměřené výsledky výkonu mají malou vypovídací hodnotu vzhledem k v praxi typicky distribuovanému nasazení systémů front zpráv. Dle zadání bylo účelem "nahradit stávající řešení založené na databázové frontě", což student pojal ve smyslu testování výkonu plnění a čtení z fronty. Pro praktické uplatnění však bude rozhodující spíše způsob integrace, který je v práci zcela opomíjený (stejně jako analýza cílového systému).
Navrhovaná známka
D
Body
62

Otázky

eVSKP id 148493