Master's Thesis

Improvements to the Backend Routine for Data Processing from Smart Devices

Final Thesis 3.15 MB

Author of thesis: Ing. Ivan Halomi

Acad. year: 2023/2024

Supervisor: Ing. Petr John

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

Abstract:

The devices communicate using messages, which can be in different formats. Therefore, to get data from a device, it is necessary to understand its messages and know their structure in order to convert the data into models used in the application. In the original version of the application, the process of adding new supported device models was unsustainable in the long term as it required programmer intervention and application recompilation each time a new model was added. This situation required the development of a solution that would allow new models to be easily added without requiring programmer intervention and re-compilation of the application. The proposed and implemented solution successfully eliminated this problem. Currently, the user is able to independently add a new device model and define its data processing functions according to his own needs. This solution extracts the functions needed to process and encode messages from the database and then executes them in an isolated environment, eliminating the possibility of unwanted operations that the user might try to perform.

Keywords:

smart devices, internet of things, cloud, data processing, Chirpstack, Zigbee2Mqtt, isolated environment in JS

Date of defence

28.08.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

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ázku oponenta. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na otázku položenou oponentem rozhodla práci hodnotit stupněm B - velmi dobře.

Topics for thesis defence

  1. Bylo by možné v některých případech (například u zpráv typu Logimic Dev5) namísto imperativního programování funkce pro dekódování příchozích zpráv umožnit mapování hodnot deklarativní cestou (například přes uživatelský formulář)?

Language of thesis

Slovak

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Software Engineering (NSEN)

Composition of Committee

doc. Ing. Richard Růžička, Ph.D., MBA (předseda)
prof. Ing. Tomáš Vojnar, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)
doc. Ing. František Zbořil, CSc. (člen)
Ing. Jaroslav Dytrych, Ph.D. (člen)
doc. Ing. Lukáš Burget, Ph.D. (člen)

Supervisor’s report
Ing. Petr John

Student pracoval velmi samostatně a pečlivě. Výstupem práce je rozšíření platformy společnosti Logimic, které dovoluje uživatelům i vývojářům přidávat funkce odpovědné za transformaci mezi datovými modely. Uživatelé mohou tyto funkce přidávat pomocí grafického uživatelského rozhraní a jejich běh je virtualizován, což redukuje možnost zneužití tohoto nástroje útočníkem. Díky tomuto rozšíření je možné přidávat podporu pro nová zařízení bez nutnosti překladu aplikace či přístupu ke zdrojovému kódu aplikace.


Navrhuji hodnocení stupněm B.

Evaluation criteria Verbal classification
Informace k zadání

Cílem této diplomové práce bylo vylepšení aktuální architektury backendového zpracování příchozích a odchozích dat z různých typů chytrých zařízení v aplikaci zaměřené na správu chytrých měst vyvíjenou pro společnost Logimic. Proces zpracování dat zahrnuje mimo jiné i jejich převod do interní reprezentace společnosti. Za tímto účelem se využívají enkodéry pro odchozí a dekodéry pro příchozí data do aplikace. Původní řešení umožňovalo přidání nových typů zařízení do aplikace vytvořením podpory pro tato zařízení v rámci zdrojového kódu aplikace a následným překladem. Kvůli tomuto přístupu obsahovalo původní řešení více vstupních bodů, které poskytovaly podporu pro podobné typy zařízení, a neumožňovalo úpravy koncovým uživatelem. Diplomová práce měla tři primární cíle, a to navrhnout a implementovat řešení, které umožní jak vývojářům, tak uživatelům přidat podporu pro nové typy zařízení, sjednotit vstupní body a otestovat vytvořený přístup na zařízeních kompatibilních s Open-Source nástrojem Zigbee2MQTT. Za tímto účelem musel student nastudovat širokou škálu technologií, a to od přenosových technologií (Zigbee, LoRaWAN, interní formáty firmy Logimic), přes technologie spojené s aktuálně používanými prostředími (Node.js, Express.js a cloudové prostředí AWS) a možnostmi spouštění potencionálně nebezpečného kódu, až po technologie používané ve frontendové části aplikace (Angular.js, PrimeNG). Student navrhl a implementoval řešení, které využívá relační databázi PostgeSQL pro ukládání uživatelem definovaných funkcí určených k práci s daty od zařízení, vytvořil abstrakci umožňující virtualizaci spouštěného kódu, sjednotil vstupní body pro zpracování dat a vyvinul uživatelské rozhraní pro správu funkcí pro práci s daty. Vytvořené řešení je integrováno v současné verzi aplikace společnosti Logimic. Zadání hodnotím jako průměrné složité. Bylo splněno ve všech jeho bodech.

Aktivita při dokončování

Práce byla dokončena v dostatečném předstihu a mohla tak být řádně konzultována a prezentována ve společnosti Logimic.

Publikační činnost, ocenění
Práce s literaturou

Student prostudoval doporučenou literaturu a aktivně si vyhledával další zdroje.

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

Student komunikoval během celého akademického roku. Konzultace probíhaly online přibližně každé dva týdny v zimním semestru a každé tři týdny v letním semestru. Student také aktivně diskutoval dílčí kroky se zástupci společnosti Logimic.

Points proposed by supervisor: 85
Display more

Grade proposed by supervisor: B

Reviewer’s report
Ing. Jiří Hynek, Ph.D.

Student řešil netriviální zadání. Až na některé výše uvedené nedostatky (zejména v technické zprávě) se jedná o kvalitní práci. Navrhuji hodnocení stupněm B.

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

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

Prezentační úroveň technické zprávy je na průměrné úrovni. Práce je rozumně členěna na teoretickou a praktickou část. Implementační část je místy chaotická. Testování je popsáno spíše stručně.

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

Formální stránka práce je slabší. Obsahuje různé typografické chyby (např. špatné pomlčky). Obrázky jsou v rastrové podobě, mnohdy méně kvalitní. Místy chybí čárky.

65
Práce s literaturou

Student prostudoval nadprůměrné množství odborných zdrojů. Ocenil bych pouze, kdyby bylo více zkoumáno, zda-li někdo řešil podobný problém.

85
Realizační výstup

Praktické řešení hodnotím kladně. Pomocí implementovaného rozšíření je možné definovat nový model zařízení bez nutnosti kompilovat back-end část platformy. Řešení podporuje tři formáty zpráv: LoRa Chirpstack, Zigbee2MQTT a Logimic Dev5. Řešení je funkční jak s verzí běžící na AWS využívající funkce Lamda, tak s tzv. řešením on-premise.

95
Využitelnost výsledků

Výsledky jsou potenciálně využitelné ve firmě Logimic.

Náročnost zadání

Evaluation level: obtížnější zadání

Cílem studenta bylo navrhnout a implementovat do stávající platformy pro správu chytrých zařízení firmy Logimic podporu pro dynamické přidávání nových modelů chytrých zařízení. V praxi to znamená, že uživatel platformy prostřednictvím studentem implementovaného uživatelského rozhraní zadá funkce pro kódování a dekódování zpráv ze zařízení a funkci pro práci s dekódovanými daty. Aby tohoto student dosáhl, musel se důkladně seznámit s problematikou IoT, principem zasílání zpráv a jejich formáty z jednotlivých gateway serverů (LoRa, Zigbee2MQTT), platformou firmy Logimic a vývojem informačních systémů (TypeScript, Express, Angular, PostgreSQL). Zadání hodnotím jako obtížnější.

Topics for thesis defence:
  1. Bylo by možné v některých případech (například u zpráv typu Logimic Dev5) namísto imperativního programování funkce pro dekódování příchozích zpráv umožnit mapování hodnot deklarativní cestou (například přes uživatelský formulář)?
Points proposed by reviewer: 85
Display more

Grade proposed by reviewer: B