Bachelor's Thesis

System for Processing Data from Smart Devices

Final Thesis 3.69 MB

Author of thesis: Bc. Michal Bureš

Acad. year: 2023/2024

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

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

Abstract:

This thesis deals with the design, implementation, and testing of a new information
system for processing significant volumes of data from smart devices using user
criteria – terminologically Key Performance Indicators. The thesis describes the domain
of the Internet of Things and Smart Cities and discusses Key Performance Indicators
and their applicability for monitoring smart devices and transforming data from these
devices into practically applicable knowledge. Another significant topic of the thesis is
information systems, their architecture, and performance – here the thesis describes various
concepts and aspects through which it is possible to define and evaluate the performance
of software, especially information systems and web services. Subsequently, the thesis
deals with the system itself, first from the perspective of requirement specification,
determined by analysis of potential users and their needs, and also analysis of existing
solutions and their shortcomings. Significant requirements for the new system include
stream processing of data from smart devices in real-time, high system capacity, system
stability, and expandability. Later, the design of the system is described with an emphasis
on the data model of the system, the process of evaluating Key Performance Indicators,
and the architecture of the system, followed by implementation with an emphasis on the
implementation of the client side of the system, the implementation of individual services
forming the backend of the system, communication between these services using RabbitMQ
technology, etc. The final part of the thesis, dedicated to testing the system, focuses on
system performance, i.e., the throughput of individual services in processing messages from
smart devices, optimization of throughput, benefits of horizontal scaling, and system-wide
latency.

Keywords:

Internet of Things, Smart Cities, Key Performance Indicators, Information Systems, Architecture of Information Systems, Performance, Stream Processing of Data, Real-time Data Processing, Throughput, Scalability, Concurrency, Parallelism, MQTT, Go, React, TypeScript, GraphQL, RabbitMQ

Date of defence

21.08.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

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.

Topics for thesis defence

  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?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

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)
Mgr. Kamil Malinka, Ph.D. (člen)
Ing. Bohuslav Křena, Ph.D. (člen)

Supervisor’s report
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.

Evaluation criteria Verbal classification
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.

Points proposed by supervisor: 95
Display more

Grade proposed by supervisor: A

Reviewer’s report
doc. Ing. Radek Burget, Ph.D.

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.

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: 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í

Evaluation level: zadání splněno

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

Rozsah technické zprávy

Evaluation level: 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
Topics for thesis defence:
  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?
Points proposed by reviewer: 90
Display more

Grade proposed by reviewer: A