Master's Thesis

Task management service design for a web application computing engine

Final Thesis 2.14 MB

Author of thesis: Bc. Andrii Semeniuk

Acad. year: 2024/2025

Supervisor: Ing. Vlastimír Nevrlý, Ph.D.

Reviewer: Ing. Ladislav Dobrovský, Ph.D.

Abstract:

Bikesharing is increasingly seen as a sustainable response to urban mobility challenges linked to climate change and traffic congestion. As the field evolves into its fourth generation, the focus shifts to intelligent system optimization through automation and data-driven decision-making. This thesis contributes to a larger project aimed at implementing such features for Nextbike Czech Republic by improving bike distribution through automated shift planning for field workers. The core outcome is a task management service that connects an optimization engine to the existing system. This service handles planning requests, ensures per-city isolation, and enables communication between components. A beta-version was successfully presented to Nextbike’s management, confirming the potential of the solution. Although still in development, the results establish a robust foundation for scalable and intelligent operations in next-generation bikesharing systems.

Keywords:

Urban mobility, Fourth-generation bikesharing, Shift planning, Task management, System optimization, Back-end development, Operational efficiency

Date of defence

10.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student představil komisi výsledky své DP. Po přečtení posudků následovaly otázky a připomínky oponenta a členů komise. Zátěžové testování Student byl vnímán jako vedoucí celého týmu.

Language of thesis

English

Faculty

Department

Study programme

Applied Computer Science and Control (N-AIŘ-P)

Composition of Committee

doc. Ing. Oldřich Trenz, Ph.D. (předseda)
doc. Ing. Jakub Kůdela, Ph.D. (místopředseda)
doc. Ing. Miloš Hammer, CSc. (člen)
prof. Ing. Zdeněk Hadaš, Ph.D. (člen)
doc. Ing. Pavel Škrabánek, Ph.D. (člen)
Ing. Jiří Kurfürst, Ph.D. (člen)
prof. Ing. Jiří Jaroš, Ph.D. (člen)
prof. Ing. Milan Hofreiter, CSc. (člen)
prof. Ing. Petr Doležel, Ph.D. (člen)
doc. Ing. David Fojtík, Ph.D. (člen)

Supervisor’s report
Ing. Vlastimír Nevrlý, Ph.D.

Diplomová představuje mimořádně kvalitní a důkladně zpracovaný technický dokument, jehož přínos výrazně přesahuje rámec běžných závěrečných prací. Téma bylo zpracováno v rámci meziústavní spolupráce FSI VUT a ve spojení s reálným partnerem z praxe – společností nextbike Czech Republic s.r.o. Práce je součástí většího aplikačního celku, v němž se student podílel jako vývojář backendového řešení.

První část práce podává velmi podrobný a fundovaný přehled moderních webových technologií, architektur a nástrojů používaných při vývoji API a distribuovaných služeb. Text je pečlivě strukturovaný a kombinuje teoretický výklad s praktickými poznatky z reálného vývoje.

Aplikační část diplomové práce se zaměřuje na návrh a realizaci služby pro správu výpočetních úloh, která propojuje optimalizační modul plánování směn s aplikačním backendem. Student navrhl robustní mikroservisní architekturu, detailně analyzoval způsoby škálování, navrhl systém front pro paralelizaci požadavků a zavedl perzistentní stavovou správu úloh pomocí databází. Na implementační úrovni student s vysokou mírou profesionality zvládl práci s technologiemi jako Flask, SQLAlchemy, Graphene, Celery, Redis a dalšími. Práce nejen že splňuje zadání, ale prokazuje hluboké porozumění vývojových moderních webových služeb. Student úspěšně provedl nasazení aplikace v prostředí Linux serverů.

Významným aspektem této diplomové práce je i schopnost studenta fungovat jako integrační článek v rámci širšího vývojového týmu. Student vedl koordinaci s paralelně vznikajícími diplomovými pracemi, efektivně komunikoval s vývojáři z VUT i s externím vývojářem partnerské společnosti. Díky tomu se podařilo vytvořit ucelený funkční prototyp aplikace, který byl úspěšně prezentován partnerovi projektu. Student se navíc aktivně podílel na řízení práce ostatních a zajišťoval propojení jednotlivých modulů do jednoho funkčního systému.

Po formální stránce je práce výborně zpracovaná, graficky přehledná, bez výrazných stylistických či formálních chyb. Kódové části jsou konzistentně dokumentovány a celý systém je popsán tak, že může být dále rozvíjen i jinými členy týmu. Student prokázal mimořádné schopnosti v oblasti návrhu, vývoje i týmové spolupráce. Práce je po odborné, technické i aplikační stránce excelentní, a proto ji jednoznačně doporučuji k obhajobě.
Evaluation criteria Grade
Splnění požadavků a cílů zadání A
Postup a rozsah řešení, adekvátnost použitých metod A
Vlastní přínos a originalita A
Schopnost interpretovat dosažené výsledky a vyvozovat z nich závěry A
Využitelnost výsledků v praxi nebo teorii A
Logické uspořádání práce a formální náležitosti A
Grafická, stylistická úprava a pravopis A
Práce s literaturou včetně citací A
Samostatnost studenta při zpracování tématu A

Grade proposed by supervisor: A

Práce velmi obecně pojednává o webových technologiích a technikách využívaných při vývoji SW. V poslední části se věnuje implementaci a integraci služby pro spouštění výpočetních úloh v oddělených frontách.

V části o systémech správy verzí chybí popis pokročilejších technik CI/CD. U Gitu by mělo být popsáno více možných workflow.
V části 4.2.1 je nesprávně uvedeno, že je protokol HTTP bezpečný, autor měl zřejmě na mysli protokol HTTPS.
V části 4.2.3 není uveden mechanismus cookies, který je projektem aktivně využíván.
V části 4.3 autor nesprávně uvádí, že v počátcích používání počítačů dominovaly desktopové aplikace. Tím posouvá počátky přibližně o 40 let později a ignoruje využívání prvních sálových počítačů, dávkového zpracování z děrných štítků a timesharing systémů s dálnopisnými a pak obrazovkovými terminály. (doporučuji návštěvu nedalekého Technického muzea v Brně)
Výrok, že webové aplikace využívají počítání v cloudu, naznačuje jakoby to byla jediná možnost. Také poznámka o spolupráci v reálném čase je velmi zavádějící až lživá.

V části 4.4.2 nesouhlasím s výrokem, že je pro microservices architekturu nezbytně nutná např. kontejnerizace a použití cloudu.

Část 4.6 o databázích považuji za zbytečně obsáhlou.

Některé části trpí spíše marketingovým jazykem a měly by jasněji obhajovat technické důvody a oddělovat co je pro dané označení řešení nezbytně nutné a co je jen často spolu používané.

Částu 5 a 6 již lépe popisují konkrétní technické řešení.

V praktické části autor plně integruje prototyp služby pro spouštění výpočetních úloh v oddělených frontách se zbytkem webové aplikace. Oponentovi bylo umožněno projít si zdrojové kódy a funkčnosti aplikace byla demonstrována.
Tento příspěvek v rámci komplexní aplikace hodnotím velmi pozitivně.
Evaluation criteria Grade
Splnění požadavků a cílů zadání B
Postup a rozsah řešení, adekvátnost použitých metod C
Vlastní přínos a originalita C
Schopnost interpretovat dosaž. výsledky a vyvozovat z nich závěry C
Využitelnost výsledků v praxi nebo teorii A
Logické uspořádání práce a formální náležitosti B
Grafická, stylistická úprava a pravopis B
Práce s literaturou včetně citací B
Topics for thesis defence:
  1. 2. V práci postrádám (bližší) popis různých existujících řešení pro fronty výpočetních úloh. Bylo uvažováno využít Celery samostatně, či alternativy jako SLURM nebo Kubernetes Jobs?
  2. 1. V části 6.1 řešíte ověřování zda je daný task "feasible". Kdy k ověřování dochází a je uživatel o nesplnitelnosti informován nejdříve co je to možné nebo je zde prostor ke zlepšení?
  3. 3. V části 6.3 diskutujete další vývoj a požití Multi-Queue Scheduling. Jak zajistíte spravedlivost mezi úlohami v různých frontách z pohledu uživatele?

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová