Cílem práce je vytvořit webovou aplikaci pro vývoj a simulaci algoritmů pro Kilobot roboty, která vylepšuje a rozšiřuje stávající řešení.
Teoretická část popisuje základy hejnové inteligence, roboty Kilobot, současné vývojové nástroje a použité cloudové technologie.
Praktická část se zabývá vývojem celého systému od uživatelského portálu přes tvorbu vývojového prostředí se simulátorem až po monitorování celého systému.
Annotation in English
The goal of this master thesis is to develop a web application for simulating and programming of Kilobot robots, which improves and expands available solutions.
The theoretical part describes the fundamentals of swarm intelligence, Kilobot robots, available development tools, and used cloud technology.
The practical part deals with the development of the entire system from the user portal through the creation of a development environment with a simulator to the monitoring of the entire system.
Kilobot, swarm algorithms, web applications, cloud, Go, C, Docker, Kubernetes
Length of the covering note
90
Language
CZ
Annotation
Cílem práce je vytvořit webovou aplikaci pro vývoj a simulaci algoritmů pro Kilobot roboty, která vylepšuje a rozšiřuje stávající řešení.
Teoretická část popisuje základy hejnové inteligence, roboty Kilobot, současné vývojové nástroje a použité cloudové technologie.
Praktická část se zabývá vývojem celého systému od uživatelského portálu přes tvorbu vývojového prostředí se simulátorem až po monitorování celého systému.
Annotation in English
The goal of this master thesis is to develop a web application for simulating and programming of Kilobot robots, which improves and expands available solutions.
The theoretical part describes the fundamentals of swarm intelligence, Kilobot robots, available development tools, and used cloud technology.
The practical part deals with the development of the entire system from the user portal through the creation of a development environment with a simulator to the monitoring of the entire system.
Kilobot, swarm algorithms, web applications, cloud, Go, C, Docker, Kubernetes
Research Plan
Seznamte se s principy programování hejnových algoritmů pro roboty typu Kilobot
.
Prostudujte stávající aplikace používané pro simulaci a programování Kilobotů
.
Vhodným způsobem definujte požadavky na vyvíjenou aplikaci a vyberte vhodné technologie
.
Proveďte implementaci jednotlivých částí
.
Sestavte kompletní vyvíjenou aplikaci a proveďte její testovací nasazení
.
Research Plan
Seznamte se s principy programování hejnových algoritmů pro roboty typu Kilobot
.
Prostudujte stávající aplikace používané pro simulaci a programování Kilobotů
.
Vhodným způsobem definujte požadavky na vyvíjenou aplikaci a vyberte vhodné technologie
.
Proveďte implementaci jednotlivých částí
.
Sestavte kompletní vyvíjenou aplikaci a proveďte její testovací nasazení
.
Recommended resources
MANN, Burkhard. C pro mikrokontroléry. Praha: BEN - technická literatura, 2003. ISBN 80-7300-077-6.
Blum, C. and Merkle, D. Swarm Intelligence: Introduction and Applications. Natural Computing Series. Springer Berlin Heidel-berg, 2008. ISBN 9783540740896.
Klemens,B.21st Century C: C Tips from the New School. O'Reilly Media, 2012. ISBN 9781449344665.
Luksa, M. Kubernetes in Action. Manning Publications Company, 2018. ISBN 9781617293726.
Turnbull, J. The Docker Book: Containerization Is the New Virtualization. James Turnbull, 2014. ISBN 9780988820203.
Recommended resources
MANN, Burkhard. C pro mikrokontroléry. Praha: BEN - technická literatura, 2003. ISBN 80-7300-077-6.
Blum, C. and Merkle, D. Swarm Intelligence: Introduction and Applications. Natural Computing Series. Springer Berlin Heidel-berg, 2008. ISBN 9783540740896.
Klemens,B.21st Century C: C Tips from the New School. O'Reilly Media, 2012. ISBN 9781449344665.
Luksa, M. Kubernetes in Action. Manning Publications Company, 2018. ISBN 9781617293726.
Turnbull, J. The Docker Book: Containerization Is the New Virtualization. James Turnbull, 2014. ISBN 9780988820203.
Enclosed appendices
1 CD
Appendices bound in thesis
illustrations, graphs, schemes, tables
Taken from the library
No
Full text of the thesis
Appendices
Reviewer's report
Supervisor's report
Defence procedure record
Student nejprve seznámil komisi s výsledky své diplomové práce. Poté byly prezentovány posudky vedoucího a oponenta. Následně byla vedena rozprava,
během které byly položeny následující otázky a komentáře:
Velmi kladně hodnotím využití standardních komunikačních protokolů a
standardních technologií v čele s orchestračním nástrojem Kubernetes. Toto zajišťuje aplikaci
velkou škálovatelnost a umožňuje jednoduché nasazení aplikace jak v lokálním serverovém
prostředí tak v prostředí velkých cloudových poskytovatelů.
Díky využití kontejnerů pro oddělení/zapouzdření jednotlivých simulátorů od dalších částí systému
je možné tento velmi jednoduše adaptovat na jiné simulátory, jiné vývojové prostředí a de fakto jej
využívat univerzálně. Aktuální řešení využívá přesněrování prohlížeče pomocí portů na konkrétní simulátor. Dalo by se
toto nahradit nějakým mechanizmem na úrovni proxi serveru? (dr. Janků)
systému a to jak
z hlediska jeho statické struktury, tak také z hlediska datových toků a interakce uživatele se
systémem.
Také by bylo vhodné věnovat více pozornosti diskuzi o způsobu tvorby a nasazení aplikací
hostovaných jako Docker kontejnery.
Dokumentace API a datového modelu by mohla být vhledem k jejímu rozsahu uvedena přímo
v textu práce a ne jako její příloha.
Přínosem studenta je bezesporu zpřístupnění prostředků pro vývoj a simulaci hejnových algoritmů
široké odborné veřejnosti bez nutnosti složité konfigurace a nasazení takových vývojových
prostředí. Při nasazení a správě distribuované aplikace pomocí orchestrátoru Kubernetes jste využil
možnosti hostingu u renomovaných poskytovatelů cloudových platforem jako AWS, Azure
či GCP, nebo jste instaloval a konfiguroval Kubernetes cluster/uzel na vlastním HW? Jaké
spatřujete výhody ve využití externího hostingu v porovnání s nároky na správu vlastního
HW/SW? Jakým způsobem by bylo možné řešit ochranu Kubernetes clusteru a v něm běžícího
aplikačního systému před vyčerpáním výpočetních zdrojů, tj. zejména operační paměti a
výpočetního výkonu? Jakým způsobem by bylo možné využít vhodného Message brokeru (Apache Kafka,
RabbitMQ, Azure EventHub, ?) pro průběžnou/kontinuální distribuci simulačních dat ke
klientům? (dr. Bližňák)
Student reagoval a všechny dotazy zodpověděl.