bakalářská práce

Systém pro zpracování dat z chytrých zařízení

Text práce 3.69 MB

Autor práce: Bc. Michal Bureš

Ak. rok: 2023/2024

Vedoucí: Ing. Jiří Hynek, Ph.D.

Oponent: doc. Ing. Radek Burget, Ph.D.

Abstrakt:

Tato práce se zabývá návrhem, implementací a testováním nového informačního
systému pro zpracování značných objemů dat z chytrých zařízení pomocí uživatelských
kritérií – terminologicky klíčových indikátorů výkonnosti. Práce popisuje oblast internetu
věcí a chytrých měst a pojednává o klíčových indikátorech výkonnosti a jejich použitelnosti
pro sledování chytrých zařízení a transformaci dat z těchto zařízení na prakticky
uplatnitelné poznatky. Dalším významným tématem práce jsou informační systémy,
jejich architektura a výkonnost – zde práce popisuje různé pojmy a aspekty pomocí
kterých lze definovat a vyhodnocovat výkonnost software, zejména informačních systémů a
webových služeb. Následně se již práce zabývá samotným systémem a to nejprve z hlediska
specifikace požadavků, určených rozborem potenciálních uživatelů a jejich potřeb a také
rozborem již existujících řešení a jejich nedostatků. Významné požadavky na nový systém
zahrnují proudové zpracování dat z chytrých zařízení v reálném čase, vysokou kapacitu
systému, stabilitu systému a rozšiřitelnost. Posléze je popsán návrh systému s důrazem na
datový model systému, proces vyhodnocení klíčových indikátorů výkonnosti a architekturu
systému a poté implementace, s důrazem na implementaci klientské strany systému,
implementaci jednotlivých služeb tvořících backend systému, komunikaci mezi těmito
službami pomocí technologie RabbitMQ atd. Poslední část práce, věnovaná testování
systému, se zaměřuje na výkonnost systému, resp. na propustnost jednotlivých služeb
při zpracování zpráv z chytrých zařízení, optimalizaci propustnosti, přínos horizontálního
škálování a celosystémovou latenci.

Klíčová slova:

Internet věcí, Chytrá města, Klíčové indikátory výkonnosti, Informační systémy, Architektura informačních systémů, Výkonnost, Proudové zpracování dat, Zpracování dat v reálném čase, Propustnost, Škálovatelnost, Souběžnost, Paralelismus, MQTT, Go, React, TypeScript, GraphQL, RabbitMQ

Termín obhajoby

21.08.2024

Výsledek obhajoby

obhájeno (práce byla úspěšně obhájena)

znamkaAznamka

Klasifikace

A

Průběh obhajoby

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm A.

Otázky k obhajobě

  1. Jaká je motivace pro ukládání definic vyhodnocovaných kritérií do relační databáze ve formě stromů? Nebylo by vhodnější využít nějaké formy logických výrazů, které by se snáze ukládaly a poskytly větší flexibilitu (např. aritmetické operátory?)
  2. V závěru uvádíte, že ukládání výsledků do relační databáze PostgreSQL představuje výkonností omezení. O ukládání jakých dat se přesně jedná a je nutné tato data ukládat do relační databáze, která jinak zřejmě slouží spíše pro ukládání konfigurace systému?
  3. Co bylo zdrojem vašich dat?

Jazyk práce

čeština

Fakulta

Ústav

Studijní program

Informační technologie (BIT)

Složení komise

doc. Ing. Radek Burget, Ph.D. (předseda)
doc. Ing. Petr Motlíček, Ph.D. (člen)
doc. Ing. Petr Matoušek, Ph.D., M.A. (člen)
doc. Mgr. Kamil Malinka, Ph.D. (člen)
Ing. Bohuslav Křena, Ph.D. (člen)

Posudek vedoucího
Ing. Jiří Hynek, Ph.D.

Student ke své práci přistupoval svědomitě. Zaobíral se netriviální problematikou, jejíž výstupy budou využité v dalším výzkumu v oblasti IoT. Navrhuji hodnocení stupněm A.

Kritérium hodnocení Slovní hodnocení
Informace k zadání

Cílem práce bylo navrhnout a implementovat informační systém pro výkonné zpracování dat z chytrých zařízení. Práce měla převážně průzkumný charakter. Student porovnal jazyky C++, Rust a Go, které přináší výkonnostní zlepšení oproti tradičním jazykům pro tvorbu serverových webových aplikací. Dále prostudoval vhodné architektury a technologie pro tvorbu informačních systémů (mikroslužby, proudové zpracování s využitím front, RabbitMQ). Mimo jiné se musel dobře seznámit s problematikou internetu věcí, principy zasílání zpráv (např. protokol MQTT). Zadání považuji za obtížnější.

Práce s literaturou

Práci s literaturou hodnotím jako nadprůměrnou. Student aktivně dohledával a pečlivě studoval odborné publikace, jejichž poznatky se snažil aplikovat v praktické části práce.

Aktivita během řešení, konzultace, komunikace

Student byl aktivní během celého akademického roku. Účastnil se průběžných online konzultací, na které byl pečlivě připraven. Důvody posunu odevzdání práce byly konzultovány a považuji je za opodstatněné.

Aktivita při dokončování

Práce byla dokončena v předstihu. Její obsah byl konzultován.

Publikační činnost, ocenění

Výsledné řešení s názvem RIoT včetně zdrojových kódů bylo uveřejněno ve službě Github pod licencí MIT.

Výsledný počet bodů navržený vedoucím: 95

Známka navržená vedoucím: A

Pan Bureš důkladně prostudoval související problematiku a navrhl pokročilé řešení, které je po technické stránce velmi kvalitní. Toto řešení je dopracované do detailů a připravené k nasazení v praxi. Přes některé výhrady, které mám ke způsobu psaní technické zprávy a k některým výše uvedeným návrhovým rozhodnutím, považuji výsledek za nadprůměrný a navrhuji hodnotit stupněm A.

Kritérium hodnocení Slovní hodnocení Body
Náročnost zadání

Stupeň hodnocení: průměrně obtížné zadání

Cílem zadání je návrh řešení, které umožní zpracovat proudy dat ze senzorů chytrých zařízení a vyhodnocovat je v reálném čase na základě předem stanovených kritérií. Zadání považuji za průměrně obtížné.

Prezentační úroveň technické zprávy

Technická zpráva je přehledně strukturovaná a pokrývá jak teoretickou část věnovanou informačním systémům, jejich architektuře a výkonnosti a analýze požadavků, tak i praktickou část věnovanou návrhu, implementaci a testování vlastního řešení. Text je ve všech částech velmi podrobný, architektura výsledného systému je zajímavě technicky řešena s důrazem na škálovatelnost. Přesto však některá návrhová rozhodnutí nejsou z textu zcela zřejmá, nebo možná v ostatních informacích zanikají. Jedná se např. o způsob využití relační databáze, která, jak autor sám uvádí v závěru, zůstává výkonnostním úzkým hrdlem nebo způsob reprezentace a ukládání definic vyhodnocovaných kritérií v podobě stromových struktur přímo v relační databázi, který se jeví jako poněkud složitý a současně omezující. Důsledkem je potom potom například i poněkud nepřehledný E-R diagram na str. 39.

85
Formální úprava technické zprávy

Z typografického hlediska je technická zpráva velmi pečlivě zpracována a i po jazykové stránce je velmi kvalitní. Drobnou výhradu mám jen k poněkud rozvláčnému stylu psaní, kdy občas autor nejde přímo k věci, ale prokládá text subjektivními úvahami, kterými se při řešení zabýval, mnohokrát opakuje jména autorů citovaných publikací apod. Na to, že cíle práce jsou poměrně přímočaré, se popis řešení jeví místy až zbytečně komplikovaný. Celkově však text považuji za nadprůměrně pečlivě zpracovaný.

90
Realizační výstup

Implementačním výstupem je aplikace sestávající z modulárně řešené serverové části a klientské části poskytující uživatelské rozhraní. Architektura řešení je velmi pěkně navržena a je implementována pomocí moderních technologií. Celá aplikace je plně funkční a připravená k nasazení v praxi. Pozitivně hodnotím i využití vhodných existujících technologií pro monitorování informačních systémů za účelem vyhodnocení výkonnosti celého řešení.

94
Využitelnost výsledků

Implementované řešení je dostupné jako software s otevřeným kódem na serveru GitHub a je potenciálně užitečné jako výchozí bod pro další podobné aplikace.

Rozsah splnění požadavků zadání

Stupeň hodnocení: zadání splněno

Zadání považuji za splněné bez výhrad.

Rozsah technické zprávy

Stupeň hodnocení: přesahuje obvyklé rozmezí

Technická zpráva svým rozsahem mírně přesahuje rozmezí obvyklé pro bakalářskou práci. Jak uvádím níže, text práce je v některých pasážích poněkud rozvleklý, všechny částí jsou však relevantní k tématu práce a žádná není vysloveně nadbytečná.

Práce s literaturou

Seznam zdrojů je na bakalářskou práci nadprůměrně rozsáhlý a obsahuje relevantní zdroje. Tyto zdroje jsou v textu práce řádně citovány.

90
Otázky k obhajobě:
  1. Jaká je motivace pro ukládání definic vyhodnocovaných kritérií do relační databáze ve formě stromů? Nebylo by vhodnější využít nějaké formy logických výrazů, které by se snáze ukládaly a poskytly větší flexibilitu (např. aritmetické operátory?)
  2. V závěru uvádíte, že ukládání výsledků do relační databáze PostgreSQL představuje výkonností omezení. O ukládání jakých dat se přesně jedná a je nutné tato data ukládat do relační databáze, která jinak zřejmě slouží spíše pro ukládání konfigurace systému?
Výsledný počet bodů navržený oponentem: 90

Známka navržená oponentem: A

Odpovědnost: Mgr. et Mgr. Hana Odstrčilová